This commit is contained in:
chengdandan 2023-04-26 15:01:04 +08:00
commit 9679fd1a7e
25 changed files with 37744 additions and 15439 deletions

546
package-lock.json generated
View File

@ -866,7 +866,6 @@
"version": "7.20.6",
"resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.6.tgz",
"integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.11"
}
@ -1149,6 +1148,63 @@
"integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==",
"dev": true
},
"@videojs/http-streaming": {
"version": "2.16.2",
"resolved": "https://registry.npmmirror.com/@videojs/http-streaming/-/http-streaming-2.16.2.tgz",
"integrity": "sha512-etPTUdCFu7gUWc+1XcbiPr+lrhOcBu3rV5OL1M+3PDW89zskScAkkcdqYzP4pFodBPye/ydamQoTDScOnElw5A==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "3.0.5",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "^0.22.1",
"mux.js": "6.0.1",
"video.js": "^6 || ^7"
},
"dependencies": {
"video.js": {
"version": "7.21.4",
"resolved": "https://registry.npmmirror.com/video.js/-/video.js-7.21.4.tgz",
"integrity": "sha512-R5e57M/5uqxQMQpFpybNbd8GtiRwFJPqkHjrhv0QTJ2tqnesbjETbck5kU5dhFr1FevsJRFhjBG4hAnvRGnXbw==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "2.16.2",
"@videojs/vhs-utils": "^3.0.4",
"@videojs/xhr": "2.6.0",
"aes-decrypter": "3.1.3",
"global": "^4.4.0",
"keycode": "^2.2.0",
"m3u8-parser": "4.8.0",
"mpd-parser": "0.22.1",
"mux.js": "6.0.1",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.4"
}
}
}
},
"@videojs/vhs-utils": {
"version": "3.0.5",
"resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz",
"integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==",
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
}
},
"@videojs/xhr": {
"version": "2.6.0",
"resolved": "https://registry.npmmirror.com/@videojs/xhr/-/xhr-2.6.0.tgz",
"integrity": "sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==",
"requires": {
"@babel/runtime": "^7.5.5",
"global": "~4.4.0",
"is-function": "^1.0.1"
}
},
"@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
@ -3000,6 +3056,11 @@
}
}
},
"@xmldom/xmldom": {
"version": "0.8.7",
"resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.7.tgz",
"integrity": "sha512-sI1Ly2cODlWStkINzqGrZ8K6n+MTSbAeQnAipGyL+KZCXuHaRlj2gyyy8B/9MvsFFqN7XHryQnB2QwhzvJXovg=="
},
"@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@ -3048,6 +3109,17 @@
"integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==",
"dev": true
},
"aes-decrypter": {
"version": "3.1.3",
"resolved": "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-3.1.3.tgz",
"integrity": "sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"global": "^4.4.0",
"pkcs7": "^1.0.4"
}
},
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
@ -5559,6 +5631,11 @@
"entities": "^2.0.0"
}
},
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz",
@ -5662,6 +5739,11 @@
}
}
},
"easy-player": {
"version": "2.2.7",
"resolved": "https://registry.npmmirror.com/easy-player/-/easy-player-2.2.7.tgz",
"integrity": "sha512-6FoTLoEzXPVogaFiSK/AqecekVtgo9dzT/5uUbaIyhUbwL2zxiVxU+D+ZSkpMKbjzbnGr0kFrxdd2S+m0H2bzQ=="
},
"easy-stack": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz",
@ -5904,6 +5986,11 @@
"is-symbol": "^1.0.2"
}
},
"es5-shim": {
"version": "4.6.7",
"resolved": "https://registry.npmmirror.com/es5-shim/-/es5-shim-4.6.7.tgz",
"integrity": "sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ=="
},
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz",
@ -6800,6 +6887,15 @@
}
}
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz",
"integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
},
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
@ -7493,6 +7589,11 @@
"integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==",
"dev": true
},
"individual": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/individual/-/individual-2.0.0.tgz",
"integrity": "sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g=="
},
"infer-owner": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz",
@ -7721,6 +7822,11 @@
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"is-function": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz",
"integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
},
"is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
@ -8042,6 +8148,11 @@
"verror": "1.10.0"
}
},
"keycode": {
"version": "2.2.1",
"resolved": "https://registry.npmmirror.com/keycode/-/keycode-2.2.1.tgz",
"integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg=="
},
"killable": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/killable/-/killable-1.0.1.tgz",
@ -8288,6 +8399,16 @@
"yallist": "^4.0.0"
}
},
"m3u8-parser": {
"version": "4.8.0",
"resolved": "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-4.8.0.tgz",
"integrity": "sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"global": "^4.4.0"
}
},
"make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz",
@ -8498,6 +8619,14 @@
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
"min-document": {
"version": "2.19.0",
"resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz",
"integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
"requires": {
"dom-walk": "^0.1.0"
}
},
"mini-css-extract-plugin": {
"version": "2.7.2",
"resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz",
@ -8649,6 +8778,17 @@
}
}
},
"mpd-parser": {
"version": "0.22.1",
"resolved": "https://registry.npmmirror.com/mpd-parser/-/mpd-parser-0.22.1.tgz",
"integrity": "sha512-fwBebvpyPUU8bOzvhX0VQZgSohncbgYwUyJJoTSNpmy7ccD2ryiCvM7oRkn/xQH5cv73/xU7rJSNCLjdGFor0Q==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"@xmldom/xmldom": "^0.8.3",
"global": "^4.4.0"
}
},
"mqtt": {
"version": "4.3.7",
"resolved": "https://registry.npmmirror.com/mqtt/-/mqtt-4.3.7.tgz",
@ -8731,6 +8871,15 @@
"resolved": "https://registry.npmmirror.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
"integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ=="
},
"mux.js": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/mux.js/-/mux.js-6.0.1.tgz",
"integrity": "sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==",
"requires": {
"@babel/runtime": "^7.11.2",
"global": "^4.4.0"
}
},
"mz": {
"version": "2.7.0",
"resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz",
@ -9393,6 +9542,11 @@
}
}
},
"parse-headers": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz",
"integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
},
"parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
@ -9558,6 +9712,14 @@
"pinkie": "^2.0.0"
}
},
"pkcs7": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/pkcs7/-/pkcs7-1.0.4.tgz",
"integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==",
"requires": {
"@babel/runtime": "^7.5.5"
}
},
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
@ -10841,6 +11003,11 @@
"renderkid": "^2.0.4"
}
},
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@ -11298,8 +11465,7 @@
"regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
"dev": true
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
"regenerator-transform": {
"version": "0.15.1",
@ -11626,11 +11792,27 @@
"aproba": "^1.1.1"
}
},
"rust-result": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/rust-result/-/rust-result-1.0.0.tgz",
"integrity": "sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==",
"requires": {
"individual": "^2.0.0"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safe-json-parse": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/safe-json-parse/-/safe-json-parse-4.0.0.tgz",
"integrity": "sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==",
"requires": {
"rust-result": "^1.0.0"
}
},
"safe-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz",
@ -12957,6 +13139,11 @@
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
},
"tsml": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/tsml/-/tsml-1.0.1.tgz",
"integrity": "sha512-3KmepnH9SUsoOVtg013CRrL7c+AK7ECaquAsJdvu4288EDJuraqBlP4PDXT/rLEJ9YDn4jqLAzRJsnFPx+V6lg=="
},
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz",
@ -13376,6 +13563,11 @@
"requires-port": "^1.0.0"
}
},
"url-toolkit": {
"version": "2.2.5",
"resolved": "https://registry.npmmirror.com/url-toolkit/-/url-toolkit-2.2.5.tgz",
"integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg=="
},
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz",
@ -13465,6 +13657,322 @@
"extsprintf": "^1.2.0"
}
},
"video.js": {
"version": "8.0.4",
"resolved": "https://registry.npmmirror.com/video.js/-/video.js-8.0.4.tgz",
"integrity": "sha512-fvvWauPanrKDps1HQGGL+9CIAK8G0YVwlNme0hvY0k3moXQryaRcJSLHIlPKV2j9ZFTHl32VbN43jL3TaUllfg==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "3.0.0",
"@videojs/vhs-utils": "^4.0.0",
"@videojs/xhr": "2.6.0",
"aes-decrypter": "^4.0.1",
"global": "4.4.0",
"keycode": "2.2.0",
"m3u8-parser": "^6.0.0",
"mpd-parser": "^1.0.1",
"mux.js": "^6.2.0",
"safe-json-parse": "4.0.0",
"videojs-contrib-quality-levels": "3.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "0.15.4"
},
"dependencies": {
"@videojs/http-streaming": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/@videojs/http-streaming/-/http-streaming-3.0.0.tgz",
"integrity": "sha512-AdKmY/W2dyeJP0uALgMRmhLa4pbHMvE4OMlg6yQvufnqsz6jDFo1DYnZRv2ENDYrmVdnPH58Ehgu59053+OIhQ==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "4.0.0",
"aes-decrypter": "4.0.1",
"global": "^4.4.0",
"m3u8-parser": "^6.0.0",
"mpd-parser": "^1.0.1",
"mux.js": "6.2.0",
"video.js": "^7 || ^8"
},
"dependencies": {
"mux.js": {
"version": "6.2.0",
"resolved": "https://registry.npmmirror.com/mux.js/-/mux.js-6.2.0.tgz",
"integrity": "sha512-SKuxIcbmK/aJoz78aQNuoXY8R/uEPm1gQMqWTXL6DNl7oF8UPjdt/AunXGkPQpBouGWKDgL/TzSl2VV5NuboRg==",
"requires": {
"@babel/runtime": "^7.11.2",
"global": "^4.4.0"
}
}
}
},
"@videojs/vhs-utils": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-4.0.0.tgz",
"integrity": "sha512-xJp7Yd4jMLwje2vHCUmi8MOUU76nxiwII3z4Eg3Ucb+6rrkFVGosrXlMgGnaLjq724j3wzNElRZ71D/CKrTtxg==",
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
}
},
"aes-decrypter": {
"version": "4.0.1",
"resolved": "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-4.0.1.tgz",
"integrity": "sha512-H1nh/P9VZXUf17AA5NQfJML88CFjVBDuGkp5zDHa7oEhYN9TTpNLJknRY1ie0iSKWlDf6JRnJKaZVDSQdPy6Cg==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"global": "^4.4.0",
"pkcs7": "^1.0.4"
},
"dependencies": {
"@videojs/vhs-utils": {
"version": "3.0.5",
"resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz",
"integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==",
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
}
}
}
},
"keycode": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/keycode/-/keycode-2.2.0.tgz",
"integrity": "sha512-ps3I9jAdNtRpJrbBvQjpzyFbss/skHqzS+eu4RxKLaEAtFqkjZaB6TZMSivPbLxf4K7VI4SjR0P5mRCX5+Q25A=="
},
"m3u8-parser": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-6.0.0.tgz",
"integrity": "sha512-s3JfDtqhxTilZQf+P1m9dZc4ohL4O/aylP1VV6g9lhKuQNfAcVUzq7d2wgJ9nZR4ibjuXaP87QzGCV6vB0kV6g==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"global": "^4.4.0"
},
"dependencies": {
"@videojs/vhs-utils": {
"version": "3.0.5",
"resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz",
"integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==",
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
}
}
}
},
"mpd-parser": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/mpd-parser/-/mpd-parser-1.1.1.tgz",
"integrity": "sha512-uZ/db5wQdlQn1L+OD49YXBhPI9UGeK1SeQE4D5EoaJIhf0WM9X3HDj8d+9PjoG06CgCvGZw3YW/wsHku+CH3yA==",
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.5",
"@xmldom/xmldom": "^0.8.3",
"global": "^4.4.0"
},
"dependencies": {
"@videojs/vhs-utils": {
"version": "3.0.5",
"resolved": "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz",
"integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==",
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
}
}
}
},
"mux.js": {
"version": "6.3.0",
"resolved": "https://registry.npmmirror.com/mux.js/-/mux.js-6.3.0.tgz",
"integrity": "sha512-/QTkbSAP2+w1nxV+qTcumSDN5PA98P0tjrADijIzQHe85oBK3Akhy9AHlH0ne/GombLMz1rLyvVsmrgRxoPDrQ==",
"requires": {
"@babel/runtime": "^7.11.2",
"global": "^4.4.0"
}
}
}
},
"videojs-contrib-hls": {
"version": "5.15.0",
"resolved": "https://registry.npmmirror.com/videojs-contrib-hls/-/videojs-contrib-hls-5.15.0.tgz",
"integrity": "sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw==",
"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": {
"aes-decrypter": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-1.0.3.tgz",
"integrity": "sha512-rsx8pfx7wJsn+ziYbpJ8XA5c93hKAtBCrfydxJqJCMT+qfjipd/B5wC2xHtBcoxyvlqJcpeAo3K55t0lXOn9yQ==",
"requires": {
"pkcs7": "^0.2.3"
}
},
"m3u8-parser": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-2.1.0.tgz",
"integrity": "sha512-WbEpQ2FUaNGbJ0YanSeyj9D9ruu4FUvz+ZvebIzI2bSME+PUwcPXO1kKXZkjcPUAFruDikoOI5fWQNIA6JCCOQ=="
},
"mux.js": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/mux.js/-/mux.js-4.3.2.tgz",
"integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ=="
},
"pkcs7": {
"version": "0.2.3",
"resolved": "https://registry.npmmirror.com/pkcs7/-/pkcs7-0.2.3.tgz",
"integrity": "sha512-kJRwmADEQUg+qJyRgWLtpEL9q9cFjZschejTEK3GRjKvnsU9G5WWoe/wKqRgbBoqWdVSeTUKP6vIA3Y72M3rWA=="
},
"process": {
"version": "0.5.2",
"resolved": "https://registry.npmmirror.com/process/-/process-0.5.2.tgz",
"integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA=="
},
"video.js": {
"version": "6.13.0",
"resolved": "https://registry.npmmirror.com/video.js/-/video.js-6.13.0.tgz",
"integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==",
"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"
},
"dependencies": {
"global": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/global/-/global-4.3.2.tgz",
"integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==",
"requires": {
"min-document": "^2.19.0",
"process": "~0.5.1"
}
}
}
},
"videojs-font": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/videojs-font/-/videojs-font-2.1.0.tgz",
"integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA=="
},
"videojs-vtt.js": {
"version": "0.12.6",
"resolved": "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz",
"integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==",
"requires": {
"global": "^4.3.1"
}
}
}
},
"videojs-contrib-media-sources": {
"version": "4.7.2",
"resolved": "https://registry.npmmirror.com/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.7.2.tgz",
"integrity": "sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ==",
"requires": {
"global": "^4.3.0",
"mux.js": "4.3.2",
"video.js": "^5.17.0 || ^6.2.0",
"webwackify": "0.1.6"
},
"dependencies": {
"mux.js": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/mux.js/-/mux.js-4.3.2.tgz",
"integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ=="
},
"process": {
"version": "0.5.2",
"resolved": "https://registry.npmmirror.com/process/-/process-0.5.2.tgz",
"integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA=="
},
"video.js": {
"version": "6.13.0",
"resolved": "https://registry.npmmirror.com/video.js/-/video.js-6.13.0.tgz",
"integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==",
"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"
},
"dependencies": {
"global": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/global/-/global-4.3.2.tgz",
"integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==",
"requires": {
"min-document": "^2.19.0",
"process": "~0.5.1"
}
}
}
},
"videojs-font": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/videojs-font/-/videojs-font-2.1.0.tgz",
"integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA=="
},
"videojs-vtt.js": {
"version": "0.12.6",
"resolved": "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz",
"integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==",
"requires": {
"global": "^4.3.1"
}
}
}
},
"videojs-contrib-quality-levels": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-3.0.0.tgz",
"integrity": "sha512-sNx38EYUx+Q+gmup1gVTv9P9/sPs28rM7gZOx1sedaHoKxEdYB+ysOGfHj6MSELBMNGMj6ZspdrpSiWguGvGxA==",
"requires": {
"global": "^4.4.0"
}
},
"videojs-font": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/videojs-font/-/videojs-font-3.2.0.tgz",
"integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA=="
},
"videojs-ie8": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/videojs-ie8/-/videojs-ie8-1.1.2.tgz",
"integrity": "sha512-0Zb2T4MLkpfZbeGMK/Z93b8Lrepr+rLFoHgQV1CoDeFqXvH7b+Vsd/VHoILGxQrgCSHFQ7mAODR6oyMjuiD4/g==",
"requires": {
"es5-shim": "^4.5.1"
}
},
"videojs-vtt.js": {
"version": "0.15.4",
"resolved": "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.15.4.tgz",
"integrity": "sha512-r6IhM325fcLb1D6pgsMkTQT1PpFdUdYZa1iqk7wJEu+QlibBwATPfPc9Bg8Jiym0GE5yP1AG2rMLu+QMVWkYtA==",
"requires": {
"global": "^4.3.1"
}
},
"vm-browserify": {
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz",
@ -14134,6 +14642,11 @@
"resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
},
"webwackify": {
"version": "0.1.6",
"resolved": "https://registry.npmmirror.com/webwackify/-/webwackify-0.1.6.tgz",
"integrity": "sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA=="
},
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",
@ -14240,6 +14753,33 @@
"async-limiter": "~1.0.0"
}
},
"xhr": {
"version": "2.4.0",
"resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.4.0.tgz",
"integrity": "sha512-TUbBsdAuJbX8olk9hsDwGK8P1ri1XlV+PdEWkYw+HQQbpkiBR8PLgD1F3kQDPBs9l4Px34hP9rCYAZOCCAENbw==",
"requires": {
"global": "~4.3.0",
"is-function": "^1.0.1",
"parse-headers": "^2.0.0",
"xtend": "^4.0.0"
},
"dependencies": {
"global": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/global/-/global-4.3.2.tgz",
"integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==",
"requires": {
"min-document": "^2.19.0",
"process": "~0.5.1"
}
},
"process": {
"version": "0.5.2",
"resolved": "https://registry.npmmirror.com/process/-/process-0.5.2.tgz",
"integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA=="
}
}
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",

View File

@ -7,6 +7,7 @@
"build": "vue-cli-service build"
},
"dependencies": {
"@videojs/http-streaming": "^2.16.2",
"amfe-flexible": "^2.2.1",
"axios": "^1.1.3",
"core-js": "^2.6.5",
@ -22,6 +23,8 @@
"postcss-px2rem-exclude": "^0.0.6",
"semver": "^7.4.0",
"v-fit-columns": "^0.2.0",
"video.js": "^8.0.4",
"videojs-contrib-hls": "^5.15.0",
"vue": "^2.6.10",
"vue-pdf": "4.2.0",
"vue-router": "^3.0.3",

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,44 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>H5 PC测试</title>
<link href="css/video-js.css" rel="stylesheet">
<script src="js/video.min.js"></script>
<script src="js/videojs-contrib-hls.js"></script>
<style>
body{background-color: #191919}
#example-video{
margin: 0 auto;
width: 80%;
height:600px;
}
</style>
</head>
<body>
<div>
<h1 style="color: white; text-align: center;">HLS测试</h1>
<video id="example-video" class="video-js" autoplay="autoplay" controls preload="auto"
width="600" height="800" >
<!-- <source src="http://193.112.101.157:8080/hls/test.m3u8" type="application/x-mpegURL" /> -->
<!-- <source src="http://60.190.97.190:83/openUrl/LpSobcI/live.m3u8" type="application/x-mpegURL"> -->
<source :src="url" type="application/x-mpegURL">
</video>
</div>
</body>
<script>
window.onload = function() {
var player = videojs('example-video');
player.play();
},
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^'']*)(&|$)", "i");
// var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
console.log();
</script>
</html>

1
public/camera/js/hls.min.js vendored Normal file

File diff suppressed because one or more lines are too long

8
public/camera/js/video.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

1
public/camera/js/videojs-ie8.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -87,10 +87,16 @@
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
function getCameraList(name) {
var reg = new RegExp("(^|&)" + name + "=([^'']*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
// var videoBack = 'ws://192.168.105.213:9999/play?stream=rtsp://10.16.56.21:554/openUrl/EKndeuY?beginTime=20220709T141558&endTime=20220710T141558'
// $('#player').attr('video-url',videoBack);
$('#player').attr('video-url',getQueryString('src'));
// $('#player').attr('video-url',"video.mp4");
// $('#player').attr('video-url',"http://138.227.200.2:83/openUrl/GNzyMUM/live.m3u8");
// 截图
// function snapshot(){
// if(document.getElementsByClassName("easy-video-player-inner")[0]){
@ -114,8 +120,10 @@
//点击事件
$('#appc').click(function(){
let val = getQueryString('src')
let code = getCameraList('code')
window.parent.postMessage({
val
val,
code
}, '*'); // * 通配符 匹配所有地址; content 表示传递过去嵌套iframe页面的数据
})
</script>

View File

@ -28,58 +28,80 @@
</div>
<div class="menu">
<div class="menuList">
<div class="menuBtn" v-for="(item, index) in menuBtn" :key="index" @click="menuChange(index,item.name)" :class="{menuAc : menuAc == index}">
<div
class="menuBtn"
v-for="(item, index) in menuBtn"
:key="index"
@click="menuChange(index, item.name)"
:class="{ menuAc: menuAc == index }"
>
<!-- <img :src="item.icon" :style="{'wdith':menuAc == index ? '75%':'55%','height':menuAc == index ? '85%':'71%'}"/> -->
<img :src="item.icon" :style="{'wdith':menuAc == index ? '75%':'55%','height':menuAc == index ? '85%':'85%'}"/>
<div style="font-size: 0.55rem;margin-top: 5%;">{{ item.name }}</div>
<img
:src="item.icon"
:style="{
wdith: menuAc == index ? '75%' : '55%',
height: menuAc == index ? '85%' : '85%',
}"
/>
<div style="font-size: 0.55rem; margin-top: 5%">{{ item.name }}</div>
</div>
</div>
</div>
<div class="content">
<router-view />
<keep-alive>
<router-view />
</keep-alive>
</div>
</div>
</template>
<script>
import pdf from 'vue-pdf'
import axios from "axios"
import {getData} from './api/index.js'
export default {
data(){
return{
screenWidth:
import pdf from "vue-pdf";
import axios from "axios";
import { getData } from "./api/index.js";
export default {
data() {
return {
screenWidth:
window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth,
time:'',
weekList:['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
week:'',
floorAct:0,
floorList:[
time: "",
weekList: [
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
],
week: "",
floorAct: 0,
floorList: [
{
name:'楼顶',
name: "楼顶",
},
{
name:'F5',
name: "F5",
},
{
name:'F4',
name: "F4",
},
{
name:'F3',
name: "F3",
},
{
name:'F2',
name: "F2",
},
{
name:'F1',
name: "F1",
},
{
name:'B1',
name: "B1",
},
],
menuBtn: [
menuBtn: [
{
name: "首页",
icon: require("./assets/images/shouYe.png"),
@ -105,89 +127,89 @@ import {getData} from './api/index.js'
icon: require("./assets/images/gaoJing.png"),
},
],
menuAc:0, //
timer:null,
}
},
created() {
menuAc: 0, //
timer: null,
};
},
created() {
this.fun();
},
mounted() {
window.goPage = this.goPage()
this.menuChange(0,this.menuBtn[0].name)
let week = new Date(this.$moment().format("YYYY-MM-DD")).getDay()
this.week = this.weekList[week]
window.setInterval(()=>{
this.time = this.$moment().format("YYYY-MM-DD HH:mm:ss")
},100)
const that = this;
window.onresize = () => {
return (() => {
(window.screenWidth =
window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth),
(that.screenWidth = window.screenWidth);
that.fun();
});
};
},
methods:{
//
menuChange(index,name){
this.goPage(name)
this.menuAc = index
this.menuBtn.forEach((item,index) => {
mounted() {
window.goPage = this.goPage();
this.menuChange(0, this.menuBtn[0].name);
let week = new Date(this.$moment().format("YYYY-MM-DD")).getDay();
this.week = this.weekList[week];
window.setInterval(() => {
this.time = this.$moment().format("YYYY-MM-DD HH:mm:ss");
}, 100);
const that = this;
window.onresize = () => {
return () => {
(window.screenWidth =
window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth),
(that.screenWidth = window.screenWidth);
that.fun();
};
};
},
methods: {
//
menuChange(index, name) {
this.goPage(name);
this.menuAc = index;
this.menuBtn.forEach((item, index) => {
if (index == 0) {
item.icon = require("./assets/images/shouYe.png")
}else if (index == 1) {
item.icon = require("./assets/images/faTing.png")
}else if (index == 2) {
item.icon = require("./assets/images/jieNeng.png")
}else if (index == 3) {
item.icon = require("./assets/images/anFang.png")
}else if (index == 4) {
item.icon = require("./assets/images/yunWei.png")
}else if (index == 5) {
item.icon = require("./assets/images/gaoJing.png")
item.icon = require("./assets/images/shouYe.png");
} else if (index == 1) {
item.icon = require("./assets/images/faTing.png");
} else if (index == 2) {
item.icon = require("./assets/images/jieNeng.png");
} else if (index == 3) {
item.icon = require("./assets/images/anFang.png");
} else if (index == 4) {
item.icon = require("./assets/images/yunWei.png");
} else if (index == 5) {
item.icon = require("./assets/images/gaoJing.png");
}
});
if (index == 0) {
this.menuBtn[index].icon = require("./assets/images/shouYeAc.png")
this.$router.push('/')
}else if (index == 1) {
this.menuBtn[index].icon = require("./assets/images/faTingAc.png")
this.$router.push('court')
}else if (index == 2) {
this.menuBtn[index].icon = require("./assets/images/jieNengAc.png")
this.$router.push('energySaving')
}else if (index == 3) {
this.menuBtn[index].icon = require("./assets/images/anFangAc.png")
this.$router.push('security')
}else if (index == 4) {
this.menuBtn[index].icon = require("./assets/images/yunWeiAc.png")
this.$router.push('operationMaintenance')
}else if (index == 5) {
this.menuBtn[index].icon = require("./assets/images/gaoJingAc.png")
this.$router.push('alarm')
this.menuBtn[index].icon = require("./assets/images/shouYeAc.png");
this.$router.push("/");
} else if (index == 1) {
this.menuBtn[index].icon = require("./assets/images/faTingAc.png");
this.$router.push("court");
} else if (index == 2) {
this.menuBtn[index].icon = require("./assets/images/jieNengAc.png");
this.$router.push("energySaving");
} else if (index == 3) {
this.menuBtn[index].icon = require("./assets/images/anFangAc.png");
this.$router.push("security");
} else if (index == 4) {
this.menuBtn[index].icon = require("./assets/images/yunWeiAc.png");
this.$router.push("operationMaintenance");
} else if (index == 5) {
this.menuBtn[index].icon = require("./assets/images/gaoJingAc.png");
this.$router.push("alarm");
}
},
goPage(name){
console.log(name)
goPage(name) {
console.log(name);
},
//
floorChange(index){
this.floorAct = index
},
// html 使rem
//
floorChange(index) {
this.floorAct = index;
},
// html 使rem
fun() {
const that = this;
var htmlobj = document.getElementsByTagName("html")[0];
htmlobj.style.fontSize = (that.screenWidth / 1920) * 20 + "px";
}
},
watch: {
},
watch: {
screenWidth(val) {
// resize使
if (!this.timer) {
@ -200,16 +222,15 @@ import {getData} from './api/index.js'
}, 400);
}
},
},
components: {
},
}
components: {},
};
</script>
<style lang="less">
/*将大屏设置为1920*1080,设置缩放的方向*/
#app {
font-family:'微软雅黑' ;
font-family: "微软雅黑";
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
@ -217,7 +238,6 @@ import {getData} from './api/index.js'
height: 1080px;
transition: all 0.2s linear;
transform-origin: left top;
}
</style>
<style lang="less" scoped>
@ -316,19 +336,19 @@ import {getData} from './api/index.js'
// width: 15%;
// height: 100%;
width: 15%;
height: 61%;
height: 61%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
color: white;
}
.menuAc{
color: rgb(0,229,189);
.menuAc {
color: rgb(0, 229, 189);
// width: 15%;
// height: 100%;
width: 15%;
height: 61%;
width: 15%;
height: 61%;
display: flex;
flex-direction: column;
align-items: center;

7
src/api/haikang.js Normal file
View File

@ -0,0 +1,7 @@
import axios from 'axios'
//根据等级获取报警数据
export const getHikvision = (data) => {
return axios.post('/video/cameras/hikvision/',
data
)
};

View File

@ -33,9 +33,9 @@ export const getBuildinginfos = (params) => {
};
// 获取分项用能信息接口
export const getSubitemList = (data) => {
return axios.post('ecs-server/services/ecm/subitemList', {
return axios.post('ecs-server/services/ecm/subitemList',
data
})
)
};
// 获取所有设备信息
export const getAllDevices = (params) => {
@ -45,13 +45,14 @@ export const getAllDevices = (params) => {
};
// 获取设备实时数据信息
export const getRealData = (data) => {
return axios.post('ecs-server/services/getRealData', {
return axios.post('ecs-server/services/getRealData',
data
})
)
};
// 获取区域用能数据信息
export const getAreaList = (data) => {
return axios.post('ecs-server/services/ecm/areaList', {
return axios.post('ecs-server/services/ecm/areaList',
data
})
// headers:{'Content-Type':'application/json;charset=utf-8'}
)
};

View File

@ -37,7 +37,7 @@ class mqttHandle {
const { host, port, endpoint, ...options } = this.connect;
console.log("this.connect.host", this.connect.host)
// const connectUrl = 'ws://138.227.111.141:8083/mqtt';
const connectUrl = 'ws://172.16.1.253:1884/mqtt';
const connectUrl = 'ws://138.227.208.100:1884/mqtt';
// const connectUrl = `ws://${this.connect.host}:${this.connect.port}`;
// if (!client.connected) {
// client.on('connect', function () {

101
src/views/camera/camera.vue Normal file
View File

@ -0,0 +1,101 @@
<template>
<div class="Camera">
<video
:ref="'video' + videoId"
:id="'video' + videoId"
class="video-js vjs-default-skin"
width="100%"
height="100%"
object-fit:cover
preload="auto"
style="overflow: hidden;"
>
<source :src="videoUrlList" type="application/x-mpegURL" />
</video>
</div>
</template>
<script>
import videojs from "video.js";
import "videojs-contrib-hls";
import "@videojs/http-streaming";
import "video.js/dist/video-js.min.css";
export default {
name:'camera',
props: {
videoUrl: {
type: String,
default: "",
},
id: {
type: Number,
default: 0,
},
},
data() {
return {
videoUrlList:'',
videoId : 0,
};
},
mounted(){
this.videoId = this.id
},
watch: {
videoUrl: {
deep: true,
handler(newVal) {
this.$nextTick(()=>{
this.clickSurveillance(newVal)
})
}
},
id: {
deep: true,
handler(newVal,oldVal) {
this.videoId = newVal
}
},
},
methods: {
//
clickSurveillance(newVal) {
this.player = null
let that = this
//
setTimeout(() => {
this.player = videojs(
'video'+this.videoId,
{
bigPlayButton: false,
controlBar: false,
notSupportedMessage: "此视频暂无法播放,请稍后再试",
},
function () {
this.play();
}
);
//
this.videoUrlList = newVal;
this.player.src(this.videoUrlList);
videojs('video' + this.videoId).ready(function () {
this.player = this;
this.player.play();
});
}, 500);
},
//
closeVideo() {
this.player.dispose();
},
},
};
</script>
<style lang="less" scoped>
.video-js{
width: 100%;
height: 100%;
}
</style>

View File

@ -0,0 +1,89 @@
<template>
<div class="Camera">
<video
ref="video"
id="video"
class="video-js vjs-default-skin"
width="100%"
height="100%"
object-fit:cover
preload="auto"
style="overflow: hidden;"
>
<source :src="videoUrlList" type="application/x-mpegURL" />
</video>
</div>
</template>
<script>
import videojs from "video.js";
import "videojs-contrib-hls";
import "@videojs/http-streaming";
import "video.js/dist/video-js.min.css";
export default {
name:'cameraBig',
props: {
cameraBig:{
type: String,
default: "",
},
},
data() {
return {
videoUrlList:'',
};
},
mounted(){
this.clickSurveillance(this.cameraBig)
},
watch: {
// cameraBig: {
// deep: true,
// handler(newVal) {
// console.log(newVal,'wwwwwwwwww');
// this.clickSurveillance(newVal)
// }
// },
},
methods: {
//
clickSurveillance(newVal) {
let that = this
//
setTimeout(() => {
this.player = videojs(
'video',
{
bigPlayButton: false,
controlBar: false,
notSupportedMessage: "此视频暂无法播放,请稍后再试",
},
function () {
this.play();
}
);
//
this.videoUrlList = newVal;
this.player.src(this.videoUrlList);
videojs('video').ready(function () {
this.player = this;
this.player.play();
});
}, 400);
},
//
closeVideo() {
console.log('关闭');
this.player.dispose();
},
},
};
</script>
<style lang="less" scoped>
.video-js{
width: 100%;
height: 100%;
}
</style>

View File

@ -1,3 +1,5 @@
const { color } = require("echarts")
<template>
<div class="energy">
<div class="left">
@ -35,7 +37,7 @@
>
<div v-for="(i, k) in item" :key="k" class="equipmentEnergyChild">
<div class="equipmentList">
<span>{{ i.count }}</span>
<span>{{ i.data }}</span>
<span style="color: rgb(225, 177, 25); font-size: 0.4rem"
>KWH</span
>
@ -350,19 +352,19 @@ export default {
{
name: "今日发电量",
icon: require("../assets/images/jieNengImg/energy.png"),
count: "",
count: "0",
unit: "kWh",
},
{
name: "总发电量",
icon: require("../assets/images/jieNengImg/energy.png"),
count: "",
count: "0",
unit: "kWh",
},
{
name: "有功功率",
icon: require("../assets/images/jieNengImg/power.png"),
count: "",
count: "0",
unit: "kWh",
},
{
@ -374,7 +376,7 @@ export default {
{
name: "运行时间",
icon: require("../assets/images/jieNengImg/runTime.png"),
count: "",
count: "0",
unit: "h",
},
{
@ -389,25 +391,28 @@ export default {
alarmFirstLevel:[],
alarmSecondLevel:[],
alarmThirdLevel:[],
equipmentList2: [],
};
},
mounted() {
this.getAllDevicesInfo();
window.setInterval(() => {
this.getAllDevicesInfo();
}, 10000);
this.getMqttData()
window.alarmSecondLevel= this.alarmSecondLevel
window.alarmThirdLevel= this.alarmThirdLevel
window.alarmAllLevel= this.alarmAllLevel
this.changeWarn(0);
//
for (let i = 0; i < this.equipmentList.length; i += 8) {
this.equipmentList1.push(this.equipmentList.slice(i, i + 8));
}
// for (let i = 0; i < this.equipmentList.length; i += 8) {
// this.equipmentList1.push(this.equipmentList.slice(i, i + 8));
// }
// this.calculateEcharts();
this.getQOQ()
this.getYOY()
this.calculateEchartsTwo();
// window.createMqtt = this.createMqtt();
this.getAllDevicesInfo();
},
watch: {
alarmFirstLevel(val) {
@ -434,62 +439,13 @@ export default {
//
getQOQ() {
let dataList = {
buildingId: "79",
pbuildingId: "79",
customerId: "12345678",
date: this.$moment().format("YYYYMM"),
dateType: "2",
meterType: "1",
pbuildingId: "-1",
// pbuildingId: "-1",
};
//
// let resData = {
// values: [
// {
// dateDetail: "13",
// val: 380.29,
// tqVal: 0,
// hqVal: 0,
// },
// {
// dateDetail: "14",
// val: 0.18,
// tqVal: 0,
// hqVal: 380.29,
// },
// {
// dateDetail: "26",
// val: 70.31,
// tqVal: 0,
// hqVal: 0.18,
// },
// {
// dateDetail: "27",
// val: 12.02,
// tqVal: 0,
// hqVal: 70.31,
// },
// {
// dateDetail: "28",
// val: 18.3,
// tqVal: 0,
// hqVal: 12.02,
// },
// {
// dateDetail: "29",
// val: 7.88,
// tqVal: 0,
// hqVal: 18.3,
// },
// ],
// child: [
// {
// val: 489.02,
// buildName: "",
// buildId: 79,
// },
// ],
// };
// this.calculateEcharts(resData.child)
getAreaList(dataList).then((res)=>{
this.calculateEcharts(res.data.data.child);
})
@ -504,58 +460,9 @@ export default {
meterType: "1",
pbuildingId: "-1",
};
//
// let resData = {
// values: [
// {
// dateDetail: "13",
// val: 380.29,
// tqVal: 0,
// hqVal: 0,
// },
// {
// dateDetail: "14",
// val: 0.18,
// tqVal: 0,
// hqVal: 380.29,
// },
// {
// dateDetail: "26",
// val: 70.31,
// tqVal: 0,
// hqVal: 0.18,
// },
// {
// dateDetail: "27",
// val: 12.02,
// tqVal: 0,
// hqVal: 70.31,
// },
// {
// dateDetail: "28",
// val: 18.3,
// tqVal: 0,
// hqVal: 12.02,
// },
// {
// dateDetail: "29",
// val: 7.88,
// tqVal: 0,
// hqVal: 18.3,
// },
// ],
// child: [
// {
// val: 489.02,
// buildName: "",
// buildId: 79,
// },
// ],
// };
// this.calculateEchartsTwo(resData.values)
//
getAreaList(dataList).then((res)=>{
this.calculateEcharts(res.data.data.values);
this.calculateEchartsTwo(res.data.data.values);
})
},
// //mqtt
@ -615,33 +522,24 @@ export default {
},
// mqtt
getDataByMqtt(url, topic) {
const clientId = "test_id_" + String(new Date().getTime()); //
const host = url; // urlws://broker.emqx.io:8083/mqtt
const clientId = Number(new Date()).toString(); //
// const host = url; // urlws://broker.emqx.io:8083/mqtt
const options = {
//
// IP
// host: host,
// port: port,
keepalive: 60, // 60s0
username: 'test', //
password: 1234, //
clientId: clientId, // ID
protocolId: "MQTT",
protocolVersion: 4,
clean: true, // false线QoS12
reconnectPeriod: 2000, // 1000
connectTimeout: 30 * 1000, // CONNACK
will: {
// Broker
topic: topic, //
payload: "[MQTT-TEST] 遗嘱消息:连接异常断开!", //
qos: 0, // QoS(Quality of Service)QoS0QoS11QoS21
retain: false, //
},
endpoint: "/mqtt",
clean: true, //
cleanSession: true,
connectTimeout: 7000, //
reconnectPeriod: 7000, //
host: '138.227.111.141',
port: '8083',
//
clientId: Number(new Date()).toString(),
// clientId: 'JBFY',
username: "admin",
password: "123456",
};
if (this.mqttClient == undefined) {
this.mqttClient = mqtt.connect(host, options); //
this.mqttClient = mqtt.connect(url, options); //
// const client = mqtt.connect(host, options); //
// const client = mqtt.connect(host) //
//
@ -655,15 +553,9 @@ export default {
});
//
this.mqttClient.on("connect", () => {
// console.log(
// "[MQTT-TEST] ID: " + this.models[cIdNum].cName
// );
});
//
this.mqttClient.on("message", (topic, message, packet) => {
console.log(
`[MQTT-TEST] 从主题 "${topic}" 收到的内容: ${message.toString()}`,
new Date());
//
let that = this;
if (topic.indexOf("device/publish/FB80") != -1) {
@ -694,207 +586,6 @@ export default {
},
//
getAllDevicesInfo() {
//
// let allDevicesInfo = [
// {
// gatwayId: "1",
// metername: "A-VZCP2-2",
// meteraddress: "7",
// installtime: 1681363621,
// metercode: "320100A208001002",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP2-3",
// meteraddress: "8",
// installtime: 1681363633,
// metercode: "320100A208001003",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP2-4",
// meteraddress: "9",
// installtime: 1681363646,
// metercode: "320100A208001004",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP2-5",
// meteraddress: "10",
// installtime: 1681363658,
// metercode: "320100A208001005",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP1-1",
// meteraddress: "1",
// installtime: 1681363536,
// metercode: "320100A208001101",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP1-2",
// meteraddress: "2",
// installtime: 1681363554,
// metercode: "320100A208001102",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP1-3",
// meteraddress: "3",
// installtime: 1681363569,
// metercode: "320100A208001103",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP1-4",
// meteraddress: "4",
// installtime: 1681363584,
// metercode: "320100A208001104",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-FACP1-5",
// meteraddress: "5",
// installtime: 1681363597,
// metercode: "320100A208001105",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-FACP2-6",
// meteraddress: "11",
// installtime: 1681363670,
// metercode: "320100A208001006",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "2",
// metername: "C1-04ACP1-1",
// meteraddress: "1",
// installtime: 1681363682,
// metercode: "320100A208003001",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "2",
// metername: "C1-04ACP1-2",
// meteraddress: "1",
// installtime: 1681363692,
// metercode: "320100A208003002",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "2",
// metername: "C1-04ACP1-3",
// meteraddress: "1",
// installtime: 1681363704,
// metercode: "320100A208003003",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "2",
// metername: "C1-04ACP1-4",
// meteraddress: "1",
// installtime: 1681363714,
// metercode: "320100A208003004",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "2",
// metername: "C1-04ACP1-5",
// meteraddress: "1",
// installtime: 1681363725,
// metercode: "320100A208003005",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "1",
// metername: "A-VZCP2-1",
// meteraddress: "6",
// installtime: 1681363608,
// metercode: "320100A208001001",
// meterstatus: "1",
// metermodel: "MODBUS_ZFY",
// },
// {
// gatwayId: "2",
// metername: "1",
// meteraddress: "1",
// installtime: 1681279847,
// metercode: "320100A208003006",
// meterstatus: "1",
// metermodel: "188_ZFY",
// },
// {
// gatwayId: "2",
// metername: "2",
// meteraddress: "1",
// installtime: 1681279855,
// metercode: "320100A208003007",
// meterstatus: "1",
// metermodel: "188_ZFY",
// },
// ];
// this.equipmentList = Object.keys(allDevicesInfo).map((item, index) => {
// return {
// name: allDevicesInfo[index].metername,
// code: allDevicesInfo[index].metercode,
// };
// });
// let realInfo = [
// {
// collectType: "1",
// idata: "1579.53",
// id: "320100A208001002",
// },
// {
// collectType: "1",
// idata: "669.48",
// id: "320100A208001003",
// },
// {
// collectType: "1",
// idata: "341.37",
// id: "320100A208001004",
// },
// ];
// let realData = [];
// for (let i = 0; i < this.equipmentList.length; i++) {
// realInfo.forEach((item, index) => {
// if (this.equipmentList[i].code == item.id) {
// realData.push({
// data: item.idata,
// name: this.equipmentList[i].name,
// value: "",
// });
// }
// });
// }
// console.log(this.equipmentList, "=================", realData);
//
let allDevicesCode = [];
getAllDevices().then((res) => {
@ -908,28 +599,32 @@ export default {
);
res.data.dataResults.forEach((item, index) => {
allDevicesCode.push(item.metercode);
getRealData({
metercodes: allDevicesCode,
}).then((response) => {
console.log(response, "实时设备数据");
for (let i = 0; i < this.equipmentList.length; i++) {
response.data.dataResults.forEach((is, k) => {
if (this.equipmentList[i].code == is.id) {
this.equipmentList.push({
data: item.idata,
name: this.equipmentList[i].name,
value: "",
});
}
});
}
});
});
console.log(this.equipmentList, "设备用能统计");
getRealData({
metercodes: allDevicesCode,
}).then((response) => {
let resList = []
// console.log(allDevicesCode,response.data.dataResults, "ssssssssssss");
for (const key in response.data.dataResults) {
resList = response.data.dataResults[1]
}
for (let i = 0; i < this.equipmentList.length; i++) {
resList.forEach((is, k) => {
if (this.equipmentList[i].code == is.id) {
this.equipmentList2.push({
data: parseInt(is.idata),
name: this.equipmentList[i].name,
value: "",
});
}
});
}
//
for (let i = 0; i < this.equipmentList.length; i += 8) {
this.equipmentList1.push(this.equipmentList.slice(i, i + 8));
for (let i = 0; i < this.equipmentList2.length; i += 8) {
this.equipmentList1.push(this.equipmentList2.slice(i, i + 8));
}
});
});
},
//
@ -1030,22 +725,12 @@ export default {
});
},
calculateEcharts(val) {
// console.log(val,'=================s');
let imgSrc = "/img/car.png";
let chartData = [
{
value: 42,
name: "主楼",
},
{
value: 24,
name: "辅楼",
},
];
let chartData = [];
chartData = Object.keys(val).map((item,index)=>{
return {value:val[item].val,name:val[item].buildName}
})
let colorList = ["red", "rgb(255,122,0)"];
let colorList = ["red", "rgb(255,122,0)","rgb(3, 255, 150)","rgb(0,215,245)"];
let sum = chartData.reduce((per, cur) => per + cur.value, 0);
let gap = (1 * sum) / 100;
let pieData1 = [];
@ -1066,7 +751,6 @@ export default {
},
});
pieData1.push(gapData);
//
pieData2.push({
...chartData[i],
@ -1243,8 +927,8 @@ export default {
val.forEach((item,index) => {
dataX.push(item.dateDetail)
tqData.push(item.tqVal)
bqData.push(item.val)
tbData.push(item.tqVal)
bqData.push(item.hqVal)
tbData.push(item.val)
});
var myChart = this.$echarts.init(
document.getElementById("calculateEchartsTwo")
@ -1255,8 +939,9 @@ export default {
grid: { containLabel: true, top: 30, right: 15, bottom: 0, left: 15 },
legend: {
show: true,
data: ["同期", "本期", "同比"],
textStyle: { fontSize: "0.9rem", color: "#ffffff" },
// data: ["", "", ""],
data: ["同期", "环期", "用量数值"],
textStyle: { fontSize: "0.7rem", color: "#ffffff" },
},
tooltip: {
trigger: "axis",
@ -1273,7 +958,7 @@ export default {
show: false,
},
axisLabel: {
interval: 0,
// interval: 0,
show: true,
fontSize: "0.9rem",
color: "#ffffff",
@ -1282,6 +967,7 @@ export default {
},
yAxis: [
{
name:'单位kWh',
axisLine: { show: false },
axisTick: { show: false },
axisLabel: {
@ -1289,11 +975,15 @@ export default {
fontSize: "0.9rem",
color: "#ffffff",
fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN",
formatter: "{value}%",
formatter: "{value}",
},
splitLine: { show: false },
},
{
name:'比率',
textStyle:{
color:'#fff'
},
axisLine: { show: false },
axisTick: { show: false },
axisLabel: {
@ -1301,7 +991,7 @@ export default {
fontSize: "0.9rem",
color: "#ffffff",
fontFamily: "SourceHanSansCN-Normal, SourceHanSansCN",
formatter: "{value} %",
formatter: "{value}",
},
splitLine: { show: false },
},
@ -1326,7 +1016,7 @@ export default {
data: tqData,
},
{
name: "期",
name: "期",
type: "bar",
barWidth: "25%",
showBackground: true,
@ -1350,7 +1040,7 @@ export default {
data: bqData,
},
{
name: "同比",
name: "用量数值",
type: "line",
yAxisIndex: 1,
itemStyle: {
@ -1676,7 +1366,7 @@ export default {
background: url("../assets/images/jieNengImg/energyBack.png") no-repeat;
background-size: 100% 100%;
color: #fff;
font-size: 1.3rem;
font-size: 1rem;
font-weight: 500;
display: flex;
flex-direction: column;

View File

@ -30,7 +30,7 @@
v-for="(item, index) in wisdomMonArr"
:key="index"
>
<div style="width: 100%;font-size: 0.6rem;">
<div style="width: 100%; font-size: 0.6rem">
<span>{{ item.name }}:</span>
<span style="color: rgb(225, 177, 25); margin-left: 5%">{{
item.count
@ -79,7 +79,7 @@
flex-direction: column;
align-items: flex-start;
margin-left: 3%;
width:100%
width: 100%;
"
>
<span>报警时间:{{ item.time }}</span>
@ -88,12 +88,11 @@
display: flex;
justify-content: space-between;
margin-top: 2%;
width:100%
width: 100%;
"
>
<span>报警原因:{{ item.cause }}</span>
<span style="margin-right:5%">风险等级:{{ item.risk }}</span
>
<span style="text-align: left">报警原因:{{ item.cause }}</span>
<span style="margin-right: 5%">风险等级:{{ item.risk }}</span>
</div>
</div>
</div>
@ -211,35 +210,59 @@
@click="changeCamera(item.video)"
>
<!-- <img :src="item.icon" style="width: 100%; height: 100%" /> -->
<iframe
:src="item.video+'video.mp4'"
<!-- <iframe
:src="item.video"
ref="iframeRef"
frameborder="0"
style="width: 100%; height: 100%"
></iframe>
></iframe> -->
<camera
style="width: 100%; height: 100%"
:videoUrl="item.video"
:id="index"
/>
</div>
</div>
</div>
</div>
<div class="camersBig" v-show="cameraBigShow">
<div class="camersBig" v-if="cameraBigShow">
<!-- <img :src="cameraBig" style="width:100%;height:100%"/> -->
<iframe
<!-- <iframe
:src="cameraBig"
ref="iframeRef"
frameborder="0"
style="width: 100%; height: 100%"
></iframe>
></iframe> -->
<cameraBig
style="width: 100%; height: 100%"
:cameraBig="cameraBigUrl"
ref="camersBig"
/>
<div class="close" @click="closeCamer"></div>
<div class="remoteControl">
<img src="../assets/images/add.png" style="width:20%;height:24%;cursor: pointer;z-index: 99"/>
<img src="../assets/images/reduce.png" style="width:20%;height:24%;cursor: pointer;z-index: 99"/>
<img
src="../assets/images/add.png"
style="width: 20%; height: 24%; cursor: pointer; z-index: 99"
@click="addZoom"
/>
<img
src="../assets/images/reduce.png"
style="width: 20%; height: 24%; cursor: pointer; z-index: 99"
@click="reduceZoom"
/>
</div>
<div class="remoteControl1">
<img src="../assets/images/leftBtn.png" style="width:20%;height:24%;cursor: pointer;"/>
<img src="../assets/images/rightBtn.png" style="width:20%;height:24%;cursor: pointer;"/>
</div>
<img
src="../assets/images/leftBtn.png"
style="width: 20%; height: 24%; cursor: pointer"
/>
<img
src="../assets/images/rightBtn.png"
style="width: 20%; height: 24%; cursor: pointer"
/>
</div>
</div>
</div>
<!-- </div> -->
</template>
@ -250,6 +273,9 @@ import {
getBuildinginfos,
getAreaList,
} from "../api/index";
import { getHikvision } from "../api/haikang";
import camera from "./camera/camera.vue";
import cameraBig from "./camera/cameraBig.vue";
export default {
data() {
return {
@ -348,22 +374,39 @@ export default {
value: "1",
},
],
cameraList: [], //
cameraBig: "",
cameraList: [
{
video: "",
},
{
video: "",
},
{
video: "",
},
{
video: "",
},
], //
cameraBigUrl: "",
cameraBigShow: false,
buildingList: [],
alarmAllLevel:[],
alarmFirstLevel:[],
alarmSecondLevel:[],
alarmThirdLevel:[],
alarmAllLevel: [],
alarmFirstLevel: [],
alarmSecondLevel: [],
alarmThirdLevel: [],
camersCode: "",
};
},
mounted() {
this.getCamera();
//id
this.getBuildingData();
let that = this;
window.alarmFirstLevel = this.alarmFirstLevel
window.alarmSecondLevel= this.alarmSecondLevel
window.alarmThirdLevel= this.alarmThirdLevel
window.alarmAllLevel= this.alarmAllLevel
window.alarmFirstLevel = this.alarmFirstLevel;
window.alarmSecondLevel = this.alarmSecondLevel;
window.alarmThirdLevel = this.alarmThirdLevel;
window.alarmAllLevel = this.alarmAllLevel;
this.warningOne();
this.warningTwo();
this.maintenanceLeft();
@ -371,36 +414,60 @@ export default {
// this.energyEcharts();
this.selectDataList(this.selectDate);
// window.createMqtt = this.createMqtt();
window.addEventListener("message", function (e) {
let val = e.data.val;
if (val != null) {
that.changeCamera("video/video.html?src=" + e.data.val);
}
});
let camera = [
{
icon: require("../assets/images/camera.png"),
video: "video/video.html?src=",
},
{
icon: require("../assets/images/camera.png"),
video: "video/video.html?src=",
},
{
icon: require("../assets/images/camera.png"),
video: "video/video.html?src=",
},
{
icon: require("../assets/images/camera.png"),
video: "video/video.html?src=",
},
];
setTimeout(() => {
this.cameraList = camera;
}, 1000);
// window.addEventListener("message", function (e) {
// let val = e.data.val;
// if (val != null) {
// that.changeCamera("video/video.html?src=" + e.data.val);
// that.camersCode = e.data.code
// }
// });
// let camera = [
// {
// icon: require("../assets/images/camera.png"),
// video: "video/video.html?src=",
// },
// {
// icon: require("../assets/images/camera.png"),
// video: "video/video.html?src=",
// },
// {
// icon: require("../assets/images/camera.png"),
// video: "video/video.html?src=",
// },
// {
// icon: require("../assets/images/camera.png"),
// video: "video/video.html?src=",
// },
// ];
// setTimeout(() => {
// this.cameraList = camera;
// }, 1000);
this.warnSelect(0);
//id
this.getBuildingData();
},
watch: {
alarmAllLevel(val) {
// resize使
console.log("alarmAllLevel", val);
this.upmqttData(val);
},
alarmFirstLevel(val) {
// resize使
console.log("alarmFirstLevel", val);
if (val.length != 0) {
this.upmqttData(val);
}
},
alarmSecondLevel(val) {
// resize使
console.log("alarmSecondLevel", val);
this.upmqttData(val);
},
alarmThirdLevel(val) {
// resize使
console.log("alarmThirdLevel", val);
this.upmqttData(val);
},
},
watch: {
alarmAllLevel(val) {
@ -430,126 +497,131 @@ export default {
},
},
methods: {
//
addZoom() {
console.log(this.camersCode, "sssssssssssss");
let dataList = {
path: "/artemis/api/video/v1/ptzs/controlling",
data: {
cameraIndexCode: this.camersCode,
action: "0",
command: "ZOOM_IN",
speed: "50",
},
};
getHikvision(dataList).then((res) => {
console.log(res, "=============");
});
},
//
reduceZoom() {
console.log(this.camersCode, "sssssssssssss");
let dataList = {
path: "/artemis/api/video/v1/ptzs/controlling",
data: {
cameraIndexCode: this.camersCode,
action: "0",
command: "ZOOM_OUT",
speed: "50",
},
};
getHikvision(dataList).then((res) => {
console.log(res, "=============");
});
},
//
getCamera() {
this.cameraList[0].video =
"https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8";
this.cameraList[1].video =
"https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8";
this.cameraList[2].video =
"http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8";
this.cameraList[3].video =
"http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8";
let pathUrl = "/artemis/api/video/v2/cameras/previewURLs";
let dataList = {
path: pathUrl,
data: {
protocol: "hls",
cameraIndexCode: "620804559ecf4ade8f13b17337ea8bfa",
},
};
getHikvision(dataList).then((res) => {
this.cameraList[0].video =
"video/video.html?src=" +
res.data.result.data.url +
"&code=" +
dataList.data.cameraIndexCode;
});
let dataList1 = {
path: pathUrl,
data: {
protocol: "hls",
cameraIndexCode: "3efe8f887f164548a5db4266590a05ca",
},
};
getHikvision(dataList1).then((res) => {
this.cameraList[1].video =
"video/video.html?src=" +
res.data.result.data.url +
"&code=" +
dataList1.data.cameraIndexCode;
});
let dataList2 = {
path: pathUrl,
data: {
protocol: "hls",
cameraIndexCode: "f103ede0eb2b470f84e26ceec42486bc",
},
};
getHikvision(dataList2).then((res) => {
this.cameraList[2].video =
"video/video.html?src=" +
res.data.result.data.url +
"&code=" +
dataList2.data.cameraIndexCode;
});
let dataList3 = {
path: pathUrl,
data: {
protocol: "hls",
cameraIndexCode: "bf16be84f6f8410c8dca2dfc5369a532",
},
};
getHikvision(dataList3).then((res) => {
this.cameraList[3].video =
"video/video.html?src=" +
res.data.result.data.url +
"&code=" +
dataList3.data.cameraIndexCode;
});
},
//Id
getBuildingData() {
// getBuildinginfos().then((res) => {
//
// this.buildingList = res.data.dataResults
this.buildingList = [
{
name: "江北新区法院",
id: "79",
parentId: "-1",
},
{
name: "辅楼一层水表1",
id: "104",
parentId: "79",
},
{
name: "辅楼一层水表2",
id: "105",
parentId: "79",
},
{
name: "主楼用电",
id: "106",
parentId: "79",
},
{
name: "辅楼用电",
id: "107",
parentId: "79",
},
{
name: "A-FACP1-1",
id: "108",
parentId: "106",
},
{
name: "A-FACP1-2",
id: "109",
parentId: "106",
},
{
name: "A-FACP1-3",
id: "110",
parentId: "106",
},
{
name: "A-FACP1-4",
id: "111",
parentId: "106",
},
{
name: "A-FACP1-5",
id: "112",
parentId: "106",
},
{
name: "A-FACP2-1",
id: "113",
parentId: "106",
},
{
name: "A-FACP2-2",
id: "114",
parentId: "106",
},
{
name: "A-FACP2-3",
id: "116",
parentId: "106",
},
{
name: "A-FACP2-4",
id: "117",
parentId: "106",
},
{
name: "A-FACP2-5",
id: "118",
parentId: "106",
},
{
name: "A-FACP2-6",
id: "119",
parentId: "106",
},
{
name: "C1-04ACP1-1",
id: "120",
parentId: "107",
},
{
name: "C1-04ACP1-2",
id: "121",
parentId: "107",
},
{
name: "C1-04ACP1-3",
id: "122",
parentId: "107",
},
{
name: "C1-04ACP1-4",
id: "123",
parentId: "107",
},
{
name: "C1-04ACP1-5",
id: "124",
parentId: "107",
},
];
this.options = Object.keys(this.buildingList).map((item, index) => {
return {
label: this.buildingList[index].name,
value: this.buildingList[index].id,
parentId: this.buildingList[index].parentId,
};
getBuildinginfos().then((res) => {
//
this.buildingList = res.data.dataResults;
let buildArr = [];
// this.options =
Object.keys(this.buildingList).map((item, index) => {
if (this.buildingList[index].name.indexOf("水") == -1) {
buildArr[buildArr.length] = this.buildingList[index];
}
// return {
// label: buildNameList,
// value: this.buildingList[index].id,
// parentId: this.buildingList[index].parentId,
// };
});
this.options = Object.keys(buildArr).map((item, index) => {
return {
label: buildArr[index].name,
value: this.buildingList[index].id,
parentId: this.buildingList[index].parentId,
};
});
});
// });
},
//
selectDataList(val) {
@ -594,16 +666,18 @@ export default {
};
//
getAreaList(data).then((res) => {
console.log(res.data.data, "sssssssssssssss");
this.energyEcharts(res.data.data);
});
},
//
changeCamera(path) {
this.cameraBig = path;
this.cameraBigUrl = path;
this.cameraBigShow = true;
},
closeCamer() {
this.cameraBigShow = false;
this.$refs.camersBig.closeVideo();
},
//
warnSelect(index) {
@ -655,15 +729,15 @@ export default {
"YYYY-MM-DD HH:mm:ss"
),
cause: val[index].AlarmName,
DeviceType: val[index].DeviceType,
DeviceType: val[index].DeviceType,
risk: val[index].AlarmLevel,
};
});
},
//mqtt
upmqttData(val) {
upmqttData(val) {
let icon = null;
var warnListMqtt = []
var warnListMqtt = [];
warnListMqtt = Object.keys(val).map((item, index) => {
if (val[index].AlarmLevel == 1) {
val[index].AlarmLevel = "一级";
@ -686,10 +760,10 @@ export default {
risk: val[index].AlarmLevel,
};
});
console.log("warnListMqtt",warnListMqtt)
for (let i = 0; i < warnListMqtt.length; i++) {
this.warnList.splice(0,0,warnListMqtt[i]);
}
console.log("warnListMqtt", warnListMqtt);
for (let i = 0; i < warnListMqtt.length; i++) {
this.warnList.splice(0, 0, warnListMqtt[i]);
}
},
//
warningOne() {
@ -1374,7 +1448,10 @@ export default {
}
},
},
components: {},
components: {
camera,
cameraBig,
},
};
</script>
@ -1512,10 +1589,10 @@ export default {
justify-content: space-around;
align-items: center;
.btnList {
// width: 13%;
// height: 38%;
// width: 13%;
// height: 38%;
width: 17%;
height: 41%;
height: 41%;
background: url(../assets/images/warnBtn.png) no-repeat;
background-size: 100% 100%;
color: #fff;
@ -1526,10 +1603,10 @@ export default {
font-size: 0.7rem;
}
.btnListAc {
// width: 13%;
// height: 38%;
width: 17%;
height: 41%;
// width: 13%;
// height: 38%;
width: 17%;
height: 41%;
background: url(../assets/images/warnBtnAc.png) no-repeat;
background-size: 100% 100%;
color: #fff;
@ -1546,9 +1623,8 @@ export default {
background: url(../assets/images/warnDottedLine.png) no-repeat;
background-size: 100% 100%;
overflow: auto;
.warnListContent {
height: 25%;
height: 27%;
width: 100%;
border: 1px dashed #fff;
color: #fff;
@ -1558,7 +1634,7 @@ export default {
align-items: center;
padding-left: 3%;
box-sizing: border-box;
font-size: 0.7rem;
font-size: 0.7rem;
.warnArray {
width: 100%;
display: flex;

View File

@ -4,7 +4,7 @@
<div class="leftOne">
<div class="title">安防统计数据</div>
<!-- <div class="security"> -->
<!-- <img src="../assets/images/anFangAc.png" class="securityImg"/>
<!-- <img src="../assets/images/anFangAc.png" class="securityImg"/>
<div class="securitySupervision">安防监管</div>
<div class="securityCount">
<div
@ -29,7 +29,7 @@
<span>{{ item.count }}</span>
</div>
</div> -->
<el-carousel
<el-carousel
class="security"
:autoplay="true"
trigger="click"
@ -40,23 +40,22 @@
:key="index"
class="equipmentEnergy"
>
<img src="../assets/images/anFangAc.png" class="securityImg"/>
<!-- <div class="securitySupervision">安防监管</div> -->
<div class="securitySupervision">{{item.tit}}</div>
<div class="securityCount">
<div
class="securityList"
v-for="(i, k) in item.security"
:key="k"
>
<span>{{ i.name }}</span>
<span>{{ i.count }}</span>
<img src="../assets/images/anFangAc.png" class="securityImg" />
<!-- <div class="securitySupervision">安防监管</div> -->
<div class="securitySupervision">{{ item.tit }}</div>
<div class="securityCount">
<div
class="securityList"
v-for="(i, k) in item.security"
:key="k"
>
<span>{{ i.name }}</span>
<span>{{ i.count }}</span>
</div>
</div>
</div>
</el-carousel-item>
</el-carousel>
<!-- </div> -->
</div>
<div class="leftTwo">
<div class="title" style="height: 8%">预警视频监控联动</div>
@ -160,8 +159,15 @@
width: 100%;
justify-content: flex-start;
"
>设备内容:<span
style="color: rgb(0, 255, 255); margin-left: 5%"
><span style="white-space: nowrap">设备内容:</span
><span
style="
color: rgb(0, 255, 255);
margin-left: 5%;
display: flex;
justify-content: flex-end;
text-align: left;
"
>{{ item.position }}</span
></span
>
@ -186,68 +192,72 @@
</template>
<script>
import { GetLevelAlarm , getSecurityAlarmCount} from "../api/index";
import { GetLevelAlarm, getSecurityAlarmCount } from "../api/index";
import { getHikvision } from "../api/haikang";
export default {
name: "security",
data() {
return {
securityList: [
{
tit:'摄像头监管',
security:[{
name: "",
count: "",
tit: "摄像头监管",
security: [
{
name: "",
count: "",
},
{
name: "摄像头总数",
count: "609",
},
{
name: "摄像头在线数量",
count: "602",
},
{
name: "摄像头离线数量",
count: "7",
},
{
name: "摄像头报警数",
count: "0",
},
{
name: "摄像头昨日报警数",
count: "0",
},
],
},
{
name: "摄像头总数",
count: "609",
tit: "门禁监管",
security: [
{
name: "",
count: "",
},
{
name: "门禁总数",
count: "609",
},
{
name: "门禁在线数量",
count: "602",
},
{
name: "门禁离线数量",
count: "7",
},
{
name: "门禁今日报警数",
count: "0",
},
{
name: "门禁昨日报警数",
count: "0",
},
],
},
{
name: "摄像头在线数量",
count: "602",
},
{
name: "摄像头离线数量",
count: "7",
},
{
name: "摄像头报警数",
count: "0",
},
{
name: "摄像头昨日报警数",
count: "0",
},
]
},
{
tit:'门禁监管',
security:[{
name: "",
count: "",
},
{
name: "门禁总数",
count: "609",
},
{
name: "门禁在线数量",
count: "602",
},
{
name: "门禁离线数量",
count: "7",
},
{
name: "门禁今日报警数",
count: "0",
},
{
name: "门禁昨日报警数",
count: "0",
},
]
}
],
warnCameraList: [
@ -326,21 +336,43 @@ export default {
status: "已解除",
},
],
alarmFirstLevel:[],
alarmSecondLevel:[],
alarmThirdLevel:[],
alarmFirstLevel: [],
alarmSecondLevel: [],
alarmThirdLevel: [],
};
},
mounted() {
this.getAnfang();
//
this.getFireWarnList()
this.getPoliceList();
this.getFireWarnList();
//
this.getPoliceList()
//
this.getAlarmCount()
window.alarmFirstLevel = this.alarmFirstLevel
window.alarmSecondLevel= this.alarmSecondLevel
window.alarmThirdLevel= this.alarmThirdLevel
this.getAlarmCount();
window.alarmFirstLevel = this.alarmFirstLevel;
window.alarmSecondLevel = this.alarmSecondLevel;
window.alarmThirdLevel = this.alarmThirdLevel;
},
watch: {
alarmFirstLevel(val) {
// resize使
console.log("alarmFirstLevel", val);
if (val.length != 0) {
this.upmqttData(val);
}
},
alarmSecondLevel(val) {
// resize使
console.log("alarmSecondLevel", val);
this.upmqttData(val);
},
alarmThirdLevel(val) {
// resize使
console.log("alarmThirdLevel", val);
this.upmqttData(val);
},
},
watch: {
alarmFirstLevel(val) {
@ -365,11 +397,92 @@ export default {
},
methods: {
//
getAlarmCount(){
getSecurityAlarmCount().then((res)=>{
this.securityList[0].security[4].count = res.data.data.TodayCount
this.securityList[0].security[5].count = res.data.data.YesterdayCount
})
getAlarmCount() {
getSecurityAlarmCount().then((res) => {
this.securityList[0].security[4].count = res.data.data.VideoTodayCount;
this.securityList[0].security[5].count =
res.data.data.VideoYesterdayCount;
this.securityList[1].security[4].count = res.data.data.DoorTodayCount;
this.securityList[1].security[5].count =
res.data.data.DoorYesterdayCount;
});
},
//线线
getAnfang() {
var indexcode = [
"13222435-8646-4006-982a-76febb4dd8a2",
"fd91efcf-9d11-4b3e-ad69-6e6c1069f4ec",
"e3043e94-c8d9-49b2-9627-7a10f15cf079",
"f5790df0-60e9-4a1f-be2f-e75d6331467d",
"05859fa6-6440-401e-950f-37ba61094c4d",
"21ff542a-ca97-4974-88e7-d52408b8a412",
"608d4d1d-a69a-4d07-82da-553914616b1d",
"5b5b43cd-a722-4eb4-b3f2-3b60fd1357ad",
"f524c8df-42f9-4f89-8594-cad8e3cdb37f",
"71ced52a-f04e-4d74-834c-8e329485106b",
"8763ebb7-4bc6-4022-80df-a38804f58d39",
"f349ab39-aa64-4e4f-ae85-585f30321325",
"8ca45d1f-5919-47df-be93-8c6c4efb81a4",
"1223f3b3-3fa3-4df2-b03a-058fcb62b4c9",
"1fc85a1e-1084-4cc2-91a4-ec2b5e74c5a2",
"b7bb3c6c-ceeb-4fc9-a37e-c7d075fd4ede",
"beac672d-7555-49fc-bc97-d873fcc8eb48",
"5a9e819d-af8d-45ea-9a77-bd36a2168e20",
"17e8a2a0-079b-4e70-bde6-24911980e1b2",
"d16fe1ce-4251-4cfb-8316-9380196942e1",
"266a956e-cb4f-47f4-8ab8-ecbbb6f4a3f7",
"a2038008-e1db-4666-8902-c69af1d7cc50",
"9273528b-9fa9-4877-8eb0-1595e3accf83",
"be26abf3-c2dd-41d3-ace1-b8a2006d663c",
"46ba67a9-e4d0-48ab-b837-255bb963860a",
"fe6e6dab-4ec7-47c1-a286-8ff661f8b8f6",
];
let dataList = {
path: "/artemis/api/resource/v2/door/search",
data: {
regionIndexCodes: indexcode,
pageNo: 1,
pageSize: 1000,
},
};
let indexCodeList = [];
getHikvision(dataList).then((res) => {
console.log("getHikvision", res.data.result.data.list);
res.data.result.data.list.forEach((item, index) => {
indexCodeList.push(item.indexCode);
});
let doorStatusList = {
path: "/artemis/api/acs/v1/door/states",
data: {
doorIndexCodes: indexCodeList,
},
};
let doorTotal = 0;
let doorOnLine = 0;
let offLine = 0;
let doorTotalList = [];
let doorOnLineList = [];
let offLineList = [];
getHikvision(doorStatusList).then((res) => {
console.log(res.data.authDoorList, "门禁状态数量");
for (let i = 0; i < res.data.authDoorList.length; i++) {
//
doorTotalList.push(res.data.authDoorList);
if (res.data.authDoorList[i].doorState == 3) {
//线
offLineList.push(res.data.authDoorList[i].doorState);
}
}
//
doorTotal = doorTotalList.length;
//线
offLine = offLineList.length;
//线
doorOnLine = doorTotal - offLine;
console.log(doorTotal, offLine, doorOnLine, "门禁数量==========");
});
});
},
videoChange(index) {
this.warnCameraList.forEach((item, i) => {
@ -379,73 +492,80 @@ export default {
index
].icon = require("../assets/images/anFang/videoAc.png");
},
//
getFireWarnList(){
getFireWarnList() {
let params = {
AlarmLevel: "",
DeviceTypes:'消防'
}
DeviceTypes: "消防",
};
GetLevelAlarm(params).then((res) => {
let icon = null
let icon = null;
this.fireWarnList = Object.keys(res.data.data).map((item, index) => {
if (res.data.data[index].Status == 0) {
res.data.data[index].Status = "未处理";
icon = require("../assets/images/jieNengImg/warnWhite.png")
}else{
icon = require("../assets/images/jieNengImg/warnWhite.png");
} else {
res.data.data[index].Status = "已处理";
icon = require("../assets/images/jieNengImg/warnBlue.png")
icon = require("../assets/images/jieNengImg/warnBlue.png");
}
return {
icon: icon,
time: this.$moment(res.data.data[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"),
time: this.$moment(res.data.data[index].AlarmTime).format(
"YYYY-MM-DD HH:mm:ss"
),
DeviceType: res.data.data[index].DeviceType,
// position: res.data.data[index].DeviceType,
position: res.data.data[index].AlarmName,
// status: res.data.data[index].AlarmLevel,
status: res.data.data[index].Status,
AlarmLevel: res.data.data[index].AlarmLevel,
};
});
});
},
//
getPoliceList(){
getPoliceList() {
let params = {
AlarmLevel: "",
DeviceTypes:'门禁,视频监控'
}
DeviceTypes: "门禁,视频监控",
};
GetLevelAlarm(params).then((res) => {
let icon = null
let icon = null;
this.policeList = Object.keys(res.data.data).map((item, index) => {
if (res.data.data[index].Status == 0) {
res.data.data[index].Status = "未处理";
icon = require("../assets/images/jieNengImg/warnWhite.png")
}else{
icon = require("../assets/images/jieNengImg/warnWhite.png");
} else {
res.data.data[index].Status = "已处理";
icon = require("../assets/images/jieNengImg/warnBlue.png")
icon = require("../assets/images/jieNengImg/warnBlue.png");
}
return {
icon: icon,
time: this.$moment(res.data.data[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"),
time: this.$moment(res.data.data[index].AlarmTime).format(
"YYYY-MM-DD HH:mm:ss"
),
DeviceType: res.data.data[index].DeviceType,
position: res.data.data[index].AlarmName,
position: res.data.data[index].AlarmName,
// status: res.data.data[index].AlarmLevel,
status: res.data.data[index].Status,
AlarmLevel: res.data.data[index].AlarmLevel,
};
});
});
},
//mqtt
upmqttData(val) {
let icon = null
var warnListMqtt = []
//mqtt
upmqttData(val) {
let icon = null;
var warnListMqtt = [];
warnListMqtt = Object.keys(val).map((item, index) => {
if (val[index].Status == 0) {
val[index].Status = "未处理";
icon = require("../assets/images/jieNengImg/warnWhite.png")
}else{
val[index].Status = "已处理";
icon = require("../assets/images/jieNengImg/warnBlue.png")
}
val[index].Status = "未处理";
icon = require("../assets/images/jieNengImg/warnWhite.png");
} else {
val[index].Status = "已处理";
icon = require("../assets/images/jieNengImg/warnBlue.png");
}
if (val[index].AlarmLevel == 1) {
val[index].AlarmLevel = "一级";
} else if (val[index].AlarmLevel == 2) {
@ -453,24 +573,27 @@ export default {
} else if (val[index].AlarmLevel == 3) {
val[index].AlarmLevel = "三级";
}
return {
icon: icon,
time: this.$moment(val[index].AlarmTime).format("YYYY-MM-DD HH:mm:ss"),
position: val[index].AlarmName,
DeviceType: val[index].DeviceType,
status: val[index].Status,
};
return {
icon: icon,
time: this.$moment(val[index].AlarmTime).format(
"YYYY-MM-DD HH:mm:ss"
),
position: val[index].AlarmName,
DeviceType: val[index].DeviceType,
status: val[index].Status,
AlarmLevel: val[index].AlarmLevel,
};
});
console.log("warnListMqtt",warnListMqtt)
for (let i = 0; i < warnListMqtt.length; i++) {
if(warnListMqtt[i].AlarmLevel=='三级'){
this.policeList.splice(0,0,warnListMqtt[i]);
this.getAlarmCount()
}
if(warnListMqtt[i].DeviceType=='消防'){
this.fireWarnList.splice(0,0,warnListMqtt[i]);
}
console.log("warnListMqtt", warnListMqtt);
for (let i = 0; i < warnListMqtt.length; i++) {
if (warnListMqtt[i].AlarmLevel == "三级") {
this.policeList.splice(0, 0, warnListMqtt[i]);
this.getAlarmCount();
}
if (warnListMqtt[i].DeviceType == "消防") {
this.fireWarnList.splice(0, 0, warnListMqtt[i]);
}
}
},
},
components: {},
@ -515,16 +638,16 @@ export default {
justify-content: flex-end;
flex-wrap: wrap;
position: relative;
/deep/ .el-carousel__container {
/deep/ .el-carousel__container {
height: 100%;
width: 100%;
}
/deep/ .el-carousel__indicators--horizontal {
display: none;
}
.securityImg{
.securityImg {
position: absolute;
left:10%;
left: 10%;
}
.securitySupervision {
width: 50%;
@ -623,8 +746,8 @@ export default {
flex-wrap: nowrap;
align-items: center;
justify-content: space-around;
// padding-right: 20%;
padding-right: 5%;
// padding-right: 20%;
padding-right: 5%;
box-sizing: border-box;
color: #fff;
font-size: 0.7rem;
@ -651,6 +774,7 @@ export default {
padding-right: 20%;
box-sizing: border-box;
color: #fff;
font-size: 0.7rem;
}
}
::-webkit-scrollbar {

View File

@ -16,6 +16,7 @@ module.exports = {
proxy: {
'/api': { //代理的名字
target:'http://172.16.1.253:12308/api/',
// target:'http://138.227.208.100:12308/api/',
ws: true,
changeOrigin: true,
pathRewrite:{
@ -31,7 +32,8 @@ module.exports = {
}
},
'/video': { //代理的名字
target:'http://172.16.1.253:12308/api/',
// target:'http://172.16.1.253:12308/api/',
target:'http://138.227.208.100:12307/',
ws: true,
changeOrigin: true,
pathRewrite:{