ffbcb242c22bbb61b9d584f952fc2116.json 125 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":1708395041885},{"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:aW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICIvVXNlcnMvY2FvZ2UvRGVza3RvcC9cdTU3MzBcdThEMjhcdTczQjBcdTU3M0EvVmVoaWNsZU1vbml0b3ItV0VCL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIi9Vc2Vycy9jYW9nZS9EZXNrdG9wL1x1NTczMFx1OEQyOFx1NzNCMFx1NTczQS9WZWhpY2xlTW9uaXRvci1XRUIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwp2YXIgX25hbWUkY29tcHV0ZWQkZGF0YSRjOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5lcnJvci5jYXVzZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmRlbGV0ZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5oYXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLXNlYXJjaC1wYXJhbXMuc2l6ZS5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgeyBnZXRUb2tlbiB9IGZyb20gIkAvdXRpbHMvYXV0aCI7CmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tICJ2dWV4IjsKaW1wb3J0IHsgZWRpdEFjY291bnRNYW5hZ2VtZW50LCBzZXJ2aWNlRmlsZW9zcyB9IGZyb20gIi4uLy4uLy4uL2FwaS92aWRlbyI7CmltcG9ydCB7IGdldENhbWVyYURhdGFMaXN0LCBnZXRMaW5lRGlyLCBnZXRSZWNvcmRpbmcsIGdldFN0YXJ0UmVjb3JkaW5nLCBnZXRMaW5lV2F5TGlzdCBhcyBfZ2V0TGluZVdheUxpc3QsIGdldENhbWVyYURhdGFBZGROZXdlciwgZ2V0RG93bkxvYWRMaXN0LCBnZXRXb3JrU2V0aW9uIGFzIF9nZXRXb3JrU2V0aW9uLCBnZXRMaW5lRGF0YSwgZ2V0Q2FtZXJhRGF0YURlbGV0ZSwgZ2V0Q2FtZXJhRmV0YWlsLCBnZXRDYW1lcmFEYXRhVXBMb2FkT3V0LCBnZXRDYW1lcmFEYXRhVXBkYXRlLCBnZXREZXB0TGlzdCBhcyBfZ2V0RGVwdExpc3QsIGdldENhbWVyYURhdGFVcExvYWRJbiwgdG9FbmFiQWNjcmFtZSwgZ2V0RGlyZWN0aW9uIH0gZnJvbSAiQC9hcGkvYWNjb3VudC9jYW1lcmEiOwpleHBvcnQgZGVmYXVsdCAoX25hbWUkY29tcHV0ZWQkZGF0YSRjID0gewogIG5hbWU6ICJDYXJ0IiwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZCh7fSwgbWFwR2V0dGVycyhbIm5hbWUiXSkpLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICB2YXIgX3JlZjsKICAgIHZhciB2YWxpZGF0ZVBhc3N4amJtID0gZnVuY3Rpb24gdmFsaWRhdGVQYXNzeGpibShydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICIiKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fovpPlhaXnm7jmnLrnvJbnoIEiKSk7CiAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoID4gMTAwKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLmnIDlpJrlj6/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+eCueWQjeensCIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9LAogICAgICBkaXNhYmxlZFNhdmU6IGZhbHNlLAogICAgICBlbnRlcjogMCwKICAgICAgcXVlcnlQYXJhbXM6IHsKICAgICAgICBzdGF0aW9uTmFtZTogJycsCiAgICAgICAgY2FtZXJhQ29kZTogJycsCiAgICAgICAgbGluZTogIiIsCiAgICAgICAgd29ya3NTZWN0aW9uOiAiIiwKICAgICAgICBsaW5lRGlzdGluY3Rpb246ICIiLAogICAgICAgIHN0YXJ0TWlsZWFnZTogIiIsCiAgICAgICAgZmluaXNodE1pbGVhZ2U6ICIiLAogICAgICAgIC8vIHJhaWx3YXlDb2RlOiAiIiwKICAgICAgICBkZXB0TmFtZTogIiIsCiAgICAgICAgZGVwdElkOiAiIiwKICAgICAgICBsaW5lRGlyOiAiIiwKICAgICAgICBiZWdpbk1pbGVCRDogIiIsCiAgICAgICAgZW5kTWlsZUJEOiAiIiwKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMAogICAgICB9LAogICAgICBmaXJlY3Rpb25EYXRhOiBbXSwKICAgICAgaWRzOiBbXSwKICAgICAgdGl0bGU6ICIiLAogICAgICB1cGxvYWREaWFsb2c6IGZhbHNlLAogICAgICByYWRpb0FycmF5OiBbewogICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgbGFiZWw6ICLmmK8iCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjIiLAogICAgICAgIGxhYmVsOiAi5ZCmIgogICAgICB9XSwKICAgICAgeGlhbmx1OiBbewogICAgICAgIHZhbHVlOiAiMSIsCiAgICAgICAgbGFiZWw6ICJ4eHgx57q/6LevIgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICIyIiwKICAgICAgICBsYWJlbDogInh4eDLnur/ot68iCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjMiLAogICAgICAgIGxhYmVsOiAieHh4M+e6v+i3ryIKICAgICAgfV0sCiAgICAgIGdvbmd3dWR1YW46IFt7CiAgICAgICAgdmFsdWU6ICIxIiwKICAgICAgICBsYWJlbDogInh4MeW3peWKoeautSIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAiMiIsCiAgICAgICAgbGFiZWw6ICJ4eDLlt6XliqHmrrUiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjMiLAogICAgICAgIGxhYmVsOiAieHgz5bel5Yqh5q61IgogICAgICB9XSwKICAgICAgLy8gaGFuZ2JpZTogWwogICAgICAvLyAgIHsKICAgICAgLy8gICAgIHZhbHVlOiAnMScsCiAgICAgIC8vICAgICBsYWJlbDogJ+S4iuihjCcKICAgICAgLy8gICB9LAogICAgICAvLyAgIHsKICAgICAgLy8gICAgIHZhbHVlOiAnMicsCiAgICAgIC8vICAgICBsYWJlbDogJ+S4i+ihjCcKICAgICAgLy8gICB9CiAgICAgIC8vIF0sCiAgICAgIGxpY2hlbmc6IFt7CiAgICAgICAgdmFsdWU6ICIxIiwKICAgICAgICBsYWJlbDogIjFrbSIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAiMiIsCiAgICAgICAgbGFiZWw6ICIya20iCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogIjMiLAogICAgICAgIGxhYmVsOiAiM2ttIgogICAgICB9XSwKICAgICAgemhhbmd0YWk6IFt7CiAgICAgICAgdmFsdWU6ICIxIiwKICAgICAgICBsYWJlbDogIuW3suino+mZpCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAiMiIsCiAgICAgICAgbGFiZWw6ICLmnKrop6PpmaQiCiAgICAgIH1dLAogICAgICB0YWJsZURhdGE6IFtdLAogICAgICB0cmVlRGF0YTogW10sCiAgICAgIHdvcmtTZXRpRGF0YTogW10sCiAgICAgIGdldExpbmVEYXRhOiBbXSwKICAgICAgdG90YWw6IDAsCiAgICAgIGRpYWxvZ0Zvcm1WaXNpYmxlOiBmYWxzZSwKICAgICAgZm9ybTogewogICAgICAgIGxpbmVEaXJOYW1lOiAiIiwKICAgICAgICByYWlsd2F5Q29kZTogIiIsCiAgICAgICAgY2FtZXJhQ29kZTogIiIsCiAgICAgICAgY2hhbm5lbDogIiIsCiAgICAgICAgZGVwdElkOiAiIiwKICAgICAgICBkZXB0TmFtZTogIiIsCiAgICAgICAgbGluZURpcjogIiIsCiAgICAgICAgaW5zdGFsbE1pbGVCRDogIiIsCiAgICAgICAgYmVnaW5NaWxlQkQ6ICIiLAogICAgICAgIGVuZE1pbGVCRDogIiIsCiAgICAgICAgaW5zdGFsbExvbmdpdHVkZTogIiIsCiAgICAgICAgaW5zdGFsbExhdGl0dWRlOiAiIiwKICAgICAgICBjYXJkTnVtOiAiIiwKICAgICAgICBzdGFydFJlY29yZGluZzogIiIsCiAgICAgICAgcmVtYXJrOiAiIiwKICAgICAgICBzdGF0aW9uTmFtZTogJycsCiAgICAgICAgZW5hYmxlT3JOb3Q6IDEsCiAgICAgICAgbW9uaXRvcmluZ0RpcmVjdGlvbjogJycsCiAgICAgICAgbW9uaXRvcmluZ0RpcmVjdGlvbk5hbWU6ICcnCiAgICAgIH0sCiAgICAgIGRldGFpbERpYWxvZzogZmFsc2UsCiAgICAgIGRldGFpbERhdGE6IHt9LAogICAgICBsaW5lV2F5RGF0YTogW10KICAgIH0sIF9kZWZpbmVQcm9wZXJ0eShfcmVmLCAiaWRzIiwgW10pLCBfZGVmaW5lUHJvcGVydHkoX3JlZiwgImZpbGVMaXN0IiwgW10pLCBfZGVmaW5lUHJvcGVydHkoX3JlZiwgImNhbWVyYUNvZGVWYWx1ZSIsICIiKSwgX2RlZmluZVByb3BlcnR5KF9yZWYsICJkaWFsb2dUeXBlIiwgIiIpLCBfZGVmaW5lUHJvcGVydHkoX3JlZiwgImhlYWRlcnMiLCB7CiAgICAgIEF1dGhvcml6YXRpb246IGdldFRva2VuKCkKICAgIH0pLCBfZGVmaW5lUHJvcGVydHkoX3JlZiwgImFjdGlvbiIsICJodHRwOi8vMTI0LjcwLjU4LjIwOToxODgxOS9oYXphcmQvc2VydmljZS9iYXNlQ2FtZXJhTWFuYWdlbWVudC9pbXBvcnRCYXNlQWNjb3VudE1hbmFnZW1lbnQiKSwgX3JlZjsKICB9Cn0sIF9kZWZpbmVQcm9wZXJ0eShfbmFtZSRjb21wdXRlZCRkYXRhJGMsICJjb21wdXRlZCIsIF9vYmplY3RTcHJlYWQoe30sIG1hcEdldHRlcnMoWyJuYW1lIl0pKSksIF9kZWZpbmVQcm9wZXJ0eShfbmFtZSRjb21wdXRlZCRkYXRhJGMsICJ3YXRjaCIsIHsKICAiZm9ybS5kZXB0TmFtZSI6IHsKICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmFsKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHRoaXMuJHNldCh0aGlzLmZvcm0sICJkZXB0TmFtZSIsIHZhbCk7CiAgICAgIHRoaXMub3B0aW9uUHJvcHMubWFwKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgIGlmICh2YWwgPT0gaXRlbS52YWx1ZSkgewogICAgICAgICAgX3RoaXMuJHNldChfdGhpcy5mb3JtLCAiZGVwdElkIiwgaXRlbS52YWx1ZSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBkZWVwOiB0cnVlIC8vIOa3seWxguebkeWQrAogIH0sCgogICdmb3JtLmluc3RhbGxMb25naXR1ZGUnOiBmdW5jdGlvbiBmb3JtSW5zdGFsbExvbmdpdHVkZShuZXd2YWwsIG9sZHZhbCkgewogICAgdmFyIHJlZyA9IC9eKFxkezAsM30pKFwuKFxkezAsMTN9KSk/JC9nOwogICAgaWYgKCFyZWcudGVzdChuZXd2YWwpKSB7CiAgICAgIGlmIChuZXd2YWwgPT0gdW5kZWZpbmVkIHx8IG5ld3ZhbCA9PSBudWxsKSB7CiAgICAgICAgLy8gdGhpcy5mb3JtLmluc3RhbGxMb25naXR1ZGUgPSAnJzsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy5mb3JtLmluc3RhbGxMb25naXR1ZGUgPSBvbGR2YWw7CiAgICB9IGVsc2UgewogICAgICB0aGlzLmZvcm0uaW5zdGFsbExvbmdpdHVkZSA9IG5ld3ZhbC5yZXBsYWNlKC9eXC4vZywgIiIpOwogICAgfQogIH0sCiAgJ2Zvcm0uaW5zdGFsbExhdGl0dWRlJzogZnVuY3Rpb24gZm9ybUluc3RhbGxMYXRpdHVkZShuZXd2YWwsIG9sZHZhbCkgewogICAgdmFyIHJlZyA9IC9eKFxkezAsM30pKFwuKFxkezAsMTN9KSk/JC9nOwogICAgaWYgKCFyZWcudGVzdChuZXd2YWwpKSB7CiAgICAgIGlmIChuZXd2YWwgPT0gdW5kZWZpbmVkIHx8IG5ld3ZhbCA9PSBudWxsKSB7CiAgICAgICAgLy8gdGhpcy5mb3JtLmluc3RhbGxMYXRpdHVkZSA9ICcnOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmZvcm0uaW5zdGFsbExhdGl0dWRlID0gb2xkdmFsOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5mb3JtLmluc3RhbGxMYXRpdHVkZSA9IG5ld3ZhbC5yZXBsYWNlKC9eXC4vZywgIiIpOwogICAgfQogIH0KfSksIF9kZWZpbmVQcm9wZXJ0eShfbmFtZSRjb21wdXRlZCRkYXRhJGMsICJjcmVhdGVkIiwgZnVuY3Rpb24gY3JlYXRlZCgpIHsKICB0aGlzLmdldENhbWVyYUxpc3QoKTsKICB0aGlzLmdldFdvcmtTZXRpb24oKTsKICB0aGlzLmdldERlcHRMaXN0KCk7CiAgdGhpcy5nZXRMaW5lV2F5TGlzdCgpOwogIHRoaXMuZ2V0TGluZVR5cGVMaXN0KCk7CiAgdGhpcy5nZXREaXJlY3Rpb25TZWxlY3QoKTsKfSksIF9kZWZpbmVQcm9wZXJ0eShfbmFtZSRjb21wdXRlZCRkYXRhJGMsICJtZXRob2RzIiwgewogIGhhbmRsZUVuYWJsZUNoYW5nZTogZnVuY3Rpb24gaGFuZGxlRW5hYmxlQ2hhbmdlKHJvdykgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICB2YXIgcGFyYW1zID0gewogICAgICBpZDogcm93LmlkLAogICAgICBlbmFibGVPck5vdDogcm93LmVuYWJsZU9yTm90CiAgICB9OwogICAgdG9FbmFiQWNjcmFtZShwYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgX3RoaXMyLiRtZXNzYWdlKHsKICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2csCiAgICAgICAgICB0eXBlOiAic3VjY2VzcyIKICAgICAgICB9KTsKICAgICAgICBfdGhpczIuZ2V0Q2FtZXJhTGlzdCgpOwogICAgICB9IGVsc2UgewogICAgICAgIF90aGlzMi4kbWVzc2FnZSh7CiAgICAgICAgICBtZXNzYWdlOiByZXMubXNnLAogICAgICAgICAgdHlwZTogImVycm9yIgogICAgICAgIH0pOwogICAgICAgIF90aGlzMi5nZXRDYW1lcmFMaXN0KCk7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgZ29DbGljazogZnVuY3Rpb24gZ29DbGljaygpIHsKICAgIGNvbnNvbGUubG9nKHRoaXMucm93KTsKICAgIGVkaXRBY2NvdW50TWFuYWdlbWVudCh7CiAgICAgIGlkOiB0aGlzLnJvdy5pZCwKICAgICAgY2FtZXJhQ29kZTogdGhpcy5yb3cuY2FtZXJhQ29kZSwKICAgICAgdXJsOiB0aGlzLnZpZGVvVXJsCiAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgY29uc29sZS5sb2cocmVzKTsKICAgIH0pOwogICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7CiAgfSwKICBiZWZvcmVVcGxvYWQ6IGZ1bmN0aW9uIGJlZm9yZVVwbG9hZChmaWxlKSB7CiAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgIHZhciBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwogICAgZm9ybURhdGEuYXBwZW5kKCJmaWxlIiwgZmlsZSk7IC8vIOWwhuaWh+S7tua3u+WKoOWIsEZvcm1EYXRh5a+56LGh5LitCiAgICBzZXJ2aWNlRmlsZW9zcyhmb3JtRGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgIF90aGlzMy52aWRlb1VybCA9IHJlcy5kYXRhOwogICAgfSk7CiAgfSwKICBkZXNjSW5wdXQ6IGZ1bmN0aW9uIGRlc2NJbnB1dCgpIHsKICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybS5jYW1lcmFDb2RlLmxlbmd0aCwgIiwsLCwsLCwsLCwsLCwsLCwsLCwiKTsKICB9LAogIGZhbHNlU2hvd1VwbG9hZDogZnVuY3Rpb24gZmFsc2VTaG93VXBsb2FkKCkgewogICAgdGhpcy51cGxvYWREaWFsb2cgPSBmYWxzZTsKICAgIHRoaXMuZmlsZUxpc3QgPSBbXTsKICB9LAogIHVwbG9hZEZpbGVMaXN0OiBmdW5jdGlvbiB1cGxvYWRGaWxlTGlzdChmaWxlKSB7CiAgICBpZiAoZmlsZS5zdGF0dXMgPT09ICJyZWFkeSIpIHsKICAgICAgdGhpcy5maWxlTGlzdC5wdXNoKGZpbGUpOwogICAgICBpZiAodGhpcy5maWxlTGlzdC5sZW5ndGggPiAxKSB7CiAgICAgICAgdGhpcy5maWxlTGlzdC5zcGxpY2UoMCwgMSk7CiAgICAgIH0KICAgIH0KICB9LAogIHVwbG9hZFN1Ym1pdERpYWxvZzogZnVuY3Rpb24gdXBsb2FkU3VibWl0RGlhbG9nKCkgewogICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICB2YXIgZmlsZURhdGEgPSBuZXcgRm9ybURhdGEoKTsKICAgIGZpbGVEYXRhLmFwcGVuZCgiZmlsZSIsIHRoaXMuZmlsZUxpc3RbMF0ucmF3KTsKICAgIHZhciBpc0h0dHBSZXF1ZXN0ID0gdGhpcy5maWxlTGlzdFswXS5yYXcubmFtZS5zcGxpdCgiLiIpOwogICAgaWYgKGlzSHR0cFJlcXVlc3RbaXNIdHRwUmVxdWVzdC5sZW5ndGggLSAxXSA9PSAieGxzeCIgfHwgaXNIdHRwUmVxdWVzdFtpc0h0dHBSZXF1ZXN0Lmxlbmd0aCAtIDFdID09ICJ4bHMiKSB7CiAgICAgIGdldENhbWVyYURhdGFVcExvYWRJbihmaWxlRGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgX3RoaXM0LiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgICBtZXNzYWdlOiAi5a+85YWl5oiQ5YqfISIKICAgICAgICAgIH0pOwogICAgICAgICAgX3RoaXM0LnVwbG9hZERpYWxvZyA9IGZhbHNlOwogICAgICAgICAgX3RoaXM0LmdldENhbWVyYUxpc3QoKTsKICAgICAgICAgIF90aGlzNC5maWxlTGlzdCA9IFtdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczQuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAiZXJyb3IiLAogICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnCiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzNC5nZXRDYW1lcmFMaXN0KCk7CiAgICAgICAgICBfdGhpczQuZmlsZUxpc3QgPSBbXTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogImVycm9yIiwKICAgICAgICBtZXNzYWdlOiAi5LiK5Lyg55qE5paH5Lu25Y+q6IO95piveGxz5Lul5Y+KeGxzeOagvOW8jyEiCiAgICAgIH0pOwogICAgICB0aGlzLmZpbGVMaXN0ID0gW107CiAgICB9CiAgfSwKICAvLyDpqozor4Hmlofku7bnsbvlnosKICBiZWZvcmVBdmF0YXJVcGxvYWQ6IGZ1bmN0aW9uIGJlZm9yZUF2YXRhclVwbG9hZChmaWxlKSB7CiAgICB2YXIgaXNYbHMgPSBmaWxlLnR5cGUgPT09ICJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwiID8gdHJ1ZSA6IGZpbGUudHlwZSA9PT0gImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IjsKICAgIGlmICghaXNYbHMpIHsKICAgICAgYWxlcnQoIuS4iuS8oOeahOaWh+S7tuWPquiDveaYr3hsc+S7peWPinhsc3jmoLzlvI8hIik7CiAgICB9CiAgICByZXR1cm4gaXNYbHM7CiAgfSwKICAvLyDliKTmlq3mlofku7bkuKrmlbAKICBoYW5kbGVDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUNoYW5nZShmaWxlLCBmaWxlTGlzdCkgewogICAgaWYgKGZpbGVMaXN0Lmxlbmd0aCA+PSAyKSB7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChmaWxlTGlzdC5sZW5ndGggPT09IDEpIHsKICAgICAgdGhpcy5oYXNGaWxlID0gdHJ1ZTsKICAgIH0KICAgIHRoaXMuZGF0YUZvcm0uZmlsZSA9IGZpbGU7CiAgfSwKICAvLyDlr7zlhaUKICBodHRwUmVxdWVzdDogZnVuY3Rpb24gaHR0cFJlcXVlc3QocGFyYW0pIHsKICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICBmb3JtRGF0YS5hcHBlbmQoImZpbGUiLCB0aGlzLmRhdGFGb3JtLmZpbGUucmF3KTsKICAgIHZhciBjb25maWdIZWFkZXJzID0gewogICAgICBoZWFkZXJzOiB7CiAgICAgICAgIkNvbnRlbnQtVHlwZSI6ICJtdWx0aXBhcnQvZm9ybS1kYXRhIgogICAgICB9CiAgICB9OwogICAgY29uc29sZS5sb2codGhpcy5kYXRhRm9ybS5maWxlLnJhdy5uYW1lLCAidGhpcy5maWxlTGlzdFswXS5yYXcubmFtZXRoaXMuZmlsZUxpc3RbMF0ucmF3Lm5hbWV0aGlzLmZpbGVMaXN0WzBdLnJhdy5uYW1ldGhpcy5maWxlTGlzdFswXS5yYXcubmFtZSIpOwogICAgdmFyIGlzSHR0cFJlcXVlc3QgPSB0aGlzLmRhdGFGb3JtLmZpbGUucmF3Lm5hbWUuc3BsaXQoIi4iKTsKICAgIGlmIChpc0h0dHBSZXF1ZXN0W2lzSHR0cFJlcXVlc3QubGVuZ3RoIC0gMV0gPT0gInhsc3giIHx8IGlzSHR0cFJlcXVlc3RbaXNIdHRwUmVxdWVzdC5sZW5ndGggLSAxXSA9PSAieGxzIikgewogICAgICBnZXRDYW1lcmFEYXRhVXBMb2FkSW4oZm9ybURhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIF90aGlzNS4kbWVzc2FnZSh7CiAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgICAgbWVzc2FnZTogIuWvvOWFpeaIkOWKnyEiCiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzNS5nZXRDYW1lcmFMaXN0KF90aGlzNS5kYXRhKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM1LiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogImVycm9yIiwKICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgIHR5cGU6ICJlcnJvciIsCiAgICAgICAgbWVzc2FnZTogIuS4iuS8oOeahOaWh+S7tuWPquiDveaYr3hsc+S7peWPinhsc3jmoLzlvI8hIgogICAgICB9KTsKICAgIH0KICB9LAogIGNoYW5nZVZhbHVlOiBmdW5jdGlvbiBjaGFuZ2VWYWx1ZSh2YWwpIHt9LAogIC8vIOihjOWIq+S4i+aLiQogIGdldExpbmVUeXBlTGlzdDogZnVuY3Rpb24gZ2V0TGluZVR5cGVMaXN0KCkgewogICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICBnZXRMaW5lRGlyKHt9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXM2LmxpbmVEaXIgPSByZXMuZGF0YTsKICAgIH0pOwogIH0sCiAgZ2V0RGlyZWN0aW9uU2VsZWN0OiBmdW5jdGlvbiBnZXREaXJlY3Rpb25TZWxlY3QoKSB7CiAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgIGdldERpcmVjdGlvbih7fSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgIF90aGlzNy5maXJlY3Rpb25EYXRhID0gcmVzLmRhdGE7CiAgICB9KTsKICB9LAogIGhhbmRsZVN0YXR1c0NoYW5nZTogZnVuY3Rpb24gaGFuZGxlU3RhdHVzQ2hhbmdlKHJvdykgewogICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICBpZiAocm93LnN0YXJ0UmVjb3JkaW5nID09ICIyIikgewogICAgICBnZXRSZWNvcmRpbmcocm93LmlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBfdGhpczguJG1lc3NhZ2UoewogICAgICAgICAgICBtZXNzYWdlOiAi5YWz6Zet5oiQ5YqfIiwKICAgICAgICAgICAgdHlwZTogInN1Y2Nlc3MiCiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM4LiRtZXNzYWdlKHsKICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZywKICAgICAgICAgICAgdHlwZTogImVycm9yIgogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpczguZ2V0Q2FtZXJhTGlzdCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9IGVsc2UgaWYgKHJvdy5zdGFydFJlY29yZGluZyA9PSAiMSIpIHsKICAgICAgZ2V0U3RhcnRSZWNvcmRpbmcocm93LmlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBfdGhpczguJG1lc3NhZ2UoewogICAgICAgICAgICBtZXNzYWdlOiAi5byA5ZCv5oiQ5YqfIiwKICAgICAgICAgICAgdHlwZTogInN1Y2Nlc3MiCiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM4LiRtZXNzYWdlKHsKICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZywKICAgICAgICAgICAgdHlwZTogImVycm9yIgogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpczguZ2V0Q2FtZXJhTGlzdCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfSwKICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWwpIHsKICAgIHRoaXMuaWRzID0gdmFsLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICByZXR1cm4gaXRlbS5pZDsKICAgIH0pOwogIH0sCiAgaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KCkgewogICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgIHRoaXMuZ2V0Q2FtZXJhTGlzdCgpOwogIH0sCiAgcmVzZXQ6IGZ1bmN0aW9uIHJlc2V0KCkgewogICAgdGhpcy5xdWVyeVBhcmFtcy5kZXB0TmFtZSA9ICIiOwogICAgdGhpcy5xdWVyeVBhcmFtcy5kZXB0SWQgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMucmFpbHdheUNvZGUgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMubGluZURpciA9ICIiOwogICAgdGhpcy5xdWVyeVBhcmFtcy5iZWdpbk1pbGVCRCA9ICIiOwogICAgdGhpcy5xdWVyeVBhcmFtcy5lbmRNaWxlQkQgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMuc3RhdGlvbk5hbWUgPSAiIjsKICAgIHRoaXMucXVlcnlQYXJhbXMuY2FtZXJhQ29kZSA9ICIiOwogICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZVNpemUgPSAxMDsKICAgIHRoaXMuZ2V0Q2FtZXJhTGlzdCgpOwogIH0sCiAgZ2V0TGluZVdheUxpc3Q6IGZ1bmN0aW9uIGdldExpbmVXYXlMaXN0KCkgewogICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICBfZ2V0TGluZVdheUxpc3Qoe30pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICBfdGhpczkubGluZVdheURhdGEgPSByZXMuZGF0YTsKICAgIH0pOwogIH0sCiAgaGFuZGxlTm9kZUhhbmRsZUNsaWNrOiBmdW5jdGlvbiBoYW5kbGVOb2RlSGFuZGxlQ2xpY2soYSkgewogICAgdGhpcy5xdWVyeVBhcmFtcy5kZXB0TmFtZSA9IGEubGFiZWw7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLmRlcHRJZCA9IGEuaWQ7CiAgfSwKICBoYW5kbGVOb2RlQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZU5vZGVDbGljayh2KSB7CiAgICB0aGlzLmZvcm0uZGVwdElkID0gdi5pZDsKICAgIHRoaXMuZm9ybS5kZXB0TmFtZSA9IHYubGFiZWw7CiAgfSwKICBnZXRXb3JrU2V0aW9uOiBmdW5jdGlvbiBnZXRXb3JrU2V0aW9uKCkgewogICAgdmFyIF90aGlzMTAgPSB0aGlzOwogICAgX2dldFdvcmtTZXRpb24oe30pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzMTAud29ya1NldGlEYXRhID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgZ2V0TGluZURhdGEoe30pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzMTAuZ2V0TGluZURhdGEgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgfSwKICBnZXREZXB0TGlzdDogZnVuY3Rpb24gZ2V0RGVwdExpc3QoKSB7CiAgICB2YXIgX3RoaXMxMSA9IHRoaXM7CiAgICBfZ2V0RGVwdExpc3Qoe30pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICBfdGhpczExLnRyZWVEYXRhID0gcmVzLmRhdGE7CiAgICB9KTsKICB9LAogIGhhbmRsZUN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUN1cnJlbnRDaGFuZ2UodmFsKSB7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSB2YWw7CiAgICB0aGlzLmdldENhbWVyYUxpc3QoKTsKICB9LAogIGhhbmRsZVNpemVDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNpemVDaGFuZ2UodmFsKSB7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplID0gdmFsOwogICAgdGhpcy5nZXRDYW1lcmFMaXN0KCk7CiAgfSwKICBnZXRDYW1lcmFMaXN0OiBmdW5jdGlvbiBnZXRDYW1lcmFMaXN0KCkgewogICAgdmFyIF90aGlzMTIgPSB0aGlzOwogICAgZGVsZXRlIHRoaXMucXVlcnlQYXJhbXMuaWRzOwogICAgY29uc29sZS5sb2codGhpcy5xdWVyeVBhcmFtcywgInRoaXMucXVlcnlQYXJhbXN0aGlzLnF1ZXJ5UGFyYW1zdGhpcy5xdWVyeVBhcmFtcyIpOwogICAgZ2V0Q2FtZXJhRGF0YUxpc3QodGhpcy5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgaWYgKCFfdGhpczEyLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gfHwgIV90aGlzMTIucXVlcnlQYXJhbXMucGFnZVNpemUpIHsKICAgICAgICBfdGhpczEyLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxOwogICAgICAgIF90aGlzMTIucXVlcnlQYXJhbXMucGFnZVNpemUgPSAxMDsKICAgICAgICBnZXRDYW1lcmFEYXRhTGlzdChfdGhpczEyLnF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzMTIudGFibGVEYXRhID0gcmVzLmRhdGEucmVjb3JkczsKICAgICAgICAgIF90aGlzMTIudG90YWwgPSByZXMuZGF0YS50b3RhbDsKICAgICAgICB9KTsKICAgICAgfQogICAgICBpZiAocmVzcG9uc2UuZGF0YS5yZWNvcmRzLmxlbmd0aCA9PSAwICYmIF90aGlzMTIucXVlcnlQYXJhbXMucGFnZU51bSAhPSAxKSB7CiAgICAgICAgX3RoaXMxMi5xdWVyeVBhcmFtcy5wYWdlTnVtID0gX3RoaXMxMi5xdWVyeVBhcmFtcy5wYWdlTnVtIC0gMTsKICAgICAgICBnZXRDYW1lcmFEYXRhTGlzdChfdGhpczEyLnF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIF90aGlzMTIudGFibGVEYXRhID0gcmVzLmRhdGEucmVjb3JkczsKICAgICAgICAgIF90aGlzMTIudG90YWwgPSByZXNwb25zZS5kYXRhLnRvdGFsOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIF90aGlzMTIudGFibGVEYXRhID0gcmVzcG9uc2UuZGF0YS5yZWNvcmRzOwogICAgICBfdGhpczEyLnRvdGFsID0gcmVzcG9uc2UuZGF0YS50b3RhbDsKICAgICAgaWYgKF90aGlzMTIudGFibGVEYXRhLmxlbmd0aCA+IDApIHsKICAgICAgICBpZiAoX3RoaXMxMi50YWJsZURhdGFbMF0uaXNTdGFydFJlY29yZGluZyA9PSAxKSB7CiAgICAgICAgICBfdGhpczEyLnN0YXJ0U3RhdHVzID0gMTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3RoaXMxMi5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgICBfdGhpczEyLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplID0gMTA7CiAgICAgICAgX3RoaXMxMi50b3RhbCA9IHJlc3BvbnNlLmRhdGEudG90YWw7CiAgICAgICAgcmV0dXJuOwogICAgICAgIF90aGlzMTIuc3RhcnRTdGF0dXMgPSAwOwogICAgICB9CiAgICB9KTsKICB9LAogIGFkZEVxdWlwbWVudDogZnVuY3Rpb24gYWRkRXF1aXBtZW50KCkgewogICAgdGhpcy5mb3JtID0ge307CgogICAgLy8gdGhpcy4kcmVmc1snZm9ybSddLnJlc2V0RmllbGRzKCkKICAgIHRoaXMuZGlhbG9nVHlwZSA9IDE7CiAgICB0aGlzLnRpdGxlID0gIuaWsOWinuiuvuWkhyI7CiAgICAvLyBhbGVydCh0aGlzLmZvcm0uZW5hYmxlT3JOb3QpCiAgICAvLyBhbGVydCh0aGlzLmZvcm0uaW5zdGFsbExhdGl0dWRlKQogICAgdGhpcy5mb3JtLmVuYWJsZU9yTm90ID0gMTsKICAgIHRoaXMuZGlzYWJsZWRTYXZlID0gZmFsc2U7CiAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gdHJ1ZTsKICB9LAogIGNsb3NlRGlhOiBmdW5jdGlvbiBjbG9zZURpYSgpIHsKICAgIHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSBmYWxzZTsKICAgIHRoaXMuJHJlZnNbImZvcm0iXS5yZXNldEZpZWxkcygpOwogICAgdGhpcy5mb3JtID0ge307CiAgfSwKICBDbG9zZUluOiBmdW5jdGlvbiBDbG9zZUluKCkgewogICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlOwogICAgdGhpcy4kcmVmc1siZm9ybSJdLnJlc2V0RmllbGRzKCk7CiAgICB0aGlzLmZvcm0gPSB7fTsKICB9LAogIHN1Ym1pbnQ6IGZ1bmN0aW9uIHN1Ym1pbnQoKSB7CiAgICB2YXIgX3RoaXMxMyA9IHRoaXM7CiAgICB0aGlzLiRyZWZzLmZvcm0udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgIGlmICh2YWxpZCkgewogICAgICAgIGlmIChfdGhpczEzLmZvcm0uYmVnaW5NaWxlQkQgPiBfdGhpczEzLmZvcm0uZW5kTWlsZUJEKSB7CiAgICAgICAgICByZXR1cm4gX3RoaXMxMy4kbWVzc2FnZSh7CiAgICAgICAgICAgIG1lc3NhZ2U6ICLnu5PmnZ/ph4znqIvlv4XpobvlpKfkuo7otbflp4vph4znqIsiLAogICAgICAgICAgICB0eXBlOiAiZXJyb3IiCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgaWYgKF90aGlzMTMuZGlhbG9nVHlwZSA9PSAxKSB7CiAgICAgICAgICBfdGhpczEzLmZpcmVjdGlvbkRhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICBpZiAoaXRlbS5kaWN0TGFiZWwgPT0gX3RoaXMxMy5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb25OYW1lKSB7CiAgICAgICAgICAgICAgX3RoaXMxMy5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb24gPSBpdGVtLmRpY3RWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpczEzLmxpbmVEaXIuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICBpZiAoaXRlbS5kaWN0TGFiZWwgPT0gX3RoaXMxMy5mb3JtLmxpbmVEaXJOYW1lKSB7CiAgICAgICAgICAgICAgX3RoaXMxMy5mb3JtLmxpbmVEaXIgPSBpdGVtLmRpY3RWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICAvLyBkZWxldGUgdGhpcy5mb3JtLmRlcHROYW1lCiAgICAgICAgICBfdGhpczEzLmZvcm0ubW9uaXRvcmluZ0RpcmVjdGlvbiA9IE51bWJlcihfdGhpczEzLmZvcm0ubW9uaXRvcmluZ0RpcmVjdGlvbk5hbWUpOwogICAgICAgICAgX3RoaXMxMy5mb3JtLmxpbmVEaXIgPSBOdW1iZXIoX3RoaXMxMy5mb3JtLmxpbmVEaXJOYW1lKTsKICAgICAgICAgIF90aGlzMTMuZGlzYWJsZWRTYXZlID0gdHJ1ZTsKICAgICAgICAgIGdldENhbWVyYURhdGFBZGROZXdlcihfdGhpczEzLmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09IDIwMCkgewogICAgICAgICAgICAgIF90aGlzMTMuJG1lc3NhZ2UoewogICAgICAgICAgICAgICAgbWVzc2FnZTogIuaWsOWinuaIkOWKnyIsCiAgICAgICAgICAgICAgICB0eXBlOiAic3VjY2VzcyIKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczEzLmdldENhbWVyYUxpc3QoKTsKICAgICAgICAgICAgICBfdGhpczEzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAgX3RoaXMxMy4kcmVmc1siZm9ybSJdLnJlc2V0RmllbGRzKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX3RoaXMxMy5kaXNhYmxlZFNhdmUgPSBmYWxzZTsKICAgICAgICAgICAgICBfdGhpczEzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1zZywKICAgICAgICAgICAgICAgIHR5cGU6ICJlcnJvciIKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIGlmIChfdGhpczEzLmRpYWxvZ1R5cGUgPT0gMikgewogICAgICAgICAgZGVsZXRlIF90aGlzMTMuZm9ybS5iZWdpbk1pbGVzOwogICAgICAgICAgZGVsZXRlIF90aGlzMTMuZm9ybS5lbmRNaWxlczsKICAgICAgICAgIGRlbGV0ZSBfdGhpczEzLmZvcm0uaW5zdGFsbE1pbGVzOwogICAgICAgICAgX3RoaXMxMy5mb3JtLmxpbmVEaXIgPSBfdGhpczEzLmZvcm0ubGluZURpck5hbWU7CiAgICAgICAgICBfdGhpczEzLmZvcm0ubW9uaXRvcmluZ0RpcmVjdGlvbiA9IE51bWJlcihfdGhpczEzLmZvcm0ubW9uaXRvcmluZ0RpcmVjdGlvbk5hbWUpOwogICAgICAgICAgaWYgKF90aGlzMTMuZm9ybS5saW5lRGlyID09ICLkuIrooYwiKSB7CiAgICAgICAgICAgIF90aGlzMTMuZm9ybS5saW5lRGlyID0gMTsKICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXMxMy5mb3JtLmxpbmVEaXIgPT0gIuS4i+ihjCIpIHsKICAgICAgICAgICAgX3RoaXMxMy5mb3JtLmxpbmVEaXIgPSAyOwogICAgICAgICAgfQogICAgICAgICAgZ2V0Q2FtZXJhRGF0YVVwZGF0ZShfdGhpczEzLmZvcm0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgICAgX3RoaXMxMy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICBtZXNzYWdlOiAi5L+u5pS55oiQ5YqfIiwKICAgICAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIgogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIF90aGlzMTMuZ2V0Q2FtZXJhTGlzdCgpOwogICAgICAgICAgICAgIF90aGlzMTMuZGlhbG9nRm9ybVZpc2libGUgPSBmYWxzZTsKICAgICAgICAgICAgICBfdGhpczEzLiRyZWZzWyJmb3JtIl0ucmVzZXRGaWVsZHMoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfdGhpczEzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2csCiAgICAgICAgICAgICAgICB0eXBlOiAiZXJyb3IiCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgfSwKICBlZGl0RXF1aXA6IGZ1bmN0aW9uIGVkaXRFcXVpcChyb3cpIHsKICAgIHZhciBfdGhpczE0ID0gdGhpczsKICAgIHRoaXMuZGlhbG9nVHlwZSA9IDI7CiAgICB0aGlzLmRpc2FibGVkU2F2ZSA9IGZhbHNlOwogICAgdGhpcy50aXRsZSA9ICLkv67mlLnorr7lpIfkv6Hmga8iOwogICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IHRydWU7CiAgICAvLyB0aGlzLmZvcm0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJvdykpCiAgICBnZXRDYW1lcmFGZXRhaWwocm93LmlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXMxNC5mb3JtID0gcmVzLmRhdGE7CiAgICAgIF90aGlzMTQubGluZURpci5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaWYgKGl0ZW0uZGljdFZhbHVlID09IF90aGlzMTQuZm9ybS5saW5lRGlyKSB7CiAgICAgICAgICBfdGhpczE0LmZvcm0ubGluZURpck5hbWUgPSBpdGVtLmRpY3RMYWJlbDsKICAgICAgICB9CiAgICAgIH0pOwogICAgICBfdGhpczE0LmZpcmVjdGlvbkRhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGlmIChpdGVtLmRpY3RWYWx1ZSA9PSBfdGhpczE0LmZvcm0ubW9uaXRvcmluZ0RpcmVjdGlvbikgewogICAgICAgICAgX3RoaXMxNC5mb3JtLm1vbml0b3JpbmdEaXJlY3Rpb25OYW1lID0gaXRlbS5kaWN0TGFiZWw7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwogIH0sCiAgZGVsQ2FtZXJhTGlzdDogZnVuY3Rpb24gZGVsQ2FtZXJhTGlzdCgpIHsKICAgIHZhciBfdGhpczE1ID0gdGhpczsKICAgIGlmICh0aGlzLmlkcy5sZW5ndGggPT0gMCkgewogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAiZXJyb3IiLAogICAgICAgIG1lc3NhZ2U6ICLor7fpgInmi6npnIDopoHliKDpmaTnmoTmlbDmja4iCiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy4kY29uZmlybSgi56Gu5a6a6KaB5Yig6Zmk5ZCXPyIsICLkv6Hmga/mj5DnpLoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBnZXRDYW1lcmFEYXRhRGVsZXRlKF90aGlzMTUuaWRzKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgICAgX3RoaXMxNS5nZXRDYW1lcmFMaXN0KCk7CiAgICAgICAgICAgIF90aGlzMTUuJG1lc3NhZ2UoewogICAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgICAgICBtZXNzYWdlOiAi5Yig6Zmk5oiQ5YqfISIKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfdGhpczE1LiRtZXNzYWdlKHsKICAgICAgICAgICAgICB0eXBlOiAiZXJyb3IiLAogICAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2cKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczE1LiRtZXNzYWdlKHsKICAgICAgICAgIHR5cGU6ICJpbmZvIiwKICAgICAgICAgIG1lc3NhZ2U6ICLlt7Llj5bmtojliKDpmaQiCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0sCiAgZGVsQ2FtZXJhOiBmdW5jdGlvbiBkZWxDYW1lcmEocm93KSB7CiAgICB2YXIgX3RoaXMxNiA9IHRoaXM7CiAgICB0aGlzLmlkcyA9IHJvdy5pZDsKICAgIHRoaXMuJGNvbmZpcm0oIuehruWumuimgeWIoOmZpOWQlz8iLCAi5L+h5oGv5o+Q56S6IiwgewogICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICB0eXBlOiAid2FybmluZyIKICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICBnZXRDYW1lcmFEYXRhRGVsZXRlKF90aGlzMTYuaWRzKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBfdGhpczE2LmdldENhbWVyYUxpc3QoKTsKICAgICAgICAgIF90aGlzMTYuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgICAgIG1lc3NhZ2U6ICLliKDpmaTmiJDlip8hIgogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF90aGlzMTYuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAiZXJyb3IiLAogICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICBfdGhpczE2LiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAiaW5mbyIsCiAgICAgICAgbWVzc2FnZTogIuW3suWPlua2iOWIoOmZpCIKICAgICAgfSk7CiAgICB9KTsKICB9LAogIHVwbG9hZE91dDogZnVuY3Rpb24gdXBsb2FkT3V0KCkgewogICAgdmFyIF90aGlzMTcgPSB0aGlzOwogICAgZGVsZXRlIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bTsKICAgIGRlbGV0ZSB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplOwogICAgdGhpcy5xdWVyeVBhcmFtcy5pZHMgPSB0aGlzLmlkczsKICAgIC8vIGlmKHRoaXMucXVlcnlQYXJhbXMuaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAvLyAgIHJldHVybiB0aGlzLiRtZXNzYWdlKHsKICAgIC8vICAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6ZyA6KaB5a+85Ye655qE5pWw5o2uJywKICAgIC8vICAgICAgICAgICB0eXBlOiAiZXJyb3IiLAogICAgLy8gICAgICAgICB9KTsKICAgIC8vIH0KICAgIGdldENhbWVyYURhdGFVcExvYWRPdXQodGhpcy5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgIC8vIHRoaXMuZXhwb3J0RmlsZShyZXMsICLmkYTlg4/mnLrlj7DotKbkv6Hmga8iKTsKCiAgICAgIGlmIChyZXMudHlwZSA9PSAiYXBwbGljYXRpb24vanNvbiIpIHsKICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICByZWFkZXIucmVhZEFzVGV4dChyZXMsICd1dGYtOCcpOwogICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgbXNnID0gSlNPTi5wYXJzZShyZWFkZXIucmVzdWx0KTsKICAgICAgICAgIGlmIChtc2cuY29kZSA9PSAyMDApIHsKICAgICAgICAgICAgdGhpcy5leHBvcnRGaWxlKHJlcywgIuaRhOWDj+acuuWPsOi0puS/oeaBryIpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgTWVzc2FnZSh7CiAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJywKICAgICAgICAgICAgICBtZXNzYWdlOiBtc2cubXNnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3RoaXMxNy5leHBvcnRGaWxlKHJlcywgIuaRhOWDj+acuuWPsOi0puS/oeaBryIpOwogICAgICB9CiAgICB9KTsKICB9LAogIGV4cG9ydEZpbGU6IGZ1bmN0aW9uIGV4cG9ydEZpbGUob2JqKSB7CiAgICB2YXIgbmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogRGF0ZS5ub3coKTsKICAgIHZhciBzdWZmaXggPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6ICJ4bHN4IjsKICAgIHZhciB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbb2JqXSwgewogICAgICB0eXBlOiAiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsIgogICAgfSkpOwogICAgdmFyIGFET00gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CiAgICBhRE9NLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICBhRE9NLmhyZWYgPSB1cmw7CiAgICB2YXIgZmlsZU5hbWUgPSBuYW1lICsgIi4iICsgc3VmZml4OwogICAgYURPTS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIiwgZmlsZU5hbWUpOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhRE9NKTsKICAgIGFET00uY2xpY2soKTsKICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYURPTSk7CiAgfSwKICBkb3dubG9hZE91dDogZnVuY3Rpb24gZG93bmxvYWRPdXQoKSB7CiAgICB2YXIgX3RoaXMxOCA9IHRoaXM7CiAgICBnZXREb3duTG9hZExpc3Qoe30pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICBfdGhpczE4LmV4cG9ydERvd25GaWxlKHJlcywgIuaRhOWDj+acuuWPsOi0puaooeadvyIpOwogICAgfSk7CiAgfSwKICBleHBvcnREb3duRmlsZTogZnVuY3Rpb24gZXhwb3J0RG93bkZpbGUob2JqKSB7CiAgICB2YXIgbmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogRGF0ZS5ub3coKTsKICAgIHZhciBzdWZmaXggPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6ICJ4bHN4IjsKICAgIHZhciB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbb2JqXSwgewogICAgICB0eXBlOiAiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsIgogICAgfSkpOwogICAgdmFyIGFET00gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CiAgICBhRE9NLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICBhRE9NLmhyZWYgPSB1cmw7CiAgICB2YXIgZmlsZU5hbWUgPSBuYW1lICsgIi4iICsgc3VmZml4OwogICAgYURPTS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIiwgZmlsZU5hbWUpOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhRE9NKTsKICAgIGFET00uY2xpY2soKTsKICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYURPTSk7CiAgfSwKICB1cGRhdGVGaWxlSXRlbTogZnVuY3Rpb24gdXBkYXRlRmlsZUl0ZW0ocm93KSB7CiAgICBjb25zb2xlLmxvZyhyb3cpOwogICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTsKICAgIHRoaXMucm93ID0gcm93OwogIH0sCiAgbG9rRGV0YWlsSW5mbzogZnVuY3Rpb24gbG9rRGV0YWlsSW5mbyhyb3cpIHsKICAgIHZhciBfdGhpczE5ID0gdGhpczsKICAgIHRoaXMuZGV0YWlsRGlhbG9nID0gdHJ1ZTsKICAgIGdldENhbWVyYUZldGFpbChyb3cuaWQpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICByZXMuZGF0YS5pbnN0YWxsTG9uZ2l0dWRlID0gcmVzLmRhdGEuaW5zdGFsbExvbmdpdHVkZSB8fCAnJzsKICAgICAgcmVzLmRhdGEuaW5zdGFsbExhdGl0dWRlID0gcmVzLmRhdGEuaW5zdGFsbExhdGl0dWRlIHx8ICcnOwogICAgICBfdGhpczE5LmRldGFpbERhdGEgPSByZXMuZGF0YTsKICAgICAgX3RoaXMxOS5jYW1lcmFDb2RlVmFsdWUgPSBfdGhpczE5LmRldGFpbERhdGEuY2FtZXJhQ29kZTsKICAgICAgaWYgKF90aGlzMTkuZGV0YWlsRGF0YS5pbnN0YWxsTG9uZ2l0dWRlICE9IG51bGwgJiYgX3RoaXMxOS5kZXRhaWxEYXRhLmluc3RhbGxMYXRpdHVkZSAhPSBudWxsICYmIF90aGlzMTkuZGV0YWlsRGF0YS5pbnN0YWxsTG9uZ2l0dWRlICE9ICcnICYmIF90aGlzMTkuZGV0YWlsRGF0YS5pbnN0YWxsTGF0aXR1ZGUgIT0gJycpIHsKICAgICAgICBfdGhpczE5LnBqandkID0gX3RoaXMxOS5kZXRhaWxEYXRhLmluc3RhbGxMb25naXR1ZGUgKyAi77yMIiArIF90aGlzMTkuZGV0YWlsRGF0YS5pbnN0YWxsTGF0aXR1ZGU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3RoaXMxOS5wamp3ZCA9ICcnOwogICAgICB9CiAgICAgIGlmIChfdGhpczE5LmRldGFpbERhdGEuYmVnaW5NaWxlcyAhPSBudWxsICYmIF90aGlzMTkuZGV0YWlsRGF0YS5lbmRNaWxlcyAhPSBudWxsICYmIF90aGlzMTkuZGV0YWlsRGF0YS5iZWdpbk1pbGVzICE9ICcnICYmIF90aGlzMTkuZGV0YWlsRGF0YS5lbmRNaWxlcyAhPSAnJykgewogICAgICAgIF90aGlzMTkucGpKa2Z3ID0gX3RoaXMxOS5kZXRhaWxEYXRhLmJlZ2luTWlsZXMgKyAifiIgKyBfdGhpczE5LmRldGFpbERhdGEuZW5kTWlsZXM7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3RoaXMxOS5wakprZncgPSAnJzsKICAgICAgfQogICAgfSk7CiAgfSwKICBkZWxldGVFcXVpcDogZnVuY3Rpb24gZGVsZXRlRXF1aXAoKSB7CiAgICB2YXIgX3RoaXMyMCA9IHRoaXM7CiAgICB0aGlzLiRjb25maXJtKCLmraTmk43kvZzlsIbmsLjkuYXliKDpmaTor6Xmlofku7YsIOaYr+WQpue7p+e7rT8iLCAi5o+Q56S6IiwgewogICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICB0eXBlOiAid2FybmluZyIKICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICBfdGhpczIwLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgbWVzc2FnZTogIuWIoOmZpOaIkOWKnyEiCiAgICAgIH0pOwogICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICBfdGhpczIwLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAiaW5mbyIsCiAgICAgICAgbWVzc2FnZTogIuW3suWPlua2iOWIoOmZpCIKICAgICAgfSk7CiAgICB9KTsKICB9LAogIGltcG9ydExvYWRJbjogZnVuY3Rpb24gaW1wb3J0TG9hZEluKCkgewogICAgdGhpcy51cGxvYWREaWFsb2cgPSB0cnVlOwogIH0KfSksIF9uYW1lJGNvbXB1dGVkJGRhdGEkYyk7"},{"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","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 <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 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.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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"}]}