c01b9e925ef9bb248aad4720b2e8f7c7.json 126 KB

1
  1. {"remainingRequest":"/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/node_modules/babel-loader/lib/index.js!/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js??ref--0-0!/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/src/views/account/camera/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/src/views/account/camera/index.vue","mtime":1708671772099},{"path":"/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/babel.config.js","mtime":1708395041663},{"path":"/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/node_modules/babel-loader/lib/index.js","mtime":1708395147257},{"path":"/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/机车现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js","mtime":1708395147382}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICIvVXNlcnMvY2FvZ2UvRGVza3RvcC9cdTY3M0FcdThGNjZcdTczQjBcdTU3M0EvVmVoaWNsZU1vbml0b3ItV0VCL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIi9Vc2Vycy9jYW9nZS9EZXNrdG9wL1x1NjczQVx1OEY2Nlx1NzNCMFx1NTczQS9WZWhpY2xlTW9uaXRvci1XRUIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwp2YXIgX25hbWUkY29tcHV0ZWQkZGF0YSRjOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5lcnJvci5jYXVzZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmRlbGV0ZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5oYXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLXNlYXJjaC1wYXJhbXMuc2l6ZS5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgeyBnZXRUb2tlbiB9IGZyb20gIkAvdXRpbHMvYXV0aCI7CmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tICJ2dWV4IjsKaW1wb3J0IHsgZWRpdEFjY291bnRNYW5hZ2VtZW50LCBzZXJ2aWNlRmlsZW9zcyB9IGZyb20gIi4uLy4uLy4uL2FwaS92aWRlbyI7CmltcG9ydCB7IGdldENhbWVyYURhdGFMaXN0LCBnZXRMaW5lRGlyLCBnZXRSZWNvcmRpbmcsIGdldFN0YXJ0UmVjb3JkaW5nLCBnZXRMaW5lV2F5TGlzdCBhcyBfZ2V0TGluZVdheUxpc3QsIGdldENhbWVyYURhdGFBZGROZXdlciwgZ2V0RG93bkxvYWRMaXN0LCBnZXRXb3JrU2V0aW9uIGFzIF9nZXRXb3JrU2V0aW9uLCBnZXRMaW5lRGF0YSwgZ2V0Q2FtZXJhRGF0YURlbGV0ZSwgZ2V0Q2FtZXJhRmV0YWlsLCBnZXRDYW1lcmFEYXRhVXBMb2FkT3V0LCBnZXRDYW1lcmFEYXRhVXBkYXRlLCBnZXREZXB0TGlzdCBhcyBfZ2V0RGVwdExpc3QsIGdldENhbWVyYURhdGFVcExvYWRJbiwgdG9FbmFiQWNjcmFtZSwgZ2V0RGlyZWN0aW9uIH0gZnJvbSAiQC9hcGkvYWNjb3VudC9jYW1lcmEiOwpleHBvcnQgZGVmYXVsdCAoX25hbWUkY29tcHV0ZWQkZGF0YSRjID0gewogIG5hbWU6ICJDYXJ0IiwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZCh7fSwgbWFwR2V0dGVycyhbIm5hbWUiXSkpLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICB2YXIgX3JlZjsKICAgIHZhciB2YWxpZGF0ZVBhc3N4amJtID0gZnVuY3Rpb24gdmFsaWRhdGVQYXNzeGpibShydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICIiKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fovpPlhaXnm7jmnLrnvJbnoIEiKSk7CiAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoID4gMTAwKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLmnIDlpJrlj6/ovpPlhaUxMDDkvY0iKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKICAgIHZhciB2YWxpZGF0ZVBhc3N4anRkID0gZnVuY3Rpb24gdmFsaWRhdGVQYXNzeGp0ZChydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICIiKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fovpPlhaXnm7jmnLrpgJrpgZMiKSk7CiAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoID4gMTAwKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLmnIDlpJrlj6/ovpPlhaUxMDDkvY0iKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKICAgIHZhciBhemxjd3ogPSBmdW5jdGlvbiBhemxjd3oocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSB7CiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAiIikgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi6K+36L6T5YWl5a6J6KOF6YeM56iL5L2N572uIikpOwogICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA+IDEwKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLmnIDlpJrlj6/ovpPlhaUxMOS9jSIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogICAgdmFyIHFzbGMgPSBmdW5jdGlvbiBxc2xjKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gIiIpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+i+k+WFpei1t+Wni+mHjOeoiyIpKTsKICAgICAgfSBlbHNlIGlmICh2YWx1ZS5sZW5ndGggPiAxMCkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi5pyA5aSa5Y+v6L6T5YWlMTDkvY0iKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKICAgIHZhciBqc2xjID0gZnVuY3Rpb24ganNsYyhydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICIiKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fovpPlhaXnu5PmnZ/ph4znqIsiKSk7CiAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoID4gMTApIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuacgOWkmuWPr+i+k+WFpTEw5L2NIikpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CiAgICByZXR1cm4gX3JlZiA9IHsKICAgICAgcGpqd2Q6ICIiLAogICAgICBwakprZnc6ICIiLAogICAgICB1cGxvYWRVcmw6ICJodHRwOi8vMTI0LjcwLjU4LjIwOToxODgxMC9zZXJ2aWNlL2ZpbGVvc3MiLAogICAgICAvLyDkuIrkvKDmlofku7bnmoTmjqXlj6PlnLDlnYAKICAgICAgZGlhbG9nVmlzaWJsZTogZmFsc2UsCiAgICAgIC8vIOWvvOWFpQogICAgICBkYXRhRm9ybTogewogICAgICAgIG5hbWU6ICIiLAogICAgICAgIGZpbGU6IG51bGwKICAgICAgfSwKICAgICAgdmlkZW9Vcmw6ICIiLAogICAgICBzZWFyY2hTaG93OiB0cnVlLAogICAgICBzdGFydFN0YXR1czogIiIsCiAgICAgIHJ1bGVzOiB7CiAgICAgICAgY2FtZXJhQ29kZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZVBhc3N4amJtLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgY2hhbm5lbDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZVBhc3N4anRkLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcmFpbHdheUNvZGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fpgInmi6nnur/ot68iLAogICAgICAgICAgdHJpZ2dlcjogImNoYW5nZSIKICAgICAgICB9XSwKICAgICAgICBkZXB0TmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeaJgOWxnuW3peWKoeautSIsCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dLAogICAgICAgIGxpbmVEaXJOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup6KGM5YirIiwKICAgICAgICAgIHRyaWdnZXI6ICJjaGFuZ2UiCiAgICAgICAgfV0sCiAgICAgICAgaW5zdGFsbE1pbGVCRDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiBhemxjd3osCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dLAogICAgICAgIGJlZ2luTWlsZUJEOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IHFzbGMsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBlbmRNaWxlQkQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjoganNsYywKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIC8vIGluc3RhbGxMb25naXR1ZGU6IFsKICAgICAgICAvLyAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICLor7fovpPlhaXnu4/luqYiLCB0cmlnZ2VyOiAiYmx1ciIgfSwKICAgICAgICAvLyBdLAogICAgICAgIC8vIGluc3RhbGxMYXRpdHVkZTogWwogICAgICAgIC8vICAgeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogIuivt+i+k+WFpee6rOW6piIsIHRyaWdnZXI6ICJibHVyIiB9LAogICAgICAgIC8vIF0sCiAgICAgICAgY2FyZE51bTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeeJqeiBlOe9keWNoeWPtyIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBzdGF0aW9uTmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpea1i+eCueWQjeensCIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9LAogICAgICBkaXNhYmxlZFNhdmU6IGZhbHNlLAogICAgICBlbnRlcjogMCwKICAgICAgcXVlcnlQYXJhbXM6IHsKICAgICAgICBzdGF0aW9uTmFtZTogJycsCiAgICAgICAgY2FtZXJhQ29kZTogJycsCiAgICAgICAgbGluZTogIiIsCiAgICAgICAgd29ya3NTZWN0aW9uOiAiIiwKICAgICAgICBsaW5lRGlzdGluY3Rpb246ICIiLAogICAgICAgIHN0YXJ0TWlsZWFnZTogIiIsCiAgICAgICAgZmluaXNodE1pbGVhZ2U6ICIiLAogICAgICAgIC8vIHJhaWx3YXlDb2RlOiAiIiwKICAgICAgICBkZXB0TmFtZTogIiIsCiAgICAgICAgZGVwdElkOiAiIiwKICAgICAgICBsaW5lRGlyOiAiIiwKICAgICAgICBiZWdpbk1pbGVCRDogIiIsCiAgICAgICAgZW5kTWlsZUJEOiAiIiwKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMAogICAgICB9LAogICAgICBmaXJlY3Rpb25EYXRhOiBbXSwKICAgICAgaWRzOiBbXSwKICAgICAgdGl0bGU6ICIiLAogICAgICB1cGxvYWREaWFsb2c6IGZhbHNlLAogICAgICByYWRpb0FycmF5OiBbewogICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgbGFiZWw6ICLmmK8iCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjIiLAogICAgICAgIGxhYmVsOiAi5ZCmIgogICAgICB9XSwKICAgICAgc3RhdHVzT3B0aW9uczogW3sKICAgICAgICBsYWJlbDogJ+WQr+eUqCcsCiAgICAgICAgdmFsdWU6ICcxJwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICflgZznlKgnLAogICAgICAgIHZhbHVlOiAnMicKICAgICAgfV0sCiAgICAgIHhpYW5sdTogW3sKICAgICAgICB2YWx1ZTogIjEiLAogICAgICAgIGxhYmVsOiAieHh4Mee6v+i3ryIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAiMiIsCiAgICAgICAgbGFiZWw6ICJ4eHgy57q/6LevIgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICIzIiwKICAgICAgICBsYWJlbDogInh4eDPnur/ot68iCiAgICAgIH1dLAogICAgICBnb25nd3VkdWFuOiBbewogICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgbGFiZWw6ICJ4eDHlt6XliqHmrrUiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjIiLAogICAgICAgIGxhYmVsOiAieHgy5bel5Yqh5q61IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICIzIiwKICAgICAgICBsYWJlbDogInh4M+W3peWKoeautSIKICAgICAgfV0sCiAgICAgIC8vIGhhbmdiaWU6IFsKICAgICAgLy8gICB7CiAgICAgIC8vICAgICB2YWx1ZTogJzEnLAogICAgICAvLyAgICAgbGFiZWw6ICfkuIrooYwnCiAgICAgIC8vICAgfSwKICAgICAgLy8gICB7CiAgICAgIC8vICAgICB2YWx1ZTogJzInLAogICAgICAvLyAgICAgbGFiZWw6ICfkuIvooYwnCiAgICAgIC8vICAgfQogICAgICAvLyBdLAogICAgICBsaWNoZW5nOiBbewogICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgbGFiZWw6ICIxa20iCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjIiLAogICAgICAgIGxhYmVsOiAiMmttIgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICIzIiwKICAgICAgICBsYWJlbDogIjNrbSIKICAgICAgfV0sCiAgICAgIHpoYW5ndGFpOiBbewogICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgbGFiZWw6ICLlt7Lop6PpmaQiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjIiLAogICAgICAgIGxhYmVsOiAi5pyq6Kej6ZmkIgogICAgICB9XSwKICAgICAgdGFibGVEYXRhOiBbXSwKICAgICAgdHJlZURhdGE6IFtdLAogICAgICB3b3JrU2V0aURhdGE6IFtdLAogICAgICBnZXRMaW5lRGF0YTogW10sCiAgICAgIHRvdGFsOiAwLAogICAgICBkaWFsb2dGb3JtVmlzaWJsZTogZmFsc2UsCiAgICAgIGZvcm06IHsKICAgICAgICBsaW5lRGlyTmFtZTogIiIsCiAgICAgICAgcmFpbHdheUNvZGU6ICIiLAogICAgICAgIGNhbWVyYUNvZGU6ICIiLAogICAgICAgIGNoYW5uZWw6ICIiLAogICAgICAgIGRlcHRJZDogIiIsCiAgICAgICAgZGVwdE5hbWU6ICIiLAogICAgICAgIGxpbmVEaXI6ICIiLAogICAgICAgIGluc3RhbGxNaWxlQkQ6ICIiLAogICAgICAgIGJlZ2luTWlsZUJEOiAiIiwKICAgICAgICBlbmRNaWxlQkQ6ICIiLAogICAgICAgIGluc3RhbGxMb25naXR1ZGU6ICIiLAogICAgICAgIGluc3RhbGxMYXRpdHVkZTogIiIsCiAgICAgICAgY2FyZE51bTogIiIsCiAgICAgICAgc3RhcnRSZWNvcmRpbmc6ICIiLAogICAgICAgIHJlbWFyazogIiIsCiAgICAgICAgc3RhdGlvbk5hbWU6ICcnLAogICAgICAgIGVuYWJsZU9yTm90OiAxLAogICAgICAgIG1vbml0b3JpbmdEaXJlY3Rpb246ICcnLAogICAgICAgIG1vbml0b3JpbmdEaXJlY3Rpb25OYW1lOiAnJwogICAgICB9LAogICAgICBkZXRhaWxEaWFsb2c6IGZhbHNlLAogICAgICBkZXRhaWxEYXRhOiB7fSwKICAgICAgbGluZVdheURhdGE6IFtdCiAgICB9LCBfZGVmaW5lUHJvcGVydHkoX3JlZiwgImlkcyIsIFtdKSwgX2RlZmluZVByb3BlcnR5KF9yZWYsICJmaWxlTGlzdCIsIFtdKSwgX2RlZmluZVByb3BlcnR5KF9yZWYsICJjYW1lcmFDb2RlVmFsdWUiLCAiIiksIF9kZWZpbmVQcm9wZXJ0eShfcmVmLCAiZGlhbG9nVHlwZSIsICIiKSwgX2RlZmluZVByb3BlcnR5KF9yZWYsICJoZWFkZXJzIiwgewogICAgICBBdXRob3JpemF0aW9uOiBnZXRUb2tlbigpCiAgICB9KSwgX2RlZmluZVByb3BlcnR5KF9yZWYsICJhY3Rpb24iLCAiaHR0cDovLzEyNC43MC41OC4yMDk6MTg4MTkvaGF6YXJkL3NlcnZpY2UvYmFzZUNhbWVyYU1hbmFnZW1lbnQvaW1wb3J0QmFzZUFjY291bnRNYW5hZ2VtZW50IiksIF9yZWY7CiAgfQp9LCBfZGVmaW5lUHJvcGVydHkoX25hbWUkY29tcHV0ZWQkZGF0YSRjLCAiY29tcHV0ZWQiLCBfb2JqZWN0U3ByZWFkKHt9LCBtYXBHZXR0ZXJzKFsibmFtZSJdKSkpLCBfZGVmaW5lUHJvcGVydHkoX25hbWUkY29tcHV0ZWQkZGF0YSRjLCAid2F0Y2giLCB7CiAgImZvcm0uZGVwdE5hbWUiOiB7CiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKHZhbCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB0aGlzLiRzZXQodGhpcy5mb3JtLCAiZGVwdE5hbWUiLCB2YWwpOwogICAgICB0aGlzLm9wdGlvblByb3BzLm1hcChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHsKICAgICAgICBpZiAodmFsID09IGl0ZW0udmFsdWUpIHsKICAgICAgICAgIF90aGlzLiRzZXQoX3RoaXMuZm9ybSwgImRlcHRJZCIsIGl0ZW0udmFsdWUpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgZGVlcDogdHJ1ZSAvLyDmt7HlsYLnm5HlkKwKICB9LAoKICAnZm9ybS5pbnN0YWxsTG9uZ2l0dWRlJzogZnVuY3Rpb24gZm9ybUluc3RhbGxMb25naXR1ZGUobmV3dmFsLCBvbGR2YWwpIHsKICAgIHZhciByZWcgPSAvXihcZHswLDN9KShcLihcZHswLDEzfSkpPyQvZzsKICAgIGlmICghcmVnLnRlc3QobmV3dmFsKSkgewogICAgICBpZiAobmV3dmFsID09IHVuZGVmaW5lZCB8fCBuZXd2YWwgPT0gbnVsbCkgewogICAgICAgIC8vIHRoaXMuZm9ybS5pbnN0YWxsTG9uZ2l0dWRlID0gJyc7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHRoaXMuZm9ybS5pbnN0YWxsTG9uZ2l0dWRlID0gb2xkdmFsOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5mb3JtLmluc3RhbGxMb25naXR1ZGUgPSBuZXd2YWwucmVwbGFjZSgvXlwuL2csICIiKTsKICAgIH0KICB9LAogICdmb3JtLmluc3RhbGxMYXRpdHVkZSc6IGZ1bmN0aW9uIGZvcm1JbnN0YWxsTGF0aXR1ZGUobmV3dmFsLCBvbGR2YWwpIHsKICAgIHZhciByZWcgPSAvXihcZHswLDN9KShcLihcZHswLDEzfSkpPyQvZzsKICAgIGlmICghcmVnLnRlc3QobmV3dmFsKSkgewogICAgICBpZiAobmV3dmFsID09IHVuZGVmaW5lZCB8fCBuZXd2YWwgPT0gbnVsbCkgewogICAgICAgIC8vIHRoaXMuZm9ybS5pbnN0YWxsTGF0aXR1ZGUgPSAnJzsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy5mb3JtLmluc3RhbGxMYXRpdHVkZSA9IG9sZHZhbDsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuZm9ybS5pbnN0YWxsTGF0aXR1ZGUgPSBuZXd2YWwucmVwbGFjZSgvXlwuL2csICIiKTsKICAgIH0KICB9Cn0pLCBfZGVmaW5lUHJvcGVydHkoX25hbWUkY29tcHV0ZWQkZGF0YSRjLCAiY3JlYXRlZCIsIGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgdGhpcy5nZXRDYW1lcmFMaXN0KCk7CiAgdGhpcy5nZXRXb3JrU2V0aW9uKCk7CiAgdGhpcy5nZXREZXB0TGlzdCgpOwogIHRoaXMuZ2V0TGluZVdheUxpc3QoKTsKICB0aGlzLmdldExpbmVUeXBlTGlzdCgpOwogIHRoaXMuZ2V0RGlyZWN0aW9uU2VsZWN0KCk7Cn0pLCBfZGVmaW5lUHJvcGVydHkoX25hbWUkY29tcHV0ZWQkZGF0YSRjLCAibWV0aG9kcyIsIHsKICBoYW5kbGVFbmFibGVDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUVuYWJsZUNoYW5nZShyb3cpIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgdmFyIHBhcmFtcyA9IHsKICAgICAgaWQ6IHJvdy5pZCwKICAgICAgZW5hYmxlT3JOb3Q6IHJvdy5lbmFibGVPck5vdAogICAgfTsKICAgIHRvRW5hYkFjY3JhbWUocGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgIF90aGlzMi4kbWVzc2FnZSh7CiAgICAgICAgICBtZXNzYWdlOiByZXMubXNnLAogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiCiAgICAgICAgfSk7CiAgICAgICAgX3RoaXMyLmdldENhbWVyYUxpc3QoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfdGhpczIuJG1lc3NhZ2UoewogICAgICAgICAgbWVzc2FnZTogcmVzLm1zZywKICAgICAgICAgIHR5cGU6ICJlcnJvciIKICAgICAgICB9KTsKICAgICAgICBfdGhpczIuZ2V0Q2FtZXJhTGlzdCgpOwogICAgICB9CiAgICB9KTsKICB9LAogIGdvQ2xpY2s6IGZ1bmN0aW9uIGdvQ2xpY2soKSB7CiAgICBjb25zb2xlLmxvZyh0aGlzLnJvdyk7CiAgICBlZGl0QWNjb3VudE1hbmFnZW1lbnQoewogICAgICBpZDogdGhpcy5yb3cuaWQsCiAgICAgIGNhbWVyYUNvZGU6IHRoaXMucm93LmNhbWVyYUNvZGUsCiAgICAgIHVybDogdGhpcy52aWRlb1VybAogICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgIGNvbnNvbGUubG9nKHJlcyk7CiAgICB9KTsKICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IGZhbHNlOwogIH0sCiAgYmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVVcGxvYWQoZmlsZSkgewogICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKICAgIGZvcm1EYXRhLmFwcGVuZCgiZmlsZSIsIGZpbGUpOyAvLyDlsIbmlofku7bmt7vliqDliLBGb3JtRGF0YeWvueixoeS4rQogICAgc2VydmljZUZpbGVvc3MoZm9ybURhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICBfdGhpczMudmlkZW9VcmwgPSByZXMuZGF0YTsKICAgIH0pOwogIH0sCiAgZGVzY0lucHV0OiBmdW5jdGlvbiBkZXNjSW5wdXQoKSB7CiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm0uY2FtZXJhQ29kZS5sZW5ndGgsICIsLCwsLCwsLCwsLCwsLCwsLCwsIik7CiAgfSwKICBmYWxzZVNob3dVcGxvYWQ6IGZ1bmN0aW9uIGZhbHNlU2hvd1VwbG9hZCgpIHsKICAgIHRoaXMudXBsb2FkRGlhbG9nID0gZmFsc2U7CiAgICB0aGlzLmZpbGVMaXN0ID0gW107CiAgfSwKICB1cGxvYWRGaWxlTGlzdDogZnVuY3Rpb24gdXBsb2FkRmlsZUxpc3QoZmlsZSkgewogICAgaWYgKGZpbGUuc3RhdHVzID09PSAicmVhZHkiKSB7CiAgICAgIHRoaXMuZmlsZUxpc3QucHVzaChmaWxlKTsKICAgICAgaWYgKHRoaXMuZmlsZUxpc3QubGVuZ3RoID4gMSkgewogICAgICAgIHRoaXMuZmlsZUxpc3Quc3BsaWNlKDAsIDEpOwogICAgICB9CiAgICB9CiAgfSwKICB1cGxvYWRTdWJtaXREaWFsb2c6IGZ1bmN0aW9uIHVwbG9hZFN1Ym1pdERpYWxvZygpIHsKICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgdmFyIGZpbGVEYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICBmaWxlRGF0YS5hcHBlbmQoImZpbGUiLCB0aGlzLmZpbGVMaXN0WzBdLnJhdyk7CiAgICB2YXIgaXNIdHRwUmVxdWVzdCA9IHRoaXMuZmlsZUxpc3RbMF0ucmF3Lm5hbWUuc3BsaXQoIi4iKTsKICAgIGlmIChpc0h0dHBSZXF1ZXN0W2lzSHR0cFJlcXVlc3QubGVuZ3RoIC0gMV0gPT0gInhsc3giIHx8IGlzSHR0cFJlcXVlc3RbaXNIdHRwUmVxdWVzdC5sZW5ndGggLSAxXSA9PSAieGxzIikgewogICAgICBnZXRDYW1lcmFEYXRhVXBMb2FkSW4oZmlsZURhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIF90aGlzNC4kbWVzc2FnZSh7CiAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgICAgbWVzc2FnZTogIuWvvOWFpeaIkOWKnyEiCiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzNC51cGxvYWREaWFsb2cgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNC5nZXRDYW1lcmFMaXN0KCk7CiAgICAgICAgICBfdGhpczQuZmlsZUxpc3QgPSBbXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM0LiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogImVycm9yIiwKICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZwogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpczQuZ2V0Q2FtZXJhTGlzdCgpOwogICAgICAgICAgX3RoaXM0LmZpbGVMaXN0ID0gW107CiAgICAgICAgfQogICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgIHR5cGU6ICJlcnJvciIsCiAgICAgICAgbWVzc2FnZTogIuS4iuS8oOeahOaWh+S7tuWPquiDveaYr3hsc+S7peWPinhsc3jmoLzlvI8hIgogICAgICB9KTsKICAgICAgdGhpcy5maWxlTGlzdCA9IFtdOwogICAgfQogIH0sCiAgLy8g6aqM6K+B5paH5Lu257G75Z6LCiAgYmVmb3JlQXZhdGFyVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVBdmF0YXJVcGxvYWQoZmlsZSkgewogICAgdmFyIGlzWGxzID0gZmlsZS50eXBlID09PSAiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsIiA/IHRydWUgOiBmaWxlLnR5cGUgPT09ICJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCI7CiAgICBpZiAoIWlzWGxzKSB7CiAgICAgIGFsZXJ0KCLkuIrkvKDnmoTmlofku7blj6rog73mmK94bHPku6Xlj4p4bHN45qC85byPISIpOwogICAgfQogICAgcmV0dXJuIGlzWGxzOwogIH0sCiAgLy8g5Yik5pat5paH5Lu25Liq5pWwCiAgaGFuZGxlQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UoZmlsZSwgZmlsZUxpc3QpIHsKICAgIGlmIChmaWxlTGlzdC5sZW5ndGggPj0gMikgewogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZmlsZUxpc3QubGVuZ3RoID09PSAxKSB7CiAgICAgIHRoaXMuaGFzRmlsZSA9IHRydWU7CiAgICB9CiAgICB0aGlzLmRhdGFGb3JtLmZpbGUgPSBmaWxlOwogIH0sCiAgLy8g5a+85YWlCiAgaHR0cFJlcXVlc3Q6IGZ1bmN0aW9uIGh0dHBSZXF1ZXN0KHBhcmFtKSB7CiAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgIHZhciBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwogICAgZm9ybURhdGEuYXBwZW5kKCJmaWxlIiwgdGhpcy5kYXRhRm9ybS5maWxlLnJhdyk7CiAgICB2YXIgY29uZmlnSGVhZGVycyA9IHsKICAgICAgaGVhZGVyczogewogICAgICAgICJDb250ZW50LVR5cGUiOiAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIKICAgICAgfQogICAgfTsKICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YUZvcm0uZmlsZS5yYXcubmFtZSwgInRoaXMuZmlsZUxpc3RbMF0ucmF3Lm5hbWV0aGlzLmZpbGVMaXN0WzBdLnJhdy5uYW1ldGhpcy5maWxlTGlzdFswXS5yYXcubmFtZXRoaXMuZmlsZUxpc3RbMF0ucmF3Lm5hbWUiKTsKICAgIHZhciBpc0h0dHBSZXF1ZXN0ID0gdGhpcy5kYXRhRm9ybS5maWxlLnJhdy5uYW1lLnNwbGl0KCIuIik7CiAgICBpZiAoaXNIdHRwUmVxdWVzdFtpc0h0dHBSZXF1ZXN0Lmxlbmd0aCAtIDFdID09ICJ4bHN4IiB8fCBpc0h0dHBSZXF1ZXN0W2lzSHR0cFJlcXVlc3QubGVuZ3RoIC0gMV0gPT0gInhscyIpIHsKICAgICAgZ2V0Q2FtZXJhRGF0YVVwTG9hZEluKGZvcm1EYXRhKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBfdGhpczUuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgICAgIG1lc3NhZ2U6ICLlr7zlhaXmiJDlip8hIgogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpczUuZ2V0Q2FtZXJhTGlzdChfdGhpczUuZGF0YSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzNS4kbWVzc2FnZSh7CiAgICAgICAgICAgIHR5cGU6ICJlcnJvciIsCiAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2cKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAiZXJyb3IiLAogICAgICAgIG1lc3NhZ2U6ICLkuIrkvKDnmoTmlofku7blj6rog73mmK94bHPku6Xlj4p4bHN45qC85byPISIKICAgICAgfSk7CiAgICB9CiAgfSwKICBjaGFuZ2VWYWx1ZTogZnVuY3Rpb24gY2hhbmdlVmFsdWUodmFsKSB7fSwKICAvLyDooYzliKvkuIvmi4kKICBnZXRMaW5lVHlwZUxpc3Q6IGZ1bmN0aW9uIGdldExpbmVUeXBlTGlzdCgpIHsKICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgZ2V0TGluZURpcih7fSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgIF90aGlzNi5saW5lRGlyID0gcmVzLmRhdGE7CiAgICB9KTsKICB9LAogIGdldERpcmVjdGlvblNlbGVjdDogZnVuY3Rpb24gZ2V0RGlyZWN0aW9uU2VsZWN0KCkgewogICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICBnZXREaXJlY3Rpb24oe30pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICBfdGhpczcuZmlyZWN0aW9uRGF0YSA9IHJlcy5kYXRhOwogICAgfSk7CiAgfSwKICBoYW5kbGVTdGF0dXNDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVN0YXR1c0NoYW5nZShyb3cpIHsKICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgaWYgKHJvdy5zdGFydFJlY29yZGluZyA9PSAiMiIpIHsKICAgICAgZ2V0UmVjb3JkaW5nKHJvdy5pZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgX3RoaXM4LiRtZXNzYWdlKHsKICAgICAgICAgICAgbWVzc2FnZTogIuWFs+mXreaIkOWKnyIsCiAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIgogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzOC4kbWVzc2FnZSh7CiAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2csCiAgICAgICAgICAgIHR5cGU6ICJlcnJvciIKICAgICAgICAgIH0pOwogICAgICAgICAgX3RoaXM4LmdldENhbWVyYUxpc3QoKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSBlbHNlIGlmIChyb3cuc3RhcnRSZWNvcmRpbmcgPT0gIjEiKSB7CiAgICAgIGdldFN0YXJ0UmVjb3JkaW5nKHJvdy5pZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgX3RoaXM4LiRtZXNzYWdlKHsKICAgICAgICAgICAgbWVzc2FnZTogIuW8gOWQr+aIkOWKnyIsCiAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIgogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzOC4kbWVzc2FnZSh7CiAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2csCiAgICAgICAgICAgIHR5cGU6ICJlcnJvciIKICAgICAgICAgIH0pOwogICAgICAgICAgX3RoaXM4LmdldENhbWVyYUxpc3QoKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogIH0sCiAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7CiAgICB0aGlzLmlkcyA9IHZhbC5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICB9KTsKICB9LAogIGhhbmRsZVF1ZXJ5OiBmdW5jdGlvbiBoYW5kbGVRdWVyeSgpIHsKICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICB0aGlzLmdldENhbWVyYUxpc3QoKTsKICB9LAogIHJlc2V0OiBmdW5jdGlvbiByZXNldCgpIHsKICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwdE5hbWUgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwdElkID0gIiI7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnJhaWx3YXlDb2RlID0gIiI7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLmxpbmVEaXIgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMuYmVnaW5NaWxlQkQgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMuZW5kTWlsZUJEID0gIiI7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnN0YXRpb25OYW1lID0gIiI7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNhbWVyYUNvZGUgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMuZW5hYmxlT3JOb3QgPSAnJzsKICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplID0gMTA7CiAgICB0aGlzLmdldENhbWVyYUxpc3QoKTsKICB9LAogIGdldExpbmVXYXlMaXN0OiBmdW5jdGlvbiBnZXRMaW5lV2F5TGlzdCgpIHsKICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgX2dldExpbmVXYXlMaXN0KHt9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXM5LmxpbmVXYXlEYXRhID0gcmVzLmRhdGE7CiAgICB9KTsKICB9LAogIGhhbmRsZU5vZGVIYW5kbGVDbGljazogZnVuY3Rpb24gaGFuZGxlTm9kZUhhbmRsZUNsaWNrKGEpIHsKICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwdE5hbWUgPSBhLmxhYmVsOwogICAgdGhpcy5xdWVyeVBhcmFtcy5kZXB0SWQgPSBhLmlkOwogIH0sCiAgaGFuZGxlTm9kZUNsaWNrOiBmdW5jdGlvbiBoYW5kbGVOb2RlQ2xpY2sodikgewogICAgdGhpcy5mb3JtLmRlcHRJZCA9IHYuaWQ7CiAgICB0aGlzLmZvcm0uZGVwdE5hbWUgPSB2LmxhYmVsOwogIH0sCiAgZ2V0V29ya1NldGlvbjogZnVuY3Rpb24gZ2V0V29ya1NldGlvbigpIHsKICAgIHZhciBfdGhpczEwID0gdGhpczsKICAgIF9nZXRXb3JrU2V0aW9uKHt9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpczEwLndvcmtTZXRpRGF0YSA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIGdldExpbmVEYXRhKHt9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpczEwLmdldExpbmVEYXRhID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogIH0sCiAgZ2V0RGVwdExpc3Q6IGZ1bmN0aW9uIGdldERlcHRMaXN0KCkgewogICAgdmFyIF90aGlzMTEgPSB0aGlzOwogICAgX2dldERlcHRMaXN0KHt9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXMxMS50cmVlRGF0YSA9IHJlcy5kYXRhOwogICAgfSk7CiAgfSwKICBoYW5kbGVDdXJyZW50Q2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVDdXJyZW50Q2hhbmdlKHZhbCkgewogICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gdmFsOwogICAgdGhpcy5nZXRDYW1lcmFMaXN0KCk7CiAgfSwKICBoYW5kbGVTaXplQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTaXplQ2hhbmdlKHZhbCkgewogICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlU2l6ZSA9IHZhbDsKICAgIHRoaXMuZ2V0Q2FtZXJhTGlzdCgpOwogIH0sCiAgZ2V0Q2FtZXJhTGlzdDogZnVuY3Rpb24gZ2V0Q2FtZXJhTGlzdCgpIHsKICAgIHZhciBfdGhpczEyID0gdGhpczsKICAgIGRlbGV0ZSB0aGlzLnF1ZXJ5UGFyYW1zLmlkczsKICAgIGNvbnNvbGUubG9nKHRoaXMucXVlcnlQYXJhbXMsICJ0aGlzLnF1ZXJ5UGFyYW1zdGhpcy5xdWVyeVBhcmFtc3RoaXMucXVlcnlQYXJhbXMiKTsKICAgIGdldENhbWVyYURhdGFMaXN0KHRoaXMucXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIGlmICghX3RoaXMxMi5xdWVyeVBhcmFtcy5wYWdlTnVtIHx8ICFfdGhpczEyLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplKSB7CiAgICAgICAgX3RoaXMxMi5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgICBfdGhpczEyLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplID0gMTA7CiAgICAgICAgZ2V0Q2FtZXJhRGF0YUxpc3QoX3RoaXMxMi5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczEyLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnJlY29yZHM7CiAgICAgICAgICBfdGhpczEyLnRvdGFsID0gcmVzLmRhdGEudG90YWw7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaWYgKHJlc3BvbnNlLmRhdGEucmVjb3Jkcy5sZW5ndGggPT0gMCAmJiBfdGhpczEyLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gIT0gMSkgewogICAgICAgIF90aGlzMTIucXVlcnlQYXJhbXMucGFnZU51bSA9IF90aGlzMTIucXVlcnlQYXJhbXMucGFnZU51bSAtIDE7CiAgICAgICAgZ2V0Q2FtZXJhRGF0YUxpc3QoX3RoaXMxMi5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczEyLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnJlY29yZHM7CiAgICAgICAgICBfdGhpczEyLnRvdGFsID0gcmVzcG9uc2UuZGF0YS50b3RhbDsKICAgICAgICB9KTsKICAgICAgfQogICAgICBfdGhpczEyLnRhYmxlRGF0YSA9IHJlc3BvbnNlLmRhdGEucmVjb3JkczsKICAgICAgX3RoaXMxMi50b3RhbCA9IHJlc3BvbnNlLmRhdGEudG90YWw7CiAgICAgIGlmIChfdGhpczEyLnRhYmxlRGF0YS5sZW5ndGggPiAwKSB7CiAgICAgICAgaWYgKF90aGlzMTIudGFibGVEYXRhWzBdLmlzU3RhcnRSZWNvcmRpbmcgPT0gMSkgewogICAgICAgICAgX3RoaXMxMi5zdGFydFN0YXR1cyA9IDE7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIF90aGlzMTIucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgICAgX3RoaXMxMi5xdWVyeVBhcmFtcy5wYWdlU2l6ZSA9IDEwOwogICAgICAgIF90aGlzMTIudG90YWwgPSByZXNwb25zZS5kYXRhLnRvdGFsOwogICAgICAgIHJldHVybjsKICAgICAgICBfdGhpczEyLnN0YXJ0U3RhdHVzID0gMDsKICAgICAgfQogICAgfSk7CiAgfSwKICBhZGRFcXVpcG1lbnQ6IGZ1bmN0aW9uIGFkZEVxdWlwbWVudCgpIHsKICAgIHRoaXMuZm9ybSA9IHt9OwoKICAgIC8vIHRoaXMuJHJlZnNbJ2Zvcm0nXS5yZXNldEZpZWxkcygpCiAgICB0aGlzLmRpYWxvZ1R5cGUgPSAxOwogICAgdGhpcy50aXRsZSA9ICLmlrDlop7orr7lpIciOwogICAgLy8gYWxlcnQodGhpcy5mb3JtLmVuYWJsZU9yTm90KQogICAgLy8gYWxlcnQodGhpcy5mb3JtLmluc3RhbGxMYXRpdHVkZSkKICAgIHRoaXMuZm9ybS5lbmFibGVPck5vdCA9IDE7CiAgICB0aGlzLmRpc2FibGVkU2F2ZSA9IGZhbHNlOwogICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IHRydWU7CiAgfSwKICBjbG9zZURpYTogZnVuY3Rpb24gY2xvc2VEaWEoKSB7CiAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2U7CiAgICB0aGlzLiRyZWZzWyJmb3JtIl0ucmVzZXRGaWVsZHMoKTsKICAgIHRoaXMuZm9ybSA9IHt9OwogIH0sCiAgQ2xvc2VJbjogZnVuY3Rpb24gQ2xvc2VJbigpIHsKICAgIHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSBmYWxzZTsKICAgIHRoaXMuJHJlZnNbImZvcm0iXS5yZXNldEZpZWxkcygpOwogICAgdGhpcy5mb3JtID0ge307CiAgfSwKICBzdWJtaW50OiBmdW5jdGlvbiBzdWJtaW50KCkgewogICAgdmFyIF90aGlzMTMgPSB0aGlzOwogICAgdGhpcy4kcmVmcy5mb3JtLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICBpZiAodmFsaWQpIHsKICAgICAgICBpZiAoX3RoaXMxMy5mb3JtLmJlZ2luTWlsZUJEID4gX3RoaXMxMy5mb3JtLmVuZE1pbGVCRCkgewogICAgICAgICAgcmV0dXJuIF90aGlzMTMuJG1lc3NhZ2UoewogICAgICAgICAgICBtZXNzYWdlOiAi57uT5p2f6YeM56iL5b+F6aG75aSn5LqO6LW35aeL6YeM56iLIiwKICAgICAgICAgICAgdHlwZTogImVycm9yIgogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGlmIChfdGhpczEzLmRpYWxvZ1R5cGUgPT0gMSkgewogICAgICAgICAgX3RoaXMxMy5maXJlY3Rpb25EYXRhLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgaWYgKGl0ZW0uZGljdExhYmVsID09IF90aGlzMTMuZm9ybS5tb25pdG9yaW5nRGlyZWN0aW9uTmFtZSkgewogICAgICAgICAgICAgIF90aGlzMTMuZm9ybS5tb25pdG9yaW5nRGlyZWN0aW9uID0gaXRlbS5kaWN0VmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgX3RoaXMxMy5saW5lRGlyLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgaWYgKGl0ZW0uZGljdExhYmVsID09IF90aGlzMTMuZm9ybS5saW5lRGlyTmFtZSkgewogICAgICAgICAgICAgIF90aGlzMTMuZm9ybS5saW5lRGlyID0gaXRlbS5kaWN0VmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgLy8gZGVsZXRlIHRoaXMuZm9ybS5kZXB0TmFtZQogICAgICAgICAgX3RoaXMxMy5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb24gPSBOdW1iZXIoX3RoaXMxMy5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb25OYW1lKTsKICAgICAgICAgIF90aGlzMTMuZm9ybS5saW5lRGlyID0gTnVtYmVyKF90aGlzMTMuZm9ybS5saW5lRGlyTmFtZSk7CiAgICAgICAgICBfdGhpczEzLmRpc2FibGVkU2F2ZSA9IHRydWU7CiAgICAgICAgICBnZXRDYW1lcmFEYXRhQWRkTmV3ZXIoX3RoaXMxMy5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PSAyMDApIHsKICAgICAgICAgICAgICBfdGhpczEzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICLmlrDlop7miJDlip8iLAogICAgICAgICAgICAgICAgdHlwZTogInN1Y2Nlc3MiCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgX3RoaXMxMy5nZXRDYW1lcmFMaXN0KCk7CiAgICAgICAgICAgICAgX3RoaXMxMy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgIF90aGlzMTMuJHJlZnNbImZvcm0iXS5yZXNldEZpZWxkcygpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIF90aGlzMTMuZGlzYWJsZWRTYXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgX3RoaXMxMy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tc2csCiAgICAgICAgICAgICAgICB0eXBlOiAiZXJyb3IiCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSBpZiAoX3RoaXMxMy5kaWFsb2dUeXBlID09IDIpIHsKICAgICAgICAgIGRlbGV0ZSBfdGhpczEzLmZvcm0uYmVnaW5NaWxlczsKICAgICAgICAgIGRlbGV0ZSBfdGhpczEzLmZvcm0uZW5kTWlsZXM7CiAgICAgICAgICBkZWxldGUgX3RoaXMxMy5mb3JtLmluc3RhbGxNaWxlczsKICAgICAgICAgIF90aGlzMTMuZm9ybS5saW5lRGlyID0gX3RoaXMxMy5mb3JtLmxpbmVEaXJOYW1lOwogICAgICAgICAgX3RoaXMxMy5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb24gPSBOdW1iZXIoX3RoaXMxMy5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb25OYW1lKTsKICAgICAgICAgIGlmIChfdGhpczEzLmZvcm0ubGluZURpciA9PSAi5LiK6KGMIikgewogICAgICAgICAgICBfdGhpczEzLmZvcm0ubGluZURpciA9IDE7CiAgICAgICAgICB9IGVsc2UgaWYgKF90aGlzMTMuZm9ybS5saW5lRGlyID09ICLkuIvooYwiKSB7CiAgICAgICAgICAgIF90aGlzMTMuZm9ybS5saW5lRGlyID0gMjsKICAgICAgICAgIH0KICAgICAgICAgIGdldENhbWVyYURhdGFVcGRhdGUoX3RoaXMxMy5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgICAgIF90aGlzMTMuJG1lc3NhZ2UoewogICAgICAgICAgICAgICAgbWVzc2FnZTogIuS/ruaUueaIkOWKnyIsCiAgICAgICAgICAgICAgICB0eXBlOiAic3VjY2VzcyIKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczEzLmdldENhbWVyYUxpc3QoKTsKICAgICAgICAgICAgICBfdGhpczEzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAgX3RoaXMxMy4kcmVmc1siZm9ybSJdLnJlc2V0RmllbGRzKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX3RoaXMxMy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnLAogICAgICAgICAgICAgICAgdHlwZTogImVycm9yIgogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH0pOwogIH0sCiAgZWRpdEVxdWlwOiBmdW5jdGlvbiBlZGl0RXF1aXAocm93KSB7CiAgICB2YXIgX3RoaXMxNCA9IHRoaXM7CiAgICB0aGlzLmRpYWxvZ1R5cGUgPSAyOwogICAgdGhpcy5kaXNhYmxlZFNhdmUgPSBmYWxzZTsKICAgIHRoaXMudGl0bGUgPSAi5L+u5pS56K6+5aSH5L+h5oGvIjsKICAgIHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSB0cnVlOwogICAgLy8gdGhpcy5mb3JtID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyb3cpKQogICAgZ2V0Q2FtZXJhRmV0YWlsKHJvdy5pZCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgIF90aGlzMTQuZm9ybSA9IHJlcy5kYXRhOwogICAgICBfdGhpczE0LmxpbmVEaXIuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGlmIChpdGVtLmRpY3RWYWx1ZSA9PSBfdGhpczE0LmZvcm0ubGluZURpcikgewogICAgICAgICAgX3RoaXMxNC5mb3JtLmxpbmVEaXJOYW1lID0gaXRlbS5kaWN0TGFiZWw7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgX3RoaXMxNC5maXJlY3Rpb25EYXRhLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBpZiAoaXRlbS5kaWN0VmFsdWUgPT0gX3RoaXMxNC5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb24pIHsKICAgICAgICAgIF90aGlzMTQuZm9ybS5tb25pdG9yaW5nRGlyZWN0aW9uTmFtZSA9IGl0ZW0uZGljdExhYmVsOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9LAogIGRlbENhbWVyYUxpc3Q6IGZ1bmN0aW9uIGRlbENhbWVyYUxpc3QoKSB7CiAgICB2YXIgX3RoaXMxNSA9IHRoaXM7CiAgICBpZiAodGhpcy5pZHMubGVuZ3RoID09IDApIHsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogImVycm9yIiwKICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup6ZyA6KaB5Yig6Zmk55qE5pWw5o2uIgogICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuJGNvbmZpcm0oIuehruWumuimgeWIoOmZpOWQlz8iLCAi5L+h5oGv5o+Q56S6IiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgZ2V0Q2FtZXJhRGF0YURlbGV0ZShfdGhpczE1LmlkcykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgIF90aGlzMTUuZ2V0Q2FtZXJhTGlzdCgpOwogICAgICAgICAgICBfdGhpczE1LiRtZXNzYWdlKHsKICAgICAgICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgICAgICAgbWVzc2FnZTogIuWIoOmZpOaIkOWKnyEiCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX3RoaXMxNS4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgdHlwZTogImVycm9yIiwKICAgICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMxNS4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAiaW5mbyIsCiAgICAgICAgICBtZXNzYWdlOiAi5bey5Y+W5raI5Yig6ZmkIgogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICB9LAogIGRlbENhbWVyYTogZnVuY3Rpb24gZGVsQ2FtZXJhKHJvdykgewogICAgdmFyIF90aGlzMTYgPSB0aGlzOwogICAgdGhpcy5pZHMgPSByb3cuaWQ7CiAgICB0aGlzLiRjb25maXJtKCLnoa7lrpropoHliKDpmaTlkJc/IiwgIuS/oeaBr+aPkOekuiIsIHsKICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgdHlwZTogIndhcm5pbmciCiAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgZ2V0Q2FtZXJhRGF0YURlbGV0ZShfdGhpczE2LmlkcykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgX3RoaXMxNi5nZXRDYW1lcmFMaXN0KCk7CiAgICAgICAgICBfdGhpczE2LiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgICBtZXNzYWdlOiAi5Yig6Zmk5oiQ5YqfISIKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczE2LiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogImVycm9yIiwKICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgX3RoaXMxNi4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogImluZm8iLAogICAgICAgIG1lc3NhZ2U6ICLlt7Llj5bmtojliKDpmaQiCiAgICAgIH0pOwogICAgfSk7CiAgfSwKICB1cGxvYWRPdXQ6IGZ1bmN0aW9uIHVwbG9hZE91dCgpIHsKICAgIHZhciBfdGhpczE3ID0gdGhpczsKICAgIGRlbGV0ZSB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW07CiAgICBkZWxldGUgdGhpcy5xdWVyeVBhcmFtcy5wYWdlU2l6ZTsKICAgIHRoaXMucXVlcnlQYXJhbXMuaWRzID0gdGhpcy5pZHM7CiAgICAvLyBpZih0aGlzLnF1ZXJ5UGFyYW1zLmlkcy5sZW5ndGggPT0gMCkgewogICAgLy8gICByZXR1cm4gdGhpcy4kbWVzc2FnZSh7CiAgICAvLyAgICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqemcgOimgeWvvOWHuueahOaVsOaNricsCiAgICAvLyAgICAgICAgICAgdHlwZTogImVycm9yIiwKICAgIC8vICAgICAgICAgfSk7CiAgICAvLyB9CiAgICBnZXRDYW1lcmFEYXRhVXBMb2FkT3V0KHRoaXMucXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAvLyB0aGlzLmV4cG9ydEZpbGUocmVzLCAi5pGE5YOP5py65Y+w6LSm5L+h5oGvIik7CgogICAgICBpZiAocmVzLnR5cGUgPT0gImFwcGxpY2F0aW9uL2pzb24iKSB7CiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQocmVzLCAndXRmLTgnKTsKICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIG1zZyA9IEpTT04ucGFyc2UocmVhZGVyLnJlc3VsdCk7CiAgICAgICAgICBpZiAobXNnLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgIHRoaXMuZXhwb3J0RmlsZShyZXMsICLmkYTlg4/mnLrlj7DotKbkv6Hmga8iKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIE1lc3NhZ2UoewogICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsCiAgICAgICAgICAgICAgbWVzc2FnZTogbXNnLm1zZwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9IGVsc2UgewogICAgICAgIF90aGlzMTcuZXhwb3J0RmlsZShyZXMsICLmkYTlg4/mnLrlj7DotKbkv6Hmga8iKTsKICAgICAgfQogICAgfSk7CiAgfSwKICBleHBvcnRGaWxlOiBmdW5jdGlvbiBleHBvcnRGaWxlKG9iaikgewogICAgdmFyIG5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IERhdGUubm93KCk7CiAgICB2YXIgc3VmZml4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAieGxzeCI7CiAgICB2YXIgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW29ial0sIHsKICAgICAgdHlwZTogImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCIKICAgIH0pKTsKICAgIHZhciBhRE9NID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgYURPTS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgYURPTS5ocmVmID0gdXJsOwogICAgdmFyIGZpbGVOYW1lID0gbmFtZSArICIuIiArIHN1ZmZpeDsKICAgIGFET00uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsIGZpbGVOYW1lKTsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYURPTSk7CiAgICBhRE9NLmNsaWNrKCk7CiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFET00pOwogIH0sCiAgZG93bmxvYWRPdXQ6IGZ1bmN0aW9uIGRvd25sb2FkT3V0KCkgewogICAgdmFyIF90aGlzMTggPSB0aGlzOwogICAgZ2V0RG93bkxvYWRMaXN0KHt9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXMxOC5leHBvcnREb3duRmlsZShyZXMsICLmkYTlg4/mnLrlj7DotKbmqKHmnb8iKTsKICAgIH0pOwogIH0sCiAgZXhwb3J0RG93bkZpbGU6IGZ1bmN0aW9uIGV4cG9ydERvd25GaWxlKG9iaikgewogICAgdmFyIG5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IERhdGUubm93KCk7CiAgICB2YXIgc3VmZml4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAieGxzeCI7CiAgICB2YXIgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW29ial0sIHsKICAgICAgdHlwZTogImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCIKICAgIH0pKTsKICAgIHZhciBhRE9NID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgYURPTS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgYURPTS5ocmVmID0gdXJsOwogICAgdmFyIGZpbGVOYW1lID0gbmFtZSArICIuIiArIHN1ZmZpeDsKICAgIGFET00uc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsIGZpbGVOYW1lKTsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYURPTSk7CiAgICBhRE9NLmNsaWNrKCk7CiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGFET00pOwogIH0sCiAgdXBkYXRlRmlsZUl0ZW06IGZ1bmN0aW9uIHVwZGF0ZUZpbGVJdGVtKHJvdykgewogICAgY29uc29sZS5sb2cocm93KTsKICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICB0aGlzLnJvdyA9IHJvdzsKICB9LAogIGxva0RldGFpbEluZm86IGZ1bmN0aW9uIGxva0RldGFpbEluZm8ocm93KSB7CiAgICB2YXIgX3RoaXMxOSA9IHRoaXM7CiAgICB0aGlzLmRldGFpbERpYWxvZyA9IHRydWU7CiAgICBnZXRDYW1lcmFGZXRhaWwocm93LmlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgcmVzLmRhdGEuaW5zdGFsbExvbmdpdHVkZSA9IHJlcy5kYXRhLmluc3RhbGxMb25naXR1ZGUgfHwgJyc7CiAgICAgIHJlcy5kYXRhLmluc3RhbGxMYXRpdHVkZSA9IHJlcy5kYXRhLmluc3RhbGxMYXRpdHVkZSB8fCAnJzsKICAgICAgX3RoaXMxOS5kZXRhaWxEYXRhID0gcmVzLmRhdGE7CiAgICAgIF90aGlzMTkuY2FtZXJhQ29kZVZhbHVlID0gX3RoaXMxOS5kZXRhaWxEYXRhLmNhbWVyYUNvZGU7CiAgICAgIGlmIChfdGhpczE5LmRldGFpbERhdGEuaW5zdGFsbExvbmdpdHVkZSAhPSBudWxsICYmIF90aGlzMTkuZGV0YWlsRGF0YS5pbnN0YWxsTGF0aXR1ZGUgIT0gbnVsbCAmJiBfdGhpczE5LmRldGFpbERhdGEuaW5zdGFsbExvbmdpdHVkZSAhPSAnJyAmJiBfdGhpczE5LmRldGFpbERhdGEuaW5zdGFsbExhdGl0dWRlICE9ICcnKSB7CiAgICAgICAgX3RoaXMxOS5wamp3ZCA9IF90aGlzMTkuZGV0YWlsRGF0YS5pbnN0YWxsTG9uZ2l0dWRlICsgIu+8jCIgKyBfdGhpczE5LmRldGFpbERhdGEuaW5zdGFsbExhdGl0dWRlOwogICAgICB9IGVsc2UgewogICAgICAgIF90aGlzMTkucGpqd2QgPSAnJzsKICAgICAgfQogICAgICBpZiAoX3RoaXMxOS5kZXRhaWxEYXRhLmJlZ2luTWlsZXMgIT0gbnVsbCAmJiBfdGhpczE5LmRldGFpbERhdGEuZW5kTWlsZXMgIT0gbnVsbCAmJiBfdGhpczE5LmRldGFpbERhdGEuYmVnaW5NaWxlcyAhPSAnJyAmJiBfdGhpczE5LmRldGFpbERhdGEuZW5kTWlsZXMgIT0gJycpIHsKICAgICAgICBfdGhpczE5LnBqSmtmdyA9IF90aGlzMTkuZGV0YWlsRGF0YS5iZWdpbk1pbGVzICsgIn4iICsgX3RoaXMxOS5kZXRhaWxEYXRhLmVuZE1pbGVzOwogICAgICB9IGVsc2UgewogICAgICAgIF90aGlzMTkucGpKa2Z3ID0gJyc7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgZGVsZXRlRXF1aXA6IGZ1bmN0aW9uIGRlbGV0ZUVxdWlwKCkgewogICAgdmFyIF90aGlzMjAgPSB0aGlzOwogICAgdGhpcy4kY29uZmlybSgi5q2k5pON5L2c5bCG5rC45LmF5Yig6Zmk6K+l5paH5Lu2LCDmmK/lkKbnu6fnu60/IiwgIuaPkOekuiIsIHsKICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgdHlwZTogIndhcm5pbmciCiAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgX3RoaXMyMC4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgIG1lc3NhZ2U6ICLliKDpmaTmiJDlip8hIgogICAgICB9KTsKICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgX3RoaXMyMC4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogImluZm8iLAogICAgICAgIG1lc3NhZ2U6ICLlt7Llj5bmtojliKDpmaQiCiAgICAgIH0pOwogICAgfSk7CiAgfSwKICBpbXBvcnRMb2FkSW46IGZ1bmN0aW9uIGltcG9ydExvYWRJbigpIHsKICAgIHRoaXMudXBsb2FkRGlhbG9nID0gdHJ1ZTsKICB9Cn0pLCBfbmFtZSRjb21wdXRlZCRkYXRhJGMpOw=="},{"version":3,"names":["getToken","mapGetters","editAccountManagement","serviceFileoss","getCameraDataList","getLineDir","getRecording","getStartRecording","getLineWayList","getCameraDataAddNewer","getDownLoadList","getWorkSetion","getLineData","getCameraDataDelete","getCameraFetail","getCameraDataUpLoadOut","getCameraDataUpdate","getDeptList","getCameraDataUpLoadIn","toEnabAccrame","getDirection","_name$computed$data$c","name","computed","_objectSpread","data","_ref","validatePassxjbm","rule","value","callback","undefined","Error","length","validatePassxjtd","azlcwz","qslc","jslc","pjjwd","pjJkfw","uploadUrl","dialogVisible","dataForm","file","videoUrl","searchShow","startStatus","rules","cameraCode","required","validator","trigger","channel","railwayCode","message","deptName","lineDirName","installMileBD","beginMileBD","endMileBD","cardNum","stationName","disabledSave","enter","queryParams","line","worksSection","lineDistinction","startMileage","finishtMileage","deptId","lineDir","pageNum","pageSize","firectionData","ids","title","uploadDialog","radioArray","label","statusOptions","xianlu","gongwuduan","licheng","zhangtai","tableData","treeData","workSetiData","total","dialogFormVisible","form","installLongitude","installLatitude","startRecording","remark","enableOrNot","monitoringDirection","monitoringDirectionName","detailDialog","detailData","lineWayData","_defineProperty","Authorization","handler","val","_this","$set","optionProps","map","item","index","deep","formInstallLongitude","newval","oldval","reg","test","replace","formInstallLatitude","created","getCameraList","getLineTypeList","getDirectionSelect","handleEnableChange","row","_this2","params","id","then","res","code","$message","msg","type","goClick","console","log","url","beforeUpload","_this3","formData","FormData","append","descInput","falseShowUpload","fileList","uploadFileList","status","push","splice","uploadSubmitDialog","_this4","fileData","raw","isHttpRequest","split","beforeAvatarUpload","isXls","alert","handleChange","hasFile","httpRequest","param","_this5","configHeaders","headers","changeValue","_this6","_this7","handleStatusChange","_this8","handleSelectionChange","handleQuery","reset","_this9","handleNodeHandleClick","a","handleNodeClick","v","_this10","response","_this11","handleCurrentChange","handleSizeChange","_this12","records","isStartRecording","addEquipment","dialogType","closeDia","$refs","resetFields","CloseIn","submint","_this13","validate","valid","forEach","dictLabel","dictValue","Number","beginMiles","endMiles","installMiles","editEquip","_this14","delCameraList","_this15","$confirm","confirmButtonText","cancelButtonText","catch","delCamera","_this16","uploadOut","_this17","reader","FileReader","readAsText","onload","JSON","parse","result","exportFile","Message","obj","arguments","Date","now","suffix","window","URL","createObjectURL","Blob","aDOM","document","createElement","style","display","href","fileName","setAttribute","body","appendChild","click","removeChild","downloadOut","_this18","exportDownFile","updateFileItem","lokDetailInfo","_this19","cameraCodeValue","deleteEquip","_this20","importLoadIn"],"sources":["src/views/account/camera/index.vue"],"sourcesContent":["<template>\r\n <div class=\"dashboard-container\">\r\n <div class=\"dashboard-text\">\r\n <div style=\"padding: 15px; background: #fff; margin-top: -15px\">\r\n <el-row :gutter=\"24\" type=\"flex\" style=\"flex-wrap: wrap\">\r\n <!-- <el-select\r\n v-model=\"queryParams.railwayCode\"\r\n placeholder=\"请选择线路\"\r\n style=\"width: 220px; padding: 0 10px\"\r\n clearable\r\n >\r\n <el-option\r\n v-for=\"item in lineWayData\"\r\n :key=\"item.railwayCode\"\r\n :label=\"item.railwayName\"\r\n :value=\"item.railwayCode\"\r\n />\r\n </el-select> -->\r\n <el-input placeholder=\"请输入摄像机编码\" style=\"width: 220px;padding: 0 10px\" v-model=\"queryParams.cameraCode\"></el-input>\r\n <el-input placeholder=\"请输入测点名称\" style=\"width: 220px;padding: 0 10px\" v-model=\"queryParams.stationName\"></el-input>\r\n <el-select\r\n v-model=\"queryParams.lineDir\"\r\n placeholder=\"请选择行别\"\r\n style=\"width: 220px; padding: 0 10px\"\r\n clearable\r\n >\r\n <el-option\r\n v-for=\"item in lineDir\"\r\n :key=\"item.dictValue\"\r\n :label=\"item.dictLabel\"\r\n :value=\"item.dictValue\"\r\n />\r\n </el-select>\r\n <div :span=\"12\">\r\n <div style=\"display: flex; align-items: center; margin-top: 2px\">\r\n <el-input\r\n v-model=\"queryParams.beginMileBD\"\r\n placeholder=\"请输入起始里程\"\r\n style=\"width: 220px; padding: 0 10px; position: relative\"\r\n clearable\r\n >\r\n <template slot=\"append\">km</template></el-input\r\n >\r\n <div\r\n style=\"\r\n width: 5px;\r\n height: 1px;\r\n background-color: #888;\r\n position: absolute;\r\n left: 880px;\r\n \"\r\n />\r\n <el-input\r\n v-model=\"queryParams.endMileBD\"\r\n placeholder=\"请输入结束里程\"\r\n style=\"width: 220px; padding: 0 10px\"\r\n clearable\r\n >\r\n <template slot=\"append\">km</template></el-input\r\n >\r\n </div>\r\n </div>\r\n <el-select\r\n v-model=\"queryParams.enableOrNot\"\r\n placeholder=\"摄像机启用状态\"\r\n style=\"width: 220px; padding: 0 10px\"\r\n clearable\r\n >\r\n <el-option\r\n v-for=\"item in statusOptions\"\r\n :key=\"item.value\"\r\n :label=\"item.label\"\r\n :value=\"item.value\"\r\n />\r\n </el-select>\r\n <div\r\n :span=\"6\"\r\n justify=\"end\"\r\n style=\"display: flex; margin-top: 2px\"\r\n type=\"flex\"\r\n >\r\n <div\r\n class=\"search_btn\"\r\n style=\"margin-left: 10px; cursor: pointer\"\r\n @click=\"handleQuery\"\r\n >\r\n 查询\r\n </div>\r\n <div\r\n class=\"reset_btn\"\r\n style=\"margin-left: 10px; cursor: pointer\"\r\n @click=\"reset\"\r\n >\r\n 重置\r\n </div>\r\n </div>\r\n </el-row>\r\n </div>\r\n\r\n <div style=\"padding: 20px; background: #fff; margin-top: 15px\">\r\n <div class=\"cardHeadr\">\r\n <div style=\"font-size: 18px; float: right; display: flex\">\r\n <div class=\"addBtn\" @click=\"addEquipment\">\r\n <span class=\"icon font_family\">&#xe604;</span>\r\n 新增\r\n </div>\r\n <div class=\"addBtn\" @click=\"delCameraList\">\r\n <span class=\"icon font_family\">&#xe607;</span>\r\n 批量删除\r\n </div>\r\n <div class=\"addBtn\" @click=\"importLoadIn\">\r\n <span class=\"icon font_family\">&#xe606;</span>\r\n 导入\r\n </div>\r\n <div class=\"addBtn\" @click=\"uploadOut\">\r\n <span class=\"icon font_family\">&#xe605;</span>\r\n 导出\r\n </div>\r\n <div class=\"addBtn\" @click=\"downloadOut\">\r\n <span class=\"icon font_family\">&#xe603;</span>\r\n 下载模板\r\n </div>\r\n </div>\r\n </div>\r\n <el-table\r\n :data=\"tableData\"\r\n style=\"width: 100%\"\r\n @selection-change=\"handleSelectionChange\"\r\n >\r\n <el-table-column type=\"selection\" width=\"35\" />\r\n <el-table-column\r\n prop=\"cameraCode\"\r\n label=\"摄像机编码\"\r\n width=\"175\"\r\n align=\"center\"\r\n fixed=\"left\"\r\n />\r\n <el-table-column\r\n prop=\"installMiles\"\r\n label=\"安装里程位置(km)\"\r\n width=\"175\"\r\n align=\"center\"\r\n fixed=\"left\"\r\n />\r\n <!-- <el-table-column prop=\"railwayName\" label=\"线路\" align=\"center\" /> -->\r\n <el-table-column prop=\"stationName\" label=\"测点名称\" align=\"center\" width=\"160px\"/>\r\n <el-table-column prop=\"lineDir\" label=\"行别\" align=\"center\">\r\n <templats slot-scope=\"scope\">\r\n <span v-if=\"scope.row.lineDir == 1\">上行</span>\r\n <span v-if=\"scope.row.lineDir == 2\">下行</span>\r\n </templats>\r\n </el-table-column>\r\n <el-table-column\r\n prop=\"beginMiles\"\r\n label=\"监控里程范围(km)\"\r\n align=\"center\"\r\n width=\"185\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <span v-if=\"scope.row.beginMiles && scope.row.endMiles\"\r\n >{{ scope.row.beginMiles }} ~ {{ scope.row.endMiles }}</span\r\n >\r\n <span v-else />\r\n </template>\r\n </el-table-column>\r\n <!-- v-if=\"this.startStatus == 1\" --> \r\n <!-- <el-table-column\r\n prop=\"startRecording\"\r\n label=\"录像开启状态\"\r\n width=\"175\"\r\n align=\"center\"\r\n v-if=\"this.startStatus == 1\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n v-model=\"scope.row.startRecording\"\r\n active-color=\"#006AEA\"\r\n :active-value=\"1\"\r\n :inactive-value=\"2\"\r\n inactive-color=\"#CDCDCD\"\r\n @change=\"handleStatusChange(scope.row)\"\r\n />\r\n </template>\r\n </el-table-column> -->\r\n <el-table-column\r\n prop=\"enableOrNot\"\r\n label=\"摄像机启用状态\"\r\n width=\"175\"\r\n align=\"center\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n v-model=\"scope.row.enableOrNot\"\r\n active-color=\"#006AEA\"\r\n :active-value=\"1\"\r\n :inactive-value=\"2\"\r\n inactive-color=\"#CDCDCD\"\r\n @change=\"handleEnableChange(scope.row)\"\r\n />\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n prop=\"installLongitude\"\r\n label=\"经纬度\"\r\n width=\"185\"\r\n align=\"center\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <span\r\n v-if=\"scope.row.installLongitude && scope.row.installLatitude\"\r\n >{{ scope.row.installLongitude }} ,\r\n {{ scope.row.installLatitude }}</span\r\n >\r\n <span v-else />\r\n </template>\r\n </el-table-column>\r\n <!-- <el-table-column\r\n prop=\"versionNum\"\r\n label=\"相机版本号\"\r\n align=\"center\"\r\n width=\"160\"\r\n />\r\n <el-table-column\r\n prop=\"versionName\"\r\n label=\"相机版本名称\"\r\n align=\"center\"\r\n width=\"160\"\r\n /> -->\r\n <!-- <el-table-column\r\n prop=\"remark\"\r\n label=\"备注\"\r\n align=\"center\"\r\n width=\"160\"\r\n show-overflow-tooltip\r\n /> -->\r\n <el-table-column\r\n prop=\"createTime\"\r\n label=\"创建时间\"\r\n align=\"center\"\r\n width=\"155\"\r\n />\r\n <el-table-column\r\n label=\"操作\"\r\n align=\"center\"\r\n fixed=\"right\"\r\n width=\"220\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <div class=\"operateBtn\" style=\"display: flex\">\r\n <div type=\"text\" @click=\"editEquip(scope.row)\">修改</div>\r\n <div type=\"text\" @click=\"delCamera(scope.row)\">\r\n <span>删除</span>\r\n </div>\r\n <div type=\"text\" @click=\"lokDetailInfo(scope.row)\">\r\n 详情查看\r\n </div>\r\n <div type=\"text\" @click=\"updateFileItem(scope.row)\">\r\n <div v-if=\"name==='chengbingxin'\">视频上传</div>\r\n </div>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <el-row type=\"flex\" justify=\"end\" style=\"margin-top: 10px\">\r\n <el-pagination\r\n :page-sizes=\"[10, 15, 20]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n :total=\"total\"\r\n @size-change=\"handleSizeChange\"\r\n @current-change=\"handleCurrentChange\"\r\n />\r\n </el-row>\r\n </div>\r\n <!-- 新增编辑弹窗 -->\r\n <el-dialog\r\n v-if=\"dialogFormVisible\"\r\n :title=\"title\"\r\n :visible.sync=\"dialogFormVisible\"\r\n @close=\"CloseIn\"\r\n width=\"836px\"\r\n >\r\n <el-form\r\n ref=\"form\"\r\n :model=\"form\"\r\n :rules=\"rules\"\r\n style=\"padding: 0 10px; margin-left: -20px\"\r\n >\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"相机编码\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"form.cameraCode\"\r\n autocomplete=\"off\"\r\n placeholder=\"请输入相机编码\"\r\n onkeyup=\"this.value\"\r\n @input=\"descInput\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"相机通道\" label-width=\"120px\" prop=\"channel\">\r\n <el-input\r\n v-model=\"form.channel\"\r\n autocomplete=\"off\"\r\n placeholder=\"请输入相机通道\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"线路\" label-width=\"120px\" prop=\"railwayCode\">\r\n <el-select\r\n v-model=\"form.railwayCode\"\r\n placeholder=\"请选择线路\"\r\n style=\"width: 100%\"\r\n >\r\n <el-option\r\n v-for=\"item in lineWayData\"\r\n :key=\"item.railwayCode\"\r\n :label=\"item.railwayName\"\r\n :value=\"item.railwayCode\"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"行别\" label-width=\"120px\" prop=\"lineDirName\">\r\n <!-- <el-select v-model=\"form.lineDirName\" @change=\"handleChange\"> -->\r\n <el-select\r\n v-model=\"form.lineDirName\"\r\n style=\"width: 100%\"\r\n placeholder=\"请选择行别\"\r\n @change=\"$forceUpdate()\"\r\n >\r\n <el-option\r\n v-for=\"item in lineDir\"\r\n :key=\"item.dictValue\"\r\n :label=\"item.dictLabel\"\r\n :value=\"item.dictValue\"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"安装里程位置\"\r\n label-width=\"120px\"\r\n prop=\"installMileBD\"\r\n >\r\n <el-input\r\n v-model=\"form.installMileBD\"\r\n placeholder=\"请输入安装里程位置\"\r\n autocomplete=\"off\"\r\n oninput=\"value=value.replace(/[^\\d^\\.]+/g,'').replace('.','$#$').replace(/\\./g,'').replace('$#$','.')\"\r\n >\r\n <template slot=\"append\">km</template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"起始里程\"\r\n label-width=\"120px\"\r\n prop=\"beginMile\"\r\n >\r\n <el-input\r\n v-model=\"form.beginMileBD\"\r\n style=\"width: 99%\"\r\n oninput=\"value=value.replace(/[^\\d^\\.]+/g,'').replace('.','$#$').replace(/\\./g,'').replace('$#$','.')\"\r\n placeholder=\"请输入起始里程\"\r\n >\r\n <template slot=\"append\">km</template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"结束里程\" label-width=\"120px\" prop=\"endMile\">\r\n <el-input\r\n v-model=\"form.endMileBD\"\r\n style=\"width: 99%\"\r\n oninput=\"value=value.replace(/[^\\d^\\.]+/g,'').replace('.','$#$').replace(/\\./g,'').replace('$#$','.')\"\r\n placeholder=\"请输入结束里程\"\r\n >\r\n <template slot=\"append\">km</template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"经度\"\r\n label-width=\"120px\" \r\n prop=\"installLongitude\" \r\n >\r\n <el-input\r\n v-model=\"form.installLongitude\"\r\n placeholder=\"请输入经度\" \r\n type=\"number\" max=\"90\" \r\n />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"纬度\"\r\n label-width=\"120px\" \r\n prop=\"installLatitude\" \r\n >\r\n <el-input\r\n v-model=\"form.installLatitude\"\r\n placeholder=\"请输入纬度\"\r\n type=\"number\" max=\"180\" \r\n />\r\n </el-form-item>\r\n </el-col>\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item label=\"状态\" label-width=\"120px\" prop=\"enableOrNot\">\r\n <el-radio v-model=\"form.enableOrNot\" :label=\"1\" @change=\"$forceUpdate()\">启用</el-radio>\r\n <el-radio v-model=\"form.enableOrNot\" :label=\"2\" @change=\"$forceUpdate()\">停用</el-radio>\r\n </el-form-item>\r\n </el-col> -->\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"测点名称\"\r\n label-width=\"120px\" \r\n prop=\"stationName\" \r\n >\r\n <el-input\r\n v-model=\"form.stationName\"\r\n placeholder=\"请输入测点名称\" \r\n />\r\n </el-form-item> \r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"状态\" label-width=\"120px\" prop=\"enableOrNot\">\r\n <el-radio v-model=\"form.enableOrNot\" :label=\"1\" @change=\"$forceUpdate()\">启用</el-radio>\r\n <el-radio v-model=\"form.enableOrNot\" :label=\"2\" @change=\"$forceUpdate()\">停用</el-radio>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"监视方向\" label-width=\"120px\" prop=\"monitoringDirectionName\">\r\n <el-select\r\n v-model=\"form.monitoringDirectionName\"\r\n style=\"width: 100%\"\r\n placeholder=\"请选择监视方向\"\r\n @change=\"$forceUpdate()\"\r\n >\r\n <el-option\r\n v-for=\"item in firectionData\"\r\n :key=\"item.dictValue\"\r\n :label=\"item.dictLabel\"\r\n :value=\"item.dictValue\"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\" style=\"text-align: center\">\r\n <el-button\r\n class=\"search_btna\"\r\n style=\"line-heigth: 0\"\r\n :disabled=\"disabledSave\"\r\n @click=\"submint\"\r\n >保存</el-button\r\n >\r\n <el-button @click=\"closeDia\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n <!-- 上传 -->\r\n <el-dialog\r\n :visible.sync=\"uploadDialog\"\r\n title=\"相机导入\"\r\n width=\"620px\"\r\n @close=\"falseShowUpload\"\r\n >\r\n <el-upload\r\n class=\"upload-demo\"\r\n style=\"text-align: center\"\r\n drag\r\n action=\"#\"\r\n :http-request=\"uploadHttpRequest\"\r\n :auto-upload=\"false\"\r\n :file-list=\"fileList\"\r\n :on-change=\"uploadFileList\"\r\n >\r\n <i class=\"el-icon-upload\" />\r\n <div class=\"el-upload__text\">将文件拖到此处,或<em>点击上传</em></div>\r\n <!-- <div class=\"el-upload__tip\">只能上传xls/xlsx文件,且不超过500kb</div> -->\r\n </el-upload>\r\n <div class=\"hxj\">支持扩展名:.xlsx</div>\r\n <div\r\n class=\"hxj\"\r\n style=\"width: 620px; text-align: center; margin-left: -20px\"\r\n >\r\n 请先下载模板,根据模板内容填写,再上传文件\r\n <span class=\"xzmba\" @click=\"downloadOut\">下载模板</span>\r\n </div>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button class=\"search_btna\" @click=\"uploadSubmitDialog\"\r\n >确定</el-button\r\n >\r\n <el-button class=\"reset_btna\" @click=\"falseShowUpload\"\r\n >取 消</el-button\r\n >\r\n </div>\r\n </el-dialog>\r\n <!-- 详情 -->\r\n <el-dialog :visible.sync=\"detailDialog\" title=\"详情查看\" width=\"836px\">\r\n <div class=\"dialog_box\">\r\n <el-form style=\"padding: 0 10px; margin-left: -20px\">\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"相机编码:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.cameraCode\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n <!-- <span>{{ detailData.cameraCode }}</span> -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"相机通道:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.channel\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n <!-- <span>{{ detailData.channel }}</span> -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"线路:\"\r\n label-width=\"120px\"\r\n prop=\"cameraName\"\r\n >\r\n <el-input\r\n v-model=\"detailData.railwayName\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n <!-- <span>{{ detailData.railwayCode }}</span> -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"行别:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.lineDir == 1 ? '上行' : '下行'\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n <!-- <span v-if=\"detailData.lineDir == 1\">上行</span>\r\n <span v-if=\"detailData.lineDir == 2\">下行</span> -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"安装里程位置:\"\r\n label-width=\"120px\"\r\n prop=\"installs\"\r\n >\r\n <el-input\r\n v-model=\"detailData.installMiles\"\r\n autocomplete=\"off\"\r\n disabled\r\n >\r\n <template slot=\"append\">m</template>\r\n </el-input>\r\n <!-- <span>{{ detailData.installs }}</span> -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"监控里程范围:\"\r\n label-width=\"120px\"\r\n prop=\"begins\"\r\n >\r\n <el-input v-model=\"pjJkfw\" autocomplete=\"off\" disabled>\r\n <template slot=\"append\">m</template>\r\n </el-input>\r\n <!-- <span>{{ detailData.begins }}</span> -->\r\n <!-- <span>{{ detailData.beginMiles }}~ {{detailData.endMiles}}</span> -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"经纬度:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input v-model=\"pjjwd\" autocomplete=\"off\" disabled />\r\n <!-- <span\r\n >{{ detailData.installLongitude }},{{\r\n detailData.installLatitude\r\n }}</span\r\n > -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"测点名称:\"\r\n label-width=\"120px\"\r\n prop=\"stationName\"\r\n >\r\n <el-input\r\n v-model=\"detailData.stationName\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n <!-- <span>{{ detailData.railwayCode }}</span> -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"摄像机开启状态:\"\r\n label-width=\"120px\"\r\n prop=\"enableOrNot\"\r\n >\r\n <el-input v-model=\"detailData.enableOrNot==1?'已开启':'未开启'\" autocomplete=\"off\" disabled />\r\n <!-- <span\r\n >{{ detailData.installLongitude }},{{\r\n detailData.installLatitude\r\n }}</span\r\n > -->\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"监视方向\" label-width=\"120px\" prop=\"lineDirName\">\r\n <el-select\r\n v-model=\"detailData.monitoringDirection==1?'上行':detailData.monitoringDirection==2?'下行':detailData.monitoringDirection==3?'双线':''\"\r\n style=\"width: 100%\"\r\n placeholder=\"请选择监视方向\"\r\n @change=\"$forceUpdate()\"\r\n disabled\r\n >\r\n <el-option\r\n v-for=\"item in firectionData\"\r\n :key=\"item.dictValue\"\r\n :label=\"item.dictLabel\"\r\n :value=\"item.dictValue\"\r\n />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"是否开启录像:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.startRecording == 1 ? '开启' : '不开启'\"\r\n autocomplete=\"off\"\r\n disabled\r\n /></el-form-item>\r\n </el-col> -->\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"创建者:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.createBy\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n </el-form-item>\r\n </el-col> -->\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"创建时间:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.createTime\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n </el-form-item>\r\n </el-col> -->\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"更新者:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.updateBy\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n </el-form-item>\r\n </el-col> -->\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"更新时间:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.updateTime\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n </el-form-item>\r\n </el-col> -->\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"相机版本号:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.versionNum\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n </el-form-item>\r\n </el-col> -->\r\n <!-- <el-col :span=\"12\">\r\n <el-form-item\r\n label=\"相机版本名称:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.versionName\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n </el-form-item>\r\n </el-col> -->\r\n <!-- <el-col :span=\"24\">\r\n <el-form-item\r\n label=\"备注:\"\r\n label-width=\"120px\"\r\n prop=\"cameraCode\"\r\n >\r\n <el-input\r\n v-model=\"detailData.remark\"\r\n type=\"textarea\"\r\n autocomplete=\"off\"\r\n disabled\r\n />\r\n </el-form-item>\r\n </el-col> -->\r\n </el-row>\r\n </el-form>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n \r\n <el-dialog title=\"视频上传\" v-if=\"dialogVisible\" :visible.sync=\"dialogVisible\" width=\"800px\">\r\n <div style=\"text-align: center\">\r\n <el-upload\r\n class=\"upload-demo\"\r\n :limit=\"1\"\r\n drag\r\n :action=\"uploadUrl\"\r\n :multiple=\"true\"\r\n :before-upload=\"beforeUpload\"\r\n >\r\n <i class=\"el-icon-upload\"></i>\r\n <div class=\"el-upload__text\">将文件拖到此处,或<em>点击上传</em></div>\r\n <div style=\"margin-top: 10px; font-size: 12px\" slot=\"tip\">\r\n 请上传视频格式文件\r\n </div>\r\n </el-upload>\r\n </div>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"dialogVisible = false\">取 消</el-button>\r\n <el-button type=\"primary\" @click=\"goClick\">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { getToken } from \"@/utils/auth\";\r\nimport { mapGetters } from \"vuex\";\r\nimport { editAccountManagement, serviceFileoss } from \"../../../api/video\";\r\nimport {\r\n getCameraDataList,\r\n getLineDir,\r\n getRecording,\r\n getStartRecording,\r\n getLineWayList,\r\n getCameraDataAddNewer,\r\n getDownLoadList,\r\n getWorkSetion,\r\n getLineData,\r\n getCameraDataDelete,\r\n getCameraFetail,\r\n getCameraDataUpLoadOut,\r\n getCameraDataUpdate,\r\n getDeptList,\r\n getCameraDataUpLoadIn,\r\n toEnabAccrame,\r\n getDirection\r\n} from \"@/api/account/camera\";\r\n\r\nexport default {\r\n name: \"Cart\",\r\n computed: {\r\n ...mapGetters([\"name\"]),\r\n },\r\n data() {\r\n var validatePassxjbm = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入相机编码\"));\r\n } else if (value.length > 100) {\r\n callback(new Error(\"最多可输入100位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n var validatePassxjtd = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入相机通道\"));\r\n } else if (value.length > 100) {\r\n callback(new Error(\"最多可输入100位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n var azlcwz = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入安装里程位置\"));\r\n } else if (value.length > 10) {\r\n callback(new Error(\"最多可输入10位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n var qslc = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入起始里程\"));\r\n } else if (value.length > 10) {\r\n callback(new Error(\"最多可输入10位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n var jslc = (rule, value, callback) => {\r\n if (value === undefined || value === \"\") {\r\n callback(new Error(\"请输入结束里程\"));\r\n } else if (value.length > 10) {\r\n callback(new Error(\"最多可输入10位\"));\r\n } else {\r\n callback();\r\n }\r\n };\r\n return {\r\n pjjwd: \"\",\r\n pjJkfw: \"\",\r\n uploadUrl: \"http://124.70.58.209:18810/service/fileoss\", // 上传文件的接口地址\r\n dialogVisible: false,\r\n // 导入\r\n dataForm: {\r\n name: \"\",\r\n file: null,\r\n },\r\n videoUrl: \"\",\r\n searchShow: true,\r\n startStatus: \"\",\r\n rules: {\r\n cameraCode: [\r\n { required: true, validator: validatePassxjbm, trigger: \"blur\" },\r\n ],\r\n channel: [\r\n { required: true, validator: validatePassxjtd, trigger: \"blur\" },\r\n ],\r\n railwayCode: [\r\n { required: true, message: \"请选择线路\", trigger: \"change\" },\r\n ],\r\n deptName: [\r\n { required: true, message: \"请选择所属工务段\", trigger: \"change\" },\r\n ],\r\n lineDirName: [\r\n { required: true, message: \"请选择行别\", trigger: \"change\" },\r\n ],\r\n installMileBD: [\r\n { required: true, validator: azlcwz, trigger: \"change\" },\r\n ],\r\n beginMileBD: [{ required: true, validator: qslc, trigger: \"blur\" }],\r\n endMileBD: [{ required: true, validator: jslc, trigger: \"blur\" }],\r\n // installLongitude: [\r\n // { required: true, message: \"请输入经度\", trigger: \"blur\" },\r\n // ],\r\n // installLatitude: [\r\n // { required: true, message: \"请输入纬度\", trigger: \"blur\" },\r\n // ],\r\n cardNum: [\r\n { required: true, message: \"请输入物联网卡号\", trigger: \"blur\" },\r\n ],\r\n stationName:[\r\n { required: true, message: \"请输入测点名称\", trigger: \"blur\" },\r\n ]\r\n },\r\n disabledSave: false,\r\n enter: 0,\r\n queryParams: {\r\n stationName:'',\r\n cameraCode:'',\r\n line: \"\",\r\n worksSection: \"\",\r\n lineDistinction: \"\",\r\n startMileage: \"\",\r\n finishtMileage: \"\",\r\n // railwayCode: \"\",\r\n deptName: \"\",\r\n deptId: \"\",\r\n lineDir: \"\",\r\n beginMileBD: \"\",\r\n endMileBD: \"\",\r\n pageNum: 1,\r\n pageSize: 10,\r\n },\r\n firectionData:[],\r\n ids: [],\r\n title: \"\",\r\n uploadDialog: false,\r\n radioArray: [\r\n {\r\n value: \"1\",\r\n label: \"是\",\r\n },\r\n {\r\n value: \"2\",\r\n label: \"否\",\r\n },\r\n ],\r\n statusOptions:[\r\n {\r\n label: '启用',\r\n value: '1'\r\n },\r\n {\r\n label: '停用',\r\n value: '2'\r\n }\r\n ],\r\n xianlu: [\r\n {\r\n value: \"1\",\r\n label: \"xxx1线路\",\r\n },\r\n {\r\n value: \"2\",\r\n label: \"xxx2线路\",\r\n },\r\n {\r\n value: \"3\",\r\n label: \"xxx3线路\",\r\n },\r\n ],\r\n gongwuduan: [\r\n {\r\n value: \"1\",\r\n label: \"xx1工务段\",\r\n },\r\n {\r\n value: \"2\",\r\n label: \"xx2工务段\",\r\n },\r\n {\r\n value: \"3\",\r\n label: \"xx3工务段\",\r\n },\r\n ],\r\n // hangbie: [\r\n // {\r\n // value: '1',\r\n // label: '上行'\r\n // },\r\n // {\r\n // value: '2',\r\n // label: '下行'\r\n // }\r\n // ],\r\n licheng: [\r\n {\r\n value: \"1\",\r\n label: \"1km\",\r\n },\r\n {\r\n value: \"2\",\r\n label: \"2km\",\r\n },\r\n {\r\n value: \"3\",\r\n label: \"3km\",\r\n },\r\n ],\r\n zhangtai: [\r\n {\r\n value: \"1\",\r\n label: \"已解除\",\r\n },\r\n {\r\n value: \"2\",\r\n label: \"未解除\",\r\n },\r\n ],\r\n tableData: [],\r\n treeData: [],\r\n workSetiData: [],\r\n getLineData: [],\r\n total: 0,\r\n dialogFormVisible: false,\r\n form: {\r\n lineDirName: \"\",\r\n railwayCode: \"\",\r\n cameraCode: \"\",\r\n channel: \"\",\r\n deptId: \"\",\r\n deptName: \"\",\r\n lineDir: \"\",\r\n installMileBD: \"\",\r\n beginMileBD: \"\",\r\n endMileBD: \"\",\r\n installLongitude: \"\",\r\n installLatitude: \"\",\r\n cardNum: \"\",\r\n startRecording: \"\",\r\n remark: \"\",\r\n stationName:'',\r\n enableOrNot: 1,\r\n monitoringDirection:'',\r\n monitoringDirectionName:''\r\n },\r\n detailDialog: false,\r\n detailData: {},\r\n lineWayData: [],\r\n ids: [],\r\n fileList: [],\r\n cameraCodeValue: \"\",\r\n dialogType: \"\",\r\n headers: { Authorization: getToken() },\r\n action:\r\n \"http://124.70.58.209:18819/hazard/service/baseCameraManagement/importBaseAccountManagement\",\r\n };\r\n },\r\n computed: {\r\n ...mapGetters([\"name\"]),\r\n },\r\n watch: {\r\n \"form.deptName\": {\r\n handler(val) {\r\n this.$set(this.form, \"deptName\", val);\r\n this.optionProps.map((item, index) => {\r\n if (val == item.value) {\r\n this.$set(this.form, \"deptId\", item.value);\r\n }\r\n });\r\n },\r\n deep: true, // 深层监听\r\n },\r\n 'form.installLongitude': function (newval, oldval) { \r\n\t\t\t var reg = /^(\\d{0,3})(\\.(\\d{0,13}))?$/g;\r\n\t\t\t\tif (!reg.test(newval)) {\r\n\t\t\t\t\tif (newval == undefined || newval == null ) {\r\n\t\t\t\t\t\t// this.form.installLongitude = '';\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.form.installLongitude = oldval\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.form.installLongitude = newval.replace(/^\\./g, \"\")\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t},\r\n 'form.installLatitude': function (newval, oldval) {\r\n\t\t\t var reg = /^(\\d{0,3})(\\.(\\d{0,13}))?$/g;\r\n\t\t\t\tif (!reg.test(newval)) {\r\n\t\t\t\t\tif (newval == undefined || newval == null ) {\r\n\t\t\t\t\t\t// this.form.installLatitude = '';\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.form.installLatitude = oldval\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.form.installLatitude = newval.replace(/^\\./g, \"\")\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t}\r\n },\r\n created() {\r\n this.getCameraList();\r\n this.getWorkSetion();\r\n this.getDeptList();\r\n this.getLineWayList();\r\n this.getLineTypeList();\r\n this.getDirectionSelect()\r\n },\r\n methods: {\r\n handleEnableChange(row){\r\n let params={\r\n id:row.id,\r\n enableOrNot:row.enableOrNot\r\n }\r\n toEnabAccrame(params).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n message: res.msg,\r\n type: \"success\",\r\n });\r\n this.getCameraList();\r\n } else {\r\n this.$message({\r\n message: res.msg,\r\n type: \"error\",\r\n });\r\n this.getCameraList();\r\n }\r\n });\r\n },\r\n goClick() {\r\n console.log(this.row);\r\n editAccountManagement({\r\n id: this.row.id,\r\n cameraCode: this.row.cameraCode,\r\n url: this.videoUrl,\r\n }).then((res) => {\r\n console.log(res);\r\n });\r\n this.dialogVisible = false;\r\n },\r\n beforeUpload(file) {\r\n const formData = new FormData();\r\n formData.append(\"file\", file); // 将文件添加到FormData对象中\r\n serviceFileoss(formData).then((res) => {\r\n this.videoUrl = res.data;\r\n });\r\n },\r\n descInput() {\r\n console.log(this.form.cameraCode.length, \",,,,,,,,,,,,,,,,,,,\");\r\n },\r\n falseShowUpload() {\r\n this.uploadDialog = false;\r\n this.fileList = [];\r\n },\r\n uploadFileList(file) {\r\n if (file.status === \"ready\") {\r\n this.fileList.push(file);\r\n if (this.fileList.length > 1) {\r\n this.fileList.splice(0, 1);\r\n }\r\n }\r\n },\r\n uploadSubmitDialog() {\r\n const fileData = new FormData();\r\n fileData.append(\"file\", this.fileList[0].raw);\r\n let isHttpRequest = this.fileList[0].raw.name.split(\".\");\r\n if (\r\n isHttpRequest[isHttpRequest.length - 1] == \"xlsx\" ||\r\n isHttpRequest[isHttpRequest.length - 1] == \"xls\"\r\n ) {\r\n getCameraDataUpLoadIn(fileData).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: \"success\",\r\n message: \"导入成功!\",\r\n });\r\n this.uploadDialog = false;\r\n this.getCameraList();\r\n this.fileList = [];\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n this.getCameraList();\r\n this.fileList = [];\r\n }\r\n });\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: \"上传的文件只能是xls以及xlsx格式!\",\r\n });\r\n this.fileList = [];\r\n }\r\n },\r\n // 验证文件类型\r\n beforeAvatarUpload(file) {\r\n const isXls =\r\n file.type === \"application/vnd.ms-excel\"\r\n ? true\r\n : file.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\r\n if (!isXls) {\r\n alert(\"上传的文件只能是xls以及xlsx格式!\");\r\n }\r\n return isXls;\r\n },\r\n // 判断文件个数\r\n handleChange(file, fileList) {\r\n if (fileList.length >= 2) {\r\n return;\r\n }\r\n if (fileList.length === 1) {\r\n this.hasFile = true;\r\n }\r\n this.dataForm.file = file;\r\n },\r\n // 导入\r\n httpRequest(param) {\r\n const formData = new FormData();\r\n formData.append(\"file\", this.dataForm.file.raw);\r\n const configHeaders = {\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n };\r\n console.log(\r\n this.dataForm.file.raw.name,\r\n \"this.fileList[0].raw.namethis.fileList[0].raw.namethis.fileList[0].raw.namethis.fileList[0].raw.name\"\r\n );\r\n let isHttpRequest = this.dataForm.file.raw.name.split(\".\");\r\n if (\r\n isHttpRequest[isHttpRequest.length - 1] == \"xlsx\" ||\r\n isHttpRequest[isHttpRequest.length - 1] == \"xls\"\r\n ) {\r\n getCameraDataUpLoadIn(formData).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: \"success\",\r\n message: \"导入成功!\",\r\n });\r\n this.getCameraList(this.data);\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n }\r\n });\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: \"上传的文件只能是xls以及xlsx格式!\",\r\n });\r\n }\r\n },\r\n changeValue(val) {},\r\n // 行别下拉\r\n getLineTypeList() {\r\n getLineDir({}).then((res) => {\r\n this.lineDir = res.data;\r\n });\r\n },\r\n getDirectionSelect(){\r\n getDirection({}).then((res)=>{\r\n this.firectionData=res.data\r\n })\r\n },\r\n handleStatusChange(row) {\r\n if (row.startRecording == \"2\") {\r\n getRecording(row.id).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n message: \"关闭成功\",\r\n type: \"success\",\r\n });\r\n } else {\r\n this.$message({\r\n message: res.msg,\r\n type: \"error\",\r\n });\r\n this.getCameraList();\r\n }\r\n });\r\n } else if (row.startRecording == \"1\") {\r\n getStartRecording(row.id).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n message: \"开启成功\",\r\n type: \"success\",\r\n });\r\n } else {\r\n this.$message({\r\n message: res.msg,\r\n type: \"error\",\r\n });\r\n this.getCameraList();\r\n }\r\n });\r\n }\r\n },\r\n handleSelectionChange(val) {\r\n this.ids = val.map((item) => item.id); \r\n },\r\n handleQuery() {\r\n this.queryParams.pageNum = 1;\r\n this.getCameraList();\r\n },\r\n reset() {\r\n this.queryParams.deptName = \"\";\r\n this.queryParams.deptId = \"\";\r\n this.queryParams.railwayCode = \"\";\r\n this.queryParams.lineDir = \"\";\r\n this.queryParams.beginMileBD = \"\";\r\n this.queryParams.endMileBD = \"\";\r\n this.queryParams.stationName = \"\";\r\n this.queryParams.cameraCode = \"\";\r\n this.queryParams.enableOrNot=''\r\n this.queryParams.pageNum = 1;\r\n this.queryParams.pageSize = 10;\r\n this.getCameraList();\r\n },\r\n getLineWayList() {\r\n getLineWayList({}).then((res) => {\r\n this.lineWayData = res.data;\r\n });\r\n },\r\n handleNodeHandleClick(a) {\r\n this.queryParams.deptName = a.label;\r\n this.queryParams.deptId = a.id;\r\n },\r\n handleNodeClick(v) {\r\n this.form.deptId = v.id;\r\n this.form.deptName = v.label;\r\n },\r\n getWorkSetion: function () {\r\n getWorkSetion({}).then((response) => {\r\n this.workSetiData = response.data;\r\n });\r\n getLineData({}).then((response) => {\r\n this.getLineData = response.data;\r\n });\r\n },\r\n getDeptList() {\r\n getDeptList({}).then((res) => {\r\n this.treeData = res.data;\r\n });\r\n },\r\n handleCurrentChange(val) {\r\n this.queryParams.pageNum = val;\r\n this.getCameraList();\r\n },\r\n handleSizeChange(val) {\r\n this.queryParams.pageSize = val;\r\n this.getCameraList();\r\n },\r\n getCameraList() {\r\n delete this.queryParams.ids;\r\n console.log(\r\n this.queryParams,\r\n \"this.queryParamsthis.queryParamsthis.queryParams\"\r\n );\r\n getCameraDataList(this.queryParams).then((response) => {\r\n if (!this.queryParams.pageNum || !this.queryParams.pageSize) {\r\n this.queryParams.pageNum = 1;\r\n this.queryParams.pageSize = 10;\r\n getCameraDataList(this.queryParams).then((res) => {\r\n this.tableData = res.data.records;\r\n this.total = res.data.total;\r\n });\r\n }\r\n if (\r\n response.data.records.length == 0 &&\r\n this.queryParams.pageNum != 1\r\n ) {\r\n this.queryParams.pageNum = this.queryParams.pageNum - 1;\r\n getCameraDataList(this.queryParams).then((res) => {\r\n this.tableData = res.data.records;\r\n this.total = response.data.total;\r\n });\r\n }\r\n this.tableData = response.data.records;\r\n this.total = response.data.total;\r\n if (this.tableData.length > 0) {\r\n if (this.tableData[0].isStartRecording == 1) {\r\n this.startStatus = 1;\r\n }\r\n } else {\r\n this.queryParams.pageNum = 1;\r\n this.queryParams.pageSize = 10;\r\n this.total = response.data.total;\r\n return;\r\n this.startStatus = 0;\r\n }\r\n });\r\n },\r\n addEquipment: function () {\r\n this.form = {};\r\n\r\n // this.$refs['form'].resetFields()\r\n this.dialogType = 1;\r\n this.title = \"新增设备\";\r\n // alert(this.form.enableOrNot)\r\n // alert(this.form.installLatitude)\r\n this.form.enableOrNot=1\r\n this.disabledSave = false;\r\n this.dialogFormVisible = true;\r\n },\r\n closeDia() {\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n this.form = {};\r\n },\r\n CloseIn() {\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n this.form = {};\r\n },\r\n submint: function () {\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n if(this.form.beginMileBD>this.form.endMileBD) {\r\n return this.$message({\r\n message: \"结束里程必须大于起始里程\",\r\n type: \"error\",\r\n });\r\n }\r\n if (this.dialogType == 1) {\r\n this.firectionData.forEach((item) => {\r\n if (item.dictLabel == this.form.monitoringDirectionName) {\r\n this.form.monitoringDirection = item.dictValue;\r\n }\r\n });\r\n this.lineDir.forEach((item) => {\r\n if (item.dictLabel == this.form.lineDirName) {\r\n this.form.lineDir = item.dictValue;\r\n }\r\n });\r\n // delete this.form.deptName\r\n this.form.monitoringDirection = Number(this.form.monitoringDirectionName);\r\n this.form.lineDir = Number(this.form.lineDirName);\r\n this.disabledSave = true;\r\n getCameraDataAddNewer(this.form).then((response) => {\r\n if (response.code == 200) {\r\n this.$message({\r\n message: \"新增成功\",\r\n type: \"success\",\r\n });\r\n this.getCameraList();\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n } else {\r\n this.disabledSave = false;\r\n this.$message({\r\n message: response.msg,\r\n type: \"error\",\r\n });\r\n }\r\n });\r\n } else if (this.dialogType == 2) {\r\n delete this.form.beginMiles;\r\n delete this.form.endMiles;\r\n delete this.form.installMiles;\r\n this.form.lineDir = this.form.lineDirName;\r\n this.form.monitoringDirection = Number(this.form.monitoringDirectionName);\r\n if (this.form.lineDir == \"上行\") {\r\n this.form.lineDir = 1;\r\n } else if (this.form.lineDir == \"下行\") {\r\n this.form.lineDir = 2;\r\n }\r\n getCameraDataUpdate(this.form).then((res) => {\r\n if (res.code == 200) {\r\n this.$message({\r\n message: \"修改成功\",\r\n type: \"success\",\r\n });\r\n this.getCameraList();\r\n this.dialogFormVisible = false;\r\n this.$refs[\"form\"].resetFields();\r\n } else {\r\n this.$message({\r\n message: res.msg,\r\n type: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n }\r\n });\r\n },\r\n editEquip: function (row) {\r\n this.dialogType = 2;\r\n this.disabledSave = false;\r\n this.title = \"修改设备信息\";\r\n this.dialogFormVisible = true;\r\n // this.form = JSON.parse(JSON.stringify(row))\r\n getCameraFetail(row.id).then((res) => { \r\n this.form = res.data;\r\n this.lineDir.forEach((item) => {\r\n if (item.dictValue == this.form.lineDir) {\r\n this.form.lineDirName = item.dictLabel;\r\n }\r\n });\r\n this.firectionData.forEach((item) => {\r\n if (item.dictValue == this.form.monitoringDirection) {\r\n this.form.monitoringDirectionName = item.dictLabel;\r\n }\r\n });\r\n });\r\n },\r\n delCameraList() {\r\n if (this.ids.length == 0) {\r\n this.$message({\r\n type: \"error\",\r\n message: \"请选择需要删除的数据\",\r\n });\r\n } else {\r\n this.$confirm(\"确定要删除吗?\", \"信息提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\",\r\n })\r\n .then(() => {\r\n getCameraDataDelete(this.ids).then((res) => {\r\n if (res.code == 200) {\r\n this.getCameraList();\r\n this.$message({\r\n type: \"success\",\r\n message: \"删除成功!\",\r\n });\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \"info\",\r\n message: \"已取消删除\",\r\n });\r\n });\r\n }\r\n },\r\n delCamera: function (row) {\r\n this.ids = row.id;\r\n this.$confirm(\"确定要删除吗?\", \"信息提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\",\r\n })\r\n .then(() => {\r\n getCameraDataDelete(this.ids).then((res) => {\r\n if (res.code == 200) {\r\n this.getCameraList();\r\n this.$message({\r\n type: \"success\",\r\n message: \"删除成功!\",\r\n });\r\n } else {\r\n this.$message({\r\n type: \"error\",\r\n message: res.msg,\r\n });\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \"info\",\r\n message: \"已取消删除\",\r\n });\r\n });\r\n },\r\n uploadOut: function () {\r\n delete this.queryParams.pageNum;\r\n delete this.queryParams.pageSize;\r\n this.queryParams.ids = this.ids;\r\n // if(this.queryParams.ids.length == 0) {\r\n // return this.$message({\r\n // message: '请选择需要导出的数据',\r\n // type: \"error\",\r\n // });\r\n // }\r\n getCameraDataUpLoadOut(this.queryParams).then((res) => {\r\n // this.exportFile(res, \"摄像机台账信息\");\r\n \r\n if (res.type == \"application/json\") {\r\n const reader = new FileReader(); \r\n reader.readAsText(res, 'utf-8'); \r\n reader.onload = function () {\r\n const msg = JSON.parse(reader.result);\r\n if(msg.code == 200){\r\n this.exportFile(res, \"摄像机台账信息\");\r\n } else{\r\n Message({\r\n type: 'error',\r\n message: msg.msg\r\n });\r\n } \r\n }\r\n }else{\r\n this.exportFile(res, \"摄像机台账信息\");\r\n }\r\n\r\n });\r\n },\r\n exportFile: function (obj, name = Date.now(), suffix = \"xlsx\") {\r\n const url = window.URL.createObjectURL(\r\n new Blob([obj], { type: \"application/vnd.ms-excel\" })\r\n );\r\n const aDOM = document.createElement(\"a\");\r\n aDOM.style.display = \"none\";\r\n aDOM.href = url;\r\n const fileName = name + \".\" + suffix;\r\n aDOM.setAttribute(\"download\", fileName);\r\n document.body.appendChild(aDOM);\r\n aDOM.click();\r\n document.body.removeChild(aDOM);\r\n },\r\n downloadOut() {\r\n getDownLoadList({}).then((res) => {\r\n this.exportDownFile(res, \"摄像机台账模板\");\r\n });\r\n },\r\n exportDownFile: function (obj, name = Date.now(), suffix = \"xlsx\") {\r\n const url = window.URL.createObjectURL(\r\n new Blob([obj], { type: \"application/vnd.ms-excel\" })\r\n );\r\n const aDOM = document.createElement(\"a\");\r\n aDOM.style.display = \"none\";\r\n aDOM.href = url;\r\n const fileName = name + \".\" + suffix;\r\n aDOM.setAttribute(\"download\", fileName);\r\n document.body.appendChild(aDOM);\r\n aDOM.click();\r\n document.body.removeChild(aDOM);\r\n },\r\n updateFileItem(row) {\r\n console.log(row);\r\n this.dialogVisible = true;\r\n this.row = row;\r\n },\r\n lokDetailInfo: function (row) {\r\n this.detailDialog = true;\r\n getCameraFetail(row.id).then((res) => {\r\n res.data.installLongitude = res.data.installLongitude||''\r\n res.data.installLatitude = res.data.installLatitude||''\r\n this.detailData = res.data;\r\n this.cameraCodeValue = this.detailData.cameraCode;\r\n if(this.detailData.installLongitude!=null&&this.detailData.installLatitude!=null&&this.detailData.installLongitude!=''&&this.detailData.installLatitude!=''){\r\n this.pjjwd =\r\n this.detailData.installLongitude +\r\n \",\" +\r\n this.detailData.installLatitude;\r\n }else{\r\n this.pjjwd=''\r\n }\r\n if(this.detailData.beginMiles!=null&&this.detailData.endMiles!=null&&this.detailData.beginMiles!=''&&this.detailData.endMiles!=''){\r\n this.pjJkfw =this.detailData.beginMiles + \"~\" + this.detailData.endMiles;\r\n }else{\r\n this.pjJkfw =''\r\n }\r\n });\r\n },\r\n deleteEquip: function () {\r\n this.$confirm(\"此操作将永久删除该文件, 是否继续?\", \"提示\", {\r\n confirmButtonText: \"确定\",\r\n cancelButtonText: \"取消\",\r\n type: \"warning\",\r\n })\r\n .then(() => {\r\n this.$message({\r\n type: \"success\",\r\n message: \"删除成功!\",\r\n });\r\n })\r\n .catch(() => {\r\n this.$message({\r\n type: \"info\",\r\n message: \"已取消删除\",\r\n });\r\n });\r\n },\r\n importLoadIn: function () {\r\n this.uploadDialog = true;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dashboard {\r\n &-container {\r\n margin: 45px 30px 30px;\r\n }\r\n\r\n &-text {\r\n font-size: 30px;\r\n line-height: 46px;\r\n }\r\n}\r\n.cardHeadr {\r\n margin-top: -20px;\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n.search_btn {\r\n cursor: pointer;\r\n background-color: #2766dd;\r\n color: #f7f8fb;\r\n font-size: 14px;\r\n width: 80px;\r\n height: 40px;\r\n text-align: center;\r\n line-height: 40px;\r\n}\r\n.search_btna {\r\n cursor: pointer;\r\n background-color: #2766dd !important;\r\n color: #fff;\r\n font-size: 14px;\r\n width: 80px;\r\n height: 40px;\r\n text-align: center;\r\n}\r\n\r\n.search_btna,\r\n.search_btn:hover {\r\n background-color: #4d85f4;\r\n}\r\n\r\n.reset_btn {\r\n cursor: pointer;\r\n color: #565656;\r\n font-size: 14px;\r\n border: 1px solid #d7d7d7;\r\n width: 80px;\r\n height: 40px;\r\n text-align: center;\r\n line-height: 40px;\r\n}\r\n\r\n.reset_btn:hover {\r\n color: #1f9fff;\r\n border: 1px solid #1f9fff;\r\n background: none;\r\n}\r\n\r\n.addBtn {\r\n margin: 15px 20px 15px 0;\r\n cursor: pointer;\r\n text-align: center;\r\n width: 98px;\r\n height: 34px;\r\n border-radius: 2px;\r\n border: 1px solid #abc7fd;\r\n line-height: 34px;\r\n font-weight: 400;\r\n font-size: 14px;\r\n color: #2250c8;\r\n background-color: #e7eeff;\r\n}\r\n\r\n.addBtn:hover {\r\n color: #ffffff;\r\n background-color: #2250c8;\r\n border: 1px solid #2250c8;\r\n}\r\n.addBtn:active {\r\n color: #ffffff;\r\n background-color: #194da4;\r\n border: 1px solid #194da4;\r\n}\r\n.operateBtn {\r\n display: flex;\r\n justify-content: center;\r\n color: #2866dd;\r\n div {\r\n font-size: 14px;\r\n margin: 0 5px;\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.el-tooltip__popper {\r\n max-width: 30%;\r\n padding-bottom: 5px !important;\r\n display: -webkit-box;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n -webkit-line-clamp: 15;\r\n -webkit-box-orient: vertical;\r\n}\r\n.el-tooltip__popper,\r\n.el-tooltip__popper.is-dark {\r\n background: rgb(48, 65, 86) !important;\r\n color: #fff !important;\r\n line-height: 24px;\r\n}\r\n.xzmba {\r\n color: #2766dd;\r\n text-decoration: underline;\r\n cursor: pointer;\r\n}\r\n.hxj {\r\n width: 100%;\r\n text-align: center;\r\n padding: 0 !important;\r\n}\r\n::v-deep .el-dialog__header {\r\n padding: 0 20px 10px !important;\r\n}\r\n::v-deep .el-dialog__body {\r\n padding: 20px 20px !important;\r\n}\r\n::v-deep .el-upload__tip {\r\n margin-top: -17px;\r\n}\r\n::v-deep .el-upload-dragger .el-upload__text {\r\n margin-top: -10px;\r\n}\r\n.dialog-footer {\r\n text-align: center;\r\n}\r\n.detailDia {\r\n div {\r\n padding-left: 100px;\r\n }\r\n}\r\n::v-deep .el-input__inner,\r\n.el-input--suffix .el-input__inner {\r\n padding-right: 0 !important;\r\n}\r\n::v-deep .el-input.is-disabled .el-input__inner {\r\n color: #606266;\r\n}\r\n::v-deep .el-textarea .el-input__count {\r\n bottom: -40px;\r\n}\r\n::v-deep .el-input__icon {\r\n line-height: 47px;\r\n}\r\n::v-deep .el-select .el-input .el-select__caret {\r\n line-height: 20px !important;\r\n}\r\n::v-deep .el-dialog__header {\r\n padding: 7px 20px 10px !important;\r\n}\r\n::v-deep .el-dialog__headerbtn {\r\n position: absolute;\r\n top: 12px;\r\n right: 20px;\r\n padding: 0;\r\n background: 0 0;\r\n border: none;\r\n outline: 0;\r\n cursor: pointer;\r\n font-size: 16px;\r\n}\r\n\r\n</style>\r\n"],"mappings":"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"}]}