Commit 6ba2997c authored by ninglx's avatar ninglx

按需求改动超限 & 处理bug

parent 2dc3308f
...@@ -422,19 +422,17 @@ ...@@ -422,19 +422,17 @@
} }
}, },
"node_modules/@babel/helper-string-parser": { "node_modules/@babel/helper-string-parser": {
"version": "7.22.5", "version": "7.24.8",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
"dev": true,
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-validator-identifier": { "node_modules/@babel/helper-validator-identifier": {
"version": "7.22.5", "version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
"integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
"dev": true,
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
...@@ -505,9 +503,12 @@ ...@@ -505,9 +503,12 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.22.10", "version": "7.25.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz",
"integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
"dependencies": {
"@babel/types": "^7.25.6"
},
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
...@@ -1813,13 +1814,12 @@ ...@@ -1813,13 +1814,12 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.22.10", "version": "7.25.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz",
"integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
"dev": true,
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.22.5", "@babel/helper-string-parser": "^7.24.8",
"@babel/helper-validator-identifier": "^7.22.5", "@babel/helper-validator-identifier": "^7.24.7",
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
}, },
"engines": { "engines": {
...@@ -1940,9 +1940,9 @@ ...@@ -1940,9 +1940,9 @@
} }
}, },
"node_modules/@jridgewell/sourcemap-codec": { "node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true "dev": true
}, },
"node_modules/@jridgewell/trace-mapping": { "node_modules/@jridgewell/trace-mapping": {
...@@ -2926,14 +2926,76 @@ ...@@ -2926,14 +2926,76 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/@vue/compiler-core": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.38.tgz",
"integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": {
"@babel/parser": "^7.24.7",
"@vue/shared": "3.4.38",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-core/node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true,
"optional": true,
"peer": true,
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz",
"integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": {
"@vue/compiler-core": "3.4.38",
"@vue/shared": "3.4.38"
}
},
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "2.7.14", "version": "3.4.38",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz",
"integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": { "dependencies": {
"@babel/parser": "^7.18.4", "@babel/parser": "^7.24.7",
"postcss": "^8.4.14", "@vue/compiler-core": "3.4.38",
"source-map": "^0.6.1" "@vue/compiler-dom": "3.4.38",
"@vue/compiler-ssr": "3.4.38",
"@vue/shared": "3.4.38",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.10",
"postcss": "^8.4.40",
"source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz",
"integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.4.38",
"@vue/shared": "3.4.38"
} }
}, },
"node_modules/@vue/component-compiler-utils": { "node_modules/@vue/component-compiler-utils": {
...@@ -3013,6 +3075,14 @@ ...@@ -3013,6 +3075,14 @@
"webpack": ">=4.0.0" "webpack": ">=4.0.0"
} }
}, },
"node_modules/@vue/shared": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.38.tgz",
"integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==",
"dev": true,
"optional": true,
"peer": true
},
"node_modules/@vue/web-component-wrapper": { "node_modules/@vue/web-component-wrapper": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
...@@ -3982,6 +4052,15 @@ ...@@ -3982,6 +4052,15 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"optional": true,
"dependencies": {
"file-uri-to-path": "1.0.0"
}
},
"node_modules/blob.js": { "node_modules/blob.js": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/blob.js/-/blob.js-1.0.1.tgz", "resolved": "https://registry.npmjs.org/blob.js/-/blob.js-1.0.1.tgz",
...@@ -7070,6 +7149,14 @@ ...@@ -7070,6 +7149,14 @@
"node": ">=4.0" "node": ">=4.0"
} }
}, },
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true,
"optional": true,
"peer": true
},
"node_modules/esutils": { "node_modules/esutils": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
...@@ -7526,6 +7613,12 @@ ...@@ -7526,6 +7613,12 @@
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
}, },
"node_modules/file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"optional": true
},
"node_modules/filesize": { "node_modules/filesize": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
...@@ -10025,6 +10118,17 @@ ...@@ -10025,6 +10118,17 @@
"npm": ">=5" "npm": ">=5"
} }
}, },
"node_modules/magic-string": {
"version": "0.30.11",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.11.tgz",
"integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/make-dir": { "node_modules/make-dir": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
...@@ -10503,10 +10607,16 @@ ...@@ -10503,10 +10607,16 @@
"thenify-all": "^1.0.0" "thenify-all": "^1.0.0"
} }
}, },
"node_modules/nan": {
"version": "2.20.0",
"resolved": "https://registry.npmmirror.com/nan/-/nan-2.20.0.tgz",
"integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==",
"optional": true
},
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.3.6", "version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"funding": [ "funding": [
{ {
"type": "github", "type": "github",
...@@ -11250,9 +11360,9 @@ ...@@ -11250,9 +11360,9 @@
"dev": true "dev": true
}, },
"node_modules/picocolors": { "node_modules/picocolors": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
}, },
"node_modules/picomatch": { "node_modules/picomatch": {
"version": "2.3.1", "version": "2.3.1",
...@@ -11361,9 +11471,9 @@ ...@@ -11361,9 +11471,9 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.28", "version": "8.4.41",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.41.tgz",
"integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
...@@ -11379,9 +11489,9 @@ ...@@ -11379,9 +11489,9 @@
} }
], ],
"dependencies": { "dependencies": {
"nanoid": "^3.3.6", "nanoid": "^3.3.7",
"picocolors": "^1.0.0", "picocolors": "^1.0.1",
"source-map-js": "^1.0.2" "source-map-js": "^1.2.0"
}, },
"engines": { "engines": {
"node": "^10 || ^12 || >=14" "node": "^10 || ^12 || >=14"
...@@ -14179,9 +14289,9 @@ ...@@ -14179,9 +14289,9 @@
} }
}, },
"node_modules/source-map-js": { "node_modules/source-map-js": {
"version": "1.0.2", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
...@@ -15004,7 +15114,6 @@ ...@@ -15004,7 +15114,6 @@
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"dev": true,
"engines": { "engines": {
"node": ">=4" "node": ">=4"
} }
...@@ -15895,6 +16004,16 @@ ...@@ -15895,6 +16004,16 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true "dev": true
}, },
"node_modules/vue/node_modules/@vue/compiler-sfc": {
"version": "2.7.14",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz",
"integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==",
"dependencies": {
"@babel/parser": "^7.18.4",
"postcss": "^8.4.14",
"source-map": "^0.6.1"
}
},
"node_modules/vuex": { "node_modules/vuex": {
"version": "3.6.2", "version": "3.6.2",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz",
...@@ -17264,16 +17383,14 @@ ...@@ -17264,16 +17383,14 @@
} }
}, },
"@babel/helper-string-parser": { "@babel/helper-string-parser": {
"version": "7.22.5", "version": "7.24.8",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
"dev": true
}, },
"@babel/helper-validator-identifier": { "@babel/helper-validator-identifier": {
"version": "7.22.5", "version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
"integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
"dev": true
}, },
"@babel/helper-validator-option": { "@babel/helper-validator-option": {
"version": "7.22.5", "version": "7.22.5",
...@@ -17328,9 +17445,12 @@ ...@@ -17328,9 +17445,12 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.22.10", "version": "7.25.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz",
"integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==" "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
"requires": {
"@babel/types": "^7.25.6"
}
}, },
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.22.5", "version": "7.22.5",
...@@ -18204,13 +18324,12 @@ ...@@ -18204,13 +18324,12 @@
} }
}, },
"@babel/types": { "@babel/types": {
"version": "7.22.10", "version": "7.25.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz",
"integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
"dev": true,
"requires": { "requires": {
"@babel/helper-string-parser": "^7.22.5", "@babel/helper-string-parser": "^7.24.8",
"@babel/helper-validator-identifier": "^7.22.5", "@babel/helper-validator-identifier": "^7.24.7",
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
} }
}, },
...@@ -18306,9 +18425,9 @@ ...@@ -18306,9 +18425,9 @@
"dev": true "dev": true
}, },
"@jridgewell/sourcemap-codec": { "@jridgewell/sourcemap-codec": {
"version": "1.4.15", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true "dev": true
}, },
"@jridgewell/trace-mapping": { "@jridgewell/trace-mapping": {
...@@ -19127,14 +19246,72 @@ ...@@ -19127,14 +19246,72 @@
} }
} }
}, },
"@vue/compiler-core": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.38.tgz",
"integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==",
"dev": true,
"optional": true,
"peer": true,
"requires": {
"@babel/parser": "^7.24.7",
"@vue/shared": "3.4.38",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
},
"dependencies": {
"entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true,
"optional": true,
"peer": true
}
}
},
"@vue/compiler-dom": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz",
"integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==",
"dev": true,
"optional": true,
"peer": true,
"requires": {
"@vue/compiler-core": "3.4.38",
"@vue/shared": "3.4.38"
}
},
"@vue/compiler-sfc": { "@vue/compiler-sfc": {
"version": "2.7.14", "version": "3.4.38",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz",
"integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==",
"dev": true,
"optional": true,
"peer": true,
"requires": { "requires": {
"@babel/parser": "^7.18.4", "@babel/parser": "^7.24.7",
"postcss": "^8.4.14", "@vue/compiler-core": "3.4.38",
"source-map": "^0.6.1" "@vue/compiler-dom": "3.4.38",
"@vue/compiler-ssr": "3.4.38",
"@vue/shared": "3.4.38",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.10",
"postcss": "^8.4.40",
"source-map-js": "^1.2.0"
}
},
"@vue/compiler-ssr": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz",
"integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==",
"dev": true,
"optional": true,
"peer": true,
"requires": {
"@vue/compiler-dom": "3.4.38",
"@vue/shared": "3.4.38"
} }
}, },
"@vue/component-compiler-utils": { "@vue/component-compiler-utils": {
...@@ -19201,6 +19378,14 @@ ...@@ -19201,6 +19378,14 @@
"dev": true, "dev": true,
"requires": {} "requires": {}
}, },
"@vue/shared": {
"version": "3.4.38",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.38.tgz",
"integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==",
"dev": true,
"optional": true,
"peer": true
},
"@vue/web-component-wrapper": { "@vue/web-component-wrapper": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
...@@ -19974,6 +20159,15 @@ ...@@ -19974,6 +20159,15 @@
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"optional": true "optional": true
}, },
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
}
},
"blob.js": { "blob.js": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/blob.js/-/blob.js-1.0.1.tgz", "resolved": "https://registry.npmjs.org/blob.js/-/blob.js-1.0.1.tgz",
...@@ -22435,6 +22629,14 @@ ...@@ -22435,6 +22629,14 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
}, },
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true,
"optional": true,
"peer": true
},
"esutils": { "esutils": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
...@@ -22803,6 +23005,12 @@ ...@@ -22803,6 +23005,12 @@
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz",
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
}, },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"optional": true
},
"filesize": { "filesize": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
...@@ -24717,6 +24925,17 @@ ...@@ -24717,6 +24925,17 @@
} }
} }
}, },
"magic-string": {
"version": "0.30.11",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.11.tgz",
"integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
"dev": true,
"optional": true,
"peer": true,
"requires": {
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"make-dir": { "make-dir": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
...@@ -25098,10 +25317,16 @@ ...@@ -25098,10 +25317,16 @@
"thenify-all": "^1.0.0" "thenify-all": "^1.0.0"
} }
}, },
"nan": {
"version": "2.20.0",
"resolved": "https://registry.npmmirror.com/nan/-/nan-2.20.0.tgz",
"integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==",
"optional": true
},
"nanoid": { "nanoid": {
"version": "3.3.6", "version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
}, },
"nanomatch": { "nanomatch": {
"version": "1.2.13", "version": "1.2.13",
...@@ -25692,9 +25917,9 @@ ...@@ -25692,9 +25917,9 @@
"dev": true "dev": true
}, },
"picocolors": { "picocolors": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
}, },
"picomatch": { "picomatch": {
"version": "2.3.1", "version": "2.3.1",
...@@ -25775,13 +26000,13 @@ ...@@ -25775,13 +26000,13 @@
"integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg=="
}, },
"postcss": { "postcss": {
"version": "8.4.28", "version": "8.4.41",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.41.tgz",
"integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==", "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
"requires": { "requires": {
"nanoid": "^3.3.6", "nanoid": "^3.3.7",
"picocolors": "^1.0.0", "picocolors": "^1.0.1",
"source-map-js": "^1.0.2" "source-map-js": "^1.2.0"
} }
}, },
"postcss-calc": { "postcss-calc": {
...@@ -28058,9 +28283,9 @@ ...@@ -28058,9 +28283,9 @@
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}, },
"source-map-js": { "source-map-js": {
"version": "1.0.2", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg=="
}, },
"source-map-resolve": { "source-map-resolve": {
"version": "0.5.3", "version": "0.5.3",
...@@ -28727,8 +28952,7 @@ ...@@ -28727,8 +28952,7 @@
"to-fast-properties": { "to-fast-properties": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
"dev": true
}, },
"to-object-path": { "to-object-path": {
"version": "0.3.0", "version": "0.3.0",
...@@ -29304,6 +29528,18 @@ ...@@ -29304,6 +29528,18 @@
"requires": { "requires": {
"@vue/compiler-sfc": "2.7.14", "@vue/compiler-sfc": "2.7.14",
"csstype": "^3.1.0" "csstype": "^3.1.0"
},
"dependencies": {
"@vue/compiler-sfc": {
"version": "2.7.14",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz",
"integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==",
"requires": {
"@babel/parser": "^7.18.4",
"postcss": "^8.4.14",
"source-map": "^0.6.1"
}
}
} }
}, },
"vue-clipboard2": { "vue-clipboard2": {
...@@ -61,7 +61,8 @@ export default { ...@@ -61,7 +61,8 @@ export default {
starttime: this.replaceTimeGap(this.timeModel.startTime), starttime: this.replaceTimeGap(this.timeModel.startTime),
endtime: this.replaceTimeGap(this.timeModel.endTime), endtime: this.replaceTimeGap(this.timeModel.endTime),
}); });
console.log("video response", response); console.log("video response 请求完成", response);
this.$emit('loadEnd')
this.videoUrl = response.content; this.videoUrl = response.content;
setTimeout(() => { setTimeout(() => {
this.$refs.loopVideoPlayer.load(); this.$refs.loopVideoPlayer.load();
......
...@@ -24,17 +24,17 @@ ...@@ -24,17 +24,17 @@
</div> --> </div> -->
</div> </div>
<div class="left_box aside" :class="[{ hide_left: !show }]"> <div class="left_box aside" :class="[{ hide_left: !show }]">
<regional-index class="item" /> <regional-index class="item"/>
<traffic-flow class="item" /> <traffic-flow class="item"/>
<ped-and-no-vehicles class="item" /> <ped-and-no-vehicles class="item"/>
</div> </div>
<div class="right_box aside" :class="[{ hide_right: !show }]"> <div class="right_box aside" :class="[{ hide_right: !show }]">
<in-transit class="item" /> <in-transit class="item"/>
<traffic-event class="item" /> <traffic-event class="item"/>
<msg-card class="item item-warningData" title="告警信息"> <msg-card class="item item-warningData" title="告警信息">
<div class="full-w full-h" v-loading="alarmLoading" element-loading-spinner="el-icon-loading" <div class="full-w full-h" v-loading="alarmLoading" element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"> element-loading-background="rgba(0, 0, 0, 0.8)">
<el-tabs @tab-click='tabClick' v-model='activeName' style="height: 100%;"> <el-tabs v-model='activeName' style="height: 100%;">
<el-tab-pane name='11' key="1" style="height: 100%;"> <el-tab-pane name='11' key="1" style="height: 100%;">
<template slot="label"> <template slot="label">
<div style="display: flex"> <div style="display: flex">
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
</li> </li>
</vue-seamless-scroll> </vue-seamless-scroll>
<div class="emptyText" v-show="!warningData.length"> <div class="emptyText" v-show="!warningData.length">
<img :src="require('../../../assets/images/holo/svg/noWarning.svg')" /> <img :src="require('../../../assets/images/holo/svg/noWarning.svg')"/>
<div>暂无告警信息</div> <div>暂无告警信息</div>
</div> </div>
</div> </div>
...@@ -104,21 +104,21 @@ ...@@ -104,21 +104,21 @@
</div> </div>
</div> </div>
</template> </template>
<div class="traffics"> <div class="trafficss">
<vue-seamless-scroll ref='22' class="warningMsg" :data="overData" :class-option="optionSetting1" <!-- <vue-seamless-scroll ref='22' class="warningMsg" :data="overData" :class-option="optionSetting1"-->
v-show="overData.length"> <!-- v-show="overData.length">-->
<li @click="playOverHistoryTrace(item)" v-for="(item, index) of overData" class="overItem" <div @click="playOverHistoryTrace(item)" v-for="(item, index) of overData" class="overItem"
:key="index"> :key="index">
<div class='topLicense'> <span>预警时间:</span>{{ item.timeStamp }}</div> <div class='topLicense'><span>预警时间:</span>{{ item.timeStamp }}</div>
<div class='detailMsg'> <div class='detailMsg'>
<div><span>车牌:</span>{{ item.plateNo }}</div> <div><span>车牌:</span>{{ item.plateNo }}</div>
<div :title='item.inDirName'><span>行驶方向:</span>{{ item.inDirName }}</div> <div :title='item.inDirName'><span>行驶方向:</span>{{ item.inDirName }}</div>
<div><span>超限类型:</span>{{ item.type }}</div> <div><span>超限类型:</span>{{ dict.overCarType[item.type] }}</div>
</div> </div>
</li> </div>
</vue-seamless-scroll> <!-- </vue-seamless-scroll>-->
<div class="emptyText" v-show="!overData.length"> <div class="emptyText" v-show="!overData.length">
<img :src="require('../../../assets/images/holo/svg/noWarning.svg')" /> <img :src="require('../../../assets/images/holo/svg/noWarning.svg')"/>
<div>暂无超限信息</div> <div>暂无超限信息</div>
</div> </div>
</div> </div>
...@@ -134,8 +134,8 @@ ...@@ -134,8 +134,8 @@
import dict from "@/config/holo/dictionary"; import dict from "@/config/holo/dictionary";
import msgCard from "../../../components/Standard/msg-card.vue"; import msgCard from "../../../components/Standard/msg-card.vue";
import vueSeamlessScroll from 'vue-seamless-scroll' import vueSeamlessScroll from 'vue-seamless-scroll'
import { eventAlarm, getAlarmOverDatas, getOverDatas } from "../../../dao/situation"; import {eventAlarm, getAlarmOverDatas, getOverDatas} from "../../../dao/situation";
import { initWs } from "../../../config/holo/websocket"; import {initWs} from "../../../config/holo/websocket";
import RegionalIndex from "./msgLeft/regionalIndex.vue"; import RegionalIndex from "./msgLeft/regionalIndex.vue";
import TrafficFlow from "./msgLeft/trafficFlow.vue"; import TrafficFlow from "./msgLeft/trafficFlow.vue";
import pedAndNoVehicles from "./msgLeft/pedAndNoVehicles.vue"; import pedAndNoVehicles from "./msgLeft/pedAndNoVehicles.vue";
...@@ -158,16 +158,29 @@ export default { ...@@ -158,16 +158,29 @@ export default {
dict, dict,
activeName: '11', activeName: '11',
overData: [ overData: [
{ "plateNo": "京A895413", "inDirName": "东向西", "type": "201", "timeStamp": "2024-08-27 15:39:18" }, // { "plateNo": "京A895413", "inDirName": "东向西", "type": "105", "timeStamp": "2024-08-27 15:39:18",length:10 },
// { "plateNo": "京A895413", "inDirName": "东向西", "type": "504", "timeStamp": "2024-08-27 15:39:18" }, // { "plateNo": "京A895413", "inDirName": "东向西", "type": "105", "timeStamp": "2024-08-27 15:39:18",length:10 },
// { "plateNo": "京A895413", "inDirName": "东向西", "type": "504", "timeStamp": "2024-08-27 15:39:18" }, // { "plateNo": "京A895413", "inDirName": "东向西", "type": "105", "timeStamp": "2024-08-27 15:39:18",length:10 },
// { "plateNo": "京A895413", "inDirName": "东向西", "type": "504", "timeStamp": "2024-08-27 15:39:18" }, // { "plateNo": "京A895413", "inDirName": "东向西", "type": "105", "timeStamp": "2024-08-27 15:39:18",length:10 },
// { "plateNo": "京A895413", "inDirName": "东向西", "type": "105", "timeStamp": "2024-08-27 15:39:18",length:10 },
// { "plateNo": "京A895413", "inDirName": "东向西", "type": "105", "timeStamp": "2024-08-27 15:39:18",length:10 },
// { "plateNo": "京A895413", "inDirName": "东向西", "type": "105", "timeStamp": "2024-08-27 15:39:18",length:10 },
], ],
alarmLoading: true, alarmLoading: true,
overLoading: true, overLoading: true,
init: true, init: true,
// 告警信息 // 告警信息
warningData: [], warningData: [
// {id:1},
// {id:1},
// {id:1},
// {id:1},
// {id:1},
// {id:1},
// {id:1},
// {id:1},
// {id:1},
],
lastWarningData: [], lastWarningData: [],
topDataSecond: {}, topDataSecond: {},
topDataMin: {}, topDataMin: {},
...@@ -190,7 +203,7 @@ export default { ...@@ -190,7 +203,7 @@ export default {
}, },
optionSetting1() { optionSetting1() {
return { return {
step: 0.5, // 数值越大速度滚动越快 step: 0, // 数值越大速度滚动越快
limitMoveNum: 4, // 开始无缝滚动的数据量 this.dataList.length limitMoveNum: 4, // 开始无缝滚动的数据量 this.dataList.length
hoverStop: true, // 是否开启鼠标悬停stop hoverStop: true, // 是否开启鼠标悬停stop
direction: 1, // 0向下 1向上 2向左 3向右 direction: 1, // 0向下 1向上 2向左 3向右
...@@ -250,12 +263,18 @@ export default { ...@@ -250,12 +263,18 @@ export default {
playOverHistoryTrace(row) { playOverHistoryTrace(row) {
let wsSend = { let wsSend = {
"dataType": "OVER_RUN", //数据类型【固定值】 "dataType": "OVER_RUN", //数据类型【固定值】
"timeStamp": row.timeStamp, //时间 "timeStamp": this.timeFormat(new Date(new Date(row.timeStamp).getTime() - 1000 * 10)),
'endTime': this.timeFormat(new Date(new Date(row.timeStamp).getTime() + 1000 * 10)), 'endTime': this.timeFormat(new Date(new Date(row.timeStamp).getTime() + 1000 *10)),
"globalId": row.globalId, //车辆ID "globalId": row.globalId, //车辆ID
"overType": row.type //超限类型 "overType": row.type, //超限类型
'urls': row.videoUrls,
// 'urls': ['video/1.mp4','video/1.mp4'],
}
if (row.type == '105') {
wsSend.vehicleHeight = row.length
} else {
wsSend.vehicleWidth = row.length
} }
console.log('close real time', row, wsSend);
this.$emit("playOverHistoryTrace", wsSend) this.$emit("playOverHistoryTrace", wsSend)
}, },
// 获取超限列表 // 获取超限列表
...@@ -272,9 +291,6 @@ export default { ...@@ -272,9 +291,6 @@ export default {
} }
}) })
}, },
tabClick(e) {
this.$refs[e.name].reset()
},
initHelMetSocket() { initHelMetSocket() {
this.helMetSocket = initWs({ this.helMetSocket = initWs({
name: "callHelmet", name: "callHelmet",
...@@ -306,7 +322,7 @@ export default { ...@@ -306,7 +322,7 @@ export default {
return match?.name || "未定义"; return match?.name || "未定义";
}, },
addWarningPopup(item) { addWarningPopup(item) {
this.$emit("addWarningPopup", item, { type: "hover" }); this.$emit("addWarningPopup", item, {type: "hover"});
}, },
delWarningPopup(item) { delWarningPopup(item) {
this.$emit("delWarningPopup", item.eventSerialNumber); this.$emit("delWarningPopup", item.eventSerialNumber);
...@@ -321,14 +337,14 @@ export default { ...@@ -321,14 +337,14 @@ export default {
// this.alarmLoading = true // this.alarmLoading = true
eventAlarm().then((res) => { eventAlarm().then((res) => {
this.alarmLoading = false this.alarmLoading = false
// console.log("事件告警", res.content); console.log("事件告警", res.content);
this.warningData = res.content; this.warningData = res.content;
if (!this.init) { if (!this.init) {
if (this.lastWarningData.length !== res.content.length) { if (this.lastWarningData.length !== res.content.length) {
// 最新发生的告警信息 // 最新发生的告警信息
let newMegs = this.diff(this.lastWarningData, this.warningData); let newMegs = this.diff(this.lastWarningData, this.warningData);
for (let item of newMegs) { for (let item of newMegs) {
this.$emit("addWarningPopup", item, { type: "auto" }); this.$emit("addWarningPopup", item, {type: "auto"});
} }
} }
} }
...@@ -337,14 +353,14 @@ export default { ...@@ -337,14 +353,14 @@ export default {
}); });
}, },
getOverDataTopSecond() { getOverDataTopSecond() {
getOverDatas({ type: 1 }).then((res) => { getOverDatas({type: 1}).then((res) => {
if (res.content) { if (res.content) {
this.topDataSecond = res.content; this.topDataSecond = res.content;
} }
}); });
}, },
getOverDataTopMin() { getOverDataTopMin() {
getOverDatas({ type: 2 }).then((res) => { getOverDatas({type: 2}).then((res) => {
if (res.content) { if (res.content) {
this.topDataMin = res.content; this.topDataMin = res.content;
} }
...@@ -473,8 +489,27 @@ export default { ...@@ -473,8 +489,27 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
overflow: auto;
width: 100%; width: 100%;
height: 100%; height: 100%;
.warningMsg {
overflow: hidden;
}
}
.trafficss {
color: rgba(155, 177, 212, 1);
//display: flex;
//align-items: center;
//justify-content: center;
overflow: auto;
width: 100%;
height: 100%;
.warningMsg {
overflow: auto;
}
} }
::v-deep .el-tabs__item { ::v-deep .el-tabs__item {
...@@ -535,6 +570,8 @@ export default { ...@@ -535,6 +570,8 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background-color: rgba(24, 144, 255, 0.4);
color: rgba(24, 144, 255, 1);
span { span {
display: inline-block; display: inline-block;
...@@ -595,6 +632,7 @@ export default { ...@@ -595,6 +632,7 @@ export default {
} }
.message { .message {
border: 1px solid rgba(24, 144, 255, 0.4);
padding: 0 0 0 10px; padding: 0 0 0 10px;
// border: 1px solid rgba(60, 27, 37, 1); // border: 1px solid rgba(60, 27, 37, 1);
display: flex; display: flex;
...@@ -691,6 +729,9 @@ export default { ...@@ -691,6 +729,9 @@ export default {
} }
} }
} }
.overItem:last-child{
margin-bottom: 0;
}
} }
.map-mask { .map-mask {
......
...@@ -3,26 +3,27 @@ ...@@ -3,26 +3,27 @@
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)"> element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
<track-switcher :detetors="detetorsArray" :boxShow="boxesShow" @timeChange="timeChange" v-show="trackSwitcherVis" <track-switcher :detetors="detetorsArray" :boxShow="boxesShow" @timeChange="timeChange" v-show="trackSwitcherVis"
@closeRealTime="closeRealTime" @openRealTime="openRealTime"></track-switcher> @closeRealTime="closeRealTime" @openRealTime="openRealTime"></track-switcher>
<situation-time v-show="currentCheck === 'first' && timeState" class="situationTime" :time="situationTimeVal" /> <situation-time v-show="currentCheck === 'first' && timeState" class="situationTime" :time="situationTimeVal"/>
<wMap :mapId="'situation-map'" ref="wMap" /> <wMap :mapId="'situation-map'" ref="wMap"/>
<!--左右图表组件--> <!--左右图表组件-->
<message-boxes @playOverHistoryTrace="playOverHistoryTrace" @delWarningPopup="delWarningPopup" <message-boxes @playOverHistoryTrace="playOverHistoryTrace" @delWarningPopup="delWarningPopup"
@addWarningPopup="addWarningPopup" :show="boxesShow" /> @addWarningPopup="addWarningPopup" :show="boxesShow"/>
<!--图层切换按钮--> <!--图层切换按钮-->
<layers-switch ref="switch" :show="boxesShow" @changeCheck="changeCheck" @visibleChange="visibleChange" <layers-switch ref="switch" :show="boxesShow" @changeCheck="changeCheck" @visibleChange="visibleChange"
:class="boxesShow ? 'generalSwitch' : 'rightSwitch'" /> :class="boxesShow ? 'generalSwitch' : 'rightSwitch'"/>
<!--视频播放组件--> <!--视频播放组件-->
<video-list ref="videoList" v-if="showCameras.length" @updateCamera="updateCameraCPB" @resetCamera="resetCamera" <video-list ref="videoList" v-if="showCameras.length" @updateCamera="updateCameraCPB" @resetCamera="resetCamera"
@delVideo="deleteVideo" :showCameras="showCameras" /> @delVideo="deleteVideo" :showCameras="showCameras"/>
<!--路口详情--> <!--路口详情-->
<cross-detail v-if="dialogVisible.crossDetail" @actionFinished="actionFinished" dialogId="crossDetail" <cross-detail v-if="dialogVisible.crossDetail" @actionFinished="actionFinished" dialogId="crossDetail"
:crossDetailData="crossDetailData" /> :crossDetailData="crossDetailData"/>
<!--底部交通事件趋势分析--> <!--底部交通事件趋势分析-->
<traffic-events-tend @updateHeatMap="refreshEventLayer" v-if="currentCheck === 'third'" /> <traffic-events-tend @updateHeatMap="refreshEventLayer" v-if="currentCheck === 'third'"/>
<!--设备图例控制--> <!--设备图例控制-->
<equipment-switch @equipmentChange="equipmentChange" v-if="currentCheck === 'fourth'" /> <equipment-switch @equipmentChange="equipmentChange" v-if="currentCheck === 'fourth'"/>
<!--单车超限历史轨迹视频--> <!--单车超限历史轨迹视频-->
<sigalTraceVideos :key="sigalKey" v-if="showHisVid" :timeDuration="timeDuration"></sigalTraceVideos> <sigalTraceVideos @isReady="singalHistoryVideoReady" :urls="hisUrls" :key="sigalKey"
v-if="showHisVid"></sigalTraceVideos>
</div> </div>
</template> </template>
...@@ -34,7 +35,7 @@ import MessageBoxes from "./floatData/messageBoxes.vue"; ...@@ -34,7 +35,7 @@ import MessageBoxes from "./floatData/messageBoxes.vue";
import CrossDetail from "./crossDetail.vue"; import CrossDetail from "./crossDetail.vue";
import VideoList from "./floatData/videoList.vue"; import VideoList from "./floatData/videoList.vue";
import TrafficEventsTend from "./floatData/trafficEventsTend.vue"; import TrafficEventsTend from "./floatData/trafficEventsTend.vue";
import { initWs } from "../../config/holo/websocket"; import {initWs} from "../../config/holo/websocket";
import dict from "../../config/holo/dictionary"; import dict from "../../config/holo/dictionary";
import mapAssets from "../../config/holo/mapAssets"; import mapAssets from "../../config/holo/mapAssets";
import * as mapTools from "../../utils/mapboxTools"; import * as mapTools from "../../utils/mapboxTools";
...@@ -59,7 +60,7 @@ import { ...@@ -59,7 +60,7 @@ import {
equip_radar, equip_radar,
getDetetors, getDetetors,
} from "../../dao/situation"; } from "../../dao/situation";
import { convertPointsToGeo, convertPointsWktToGeo, convertToLineWithWkt } from "../../utils/mapboxTools"; import {convertPointsToGeo, convertPointsWktToGeo, convertToLineWithWkt} from "../../utils/mapboxTools";
const VehiclePopup = Vue.extend(vehicleDetail); const VehiclePopup = Vue.extend(vehicleDetail);
const EquipmentPopup = Vue.extend(equipmentPopup); const EquipmentPopup = Vue.extend(equipmentPopup);
...@@ -68,11 +69,11 @@ const AlarmPopup = Vue.extend(alarmPopup) ...@@ -68,11 +69,11 @@ const AlarmPopup = Vue.extend(alarmPopup)
let pulsingDots = []; let pulsingDots = [];
const canvasImages = [ const canvasImages = [
{ size: 250, color: "252, 1, 26" }, {size: 250, color: "252, 1, 26"},
{ size: 400, color: "255,235,59" }, {size: 400, color: "255,235,59"},
{ size: 400, color: "255, 141, 26" }, {size: 400, color: "255, 141, 26"},
{ size: 400, color: "227, 5, 5" }, {size: 400, color: "227, 5, 5"},
{ size: 400, color: "24, 144, 255" }, {size: 400, color: "24, 144, 255"},
]; ];
for (let i = 0; i < canvasImages.length; i++) { for (let i = 0; i < canvasImages.length; i++) {
let size = canvasImages[i].size; let size = canvasImages[i].size;
...@@ -154,10 +155,11 @@ export default { ...@@ -154,10 +155,11 @@ export default {
return { return {
sigalKey: '', sigalKey: '',
showHisVid: false, showHisVid: false,
timeDuration: { hisUrls: [],
startTime: "", // timeDuration: {
endTime: "", // startTime: "",
}, // endTime: "",
// },
// Mixin 公用数据 // Mixin 公用数据
crossGeo: null, //所有路口lnglat geojson集合 crossGeo: null, //所有路口lnglat geojson集合
sockets: [], sockets: [],
...@@ -206,6 +208,7 @@ export default { ...@@ -206,6 +208,7 @@ export default {
cLocation: "", cLocation: "",
overCarsPoints: {}, // 储存超限车辆动态经纬度 overCarsPoints: {}, // 储存超限车辆动态经纬度
backToRealTimer: null, // 存储回到实时车流倒计时器 backToRealTimer: null, // 存储回到实时车流倒计时器
historyWsToSend: null,
}; };
}, },
watch: { watch: {
...@@ -225,6 +228,23 @@ export default { ...@@ -225,6 +228,23 @@ export default {
created() { created() {
}, },
mounted() { mounted() {
this.$EventBus.$on("emitPopupClose", ({id, overRun}) => {
console.log('eventbus event received...', id)
vehiclePopups[`popup${id}`]?.remove();
delete vehiclePopups[`popup${id}`];
delete this.highLightCarTracks[id]
delete this.overCarsPoints[id]
popupVises[`popup${id}`] = false;
// 如果当前正在播放超限历史轨迹 则停止
if (this.showHisVid && overRun) {
console.log('close his ws...')
clearTimeout(this.backToRealTimer)
this.backToRealTimer = null
this.closeWs('callCar1').then(() => {
this.openRealTime()
})
}
})
getDetetors().then((res) => { getDetetors().then((res) => {
this.detetorsArray = res.content; this.detetorsArray = res.content;
}); });
...@@ -276,7 +296,7 @@ export default { ...@@ -276,7 +296,7 @@ export default {
// 重度拥堵: 3, // 重度拥堵: 3,
// 疑似事故: 4, // 疑似事故: 4,
// }; // };
let resItem = Object.assign({}, item, { longitude: item.lng, latitude: item.lat, type: 3 }) let resItem = Object.assign({}, item, {longitude: item.lng, latitude: item.lat, type: 3})
mapTools.addOrUpdateWarningWave(map, [resItem], item.eventSerialNumber); mapTools.addOrUpdateWarningWave(map, [resItem], item.eventSerialNumber);
// 上报产生的告警 弹窗提醒 定时销毁 // 上报产生的告警 弹窗提醒 定时销毁
let popup = new mapboxgl.Popup({ let popup = new mapboxgl.Popup({
...@@ -325,24 +345,10 @@ export default { ...@@ -325,24 +345,10 @@ export default {
this.lastLocation = []; this.lastLocation = [];
}); });
}, },
playOverHistoryTrace(sendMsg) { // 视频就绪后开始播放轨迹
if (this.backToRealTimer) { singalHistoryVideoReady() {
clearTimeout(this.backToRealTimer) console.log('视频请求完成,开始播放单车历史轨迹。。。');
this.backToRealTimer = null this.loading = false
}
Promise.all([this.closeWs('callCar'), this.closeWs('callCar1')]).then(() => {
console.log('closed all...');
this.removeAllRadars()
this.radarShow = false
this.clearTrackTimer();
window.tb?.clear(null, true);
window.tb?.update();
this.lastLocation = [];
this.timeDuration = {
startTime: sendMsg.timeStamp,
endTime: sendMsg.endTime,
};
this.$nextTick(() => {
// 播放单车历史ws // 播放单车历史ws
let socket = initWs({ let socket = initWs({
name: "callCar1", name: "callCar1",
...@@ -350,36 +356,62 @@ export default { ...@@ -350,36 +356,62 @@ export default {
callback: this.callCar, callback: this.callCar,
}); });
socket.ws.onopen = () => { socket.ws.onopen = () => {
if (this.backToRealTimer) { if (this.backToRealTimer) {
clearTimeout(this.backToRealTimer) clearTimeout(this.backToRealTimer)
this.backToRealTimer = null this.backToRealTimer = null
} }
this.backToRealTimer = setTimeout(() => { this.backToRealTimer = setTimeout(() => {
// vehiclePopups[`popup${id}`]?.remove();
// delete vehiclePopups[`popup${id}`];
// delete this.highLightCarTracks[id]
// delete this.overCarsPoints[id]
// popupVises[`popup${id}`] = false;
this.closeWs('callCar1').then(() => { this.closeWs('callCar1').then(() => {
this.removeVehiclePopup()
this.overCarsPoints = {}
this.openRealTime() this.openRealTime()
this.showHisVid = false
}) })
this.backToRealTimer = null this.backToRealTimer = null
}, 1000 * 10) }, 1000 * 20)
if (socket.ws.readyState === 1) { if (socket.ws.readyState === 1) {
this.sockets.push(socket);
this.showHisVid = true this.showHisVid = true
this.sigalKey = sendMsg.globalId this.sockets.push(socket);
// socket.ws.send('{ dataType: "1"}'); delete this.historyWsToSend.urls
// socket.ws.send('{"dataType":"OVER_RUN","timeStamp":"2024-09-06 15:01:17.000","endTime":"2024-09-06 15:01:27.000","globalId":"10547041","vehicleHeight":6,"vehicleWidth":2.55,"overType":1}') let msg = JSON.stringify(this.historyWsToSend)
socket.ws.send(JSON.stringify(sendMsg)); socket.ws.send(msg);
// socket.ws.send('{"dataType":"OVER_RUN","timeStamp":"2024-09-13 16:44:30.000","endTime":"2024-09-13 16:44:40.000","globalId":"10552117","vehicleHeight":6,"vehicleWidth":2.55,"overType":1}')
} }
}; };
// socket.ws.onclose = () => { },
// // this.closeRealTime() playOverHistoryTrace(sendMsg) {
// if(this.showHisVid){ this.historyWsToSend = sendMsg
// this.showHisVid = false if (this.backToRealTimer) {
// this.openRealTime() clearTimeout(this.backToRealTimer)
// } this.backToRealTimer = null
// }; }
Promise.all([this.closeWs('callCar'), this.closeWs('callCar1')]).then(() => {
console.log('closed all...');
// todo 清除popups
this.removeVehiclePopup()
this.overCarsPoints = {}
this.removeAllRadars()
this.radarShow = false
this.clearTrackTimer();
window.tb?.clear(null, true);
window.tb?.update();
this.lastLocation = [];
// 开始请求视频
this.sigalKey = sendMsg.globalId
this.hisUrls = sendMsg.urls || []
this.$nextTick(() => {
if (this.hisUrls.length) {
this.loading = true
} else {
this.singalHistoryVideoReady()
}
}) })
}) })
}, },
openRealTime() { openRealTime() {
this.registerListener(); this.registerListener();
...@@ -453,7 +485,7 @@ export default { ...@@ -453,7 +485,7 @@ export default {
this.cLocation, this.cLocation,
offsetLength, // 相机向前偏移距离 offsetLength, // 相机向前偏移距离
this.cBearing, this.cBearing,
{ units: "meters" } {units: "meters"}
).geometry.coordinates; ).geometry.coordinates;
map.flyTo({ map.flyTo({
center: translatedPoint, center: translatedPoint,
...@@ -505,13 +537,13 @@ export default { ...@@ -505,13 +537,13 @@ export default {
} }
for (let i = 0; i < pulsingDots.length; i++) { for (let i = 0; i < pulsingDots.length; i++) {
if (map && !map.hasImage(`pulsingDot${i}`)) if (map && !map.hasImage(`pulsingDot${i}`))
map.addImage(`pulsingDot${i}`, pulsingDots[i], { pixelRatio: 2 }); map.addImage(`pulsingDot${i}`, pulsingDots[i], {pixelRatio: 2});
} }
// 添加map icons图片资源 ---end // 添加map icons图片资源 ---end
this.loading = false; this.loading = false;
this.mixDraw(map); this.mixDraw(map);
map.addControl( map.addControl(
new mapboxgl.NavigationControl({ showZoom: false }), new mapboxgl.NavigationControl({showZoom: false}),
"bottom-right" "bottom-right"
); );
this.refreshBounds(); this.refreshBounds();
...@@ -622,7 +654,7 @@ export default { ...@@ -622,7 +654,7 @@ export default {
type: "gltf", type: "gltf",
units: "meters", units: "meters",
scale: 0.8, scale: 0.8,
adjustment: { x: 0.5, y: 1, z: -0.5 }, adjustment: {x: 0.5, y: 1, z: -0.5},
bbox: true, bbox: true,
}; };
window.tb.loadObj(options, (model) => { window.tb.loadObj(options, (model) => {
...@@ -719,7 +751,7 @@ export default { ...@@ -719,7 +751,7 @@ export default {
let centerP = turf.point([map.getCenter().lng, map.getCenter().lat]); let centerP = turf.point([map.getCenter().lng, map.getCenter().lat]);
// 取最近点的crossId // 取最近点的crossId
let nearest = turf.nearestPoint(centerP, this.crossGeo); let nearest = turf.nearestPoint(centerP, this.crossGeo);
this.firstCrossClick({ features: [nearest] }) this.firstCrossClick({features: [nearest]})
} }
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// 注册车辆实时ws // 注册车辆实时ws
...@@ -732,6 +764,7 @@ export default { ...@@ -732,6 +764,7 @@ export default {
socket.ws.onopen = () => { socket.ws.onopen = () => {
console.log('ws open callCar') console.log('ws open callCar')
if (socket.ws.readyState === 1) { if (socket.ws.readyState === 1) {
this.showHisVid = false
socket.ws.send('{ dataType: "1"}'); socket.ws.send('{ dataType: "1"}');
this.sockets.push(socket); this.sockets.push(socket);
} }
...@@ -761,7 +794,7 @@ export default { ...@@ -761,7 +794,7 @@ export default {
}, },
// 交通事件热力图 & 点 // 交通事件热力图 & 点
refreshEventLayer(type) { refreshEventLayer(type) {
eventInfo({ dayType: type }).then((res) => { eventInfo({dayType: type}).then((res) => {
// 热力图 - 如果还未创建 先创建图层 赋值 // 热力图 - 如果还未创建 先创建图层 赋值
if (this.currentCheck === "third") { if (this.currentCheck === "third") {
mapTools.addOrUpdateEventHeat(map, res.content); mapTools.addOrUpdateEventHeat(map, res.content);
...@@ -833,7 +866,7 @@ export default { ...@@ -833,7 +866,7 @@ export default {
distance = 80; distance = 80;
} }
let bearing = map.getBearing(); // 平移方向,0 表示正北方向 let bearing = map.getBearing(); // 平移方向,0 表示正北方向
let options = { units: "meters" }; let options = {units: "meters"};
let translatedPoint = turf.destination( let translatedPoint = turf.destination(
prop.wkt.split(","), prop.wkt.split(","),
distance, distance,
...@@ -857,7 +890,7 @@ export default { ...@@ -857,7 +890,7 @@ export default {
.addClassName("equipmentPopup"); .addClassName("equipmentPopup");
popupInstance = new EquipmentPopup({ popupInstance = new EquipmentPopup({
propsData: { propsData: {
model: { equip_type: type, ...prop }, model: {equip_type: type, ...prop},
}, },
}); });
popupInstance.$mount("#equipment_popup"); popupInstance.$mount("#equipment_popup");
...@@ -923,7 +956,7 @@ export default { ...@@ -923,7 +956,7 @@ export default {
} }
model.setCoords([options.longitude, options.latitude]); model.setCoords([options.longitude, options.latitude]);
model.userData.data = options; model.userData.data = options;
model.setRotation({ x: 90, y: 360 - options.courseAngle - 90, z: 0 }); model.setRotation({x: 90, y: 360 - options.courseAngle - 90, z: 0});
}, },
// 更新超限车辆高亮波纹底盘 // 更新超限车辆高亮波纹底盘
updateOverCarLnglat() { updateOverCarLnglat() {
...@@ -957,6 +990,7 @@ export default { ...@@ -957,6 +990,7 @@ export default {
}, },
removeVehiclePopup() { removeVehiclePopup() {
for (let key in vehiclePopups) { for (let key in vehiclePopups) {
vehiclePopups[key]?.remove(); vehiclePopups[key]?.remove();
} }
vehiclePopups = {}; vehiclePopups = {};
...@@ -989,7 +1023,8 @@ export default { ...@@ -989,7 +1023,8 @@ export default {
properties: data, properties: data,
} }
vehiclePopups[`popup${data.id}`] = new mapboxgl.Popup({ vehiclePopups[`popup${data.id}`] = new mapboxgl.Popup({
closeButton: true, // closeButton: true,
closeButton: false,
anchor: "bottom", anchor: "bottom",
closeOnClick: false, closeOnClick: false,
offset: [0, -20], offset: [0, -20],
...@@ -999,13 +1034,6 @@ export default { ...@@ -999,13 +1034,6 @@ export default {
.setHTML(`<div id="vehicle_popup${data.id}"></div>`) .setHTML(`<div id="vehicle_popup${data.id}"></div>`)
.addTo(map) .addTo(map)
.addClassName("vehicleDetailPopup"); .addClassName("vehicleDetailPopup");
vehiclePopups[`popup${data.id}`].on("close", () => {
vehiclePopups[`popup${data.id}`] = null;
delete vehiclePopups[`popup${data.id}`];
delete this.highLightCarTracks[data.id]
delete this.overCarsPoints[data.id]
popupVises[`popup${data.id}`] = false;
});
popupVises[`popup${data.id}`] = true; popupVises[`popup${data.id}`] = true;
vehiclePopupInstances[`popup${data.id}`] = new VehiclePopup({ vehiclePopupInstances[`popup${data.id}`] = new VehiclePopup({
propsData: { propsData: {
...@@ -1096,7 +1124,6 @@ export default { ...@@ -1096,7 +1124,6 @@ export default {
} }
// 超限车辆弹窗判断 todo // 超限车辆弹窗判断 todo
if (item.overRun?.overType) { if (item.overRun?.overType) {
console.log('检测到超限...', item.overRun)
// 如果超限车辆第一次添加 则设置 popupVises[`popup${item.id}`] 为 true // 如果超限车辆第一次添加 则设置 popupVises[`popup${item.id}`] 为 true
if (!this.overCarsPoints[item.id]) { if (!this.overCarsPoints[item.id]) {
popupVises[`popup${item.id}`] = true popupVises[`popup${item.id}`] = true
...@@ -1106,6 +1133,7 @@ export default { ...@@ -1106,6 +1133,7 @@ export default {
for (let t of overArr) { for (let t of overArr) {
overStr += dict.overCarType[t] overStr += dict.overCarType[t]
} }
if (!this.showHisVid && ['add', 'com'].includes(item.dill)) {
this.$notify({ this.$notify({
title: '超限车辆', title: '超限车辆',
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
...@@ -1120,6 +1148,7 @@ export default { ...@@ -1120,6 +1148,7 @@ export default {
duration: 5000 duration: 5000
}); });
} }
}
if (['add', 'com'].includes(item.dill)) { if (['add', 'com'].includes(item.dill)) {
if (popupVises[`popup${item.id}`]) { if (popupVises[`popup${item.id}`]) {
this.overCarsPoints[item.id] = [item.longitude, item.latitude] this.overCarsPoints[item.id] = [item.longitude, item.latitude]
...@@ -1273,7 +1302,7 @@ export default { ...@@ -1273,7 +1302,7 @@ export default {
topMargin: 2, topMargin: 2,
}); });
license.setCoords([option.longitude, option.latitude, 4]); license.setCoords([option.longitude, option.latitude, 4]);
license.userData.data = { picLicense: option.picLicense }; license.userData.data = {picLicense: option.picLicense};
window.tb.add(license, `license${option.id}`); window.tb.add(license, `license${option.id}`);
licenseLabel[`license${option.id}`] = license; licenseLabel[`license${option.id}`] = license;
} }
...@@ -1350,6 +1379,7 @@ export default { ...@@ -1350,6 +1379,7 @@ export default {
}, },
beforeDestroy() { beforeDestroy() {
this.$EventBus.$off("emitPopupClose");
this.clearTrackTimer(); this.clearTrackTimer();
this.closeAllWs(); this.closeAllWs();
window.tb.dispose(); window.tb.dispose();
...@@ -1445,7 +1475,7 @@ export default { ...@@ -1445,7 +1475,7 @@ export default {
box-shadow: none !important; box-shadow: none !important;
} }
.mapboxgl-ctrl-group button+button { .mapboxgl-ctrl-group button + button {
border-top: unset !important; border-top: unset !important;
} }
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<div class="vehicleDetailInner"> <div class="vehicleDetailInner">
<div class="head"> <div class="head">
<span class="titleBefore"></span><span>{{ model.picLicense || "暂无车牌号信息" }}</span> <span class="titleBefore"></span><span>{{ model.picLicense || "暂无车牌号信息" }}</span>
<div @click="emitPopupClose" class="el-icon-close"></div>
</div> </div>
<div class="content"> <div class="content">
<div class="detailItem"> <div class="detailItem">
...@@ -71,6 +72,9 @@ export default { ...@@ -71,6 +72,9 @@ export default {
// console.log("model", this.model); // console.log("model", this.model);
}, },
methods: { methods: {
emitPopupClose(){
this.$EventBus.$emit("emitPopupClose",{id:this.model.id,overRun: !this.notExceed});
},
convertDict(type, value) { convertDict(type, value) {
for (let item of store.state.dicts[type]) { for (let item of store.state.dicts[type]) {
if (item.code == value) { if (item.code == value) {
...@@ -146,6 +150,15 @@ export default { ...@@ -146,6 +150,15 @@ export default {
color: white; color: white;
display: flex; display: flex;
align-items: center; align-items: center;
position: relative;
div{
position: absolute;
cursor: pointer;
right: 3px;
top: 18px;
font-weight: bold;
font-size: 20px;
}
span { span {
display: inline-block; display: inline-block;
......
<template> <template>
<div id="holo_historyCameraContainer" class="eventCameraContainer" v-show="true"> <div id="holo_historyCameraContainer" class="eventCameraContainer" v-show="true">
<div id="historyCameraContainer" class="historyCameraContainer"> <div id="historyCameraContainer" class="historyCameraContainer">
<div class="cameraVideoShow" :key="index" v-for="(item, index) of channels" v-show="true" <div class="cameraVideoShow" :key="index" v-for="(item, index) of urls" v-show="true"
:id="`videoVisibles${item}`"> :id="`videoVisibles${item}`">
<loop-video class="holo_his" ref="hisVideo" :autoplay="true" :timeModel="timeDuration" :channel="item"></loop-video> <!-- <loop-video @loadEnd="loadEnd" class="holo_his" ref="hisVideo" :autoplay="true" :timeModel="timeDuration" :channel="item"></loop-video>-->
<video :src="item" style="object-fit: fill;width: 100%;height: 100%;" @canplay="videoCanPlay" autoplay
muted
loop
class="videoControl" ref="loopVideoPlayer">
<!-- <source :src="item" type="video/mp4" />-->
<!-- 您的浏览器不支持 video 属性。-->
</video>
</div> </div>
</div> </div>
</div> </div>
...@@ -11,30 +18,41 @@ ...@@ -11,30 +18,41 @@
<script> <script>
import LoopVideo from "../../../components/Standard/loopVideo.vue"; import LoopVideo from "../../../components/Standard/loopVideo.vue";
export default { export default {
name: "historyVideos", name: "historyVideos",
components: { components: {
LoopVideo, LoopVideo,
}, },
props: { props: {
channels: { // channels: {
// type: Array,
// default() {
// return ['2', '9']
// }
// },
urls: {
type: Array, type: Array,
default() { default() {
return ['2', '9'] return []
} }
}, },
timeDuration: { // timeDuration: {
type: Object, // type: Object,
default() { // default() {
return { // return {
startTime: '', // startTime: '',
endTime: '' // endTime: ''
} // }
} // }
// },
}, },
mounted() {
console.log('urls', this.urls)
}, },
data() { data() {
return { return {
ready: false
} }
}, },
computed: {}, computed: {},
...@@ -46,6 +64,12 @@ export default { ...@@ -46,6 +64,12 @@ export default {
// } // }
// } // }
// } // }
videoCanPlay() {
if (!this.ready) {
this.ready = true
this.$emit('isReady')
}
},
}, },
}; };
</script> </script>
...@@ -64,8 +88,9 @@ export default { ...@@ -64,8 +88,9 @@ export default {
border: 1px solid rgba(83, 146, 189, 1); border: 1px solid rgba(83, 146, 189, 1);
background: rgba(10, 26, 41, 0.9); background: rgba(10, 26, 41, 0.9);
border-radius: 6px; border-radius: 6px;
.holo_his{
border: 1px solid rgba(255,255,255,0.3); .holo_his {
border: 1px solid rgba(255, 255, 255, 0.3);
} }
......
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