Forráskód Böngészése

增加防爆扩音图标点击弹窗;报警声音联动;控制台输出整理

fan 2 hónapja
szülő
commit
1cda6f92ec
30 módosított fájl, 747 hozzáadás és 160 törlés
  1. 3 3
      public/js/config.js
  2. 23 23
      public/js/fbky.js
  3. 2 1
      src/components/ImageVideo/CanvasVideo.vue
  4. 2 1
      src/components/ImageVideo/index.vue
  5. 2 2
      src/components/ImageVideoORI/index.vue
  6. 1 0
      src/store/getters.js
  7. 7 0
      src/store/modules/globalConfig.js
  8. 473 0
      src/views/basePage/components/dialog/SoundElementDialog.vue
  9. 1 0
      src/views/basePage/components/dialog/index.js
  10. 4 0
      src/views/basePage/index.vue
  11. 11 1
      src/views/basePage/mixins/LoadLayer/JGYT.js
  12. 6 3
      src/views/basePage/mixins/LoadLayer/fbky.js
  13. 21 4
      src/views/basePage/mixins/LoadLayer/fire.js
  14. 19 12
      src/views/basePage/mixins/LoadLayer/perimeter.js
  15. 33 28
      src/views/basePage/mixins/MapEvent.js
  16. 2 1
      src/views/basePage/mixins/MqttUtil.js
  17. 3 3
      src/views/basePage/panels/IntelligentVideo/index.vue
  18. 16 16
      src/views/basePage/panels/Overview.vue
  19. 1 1
      src/views/basePage/panels/RiskHint.vue
  20. 7 7
      src/views/basePage/panels/RiskStatistics/index.vue
  21. 27 21
      src/views/components/dialog/AccessControlDialog.vue
  22. 9 0
      src/views/components/dialog/AlarmAudioDialog.vue
  23. 56 25
      src/views/components/dialog/JGYTControlDialog/index.vue
  24. 1 1
      src/views/components/dialog/SoundDialog/Fbky.vue
  25. 10 4
      src/views/components/dialog/SoundDialog/index.vue
  26. 2 2
      src/views/components/dialog/VideoImageWindow copy.vue
  27. 2 1
      src/views/components/dialog/VideoImageWindow.vue
  28. 1 0
      src/views/videoMonitor/components/videoContent.vue
  29. 1 0
      src/views/videoMonitorType/components/videoContent.vue
  30. 1 0
      vue.config.js

+ 3 - 3
public/js/config.js

@@ -628,7 +628,7 @@ const GY_STATIONS = [
     positioningBuildId: '002001',
     direction: 'right',
     position: [106.62632139900707, 26.650595691076745, 1.4650695463064403],
-    layers: ['周界', '泄漏', '摄像头'],
+    layers: ['周界', '泄漏', '摄像头', '火灾', '防爆扩音'],
     webRTCUrl: "wss://dispatcher:1443/webrtc",
     // webRTCUrl: "wss://192.168.10.39:1443/webrtc",
     admin: "8889",
@@ -655,7 +655,7 @@ const GY_STATIONS = [
     positioningBuildId: '002002',
     direction: 'right',
     position: [106.62631864686837, 26.650589347228493, 1.4654720522226603],
-    layers: ['周界', '泄漏', '摄像头'],
+    layers: ['周界', '泄漏', '摄像头', '防爆扩音'],
     webRTCUrl: "wss://192.168.20.31:1443/webrtc",
     admin: "8889",
     password: "123456",
@@ -668,7 +668,7 @@ const GY_STATIONS = [
     positioningBuildId: '002003',
     direction: 'right',
     position: [106.6263209022603, 26.650585399041464, 1.4657059185197159],
-    layers: ['周界', '泄漏', '摄像头'],
+    layers: ['周界', '泄漏', '摄像头', '防爆扩音'],
     webRTCUrl: "wss://11.100.46.233:1443/webrtc",
     admin: "8889",
     password: "123456",

+ 23 - 23
public/js/fbky.js

@@ -6,19 +6,19 @@ const FBKYLIST = [
     id: '101', buildId: "002001", show: true, number: "801", name: "场站大门口", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 142993, y: 181829 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '102', buildId: "002001", show: true, number: "802", name: "工艺区入口", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 170785, y: 168499 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '102', buildId: "002001", show: true, number: "802", name: "工艺区入口", departmentId: "657316479015854080", cameraID: '654277056766418944', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 170785, y: 168499 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '103', buildId: "002001", show: true, number: "806", name: "车棚南侧", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 93349, y: 157396 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '103', buildId: "002001", show: true, number: "806", name: "车棚南侧", departmentId: "657316479015854080", cameraID: '654277056569286656', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 93349, y: 157396 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '104', buildId: "002001", show: true, number: "805", name: "工艺区西侧", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 123543, y: 110370 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '104', buildId: "002001", show: true, number: "805", name: "工艺区西侧", departmentId: "657316479015854080", cameraID: '654277056665755648', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 123543, y: 110370 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '105', buildId: "002001", show: true, number: "804", name: "工艺区西北角", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 141861, y: 104851 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '105', buildId: "002001", show: true, number: "804", name: "工艺区西北角", departmentId: "657316479015854080", cameraID: '654277056518955008', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 141861, y: 104851 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '106', buildId: "002001", show: true, number: "803", name: "工艺区东北角", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 195886, y: 130349 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '106', buildId: "002001", show: true, number: "803", name: "工艺区东北角", departmentId: "657316479015854080", cameraID: '654277056615424000', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 195886, y: 130349 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
     id: '107', buildId: "002001", show: true, number: "807", name: "控制器音柱", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 127662, y: 146190 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
@@ -30,10 +30,10 @@ const FBKYLIST = [
     id: '109', buildId: "002001", show: true, number: "809", name: "站控室吸顶扬声器2", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '扩音喇叭', description: '扩音喇叭', height: '10', location: { buildId: "002001", floorNo: 1, x: 124892, y: 146938 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '110', buildId: "002001", show: false, number: "11903", name: "工艺区喊话", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '广播', description: '工艺区喊话广播', height: '10', location: { buildId: "002001", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '110', buildId: "002001", show: false, number: "11903", name: "工艺区喊话", departmentId: "657316479015854080", cameraID: '654277056615424000', type: '广播', description: '工艺区喊话广播', height: '10', location: { buildId: "002001", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '111', buildId: "002001", show: false, number: "21903", name: "生活区喊话", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '广播', description: '生活区喊话广播', height: '10', location: { buildId: "002001", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '111', buildId: "002001", show: false, number: "21903", name: "生活区喊话", departmentId: "657316479015854080", cameraID: '654277056569286656', type: '广播', description: '生活区喊话广播', height: '10', location: { buildId: "002001", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
     id: '112', buildId: "002001", show: false, number: "31903", name: "站控室喊话", departmentId: "657316479015854080", cameraID: '654277056716087296', type: '广播', description: '站控室喊话广播', height: '10', location: { buildId: "002001", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
@@ -45,19 +45,19 @@ const FBKYLIST = [
     id: '200', buildId: "002003", show: false, number: "900", name: "值班室", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "IP电话", description: "IP电话", height: '10', location: { buildId: "002003", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '201', buildId: "002003", show: true, number: "901", name: "门卫室门口", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 151147, y: 111633 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '201', buildId: "002003", show: true, number: "901", name: "门卫室门口", departmentId: "657316587124039680", cameraID: '662601469953843207', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 151147, y: 111633 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '202', buildId: "002003", show: true, number: "902", name: "综合值班室对面", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 175525, y: 129842 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '202', buildId: "002003", show: true, number: "902", name: "综合值班室对面", departmentId: "657316587124039680", cameraID: '662601469953843203', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 175525, y: 129842 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '203', buildId: "002003", show: true, number: "903", name: "综合值班室右侧", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 180110, y: 148691 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '203', buildId: "002003", show: true, number: "903", name: "综合值班室右侧", departmentId: "657316587124039680", cameraID: '662601469953843202', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 180110, y: 148691 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '204', buildId: "002003", show: true, number: "904", name: "工艺区西南角", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 141669, y: 190188 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '204', buildId: "002003", show: true, number: "904", name: "工艺区西南角", departmentId: "657316587124039680", cameraID: '662601469953843206', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 141669, y: 190188 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '205', buildId: "002003", show: true, number: "905", name: "工艺区西北角", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 104106, y: 161964 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '205', buildId: "002003", show: true, number: "905", name: "工艺区西北角", departmentId: "657316587124039680", cameraID: '662601469953843201', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 104106, y: 161964 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
     id: '206', buildId: "002003", show: true, number: "906", name: "值班室音柱", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 153289, y: 148709 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
@@ -66,39 +66,39 @@ const FBKYLIST = [
     id: '207', buildId: "002003", show: true, number: "907", name: "值班室吸顶音箱", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002003", floorNo: 1, x: 157210, y: 148418 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '208', buildId: "002003", show: false, number: "1903", name: "工艺区喊话", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "广播", description: "工艺区喊话广播", height: '10', location: { buildId: "002003", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '208', buildId: "002003", show: false, number: "1903", name: "工艺区喊话", departmentId: "657316587124039680", cameraID: '662601469953843201', type: "广播", description: "工艺区喊话广播", height: '10', location: { buildId: "002003", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '209', buildId: "002003", show: false, number: "2903", name: "生活区喊话", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "广播", description: "生活区喊话广播", height: '10', location: { buildId: "002003", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '209', buildId: "002003", show: false, number: "2903", name: "生活区喊话", departmentId: "657316587124039680", cameraID: '662601469953843204', type: "广播", description: "生活区喊话广播", height: '10', location: { buildId: "002003", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
     id: '210', buildId: "002003", show: false, number: "99997", name: "全喊话", departmentId: "657316587124039680", cameraID: '654277056716087296', type: "广播", description: "全喊话广播", height: '10', location: { buildId: "002003", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '300', buildId: "002002", show: false, number: "900", name: "机柜间", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "IP电话", description: "IP电话", height: '10', location: { buildId: "002002", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '300', buildId: "002002", show: false, number: "900", name: "机柜间", departmentId: "657316533462114304", cameraID: '654273560088420352', type: "IP电话", description: "IP电话", height: '10', location: { buildId: "002002", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '301', buildId: "002002", show: true, number: "901", name: "大门口", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 219596, y: 249905 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '301', buildId: "002002", show: true, number: "901", name: "大门口", departmentId: "657316533462114304", cameraID: '654270083257868288', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 219596, y: 249905 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '302', buildId: "002002", show: true, number: "902", name: "综合楼前东", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 235655, y: 222241 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '302', buildId: "002002", show: true, number: "902", name: "综合楼前东", departmentId: "657316533462114304", cameraID: '654273560000339968', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 235655, y: 222241 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '303', buildId: "002002", show: true, number: "903", name: "综合楼前西", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 210903, y: 227583 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '303', buildId: "002002", show: true, number: "903", name: "综合楼前西", departmentId: "657316533462114304", cameraID: '654273560000339969', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 210903, y: 227583 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '304', buildId: "002002", show: true, number: "904", name: "工艺区东南角", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 261258, y: 196725 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '304', buildId: "002002", show: true, number: "904", name: "工艺区东南角", departmentId: "657316533462114304", cameraID: '654273560042283008', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 192106, y: 139713 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '305', buildId: "002002", show: true, number: "905", name: "工艺区西南角", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 150147, y: 191562 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '305', buildId: "002002", show: true, number: "905", name: "工艺区西南角", departmentId: "657316533462114304", cameraID: '654273559945814016', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 150147, y: 191562 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '306', buildId: "002002", show: true, number: "906", name: "机柜间音柱", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 223637, y: 236999 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '306', buildId: "002002", show: true, number: "906", name: "机柜间音柱", departmentId: "657316533462114304", cameraID: '654273560088420352', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 223637, y: 236999 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '307', buildId: "002002", show: true, number: "907", name: "库房吸顶音箱", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 228977, y: 223699 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '307', buildId: "002002", show: true, number: "907", name: "库房吸顶音箱", departmentId: "657316533462114304", cameraID: '654273560134557696', type: "扩音喇叭", description: "扩音喇叭", height: '10', location: { buildId: "002002", floorNo: 1, x: 228977, y: 223699 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
   {
-    id: '308', buildId: "002002", show: false, number: "99997", name: "全", departmentId: "657316533462114304", cameraID: '654277056716087296', type: "广播", description: "广播", height: '10', location: { buildId: "002002", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
+    id: '308', buildId: "002002", show: false, number: "99997", name: "全", departmentId: "657316533462114304", cameraID: '654273560000339970', type: "广播", description: "广播", height: '10', location: { buildId: "002002", floorNo: 1, x: 125200, y: 151989 }, iconPath: "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
   },
 ]

+ 2 - 1
src/components/ImageVideo/CanvasVideo.vue

@@ -132,7 +132,8 @@ export default {
     // 初始化WebSocket
     initWebSocket() {
       try {
-        const host = VUE_APP_BASE_WS() + '/VideoOverWebSocket'
+        // const host = VUE_APP_BASE_WS() + '/VideoOverWebSocket'
+        const host = 'wss://' + window.location.host + BASE_URL + '/VideoOverWebSocket'
         this.ws = new WebSocket(host)
 
         Object.entries(this.wsEventHandlers).forEach(([event, handler]) => {

+ 2 - 1
src/components/ImageVideo/index.vue

@@ -55,7 +55,8 @@ export default {
   },
   methods: {
     initWebSocket() {
-      const host = VUE_APP_BASE_WS() + '/VideoOverWebSocket'
+      // const host = VUE_APP_BASE_WS() + '/VideoOverWebSocket'
+      const host = 'wss://' + window.location.host + BASE_URL + '/VideoOverWebSocket'
       // WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https
       this.ws = new WebSocket(host)
       this.ws.onopen = this.websocketOnopen

+ 2 - 2
src/components/ImageVideoORI/index.vue

@@ -268,8 +268,8 @@ export default {
   },
   methods: {
     init(str) {
-      this.ws = new WebSocket(VUE_APP_BASE_WS() + "/VideoOverWebSocket");
-      // this.ws = new WebSocket("ws://" + window.location.host + process.env.VUE_APP_BASE_API + "/VideoOverWebSocket");
+      // this.ws = new WebSocket(VUE_APP_BASE_WS() + "/VideoOverWebSocket");
+      this.ws = new WebSocket("wss://" + window.location.host + process.env.VUE_APP_BASE_API + "/VideoOverWebSocket");
       let _this = this;
       this.ws.onmessage = function (evt) {
         if (typeof evt.data === "string") {

+ 1 - 0
src/store/getters.js

@@ -11,6 +11,7 @@ const getters = {
   alarmAudio: (state) => state.globalConfig.alarmAudio,//全局报警声音
   oneKey110: (state) => state.globalConfig.oneKey110,//一键110
   soundDialog: (state) => state.globalConfig.soundDialog,//防爆扩音
+  soundElementDialog: (state) => state.globalConfig.soundElementDialog,//防爆扩音图层元素弹窗
   accessControlDialog: (state) => state.globalConfig.accessControlDialog,//门禁控制
   jgytControlDialog: (state) => state.globalConfig.jgytControlDialog,//激光云台
   personListDialog: (state) => state.globalConfig.personListDialog,//站内人员统计

+ 7 - 0
src/store/modules/globalConfig.js

@@ -9,6 +9,7 @@ const state = {
   alarmAudio: { show: false, alarmType: "all" },
   oneKey110: { show: false, dialogMsg: {}, type: "all" },
   soundDialog: { show: false, dialogMsg: {}, type: "all" },
+  soundElementDialog: { show: false, dialogMsg: {}, type: "all" },
   accessControlDialog: { show: false, dialogMsg: {}, type: "all" },
   jgytControlDialog: { show: false, dialogMsg: {}, type: "all" },
   personListDialog: { show: false, dialogMsg: [], type: "all" },
@@ -51,6 +52,9 @@ const mutations = {
   SET_SOUNDDIALOG(state, data) {
     state.soundDialog = data;
   },
+  SET_SOUNDELEMENTDIALOG(state, data) {
+    state.soundElementDialog = data;
+  },
   SET_ACCESSCONTROLDIALOG(state, data) {
     state.accessControlDialog = data;
   },
@@ -166,6 +170,9 @@ const actions = {
   setSoundDialog({ commit }, data) {
     commit("SET_SOUNDDIALOG", data);
   },
+  setSoundElementDialog({ commit }, data) {
+    commit("SET_SOUNDELEMENTDIALOG", data);
+  },
   setAccessControlDialog({ commit }, data) {
     commit("SET_ACCESSCONTROLDIALOG", data);
   },

+ 473 - 0
src/views/basePage/components/dialog/SoundElementDialog.vue

@@ -0,0 +1,473 @@
+<template>
+  <base-drag-bg-dialog
+    :dialogConfig="baseDialogConfig"
+    @handleClose="closeDialog"
+  >
+    <!-- 弹窗内容 -->
+    <div class="dialog_box">
+      <!-- 内容 -->
+      <div class="detail-table-box">
+        <!-- v-show="false" -->
+        <el-row v-show="false">
+          <fbky
+            @onlineDis:="onlineDisable"
+            :curFbkyData="webSocketParams"
+            :ringNumber="ringNumber"
+            :callDisable="callDisable"
+          />
+        </el-row>
+        <el-row>
+          <el-col>
+            <div class="search-box">
+              <div class="search-item">
+                <span class="search-label">所在场站:</span>
+                <el-select
+                  value-key="id"
+                  v-model="department"
+                  style="width: 110px"
+                  size="mini"
+                  disabled
+                  clearable
+                  placeholder="请选择场站"
+                  @change="searchData($event)"
+                >
+                  <el-option
+                    v-for="item in departmentOptions"
+                    :key="item.id"
+                    :value="item"
+                    :label="item.name"
+                  ></el-option>
+                </el-select>
+              </div>
+              <div class="search-btn2" @click="openAll">
+                <el-button size="mini" type="success">打开</el-button>
+              </div>
+              <div class="search-btn2" @click="closeAll">
+                <el-button size="mini" type="warning">关闭</el-button>
+              </div>
+              <!-- <div class="search-btn2" @click="openBroadcast">
+                <el-button size="mini" type="success">广播</el-button>
+              </div>
+              <div class="search-btn2" @click="closeBroadcast">
+                <el-button size="mini" type="danger">停止广播</el-button>
+              </div> -->
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <div class="select">
+              <div class="select_title">
+                <!-- 主机状态:
+                <el-tag type="" effect="dark" v-show="online">已连接</el-tag>
+                <el-tag type="info" effect="dark" v-show="!online">未连接</el-tag> -->
+                <span>防爆设备:</span>
+                <span style="margin-left: 10px">{{
+                  this.openningTile ? this.openningTile : "暂无"
+                }}</span>
+              </div>
+            </div>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col class="fbky">
+            <div class="select">
+              <div class="select_title">
+                现场监视:<span>{{
+                  this.cameraInfo.name ? this.cameraInfo.name : "暂无"
+                }}</span>
+              </div>
+            </div>
+            <div class="select_video">
+              <!-- 通话视频标签 -->
+              <div class="select_video_main">
+                <video-image-window
+                  :cameraData="cameraInfo"
+                  :cameraId="cameraInfo.id"
+                />
+              </div>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+  </base-drag-bg-dialog>
+</template>
+<script>
+import BaseTableList from "@/views/components/base/BaseTableList";
+import BaseDragBgDialog from "@/views/components/base/BaseDragBgDialog.vue";
+import VideoImageWindow from "@/views/components/dialog/VideoImageWindow.vue";
+import Fbky from "@/views/components/dialog/SoundDialog/Fbky.vue";
+import { dealAlarm } from "@/API/common";
+import { getDepartmentByPid } from "@/API/alarm";
+import { getElementList } from "@/API/visual";
+import { getCameraList } from "@/API/custom";
+import { mapGetters } from "vuex";
+export default {
+  name: "soundElementDialog",
+  components: { BaseDragBgDialog, BaseTableList, VideoImageWindow, Fbky },
+  watch: {
+    "soundElementDialog.show": {
+      handler(newVal) {
+        this.baseDialogConfig.show = newVal;
+        if (newVal) {
+          this.webSocketParams.id++;
+          this.info = this.soundElementDialog.dialogMsg.data;
+          setTimeout(() => {
+            this.exchangeVideo(
+              this.soundElementDialog.dialogMsg?.data?.cameraID
+            );
+          }, 300);
+        }
+      },
+      // deep: true,
+      immediate: true,
+    },
+    info: {
+      handler(newValue) {
+        setTimeout(() => {
+          // console.log("扩音设备基础数据", this.info, this.buildInfo);
+          if (newValue.name) {
+            this.openningTile = newValue.name;
+          }
+          if (newValue.cameraID) {
+            this.exchangeVideo(newValue.cameraID);
+          }
+        }, 200);
+      },
+      deep: true,
+    },
+    "department.id": {
+      handler(newValue, oldValue) {},
+      deep: true,
+    },
+    buildInfo: {
+      handler(newValue) {
+        // console.log("当前值:", newValue);
+        this.department = GY_STATIONS.filter(
+          (e) => e.buildId == newValue.id
+        )[0];
+        setTimeout(() => {
+          this.searchData(this.department);
+        }, 200);
+      },
+      deep: true,
+    },
+    online: {
+      handler(newValue) {
+        // console.log("当前值:", newValue);
+      },
+      deep: true,
+    },
+  },
+  data() {
+    return {
+      online: false,
+      BASE_URL,
+      dataList: [
+        {
+          id: "",
+          name: "",
+        },
+      ],
+      info: {},
+      webSocketParams: {
+        id: 1,
+        admin: "8889",
+        password: "123456",
+        url: "wss://dispatcher:1443/webrtc",
+        // url: "wss://192.168.10.39:1443/webrtc",
+        localIp: "",
+      },
+      ringNumber: "809",
+      callDisable: false,
+      openningTile: "暂无",
+      baseDialogConfig: {
+        dialogId: "soundElementDialog",
+        show: false,
+        title: "防爆扩音",
+        width: 700,
+        height: 630,
+        center: true,
+        zIndex: 10,
+      },
+      tableConfig: {
+        needIndex: true,
+        height: 456,
+        header: [
+          { title: "名称", prop: "name", width: "" },
+          { title: "拨号", prop: "number", width: "" },
+          { title: "描述", prop: "description", width: "" },
+          {
+            title: "操作",
+            prop: "operation",
+            width: "200px",
+            btns: [
+              { btnName: "呼叫", btnType: "open" },
+              { btnName: "关闭", btnType: "close" },
+            ],
+          },
+        ],
+        tableData: [],
+        rowClick: this.location,
+      },
+      openningList: [{ type: "", label: "设备一" }],
+      cameraList: [{ id: "1", name: "摄像头1" }],
+      cameraInfo: {
+        id: "1",
+        url: "",
+      },
+      departmentOptions: [],
+      department: {
+        id: "657316479015854080",
+      },
+    };
+  },
+  created() {
+    this.initSoundList();
+    this.getCameraList();
+    // this.getDepartmentByPid();
+    this.departmentOptions = GY_STATIONS.filter((e) => e.id !== "");
+  },
+  computed: {
+    ...mapGetters(["soundElementDialog", "buildInfo"]),
+  },
+  mounted() {},
+  methods: {
+    onlineDisable(m) {
+      this.online = m;
+      // console.log("接收数值", m, this.online);
+    },
+    async getCameraList() {
+      try {
+        const params = {
+          enable: true,
+        };
+        const res = await getCameraList(params);
+        this.cameraList = res.data.content;
+        // console.log("摄像头列表", this.cameraList);
+      } catch (err) {
+        console.log(err);
+      }
+    },
+    async initSoundList() {
+      try {
+        const res = await getElementList({ id: "784748250065281024" });
+        this.dataList = FBKYLIST;
+        // console.log("防爆扩音列表", res, this.dataList);
+        // content.forEach((d) => {
+        //   d.GPSPoints = this.transPosition(d.pointList);
+        // });
+        // elementData.push(...content)
+      } catch (err) {
+        console.log(err);
+      }
+    },
+    closeDialog() {
+      this.$store.dispatch("globalConfig/setSoundElementDialog", {
+        show: false,
+        dialogMsg: {},
+        type: "All",
+      });
+    },
+    async handleDeal() {
+      try {
+        await dealAlarm({
+          id: this.soundElementDialog.dialogMsg.id,
+          dealContent: this.soundElementDialog.dialogMsg.dealContent,
+        });
+        this.closeDialog();
+        // 刷新报警列表页
+      } catch (err) {
+        console.log(err);
+      }
+    },
+    handleTableClick(data, btnType) {
+      if (btnType === "open") {
+        console.log("打开扩音", data);
+        this.ringNumber = data.number;
+        setTimeout(() => {
+          this.callDisable = true;
+        }, 200);
+      }
+      if (btnType === "close") {
+        console.log("关闭扩音", data);
+        this.callDisable = false;
+        this.cameraInfo = {
+          id: "1",
+          url: "",
+        };
+      }
+    },
+    async getDepartmentByPid() {
+      try {
+        const p = { id: "0" };
+        const res = await getDepartmentByPid(p);
+        let { content } = res.data;
+        content.forEach((element) => {
+          element.value = element.id;
+          element.label = element.departmentName;
+          if (element.children) {
+            element.children.forEach((element2) => {
+              element2.value = element2.id;
+              element2.label = element2.departmentName;
+            });
+          }
+        });
+        this.departmentOptions = content;
+      } catch (err) {
+        console.log(err);
+      }
+    },
+    searchData(e) {
+      if (e?.webRTCUrl) {
+        this.webSocketParams.admin = e.admin;
+        this.webSocketParams.password = e.password;
+        this.webSocketParams.url = e.webRTCUrl;
+      } else {
+        this.webSocketParams.url = "";
+      }
+    },
+    exchangeVideo(id) {
+      for (let i = 0; i < this.cameraList.length; i++) {
+        const c = this.cameraList[i];
+        if (c.id === id) {
+          // console.log("筛选摄像头", this.cameraInfo);
+          return (this.cameraInfo = c);
+        }
+      }
+    },
+    openAll() {
+      // this.ringNumber = "99997";
+      // this.callDisable = true;
+      this.handleTableClick(this.info, "open");
+    },
+    closeAll() {
+      // this.callDisable = false;
+      // this.openningTile = "暂无";
+      this.handleTableClick(this.info, "close");
+    },
+    handleClose(item) {
+      let index = -1;
+      for (let i = 0; i < this.openningList.length; i++) {
+        const e = this.openningList[i];
+        if (e.label === item.label) {
+          index = i;
+          this.openningList.splice(index, 1);
+        }
+      }
+    },
+  },
+  beforeDestroy() {
+    this.cameraInfo = {
+      id: "1",
+      url: "",
+    };
+  },
+};
+</script>
+<style lang="less" scoped>
+.dialog_box {
+  width: 100%;
+  height: 100%;
+  box-sizing: border-box;
+  .search-box {
+    width: 100%;
+    display: flex;
+    margin: 6px /* 10/192 */ 0;
+    color: #fff;
+    .search-item {
+      display: flex;
+      .search-label {
+        margin-left: 16px;
+        display: inline-block;
+        font-size: 0.083333rem;
+        line-height: 28px;
+        text-align: center;
+        word-break: keep-all;
+      }
+      .search-date.el-input__inner {
+        width: 1.666667rem /* 320/192 */;
+        height: 28px;
+        border-radius: 0;
+        margin-right: 0;
+      }
+      .el-input {
+        ::v-deep .el-input__inner {
+          height: 28px;
+          border-radius: 0;
+          color: #fff;
+        }
+      }
+      .el-select {
+        margin-right: 0.052083rem /* 10/192 */;
+        ::v-deep .el-input__inner {
+          width: 0.572917rem /* 110/192 */;
+          height: 28px;
+          border-radius: 0;
+          color: #fff;
+          // padding-right: 0.182292rem /* 35/192 */;
+        }
+        ::v-deep .el-input__icon {
+          line-height: 28px;
+        }
+      }
+    }
+    .search-btn2 {
+      box-sizing: content-box;
+      text-align: center;
+      justify-content: right;
+      color: #fff;
+      font-size: 0.072917rem /* 14/192 */;
+      cursor: pointer;
+      border-radius: 0;
+      margin-left: 10px;
+      &:hover {
+        border-color: #ccc;
+      }
+      img {
+        width: 0.083333rem /* 16/192 */;
+        height: 0.083333rem /* 16/192 */;
+      }
+    }
+  }
+  .select {
+    text-align: left;
+    font-size: 0.083333rem /* 16/192 */;
+    line-height: 30px /* 50/192 */;
+    color: #fff;
+    .select_title {
+      padding: 6px 6px 6px 16px;
+    }
+  }
+  .fbky {
+    padding-left: 10px;
+    .select {
+      text-align: left;
+      font-size: 0.083333rem /* 16/192 */;
+      line-height: 30px /* 50/192 */;
+      color: #fff;
+      .select_title {
+        padding: 6px;
+      }
+    }
+    .select_list {
+      height: 30px;
+      overflow: auto;
+      max-height: 66px;
+      .select-tag {
+        margin: 2px;
+      }
+    }
+    .select_video {
+      width: 100%;
+      height: 440px;
+      position: relative;
+      .select_video_main {
+        width: 100%;
+        height: 100%;
+      }
+    }
+  }
+}
+</style>

+ 1 - 0
src/views/basePage/components/dialog/index.js

@@ -15,5 +15,6 @@ export { default as OverlapPersonDialog } from "./OverlapPersonDialog.vue";
 export { default as OverlapCameraDialog } from "./OverlapCameraDialog.vue";
 export { default as OverlapFireDialog } from "./OverlapFireDialog.vue";
 export { default as BuildingPersonDialog } from "./BuildingPersonDialog.vue";
+export { default as SoundElementDialog } from "./SoundElementDialog.vue";
 
 export { default as AlarmMapDialog } from "./AlarmMapDialog.vue";

+ 4 - 0
src/views/basePage/index.vue

@@ -30,6 +30,8 @@
     <last-position-dialog />
     <last-position-player />
     <gather-alarm-dialog />
+    <!-- 防爆扩音 -->
+    <sound-element-dialog />
     <!-- 追视窗口 -->
     <template v-for="(id, i) in videoDialogIds">
       <video-image-window :key="id" :cameraId="id" :num="i" />
@@ -192,6 +194,7 @@ import {
   OneKeyAlarmDialog,
   ModelViewToolbarDialog,
   AlarmMapDialog,
+  SoundElementDialog,
 } from "./components/dialog/index";
 import Fold from "./panels/Fold";
 import Overview from "./panels/Overview";
@@ -247,6 +250,7 @@ export default {
     OneKeyAlarmDialog,
     ModelViewToolbarDialog,
     AlarmMapDialog,
+    SoundElementDialog,
     // ...comObj,
     Fold,
     Overview,

+ 11 - 1
src/views/basePage/mixins/LoadLayer/JGYT.js

@@ -207,7 +207,9 @@ export default {
             value: '3d',
           })
           await this.$store.dispatch('model/setBuildInfoByBuildId', curStation.buildId)
-          this.animationJGYT(data)
+          setTimeout(() => {
+            this.animationJGYT(data)
+          }, 3000)
         }
       } else {
         // this.animationJGYT(data)
@@ -223,6 +225,10 @@ export default {
       const curJGYT = this.jgytTagsData.find(e => e.id === data.id)
       const cameraId = curJGYT?.cameraId
       if (data.alarmType > 0) {
+        this.$store.dispatch("globalConfig/setAlarmAudio", {
+          show: true,
+          alarmType: data.alarmType,
+        });
         setTimeout(() => {
           entity1.show = true
           entity2.show = true
@@ -242,6 +248,10 @@ export default {
           })
         }, 1000)
       } else {
+        this.$store.dispatch("globalConfig/setAlarmAudio", {
+          show: false,
+          alarmType: data.alarmType,
+        });
         entity1.show = false
         entity2.show = false
         this.$store.dispatch('globalConfig/updateAlarmDataObj', {

+ 6 - 3
src/views/basePage/mixins/LoadLayer/fbky.js

@@ -152,7 +152,7 @@ export default {
               item.show = true
               setTimeout(() => {
                 item.billboard = {
-                  image: BASE_URL + "/Resource/Portrait/2024/12/05/icon_HZ_sel@2x_2d5703e3.png",
+                  image: BASE_URL + "/Resource/Portrait/2024/12/11/icon_KY_nor@2x_2aba6726.png",
                   width: 50,
                   height: 50,
                   // verticalOrigin: VerticalOrigin.BOTTOM,
@@ -174,9 +174,12 @@ export default {
                   fbky: [item.properties.details._value],
                 })
                 //视频弹窗
-                if (!!data?.camera?.id) {
-                  this.$store.dispatch('dialog/openVideoDialog', data.camera.id)
+                if (!!data?.cameraID) {
+                  this.$store.dispatch('dialog/openVideoDialog', data.cameraID)
                 }
+                // if (!!data?.camera?.id) {
+                //   this.$store.dispatch('dialog/openVideoDialog', data.camera.id)
+                // }
               }, 1000)
             } else {
               item.show = true

+ 21 - 4
src/views/basePage/mixins/LoadLayer/fire.js

@@ -1,6 +1,6 @@
 import { Entity, NearFarScalar, PolylineDashMaterialProperty, DistanceDisplayCondition, Cartesian3, Color, PropertyBag } from "cesium";
 import { getTagList } from "@/API/fire";
-import { flyToByViewer, addNewDatasource } from "@/utils/mapUtil";
+import { flyToByViewer, addNewDatasource, flyToPerspective } from "@/utils/mapUtil";
 import { _locate } from '@/utils'
 import { getViewer } from "@/store/map/mapService";
 import { mapGetters } from 'vuex'
@@ -129,7 +129,7 @@ export default {
           await this.$store.dispatch('model/setBuildInfoByBuildId', curStation.buildId)
           setTimeout(() => {
             this.animationFire(data)
-          }, 2000)
+          }, 3000)
         }
       } else {
         this.animationFire(data)
@@ -145,13 +145,17 @@ export default {
           const { longitude, latitude } = this.buildInfo.gpsCoordinate0
           const gpsAlarmPoint = _locate(item.properties.details._value.location.x, item.properties.details._value.location.y, { x: longitude, y: latitude })
           if (data.alarmType > 0) {
+            this.$store.dispatch("globalConfig/setAlarmAudio", {
+              show: true,
+              alarmType: data.alarmType,
+            });
             //报警点标记
             if (data.alarmPoint) {
               //地图元素
               item.show = true
               setTimeout(() => {
                 item.billboard = {
-                  image: BASE_URL + "/Resource/Portrait/2024/12/05/icon_HZ_sel@2x_2d5703e3.png",
+                  image: BASE_URL + item.properties.details._value.alarmIconPath,
                   width: 50,
                   height: 50,
                   // verticalOrigin: VerticalOrigin.BOTTOM,
@@ -159,7 +163,16 @@ export default {
                 }
                 item.position = Cartesian3.fromDegrees(gpsAlarmPoint.x, gpsAlarmPoint.y, item.properties.details._value.height)
                 //视角漂移
-                flyToByViewer(item)
+                // flyToByViewer(item)
+                flyToPerspective({
+                  destination: Cartesian3.fromDegrees(gpsAlarmPoint.x + 0.00026, gpsAlarmPoint.y - 0.0011, 100),
+                  orientation: {
+                    pitch: -0.549380381243696,
+                    heading: 6.181746598877237,
+                    roll: 0.0000025332551629730915, //倾斜视角坐标需要加偏移量
+                  },
+                  duration: 1.5,
+                })
                 //增加属性
                 item.properties.details._value.alarmPoint = data.alarmPoint
                 item.properties.details._value.alarmType = data.alarmType
@@ -190,6 +203,10 @@ export default {
               }, 200)
             }
           } else {
+            this.$store.dispatch("globalConfig/setAlarmAudio", {
+              show: false,
+              alarmType: data.alarmType,
+            });
             // this.$store.dispatch('globalConfig/updateAlarmDataObj', {
             //   fire: this.fireTagsData,
             // })

+ 19 - 12
src/views/basePage/mixins/LoadLayer/perimeter.js

@@ -196,7 +196,7 @@ export default {
           await this.$store.dispatch('model/setBuildInfoByBuildId', curStation.buildId)
           setTimeout(() => {
             this.animationPerimeter(data)
-          }, 2000)
+          }, 3000)
         }
       } else {
         // this.animationPerimeter(data)
@@ -229,6 +229,10 @@ export default {
         let item = dataSource[0].entities.getById(data.segmentId)
         if (!!item) {
           if (data.alarmType > 0 || data.alarmType < 4) {
+            this.$store.dispatch("globalConfig/setAlarmAudio", {
+              show: true,
+              alarmType: data.alarmType,
+            });
             if (data.alarmPoint) {
               //地图元素
               let x = 1
@@ -265,16 +269,16 @@ export default {
                 item.position = Cartesian3.fromDegrees(gpsAlarmPoint.x, gpsAlarmPoint.y, 4.5)
 
                 //视角漂移
-                flyToByViewer(item)
-                // flyToPerspective({
-                //   destination: Cartesian3.fromDegrees(gpsAlarmPoint.x + 0.00026, gpsAlarmPoint.y - 0.0011, 100),
-                //   orientation: {
-                //     pitch: -0.549380381243696,
-                //     heading: 6.181746598877237,
-                //     roll: 0.0000025332551629730915, //倾斜视角坐标需要加偏移量
-                //   },
-                //   duration: 1.5,
-                // })
+                // flyToByViewer(item)
+                flyToPerspective({
+                  destination: Cartesian3.fromDegrees(gpsAlarmPoint.x + 0.00026, gpsAlarmPoint.y - 0.0011, 100),
+                  orientation: {
+                    pitch: -0.549380381243696,
+                    heading: 6.181746598877237,
+                    roll: 0.0000025332551629730915, //倾斜视角坐标需要加偏移量
+                  },
+                  duration: 1.5,
+                })
 
                 //报警分段标记
                 this.perimeterTagsData.forEach(tag => {
@@ -321,7 +325,10 @@ export default {
             this.$store.dispatch('globalConfig/updateAlarmDataObj', {
               perimeter: this.perimeterTagsData,
             })
-
+            this.$store.dispatch("globalConfig/setAlarmAudio", {
+              show: false,
+              alarmType: data.alarmType,
+            });
             item.wall.material = Color.fromCssColorString(color).withAlpha(0.8)
             item.show = this.perimeterTagsShow
             item.billboard = null

+ 33 - 28
src/views/basePage/mixins/MapEvent.js

@@ -173,36 +173,41 @@ export default {
                 type: 'fxqy',
                 detail: { ...data },
               })
-            } else if (type === 'fbky') {
-              console.log("数据内容fbky:----------------", data);
-              const fbkyInfo = pickObj.id.properties._details._value
-              const gpsAlarmPoint = this.transPosition([{ x: fbkyInfo.location.x, y: fbkyInfo.location.y, z: fbkyInfo.height }])
+            } else if (type === 'layer_fbky') {
+              // console.log("数据内容fbky:----------------", data);
+              this.$store.dispatch("globalConfig/setSoundElementDialog", {
+                show: true,
+                dialogMsg: { data },
+                type: "All",
+              });
+              // const fbkyInfo = pickObj.id.properties._details._value
+              // const gpsAlarmPoint = this.transPosition([{ x: fbkyInfo.location.x, y: fbkyInfo.location.y, z: fbkyInfo.height }])
               // console.log('坐标点转化', gpsAlarmPoint);
-              fbkyInfo.alarmType = -1
-              this.mapDialogConfig.fire = []
+              // fbkyInfo.alarmType = -1
+              // this.mapDialogConfig.fbky = []
               // console.log("无报警", this.mapDialogConfig.fbky);
-              this.mapDialogConfig.fire.push({
-                show: false,
-                dialogMsg: { data: fbkyInfo, position: [gpsAlarmPoint[0][0], gpsAlarmPoint[0][1], gpsAlarmPoint[0][2]] },
-              })
-              for (let d of this.mapDialogConfig.fbky) {
-                ; (() => {
-                  setTimeout(() => {
-                    d.show = true
-                    if (d.dialogMsg.data.cameras?.length) {
-                      this.$store.dispatch('dialog/openVideoDialog', d.dialogMsg.data.cameras[0].cameraId)
-                    }
-                    this.$store.dispatch('home/setMapPopupConfig', {
-                      isShow: true,
-                      type: 'point',
-                      position: [gpsAlarmPoint[0][0], gpsAlarmPoint[0][1], gpsAlarmPoint[0][2]],
-                      dialogid: 'fbky_' + d.dialogMsg?.data?.id,
-                      p1: 140,
-                      p2: 236,
-                    })
-                  }, 0)
-                })()
-              }
+              // this.mapDialogConfig.fbky.push({
+              //   show: false,
+              //   dialogMsg: { data: fbkyInfo, position: [gpsAlarmPoint[0][0], gpsAlarmPoint[0][1], gpsAlarmPoint[0][2]] },
+              // })
+              // for (let d of this.mapDialogConfig.fbky) {
+              //   ; (() => {
+              //     setTimeout(() => {
+              //       d.show = true
+              //       if (d.dialogMsg.data.cameras?.length) {
+              //         this.$store.dispatch('dialog/openVideoDialog', d.dialogMsg.data.cameras[0].cameraId)
+              //       }
+              //       this.$store.dispatch('home/setMapPopupConfig', {
+              //         isShow: true,
+              //         type: 'point',
+              //         position: [gpsAlarmPoint[0][0], gpsAlarmPoint[0][1], gpsAlarmPoint[0][2]],
+              //         dialogid: 'fbky_' + d.dialogMsg?.data?.id,
+              //         p1: 140,
+              //         p2: 236,
+              //       })
+              //     }, 0)
+              //   })()
+              // }
               // this.$store.dispatch('dialog/openLayerDetailDialog', {
               //   id: data.id,
               //   type: 'fbky',

+ 2 - 1
src/views/basePage/mixins/MqttUtil.js

@@ -27,7 +27,8 @@ export default {
         username: MQTT_CONFIG.username,
         password: MQTT_CONFIG.password,
       }
-      let host = VUE_APP_BASE_WS() + MQTT_CONFIG.host
+      let host = "wss://" + window.location.host + BASE_URL + MQTT_CONFIG.host
+      // let host = VUE_APP_BASE_WS() + MQTT_CONFIG.host
       //host = "ws://192.168.92.200:18002" + MQTT_CONFIG.host;
       //console.log(host);
       console.log(new Date(), 'Connecting map mqtt client')

+ 3 - 3
src/views/basePage/panels/IntelligentVideo/index.vue

@@ -170,7 +170,7 @@ export default {
   },
   watch: {
     departmentId(newVal) {
-      console.log("部门id信息", newVal, this.list);
+      // console.log("部门id信息", newVal, this.list);
       this.dId = newVal;
       if (this.dId === "") {
         this.init();
@@ -185,7 +185,7 @@ export default {
           this.curStation = this.getCurStation("1");
         }, 200);
       }
-      console.log("场站云台列表", this.stationList);
+      // console.log("场站云台列表", this.stationList);
     },
   },
   methods: {
@@ -201,7 +201,7 @@ export default {
         ];
       }
       this.curStation = this.getCurStation("1");
-      console.log("curStation", this.curStation);
+      // console.log("curStation", this.curStation);
     },
     getCurStation(id) {
       let obj = {};

+ 16 - 16
src/views/basePage/panels/Overview.vue

@@ -62,12 +62,12 @@ export default {
         },
       ],
       categoryList: {
-        100001: {
-          code: "101",
-          name: "人员报警",
-          value: "",
-          level: "024000",
-        },
+        // 100001: {
+        //   code: "101",
+        //   name: "人员报警",
+        //   value: "",
+        //   level: "024000",
+        // },
         100002: {
           code: "101",
           name: "周界报警",
@@ -99,15 +99,15 @@ export default {
           level: "024000",
         },
 
-        100015: {
-          code: "101",
-          name: "110报警",
-          value: "",
-          level: "024000",
-        },
+        // 100015: {
+        //   code: "101",
+        //   name: "110报警",
+        //   value: "",
+        //   level: "024000",
+        // },
         100888: {
           code: "101",
-          name: "防爆扩音",
+          name: "系统事件",
           value: "",
           level: "024000",
         },
@@ -130,7 +130,7 @@ export default {
   },
   watch: {
     departmentId(newVal) {
-      console.log("部门id信息", newVal);
+      // console.log("部门id信息", newVal);
       this.dId = newVal;
       setTimeout(() => {
         this.getAlarmDataList();
@@ -152,7 +152,7 @@ export default {
           const content = message.toString();
           const data = JSON.parse(content);
           if (topic === "Visualization/Alarm/0/TodayTotal") {
-            console.log("今日报警数据", data);
+            // console.log("今日报警数据", data);
             // if (topic === 'Visualization/Number/TodayTotal') {
             data.forEach((item, index) => {
               data.length = 3;
@@ -217,7 +217,7 @@ export default {
         .replace(/:/g, "=")
         .replace(/\":\"/g, "=")
         .replace(/\"/g, "");
-      console.log("报警列表参数", query);
+      // console.log("报警列表参数", query);
 
       this.$router.push("/alarmlist?" + query);
     },

+ 1 - 1
src/views/basePage/panels/RiskHint.vue

@@ -109,7 +109,7 @@ export default {
   },
   watch: {
     departmentId(newVal) {
-      console.log("部门id信息", newVal);
+      // console.log("部门id信息", newVal);
       this.dId = newVal;
       setTimeout(() => {
         this.getAlarmDataList();

+ 7 - 7
src/views/basePage/panels/RiskStatistics/index.vue

@@ -46,7 +46,7 @@ export default {
   },
   watch: {
     departmentId(oldVal, newVal) {
-      console.log("部门id信息风险统计", oldVal, newVal, this.buildId);
+      // console.log("部门id信息风险统计", oldVal, newVal, this.buildId);
       // if (oldVal === newVal) {
       // }
       this.dId = newVal;
@@ -65,17 +65,17 @@ export default {
           return random(10, 100);
         });
       });
-      console.log(this.chartData.data);
+      // console.log(this.chartData.data);
     }, 1000);
   },
   methods: {
     startMqtt() {
       const topics = [
         "Visualization/Number/RecentlyLevelByDate",
-        "Visualization/Number/RecentlyLevelByDateDYMZ",
-        "Visualization/Number/RecentlyLevelByDateKKQG",
-        "Visualization/Number/RecentlyLevelByDateDSSZ",
-        "Visualization/Number/RecentlyLevelByDateYWSZ",
+        // "Visualization/Number/RecentlyLevelByDateDYMZ",
+        // "Visualization/Number/RecentlyLevelByDateKKQG",
+        // "Visualization/Number/RecentlyLevelByDateDSSZ",
+        // "Visualization/Number/RecentlyLevelByDateYWSZ",
       ];
       const _this = this;
       this.$store.dispatch("mqtt/subscribe", {
@@ -94,7 +94,7 @@ export default {
                 })
               );
             });
-            console.log("风险统计数据", this.levelTrendData.data);
+            // console.log("风险统计数据", this.levelTrendData.data);
           }
         },
       });

+ 27 - 21
src/views/components/dialog/AccessControlDialog.vue

@@ -7,7 +7,7 @@
     <div class="dialog_box">
       <!-- 内容 -->
       <div>
-        <el-row class="access_video" :key="refresh">
+        <el-row class="access_video" :key="refreshKey">
           <el-col :span="8">
             <div class="select">
               <div class="select_title">
@@ -199,7 +199,7 @@ export default {
       handler(newValue, oldValue) {
         // this.filterKey = "";
         this.tableConfig.tableData = newValue;
-        if (newValue && newValue.length > 1) {
+        if (newValue && newValue.length > 0) {
           this.getCameraList();
         }
         this.refresh();
@@ -209,7 +209,7 @@ export default {
     recordList: {
       handler(newValue, oldValue) {
         // this.filterKey = "";
-        if (newValue && newValue.length > 1) {
+        if (newValue && newValue.length > 0) {
           this.recordTableConfig.tableData = newValue;
         }
         this.refresh();
@@ -310,7 +310,7 @@ export default {
         };
         const res = await getAccessInfoList(params);
         this.dataList = res.data.content;
-        console.log("门禁列表", this.dataList);
+        // console.log("门禁列表", this.dataList);
       } catch (err) {
         console.log(err);
       }
@@ -327,7 +327,7 @@ export default {
         };
         const res = await getAccessLogList(params);
         this.recordList = res.data.content;
-        console.log("门禁事件列表", params, this.recordList);
+        // console.log("门禁事件列表", params, this.recordList);
       } catch (err) {
         console.log(err);
       }
@@ -340,7 +340,7 @@ export default {
         };
         const res = await getCameraList(params);
         this.cameraList = res.data.content;
-        console.log("摄像头列表", this.cameraList);
+        // console.log("摄像头列表", this.cameraList);
         if (this.dataList && this.dataList.length > 1) {
           this.cameraFaceList = [];
           this.cameraCarList = [];
@@ -425,7 +425,7 @@ export default {
       }
     },
     searchData(e) {
-      console.log("事件信息", e);
+      // console.log("事件信息", e);
       this.filterInfo();
     },
     filterInfo() {
@@ -450,22 +450,28 @@ export default {
       //   this.cameraCarList = this.dataList.filter((e) => !e.faceRecognition);
       // }
       // console.log("分类门禁列表", this.cameraFaceList, this.cameraCarList);
-      if (this.cameraFaceList && this.cameraFaceList.length > 0) {
-        this.cameraFaceInfo = this.filterCamera(this.cameraFaceList[0]);
-      }
-      if (this.cameraCarList && this.cameraCarList.length > 1) {
-        this.cameraCarInfo1 = this.filterCamera(this.cameraCarList[0]);
-        this.cameraCarInfo2 = this.filterCamera(this.cameraCarList[1]);
-      }
-      console.log(
-        "门禁摄像头",
-        this.cameraFaceInfo,
-        this.cameraCarInfo1,
-        this.cameraCarInfo2
-      );
+      setTimeout(() => {
+        if (this.cameraFaceList && this.cameraFaceList.length > 0) {
+          this.cameraFaceInfo = this.filterCamera(
+            this.cameraFaceList[this.cameraFaceList.length - 1]
+          );
+        }
+        if (this.cameraCarList && this.cameraCarList.length > 1) {
+          this.cameraCarInfo1 = this.filterCamera(this.cameraCarList[0]);
+          this.cameraCarInfo2 = this.filterCamera(
+            this.cameraCarList[this.cameraCarList.length - 1]
+          );
+        }
+      }, 300);
+      // console.log(
+      //   "门禁摄像头",
+      //   this.cameraFaceInfo,
+      //   this.cameraCarInfo1,
+      //   this.cameraCarInfo2
+      // );
     },
     exchangeVideo(type, e) {
-      console.log(this.cameraList, "切换摄像头", e);
+      // console.log(this.cameraList, "切换摄像头", e);
       switch (type) {
         case 1:
           this.cameraCarInfo1 = this.filterCamera(e);

+ 9 - 0
src/views/components/dialog/AlarmAudioDialog.vue

@@ -61,6 +61,15 @@ export default {
               case "024003":
                 this.alarmURL = "/audio/longalarm.mp3";
                 break;
+              case "1":
+                this.alarmURL = "/audio/onekeyalarm.mp3";
+                break;
+              case "2":
+                this.alarmURL = "/audio/inoutalarm.mp3";
+                break;
+              case "3":
+                this.alarmURL = "/audio/longalarm.mp3";
+                break;
               case "306001":
                 this.alarmURL = "/audio/inoutalarm.mp3";
                 break;

+ 56 - 25
src/views/components/dialog/JGYTControlDialog/index.vue

@@ -43,10 +43,7 @@
                 </div> -->
             </div>
             <div class="info_list">
-              <base-table-list
-                :tableConfig="tableConfig"
-                @handleClick="handleTableClick"
-              />
+              <base-table-list :tableConfig="tableConfig" />
             </div>
           </el-col>
           <el-col class="jgyt_video" :span="12">
@@ -84,10 +81,13 @@
             <video-control :curVideoData="cameraInfo" />
           </el-col>
         </el-row>
-        <el-row>
+        <el-row :key="refreshKey">
           <el-col :span="24">
             <div class="record_list">
-              <div class="record_title">告警记录</div>
+              <div class="record_title">
+                <span>告警记录</span>
+                <span class="more" @click="more">更多</span>
+              </div>
               <div class="record_info">
                 <base-table-list :tableConfig="recordTableConfig" />
               </div>
@@ -105,6 +105,7 @@ import VideoImageWindow from "@/views/components/dialog/VideoImageWindow.vue";
 import { dealAlarm } from "@/API/common";
 import { getDepartmentByPid } from "@/API/alarm";
 import { getJGYTList, getJGYTAlarmList } from "@/API/JGYT";
+import Dayjs from "dayjs";
 import { mapGetters } from "vuex";
 import VideoControl from "./VideoControl";
 export default {
@@ -127,22 +128,29 @@ export default {
       immediate: true,
     },
     dataList: {
-      handler(newValue, oldValue) {
+      handler(newValue) {
         // this.filterKey = "";
-        this.tableConfig.tableData = newValue;
+        if (newValue && newValue.length > 0) {
+          this.tableConfig.tableData = newValue;
+        }
+        this.refresh();
       },
       deep: true,
     },
     recordList: {
-      handler(newValue, oldValue) {
+      handler(newValue) {
         // this.filterKey = "";
-        this.recrodTableConfig.tableData = newValue;
+        if (newValue && newValue.length > 0) {
+          this.recrodTableConfig.tableData = newValue;
+        }
+        this.refresh();
       },
       deep: true,
     },
   },
   data() {
     return {
+      refreshKey: 0,
       BASE_URL,
       dataList: [
         {
@@ -193,7 +201,15 @@ export default {
           { title: "记录描述", prop: "content", width: "" },
           { title: "时间", prop: "startTime", width: "80px" },
         ],
-        tableData: [],
+        tableData: [
+          {
+            id: "",
+            laserPtzName: "",
+            concentration: "",
+            content: "",
+            startTime: "",
+          },
+        ],
       },
       cameraList: [{ id: "1", name: "摄像头1" }],
       cameraInfo: {
@@ -204,24 +220,24 @@ export default {
         id: "",
         positioningBuildId: "",
       },
-      query: {
-        departmentId: "",
-      },
     };
   },
-  created() {},
-  computed: {
-    ...mapGetters(["jgytControlDialog"]),
-  },
-  mounted() {
+  created() {
     this.initJGYTList("");
     this.initJGYTAlarmList("");
     // this.getDepartmentByPid();
-    this.tableConfig.tableData = this.dataList;
-    this.recordTableConfig.tableData = this.recordList;
+    // this.tableConfig.tableData = this.dataList;
+    // this.recordTableConfig.tableData = this.recordList;
     this.departmentOptions = GY_STATIONS.filter((e) => e.id !== "");
   },
+  computed: {
+    ...mapGetters(["jgytControlDialog"]),
+  },
+  mounted() {},
   methods: {
+    refresh() {
+      this.refreshKey++;
+    },
     async initJGYTList(buildId) {
       try {
         const params = {
@@ -231,12 +247,12 @@ export default {
         };
         const res = await getJGYTList(params);
         this.dataList = res.data.content;
-        console.log("激光云台列表", this.dataList);
+        // console.log("激光云台列表", this.dataList);
         this.cameraList = this.dataList.map((e) => e.camera);
         if (this.cameraList && this.cameraList.length > 0) {
           this.cameraInfo = this.cameraList[0];
         }
-        console.log("激光云台摄像头列表", this.cameraList, this.cameraInfo);
+        // console.log("激光云台摄像头列表", this.cameraList, this.cameraInfo);
       } catch (err) {
         console.log(err);
       }
@@ -247,11 +263,15 @@ export default {
           pageSize: 100,
           pageIndex: 1,
           buildId: buildId,
+          startTime: Dayjs(new Date())
+            .subtract(1, "day")
+            .format("YYYY-MM-DD HH:mm:ss"),
+          endTime: Dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss"),
         };
         const res = await getJGYTAlarmList(params);
         this.recordList = res.data.content;
         this.recordTableConfig.tableData = this.recordList;
-        console.log("激光云台报警列表", this.recordList);
+        // console.log("激光云台报警列表", this.recordList);
       } catch (err) {
         console.log(err);
       }
@@ -304,7 +324,7 @@ export default {
       }
     },
     searchData(e) {
-      console.log("事件信息", e);
+      // console.log("事件信息", e);
       this.filterInfo();
     },
     filterInfo() {
@@ -316,6 +336,12 @@ export default {
         this.initJGYTAlarmList("");
       }
     },
+    more() {
+      this.$router.push({
+        path: "/Page1?path=leak%2Fleak%2FlaserPtz%2Falarm",
+      });
+      this.closeDialog();
+    },
     exchangeVideo() {},
     openAll() {},
     closeAll() {},
@@ -458,6 +484,11 @@ export default {
     color: #fff;
     .record_title {
       padding: 6px;
+      .more {
+        font-size: 0.073333rem /* 16/192 */;
+        color: #bdbfc9;
+        padding-left: 6px;
+      }
     }
     .record_info {
     }

+ 1 - 1
src/views/components/dialog/SoundDialog/Fbky.vue

@@ -346,7 +346,7 @@ export default {
       handler(newValue, oldValue) {
         this.callHangupAll();
         this.webRtcLogout();
-        console.log("数据更新:", newValue, "旧数据:", oldValue);
+        // console.log("数据更新:", newValue, "旧数据:", oldValue);
         if (newValue.url) {
           this.login = newValue.admin;
           this.password = newValue.password;

+ 10 - 4
src/views/components/dialog/SoundDialog/index.vue

@@ -164,7 +164,7 @@ export default {
     },
     online: {
       handler(newValue) {
-        console.log("当前值:", newValue);
+        // console.log("当前值:", newValue);
       },
       deep: true,
     },
@@ -223,6 +223,7 @@ export default {
       cameraList: [{ id: "1", name: "摄像头1" }],
       cameraInfo: {
         id: "1",
+        url: "",
       },
       departmentOptions: [],
       department: {
@@ -243,7 +244,7 @@ export default {
   methods: {
     onlineDisable(m) {
       this.online = m;
-      console.log("接收数值", m, this.online);
+      // console.log("接收数值", m, this.online);
     },
     async getCameraList() {
       try {
@@ -294,8 +295,8 @@ export default {
         console.log("打开扩音", data);
         this.openningTile = data.name;
         this.ringNumber = data.number;
-        this.exchangeVideo(data.cameraID);
         setTimeout(() => {
+          this.exchangeVideo(data.cameraID);
           this.callDisable = true;
         }, 200);
       }
@@ -303,6 +304,10 @@ export default {
         console.log("关闭扩音", data);
         this.openningTile = "暂无";
         this.callDisable = false;
+        this.cameraInfo = {
+          id: "1",
+          url: "",
+        };
       }
     },
     async getDepartmentByPid() {
@@ -354,7 +359,7 @@ export default {
       for (let i = 0; i < this.cameraList.length; i++) {
         const c = this.cameraList[i];
         if (c.id === id) {
-          console.log("筛选摄像头", this.cameraInfo);
+          // console.log("筛选摄像头", this.cameraInfo);
           return (this.cameraInfo = c);
         }
       }
@@ -368,6 +373,7 @@ export default {
       this.openningTile = "暂无";
       this.cameraInfo = {
         id: "1",
+        url: "",
       };
     },
     openBroadcast() {},

+ 2 - 2
src/views/components/dialog/VideoImageWindow copy.vue

@@ -272,8 +272,8 @@ export default {
     init(str) {
       // this.socketList[`ws_${this.cameraId}`];
       this.ws = new WebSocket(
-        VUE_APP_BASE_WS() + "/VideoOverWebSocket"
-        // "ws://" + window.location.host + BASE_URL + "/VideoOverWebSocket"
+        // VUE_APP_BASE_WS() + "/VideoOverWebSocket"
+        "wss://" + window.location.host + BASE_URL + "/VideoOverWebSocket"
       );
       this.ws.onmessage = (evt) => {
         if (typeof evt.data === "string") {

+ 2 - 1
src/views/components/dialog/VideoImageWindow.vue

@@ -10,7 +10,7 @@
             <div class="image_slot" v-else>
               <img :src="require(`@/assets/imgs/panels/img_video@2x.png`)" alt="" />
               <!-- <i class="el-icon-video-camera"></i> -->
-              <span>无告警视频</span>
+              <span>无信号</span>
             </div>
           </div>
         </div>
@@ -131,6 +131,7 @@ export default {
     // 放大缩小
     init(str) {
       // this.socketList[`ws_${this.cameraId}`];
+      // this.ws = new WebSocket(VUE_APP_BASE_WS() + '/VideoOverWebSocket')
       this.ws = new WebSocket('wss://' + window.location.host + BASE_URL + '/VideoOverWebSocket')
       this.ws.onmessage = evt => {
         if (typeof evt.data === 'string') {

+ 1 - 0
src/views/videoMonitor/components/videoContent.vue

@@ -52,6 +52,7 @@ export default {
   methods: {
     init(str) {
       // this.socketList[`ws_${this.cameraData.id}`];
+      // const host = VUE_APP_BASE_WS() + '/VideoOverWebSocket'
       const host = 'wss://' + window.location.host + BASE_URL + '/VideoOverWebSocket'
       this.ws = new WebSocket(host)
       this.ws.onmessage = evt => {

+ 1 - 0
src/views/videoMonitorType/components/videoContent.vue

@@ -52,6 +52,7 @@ export default {
   methods: {
     init(str) {
       // this.socketList[`ws_${this.cameraData.id}`];
+      // const host = VUE_APP_BASE_WS() + '/VideoOverWebSocket'
       const host = 'wss://' + window.location.host + BASE_URL + '/VideoOverWebSocket'
       this.ws = new WebSocket(host)
       this.ws.onmessage = evt => {

+ 1 - 0
vue.config.js

@@ -9,6 +9,7 @@ module.exports = {
   productionSourceMap: false,
   lintOnSave: false, // 是否开启eslint
   devServer: {
+    https: true,
     open: true,
     port: 8091,
     overlay: {