941ac0848f0301031b10e5e18cd982e7.json 82 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/dashboard/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/dashboard/index.vue","mtime":1708395041887},{"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:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICIvVXNlcnMvY2FvZ2UvRGVza3RvcC9cdTU3MzBcdThEMjhcdTczQjBcdTU3M0EvVmVoaWNsZU1vbml0b3ItV0VCL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyI7CmltcG9ydCBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciBmcm9tICIvVXNlcnMvY2FvZ2UvRGVza3RvcC9cdTU3MzBcdThEMjhcdTczQjBcdTU3M0EvVmVoaWNsZU1vbml0b3ItV0VCL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKdmFyIGVsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CmZ1bmN0aW9uIGNsb3NlRnVsbHNjcmVlbigpIHsKICBpZiAoZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4pIHsKICAgIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7CiAgfSBlbHNlIGlmIChkb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbikgewogICAgLyogU2FmYXJpICovCiAgICBkb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbigpOwogIH0gZWxzZSBpZiAoZG9jdW1lbnQubXNFeGl0RnVsbHNjcmVlbikgewogICAgLyogSUUxMSAqLwogICAgZG9jdW1lbnQubXNFeGl0RnVsbHNjcmVlbigpOwogIH0KfQpmdW5jdGlvbiBmdWxsc2NyZWVuS2V5UHJlc3NlZChldmVudCkgewogIGlmIChldmVudC5rZXlDb2RlID09PSAyNykgewogICAgLy8gRVNDIGtleQogICAgY2xvc2VGdWxsc2NyZWVuKCk7CiAgfQp9CmltcG9ydCB7IGNhbWVyYVRyZWUsIGxpbmVEYXRlLCByZWNvcmRzLCBsaW5lRGF0ZVN0b2NrLCBtZXNzYWdlU3RhdGlzdGljcywgbW9uaXRvclN5c3RlbSwgYWxhcm1MaXN0IH0gZnJvbSAiQC9hcGkvdmlkZW8iOwppbXBvcnQgeyBtb25pdG9yRGV0YWlsIH0gZnJvbSAnQC9hcGkvbW9uaXRvcic7CmltcG9ydCB3YXJuaW5nRGlzcG9zZSBmcm9tICIuLi8uLi9jb21wb25lbnRzL3dhcm5pbmcvd2FybmluZ0Rpc3Bvc2UudnVlIjsKaW1wb3J0IHsgbXNnQWxhcm1MaXN0LCBiYXNlUmFpbHdheU1hbmFnZW1lbnQsIGJhc2VWZWhpY2xlVmVoaWNsZVRyZWUsIGJhc2VWZWhpY2xlVmVoaWNsZUN1cnJlbnRTdHJlYW0gfSBmcm9tICJAL2FwaS9hbGFybUxpc3QiOwppbXBvcnQgeyBzdGF0aXN0aWNzTnVtLCBnZXRWZWhpY2xlTGlzdCwgZ2V0Q2FtZXJhTGlzdCwgZ2V0VmVoaWNsZVZpZGVvIH0gZnJvbSAiQC9hcGkvaG9tZSI7CmltcG9ydCBWaWRlbyBmcm9tICIuL1ZpZGVvLnZ1ZSI7CmltcG9ydCBWaWRlb0xpbmUgZnJvbSAiQC9jb21wb25lbnRzL3ZpZGVvUGxheWVyL3ZpZGVvTGluZSI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiQ2FydCIsCiAgY29tcHV0ZWQ6IHt9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBidXR0b25JbmRleDogMSwKICAgICAgaXNTaG93RGlhbG9nOiBmYWxzZSwKICAgICAgZGV0YWlsZU1zZzoge30sCiAgICAgIG1zZ1N0YXRpc3RpY3NEYXRhOiB7fSwKICAgICAgYWxhcm1MaXN0RGF0YTogW10sCiAgICAgIHN5c01zZzoge30sCiAgICAgIGlzV2FybmluZzogZmFsc2UsCiAgICAgIGJ1dFR5cGU6IDEsCiAgICAgIHN0YXRlczogdHJ1ZSwKICAgICAgZGVwb3BvdmVyOiBmYWxzZSwKICAgICAgZGVwb3BvdmVyMTogZmFsc2UsCiAgICAgIGxpbmVEaXI6ICIiLAogICAgICBzdGFydEttOiAiIiwKICAgICAgZW5kS206ICIiLAogICAgICBsY0ttOiAiIiwKICAgICAgd2FybmluZ0lkOiAwLAogICAgICBpc01hcDogZmFsc2UsCiAgICAgIHNlbGVjdExpc3Q6IFtdLAogICAgICBzZWxlY3Q6ICIiLAogICAgICBlbGVjdHJpY0xpbmVWb2x0YWdlOiAiIiwKICAgICAgY29kZUxpc3Q6IFtdLAogICAgICBpbnB1dDI6ICIiLAogICAgICBzZWxlY3RWYWx1ZTogIiIsCiAgICAgIHRpbWVEYXRlOiAiIiwKICAgICAgY291bnRNZXNzYWdlOiB7fSwKICAgICAgVmVoaWNsZVRyZWU6IFtdLAogICAgICB2aWRlb1R5cGU6IDEsCiAgICAgIHZpZGVvQ29kZTogIiIsCiAgICAgIGxpc3Q6IFt7fSwge30sIHt9LCB7fV0sCiAgICAgIHZpZGVvSW5kZXg6ICIiLAogICAgICBlcnJvck1zZ0xpc3Q6IFtdLAogICAgICBkYXRhOiBbXSwKICAgICAgdGltZXI6IG51bGwsCiAgICAgIGNhbWVyYVNob3c6IGZhbHNlLAogICAgICBkaWFsb2dJbmZvOiB7CiAgICAgICAgc2hvdzogZmFsc2UsCiAgICAgICAgZGF0YToge30KICAgICAgfSwKICAgICAgc2VhcmNoSW5mbzogewogICAgICAgIGNhbWVyYTogJycsCiAgICAgICAgdmVoaWNsZTogJycKICAgICAgfQogICAgfTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgdGhpcy5nZXRNZXNzYWdlU3RhdGlzdGljcygpOwogICAgdGhpcy5nZXRNb25pdG9yU3lzdGVtKCk7CiAgICB0aGlzLnNlbGVjdEFsYXJtVHlwZSgnMScsICcnKTsKICAgIGNhbWVyYVRyZWUoewogICAgICByYWlsd2F5Q29kZTogdGhpcy5zZWFyY2hUZXh0CiAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXMuc2V0RGlzYWJsZWQocmVzLmRhdGEuY2hpbGRyZW4sIDEpOwogICAgICBfdGhpcy5kYXRhID0gcmVzLmRhdGEuY2hpbGRyZW47CiAgICAgIF90aGlzLmxpc3RDbGljaygxKTsKICAgIH0pOwogICAgYmFzZVJhaWx3YXlNYW5hZ2VtZW50KCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgIF90aGlzLnNlbGVjdExpc3QgPSByZXMuZGF0YTsKICAgIH0pOwogICAgdGhpcy5hbGFybUxpc3QoKTsKICAgIHN0YXRpc3RpY3NOdW0oKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXMuY291bnRNZXNzYWdlID0gcmVzLmRhdGEgfHwge307CiAgICB9KTsKICAgIGJhc2VWZWhpY2xlVmVoaWNsZVRyZWUoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgX3RoaXMuc2V0RGlzYWJsZWQocmVzLmRhdGEuY2hpbGRyZW4sIDIpOwogICAgICBfdGhpcy5WZWhpY2xlVHJlZSA9IHJlcy5kYXRhLmNoaWxkcmVuOwogICAgfSk7CiAgICB2YXIgZ2V0TWFwRGF0YSA9IGZ1bmN0aW9uIGdldE1hcERhdGEoKSB7CiAgICAgIGdldFZlaGljbGVMaXN0KCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMuJHJlZnMubWFwUmVmLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoewogICAgICAgICAgdHlwZTogMSwKICAgICAgICAgIGRhdGE6IHJlcy5kYXRhCiAgICAgICAgfSwgIioiKTsKICAgICAgfSk7CiAgICAgIGdldENhbWVyYUxpc3QoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpcy4kcmVmcy5tYXBSZWYuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAyLAogICAgICAgICAgZGF0YTogcmVzLmRhdGEKICAgICAgICB9LCAiKiIpOwogICAgICB9KTsKICAgIH07CiAgICBnZXRNYXBEYXRhKCk7CiAgICB0aGlzLnRpbWVyID0gc2V0SW50ZXJ2YWwoZ2V0TWFwRGF0YSwgMTAwMDApOwogICAgd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgIHZhciBfZSRkYXRhID0gZS5kYXRhLAogICAgICAgIGRhdGEgPSBfZSRkYXRhLmRhdGEsCiAgICAgICAgbmFtZSA9IF9lJGRhdGEubmFtZTsKICAgICAgaWYgKCFuYW1lKSByZXR1cm47CiAgICAgIF90aGlzLiRzZXQoX3RoaXMuZGlhbG9nSW5mbywgJ3Nob3cnLCB0cnVlKTsKICAgICAgZ2V0VmVoaWNsZVZpZGVvKGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciBfcmVzJGRhdGE7CiAgICAgICAgaWYgKCgoX3JlcyRkYXRhID0gcmVzLmRhdGEpID09PSBudWxsIHx8IF9yZXMkZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3JlcyRkYXRhLmxlbmd0aCkgPiAwKSB7CiAgICAgICAgICBfdGhpcy5kaWFsb2dJbmZvID0gewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgICAgICBkYXRhOiByZXMuZGF0YQogICAgICAgICAgICB9CiAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSBfdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICBtZXNzYWdlOiAi5peg55uR5o6n6KeG6aKRIiwKICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH07CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsKICB9LAogIHdhdGNoOiB7CiAgICBzZWxlY3Q6IGZ1bmN0aW9uIHNlbGVjdCgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIGlmICh0aGlzLmJ1dFR5cGUgPT09IDIpIHsKICAgICAgICBiYXNlVmVoaWNsZVZlaGljbGVUcmVlKHsKICAgICAgICAgIHJhaWx3YXlDb2RlOiB0aGlzLnNlbGVjdCwKICAgICAgICAgIGxpbmVEaXI6IHRoaXMubGluZURpciwKICAgICAgICAgIG1pbHM6IHRoaXMuaW5wdXQyCiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczIuc2V0RGlzYWJsZWQocmVzLmRhdGEuY2hpbGRyZW4sIDIpOwogICAgICAgICAgX3RoaXMyLlZlaGljbGVUcmVlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXMuZGF0YS5jaGlsZHJlbikpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjYW1lcmFUcmVlKHsKICAgICAgICByYWlsd2F5Q29kZTogdGhpcy5zZWxlY3QsCiAgICAgICAgbGluZURpcjogdGhpcy5saW5lRGlyLAogICAgICAgIG1pbHM6IHRoaXMuaW5wdXQyCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMi5zZXREaXNhYmxlZChyZXMuZGF0YS5jaGlsZHJlbiwgMSk7CiAgICAgICAgX3RoaXMyLmRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlcy5kYXRhLmNoaWxkcmVuKSk7CiAgICAgICAgX3RoaXMyLiRmb3JjZVVwZGF0ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICBidXRUeXBlOiBmdW5jdGlvbiBidXRUeXBlKCkgewogICAgICB0aGlzLiRyZWZzLnRyZWUubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaXRlbS5zZXRDaGVja2VkS2V5cyhbXSk7CiAgICAgIH0pOwogICAgICB0aGlzLmxpc3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFt7fSwge30sIHt9LCB7fV0pKTsKICAgIH0KICB9LAogIGNvbXBvbmVudHM6IHsKICAgIHdhcm5pbmdEaXNwb3NlOiB3YXJuaW5nRGlzcG9zZSwKICAgIFZpZGVvOiBWaWRlbywKICAgIFZpZGVvTGluZTogVmlkZW9MaW5lCiAgfSwKICBtZXRob2RzOiB7CiAgICBzaG93Q2FtZXJhOiBmdW5jdGlvbiBzaG93Q2FtZXJhKCkgewogICAgICB0aGlzLiRyZWZzLm1hcFJlZi5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHRoaXMuY2FtZXJhU2hvdywgIioiKTsKICAgICAgdGhpcy5jYW1lcmFTaG93ID0gIXRoaXMuY2FtZXJhU2hvdzsKICAgIH0sCiAgICB0b0FsYXJtTGlzdDogZnVuY3Rpb24gdG9BbGFybUxpc3QodmFsKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsKICAgICAgICBuYW1lOiAnTGlzdCcsCiAgICAgICAgcGFyYW1zOiB7CiAgICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgICAgc291cmNlOiB2YWwuY2xpZW50SWQsCiAgICAgICAgICBpc0xvY2s6IDIKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHRvQ2FtZXJhTW9uaXRvcmluZzogZnVuY3Rpb24gdG9DYW1lcmFNb25pdG9yaW5nKHZhbCkgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgbmFtZTogJ0NhbWVyYU1vbml0b3JpbmcnLAogICAgICAgIHBhcmFtczogewogICAgICAgICAgcGFnZU51bTogMSwKICAgICAgICAgIHBhZ2VTaXplOiAxMCwKICAgICAgICAgIG9uTGluZTogdmFsCiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICB0b1ZlaGljbGVNb25pdG9yaW5nOiBmdW5jdGlvbiB0b1ZlaGljbGVNb25pdG9yaW5nKHZhbCkgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgbmFtZTogJ1ZlaGljbGVNb25pdG9yaW5nJywKICAgICAgICBwYXJhbXM6IHsKICAgICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgICBzdGF0dXM6IHZhbAogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgc2VsZWN0QWxhcm1UeXBlOiBmdW5jdGlvbiBzZWxlY3RBbGFybVR5cGUodHlwZSwgaW5kZXgpIHsKICAgICAgdGhpcy5idXR0b25JbmRleCA9IHR5cGU7CiAgICAgIHRoaXMuZ2V0QWxhcm1MaXN0KGluZGV4KTsKICAgIH0sCiAgICBnb01vcmU6IGZ1bmN0aW9uIGdvTW9yZSgpIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICIvc3lzdGVtTW9uaXRvcmluZy9tb25pdG9yaW5nU3lzdGVtTW9uaXRvcmluZyIKICAgICAgfSk7CgogICAgICAvLyB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgIC8vICAgICBuYW1lOidMaXN0JywKICAgICAgLy8gICAgIHBhcmFtczp7CiAgICAgIC8vICAgICAgICAgcGFnZU51bToxLAogICAgICAvLyAgICAgICAgIHBhZ2VTaXplOjEwLAogICAgICAvLyAgICAgICAgIHNvdXJjZTonJywKICAgICAgLy8gICAgICAgICBpc0xvY2s6JycKICAgICAgLy8gICAgIH0KICAgICAgLy8gfSkKICAgIH0sCiAgICBnb0FsYXJtTGlzdDogZnVuY3Rpb24gZ29BbGFybUxpc3QoKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHsKICAgICAgICBwYXRoOiAiL2xpc3QiCiAgICAgIH0pOwogICAgfSwKICAgIHNlZURldGFpbDogZnVuY3Rpb24gc2VlRGV0YWlsKGl0ZW0pIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICIvYWxhcm1EZXRhaWwiLAogICAgICAgIHF1ZXJ5OiB7CiAgICAgICAgICBpZDogaXRlbS5pZCwKICAgICAgICAgIGNhbWVyYUNvZGU6IGl0ZW0ucmFpbHdheUNvZGUsCiAgICAgICAgICBhbGFybUlkOiBpdGVtLmFsYXJtSWQKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHNob3dEZXRhaWxlRGlhbG9nOiBmdW5jdGlvbiBzaG93RGV0YWlsZURpYWxvZyh2YWwpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIG1vbml0b3JEZXRhaWwodmFsLmlkKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBfdGhpczMuZGV0YWlsZU1zZyA9IHJlcy5kYXRhOwogICAgICAgICAgX3RoaXMzLmlzU2hvd0RpYWxvZyA9IHRydWU7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgLy8gdGhpcy5kZXRhaWxlTXNnID0gdmFsCiAgICAgIC8vIHRoaXMuaXNTaG93RGlhbG9nID0gdHJ1ZQogICAgfSwKICAgIGdldEFsYXJtTGlzdDogZnVuY3Rpb24gZ2V0QWxhcm1MaXN0KHR5cGUpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIGFsYXJtTGlzdCh0eXBlKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBpZiAocmVzLmRhdGEucmVjb3Jkcy5sZW5ndGggPiAyKSB7CiAgICAgICAgICAgIHJlcy5kYXRhLnJlY29yZHMubGVuZ3RoID0gMjsKICAgICAgICAgIH0KICAgICAgICAgIF90aGlzNC5hbGFybUxpc3REYXRhID0gcmVzLmRhdGEucmVjb3JkczsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGdvQ2hheHVuOiBmdW5jdGlvbiBnb0NoYXh1bigpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIGlmICh0aGlzLmJ1dFR5cGUgPT09IDIpIHsKICAgICAgICBiYXNlVmVoaWNsZVZlaGljbGVUcmVlKHsKICAgICAgICAgIHJhaWx3YXlDb2RlOiB0aGlzLnNlbGVjdCwKICAgICAgICAgIGxpbmVEaXI6IHRoaXMubGluZURpciwKICAgICAgICAgIG1pbHM6IHRoaXMuaW5wdXQyCiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICBfdGhpczUuVmVoaWNsZVRyZWUgPSByZXMuZGF0YS5jaGlsZHJlbjsKICAgICAgICB9KTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY2FtZXJhVHJlZSh7CiAgICAgICAgcmFpbHdheUNvZGU6IHRoaXMuc2VsZWN0IHx8IHRoaXMuc2VhcmNoVGV4dCwKICAgICAgICBsaW5lRGlyOiB0aGlzLmxpbmVEaXIsCiAgICAgICAgbWlsczogdGhpcy5pbnB1dDIKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM1LmNvZGVMaXN0ID0gW107CiAgICAgICAgX3RoaXM1LnNldERpc2FibGVkKHJlcy5kYXRhLmNoaWxkcmVuLCAxKTsKICAgICAgICBfdGhpczUuZGF0YSA9IHJlcy5kYXRhLmNoaWxkcmVuOwogICAgICAgIF90aGlzNS5saXN0Q2xpY2soMSk7CiAgICAgIH0pOwogICAgfSwKICAgIGdldFBhcmVudE5vZGVzQnlDb2RlOiBmdW5jdGlvbiBnZXRQYXJlbnROb2Rlc0J5Q29kZShub2RlcywgY29kZSkgewogICAgICB2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIobm9kZXMpLAogICAgICAgIF9zdGVwOwogICAgICB0cnkgewogICAgICAgIGZvciAoX2l0ZXJhdG9yLnMoKTsgIShfc3RlcCA9IF9pdGVyYXRvci5uKCkpLmRvbmU7KSB7CiAgICAgICAgICB2YXIgbm9kZSA9IF9zdGVwLnZhbHVlOwogICAgICAgICAgaWYgKG5vZGUuY29kZSA9PT0gY29kZSkgewogICAgICAgICAgICByZXR1cm4gW25vZGVdOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIHBhcmVudE5vZGVzID0gdGhpcy5nZXRQYXJlbnROb2Rlc0J5Q29kZShub2RlLmNoaWxkcmVuLCBjb2RlKTsKICAgICAgICAgICAgaWYgKHBhcmVudE5vZGVzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIFtub2RlXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KHBhcmVudE5vZGVzKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIF9pdGVyYXRvci5lKGVycik7CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgX2l0ZXJhdG9yLmYoKTsKICAgICAgfQogICAgICByZXR1cm4gbnVsbDsKICAgIH0sCiAgICBpdGVtQ2xpY2tNc2c6IGZ1bmN0aW9uIGl0ZW1DbGlja01zZyhpdGVtLCBpbmRleCkgewogICAgICBpZiAodGhpcy52aWRlb0luZGV4ID09PSBpbmRleCkgewogICAgICAgIHRoaXMudmlkZW9JbmRleCA9ICIiOwogICAgICAgIHRoaXMudmlkZW9Db2RlID0gIiI7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHZhciBub2RlcyA9IHRoaXMuZ2V0UGFyZW50Tm9kZXNCeUNvZGUodGhpcy5idXRUeXBlID09PSAxID8gdGhpcy5kYXRhIDogdGhpcy5WZWhpY2xlVHJlZSwgaXRlbS5jb2RlKSB8fCBbXTsKICAgICAgbm9kZXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaXRlbS5uYXZJdGVtID0gdHJ1ZTsKICAgICAgfSk7CiAgICAgIGNvbnNvbGUubG9nKG5vZGVzLCB0aGlzLmRhdGEsIGl0ZW0uY29kZSwgIm5vZGVzIik7CiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YSk7CiAgICAgIHRoaXMudmlkZW9JbmRleCA9IGluZGV4OwogICAgICB0aGlzLnZpZGVvQ29kZSA9IGl0ZW0uY29kZTsKICAgIH0sCiAgICBjaGVja1ZhbHVlTGVuOiBmdW5jdGlvbiBjaGVja1ZhbHVlTGVuKCkgewogICAgICByZXR1cm4gdGhpcy5jb2RlTGlzdC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5ub2RlLmNoZWNrZWQ7CiAgICAgIH0pLmxlbmd0aDsKICAgIH0sCiAgICBjaGVja2JveENoYW5nZTogZnVuY3Rpb24gY2hlY2tib3hDaGFuZ2UoX3JlZikgewogICAgICB2YXIgbm9kZSA9IF9yZWYubm9kZSwKICAgICAgICBkYXRhID0gX3JlZi5kYXRhOwogICAgICBpZiAodGhpcy5jaGVja1ZhbHVlTGVuKCkgPiB0aGlzLnZpZGVvVHlwZSAmJiBkYXRhLmNoZWNrZWQpIHsKICAgICAgICBkYXRhLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgfQogICAgICB0aGlzLmNoYW5nZShkYXRhLCBkYXRhLmNoZWNrZWQpOwogICAgfSwKICAgIGNsaWNrQ0hhbmdlQ2hlY2s6IGZ1bmN0aW9uIGNsaWNrQ0hhbmdlQ2hlY2soX3JlZjIpIHsKICAgICAgdmFyIGRhdGEgPSBfcmVmMi5kYXRhLAogICAgICAgIG5vZGUgPSBfcmVmMi5ub2RlOwogICAgICBpZiAoIWRhdGEuZGlzYWJsZWQpIHsKICAgICAgICBkYXRhLmNoZWNrZWQgPSAhZGF0YS5jaGVja2VkOwogICAgICB9CiAgICAgIHRoaXMuY2hlY2tib3hDaGFuZ2UoewogICAgICAgIGRhdGE6IGRhdGEsCiAgICAgICAgbm9kZTogbm9kZQogICAgICB9KTsKICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTsKICAgIH0sCiAgICB3YXJuaW5nU3VjY2VzczogZnVuY3Rpb24gd2FybmluZ1N1Y2Nlc3MoKSB7CiAgICAgIGFsZXJ0KCJzdWNjZXNzIik7CiAgICB9LAogICAgaXNXYXJuaW5nQ2xpY2s6IGZ1bmN0aW9uIGlzV2FybmluZ0NsaWNrKGl0ZW0pIHsKICAgICAgdGhpcy53YXJuaW5nSWQgPSBpdGVtLmlkOwogICAgICB0aGlzLmlzV2FybmluZyA9IHRydWU7CiAgICB9LAogICAgaXNXYXJuaW5nQ2xvc2U6IGZ1bmN0aW9uIGlzV2FybmluZ0Nsb3NlKCkgewogICAgICB0aGlzLmlzV2FybmluZyA9IGZhbHNlOwogICAgfSwKICAgIG9wZW5GdWxsc2NyZWVuOiBmdW5jdGlvbiBvcGVuRnVsbHNjcmVlbigpIHsKICAgICAgdmFyIG1zZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tc2ctdCIpOwogICAgICBtc2cuY2xhc3NOYW1lID0gbXNnLmNsYXNzTmFtZSArICIgZWFzYyI7CiAgICAgIGlmIChlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKSB7CiAgICAgICAgZWxlbS5yZXF1ZXN0RnVsbHNjcmVlbigpOwogICAgICB9IGVsc2UgaWYgKGVsZW0ud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4pIHsKICAgICAgICAvKiBTYWZhcmkgKi8KICAgICAgICBlbGVtLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk7CiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7CiAgICAgICAgLyogSUUxMSAqLwogICAgICAgIGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbigpOwogICAgICB9CiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZ1bGxzY3JlZW5jaGFuZ2UiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKCFkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCkgewogICAgICAgICAgbXNnLmNsYXNzTGlzdC5yZW1vdmUoImVhc2MiKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHJlbG9hZENoYW5nZTogZnVuY3Rpb24gcmVsb2FkQ2hhbmdlKCkgewogICAgICB0aGlzLnNlbGVjdFZhbHVlID0gdGhpcy5zZWxlY3Q7CiAgICB9LAogICAgcmVsb2FkS2V5czogZnVuY3Rpb24gcmVsb2FkS2V5cygpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuY29kZUxpc3QubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaWYgKGl0ZW0ubm9kZS5jaGVja2VkKSB7CiAgICAgICAgICBpdGVtLm5vZGUuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgX3RoaXM2LmNoYW5nZShpdGVtLm5vZGUsIGl0ZW0ubm9kZS5jaGVja2VkKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0aGlzLnNlbGVjdCA9ICIiOwogICAgfSwKICAgIGxpc3RDbGljazogZnVuY3Rpb24gbGlzdENsaWNrKHJlcywgaXMpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIGlmICh0aGlzLmJ1dFR5cGUgPT09IDIgJiYgaXMpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy52aWRlb1R5cGUgPSByZXM7CiAgICAgIHRoaXMuY29kZUxpc3QubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaXRlbS5ub2RlLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgfSk7CiAgICAgIHRoaXMubGlzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoW3t9LCB7fSwge30sIHt9XSkpOwogICAgICB2YXIgY29kZUxpc3QgPSB0aGlzLmNvZGVMaXN0LmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLm51bSA9PT0gX3RoaXM3LmJ1dFR5cGU7CiAgICAgIH0pOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudmlkZW9UeXBlOyBpKyspIHsKICAgICAgICBjb2RlTGlzdFtpXS5ub2RlLmNoZWNrZWQgPSB0cnVlOwogICAgICAgIHRoaXMuY2hhbmdlKGNvZGVMaXN0W2ldLm5vZGUsIHRydWUpOwogICAgICB9CiAgICB9LAogICAgYnV0Q2xpY2s6IGZ1bmN0aW9uIGJ1dENsaWNrKHYpIHsKICAgICAgdGhpcy5idXRUeXBlID0gdjsKICAgICAgaWYgKHYgPT09IDIpIHsKICAgICAgICB0aGlzLnZpZGVvVHlwZSA9IDE7CiAgICAgIH0KICAgICAgdGhpcy5zZWxlY3QgPSAnJzsKICAgICAgdGhpcy5saXN0Q2xpY2sodGhpcy52aWRlb1R5cGUpOwogICAgfSwKICAgIGFsYXJtTGlzdDogZnVuY3Rpb24gYWxhcm1MaXN0KCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgbXNnQWxhcm1MaXN0KHsKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAxMDAwLAogICAgICAgIGFsYXJtTWlsZTogdGhpcy5sY0ttLAogICAgICAgIGJlZ2luTWlsZTogdGhpcy5zdGFydEttLAogICAgICAgIGVuZE1pbGU6IHRoaXMuZW5kS20sCiAgICAgICAgbGluZURpcjogdGhpcy5saW5lRGlyLAogICAgICAgIHJhaWx3YXlDb2RlOiB0aGlzLmVsZWN0cmljTGluZVZvbHRhZ2UsCiAgICAgICAgYmVnaW5BbGFybVRpbWU6IHRoaXMudGltZURhdGUgJiYgdGhpcy50aW1lRGF0ZS5sZW5ndGggPyB0aGlzLnRpbWVEYXRlWzBdICsgIiAwMDowMDowMCIgOiAiIiwKICAgICAgICBlbmRBbGFybVRpbWU6IHRoaXMudGltZURhdGUgJiYgdGhpcy50aW1lRGF0ZS5sZW5ndGggPyB0aGlzLnRpbWVEYXRlWzFdICsgIiAwMDowMDowMCIgOiAiIiwKICAgICAgICBpc1JlbGVhc2U6IHRoaXMuc3RhdGVzID8gMiA6IDEKICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM4LmVycm9yTXNnTGlzdCA9IHJlcy5kYXRhLnJlY29yZHM7CiAgICAgICAgX3RoaXM4LmVsZWN0cmljTGluZVZvbHRhZ2UgPSAnJzsKICAgICAgICBfdGhpczgubGluZURpciA9ICcnOwogICAgICAgIF90aGlzOC5sY0ttID0gJyc7CiAgICAgICAgX3RoaXM4LnN0YXJ0S20gPSAnJzsKICAgICAgICBfdGhpczguZW5kS20gPSAnJzsKICAgICAgICBfdGhpczgudGltZURhdGUgPSAnJzsKICAgICAgICBfdGhpczguZGVwb3BvdmVyID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIHhxQ2xpY2s6IGZ1bmN0aW9uIHhxQ2xpY2soaXRlbSkgewogICAgICBzZXNzaW9uU3RvcmFnZS5yb3cgPSBKU09OLnN0cmluZ2lmeShpdGVtKTsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICIvYWxhcm1EZXRhaWw/aWQ9Ii5jb25jYXQoaXRlbS5pZCwgIiZhbGFybUlkPSIpLmNvbmNhdChpdGVtLmFsYXJtSWQsICImY2FtZXJhQ29kZT0iKS5jb25jYXQoaXRlbS5jYW1lcmFDb2RlKQogICAgICB9KTsKICAgIH0sCiAgICBzZXREaXNhYmxlZDogZnVuY3Rpb24gc2V0RGlzYWJsZWQobm9kZXMsIG51bSkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkgewogICAgICAgIG5vZGUuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgIG5vZGUubmF2SXRlbSA9IHRydWU7CiAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgICAgICBub2RlLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgIF90aGlzOS5zZXREaXNhYmxlZChub2RlLmNoaWxkcmVuLCBudW0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBub2RlLmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICBfdGhpczkuY29kZUxpc3QucHVzaCh7CiAgICAgICAgICAgIG5vZGU6IG5vZGUsCiAgICAgICAgICAgIGNvZGU6IG5vZGUuY29kZSwKICAgICAgICAgICAgbnVtOiBudW0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgc3RhdGVzQ2xpY2s6IGZ1bmN0aW9uIHN0YXRlc0NsaWNrKHN0YXRlcykgewogICAgICB0aGlzLnN0YXRlcyA9IHN0YXRlczsKICAgICAgdGhpcy5hbGFybUxpc3QoKTsKICAgIH0sCiAgICBjaGVja0Z1bjogZnVuY3Rpb24gY2hlY2tGdW4oX3JlZjMpIHsKICAgICAgdmFyIGRhdGEgPSBfcmVmMy5kYXRhLAogICAgICAgIG5vZGUgPSBfcmVmMy5ub2RlOwogICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlTGVuKCkgPj0gdGhpcy52aWRlb1R5cGUgJiYgIWRhdGEuY2hlY2tlZDsKICAgIH0sCiAgICBjaGFuZ2U6IGZ1bmN0aW9uIGNoYW5nZShub2RlLCBpc0IpIHsKICAgICAgdmFyIF90aGlzMTAgPSB0aGlzOwogICAgICB2YXIgY29kZSA9IG5vZGUuY29kZTsKICAgICAgaWYgKGlzQikgewogICAgICAgIG5vZGUucmVuZGVyID0gdHJ1ZTsKICAgICAgICB2YXIgX2luZGV4ID0gbnVsbDsKICAgICAgICB0aGlzLmxpc3QubWFwKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgICAgaWYgKCFpdGVtLmNvZGUgJiYgX2luZGV4ID09PSBudWxsKSB7CiAgICAgICAgICAgIF9pbmRleCA9IGluZGV4OwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHRoaXMubGlzdFtfaW5kZXhdLmNvZGUgPSBjb2RlOwogICAgICAgIGlmICh0aGlzLmJ1dFR5cGUgPT09IDIpIHsKICAgICAgICAgIGJhc2VWZWhpY2xlVmVoaWNsZUN1cnJlbnRTdHJlYW0obm9kZS5jb2RlKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLmN1cnJlbnRTdHJlYW0pIHsKICAgICAgICAgICAgICBfdGhpczEwLmxpc3RbX2luZGV4XS5zcmMgPSByZXMuZGF0YS5jdXJyZW50U3RyZWFtIHx8ICIiOwogICAgICAgICAgICAgIF90aGlzMTAubGlzdFtfaW5kZXhdLmxpbmUgPSByZXMuZGF0YS5yYWlsd2F5TmFtZTsKICAgICAgICAgICAgICBfdGhpczEwLmxpc3RbX2luZGV4XS5saW5lRGlyID0gcmVzLmRhdGEubGluZURpcjsKICAgICAgICAgICAgICBfdGhpczEwLmxpc3RbX2luZGV4XS5taWxlYWdlUG9zaXRpb24gPSByZXMuZGF0YS5pbnN0YWxsTWlsZTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlY29yZHMobm9kZS5jb2RlLCB0cnVlKS50aGVuKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIF90aGlzMTAubGlzdFtfaW5kZXhdLnNyYyA9IGl0ZW0uZGF0YTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB2YXIgaXNGdW4gPSB0aGlzLmJ1dFR5cGUgPT09IDIgPyBsaW5lRGF0ZVN0b2NrIDogbGluZURhdGU7CiAgICAgICAgaXNGdW4obm9kZS5jb2RlKS50aGVuKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBfdGhpczEwLmxpc3RbX2luZGV4XS52YWx1ZSA9IGl0ZW0uZGF0YTsKICAgICAgICAgIGlmIChpdGVtLmRhdGEpIHsKICAgICAgICAgICAgX3RoaXMxMC5saXN0W19pbmRleF0ubGluZSA9IGl0ZW0uZGF0YVswXTsKICAgICAgICAgICAgX3RoaXMxMC5saXN0W19pbmRleF0ubWlsZWFnZVBvc2l0aW9uID0gaXRlbS5kYXRhWzFdOwogICAgICAgICAgICBfdGhpczEwLmxpc3RbX2luZGV4XS5saW5lRGlyID0gaXRlbS5kYXRhWzJdID09IDEgPyAi5LiK6KGMIiA6ICLkuIvooYwiOwogICAgICAgICAgICBfdGhpczEwLmxpc3RbX2luZGV4XS5jb2RlID0gaXRlbS5kYXRhWzNdOwogICAgICAgICAgICBfdGhpczEwLmxpc3RbX2luZGV4XS5pc0xvY2sgPSBpdGVtLmRhdGFbNV07CiAgICAgICAgICB9CiAgICAgICAgICBfdGhpczEwLmxpc3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KF90aGlzMTAubGlzdCkpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIG5vZGUucmVuZGVyID0gZmFsc2U7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxpc3QubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGlmICh0aGlzLmxpc3RbaV0uY29kZSA9PT0gY29kZSkgewogICAgICAgICAgICB0aGlzLmxpc3RbaV0gPSB7CiAgICAgICAgICAgICAgY29kZTogIiIKICAgICAgICAgICAgfTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnNvbGUubG9nKHRoaXMubGlzdCwgY29kZSwgInRoaXMubGlzdCIpOwogICAgICAgIHRoaXMubGlzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5saXN0KSk7CiAgICAgIH0KICAgIH0sCiAgICBnZXRNZXNzYWdlU3RhdGlzdGljczogZnVuY3Rpb24gZ2V0TWVzc2FnZVN0YXRpc3RpY3MoKSB7CiAgICAgIHZhciBfdGhpczExID0gdGhpczsKICAgICAgbWVzc2FnZVN0YXRpc3RpY3MoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBfdGhpczExLm1zZ1N0YXRpc3RpY3NEYXRhID0gcmVzLmRhdGE7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBnZXRNb25pdG9yU3lzdGVtOiBmdW5jdGlvbiBnZXRNb25pdG9yU3lzdGVtKCkgewogICAgICB2YXIgX3RoaXMxMiA9IHRoaXM7CiAgICAgIG1vbml0b3JTeXN0ZW0oKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICBpZiAocmVzLmRhdGEubGVuZ3RoID4gMykgewogICAgICAgICAgICByZXMuZGF0YS5sZW5ndGggPSAzOwogICAgICAgICAgfQogICAgICAgICAgX3RoaXMxMi5zeXNNc2cgPSByZXMuZGF0YTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGhpZ2hsaWdoUGFuZWw6IGZ1bmN0aW9uIGhpZ2hsaWdoUGFuZWwoKSB7CiAgICAgIHRoaXMuJHJlZnMubWFwUmVmLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoewogICAgICAgIHR5cGU6IDMsCiAgICAgICAgZGF0YTogdGhpcy5zZWFyY2hJbmZvCiAgICAgIH0sICIqIik7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["elem","document","documentElement","closeFullscreen","exitFullscreen","webkitExitFullscreen","msExitFullscreen","fullscreenKeyPressed","event","keyCode","cameraTree","lineDate","records","lineDateStock","messageStatistics","monitorSystem","alarmList","monitorDetail","warningDispose","msgAlarmList","baseRailwayManagement","baseVehicleVehicleTree","baseVehicleVehicleCurrentStream","statisticsNum","getVehicleList","getCameraList","getVehicleVideo","Video","VideoLine","name","computed","data","buttonIndex","isShowDialog","detaileMsg","msgStatisticsData","alarmListData","sysMsg","isWarning","butType","states","depopover","depopover1","lineDir","startKm","endKm","lcKm","warningId","isMap","selectList","select","electricLineVoltage","codeList","input2","selectValue","timeDate","countMessage","VehicleTree","videoType","videoCode","list","videoIndex","errorMsgList","timer","cameraShow","dialogInfo","show","searchInfo","camera","vehicle","mounted","_this","getMessageStatistics","getMonitorSystem","selectAlarmType","railwayCode","searchText","then","res","setDisabled","children","listClick","getMapData","$refs","mapRef","contentWindow","postMessage","type","setInterval","window","onmessage","e","_e$data","$set","_res$data","length","$message","message","beforeDestroy","clearInterval","watch","_this2","mils","JSON","parse","stringify","$forceUpdate","tree","map","item","setCheckedKeys","components","methods","showCamera","toAlarmList","val","$router","push","params","pageNum","pageSize","source","clientId","isLock","toCameraMonitoring","onLine","toVehicleMonitoring","status","index","getAlarmList","goMore","path","goAlarmList","seeDetail","query","id","cameraCode","alarmId","showDetaileDialog","_this3","code","_this4","goChaxun","_this5","getParentNodesByCode","nodes","_iterator","_createForOfIteratorHelper","_step","s","n","done","node","value","parentNodes","concat","_toConsumableArray","err","f","itemClickMsg","navItem","console","log","checkValueLen","filter","checked","checkboxChange","_ref","change","clickCHangeCheck","_ref2","disabled","warningSuccess","alert","isWarningClick","isWarningClose","openFullscreen","msg","querySelector","className","requestFullscreen","webkitRequestFullscreen","msRequestFullscreen","addEventListener","fullscreenElement","classList","remove","reloadChange","reloadKeys","_this6","is","_this7","num","i","butClick","v","_this8","alarmMile","beginMile","endMile","beginAlarmTime","endAlarmTime","isRelease","xqClick","sessionStorage","row","_this9","forEach","statesClick","checkFun","_ref3","isB","_this10","render","_index","currentStream","src","line","railwayName","mileagePosition","installMile","isFun","_this11","_this12","highlighPanel"],"sources":["src/views/dashboard/index.vue"],"sourcesContent":["<template>\r\n <div class=\"dashboard\">\r\n <div style=\"width: 100%;height: 50px;\"></div>\r\n <div class=\"content\">\r\n <div class=\"left-map\">\r\n <div style=\"width: 3px;height: 16px;background-color: #2250C8;position: absolute;left: 15px;top: 14px;\"></div>\r\n <span style=\"font-size: 16px;font-weight: 500;position: absolute;left: 22px;top: 12px;\">线路实况</span>\r\n <div class=\"cameraBtn\">\r\n <!-- <el-select></el-select>\r\n <el-select></el-select> -->\r\n <el-input size=\"small\" v-model=\"searchInfo.camera\" placeholder=\"输入摄像机编号\" clearable></el-input>\r\n <el-input size=\"small\" v-model=\"searchInfo.vehicle\" placeholder=\"输入机车编号\" clearable></el-input>\r\n <el-button @click=\"highlighPanel\" size=\"small\" type=\"primary\">\r\n <i class=\"el-icon-search\"></i>\r\n </el-button>\r\n <img src=\"/map/camera.png\" :style=\"cameraShow ? { opacity: 0.6 } : { opacity: 1 }\" width=\"32\" height=\"32\" alt=\"\"\r\n @click=\"showCamera\">\r\n </div>\r\n <iframe ref=\"mapRef\" style=\"width: 100%;height: 100%;\" src=\"/SH-demo(1).html\" frameborder=\"0\"></iframe>\r\n </div>\r\n <div class=\"right-msg\">\r\n <div class=\"msgStatistics\">\r\n <div style=\"width: 3px;height: 16px;background-color: #2250C8;position: absolute;left: 15px;top: 14px;\"></div>\r\n <span style=\"font-size: 16px;font-weight: 500;position: absolute;left: 22px;top: 12px;\">设备状态</span>\r\n <div class=\"left\">\r\n <img src=\"../../assets/编组201.png\" style=\"position: absolute;right: 25px;top: 29px;\">\r\n <span style=\"color:#333333;font-size:12px;position: absolute;top: 18px;left: 77px;\">在线</span>\r\n <span style=\"color:#333333;font-size:12px;position: absolute;bottom: 18px;left: 77px;\">离线</span>\r\n <span\r\n style=\"color:#333333;font-size:12px;position: absolute;bottom: 10px;right: 16px;font-weight: 600;\">接入摄像机</span>\r\n <!-- <span style=\"color: #00974D;line-height: 22px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);position: absolute;left: 33px;top: 13px;\">{{ msgStatisticsData.online||0 }}{{ '台' }}</span>\r\n <span style=\"color: #FF0000;line-height: 22px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);position: absolute;left: 33px;bottom: 13px;\">{{ msgStatisticsData.offline ||0}}{{ '台' }}</span>\r\n <span style=\"color: #2250C8;line-height: 22px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);position: absolute;right: 42px;top: 13px;\">{{ msgStatisticsData.countAllCamera||0}}{{ '台' }}</span> -->\r\n <div class=\"onlineNum\" style=\"width: 40%;height: 50%;text-align: center;\">\r\n <span\r\n style=\"color: #00974D;line-height: 55px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);cursor: pointer;\"\r\n @click=\"toCameraMonitoring('2')\">{{ msgStatisticsData.online || 0 }}{{ '台' }}</span>\r\n </div>\r\n <div class=\"offlineNum\" style=\"width: 40%;height: 50%;text-align: center;\">\r\n <span\r\n style=\"color: #FF0000;line-height: 55px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);cursor: pointer;\"\r\n @click=\"toCameraMonitoring('1')\">{{ msgStatisticsData.offline || 0 }}{{ '台' }}</span>\r\n </div>\r\n <div class=\"cameraNum\" style=\"position: absolute;right: 5px;top:0;width: 40%;height: 50%;text-align: center;\">\r\n <span\r\n style=\"color: #2250C8;line-height: 55px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);\">{{\r\n msgStatisticsData.countAllCamera || 0 }}{{ '台' }}</span>\r\n </div>\r\n </div>\r\n <div class=\"right\">\r\n <img src=\"../../assets/编组202.png\" style=\"position: absolute;left: 25px;top: 29px;\">\r\n <span style=\"color:#333333;font-size:12px;position: absolute;top: 18px;right: 77px;\">在线</span>\r\n <span style=\"color:#333333;font-size:12px;position: absolute;bottom: 18px;right: 77px;\">离线</span>\r\n <span\r\n style=\"color:#333333;font-size:12px;position: absolute;bottom: 10px;left: 24px;font-weight: 600;\">车载终端</span>\r\n <!-- <span style=\"color: #00974D;line-height: 22px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);position: absolute;right: 33px;top: 13px;\">{{ msgStatisticsData.OFFLINETERMINAL ||0}}{{ '台' }}</span>\r\n <span style=\"color: #FF0000;line-height: 22px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);position: absolute;right: 33px;bottom: 13px;\">{{ msgStatisticsData.ONLINETERMINAL ||0}}{{ '台' }}</span>\r\n <span style=\"color: #2250C8;line-height: 22px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);position: absolute;left: 37px;top: 13px;\">{{ msgStatisticsData.COUNTALLTERMINAL ||0}}{{ '台' }}</span> -->\r\n <div class=\"terminalNum\"\r\n style=\"position: absolute;left: 5px;top:0;width: 40%;height: 50%;text-align: center;\">\r\n <span\r\n style=\"color: #2250C8;line-height: 55px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);\">{{\r\n msgStatisticsData.COUNTALLTERMINAL || 0 }}{{ '台' }}</span>\r\n </div>\r\n <div class=\"onlineNum\" style=\"width: 40%;height: 50%;text-align: center;float: right;\">\r\n <span\r\n style=\"color: #00974D;line-height: 55px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);cursor: pointer;\"\r\n @click=\"toVehicleMonitoring('1')\">{{ msgStatisticsData.OFFLINETERMINAL || 0 }}{{ '台' }}</span>\r\n </div>\r\n <div class=\"offlineNum\"\r\n style=\"width: 40%;height: 50%;text-align: center;position: absolute;right: 0;bottom: 0;\">\r\n <span\r\n style=\"color: #FF0000;line-height: 55px;font-size: 16px;font-weight: 600;text-shadow: 0px 2px 2px rgba(161,158,158,0.5);cursor: pointer;\"\r\n @click=\"toVehicleMonitoring('2')\">{{ msgStatisticsData.ONLINETERMINAL || 0 }}{{ '台' }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"systemMsg\">\r\n <div style=\"width: 3px;height: 16px;background-color: #2250C8;position: absolute;left: 15px;top: 14px;\"></div>\r\n <span style=\"font-size: 16px;font-weight: 500;position: absolute;left: 22px;top: 12px;\">接入系统状态</span>\r\n <div style=\"width: 100%;height: 77px;\"></div>\r\n <div class=\"tongji\">\r\n <div class=\"total\">\r\n <img src=\"../../assets/group4.png\">\r\n <span\r\n style=\"position: absolute;font-size: 20px;line-height: 22px;font-weight: 600;color: #696969;left: 61px;\">{{\r\n sysMsg.countAllMonitor }}<span style=\"font-size: 16px;font-weight: 400;color: #696969;\">{{ '套'\r\n }}</span></span>\r\n <span\r\n style=\"font-size: 14px;font-weight: 400;color: #484646;line-height: 22px;position: absolute;left: 60px;top: 20px;\">接入监测系统</span>\r\n </div>\r\n <div class=\"online\">\r\n <img src=\"../../assets/group5.png\">\r\n <span\r\n style=\"position: absolute;font-size: 20px;line-height: 22px;font-weight: 600;color: #696969;left: 61px;\">{{\r\n sysMsg.onlineMonitor }}<span style=\"font-size: 16px;font-weight: 400;color: #696969;\">{{ '套'\r\n }}</span></span>\r\n <span\r\n style=\"font-size: 14px;font-weight: 400;color: #484646;line-height: 22px;position: absolute;left: 60px;top: 20px;\">在线</span>\r\n </div>\r\n <div class=\"offline\">\r\n <img src=\"../../assets/group6.png\">\r\n <span\r\n style=\"position: absolute;font-size: 20px;line-height: 22px;font-weight: 600;color: #696969;left: 61px;\">{{\r\n sysMsg.offlineMonitor }}<span style=\"font-size: 16px;font-weight: 400;color: #696969;\">{{ '套'\r\n }}</span></span>\r\n <span\r\n style=\"font-size: 14px;font-weight: 400;color: #484646;line-height: 22px;position: absolute;left: 60px;top: 20px;\">离线</span>\r\n </div>\r\n </div>\r\n <div class=\"msgItem\" v-for=\"item in sysMsg.monitorSystemList.slice(0, 3)\">\r\n <div class=\"blueDrop\"></div>\r\n <div style=\"width: 100%;height: 10px;\"></div>\r\n <div class=\"sysName\">{{ item.monitorSystemName }}</div>\r\n <div class=\"sysState\">\r\n <span style=\"padding-left: 14px;font-size: 14px;color: rgba(0, 0, 0, 0.88);font-weight: 400;\">状态:</span>\r\n <span style=\"padding-left: 14px;color: #00974D;font-size: 14px;font-weight: 400;\"\r\n v-if=\"item.status == 1\">在线</span>\r\n <span style=\"padding-left: 14px;color: red;font-size: 14px;font-weight: 400;\" v-else>离线</span>\r\n <span style=\"padding-left: 80px;font-size: 14px;color: rgba(0, 0, 0, 0.88);font-weight: 400;\">未解除报警:</span>\r\n <span style=\"padding-left: 14px;font-size: 14px;color: blue;font-weight: 400;cursor: pointer;\"\r\n @click=\"toAlarmList(item)\">{{ item.countAlarm || 0 }}</span>\r\n <span style=\"position: absolute;right:15px;color: #2250C8;font-size: 12px;font-weight: 500;cursor: pointer;\"\r\n @click=\"showDetaileDialog(item)\">详情</span>\r\n </div>\r\n </div>\r\n <div class=\"more\" @click=\"goMore\">更多></div>\r\n <el-dialog width=\"836px\" title=\"详情查看\" :visible.sync=\"isShowDialog\">\r\n <el-form style=\"padding: 0 10px; margin-left: -20px\" label-width=\"120px\" ref=\"ruleForm\" :model=\"detaileMsg\"\r\n label-position=\"top\">\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"监测系统名称:\">\r\n <el-input v-model=\"detaileMsg.monitorSystemName\" autocomplete=\"off\" disabled />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"监测系统编码:\">\r\n <el-input v-model=\"detaileMsg.clientId\" autocomplete=\"off\" disabled />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"正式环境密钥:\">\r\n <el-input v-model=\"detaileMsg.clientSecret\" autocomplete=\"off\" disabled />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"测试环境密钥:\">\r\n <el-input v-model=\"detaileMsg.testSecret\" autocomplete=\"off\" disabled />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"报警信息生成机制:\">\r\n <el-input v-model=\"detaileMsg.alarmGenerate\" autocomplete=\"off\" disabled type=\"textarea\"\r\n style=\"height:50px\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"报警解除机制:\">\r\n <el-input v-model=\"detaileMsg.alarmRelease\" autocomplete=\"off\" disabled type=\"textarea\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"系统简介:\">\r\n <el-input v-model=\"detaileMsg.systemIntroduce\" autocomplete=\"off\" disabled type=\"textarea\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"报警信息内容:\">\r\n <el-input v-model=\"detaileMsg.alarmContent\" autocomplete=\"off\" disabled type=\"textarea\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"报警对应的处理措施:\">\r\n <el-input v-model=\"detaileMsg.treateMeasure\" autocomplete=\"off\" disabled type=\"textarea\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </el-dialog>\r\n </div>\r\n <div class=\"alarmMsg\">\r\n <div style=\"width: 3px;height: 16px;background-color: #2250C8;position: absolute;left: 15px;top: 14px;\"></div>\r\n <span style=\"font-size: 16px;font-weight: 500;position: absolute;left: 22px;top: 12px;\">报警信息</span>\r\n <div style=\"width: 100%;height: 53px;\"></div>\r\n <div class=\"switchButton\">\r\n <div class=\"all\" @click=\"selectAlarmType('1', '')\"\r\n :style=\"buttonIndex == 1 ? 'border-color:#C9D5F5;color:#2250C8' : ''\">全部</div>\r\n <div class=\"unreleased\" @click=\"selectAlarmType('2', 2)\"\r\n :style=\"buttonIndex == 2 ? 'border-color:#C9D5F5;color:#2250C8' : ''\">未解除</div>\r\n <div class=\"released\" @click=\"selectAlarmType('3', 1)\"\r\n :style=\"buttonIndex == 3 ? 'border-color:#C9D5F5;color:#2250C8' : ''\">已解除</div>\r\n </div>\r\n <div class=\"alarmMsgItem\" v-for=\"item in alarmListData\">\r\n <img src=\"../../assets/报警.png\">\r\n <span class=\"isLock1\" v-if=\"item.isRelease == 1\">已解除</span>\r\n <span class=\"isLock\" v-if=\"item.isRelease == 2\">未解除</span>\r\n <div style=\"width: 100%;height: 7px;\"></div>\r\n <div class=\"railwayName\">{{ item.alarmTypeName }}</div>\r\n <div class=\"content\">\r\n <!-- <div style=\"left: 0;top: 0;\">{{ item.lineDirName + ',里程位置' + item.alarmMiles + ',' + item.alarmTypeName }}</div>\r\n <div style=\"left: 0;top: 19px;\">{{ item.alarmTime }}</div>\r\n <div style=\"left: 0;top: 38px;\" v-if=\"item.sourceName\">{{ '来源:' + item.sourceName }}</div>\r\n <div style=\"left: 0;top: 38px;\" v-else>{{ '来源:' }}</div> -->\r\n\r\n <div style=\"left: 0;top: 19px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;\"\r\n :title=\"item.sourceName + ' ' + item.alarmTime\" v-if=\"item.sourceName\">{{ item.sourceName }} {{\r\n item.alarmTime }}</div>\r\n <div style=\"left: 0;top: 19px;\" v-else>{{ }} {{ item.alarmTime }}</div>\r\n <div style=\"left: 0;top: 38px;\" v-if=\"item.alarmLevel == 1\">{{ item.lineDirName + ' ' + item.alarmMiles +\r\n ',' + item.alarmTypeName + ' ' + '一级报警' }}</div>\r\n <div style=\"left: 0;top: 38px;\" v-if=\"item.alarmLevel == 2\">{{ item.lineDirName + ' ' + item.alarmMiles +\r\n ',' + item.alarmTypeName + ' ' + '二级报警' }}</div>\r\n <div style=\"left: 0;top: 38px;\" v-if=\"item.alarmLevel == 3\">{{ item.lineDirName + ' ' + item.alarmMiles +\r\n ',' + item.alarmTypeName + ' ' + '三级报警' }}</div>\r\n </div>\r\n <div class=\"detailsBtn\" @click=\"seeDetail(item)\">\r\n 查看详情\r\n </div>\r\n </div>\r\n <div class=\"more\" @click=\"goAlarmList\">更多></div>\r\n </div>\r\n </div>\r\n </div>\r\n <el-dialog width=\"65%\" :visible=\"dialogInfo.show\" @close=\"dialogInfo.show = false, dialogInfo.data = {}\">\r\n <template #title>\r\n <div :style=\"`opacity: ${Object.keys(dialogInfo.data).length === 0 ? '1' : '0'};`\">视频加载中...</div>\r\n </template>\r\n <div class=\"video\" v-loading=\"Object.keys(dialogInfo.data).length === 0\">\r\n <div v-for=\"item in dialogInfo.data.data\" :key=\"item\">\r\n <div>\r\n <VideoLine :showElectric=\"false\" :items=\"false\" :camera-code=\"item.cameraCode ? item.cameraCode : ''\">\r\n </VideoLine>\r\n <Video :src=\"item.url\"></Video>\r\n </div>\r\n </div>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script>\r\nvar elem = document.documentElement;\r\n\r\nfunction closeFullscreen() {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n /* Safari */\r\n document.webkitExitFullscreen();\r\n } else if (document.msExitFullscreen) {\r\n /* IE11 */\r\n document.msExitFullscreen();\r\n }\r\n}\r\n\r\nfunction fullscreenKeyPressed(event) {\r\n if (event.keyCode === 27) {\r\n // ESC key\r\n closeFullscreen();\r\n }\r\n}\r\n\r\nimport { cameraTree, lineDate, records, lineDateStock, messageStatistics, monitorSystem, alarmList } from \"@/api/video\";\r\nimport { monitorDetail } from '@/api/monitor'\r\nimport warningDispose from \"../../components/warning/warningDispose.vue\";\r\nimport {\r\n msgAlarmList,\r\n baseRailwayManagement,\r\n baseVehicleVehicleTree,\r\n baseVehicleVehicleCurrentStream,\r\n} from \"@/api/alarmList\";\r\nimport { statisticsNum, getVehicleList, getCameraList, getVehicleVideo } from \"@/api/home\";\r\nimport Video from \"./Video.vue\";\r\nimport VideoLine from \"@/components/videoPlayer/videoLine\";\r\nexport default {\r\n name: \"Cart\",\r\n computed: {},\r\n data() {\r\n return {\r\n buttonIndex: 1,\r\n isShowDialog: false,\r\n detaileMsg: {},\r\n msgStatisticsData: {},\r\n alarmListData: [],\r\n sysMsg: {},\r\n isWarning: false,\r\n butType: 1,\r\n states: true,\r\n depopover: false,\r\n depopover1: false,\r\n lineDir: \"\",\r\n startKm: \"\",\r\n endKm: \"\",\r\n lcKm: \"\",\r\n warningId: 0,\r\n isMap: false,\r\n selectList: [],\r\n select: \"\",\r\n electricLineVoltage: \"\",\r\n codeList: [],\r\n input2: \"\",\r\n selectValue: \"\",\r\n timeDate: \"\",\r\n countMessage: {},\r\n VehicleTree: [],\r\n videoType: 1,\r\n videoCode: \"\",\r\n list: [{}, {}, {}, {}],\r\n videoIndex: \"\",\r\n errorMsgList: [],\r\n data: [],\r\n timer: null,\r\n cameraShow: false,\r\n dialogInfo: {\r\n show: false,\r\n data: {}\r\n },\r\n searchInfo: {\r\n camera: '',\r\n vehicle: ''\r\n }\r\n };\r\n },\r\n mounted() {\r\n this.getMessageStatistics()\r\n this.getMonitorSystem()\r\n this.selectAlarmType('1', '')\r\n cameraTree({\r\n railwayCode: this.searchText,\r\n }).then((res) => {\r\n this.setDisabled(res.data.children, 1);\r\n this.data = res.data.children;\r\n this.listClick(1);\r\n });\r\n\r\n baseRailwayManagement().then((res) => {\r\n this.selectList = res.data;\r\n });\r\n\r\n this.alarmList();\r\n\r\n statisticsNum().then((res) => {\r\n this.countMessage = res.data || {};\r\n });\r\n\r\n baseVehicleVehicleTree().then((res) => {\r\n this.setDisabled(res.data.children, 2);\r\n this.VehicleTree = res.data.children;\r\n });\r\n const getMapData = () => {\r\n getVehicleList().then(res => {\r\n this.$refs.mapRef.contentWindow.postMessage({ type: 1, data: res.data }, \"*\");\r\n })\r\n getCameraList().then(res => {\r\n this.$refs.mapRef.contentWindow.postMessage({ type: 2, data: res.data }, \"*\");\r\n })\r\n }\r\n getMapData()\r\n this.timer = setInterval(getMapData, 10000);\r\n window.onmessage = (e) => {\r\n const { data: { data, name } } = e\r\n if(!name) return\r\n this.$set(this.dialogInfo, 'show', true)\r\n getVehicleVideo(data).then(res => {\r\n if (res.data?.length > 0) {\r\n this.dialogInfo = {\r\n show: true,\r\n data: {\r\n name,\r\n data: res.data\r\n }\r\n }\r\n }\r\n\r\n else this.$message({\r\n message: \"无监控视频\",\r\n type: 'warning'\r\n })\r\n })\r\n }\r\n },\r\n beforeDestroy() {\r\n clearInterval(this.timer)\r\n },\r\n watch: {\r\n select() {\r\n if (this.butType === 2) {\r\n baseVehicleVehicleTree({\r\n railwayCode: this.select,\r\n lineDir: this.lineDir,\r\n mils: this.input2,\r\n }).then((res) => {\r\n this.setDisabled(res.data.children, 2);\r\n this.VehicleTree = JSON.parse(JSON.stringify(res.data.children))\r\n });\r\n return;\r\n }\r\n cameraTree({\r\n railwayCode: this.select,\r\n lineDir: this.lineDir,\r\n mils: this.input2,\r\n }).then((res) => {\r\n this.setDisabled(res.data.children, 1);\r\n this.data = JSON.parse(JSON.stringify(res.data.children));\r\n this.$forceUpdate();\r\n });\r\n },\r\n butType() {\r\n this.$refs.tree.map((item) => {\r\n item.setCheckedKeys([]);\r\n });\r\n this.list = JSON.parse(JSON.stringify([{}, {}, {}, {}]));\r\n },\r\n },\r\n components: {\r\n warningDispose,\r\n Video,\r\n VideoLine\r\n },\r\n methods: {\r\n showCamera() {\r\n this.$refs.mapRef.contentWindow.postMessage(this.cameraShow, \"*\");\r\n this.cameraShow = !this.cameraShow\r\n },\r\n toAlarmList(val) {\r\n this.$router.push({\r\n name: 'List',\r\n params: {\r\n pageNum: 1,\r\n pageSize: 10,\r\n source: val.clientId,\r\n isLock: 2\r\n }\r\n })\r\n },\r\n toCameraMonitoring(val) {\r\n this.$router.push({\r\n name: 'CameraMonitoring',\r\n params: {\r\n pageNum: 1,\r\n pageSize: 10,\r\n onLine: val\r\n }\r\n })\r\n },\r\n toVehicleMonitoring(val) {\r\n this.$router.push({\r\n name: 'VehicleMonitoring',\r\n params: {\r\n pageNum: 1,\r\n pageSize: 10,\r\n status: val\r\n }\r\n })\r\n },\r\n selectAlarmType(type, index) {\r\n this.buttonIndex = type\r\n this.getAlarmList(index)\r\n },\r\n goMore() {\r\n this.$router.push({\r\n path: \"/systemMonitoring/monitoringSystemMonitoring\",\r\n });\r\n\r\n // this.$router.push({\r\n // name:'List',\r\n // params:{\r\n // pageNum:1,\r\n // pageSize:10,\r\n // source:'',\r\n // isLock:''\r\n // }\r\n // })\r\n },\r\n goAlarmList() {\r\n this.$router.push({\r\n path: \"/list\",\r\n });\r\n },\r\n seeDetail(item) {\r\n this.$router.push({\r\n path: \"/alarmDetail\",\r\n query: {\r\n id: item.id,\r\n cameraCode: item.railwayCode,\r\n alarmId: item.alarmId,\r\n },\r\n });\r\n },\r\n showDetaileDialog(val) {\r\n monitorDetail(val.id).then(res => {\r\n if (res.code == 200) {\r\n this.detaileMsg = res.data\r\n this.isShowDialog = true\r\n }\r\n })\r\n // this.detaileMsg = val\r\n // this.isShowDialog = true\r\n },\r\n getAlarmList(type) {\r\n alarmList(type).then(res => {\r\n if (res.code == 200) {\r\n if (res.data.records.length > 2) {\r\n res.data.records.length = 2\r\n }\r\n this.alarmListData = res.data.records\r\n }\r\n })\r\n },\r\n goChaxun() {\r\n if (this.butType === 2) {\r\n baseVehicleVehicleTree({\r\n railwayCode: this.select,\r\n lineDir: this.lineDir,\r\n mils: this.input2,\r\n }).then((res) => {\r\n this.VehicleTree = res.data.children;\r\n });\r\n return;\r\n }\r\n cameraTree({\r\n railwayCode: this.select || this.searchText,\r\n lineDir: this.lineDir,\r\n mils: this.input2,\r\n }).then((res) => {\r\n this.codeList = [];\r\n this.setDisabled(res.data.children, 1);\r\n this.data = res.data.children;\r\n this.listClick(1);\r\n });\r\n },\r\n getParentNodesByCode(nodes, code) {\r\n for (const node of nodes) {\r\n if (node.code === code) {\r\n return [node];\r\n }\r\n if (node.children && node.children.length) {\r\n const parentNodes = this.getParentNodesByCode(node.children, code);\r\n if (parentNodes) {\r\n return [node, ...parentNodes];\r\n }\r\n }\r\n }\r\n return null;\r\n },\r\n itemClickMsg(item, index) {\r\n if (this.videoIndex === index) {\r\n this.videoIndex = \"\";\r\n this.videoCode = \"\";\r\n return;\r\n }\r\n const nodes =\r\n this.getParentNodesByCode(\r\n this.butType === 1 ? this.data : this.VehicleTree,\r\n item.code\r\n ) || [];\r\n nodes.map((item) => {\r\n item.navItem = true;\r\n });\r\n console.log(nodes, this.data, item.code, \"nodes\");\r\n console.log(this.data);\r\n this.videoIndex = index;\r\n this.videoCode = item.code;\r\n },\r\n checkValueLen() {\r\n return this.codeList.filter((item) => item.node.checked).length;\r\n },\r\n checkboxChange({ node, data }) {\r\n if (this.checkValueLen() > this.videoType && data.checked) {\r\n data.checked = false;\r\n }\r\n this.change(data, data.checked);\r\n },\r\n clickCHangeCheck({ data, node }) {\r\n if (!data.disabled) {\r\n data.checked = !data.checked;\r\n }\r\n this.checkboxChange({ data, node });\r\n this.$forceUpdate();\r\n },\r\n warningSuccess() {\r\n alert(\"success\");\r\n },\r\n isWarningClick(item) {\r\n this.warningId = item.id;\r\n this.isWarning = true;\r\n },\r\n isWarningClose() {\r\n this.isWarning = false;\r\n },\r\n openFullscreen() {\r\n var msg = document.querySelector(\".msg-t\");\r\n msg.className = msg.className + \" easc\";\r\n if (elem.requestFullscreen) {\r\n elem.requestFullscreen();\r\n } else if (elem.webkitRequestFullscreen) {\r\n /* Safari */\r\n elem.webkitRequestFullscreen();\r\n } else if (elem.msRequestFullscreen) {\r\n /* IE11 */\r\n elem.msRequestFullscreen();\r\n }\r\n\r\n document.addEventListener(\"fullscreenchange\", function () {\r\n if (!document.fullscreenElement) {\r\n msg.classList.remove(\"easc\");\r\n }\r\n });\r\n },\r\n reloadChange() {\r\n this.selectValue = this.select;\r\n },\r\n reloadKeys() {\r\n this.codeList.map((item) => {\r\n if (item.node.checked) {\r\n item.node.checked = false;\r\n this.change(item.node, item.node.checked);\r\n }\r\n });\r\n this.select = \"\";\r\n },\r\n listClick(res, is) {\r\n if (this.butType === 2 && is) {\r\n return;\r\n }\r\n this.videoType = res;\r\n this.codeList.map((item) => {\r\n item.node.checked = false;\r\n });\r\n\r\n this.list = JSON.parse(JSON.stringify([{}, {}, {}, {}]));\r\n var codeList = this.codeList.filter((item) => item.num === this.butType);\r\n for (var i = 0; i < this.videoType; i++) {\r\n codeList[i].node.checked = true;\r\n this.change(codeList[i].node, true);\r\n }\r\n },\r\n butClick(v) {\r\n this.butType = v;\r\n if (v === 2) {\r\n this.videoType = 1;\r\n }\r\n this.select = ''\r\n this.listClick(this.videoType);\r\n },\r\n alarmList() {\r\n msgAlarmList({\r\n pageNum: 1,\r\n pageSize: 1000,\r\n alarmMile: this.lcKm,\r\n beginMile: this.startKm,\r\n endMile: this.endKm,\r\n lineDir: this.lineDir,\r\n railwayCode: this.electricLineVoltage,\r\n beginAlarmTime:\r\n this.timeDate && this.timeDate.length\r\n ? this.timeDate[0] + \" 00:00:00\"\r\n : \"\",\r\n endAlarmTime:\r\n this.timeDate && this.timeDate.length\r\n ? this.timeDate[1] + \" 00:00:00\"\r\n : \"\",\r\n isRelease: this.states ? 2 : 1,\r\n }).then((res) => {\r\n this.errorMsgList = res.data.records;\r\n this.electricLineVoltage = ''\r\n this.lineDir = ''\r\n this.lcKm = ''\r\n this.startKm = ''\r\n this.endKm = ''\r\n this.timeDate = '';\r\n this.depopover = false;\r\n });\r\n },\r\n xqClick(item) {\r\n\r\n sessionStorage.row = JSON.stringify(item)\r\n this.$router.push({\r\n path: `/alarmDetail?id=${item.id}&alarmId=${item.alarmId}&cameraCode=${item.cameraCode}`,\r\n })\r\n },\r\n setDisabled(nodes, num) {\r\n nodes.forEach((node) => {\r\n node.checked = false;\r\n node.navItem = true;\r\n if (node.children && node.children.length > 0) {\r\n node.disabled = true;\r\n this.setDisabled(node.children, num);\r\n } else {\r\n node.disabled = false;\r\n this.codeList.push({\r\n node,\r\n code: node.code,\r\n num,\r\n });\r\n }\r\n });\r\n },\r\n statesClick(states) {\r\n this.states = states;\r\n this.alarmList();\r\n },\r\n checkFun({ data, node }) {\r\n return this.checkValueLen() >= this.videoType && !data.checked;\r\n },\r\n change(node, isB) {\r\n const { code } = node;\r\n if (isB) {\r\n node.render = true;\r\n var _index = null;\r\n this.list.map((item, index) => {\r\n if (!item.code && _index === null) {\r\n _index = index;\r\n }\r\n });\r\n this.list[_index].code = code;\r\n if (this.butType === 2) {\r\n baseVehicleVehicleCurrentStream(node.code).then((res) => {\r\n if (res.data && res.data.currentStream) {\r\n this.list[_index].src = res.data.currentStream || \"\";\r\n this.list[_index].line = res.data.railwayName;\r\n this.list[_index].lineDir = res.data.lineDir;\r\n this.list[_index].mileagePosition = res.data.installMile;\r\n }\r\n });\r\n } else {\r\n records(node.code, true).then((item) => {\r\n this.list[_index].src = item.data;\r\n });\r\n }\r\n var isFun = this.butType === 2 ? lineDateStock : lineDate;\r\n isFun(node.code).then((item) => {\r\n this.list[_index].value = item.data;\r\n if (item.data) {\r\n this.list[_index].line = item.data[0];\r\n this.list[_index].mileagePosition = item.data[1];\r\n this.list[_index].lineDir = item.data[2] == 1 ? \"上行\" : \"下行\";\r\n this.list[_index].code = item.data[3];\r\n this.list[_index].isLock = item.data[5];\r\n }\r\n this.list = JSON.parse(JSON.stringify(this.list));\r\n });\r\n } else {\r\n node.render = false;\r\n for (var i = 0; i < this.list.length; i++) {\r\n if (this.list[i].code === code) {\r\n this.list[i] = { code: \"\" };\r\n break;\r\n }\r\n }\r\n console.log(this.list, code, \"this.list\");\r\n this.list = JSON.parse(JSON.stringify(this.list));\r\n }\r\n },\r\n getMessageStatistics() {\r\n messageStatistics().then(res => {\r\n if (res.code == 200) {\r\n this.msgStatisticsData = res.data\r\n }\r\n })\r\n },\r\n getMonitorSystem() {\r\n monitorSystem().then(res => {\r\n if (res.code == 200) {\r\n if (res.data.length > 3) {\r\n res.data.length = 3\r\n }\r\n this.sysMsg = res.data\r\n }\r\n })\r\n },\r\n highlighPanel() {\r\n this.$refs.mapRef.contentWindow.postMessage({\r\n type: 3,\r\n data: this.searchInfo\r\n }, \"*\");\r\n }\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dashboard {\r\n width: 100%;\r\n height: 100%;\r\n\r\n .content {\r\n overflow: hidden;\r\n padding: 20px;\r\n height: 100%;\r\n width: 100%;\r\n display: flex;\r\n\r\n .left-map {\r\n position: relative;\r\n float: left;\r\n flex: 1;\r\n height: 985px;\r\n min-width: 600px;\r\n margin-right: 10px;\r\n padding: 60px 20px 12px 13px;\r\n background-color: #fff;\r\n //background: url('../../assets/地图图片.png'); \r\n }\r\n\r\n .right-msg {\r\n float: right;\r\n background-color: rgba(0, 0, 0, 0);\r\n height: 100%;\r\n width: 459px;\r\n min-width: 459px;\r\n\r\n .msgStatistics {\r\n position: relative;\r\n width: 100%;\r\n height: 157px;\r\n background-color: #fff;\r\n box-shadow: 0px 0px 4px 0px #E4E4E4;\r\n border-radius: 2px;\r\n\r\n .left {\r\n position: relative;\r\n background: url('../../assets/编组24.png') no-repeat 50% 50%;\r\n background-size: 100% 100%;\r\n width: 205px;\r\n height: 103px;\r\n float: left;\r\n margin-top: 47px;\r\n margin-left: 20px;\r\n }\r\n\r\n .right {\r\n position: relative;\r\n background: url('../../assets/编组25.png') no-repeat 50% 50%;\r\n background-size: 100% 100%;\r\n width: 205px;\r\n height: 103px;\r\n float: right;\r\n margin-top: 47px;\r\n margin-right: 20px;\r\n }\r\n }\r\n\r\n .systemMsg {\r\n position: relative;\r\n margin-top: 12px;\r\n width: 100%;\r\n height: 420px;\r\n background-color: #fff;\r\n box-shadow: 0px 0px 4px 0px #E4E4E4;\r\n border-radius: 2px;\r\n\r\n .tongji {\r\n width: 100%;\r\n height: 68px;\r\n padding: 0 6px;\r\n\r\n .total {\r\n position: relative;\r\n float: left;\r\n width: 33.3%;\r\n height: 100%;\r\n }\r\n\r\n .online {\r\n position: relative;\r\n float: left;\r\n width: 33.3%;\r\n height: 100%;\r\n }\r\n\r\n .offline {\r\n position: relative;\r\n float: left;\r\n width: 33.3%;\r\n height: 100%;\r\n }\r\n }\r\n\r\n .msgItem {\r\n position: relative;\r\n width: 424px;\r\n height: 71px;\r\n margin: 0 auto 8px;\r\n background-color: #F8F9FC;\r\n border-bottom: 1px solid #E9E6E6;\r\n\r\n .blueDrop {\r\n width: 6px;\r\n height: 6px;\r\n background-color: #214FC7;\r\n border-radius: 6px;\r\n position: absolute;\r\n left: 5px;\r\n top: 17px;\r\n }\r\n\r\n .sysName {\r\n padding-left: 14px;\r\n width: 100%;\r\n height: 22px;\r\n line-height: 22px;\r\n font-size: 14px;\r\n font-weight: 600;\r\n color: rgba(0, 0, 0, 0.88);\r\n ;\r\n }\r\n\r\n .sysState {\r\n position: relative;\r\n width: 100%;\r\n height: 22px;\r\n line-height: 22px;\r\n margin-top: 6px;\r\n }\r\n }\r\n\r\n .more {\r\n position: absolute;\r\n bottom: 8px;\r\n right: 22px;\r\n color: #2250C8;\r\n font-size: 12px;\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .alarmMsg {\r\n margin-top: 12px;\r\n width: 100%;\r\n height: 384px;\r\n position: relative;\r\n background: #fff;\r\n box-shadow: 0px 0px 4px 0px #E4E4E4;\r\n border-radius: 2px;\r\n\r\n .switchButton {\r\n width: 100%;\r\n height: 23px;\r\n padding-left: 20px;\r\n\r\n div {\r\n width: 69px;\r\n height: 23px;\r\n line-height: 23px;\r\n text-align: center;\r\n color: #696969;\r\n font-size: 14px;\r\n font-weight: 500;\r\n float: left;\r\n cursor: pointer;\r\n }\r\n\r\n .all {\r\n border: 1px solid #E3EBFF;\r\n border-right: 0.5px solid #E3EBFF;\r\n border-radius: 23px 0 0 23px;\r\n }\r\n\r\n .unreleased {\r\n border: 1px solid #E3EBFF;\r\n border-left: 0.5px solid #E3EBFF;\r\n border-right: 0.5px solid #E3EBFF;\r\n }\r\n\r\n .released {\r\n border: 1px solid #E3EBFF;\r\n border-left: 0.5px solid #E3EBFF;\r\n border-radius: 0 23px 23px 0;\r\n }\r\n }\r\n\r\n .alarmMsgItem {\r\n position: relative;\r\n width: 424px;\r\n height: 121px;\r\n margin: 8px auto 0;\r\n border-radius: 8px;\r\n box-shadow: 0px 3px 48px 0px rgba(0, 0, 0, 0.03), 0px 7px 28px 0px rgba(0, 0, 0, 0.05), 0px -1px 2px 0px rgba(0, 0, 0, 0.08);\r\n\r\n img {\r\n position: absolute;\r\n left: 16px;\r\n top: 7px;\r\n }\r\n\r\n .isLock {\r\n position: absolute;\r\n top: 7px;\r\n right: 20px;\r\n color: #D81E06;\r\n font-size: 14px;\r\n font-weight: 500;\r\n line-height: 20px;\r\n }\r\n\r\n .isLock1 {\r\n position: absolute;\r\n top: 7px;\r\n right: 20px;\r\n color: green;\r\n font-size: 14px;\r\n font-weight: 500;\r\n line-height: 20px;\r\n }\r\n\r\n .railwayName {\r\n width: 100%;\r\n height: 22px;\r\n line-height: 22px;\r\n padding-left: 57px;\r\n font-size: 14px;\r\n font-family: PingFangSC-Semibold, PingFang SC;\r\n font-weight: 600;\r\n color: rgba(0, 0, 0, 0.88);\r\n }\r\n\r\n .content {\r\n position: relative;\r\n width: 280px;\r\n height: 57px;\r\n margin-left: 55px;\r\n padding: 0;\r\n top: -15px;\r\n\r\n div {\r\n position: absolute;\r\n width: 100%;\r\n height: 19px;\r\n line-height: 19px;\r\n font-size: 14px;\r\n font-family: PingFangSC-Regular, PingFang SC;\r\n font-weight: 400;\r\n color: rgba(0, 0, 0, 0.88);\r\n }\r\n }\r\n\r\n .detailsBtn {\r\n position: absolute;\r\n right: 6px;\r\n bottom: 11px;\r\n width: 72px;\r\n height: 24px;\r\n line-height: 24px;\r\n border-radius: 12px;\r\n font-size: 12px;\r\n background-color: #EAF0FE;\r\n text-align: center;\r\n color: #2250C8;\r\n font-weight: 500;\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .more {\r\n position: absolute;\r\n bottom: 8px;\r\n right: 22px;\r\n color: #2250C8;\r\n font-size: 12px;\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\" scoped>\r\n::v-deep .el-dialog__body {\r\n padding: 20px 95px !important;\r\n}\r\n\r\n::v-deep .el-button--primary i {\r\n top: 0 !important;\r\n}\r\n\r\n.dialog-footer {\r\n div {\r\n display: inline-block;\r\n width: 80px;\r\n height: 40px;\r\n border-radius: 2px;\r\n font-size: 14px;\r\n line-height: 40px;\r\n text-align: center;\r\n }\r\n\r\n div:hover {\r\n cursor: pointer;\r\n }\r\n\r\n .search {\r\n margin: 0 12px;\r\n background-color: #2766dd;\r\n color: #fff;\r\n }\r\n\r\n .search:hover {\r\n background-color: #4d85f4;\r\n }\r\n\r\n .reset {\r\n color: #333334;\r\n border: 1px solid #d7d7d7;\r\n }\r\n\r\n .reset:hover {\r\n color: #1f9fff;\r\n border: 1px solid #1f9fff;\r\n }\r\n}\r\n\r\n.cameraBtn {\r\n cursor: pointer;\r\n top: 12px;\r\n right: 21px;\r\n position: absolute;\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n}\r\n\r\n.video {\r\n display: grid;\r\n gap: 12px;\r\n grid-template-columns: repeat(auto-fill, calc(50% - 6px));\r\n min-height: 300px;\r\n max-height: 85vh;\r\n overflow: auto;\r\n\r\n >div {\r\n width: 100%;\r\n padding-bottom: 56.5%;\r\n position: relative;\r\n // overflow: hidden;\r\n\r\n >div {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n }\r\n\r\n // height: 60vh;\r\n}\r\n\r\n::v-deep .el-dialog {\r\n margin-top: 8vh !important;\r\n\r\n .el-dialog__body {\r\n padding: 6px !important;\r\n }\r\n}\r\n\r\n// 选中后radio文本的颜色\r\n::v-deep .el-radio__input.is-checked+.el-radio__label {\r\n color: #2766dd;\r\n}\r\n\r\n/* radio选中后小圆点的颜色 */\r\n::v-deep .el-radio__input.is-checked .el-radio__inner {\r\n background: #2766dd !important;\r\n border-color: #2766dd !important;\r\n}\r\n</style>"],"mappings":"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"}]}