Commit 2da12654 authored by jianqian's avatar jianqian

一、企业分布

1.左侧隐藏
2.预警信息 滚动
二。企业统计
1.展示单个企业的安全生产信息
2.图表,折线图(事故数量,设备预警,近一年)

三、视频可视化
对接海康视频平台

去掉预案信息管理
一企一档
危险源、隐患、职业危害场所、监控监测点位
parent 8a3f2a3e
...@@ -1483,6 +1483,137 @@ ...@@ -1483,6 +1483,137 @@
"integrity": "sha512-eWN5ElDTeBc5lRDh95SqA8x18D0ll2pWudU3uWiyfsRmIZcmUXpEsxPU+7+BsdCrO2vfLRC629u/MmjbmF+2tA==", "integrity": "sha512-eWN5ElDTeBc5lRDh95SqA8x18D0ll2pWudU3uWiyfsRmIZcmUXpEsxPU+7+BsdCrO2vfLRC629u/MmjbmF+2tA==",
"dev": true "dev": true
}, },
"@videojs/http-streaming": {
"version": "2.10.2",
"resolved": "https://registry.npmmirror.com/@videojs/http-streaming/download/@videojs/http-streaming-2.10.2.tgz",
"integrity": "sha1-Aub8+nT3hQtfnrQKjlyFydfTPq8=",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "3.0.3",
"aes-decrypter": "3.1.2",
"global": "^4.4.0",
"m3u8-parser": "4.7.0",
"mpd-parser": "0.19.0",
"mux.js": "5.13.0",
"video.js": "^6 || ^7"
},
"dependencies": {
"@babel/runtime": {
"version": "7.16.0",
"resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.0.tgz",
"integrity": "sha1-4nuXfy4giLokdIv5m14d7OZOTws=",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"@videojs/vhs-utils": {
"version": "3.0.3",
"resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/download/@videojs/vhs-utils-3.0.3.tgz?cache=0&sync_timestamp=1632333114070&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40videojs%2Fvhs-utils%2Fdownload%2F%40videojs%2Fvhs-utils-3.0.3.tgz",
"integrity": "sha1-cIvFB0LpSBcSA5aVKZsy2mWC75I=",
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
}
},
"aes-decrypter": {
"version": "3.1.2",
"resolved": "https://registry.npm.taobao.org/aes-decrypter/download/aes-decrypter-3.1.2.tgz",
"integrity": "sha1-NUVUb46fa4eGQDOaJC7+Ihunp8s=",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.0",
"global": "^4.4.0",
"pkcs7": "^1.0.4"
}
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.nlark.com/global/download/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
},
"m3u8-parser": {
"version": "4.7.0",
"resolved": "https://registry.nlark.com/m3u8-parser/download/m3u8-parser-4.7.0.tgz",
"integrity": "sha1-4B6M4TYJit4bFO5pHqIPxNxgq/Y=",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.0",
"global": "^4.4.0"
}
},
"mux.js": {
"version": "5.13.0",
"resolved": "https://registry.npmmirror.com/mux.js/download/mux.js-5.13.0.tgz",
"integrity": "sha1-mcPaIfbANioVKXKdHF5bUfNPYG0=",
"requires": {
"@babel/runtime": "^7.11.2"
}
},
"pkcs7": {
"version": "1.0.4",
"resolved": "https://registry.nlark.com/pkcs7/download/pkcs7-1.0.4.tgz",
"integrity": "sha1-YJC55xFg2r9pIJ1xnLr6U4sAocs=",
"requires": {
"@babel/runtime": "^7.5.5"
}
}
}
},
"@videojs/vhs-utils": {
"version": "3.0.4",
"resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/download/@videojs/vhs-utils-3.0.4.tgz?cache=0&sync_timestamp=1632333114070&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40videojs%2Fvhs-utils%2Fdownload%2F%40videojs%2Fvhs-utils-3.0.4.tgz",
"integrity": "sha1-4lPuzY6TGPdn51IBDSE1h/lLsDo=",
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
},
"dependencies": {
"@babel/runtime": {
"version": "7.16.0",
"resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.0.tgz",
"integrity": "sha1-4nuXfy4giLokdIv5m14d7OZOTws=",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.nlark.com/global/download/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
}
}
},
"@videojs/xhr": {
"version": "2.6.0",
"resolved": "https://registry.nlark.com/@videojs/xhr/download/@videojs/xhr-2.6.0.tgz",
"integrity": "sha1-zYl+CtVPr0l5YbzOP6FtwVomu4A=",
"requires": {
"@babel/runtime": "^7.5.5",
"global": "~4.4.0",
"is-function": "^1.0.1"
},
"dependencies": {
"global": {
"version": "4.4.0",
"resolved": "https://registry.nlark.com/global/download/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
}
}
},
"@vue/babel-helper-vue-jsx-merge-props": { "@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz",
...@@ -2233,6 +2364,11 @@ ...@@ -2233,6 +2364,11 @@
"@xtuc/long": "4.2.2" "@xtuc/long": "4.2.2"
} }
}, },
"@xmldom/xmldom": {
"version": "0.7.5",
"resolved": "https://registry.nlark.com/@xmldom/xmldom/download/@xmldom/xmldom-0.7.5.tgz",
"integrity": "sha1-CfpR41bQfQviAGQrDk+R2ObdQI0="
},
"@xtuc/ieee754": { "@xtuc/ieee754": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
...@@ -2297,6 +2433,14 @@ ...@@ -2297,6 +2433,14 @@
"integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
"dev": true "dev": true
}, },
"aes-decrypter": {
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/aes-decrypter/download/aes-decrypter-1.0.3.tgz",
"integrity": "sha1-nAa4pUNaWtCduTP4oBSvzxhMw04=",
"requires": {
"pkcs7": "^0.2.3"
}
},
"aggregate-error": { "aggregate-error": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
...@@ -4998,6 +5142,11 @@ ...@@ -4998,6 +5142,11 @@
} }
} }
}, },
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.2.tgz",
"integrity": "sha1-DFSL7wSPTR8qlySQAiNgYNqj/YQ="
},
"domain-browser": { "domain-browser": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
...@@ -5083,6 +5232,11 @@ ...@@ -5083,6 +5232,11 @@
"stream-shift": "^1.0.0" "stream-shift": "^1.0.0"
} }
}, },
"easy-player": {
"version": "2.2.7",
"resolved": "https://registry.nlark.com/easy-player/download/easy-player-2.2.7.tgz",
"integrity": "sha1-lx29/rbzS3pDLjxHZxpYeb0fZrw="
},
"easy-stack": { "easy-stack": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz", "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz",
...@@ -5278,6 +5432,11 @@ ...@@ -5278,6 +5432,11 @@
"is-symbol": "^1.0.2" "is-symbol": "^1.0.2"
} }
}, },
"es5-shim": {
"version": "4.6.2",
"resolved": "https://registry.nlark.com/es5-shim/download/es5-shim-4.6.2.tgz?cache=0&sync_timestamp=1630475752572&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fes5-shim%2Fdownload%2Fes5-shim-4.6.2.tgz",
"integrity": "sha1-gnzdDG+1vrJv02jWVDDoterrqUI="
},
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
...@@ -6585,6 +6744,22 @@ ...@@ -6585,6 +6744,22 @@
"integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
"dev": true "dev": true
}, },
"global": {
"version": "4.3.2",
"resolved": "https://registry.nlark.com/global/download/global-4.3.2.tgz",
"integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
"requires": {
"min-document": "^2.19.0",
"process": "~0.5.1"
},
"dependencies": {
"process": {
"version": "0.5.2",
"resolved": "https://registry.nlark.com/process/download/process-0.5.2.tgz",
"integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
}
}
},
"globals": { "globals": {
"version": "11.12.0", "version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
...@@ -7175,6 +7350,11 @@ ...@@ -7175,6 +7350,11 @@
"integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
"dev": true "dev": true
}, },
"individual": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/individual/download/individual-2.0.0.tgz",
"integrity": "sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c="
},
"infer-owner": { "infer-owner": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
...@@ -7394,6 +7574,11 @@ ...@@ -7394,6 +7574,11 @@
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true "dev": true
}, },
"is-function": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/is-function/download/is-function-1.0.2.tgz",
"integrity": "sha1-Twl/MKv2762smDOxfKXcA/gUTgg="
},
"is-glob": { "is-glob": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
...@@ -7746,6 +7931,11 @@ ...@@ -7746,6 +7931,11 @@
"verror": "1.10.0" "verror": "1.10.0"
} }
}, },
"keycode": {
"version": "2.2.0",
"resolved": "https://registry.nlark.com/keycode/download/keycode-2.2.0.tgz",
"integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
},
"killable": { "killable": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
...@@ -7981,6 +8171,11 @@ ...@@ -7981,6 +8171,11 @@
"yallist": "^3.0.2" "yallist": "^3.0.2"
} }
}, },
"m3u8-parser": {
"version": "2.1.0",
"resolved": "https://registry.nlark.com/m3u8-parser/download/m3u8-parser-2.1.0.tgz",
"integrity": "sha1-yBcDKewc1RXQ1Yu4t2LamJbLA2g="
},
"magic-string": { "magic-string": {
"version": "0.22.5", "version": "0.22.5",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
...@@ -8158,6 +8353,14 @@ ...@@ -8158,6 +8353,14 @@
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true "dev": true
}, },
"min-document": {
"version": "2.19.0",
"resolved": "https://registry.nlark.com/min-document/download/min-document-2.19.0.tgz",
"integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
"requires": {
"dom-walk": "^0.1.0"
}
},
"mini-css-extract-plugin": { "mini-css-extract-plugin": {
"version": "0.9.0", "version": "0.9.0",
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
...@@ -8298,6 +8501,36 @@ ...@@ -8298,6 +8501,36 @@
"run-queue": "^1.0.3" "run-queue": "^1.0.3"
} }
}, },
"mpd-parser": {
"version": "0.19.0",
"resolved": "https://registry.npmmirror.com/mpd-parser/download/mpd-parser-0.19.0.tgz?cache=0&sync_timestamp=1633551530091&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmpd-parser%2Fdownload%2Fmpd-parser-0.19.0.tgz",
"integrity": "sha1-iTcEQEDKheIDmOz12UVSZV4sZyg=",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.2",
"@xmldom/xmldom": "^0.7.2",
"global": "^4.4.0"
},
"dependencies": {
"@babel/runtime": {
"version": "7.16.0",
"resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.0.tgz",
"integrity": "sha1-4nuXfy4giLokdIv5m14d7OZOTws=",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.nlark.com/global/download/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
}
}
},
"ms": { "ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
...@@ -8319,6 +8552,11 @@ ...@@ -8319,6 +8552,11 @@
"integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true "dev": true
}, },
"mux.js": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/mux.js/download/mux.js-4.3.2.tgz",
"integrity": "sha1-V21TffA33F7DXsExa5SNgV01whA="
},
"mz": { "mz": {
"version": "2.7.0", "version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
...@@ -8986,6 +9224,11 @@ ...@@ -8986,6 +9224,11 @@
"safe-buffer": "^5.1.1" "safe-buffer": "^5.1.1"
} }
}, },
"parse-headers": {
"version": "2.0.4",
"resolved": "https://registry.nlark.com/parse-headers/download/parse-headers-2.0.4.tgz?cache=0&sync_timestamp=1628092214952&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fparse-headers%2Fdownload%2Fparse-headers-2.0.4.tgz",
"integrity": "sha1-nq8tAr7S0e/0lDMc498215JHYL8="
},
"parse-json": { "parse-json": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
...@@ -9148,6 +9391,11 @@ ...@@ -9148,6 +9391,11 @@
"pinkie": "^2.0.0" "pinkie": "^2.0.0"
} }
}, },
"pkcs7": {
"version": "0.2.3",
"resolved": "https://registry.nlark.com/pkcs7/download/pkcs7-0.2.3.tgz",
"integrity": "sha1-ItYGZtAQZcXyRDkJjkpIMEUic74="
},
"pkg-dir": { "pkg-dir": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
...@@ -9900,8 +10148,7 @@ ...@@ -9900,8 +10148,7 @@
"process": { "process": {
"version": "0.11.10", "version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
"dev": true
}, },
"process-nextick-args": { "process-nextick-args": {
"version": "2.0.1", "version": "2.0.1",
...@@ -10530,6 +10777,14 @@ ...@@ -10530,6 +10777,14 @@
"aproba": "^1.1.1" "aproba": "^1.1.1"
} }
}, },
"rust-result": {
"version": "1.0.0",
"resolved": "https://registry.nlark.com/rust-result/download/rust-result-1.0.0.tgz",
"integrity": "sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=",
"requires": {
"individual": "^2.0.0"
}
},
"rw": { "rw": {
"version": "1.3.3", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
...@@ -10540,6 +10795,14 @@ ...@@ -10540,6 +10795,14 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}, },
"safe-json-parse": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/safe-json-parse/download/safe-json-parse-4.0.0.tgz",
"integrity": "sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=",
"requires": {
"rust-result": "^1.0.0"
}
},
"safe-regex": { "safe-regex": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
...@@ -11899,6 +12162,11 @@ ...@@ -11899,6 +12162,11 @@
"tsutils": "^2.29.0" "tsutils": "^2.29.0"
} }
}, },
"tsml": {
"version": "1.0.1",
"resolved": "https://registry.nlark.com/tsml/download/tsml-1.0.1.tgz",
"integrity": "sha1-ifghi52eJX9H1/a1bQHFpNLGj8M="
},
"tsutils": { "tsutils": {
"version": "2.29.0", "version": "2.29.0",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
...@@ -12239,6 +12507,11 @@ ...@@ -12239,6 +12507,11 @@
"requires-port": "^1.0.0" "requires-port": "^1.0.0"
} }
}, },
"url-toolkit": {
"version": "2.2.3",
"resolved": "https://registry.nlark.com/url-toolkit/download/url-toolkit-2.2.3.tgz?cache=0&sync_timestamp=1625914308870&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl-toolkit%2Fdownload%2Furl-toolkit-2.2.3.tgz",
"integrity": "sha1-ePqQEhWrusNBggZpMiICebgEUis="
},
"use": { "use": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
...@@ -12336,6 +12609,220 @@ ...@@ -12336,6 +12609,220 @@
"extsprintf": "^1.2.0" "extsprintf": "^1.2.0"
} }
}, },
"video.js": {
"version": "7.15.4",
"resolved": "https://registry.npmmirror.com/video.js/download/video.js-7.15.4.tgz",
"integrity": "sha1-D5bvE4A1E4yzC/AKmJthdPDRa6w=",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "2.10.2",
"@videojs/vhs-utils": "^3.0.3",
"@videojs/xhr": "2.6.0",
"aes-decrypter": "3.1.2",
"global": "^4.4.0",
"keycode": "^2.2.0",
"m3u8-parser": "4.7.0",
"mpd-parser": "0.19.0",
"mux.js": "5.13.0",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.3"
},
"dependencies": {
"@babel/runtime": {
"version": "7.16.0",
"resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.0.tgz",
"integrity": "sha1-4nuXfy4giLokdIv5m14d7OZOTws=",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"aes-decrypter": {
"version": "3.1.2",
"resolved": "https://registry.npm.taobao.org/aes-decrypter/download/aes-decrypter-3.1.2.tgz",
"integrity": "sha1-NUVUb46fa4eGQDOaJC7+Ihunp8s=",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.0",
"global": "^4.4.0",
"pkcs7": "^1.0.4"
}
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.nlark.com/global/download/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
},
"m3u8-parser": {
"version": "4.7.0",
"resolved": "https://registry.nlark.com/m3u8-parser/download/m3u8-parser-4.7.0.tgz",
"integrity": "sha1-4B6M4TYJit4bFO5pHqIPxNxgq/Y=",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.0",
"global": "^4.4.0"
}
},
"mux.js": {
"version": "5.13.0",
"resolved": "https://registry.npmmirror.com/mux.js/download/mux.js-5.13.0.tgz",
"integrity": "sha1-mcPaIfbANioVKXKdHF5bUfNPYG0=",
"requires": {
"@babel/runtime": "^7.11.2"
}
},
"pkcs7": {
"version": "1.0.4",
"resolved": "https://registry.nlark.com/pkcs7/download/pkcs7-1.0.4.tgz",
"integrity": "sha1-YJC55xFg2r9pIJ1xnLr6U4sAocs=",
"requires": {
"@babel/runtime": "^7.5.5"
}
}
}
},
"videojs-contrib-hls": {
"version": "5.15.0",
"resolved": "https://registry.npm.taobao.org/videojs-contrib-hls/download/videojs-contrib-hls-5.15.0.tgz",
"integrity": "sha1-/klXNn5daLfSP3jtMuN6ndiSoKg=",
"requires": {
"aes-decrypter": "1.0.3",
"global": "^4.3.0",
"m3u8-parser": "2.1.0",
"mux.js": "4.3.2",
"url-toolkit": "^2.1.3",
"video.js": "^5.19.1 || ^6.2.0",
"videojs-contrib-media-sources": "4.7.2",
"webwackify": "0.1.6"
},
"dependencies": {
"video.js": {
"version": "6.13.0",
"resolved": "https://registry.npmmirror.com/video.js/download/video.js-6.13.0.tgz",
"integrity": "sha1-+Uh9RjJzQPpI7NUTcqKYHbts3kw=",
"requires": {
"babel-runtime": "^6.9.2",
"global": "4.3.2",
"safe-json-parse": "4.0.0",
"tsml": "1.0.1",
"videojs-font": "2.1.0",
"videojs-ie8": "1.1.2",
"videojs-vtt.js": "0.12.6",
"xhr": "2.4.0"
}
},
"videojs-font": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/videojs-font/download/videojs-font-2.1.0.tgz",
"integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k="
},
"videojs-vtt.js": {
"version": "0.12.6",
"resolved": "https://registry.npm.taobao.org/videojs-vtt.js/download/videojs-vtt.js-0.12.6.tgz",
"integrity": "sha1-4HhgC9qJnqpvnDMHE0zQyBGUe44=",
"requires": {
"global": "^4.3.1"
}
}
}
},
"videojs-contrib-media-sources": {
"version": "4.7.2",
"resolved": "https://registry.npm.taobao.org/videojs-contrib-media-sources/download/videojs-contrib-media-sources-4.7.2.tgz",
"integrity": "sha1-Ct+SkQfVt0zyyKuygkyCF35DhY4=",
"requires": {
"global": "^4.3.0",
"mux.js": "4.3.2",
"video.js": "^5.17.0 || ^6.2.0",
"webwackify": "0.1.6"
},
"dependencies": {
"video.js": {
"version": "6.13.0",
"resolved": "https://registry.npmmirror.com/video.js/download/video.js-6.13.0.tgz",
"integrity": "sha1-+Uh9RjJzQPpI7NUTcqKYHbts3kw=",
"requires": {
"babel-runtime": "^6.9.2",
"global": "4.3.2",
"safe-json-parse": "4.0.0",
"tsml": "1.0.1",
"videojs-font": "2.1.0",
"videojs-ie8": "1.1.2",
"videojs-vtt.js": "0.12.6",
"xhr": "2.4.0"
}
},
"videojs-font": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/videojs-font/download/videojs-font-2.1.0.tgz",
"integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k="
},
"videojs-vtt.js": {
"version": "0.12.6",
"resolved": "https://registry.npm.taobao.org/videojs-vtt.js/download/videojs-vtt.js-0.12.6.tgz",
"integrity": "sha1-4HhgC9qJnqpvnDMHE0zQyBGUe44=",
"requires": {
"global": "^4.3.1"
}
}
}
},
"videojs-flash": {
"version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/videojs-flash/download/videojs-flash-2.2.1.tgz",
"integrity": "sha1-GiJduxztIArpu/FeAf5KYQhtkPE=",
"requires": {
"global": "^4.4.0",
"video.js": "^6 || ^7",
"videojs-swf": "5.4.2"
},
"dependencies": {
"global": {
"version": "4.4.0",
"resolved": "https://registry.nlark.com/global/download/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
}
}
},
"videojs-font": {
"version": "3.2.0",
"resolved": "https://registry.npm.taobao.org/videojs-font/download/videojs-font-3.2.0.tgz",
"integrity": "sha1-ISydP05Ow/pzRRZ9ZDFq3TXpIjI="
},
"videojs-hotkeys": {
"version": "0.2.27",
"resolved": "https://registry.npm.taobao.org/videojs-hotkeys/download/videojs-hotkeys-0.2.27.tgz",
"integrity": "sha1-Dfl5Urnf8ObMHPikOf7X6snHPwE="
},
"videojs-ie8": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/videojs-ie8/download/videojs-ie8-1.1.2.tgz",
"integrity": "sha1-oj09hgitcZK2nGB3/E64SJmNNdk=",
"requires": {
"es5-shim": "^4.5.1"
}
},
"videojs-swf": {
"version": "5.4.2",
"resolved": "https://registry.npm.taobao.org/videojs-swf/download/videojs-swf-5.4.2.tgz",
"integrity": "sha1-aWSpv/kDtzLz5GUxSuR4oCoX6Ks="
},
"videojs-vtt.js": {
"version": "0.15.3",
"resolved": "https://registry.npm.taobao.org/videojs-vtt.js/download/videojs-vtt.js-0.15.3.tgz",
"integrity": "sha1-hCYDk7eUh/zxldk3L4Etf6uDqZM=",
"requires": {
"global": "^4.3.1"
}
},
"vlq": { "vlq": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
...@@ -12472,6 +12959,48 @@ ...@@ -12472,6 +12959,48 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true "dev": true
}, },
"vue-video-player": {
"version": "5.0.2",
"resolved": "https://registry.nlark.com/vue-video-player/download/vue-video-player-5.0.2.tgz",
"integrity": "sha1-NKQiOf8wTvx2mNogpBZQUddmweY=",
"requires": {
"object-assign": "^4.1.1",
"video.js": "^6.6.0",
"videojs-contrib-hls": "^5.12.2",
"videojs-flash": "^2.1.0",
"videojs-hotkeys": "^0.2.20"
},
"dependencies": {
"video.js": {
"version": "6.13.0",
"resolved": "https://registry.npmmirror.com/video.js/download/video.js-6.13.0.tgz",
"integrity": "sha1-+Uh9RjJzQPpI7NUTcqKYHbts3kw=",
"requires": {
"babel-runtime": "^6.9.2",
"global": "4.3.2",
"safe-json-parse": "4.0.0",
"tsml": "1.0.1",
"videojs-font": "2.1.0",
"videojs-ie8": "1.1.2",
"videojs-vtt.js": "0.12.6",
"xhr": "2.4.0"
}
},
"videojs-font": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/videojs-font/download/videojs-font-2.1.0.tgz",
"integrity": "sha1-olkwpn9snPvyu4jay4xrRR8JM3k="
},
"videojs-vtt.js": {
"version": "0.12.6",
"resolved": "https://registry.npm.taobao.org/videojs-vtt.js/download/videojs-vtt.js-0.12.6.tgz",
"integrity": "sha1-4HhgC9qJnqpvnDMHE0zQyBGUe44=",
"requires": {
"global": "^4.3.1"
}
}
}
},
"vuex": { "vuex": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-3.1.3.tgz", "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.1.3.tgz",
...@@ -13108,6 +13637,11 @@ ...@@ -13108,6 +13637,11 @@
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
"dev": true "dev": true
}, },
"webwackify": {
"version": "0.1.6",
"resolved": "https://registry.npm.taobao.org/webwackify/download/webwackify-0.1.6.tgz",
"integrity": "sha1-HUKhKsYYI9fjRaveCE6qpipKles="
},
"whatwg-encoding": { "whatwg-encoding": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
...@@ -13242,6 +13776,17 @@ ...@@ -13242,6 +13776,17 @@
"async-limiter": "~1.0.0" "async-limiter": "~1.0.0"
} }
}, },
"xhr": {
"version": "2.4.0",
"resolved": "https://registry.npm.taobao.org/xhr/download/xhr-2.4.0.tgz",
"integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=",
"requires": {
"global": "~4.3.0",
"is-function": "^1.0.1",
"parse-headers": "^2.0.0",
"xtend": "^4.0.0"
}
},
"xml-name-validator": { "xml-name-validator": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
...@@ -13257,8 +13802,7 @@ ...@@ -13257,8 +13802,7 @@
"xtend": { "xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
"dev": true
}, },
"y18n": { "y18n": {
"version": "4.0.0", "version": "4.0.0",
......
...@@ -11,9 +11,11 @@ ...@@ -11,9 +11,11 @@
"@types/axios": "^0.14.0", "@types/axios": "^0.14.0",
"axios": "^0.19.2", "axios": "^0.19.2",
"core-js": "^3.6.4", "core-js": "^3.6.4",
"easy-player": "^2.2.7",
"echarts": "^5.1.1", "echarts": "^5.1.1",
"element-ui": "^2.13.0", "element-ui": "^2.13.0",
"ol": "^6.4.3", "ol": "^6.4.3",
"video.js": "^7.15.4",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-amap": "^0.5.10", "vue-amap": "^0.5.10",
"vue-class-component": "^7.2.2", "vue-class-component": "^7.2.2",
...@@ -22,6 +24,7 @@ ...@@ -22,6 +24,7 @@
"vue-ellipse-progress": "^1.3.0", "vue-ellipse-progress": "^1.3.0",
"vue-property-decorator": "^8.3.0", "vue-property-decorator": "^8.3.0",
"vue-router": "^3.1.5", "vue-router": "^3.1.5",
"vue-video-player": "^5.0.2",
"vuex": "^3.1.2", "vuex": "^3.1.2",
"vuex-class": "^0.3.2" "vuex-class": "^0.3.2"
}, },
......
...@@ -80,28 +80,20 @@ ...@@ -80,28 +80,20 @@
<el-checkbox @change="handleCheckAllChange" :indeterminate="isIndeterminate" v-model="checkAll">全选</el-checkbox> <el-checkbox @change="handleCheckAllChange" :indeterminate="isIndeterminate" v-model="checkAll">全选</el-checkbox>
<el-checkbox-group v-model="checkList" @change="CheckChange"> <el-checkbox-group v-model="checkList" @change="CheckChange">
<el-checkbox label="1"> <el-checkbox label="1">
企业辅料 监控检测点位
<img src="@/assets/mark/mark05.png" width="25" /> <img src="@/assets/mark/jiankong.png" width="25" />
</el-checkbox> </el-checkbox>
<el-checkbox label="2"> <el-checkbox label="2">
生产设备 隐患
<img src="@/assets/mark/mark03.png" width="25" /> <img src="@/assets/mark/yinhuan.png" width="25" />
</el-checkbox> </el-checkbox>
<el-checkbox label="3"> <el-checkbox label="3">
企业产品 危险源
<img src="@/assets/mark/mark01.png" width="25" /> <img src="@/assets/mark/weixianyuan.png" width="25" />
</el-checkbox> </el-checkbox>
<el-checkbox label="4"> <el-checkbox label="4">
应急物资 职业危害场所
<img src="@/assets/mark/mark02.png" width="25" /> <img src="@/assets/mark/weihaichangsuo.png" width="25" />
</el-checkbox>
<el-checkbox label="5">
监控设备
<img src="@/assets/mark/markjk.png" width="25" />
</el-checkbox>
<el-checkbox label="6">
传感设备
<img src="@/assets/mark/markcgq.png" width="25" />
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-row> </el-row>
...@@ -149,8 +141,8 @@ export default class EnseListDetail extends Vue { ...@@ -149,8 +141,8 @@ export default class EnseListDetail extends Vue {
@Provide() enterpriseId: string = ""; @Provide() enterpriseId: string = "";
@Provide() cityval: any = []; @Provide() cityval: any = [];
@Provide() editForm: any = {}; @Provide() editForm: any = {};
@Provide() checkList: any = ["1", "2", "3", "4", "5", "6"]; @Provide() checkList: any = ["1", "2", "3", "4"];
@Provide() checkListOpt: any = ["1", "2", "3", "4", "5", "6"]; @Provide() checkListOpt: any = ["1", "2", "3", "4"];
@Provide() isIndeterminate: boolean = false; @Provide() isIndeterminate: boolean = false;
@Provide() checkAll: boolean = true; @Provide() checkAll: boolean = true;
/* 地图 */ /* 地图 */
...@@ -178,97 +170,152 @@ export default class EnseListDetail extends Vue { ...@@ -178,97 +170,152 @@ export default class EnseListDetail extends Vue {
@Provide() mouseTool: any; //测量工具 @Provide() mouseTool: any; //测量工具
@Provide() toolVisble: boolean = false; @Provide() toolVisble: boolean = false;
/*获取物品*/ /*获取物品*/
getMapDataA() { // getMapDataA() {
// let that = this;
// return new Promise((resolve, reject) => {
// METHOD.axiosPost(
// that,
// `/enterpriseGoods/selectEnterpriseGoodsList/${that.enterpriseId}`, {
// page: 1,
// size: 10000,
// },
// (res: any) => {
// if (res.code == 0) {
// resolve(res.data.pageData);
// }
// }
// );
// });
// }
getDetailList() {
let that = this; let that = this;
return new Promise((resolve, reject) => { METHOD.axiosGet(
METHOD.axiosPost( that,
that, `/dataStatistics/enterpriseDatainfo/${that.enterpriseId}`,
`/enterpriseGoods/selectEnterpriseGoodsList/${that.enterpriseId}`, { function (res: any) {
page: 1, if (res.code == 0) {
size: 10000, that.addMarksToMapTwo(res.data)
},
(res: any) => {
if (res.code == 0) {
resolve(res.data.pageData);
}
} }
); }
}); );
} }
/*获取安全设备*/ /*获取安全设备*/
getMapDataB() { // getMapDataB() {
// let that = this;
// return new Promise((resolve, reject) => {
// METHOD.axiosPost(
// that,
// `/safetyDeviceInfo/selectSafetyDeviceInfoList/${that.enterpriseId}`, {
// page: 1,
// size: 10000,
// },
// (res: any) => {
// if (res.code == 0) {
// let mapData = res.data.pageData;
// resolve(res.data.pageData);
// }
// }
// );
// });
// }
addMarksToMapTwo(alldata) {
let that = this; let that = this;
return new Promise((resolve, reject) => { let res1: any = alldata.cameraList;
METHOD.axiosPost( let res2: any = alldata.troubleList;
that, let res3: any = alldata.goodsList;
`/safetyDeviceInfo/selectSafetyDeviceInfoList/${that.enterpriseId}`, { let res4: any = alldata.harmPlace;
page: 1, that.mapData = [...res1, ...res2, ...res3, ...res4];
size: 10000, let mapData = [...res1, ...res2, ...res3, ...res4];
}, let latSum = 0;
(res: any) => { let lngSum = 0;
if (res.code == 0) { if (res1.length > 0) {
let mapData = res.data.pageData; res1.forEach((ele: any, index: any) => {
resolve(res.data.pageData); that.addMark(ele, index,"1");
} lngSum += ele.longitude;
} latSum += ele.latitude;
); });
}
if (res2.length > 0) {
res2.forEach((ele: any, index: any) => {
that.addMark(ele, index,"2");
lngSum += ele.longitude;
latSum += ele.latitude;
});
}
if (res3.length > 0) {
res3.forEach((ele: any, index: any) => {
that.addMark(ele, index,"3");
lngSum += ele.longitude;
latSum += ele.latitude;
});
}
if (res4.length > 0) {
res4.forEach((ele: any, index: any) => {
that.addMark(ele, index,"4");
lngSum += ele.longitude;
latSum += ele.latitude;
});
}
let mapcenter = [lngSum / mapData.length, latSum / mapData.length];
that.Mutil.setViewF({
center: mapcenter,
zoom:12
}); });
} }
addMarksToMap() { // addMarksToMap() {
let that = this; // let that = this;
Promise.all([that.getMapDataA(), that.getMapDataB()]).then( // Promise.all([that.getMapDataA(), that.getMapDataB()]).then(
(iter) => { // (iter) => {
let res1: any = iter[0]; // let res1: any = iter[0];
let res2: any = iter[1]; // let res2: any = iter[1];
let mapData = [...res1, ...res2] // let mapData = [...res1, ...res2]
that.mapData = [...res1, ...res2]; // that.mapData = [...res1, ...res2];
if (mapData.length > 0) { // if (mapData.length > 0) {
let latSum = 0; // let latSum = 0;
let lngSum = 0; // let lngSum = 0;
mapData.forEach((ele: any, index: any) => { // mapData.forEach((ele: any, index: any) => {
that.addMark(ele, index); // that.addMark(ele, index);
lngSum += ele.longitude; // lngSum += ele.longitude;
latSum += ele.latitude; // latSum += ele.latitude;
}); // });
let mapcenter = [lngSum / mapData.length, latSum / mapData.length]; // let mapcenter = [lngSum / mapData.length, latSum / mapData.length];
that.Mutil.setViewF({ // that.Mutil.setViewF({
center: mapcenter, // center: mapcenter,
}); // });
} else { // } else {
that.$message.warning("没有设备及物品信息!"); // that.$message.warning("没有设备及物品信息!");
} // }
} // }
); // );
} // }
addMark(obj: any, index: any) { addMark(obj: any, index: any,type: any) {
let icon, let icon,titleName,
that = this; that = this;
switch (obj.dataType) { switch (type) {
case "3": case "1":
icon = require("@/assets/mark/mark01.png"); icon = require("@/assets/mark/jiankong.png");
break; titleName = obj.deviceName;
case "4":
icon = require("@/assets/mark/mark02.png");
break; break;
case "2": case "2":
icon = require("@/assets/mark/mark03.png"); icon = require("@/assets/mark/yinhuan.png");
break; titleName = obj.troubleName;
case "1":
icon = require("@/assets/mark/mark05.png");
break; break;
case "5": case "3":
icon = require("@/assets/mark/markjk.png"); icon = require("@/assets/mark/weixianyuan.png");
titleName = obj.goodsName;
break; break;
case "6": case "4":
icon = require("@/assets/mark/markcgq.png"); icon = require("@/assets/mark/weihaichangsuo.png");
titleName = obj.placeName;
break; break;
} }
that.Mutil.addMarkerToMap( this.Mutil.addMarkerToMap(
obj.dataType, type,
obj.goodsName, titleName,
icon, icon,
[obj.longitude, obj.latitude], [obj.longitude, obj.latitude],
0.5, 0.9,
obj.id obj.id
); );
} }
...@@ -288,7 +335,7 @@ export default class EnseListDetail extends Vue { ...@@ -288,7 +335,7 @@ export default class EnseListDetail extends Vue {
]; ];
} }
that.$nextTick(() => { that.$nextTick(() => {
console.log(that.editForm.boundary) //console.log(that.editForm.boundary)
if (that.editForm.boundary) { if (that.editForm.boundary) {
that.Mutil.drawPloygon(JSON.parse(that.editForm.boundary)); that.Mutil.drawPloygon(JSON.parse(that.editForm.boundary));
} }
...@@ -352,7 +399,31 @@ export default class EnseListDetail extends Vue { ...@@ -352,7 +399,31 @@ export default class EnseListDetail extends Vue {
`<p><span>联系人:</span>${obj.contacts}</p>` + `<p><span>联系人:</span>${obj.contacts}</p>` +
`<p><span>危险等级:</span>${obj.dangerGrade}</p>` + `<p><span>危险等级:</span>${obj.dangerGrade}</p>` +
`<p><span>所在位置:</span>${obj.factoryLocation}</p></div>`; `<p><span>所在位置:</span>${obj.factoryLocation}</p></div>`;
let html = obj.dataType == 5 || obj.dataType == 6 ? htmlB : htmlA; let htmlC =
`<div class="windowDg"><h3>详细信息</h3>` +
`<p><span>危害场所名称:</span>${obj.placeName}</p>` +
`<p><span>场所类型:</span>${obj.placeType}</p>` +
`<p><span>危害等级:</span>${obj.harmLevel}</p>` +
`<p><span>联系人:</span>${obj.contacts}</p>` +
`<p><span>联系方式:</span>${obj.phone}</p>` +
`<p><span>危险等级:</span>${obj.dangerGrade}</p>` +
`<p><span>所在位置:</span>${obj.address}</p></div>`;
let htmlD =
`<div class="windowDg"><h3>详细信息</h3>` +
`<p><span>隐患名称:</span>${obj.troubleName}</p>` +
`<p><span>隐患类型:</span>${obj.troubleType}</p>` +
`<p><span>隐患等级:</span>${obj.troubleLevel}</p>` +
`<p><span>所在位置:</span>${obj.address}</p></div>`;
let html ;
if(obj.goodsName!=undefined){
html= htmlA;
}else if(obj.deviceName!=undefined){
html = htmlB
}else if(obj.placeName!=undefined){
html = htmlC
}else {
html = htmlD
}
return html; return html;
} }
getPopcon(id: any) { getPopcon(id: any) {
...@@ -364,7 +435,8 @@ export default class EnseListDetail extends Vue { ...@@ -364,7 +435,8 @@ export default class EnseListDetail extends Vue {
created() { created() {
(this as any).enterpriseId = this.$route.query.enterpriseId; (this as any).enterpriseId = this.$route.query.enterpriseId;
this.getDetail(); this.getDetail();
this.addMarksToMap(); this.getDetailList()
//this.addMarksToMap();
} }
mounted() { mounted() {
let that = this; let that = this;
...@@ -372,6 +444,7 @@ export default class EnseListDetail extends Vue { ...@@ -372,6 +444,7 @@ export default class EnseListDetail extends Vue {
that.Mutil = new Mutil("mapbox"); that.Mutil = new Mutil("mapbox");
that.MAP = that.Mutil.MAP; that.MAP = that.Mutil.MAP;
that.Mutil.mapSelectBind((evt: any) => { that.Mutil.mapSelectBind((evt: any) => {
that.Mutil.closeAllOverlays();
let id = evt.selected[0].get('did'); let id = evt.selected[0].get('did');
if (id) that.getPopcon(id); if (id) that.getPopcon(id);
}) })
...@@ -404,7 +477,10 @@ export default class EnseListDetail extends Vue { ...@@ -404,7 +477,10 @@ export default class EnseListDetail extends Vue {
height: 100%; height: 100%;
} }
} }
.ol-zoom {
top: .5em;
left: 5px !important;
}
main>div { main>div {
padding: 10px; padding: 10px;
box-sizing: border-box; box-sizing: border-box;
......
<template> <template>
<el-tabs v-model="activeName" type="border-card" > <el-tabs v-model="activeName" type="border-card" >
<el-tab-pane label="图表" name="first"> <el-tab-pane label="图表" name="first" >
<div style="width: 100%;height: 10em;"> <div style ="display:flex;flex-direction:row;justify-content:flex-start;">
<div class="el-tab-pane-div second-div" style="" @click="showList(1)" style="cursor:pointer;"> <div style="width: 24%;height:700px;" >
<div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;"> <div class="qiyetitle">企业列表</div>
<img src="../../assets/logo2.png" width="25%" style="margin-top: 2rem;"> <div class="qiyelist" style="letter-spacing:1px;" :id="item.enterpriseId" @click="showqiye(item.enterpriseId)" v-for="(item, index) in tableData.pageData" :key="index">
<p>危险源数量</p> {{item.unitName}}
</div> </div>
<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{tjNumberObj.dangerNum}}</div> </div>
</div> <div style="width: 75%">
<div class="el-tab-pane-div second-div" style="" @click="showList(2)" style="cursor:pointer;"> <div style="width: 100%;height: 10em;">
<div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;"> <div class="el-tab-pane-div second-div" style="" style="cursor:pointer;">
<img src="../../assets/z-zhuce.png" width="25%" style="margin-top: 2rem;"> <div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;">
<p>注册企业数量</p> <img src="../../assets/logo2.png" width="25%" style="margin-top: 2rem;">
<p>事故总次数</p>
</div>
<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{totalOne}}</div>
</div> </div>
<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{tjNumberObj.enterpriseRegNum}}</div> <div class="el-tab-pane-div second-div" style="" style="cursor:pointer;">
</div> <div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;">
<div class="el-tab-pane-div second-div" style="" @click="showList(3)" style="cursor:pointer;"> <img src="../../assets/z-zhuce.png" width="25%" style="margin-top: 2rem;">
<div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;"> <p>设备预警总次数</p>
<img src="../../assets/z-shenhe.png" width="25%" style="margin-top: 2rem;"> </div>
<p>待审批数量</p> <div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{totalTwo}}</div>
</div> </div>
<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{tjNumberObj.enterpriseCheckIngNum}}</div> <!--<div class="el-tab-pane-div second-div" style="" @click="showList(3)" style="cursor:pointer;">-->
<!--<div style="width: 40%;height: 100%; text-align: center;float: left;font-size: 15px;">-->
<!--<img src="../../assets/z-shenhe.png" width="25%" style="margin-top: 2rem;">-->
<!--<p>待审批数量</p>-->
<!--</div>-->
<!--<div style="width: 60%;height: 100%;text-align: center;line-height: 9rem;float: right;font-size: 3rem;font-family: 'UnidreamLED';">{{tjNumberObj.enterpriseCheckIngNum}}</div>-->
<!--</div>-->
</div> </div>
<EnterprisesTj></EnterprisesTj>
</div>
</div> </div>
<EnterprisesTj></EnterprisesTj>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="列表" name="second"> <el-tab-pane label="列表" name="second">
<div class="EnseList" style="background-color: #fff;padding: 20px;"> <div class="EnseList" style="background-color: #fff;padding: 20px;">
...@@ -239,10 +249,13 @@ export default class EnterprisesMg extends Vue { ...@@ -239,10 +249,13 @@ export default class EnterprisesMg extends Vue {
@Provide() loading: Boolean = false; @Provide() loading: Boolean = false;
@Provide() cityval: any = []; @Provide() cityval: any = [];
@Provide() tjNumberObj: any = {}; @Provide() tjNumberObj: any = {};
@Provide() totalOne: string = 0;
@Provide() totalTwo: string = 0
//编辑组件 //编辑组件
@Provide() dialogVisible1: Boolean = false; @Provide() dialogVisible1: Boolean = false;
@Provide() dialogVisible2: Boolean = false; @Provide() dialogVisible2: Boolean = false;
@Provide() dialogVisible3: Boolean = false; @Provide() dialogVisible3: Boolean = false;
@Provide() idcolor: string = "";
@Provide() zjKey: any = 0; @Provide() zjKey: any = 0;
...@@ -255,6 +268,14 @@ export default class EnterprisesMg extends Vue { ...@@ -255,6 +268,14 @@ export default class EnterprisesMg extends Vue {
this.dialogVisible3 = true; this.dialogVisible3 = true;
} }
} }
showqiye(id){
if(this.idcolor!=''){
document.getElementById(this.idcolor).style.background="";
}
document.getElementById(id).style.background="#00008B";
this.idcolor= id;
this.getData();
}
getTableData() { getTableData() {
let that = this, let that = this,
param = Object.assign({accountStatus:'0'}, that.PAGE, that.searchData); param = Object.assign({accountStatus:'0'}, that.PAGE, that.searchData);
...@@ -267,6 +288,7 @@ export default class EnterprisesMg extends Vue { ...@@ -267,6 +288,7 @@ export default class EnterprisesMg extends Vue {
that.loading = false; that.loading = false;
if (res.code == 0) { if (res.code == 0) {
that.tableData = res.data; that.tableData = res.data;
console.log(that.tableData.pageData)
} }
} }
); );
...@@ -284,6 +306,24 @@ export default class EnterprisesMg extends Vue { ...@@ -284,6 +306,24 @@ export default class EnterprisesMg extends Vue {
} }
); );
} }
getData() {
let that = this;
var id = this.idcolor;
var param ={ enterpriseId: id, fromdate: "2021" }
METHOD.axiosPost(
that,
`/enterpriseInfo/enterpriseHistogram`,
param,
function (res: any) {
if (res.code == 0) {
that.totalOne = res.data.accident.totalNum;
that.totalTwo = res.data.alarm.totalNum;
console.log(res.data.accident)
EnterprisesTj.methods.drawPieChart(res.data)
}
}
);
}
searchFun() { searchFun() {
this.PAGE = { page: 1, size: 10 }; this.PAGE = { page: 1, size: 10 };
this.getTableData(); this.getTableData();
...@@ -327,7 +367,7 @@ export default class EnterprisesMg extends Vue { ...@@ -327,7 +367,7 @@ export default class EnterprisesMg extends Vue {
@import "@/utils/public.scss"; @import "@/utils/public.scss";
.second-div{ .second-div{
margin-top: 20px; margin-top: 20px;
width: 30%; width: 45%;
float: left; float: left;
margin-left: 2.5%; margin-left: 2.5%;
height: 9rem; height: 9rem;
...@@ -337,6 +377,31 @@ export default class EnterprisesMg extends Vue { ...@@ -337,6 +377,31 @@ export default class EnterprisesMg extends Vue {
border: 2px solid rgb(22, 151, 207, 0.3); border: 2px solid rgb(22, 151, 207, 0.3);
box-shadow: 0 0 8px 8px rgba(131, 229, 255, 0.1)inset, 0 0 7px 7px rgba(22, 151, 207, 0.2); box-shadow: 0 0 8px 8px rgba(131, 229, 255, 0.1)inset, 0 0 7px 7px rgba(22, 151, 207, 0.2);
} }
.qiyetitle{
height: 60px;
line-height:60px;
margin-left: 20px;
text-align:center;
color:#f0c78a;
font-size: 30px;
margin-top:20px;
background-color: rgba(47, 96, 177, 0.1);
border-radius: 5px;
border: 2px solid rgb(22, 151, 207, 0.3);
box-shadow: 0 0 8px 8px rgba(131, 229, 255, 0.1)inset, 0 0 7px 7px rgba(22, 151, 207, 0.2);
}
.qiyelist{
height: 40px;
line-height:40px;
color: #f0f0f0;
font-size: large;
margin-left: 20px;
letter-spacing:1px;
background-color: rgba(47, 96, 177, 0.1);
border-radius: 5px;
border: 2px solid rgb(22, 151, 207, 0.3);
box-shadow: 0 0 8px 8px rgba(131, 229, 255, 0.1)inset, 0 0 7px 7px rgba(22, 151, 207, 0.2);
}
main > div { main > div {
background: #ffffff; background: #ffffff;
height: calc(100vh - 120px)!important; height: calc(100vh - 120px)!important;
......
<template style=""> <template style="">
<div class="pie" style="width:100%;height: 700px;"> <div class="pie" style="width:100%;height: 700px;">
<div id="pie1" style="float:left;width:50%;height: 500px;"> <!--<div id="pie1" style="float:left;width:50%;height: 500px;">-->
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --> <!--&lt;!&ndash; 为 ECharts 准备一个具备大小(宽高)的 DOM &ndash;&gt;-->
<div id="main1" style="width:700px;height:500px;"></div> <!--<div id="main1" style="width:700px;height:500px;"></div>-->
</div> <!--</div>-->
<div id="pie2" style="float:right;width:40%;height: 500px;"> <div style="width:100%;display:flex;flex-direction:row;justify-content:flex-start;">
<div id="main2" style="width:550px;height:500px;"></div>
<div id="pie2" style="width:45%;height: 500px;">
<div id="main2" style="width:550px;height:500px;"></div>
</div>
<div id="pie3" style="width:45%;height: 500px;">
<div id="main3" style="width:550px;height:500px;"></div>
</div>
</div> </div>
</div> </div>
</template> </template>
...@@ -24,8 +30,8 @@ export default { ...@@ -24,8 +30,8 @@ export default {
created(){ created(){
}, },
mounted(){ mounted(){
this.initData(); //this.initData();
this.drawPieChart(); //this.drawPieChart();
}, },
methods:{ methods:{
//初始化数据 //初始化数据
...@@ -62,7 +68,6 @@ export default { ...@@ -62,7 +68,6 @@ export default {
}) })
} }
}); });
// 绘制图表 // 绘制图表
myChart1.setOption({ myChart1.setOption({
title : { title : {
...@@ -112,43 +117,58 @@ export default { ...@@ -112,43 +117,58 @@ export default {
}); });
}, },
drawPieChart(){ getData(data) {
console.log(data)
let that = this;
//var id = this.idcolor;
},
drawPieChart(data){
// 基于准备好的dom,初始化echarts实例 // 基于准备好的dom,初始化echarts实例
var myChart2 = echarts.init(document.getElementById('main2')); var myChart2 = echarts.init(document.getElementById('main2'));
var myChart3 = echarts.init(document.getElementById('main3'));
let that=this; let that=this;
var getData1 = []; var getData1 = data.alarm.num;
var getData2 = []; var getData2 = data.accident.num;
METHOD.axiosGet( // myChart2.setOption({
this, // xAxis: {
`/enterpriseGoods/getNumberByEnterprise`, // data: getData1,
function(res) { // },
if (res.code === 0) { // series:[{
//先进行赋值 // data: getData2,
for(let i=0; i<res.data.result.length; i++) { // }]
var obj = new Object(); // })
var arr = new Object(); // METHOD.axiosGet(
// obj = res.data.result[i].number; // this,
// arr = res.data.result[i].type; // `/enterpriseGoods/getNumberByEnterprise`,
obj = res.data.result[i].number; // function(res) {
arr = res.data.result[i].name; // if (res.code === 0) {
getData1[i] = obj; // //先进行赋值
getData2[i] = arr; // for(let i=0; i<res.data.result.length; i++) {
} // var obj = new Object();
myChart2.setOption({ // var arr = new Object();
xAxis: { // // obj = res.data.result[i].number;
data: getData2, // // arr = res.data.result[i].type;
}, // obj = res.data.result[i].number;
series:[{ // arr = res.data.result[i].name;
data: getData1, // getData1[i] = obj;
}] // getData2[i] = arr;
}) // }
} // myChart2.setOption({
}); // xAxis: {
// data: getData2,
// },
// series:[{
// data: getData1,
// }]
// })
// }
// });
// 绘制图表 // 绘制图表
myChart2.setOption({ myChart2.setOption({
// color:['rgb(8,252,7)','rgb(255,168,0)','rgb(0,121,254)','rgb(0,255,251)','rgb(3,120,251)','rgb(0,200,251)'], // color:['rgb(8,252,7)','rgb(255,168,0)','rgb(0,121,254)','rgb(0,255,251)','rgb(3,120,251)','rgb(0,200,251)'],
title: { title: {
text: '企业危险源数量统计',//主标题 text: '企业事故次数统计',//主标题
color: '#fff', color: '#fff',
// subtext: '柱状图', // subtext: '柱状图',
textStyle: { textStyle: {
...@@ -157,7 +177,7 @@ export default { ...@@ -157,7 +177,7 @@ export default {
}, },
tooltip: {}, tooltip: {},
legend: { legend: {
data:['危险源'], data:['事故次数'],
textStyle: { //图例文字的样式 textStyle: { //图例文字的样式
color: '#fff', color: '#fff',
} }
...@@ -168,20 +188,57 @@ export default { ...@@ -168,20 +188,57 @@ export default {
rotate:40 rotate:40
} , } ,
// data: ["报警器","二氧化碳报警器","摄像头","水压探测器","摄像头","有毒气体探测器"], // data: ["报警器","二氧化碳报警器","摄像头","水压探测器","摄像头","有毒气体探测器"],
data: [], data: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],
}, },
yAxis: {}, yAxis: {},
series: [{ series: [{
name: '危险源', name: '事故数量',
type: 'bar', type: 'bar',
// data: [5, 20, 36, 10, 10, 20], // data: [5, 20, 36, 10, 10, 20],
data: [], data: getData2,
}], }],
textStyle: { textStyle: {
color: "#fff", color: "#fff",
fontSize: 18 fontSize: 18
}, },
}); });
myChart3.setOption({
// color:['rgb(8,252,7)','rgb(255,168,0)','rgb(0,121,254)','rgb(0,255,251)','rgb(3,120,251)','rgb(0,200,251)'],
title: {
text: '企业预警次数统计',//主标题
color: '#fff',
// subtext: '柱状图',
textStyle: {
color: "#fff",
}
},
tooltip: {},
legend: {
data:['预警次数'],
textStyle: { //图例文字的样式
color: '#fff',
}
},
xAxis: {
axisLabel: {
interval:0,
rotate:40
} ,
// data: ["报警器","二氧化碳报警器","摄像头","水压探测器","摄像头","有毒气体探测器"],
data: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],
},
yAxis: {},
series: [{
name: '预警次数',
type: 'bar',
// data: [5, 20, 36, 10, 10, 20],
data: getData1,
}],
textStyle: {
color: "#fff",
fontSize: 18
},
});
} }
} }
} }
...@@ -196,6 +253,11 @@ export default { ...@@ -196,6 +253,11 @@ export default {
margin-left: 20px; margin-left: 20px;
margin-top: 50px; margin-top: 50px;
} }
.pie #pie3{
/* border:1px #000000 solid; */
margin-left: 20px;
margin-top: 50px;
}
.el-main .el-tabs .el-tabs__content{ .el-main .el-tabs .el-tabs__content{
background-image: url(../../assets/bg.png); background-image: url(../../assets/bg.png);
background-repeat: no-repeat; background-repeat: no-repeat;
......
...@@ -118,6 +118,7 @@ ...@@ -118,6 +118,7 @@
<script lang="ts"> <script lang="ts">
import { Component, Vue, Provide, Watch } from "vue-property-decorator"; import { Component, Vue, Provide, Watch } from "vue-property-decorator";
import METHOD from "@/utils/methods";
@Component({ @Component({
components: { } components: { }
}) })
...@@ -158,12 +159,22 @@ ...@@ -158,12 +159,22 @@
nodeClick(data: any, node: any, target: any) { nodeClick(data: any, node: any, target: any) {
let that = this; let that = this;
that.treecheckedObj = node.data; that.treecheckedObj = node.data;
if(node.level == "3"){ if(node.level == "3"){
that.playerWindow = 'newplay' + that.flag; that.playerWindow = 'newplay' + that.flag;
var player = new WasmPlayer(null, that.playerWindow, null, {Height: true}); var player = new WasmPlayer(null, that.playerWindow, null, {Height: true});
// console.log(that.playerWindow, node.data.deviceNumber) // console.log(that.playerWindow, node.data.deviceNumber)
player.play('http://27.128.189.137:18000/flv/hls/' + that.treecheckedObj.deviceNumber + '.flv', 1); METHOD.axiosGet(
this,
`/artemis/getPreviewURLs?cameraIndexCode=`+that.treecheckedObj.deviceNumber,
function(res) {
// console.log(res.code)
if (res.code == 0) {
player.play(res.data.url, 1);
}else{
//player.play('http://live.hkstv.hk.lxdns.com/flv/hks.flv', 1);
}
});
//player.play('http://27.128.189.137:18000/flv/hls/' + that.treecheckedObj.deviceNumber + '.flv', 1);
if(that.flag < 4) { if(that.flag < 4) {
that.flag++; that.flag++;
} }
......
<!--
<template> <template>
<div class="amap-page-container"> <div class="amap-page-container">
<el-amap ref="map" vid="amapDemo" :center="center" :zoom="zoom" :plugin="plugin" :events="events" class="amap-demo"> <el-amap vid="amapDemo" :zoom="zoom" :center="center" ></el-amap>
<el-amap-marker v-for="marker in markers":key="i" :position="marker.position"></el-amap-marker> </div>
</el-amap> --> </template>
<!-- <div class="toolbar">
<button @click="getMap()">get map</button>
</div> -->
<!-- </div>
</template>
<style>
.amap-page-container {
height: 400px;
}
</style> -->
<!-- <script>
import VueAMap from 'vue-amap'; <style>
.amap-page-container {
Vue.use(VueAMap); height: 100%;
}
VueAMap.initAMapApiLoader({ </style>
<script>
  // 高德的keye
//import VueAMap from '@/utils/VamapLoad.ts';
  key: 'cb087c0fb3b8bc56a4af064630495bb9', import VueAMap from 'vue-amap';
import "@/utils/directive.js";
  uiVersion: '1.0.11' ,// 版本号 import {
Icon
  // 插件集合 } from "element-ui";
import { Component, Vue, Provide, Prop, Watch } from "vue-property-decorator";
  plugin: ['AMap.Geocoder','AMap.Autocomplete','AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.Geolocation','AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor'],
Vue.use(VueAMap);
  // 高德 sdk 版本,默认为 1.4.4
VueAMap.initAMapApiLoader({
  v: '1.4.4'
// 高德的keye
});
key: 'cb087c0fb3b8bc56a4af064630495bb9',
uiVersion: '1.0.11' ,// 版本号
// 插件集合
plugin: ['AMap.Geocoder','AMap.Autocomplete','AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.Geolocation','AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor'],
// 高德 sdk 版本,默认为 1.4.4
v: '1.4.4'
});
// import { AMapManager } from 'vue-amap'; // import { AMapManager } from 'vue-amap';
// import { AMap } from 'vue-amap'; // import { AMap } from 'vue-amap';
export default { export default {
data () { data () {
return { return {
zoom: 15, zoom: 15,
center: [117.148118, 36.660223], center: [117.148118, 36.660223],
markers: [ markers: [
{ {
position: [117.148118, 36.660223], position: [117.148118, 36.660223],
events: { events: {
click: () => { click: () => {
alert('click marker'); },
}, dragend: (e) => {
dragend: (e) => { console.log('---event---: dragend')
console.log('---event---: dragend') this.markers[0].position = [e.lnglat.lng, e.lnglat.lat];
this.markers[0].position = [e.lnglat.lng, e.lnglat.lat]; }
} },
}, visible: true,
visible: true, draggable: false,
draggable: false, template: '<span>1</span>',
template: '<span>1</span>', }
} ]
], }
events: { },
init: (o) => { methods: {
console.log(o.getCenter()) getMap() {
console.log(this.$refs.map.$$getInstance()) // gaode map instance
o.getCity(result => {
console.log(result)
})
},
'moveend': () => {
},
'zoomchange': () => {
},
'click': (e) => {
let {lng,lat} = e.lnglat;
self.lng = lng;
self.lat = lat;
console.log(self.lng,self.lat)
let points = [self.lng,self.lat]
this.getAddress(points)
let marker = {
position: [self.lng, self.lat]
};
if (!this.markers.length) return;
this.markers.splice(this.markers.length - 1, 1);
this.markers.push(marker);
}
},
getAddress (points) {
let geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all" })
geocoder.getAddress(points, (status, result) => {
if (status === 'complete' && result.regeocode) {
this.address = result.regeocode.formattedAddress
console.log(this.address)
}
})
},
plugin: ['ToolBar', {
pName: 'MapType',
defaultType: 0,
events: {
init(o) {
console.log(o);
}
}
}],
texts: [
{
position: [121.5273285, 31.21515044],
text: 'hello world',
offset: [0, 0],
events: {
click: () => {
alert('click text');
}
}
}
]
}
},
methods: {
getMap() {
console.log(AMapManager._componentMap);
// gaode map instance
console.log(AMapManager._map); console.log(AMapManager._map);
alert('click text'); alert('click text');
} }
} }
}; };
</script> --> </script>
\ No newline at end of file \ No newline at end of file
<template> <template>
<div class="gis"> <div class="gis">
<div id="mapbox"> <div id="mapbox" style="margin: 0">
<div style="position:absolute;left:500px;top:10px"> <div style="position:absolute;left:500px;top:10px">
<button @click="Mutil.tianSlA()" class="map-botton">卫星地图</button> <button @click="Mutil.tianSlA()" id="but1" class="map-botton">卫星地图</button>
<button @click="Mutil.tianSlB()" class="map-botton">全景地图</button> <button @click="Mutil.tianSlB()" id="but2" class="map-botton">全景地图</button>
</div> </div>
<div v-show="isShowVideo" v-drag <div v-show="isShowVideo" v-drag
...@@ -20,9 +20,13 @@ ...@@ -20,9 +20,13 @@
</div> </div>
<div style=""> <div style="">
<div <div id="bluebox"
style="width: 500px;height: 100%;z-index: 11;background-color: rgba(2, 40, 90, 0.7);position: absolute;top: 0;left: 10px;float: left;"> style="width: 500px;height: 100%;z-index: 11;background-color: rgba(2, 40, 90, 0.7);position: absolute;top: 0;left: 10px;float: left;">
<QyMapone></QyMapone> <QyMapone></QyMapone>
</div>
<div @click="kongzhi" id="bluebox2"
style="width: 30px;height: 10%;z-index: 11;background-color: rgba(2, 40, 90, 0.7);position: absolute;top: 0;left: 510px;float: left;top:45%">
<img style="height: 100%;width: 100%" src="@/assets/mark/markqy.png"/>
</div> </div>
<div class="markBox"> <div class="markBox">
...@@ -53,12 +57,12 @@ ...@@ -53,12 +57,12 @@
<span>监控监测点<p></p><span style="font-family: 'UnidreamLED';font-size: 1.5rem;">{{tjNumberObj.cameraNum}}</span></span> <span>监控监测点<p></p><span style="font-family: 'UnidreamLED';font-size: 1.5rem;">{{tjNumberObj.cameraNum}}</span></span>
</div> </div>
</div> </div>
<div class="markbox-div" ref="wh"> <div @click="mapwh" class="markbox-div" ref="wh">
<div ref="whimg" class="markbox-click" style="width: 30%;height: 100%;float: left;text-align: right;"> <div ref="whimg" class="markbox-click" style="width: 30%;height: 100%;float: left;text-align: right;">
<img width="32px" src="@/assets/mark/weihaichangsuo.png" /> <img width="32px" src="@/assets/mark/weihaichangsuo.png" />
</div> </div>
<div class="markbox-span" ref="zwh" style="width: 70%;height: 100%;float: left;text-align: center;line-height: 10px;padding-top: 18px;"> <div class="markbox-span" ref="zwh" style="width: 70%;height: 100%;float: left;text-align: center;line-height: 10px;padding-top: 18px;">
<span>职业危害场所<p></p><span style="font-family: 'UnidreamLED';font-size: 1.5rem;">0</span></span> <span>职业危害场所<p></p><span style="font-family: 'UnidreamLED';font-size: 1.5rem;">{{tjNumberObj.harmNum}}</span></span>
</div> </div>
</div> </div>
...@@ -194,12 +198,14 @@ ...@@ -194,12 +198,14 @@
@Provide() markers2: any = []; @Provide() markers2: any = [];
@Provide() markers3: any = []; @Provide() markers3: any = [];
@Provide() markers4: any = []; @Provide() markers4: any = [];
@Provide() markers5: any = [];
@Provide() mapData: any = []; @Provide() mapData: any = [];
@Provide() windowsArr: any = []; @Provide() windowsArr: any = [];
@Provide() windowsArr1: any = []; @Provide() windowsArr1: any = [];
@Provide() windowsArr2: any = []; @Provide() windowsArr2: any = [];
@Provide() windowsArr3: any = []; @Provide() windowsArr3: any = [];
@Provide() windowsArr4: any = []; @Provide() windowsArr4: any = [];
@Provide() windowsArr5: any = [];
@Provide() currentWindow: any = ""; @Provide() currentWindow: any = "";
// @Provide() searchOption: any = { // @Provide() searchOption: any = {
// city: "石家庄", // city: "石家庄",
...@@ -221,6 +227,7 @@ ...@@ -221,6 +227,7 @@
@Provide() deviceVideo: any = {}; @Provide() deviceVideo: any = {};
@Provide() qiyeVisble: boolean = true; @Provide() qiyeVisble: boolean = true;
@Provide() wxyVisble: boolean = true; @Provide() wxyVisble: boolean = true;
@Provide() harmVisble: boolean = true;
@Provide() shipinVisble: boolean = true; @Provide() shipinVisble: boolean = true;
@Provide() maVisble: boolean = true; @Provide() maVisble: boolean = true;
@Provide() weihaiVisble: boolean = true; @Provide() weihaiVisble: boolean = true;
...@@ -334,6 +341,30 @@ ...@@ -334,6 +341,30 @@
} }
); );
} }
getwhWindowInfo(id: string) {
let that = this;
(window as any).checkDetail = function (param: string) {
that.$router.push({
path: "/EnDetail",
query: {
enterpriseId: param
}
});
};
let obj = that.harmmapData[id-1],
html =
`<div class="windowDg"><h3>职业危害场所</h3>` +
`<p><span>场所名称:</span>${obj.placeName}</p>` +
`<p><span>危害类型:</span>${obj.placeType}</p>` +
`<p><span>危害等级:</span>${obj.harmLevel}</p>` +
`<p><span>地址:</span>${obj.address}</p>` +
`<p><span>联系人:</span>${obj.contacts}</p>` +
`<p><span>联系方式:</span>${obj.phone}</p>` +
`</div>`;
that.Mutil.addPopup(html, obj.id, obj.longitude, obj.latitude)
}
getMaterialWindow(id: string) { getMaterialWindow(id: string) {
let that = this; let that = this;
(window as any).checkDetail = function (param: string) { (window as any).checkDetail = function (param: string) {
...@@ -397,12 +428,27 @@ ...@@ -397,12 +428,27 @@
that.deviceVideo = res.data; that.deviceVideo = res.data;
let device = res.data; let device = res.data;
that.isShowVideo = true; that.isShowVideo = true;
that.player.play('http://27.128.189.137:18000/flv/hls/' + that.treecheckedObj.deviceNumber + '.flv', 1); that.togoshipin();
that.lastVideoPlayId = that.treecheckedObj.deviceNumber;//记录上次播放的视频ID //that.player.play('http://27.128.189.137:18000/flv/hls/' + that.treecheckedObj.deviceNumber + '.flv', 1);
} }
} }
); );
} }
togoshipin(){
var that = this;
METHOD.axiosGet(
this,
`/artemis/getPreviewURLs?cameraIndexCode=`+that.treecheckedObj.deviceNumber,
function(res) {
// console.log(res.code)
if (res.code == 0) {
that.player.play(res.data.url, 1);
that.lastVideoPlayId = that.treecheckedObj.deviceNumber;//记录上次播放的视频ID
}else{
//player.play('http://live.hkstv.hk.lxdns.com/flv/hks.flv', 1);
}
});
}
getyinhuanWindowInfo(troubleId: string) { getyinhuanWindowInfo(troubleId: string) {
let that = this; let that = this;
(window as any).dialogVisible2Change = function () { (window as any).dialogVisible2Change = function () {
...@@ -429,6 +475,56 @@ ...@@ -429,6 +475,56 @@
} }
); );
} }
//隐藏企业信息
kongzhi(){
// var a = document.getElementById("bluebox").style.left;
// this.kongzhi2(10)
var a = document.getElementById("bluebox").style.left
if(a=="10px"){
document.getElementById("bluebox").style.left="-500px"
document.getElementById("bluebox2").style.left="10px"
document.getElementById("but1").style.left="-450px"
document.getElementById("but2").style.left="-340px"
//console.log(document.getElementsByClassName("ol-unselectable").item(1));
this.removeClass(document.getElementsByClassName('ol-zoom').item(0), 'ol-zoom');
}else {
document.getElementById("bluebox").style.left="10px"
document.getElementById("bluebox2").style.left="510px"
document.getElementById("but1").style.left="50px"
document.getElementById("but2").style.left="160px"
this.addClass(document.getElementsByClassName('ol-unselectable').item(1), 'ol-zoom');
//this.addClass(document.getElementsByClassName('ol-unselectable').item(0), 'ol-zoom');
}
return;
}
addClass(ele, cls) {
if (!this.hasClass(ele, cls)) {
ele.className = ele.className == '' ? cls : ele.className + ' ' + cls;
}
}
hasClass(ele, cls) {
cls = cls || '';
if (cls.replace(/\s/g, '').length == 0) return false; //当cls没有参数时,返回false
return new RegExp(' ' + cls + ' ').test(' ' + ele.className + ' ');
}
removeClass(ele, cls) {
if (this.hasClass(ele, cls)) {
var newClass = ' ' + ele.className.replace(/[\t\r\n]/g, '') + ' ';
while (newClass.indexOf(' ' + cls + ' ') >= 0) {
newClass = newClass.replace(' ' + cls + ' ', ' ');
}
ele.className = newClass.replace(/^\s+|\s+$/g, '');
}
}
// kongzhi2(i){
// if(i<-490){
// return ;
// }
// document.getElementById("bluebox").style.left=i+"px";
// setInterval(this.kongzhi2(i-1),3000);
//
// }
//关闭视频方法 //关闭视频方法
closeVideo() { closeVideo() {
if (this.lastVideoPlayId != "") { if (this.lastVideoPlayId != "") {
...@@ -508,6 +604,41 @@ ...@@ -508,6 +604,41 @@
obj.enterpriseId obj.enterpriseId
); );
} }
harmaddMark(obj: any, index: any) {
let icon,
that = this;
icon = require("@/assets/mark/weihaichangsuo.png");
let option = {
position: [Number(obj.longitude), Number(obj.latitude)],
content: ` <img src="${icon}" width="50">`,
label: {
content: obj.placeName,
offset: [28, -7]
},
offset: [-13, -2],
events: {
click: (e: any) => {
that.windowsArr5.forEach((ele: any) => {
ele.visible = false;
});
that.$nextTick(() => {
that.currentWindow = that.windowsArr5[index];
that.currentWindow.visible = true;
});
},
},
visible: true,
};
that.Mutil.addMarkerToMap(
'wh',
obj.placeName,
icon,
[obj.longitude, obj.latitude],
0.6,
index+1
);
}
wxyaddMark(obj: any, index: any) { wxyaddMark(obj: any, index: any) {
let icon, let icon,
that = this; that = this;
...@@ -626,7 +757,7 @@ ...@@ -626,7 +757,7 @@
that.markers4[index].visible = false; that.markers4[index].visible = false;
} }
}); });
that.wxymapData.forEach((ele: any, index: any) => { that.harmmapData.forEach((ele: any, index: any) => {
if (ele.dataType == v || v == 0) { if (ele.dataType == v || v == 0) {
that.markers1[index].visible = true; that.markers1[index].visible = true;
} else { } else {
...@@ -647,6 +778,13 @@ ...@@ -647,6 +778,13 @@
that.markers3[index].visible = false; that.markers3[index].visible = false;
} }
}); });
that.harmmapData.forEach((ele: any, index: any) => {
if (ele.dataType == v || v == 0) {
that.markers5[index].visible = true;
} else {
that.markers5[index].visible = false;
}
});
} }
/* 搜索 */ /* 搜索 */
...@@ -678,6 +816,10 @@ ...@@ -678,6 +816,10 @@
let that = this; let that = this;
that.getWxyWindowInfo(wxyid); that.getWxyWindowInfo(wxyid);
} }
getwhPopcon(whid: any) {
let that = this;
that.getwhWindowInfo(whid);
}
getshipinPopcon(shipinid: any) { getshipinPopcon(shipinid: any) {
let that = this; let that = this;
that.getshipinWindowInfo(shipinid); that.getshipinWindowInfo(shipinid);
...@@ -707,7 +849,7 @@ ...@@ -707,7 +849,7 @@
`/enterpriseGoods/getMapEnterpriseGoodsById/${goodsId}`, `/enterpriseGoods/getMapEnterpriseGoodsById/${goodsId}`,
function (res: any) { function (res: any) {
if (res.code == 0) { if (res.code == 0) {
console.log(res.data) //console.log(res.data)
that.goods = res.data; that.goods = res.data;
that.dialogVisible1 = true; that.dialogVisible1 = true;
} }
...@@ -792,9 +934,12 @@ ...@@ -792,9 +934,12 @@
that.Mutil.closeAllOverlays(); that.Mutil.closeAllOverlays();
let id = evt.selected[0].get('did'); let id = evt.selected[0].get('did');
if (id) that.getMaterialinfo(id); if (id) that.getMaterialinfo(id);
}else if (evt.selected[0].get('type') === 'wh') {//其他类的气泡
that.Mutil.closeAllOverlays();
let id = evt.selected[0].get('did');
if (id) that.getwhPopcon(id);
} }
}) })
this.getStatiData(); this.getStatiData();
} }
...@@ -851,6 +996,22 @@ ...@@ -851,6 +996,22 @@
this.$refs.zwxy.lastChild.style.color = "#fff"; this.$refs.zwxy.lastChild.style.color = "#fff";
} }
} }
mapwh() {
if (this.harmVisble) {
this.Mutil.visibleMarks(false, "wh");
this.harmVisble = false;
this.$refs.wh.style.background = "#24BBC7";
this.$refs.zwh.lastChild.style.color = "#013056";
} else {
this.Mutil.setViewF({
center: [this.harmmapData[0].longitude,this.harmmapData[0].latitude]
})
this.Mutil.visibleMarks(true, "wh");
this.harmVisble = true;
this.$refs.wh.style.background = "RGBA(5, 52, 82, 0.7)";
this.$refs.zwh.lastChild.style.color = "#fff";
}
}
mapshipin() { mapshipin() {
if (this.shipinVisble) { if (this.shipinVisble) {
this.Mutil.visibleMarks(false, "shipin"); this.Mutil.visibleMarks(false, "shipin");
...@@ -898,7 +1059,7 @@ ...@@ -898,7 +1059,7 @@
function (res: any) { function (res: any) {
if (res.code == 0) { if (res.code == 0) {
that.tjNumberObj = res.data; that.tjNumberObj = res.data;
console.log("that.tjNumberObj", that.tjNumberObj) //console.log("that.tjNumberObj", that.tjNumberObj)
let obj = res.data, let obj = res.data,
arr: any = []; arr: any = [];
arr.push({ arr.push({
...@@ -914,7 +1075,23 @@ ...@@ -914,7 +1075,23 @@
// that.$nextTick(() => { // that.$nextTick(() => {
// that.$set(that.config, "data", arr); // that.$set(that.config, "data", arr);
// }); // });
if (res.code == 0 && res.data.harmPlace.length > 0) {
that.harmmapData = res.data.harmPlace;
let wxylatSum = 0;
let wxylngSum = 0;
that.harmmapData.forEach((ele: any, index: any) => {
that.harmaddMark(ele, index);
wxylngSum += ele.longitude;
wxylatSum += ele.latitude;
});
let center = [
wxylngSum / that.harmmapData.length,
wxylatSum / that.harmmapData.length,
];
that.Mutil.setViewF({
center: center
})
}
if (res.code == 0 && res.data.goodsList.length > 0) { if (res.code == 0 && res.data.goodsList.length > 0) {
that.wxymapData = res.data.goodsList; that.wxymapData = res.data.goodsList;
let wxylatSum = 0; let wxylatSum = 0;
......
...@@ -127,6 +127,7 @@ export default { ...@@ -127,6 +127,7 @@ export default {
that, that,
`/alarmInfo/getAlarmInfoList`,{}, `/alarmInfo/getAlarmInfoList`,{},
function(res) { function(res) {
console.log(res)
if (res.code == 0) { if (res.code == 0) {
that.$data.tableData = res.data.pageData; that.$data.tableData = res.data.pageData;
} }
...@@ -418,6 +419,10 @@ export default { ...@@ -418,6 +419,10 @@ export default {
} }
</script> </script>
<style> <style>
.el-table__body-wrapper::-webkit-scrollbar {
/*width: 0;宽度为0隐藏*/
width: 0px;
}
.pie-div{ .pie-div{
width: 100%; width: 100%;
height: 210px; height: 210px;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment