Selaa lähdekoodia

建筑名称图层增加;防爆扩音图层增加数据接口增加;风险提示报警颜色调整;业务功能没有token不进行数据请求

fan 1 kuukausi sitten
vanhempi
commit
528aa2572c
29 muutettua tiedostoa jossa 418 lisäystä ja 423 poistoa
  1. BIN
      public/imgs/footerNavigation/icon_MJGL_nor@2x.png
  2. BIN
      public/imgs/footerNavigation/icon_MJGL_sel@2x.png
  3. 126 254
      public/js/buildings.js
  4. 2 2
      public/js/config.js
  5. 9 0
      public/js/layerconfig.js
  6. 16 16
      public/js/station.js
  7. 18 2
      src/API/custom.js
  8. 10 0
      src/API/speaker.js
  9. 1 1
      src/components/BaseMap/index.vue
  10. 22 10
      src/utils/request.js
  11. 2 1
      src/views/Home.vue
  12. 40 30
      src/views/basePage/components/dialog/SoundElementDialog.vue
  13. 76 63
      src/views/basePage/components/layerControl/index.vue
  14. 3 0
      src/views/basePage/components/videoWindow/VideoImageWindow.vue
  15. 4 4
      src/views/basePage/mixins/LoadLayer/accessControl.js
  16. 7 6
      src/views/basePage/mixins/LoadLayer/fbky.js
  17. 4 0
      src/views/basePage/mixins/MapEvent.js
  18. 1 1
      src/views/basePage/panels/Overview.vue
  19. 22 9
      src/views/basePage/panels/PersonStatistics.vue
  20. 14 7
      src/views/basePage/panels/RiskHint.vue
  21. 3 1
      src/views/components/baseFooter/FooterNavigation.vue
  22. 1 1
      src/views/components/baseHeader/left.vue
  23. 2 2
      src/views/components/dialog/AccessControlDialog.vue
  24. 4 2
      src/views/components/dialog/JGYTControlDialog/index.vue
  25. 4 2
      src/views/components/dialog/PipeMileageDialog/index.vue
  26. 4 2
      src/views/components/dialog/SoundDialog/index.vue
  27. 4 2
      src/views/components/dialog/VoiceCallDialog/index.vue
  28. 13 3
      src/views/components/emergency/CardListDialog.vue
  29. 6 2
      src/views/components/emergency/ContactInfoDialog.vue

BIN
public/imgs/footerNavigation/icon_MJGL_nor@2x.png


BIN
public/imgs/footerNavigation/icon_MJGL_sel@2x.png


+ 126 - 254
public/js/buildings.js

@@ -1,347 +1,219 @@
 const BUILDING_INFO = [
   {
     id: 1,
-    name: "辅助用房",
+    name: "综合楼",
     type: "",
-    x: 118.34296277408872,
-    y: 37.41997777530434,
-    z: 6,
+    x: 111.25920568513584,
+    y: 40.37979409202713,
+    z: 13,
   },
   {
     id: 2,
-    name: "VOC站房",
+    name: "压缩机厂房A区",
     type: "",
-    x: 118.34264483108919,
-    y: 37.419818083853255,
-    z: 5,
+    x: 111.2608332033509,
+    y: 40.3805539918433,
+    z: 16,
   },
   {
     id: 3,
-    name: "泡沫站",
+    name: "压缩机厂房B区",
     type: "",
-    x: 118.34336917476108,
-    y: 37.419593970149776,
-    z: 6,
+    x: 111.26145636508632,
+    y: 40.380350479383495,
+    z: 16,
   },
   {
     id: 4,
-    name: "操作室",
+    name: "工艺设备区",
     type: "",
-    x: 118.34290753835666,
-    y: 37.41891734416999,
-    z: 6,
+    x: 111.25996233126777,
+    y: 40.380913301061334,
+    z: 10,
   },
   {
     id: 5,
-    name: "干煤棚",
-    type: "",
-    x: 118.34287261339682,
-    y: 37.41858561895868,
-    z: 8,
-  },
-  {
-    id: 6,
-    name: "输煤站",
+    name: "110kV变电所",
     type: "",
-    x: 118.34327801949767,
-    y: 37.4186803086843,
+    x: 111.26098091845157,
+    y: 40.37917197386943,
     z: 13,
   },
   {
-    id: 7,
-    name: "锅炉房",
-    type: "",
-    x: 118.34314695140114,
-    y: 37.418031661317116,
-    z: 14,
-  },
-  {
-    id: 8,
-    name: "淋浴室",
-    type: "",
-    x: 118.34286522555068,
-    y: 37.41768813118987,
-    z: 8.7,
-  },
-  {
-    id: 9,
-    name: "引发剂室",
-    type: "",
-    x: 118.34286608606526,
-    y: 37.4175703822635,
-    z: 8.7,
-  },
-  {
-    id: 10,
-    name: "循环水站/冷冻水站房",
-    type: "",
-    x: 118.34320470595453,
-    y: 37.41756964037931,
-    z: 8.7,
-  },
-  {
-    id: 11,
-    name: "AM晶体车间",
-    type: "",
-    x: 118.3427905636404,
-    y: 37.41721616516686,
-    z: 10,
-  },
-  {
-    id: 12,
-    name: "AM主生产车间",
+    id: 61,
+    name: "1号变频间",
     type: "",
-    x: 118.34343971545164,
-    y: 37.41724843971391,
-    z: 22,
+    x: 111.26048297749993,
+    y: 40.38004279773242,
+    z: 8,
   },
   {
-    id: 13,
-    name: "AM罐区厂房",
+    id: 62,
+    name: "2号变频间",
     type: "",
-    x: 118.34397881916149,
-    y: 37.41717593898299,
-    z: 16.3,
+    x: 111.26063870050744,
+    y: 40.37999212409872,
+    z: 8,
   },
   {
-    id: 14,
-    name: "车间控制室",
+    id: 63,
+    name: "3号变频间",
     type: "",
-    x: 118.34391166151701,
-    y: 37.41693590534726,
-    z: 10,
+    x: 111.26090869120887,
+    y: 40.3798997965965,
+    z: 8,
   },
   {
-    id: 15,
-    name: "水合框架平台",
+    id: 64,
+    name: "4号变频间",
     type: "",
-    x: 118.34317569617643,
-    y: 37.41693923858676,
-    z: 10,
-  },
-  {
-    id: 16,
-    name: "制冷站",
-    type: "丁类",
-    x: 118.34369034835997,
-    y: 37.416483696271136,
-    z: 7,
-  },
-  {
-    id: 17,
-    name: "1#空压站操作室",
-    type: "丁类",
-    x: 118.34394355286385,
-    y: 37.41646502034562,
-    z: 7,
-  },
-  {
-    id: 18,
-    name: "供配电室",
-    type: "丁类",
-    x: 118.34414679641125,
-    y: 37.41652282579468,
-    z: 7,
+    x: 111.26105835966396,
+    y: 40.37984600016288,
+    z: 8,
   },
   {
-    id: 19,
-    name: "2#空压站",
+    id: 65,
+    name: "1号及2号站变室",
     type: "",
-    x: 118.34433840794972,
-    y: 37.41660496391427,
-    z: 18,
+    x: 111.26075993306743,
+    y: 40.3799154313158,
+    z: 8,
   },
   {
-    id: 20,
-    name: "1#水处理站",
+    id: 66,
+    name: "空压机房",
     type: "",
-    x: 118.34464368936342,
-    y: 37.416484948105825,
-    z: 9,
+    x: 111.26119124826415,
+    y: 40.3797771684561,
+    z: 8,
   },
   {
-    id: 21,
-    name: "2#水处理站",
+    id: 7,
+    name: "综合库房",
     type: "",
-    x: 118.34481770759022,
-    y: 37.41662552551646,
-    z: 9,
+    x: 111.26009782765958,
+    y: 40.379489832927234,
+    z: 8,
   },
   {
-    id: 22,
-    name: "监控室",
+    id: 8,
+    name: "综合设备间",
     type: "",
-    x: 118.34528801480992,
-    y: 37.41651073354732,
-    z: 7,
+    x: 111.25962868139,
+    y: 40.380381509897894,
+    z: 8,
   },
   {
-    id: 23,
-    name: "办公楼",
+    id: 9,
+    name: "消防水罐",
     type: "",
-    x: 118.34558266887083,
-    y: 37.41657515819817,
+    x: 111.25925047153426,
+    y: 40.38050059285603,
     z: 14,
   },
   {
-    id: 24,
-    name: "中间仓库",
+    id: 10,
+    name: "雨水收集池",
     type: "",
-    x: 118.34550292536711,
-    y: 37.41724455045821,
+    x: 111.26059897126923,
+    y: 40.379314598646616,
     z: 8,
   },
   {
-    id: 25,
-    name: "分散剂罐",
-    type: "",
-    x: 118.34440953646988,
-    y: 37.41730826857112,
-    z: 6,
-  },
-  {
-    id: 26,
-    name: "PAM聚合及研磨车间",
-    type: "",
-    x: 118.34486128949854,
-    y: 37.41709387572112,
-    z: 19,
-  },
-  {
-    id: 28,
-    name: "原材料库",
-    type: "",
-    x: 118.34446278290646,
-    y: 37.41767986211232,
-    z: 9,
-  },
-  {
-    id: 29,
-    name: "公用工程房",
-    type: "",
-    x: 118.34412940589988,
-    y: 37.4176328401409,
-    z: 9,
-  },
-  {
-    id: 30,
-    name: "配电室",
+    id: 11,
+    name: "2号深井泵房",
     type: "",
-    x: 118.34373324226088,
-    y: 37.4176287986415,
-    z: 9,
+    x: 111.26052589049284,
+    y: 40.381311249829146,
+    z: 8,
   },
   {
-    id: 31,
-    name: "专用控制室",
+    id: 12,
+    name: "1号深井泵房",
     type: "",
-    x: 118.34369821207017,
-    y: 37.41774747931179,
-    z: 9,
+    x: 111.25878456244239,
+    y: 40.37975671242128,
+    z: 8,
   },
   {
-    id: 32,
-    name: "车间专用配电室",
+    id: 13,
+    name: "备品备件库",
     type: "",
-    x: 118.3442291787104,
-    y: 37.4184842651506,
-    z: 9,
-  },
-  {
-    id: 33,
-    name: "阳离子车间",
-    type: "丙类",
-    x: 118.34413675749443,
-    y: 37.41819565216849,
-    z: 16,
-  },
-  {
-    id: 34,
-    name: "仓库",
-    type: "丙类",
-    x: 118.34509882548876,
-    y: 37.41785824993155,
-    z: 13,
-  },
-  {
-    id: 35,
-    name: "仓库",
-    type: "丙类",
-    x: 118.34512132681122,
-    y: 37.41831254828915,
-    z: 13,
+    x: 111.25948414310929,
+    y: 40.38019150191476,
+    z: 8,
   },
   {
-    id: 36,
-    name: "危废间",
+    id: 14,
+    name: "西侧危废间",
     type: "",
-    x: 118.34542582902712,
-    y: 37.41848586256898,
-    z: 8.7,
+    x: 111.26003887207996,
+    y: 40.38147554802636,
+    z: 8,
   },
   {
-    id: 37,
-    name: "PAM成品仓库",
+    id: 15,
+    name: "东侧危废间",
     type: "",
-    x: 118.3448194190153,
-    y: 37.419254847336234,
-    z: 14,
+    x: 111.2604246241477,
+    y: 40.38134491151081,
+    z: 8,
   },
   {
-    id: 38,
-    name: "排水泵",
+    id: 16,
+    name: "污水处理池",
     type: "",
-    x: 118.34555822590497,
-    y: 37.41974405834294,
-    z: 6,
+    x: 111.25992976260771,
+    y: 40.3815068396908,
+    z: 4,
   },
   {
-    id: 39,
-    name: "中间仓库",
+    id: 17,
+    name: "箱式SVG",
     type: "",
-    x: 118.34550582990236,
-    y: 37.41693405398033,
+    x: 111.26135892703992,
+    y: 40.37965615712618,
     z: 8,
   },
   {
-    id: 40,
-    name: "生化池",
+    id: 18,
+    name: "1号自洁式过滤器",
     type: "",
-    x: 118.342888132,
-    y: 37.41691323858676,
-    z: 4,
+    x: 111.26046250974662,
+    y: 40.3804571593199,
+    z: 8,
   },
   {
-    id: 41,
-    name: "停用罐区",
+    id: 19,
+    name: "2号自洁式过滤器",
     type: "",
-    x: 118.343074546,
-    y: 37.416485385,
-    z: 12,
+    x: 111.26157632990441,
+    y: 40.380067059693296,
+    z: 8,
   },
   {
-    id: 42,
-    name: "丙烯腈罐区",
+    id: 20,
+    name: "站场防空区",
     type: "",
-    x: 118.343853728,
-    y: 37.418928496,
-    z: 16,
+    x: 111.26253408244771,
+    y: 40.37983090552453,
+    z: 8,
   },
   {
-    id: 44,
-    name: "厌氧罐",
+    id: 21,
+    name: "5G基站",
     type: "",
-    x: 118.34296994,
-    y: 37.419525669,
-    z: 12,
+    x: 111.25875760638871,
+    y: 40.380370104655015,
+    z: 8,
   },
   {
-    id: 43,
-    name: "地磅",
+    id: 22,
+    name: "门卫室及交流室",
     type: "",
-    x: 118.345781128,
-    y: 37.418063253,
-    z: 6,
+    x: 111.25897966612922,
+    y: 40.38018433850747,
+    z: 8,
   },
 ];
 

+ 2 - 2
public/js/config.js

@@ -605,7 +605,7 @@ const GY_STATIONS = [
     positioningBuildId: '100001',
     direction: 'right',
     position: [106.6263209022603, 26.650585399041464, 1.4657059185197159],
-    layers: ['周界入侵', '激光云台', '工业视频'],
+    layers: ['周界入侵', '激光云台'],
   },
   {
     id: '784131093203787776',
@@ -615,7 +615,7 @@ const GY_STATIONS = [
     positioningBuildId: '100001',
     direction: 'right',
     position: [106.6263209022603, 26.650585399041464, 1.4657059185197159],
-    layers: ['周界入侵', '激光云台', '工业视频'],
+    layers: ['周界入侵', '激光云台'],
     // webRTCUrl: "wss://dispatcher:1443/webrtc",
     // admin: "8889",
     // password: "123456",

+ 9 - 0
public/js/layerconfig.js

@@ -49,6 +49,15 @@ const LAYER_CONFIG_LIST = [
   //   selected: false,
   //   elements: [],
   // },
+  {
+    name: "建筑名称",
+    code: "jzmc",
+    type: "jzmc",
+    layerId: "jzmc",
+    show: "0",
+    selected: false,
+    elements: [],
+  },
   {
     name: "风险区域",
     code: "fxqy",

+ 16 - 16
public/js/station.js

@@ -236,10 +236,10 @@ const STATION_CONFIG_2 = [
         type: 'station',
         left: 942,
         top: 470,
-        offsetX: -300,
-        offsetY: -280,
+        offsetX: -150,
+        offsetY: -300,
         height: 140,
-        anchors: ['Top', 'Right'],
+        anchors: ['Top', 'Bottom'],
         departmentId: '784131093203787776',
         buildId: '784102618438836224',
         picPath: '/imgs/yx_tkt.JPG',
@@ -257,8 +257,8 @@ const STATION_CONFIG_2 = [
         type: 'stationFS',
         left: 1060,
         top: 468,
-        offsetX: -140,
-        offsetY: -280,
+        offsetX: 20,
+        offsetY: -260,
         height: 140,
         anchors: ['Top', 'Bottom'],
         departmentId: '784131392517709824',
@@ -278,8 +278,8 @@ const STATION_CONFIG_2 = [
         type: 'valve',
         left: 828,
         top: 463,
-        offsetX: -380,
-        offsetY: -80,
+        offsetX: -350,
+        offsetY: -180,
         height: 140,
         anchors: ['Top', 'Right'],
         departmentId: '784131445336580093',
@@ -299,8 +299,8 @@ const STATION_CONFIG_2 = [
         type: 'valve',
         left: 870,
         top: 471,
-        offsetX: -320,
-        offsetY: 100,
+        offsetX: -360,
+        offsetY: 0,
         height: 140,
         anchors: ['Bottom', 'Right'],
         departmentId: '784131445336580094',
@@ -320,8 +320,8 @@ const STATION_CONFIG_2 = [
         type: 'valve',
         left: 914,
         top: 465,
-        offsetX: -220,
-        offsetY: 280,
+        offsetX: -300,
+        offsetY: 180,
         height: 140,
         anchors: ['Bottom', 'Top'],
         departmentId: '784131445336580095',
@@ -341,7 +341,7 @@ const STATION_CONFIG_2 = [
         type: 'valve',
         left: 983,
         top: 465,
-        offsetX: -60,
+        offsetX: -140,
         offsetY: 300,
 
         height: 140,
@@ -363,7 +363,7 @@ const STATION_CONFIG_2 = [
         type: 'valve',
         left: 1030,
         top: 463,
-        offsetX: 120,
+        offsetX: 80,
         offsetY: 260,
         height: 140,
         anchors: ['Bottom', 'Top'],
@@ -385,7 +385,7 @@ const STATION_CONFIG_2 = [
         left: 1094,
         top: 473,
         offsetX: 120,
-        offsetY: 0,
+        offsetY: 80,
         height: 140,
         anchors: ['Bottom', 'Left'],
         departmentId: '784131445336580098',
@@ -405,8 +405,8 @@ const STATION_CONFIG_2 = [
         type: 'valve',
         left: 1128,
         top: 484,
-        offsetX: 70,
-        offsetY: -220,
+        offsetX: 130,
+        offsetY: -110,
         height: 140,
         anchors: ['Right', 'Left'],
         departmentId: '784131445336580099',

+ 18 - 2
src/API/custom.js

@@ -56,7 +56,7 @@ export const getCountAreaTree = data =>
     data,
     notShowLoading: true,
   })
-
+//获取摄像头列表
 export const getCameraList = data =>
   $http({
     method: 'post',
@@ -64,8 +64,24 @@ export const getCameraList = data =>
     data,
     notShowLoading: true,
   })
+//获取摄像头预置位列表
+export const getCameraPresetOptions = data =>
+  $http({
+    method: 'post',
+    url: '/camera/Options/GetCameraPresetOptions',
+    data,
+    notShowLoading: true,
+  })
+//获取摄像头巡航路线列表
+export const getCameraCruiseRouteOptions = data =>
+  $http({
+    method: 'post',
+    url: '/camera/Options/GetCameraCruiseRouteOptions',
+    data,
+    notShowLoading: true,
+  })
 
-  //获取人员信息
+//获取人员信息
 export const getPersonList = data =>
   $http({
     method: 'post',

+ 10 - 0
src/API/speaker.js

@@ -0,0 +1,10 @@
+import $http from '@/utils/request'
+
+// 获取防爆扩音列表信息
+export const getSpeakerList = data =>
+  $http({
+    method: 'POST',
+    url: '/ExplosionProofLoudspeaker/Config/GetList',
+    data,
+    notShowLoading: true,
+  })

+ 1 - 1
src/components/BaseMap/index.vue

@@ -81,7 +81,7 @@ export default {
           //   },
           // },
         });
-        //viewer.scene.globe.depthTestAgainstTerrain = true; //解决垂直视角时点击报错的问题
+        viewer.scene.globe.depthTestAgainstTerrain = true; //解决垂直视角时点击报错的问题
         viewer.cesiumWidget.creditContainer.style.display = "none"; // 隐藏Logo
         viewer.scene.postProcessStages.fxaa.enabled = true; //取消锯齿
         viewer.scene.globe.enableLighting = true;

+ 22 - 10
src/utils/request.js

@@ -66,12 +66,24 @@ $http.interceptors.response.use(
     // if (res.code === 200) return res;
     if ((res.code + "").startsWith("2")) {
       return res;
+    } else if (res.code === 40000) {
+      // console.log("ERROR:", res, localStorage.getItem("token"));
+      Message({
+        message: "登录超时,请重新登录",
+        type: "error",
+        duration: 800,
+      });
+      setTimeout(() => {
+        localStorage.clear();
+        window.location.reload();
+      }, 500);
+      // this.$router.push("/login");
     } else {
-      // Message({
-      //   message: res?.msg || "连接错误",
-      //   type: "error",
-      //   duration: 800,
-      // });
+      Message({
+        message: res?.msg || "连接错误",
+        type: "error",
+        duration: 800,
+      });
       // console.log("ERROR:", res);
       return Promise.reject(res);
     }
@@ -88,11 +100,11 @@ $http.interceptors.response.use(
       localStorage.clear();
       window.location.href = "/";
     } else if (response) {
-      // Message({
-      //   message: "系统异常",
-      //   type: "error",
-      //   duration: 800,
-      // });
+      Message({
+        message: "系统异常",
+        type: "error",
+        duration: 800,
+      });
       return Promise.reject(response);
     }
   }

+ 2 - 1
src/views/Home.vue

@@ -376,7 +376,8 @@ export default {
             const data = JSON.parse(content);
             // console.log("门禁事件数据", data);
             this.$notify({
-              title: "安防门禁",
+              title: "门禁管理",
+              // title: "安防门禁",
               duration: 1500, //自动关闭时间1.5s
               message: data.Content,
               offset: 70,

+ 40 - 30
src/views/basePage/components/dialog/SoundElementDialog.vue

@@ -8,23 +8,22 @@
       <!-- 内容 -->
       <div class="detail-table-box">
         <!-- v-show="false" -->
-        <el-row v-show="false">
+        <!-- <el-row v-show="false">
           <fbky
             @onlineDis:="onlineDisable"
             :curFbkyData="webSocketParams"
             :ringNumber="ringNumber"
             :callDisable="callDisable"
           />
-        </el-row>
+        </el-row> -->
         <el-row>
           <el-col>
             <div class="search-box">
-              <div class="search-item">
+              <!-- <div class="search-item">
                 <span class="search-label">所在场站:</span>
                 <el-select
                   value-key="id"
                   v-model="department"
-                  style="width: 110px"
                   size="mini"
                   disabled
                   clearable
@@ -38,13 +37,13 @@
                     :label="item.name"
                   ></el-option>
                 </el-select>
-              </div>
-              <div class="search-btn2" @click="openAll">
+              </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> -->
               <!-- <div class="search-btn2" @click="openBroadcast">
                 <el-button size="mini" type="success">广播</el-button>
               </div>
@@ -82,6 +81,7 @@
               <!-- 通话视频标签 -->
               <div class="select_video_main">
                 <video-image-window
+                  :key="refreshKey"
                   :cameraData="cameraInfo"
                   :cameraId="cameraInfo.id"
                 />
@@ -101,6 +101,7 @@ 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 { getSpeakerList } from "@/API/speaker";
 import { getCameraList } from "@/API/custom";
 import { mapGetters } from "vuex";
 export default {
@@ -113,11 +114,11 @@ export default {
         if (newVal) {
           this.webSocketParams.id++;
           this.info = this.soundElementDialog.dialogMsg.data;
-          setTimeout(() => {
-            this.exchangeVideo(
-              this.soundElementDialog.dialogMsg?.data?.cameraID
-            );
-          }, 300);
+        } else {
+          this.cameraInfo = {
+            id: "1",
+            url: "",
+          };
         }
       },
       // deep: true,
@@ -126,21 +127,23 @@ export default {
     info: {
       handler(newValue) {
         setTimeout(() => {
-          // console.log("扩音设备基础数据", this.info, this.buildInfo);
+          console.log("扩音设备基础数据", this.info, this.buildInfo);
           if (newValue.name) {
             this.openningTile = newValue.name;
           }
-          if (newValue.cameraID) {
-            this.exchangeVideo(newValue.cameraID);
+          if (newValue.cameras) {
+            this.exchangeVideo(newValue.cameras[0].cameraId); //系统接口
+            // this.exchangeVideo(newValue.cameraID);//配置文件
+            this.refreshKey++;
           }
-        }, 200);
+        }, 300);
       },
       deep: true,
     },
-    "department.id": {
-      handler(newValue, oldValue) {},
-      deep: true,
-    },
+    // "department.id": {
+    //   handler(newValue, oldValue) {},
+    //   deep: true,
+    // },
     buildInfo: {
       handler(newValue) {
         // console.log("当前值:", newValue);
@@ -153,15 +156,16 @@ export default {
       },
       deep: true,
     },
-    online: {
-      handler(newValue) {
-        // console.log("当前值:", newValue);
-      },
-      deep: true,
-    },
+    // online: {
+    //   handler(newValue) {
+    //     // console.log("当前值:", newValue);
+    //   },
+    //   deep: true,
+    // },
   },
   data() {
     return {
+      refreshKey: 1,
       online: false,
       BASE_URL,
       dataList: [
@@ -224,7 +228,7 @@ export default {
     };
   },
   created() {
-    this.initSoundList();
+    // this.initSoundList();
     this.getCameraList();
     // this.getDepartmentByPid();
     this.departmentOptions = GY_STATIONS.filter((e) => e.id !== "");
@@ -252,8 +256,14 @@ export default {
     },
     async initSoundList() {
       try {
-        const res = await getElementList({ id: "784748250065281024" });
-        this.dataList = FBKYLIST;
+        //图层标注位置-结合配置文件
+        // const res = await getElementList({ id: "784748250065281024" });
+        // this.dataList = FBKYLIST;
+        //数据接口
+        const res = await getSpeakerList({
+          buildId: this.buildInfo.positioningBuildId,
+        });
+        this.dataList = res.data.content;
         // console.log("防爆扩音列表", res, this.dataList);
         // content.forEach((d) => {
         //   d.GPSPoints = this.transPosition(d.pointList);
@@ -402,7 +412,7 @@ export default {
       .el-select {
         margin-right: 0.052083rem /* 10/192 */;
         ::v-deep .el-input__inner {
-          width: 0.572917rem /* 110/192 */;
+          //width: 0.572917rem /* 110/192 */;
           height: 28px;
           border-radius: 0;
           color: #fff;

+ 76 - 63
src/views/basePage/components/layerControl/index.vue

@@ -313,6 +313,7 @@ export default {
       if (
         [
           "视频融合",
+          "门禁管理",
           "安防门禁",
           "防爆扩音",
           "埋地泄漏",
@@ -654,72 +655,84 @@ export default {
     },
     showBuildingInfo(layerId, show) {
       this.buildingInfoLayerId = "layer_" + layerId;
-      let dataSource = addNewDatasource(this.buildingInfoLayerId);
-      if (show) {
-        if (dataSource.entities.values.length == 0) {
-          this.buildingInfo.forEach((d) => {
-            dataSource.entities.add(
-              new Entity({
-                id: "buildingName_" + d.id,
-                //name: d.name,
-                position: Cartesian3.fromDegrees(d.x, d.y, d.z),
-                label: {
-                  text: d.name,
-                  show: new CallbackProperty((time, result) => {
-                    return this.buildingNameShowProperty(d.id);
-                  }),
-                  font: "18px Helvetica",
-                  style: LabelStyle.FILL_AND_OUTLINE,
-                  pixelOffset: new Cartesian2(0, -18),
-                  fillColor: Color.WHITE,
-                  outlineColor: Color.BLACK,
-                  outlineWidth: 2,
-                  horizontalOrigin: HorizontalOrigin.CENTER,
-                  verticalOrigin: VerticalOrigin.TOP,
-                  //scaleByDistance: new NearFarScalar(1, 2.6, 800, 0),
-                },
-                properties: new PropertyBag({
-                  type: "buildingName",
-                  details: d,
-                }),
-              })
-            );
-            dataSource.entities.add(
-              new Entity({
-                id: "buildingPerson_" + d.id,
-                //name: d.name,
-                position: Cartesian3.fromDegrees(d.x, d.y, d.z),
-                label: {
-                  text: new CallbackProperty((time, result) => {
-                    return this.getPersonCount(d.id);
-                  }),
-                  show: new CallbackProperty((time, result) => {
-                    return this.buildingNameShowProperty(d.id);
-                  }),
-                  font: "18px Helvetica",
-                  style: LabelStyle.FILL,
-                  pixelOffset: new Cartesian2(0, -42),
-                  fillColor: Color.WHITE,
-                  backgroundColor: Color.DARKBLUE, //Color.WHITE,    //背景颜色
-                  showBackground: true, //是否显示背景颜色
-                  outlineColor: Color.BLACK,
-                  outlineWidth: 2,
-                  horizontalOrigin: HorizontalOrigin.CENTER,
-                  verticalOrigin: VerticalOrigin.TOP,
-                  //scaleByDistance: new NearFarScalar(1, 2.6, 800, 0),
-                },
-                properties: new PropertyBag({
-                  type: "buildingPerson",
-                  details: d,
-                }),
-              })
-            );
-          });
+      const viewer = getViewer();
+      const D = viewer.dataSources.getByName(this.buildingInfoLayerId);
+      if (D.length > 0) {
+        console.log("建筑名称:", D);
+        if (show) {
+          D[0].show = true;
         } else {
-          dataSource.show = true;
+          D[0].show = false;
         }
       } else {
-        dataSource.show = false;
+        const dataSource = addNewDatasource(this.buildingInfoLayerId);
+        console.log("Params", layerId, show, dataSource);
+        if (show) {
+          if (dataSource.entities.values.length == 0) {
+            this.buildingInfo.forEach((d) => {
+              dataSource.entities.add(
+                new Entity({
+                  id: "buildingName_" + d.id,
+                  //name: d.name,
+                  position: Cartesian3.fromDegrees(d.x, d.y, d.z),
+                  label: {
+                    text: d.name,
+                    show: new CallbackProperty((time, result) => {
+                      return this.buildingNameShowProperty(d.id);
+                    }),
+                    font: "16px Helvetica",
+                    style: LabelStyle.FILL_AND_OUTLINE,
+                    pixelOffset: new Cartesian2(0, -18),
+                    fillColor: Color.WHITE,
+                    outlineColor: Color.BLACK,
+                    outlineWidth: 2,
+                    backgroundColor: Color.DARKBLUE, //Color.WHITE,    //背景颜色
+                    showBackground: true, //是否显示背景颜色
+                    horizontalOrigin: HorizontalOrigin.CENTER,
+                    verticalOrigin: VerticalOrigin.TOP,
+                    //scaleByDistance: new NearFarScalar(1, 2.6, 800, 0),
+                  },
+                  properties: new PropertyBag({
+                    type: "buildingName",
+                    details: d,
+                  }),
+                })
+              );
+              // dataSource.entities.add(
+              //   new Entity({
+              //     id: "buildingPerson_" + d.id,
+              //     //name: d.name,
+              //     position: Cartesian3.fromDegrees(d.x, d.y, d.z),
+              //     label: {
+              //       text: new CallbackProperty((time, result) => {
+              //         return this.getPersonCount(d.id);
+              //       }),
+              //       show: new CallbackProperty((time, result) => {
+              //         return this.buildingNameShowProperty(d.id);
+              //       }),
+              //       font: "18px Helvetica",
+              //       style: LabelStyle.FILL,
+              //       pixelOffset: new Cartesian2(0, -42),
+              //       fillColor: Color.WHITE,
+              //       backgroundColor: Color.DARKBLUE, //Color.WHITE,    //背景颜色
+              //       showBackground: true, //是否显示背景颜色
+              //       outlineColor: Color.BLACK,
+              //       outlineWidth: 2,
+              //       horizontalOrigin: HorizontalOrigin.CENTER,
+              //       verticalOrigin: VerticalOrigin.TOP,
+              //       //scaleByDistance: new NearFarScalar(1, 2.6, 800, 0),
+              //     },
+              //     properties: new PropertyBag({
+              //       type: "buildingPerson",
+              //       details: d,
+              //     }),
+              //   })
+              // );
+            });
+          } else {
+            dataSource.show = true;
+          }
+        }
       }
     },
     showBuildingInfoByBuildId(layerId, show) {

+ 3 - 0
src/views/basePage/components/videoWindow/VideoImageWindow.vue

@@ -338,6 +338,8 @@ import BaseDragDialog from "@/views/components/base/BaseDragDialog";
 import Dayjs from "dayjs";
 import { mapGetters } from "vuex";
 import { getViewer } from "@/store/map/mapService";
+import { getCameraList } from "@/API/custom";
+
 export default {
   name: "VideoImageWindow",
   components: { BaseDragDialog },
@@ -442,6 +444,7 @@ export default {
       startTime: null,
       speed: 4,
       presetIndex: 1,
+      presetList: 1,
       // 视频控制 end
     };
   },

+ 4 - 4
src/views/basePage/mixins/LoadLayer/accessControl.js

@@ -40,8 +40,8 @@ export default {
     initZnmj() {
       this.$store.dispatch('globalConfig/pushSwitchConfig', {
         type: this.znmjDataSourceName,
-        label: '安防门禁',
-        name: '安防门禁',
+        label: '门禁管理',
+        name: '门禁管理',
         show: this.znmjDataSourceShow,
         selected: false,
         elements: this.znmjTagsData,
@@ -55,8 +55,8 @@ export default {
         this.znmjTagsData = res.data.content || []
         this.$store.dispatch('globalConfig/updateSwitchConfig', {
           type: this.znmjDataSourceName,
-          label: '安防门禁',
-          name: '安防门禁',
+          label: '门禁管理',
+          name: '门禁管理',
           show: this.znmjDataSourceShow,
           selected: false,
           elements: this.znmjTagsData,

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

@@ -1,5 +1,5 @@
 import { Entity, NearFarScalar, PolylineDashMaterialProperty, DistanceDisplayCondition, Cartesian3, Color, PropertyBag } from "cesium";
-import { getTagList } from "@/API/fire";
+import { getSpeakerList } from "@/API/speaker";
 import { flyToByViewer, addNewDatasource } from "@/utils/mapUtil";
 import { _locate } from '@/utils'
 import { getViewer } from "@/store/map/mapService";
@@ -37,7 +37,7 @@ export default {
   },
   mounted() {
     setTimeout(() => {
-      // this.initFbky()
+      this.initFbky()
     }, 1000)
   },
   methods: {
@@ -46,7 +46,7 @@ export default {
         type: "fbky",
         label: "防爆扩音",
         name: "防爆扩音",
-        show: true,
+        show: false,
         selected: false,
         elements: this.fbkyTagsData,
       });
@@ -55,9 +55,10 @@ export default {
       try {
         let p = { buildId: this.buildInfo.positioningBuildId }
         // console.log('防爆扩音数据获取参数:', p)
-        let res = await getTagList(p);
-        // this.fbkyTagsData = res.data.content || [];
-        this.fbkyTagsData = FBKYLIST.filter((e) => e.buildId == this.buildInfo.positioningBuildId && e.show);
+        let res = await getSpeakerList(p);
+        console.log('防爆扩音数据:', res)
+        this.fbkyTagsData = res.data.content || [];//系统模块
+        // this.fbkyTagsData = FBKYLIST.filter((e) => e.buildId == this.buildInfo.positioningBuildId && e.show);//都匀配置文件
         console.log("防爆扩音信息", this.fbkyTagsData);
         this.$store.dispatch("globalConfig/updateSwitchConfig", {
           type: "fbky",

+ 4 - 0
src/views/basePage/mixins/MapEvent.js

@@ -177,6 +177,10 @@ export default {
                 detail: { ...data },
               })
             } else if (type === 'layer_fbky') {
+              // let cameraIds = data.cameras.map(e => {//视频弹窗
+              //   return e.cameraId
+              // })
+              // this.$store.dispatch('dialog/openVideoDialog', cameraIds)
               // console.log("数据内容fbky:----------------", data);
               this.$store.dispatch("globalConfig/setSoundElementDialog", {
                 show: true,

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

@@ -94,7 +94,7 @@ export default {
         },
         100006: {
           code: "101",
-          name: "安防门禁",
+          name: "门禁管理",
           value: "",
           level: "024000",
         },

+ 22 - 9
src/views/basePage/panels/PersonStatistics.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="page_container">
-    <base-title title="安防门禁" />
+    <base-title title="门禁管理" />
     <div class="page_content">
       <!-- 都匀人员不统计 -->
       <div class="person_title">人员信息</div>
@@ -301,8 +301,6 @@ export default {
     };
   },
   created() {
-    this.getMessage();
-    this.startMqtt();
     // this.openPersonInfo();
     // this.initAccessLogList();
   },
@@ -312,6 +310,17 @@ export default {
     },
   },
   mounted() {
+    this.startMqtt();
+    let timer = null;
+    if (!timer) {
+      timer = setInterval(() => {
+        this.getMessage();
+      }, 3000);
+    }
+    this.$once("hook:beforeDestroy", () => {
+      clearInterval(timer);
+      timer = null;
+    });
     // this.getPersonTypeList();
   },
   methods: {
@@ -395,14 +404,15 @@ export default {
           // } else if (topic === "CountArea/PersonTypeCountDic/All") {
           //   const data = JSON.parse(content);
           // } else
+          console.log("门禁内容调整", content);
           if (topic === "AccessControl/Log") {
             //站内人员变动,重新查询数据
-            if (
-              JSON.parse(content).AreaId == "791707314364096512" &&
-              JSON.parse(content).PersonId != null
-            ) {
-              this.getMessage();
-            }
+            // if (
+            //   JSON.parse(content).AreaId == "791707314364096512" &&
+            //   JSON.parse(content).PersonId != null
+            // ) {
+            this.getMessage();
+            // }
           }
         },
       });
@@ -420,6 +430,7 @@ export default {
             let workList = [];
             let visitList = [];
             let personInfoList = [];
+
             res.data.content.forEach((i) => {
               if (i.typeBelong == 1) {
                 personInfoList.push({
@@ -494,6 +505,7 @@ export default {
             //   workList
             // );
           }
+        } else {
         }
       } catch (error) {
         console.log(error);
@@ -534,6 +546,7 @@ export default {
         });
     },
   },
+  beforeDestroy() {},
 };
 </script>
 

+ 14 - 7
src/views/basePage/panels/RiskHint.vue

@@ -30,7 +30,14 @@
                 Dayjs(item.eventTime).format("YYYY-MM-DD HH:mm:ss")
               }}</span>
             </div>
-            <div class="content">{{ item.content }}</div>
+            <div
+              class="content"
+              :style="{
+                color: `${riskColors[item.level].color}`,
+              }"
+            >
+              {{ item.content }}
+            </div>
           </div>
         </div>
       </vue-seamless>
@@ -68,7 +75,7 @@ export default {
         ["306002"]: { name: "较大级别", color: "#FF9F00" },
         ["306003"]: { name: "一般级别", color: "#F8E71C" },
         ["306004"]: { name: "低级别", color: "#53A3FF" },
-        ["024001"]: { name: "一级", color: "#FF9F00" },
+        ["024001"]: { name: "一级", color: "#FF3636" },
         ["024002"]: { name: "二级", color: "#F8E71C" },
         ["024003"]: { name: "三级", color: "#53A3FF" },
       },
@@ -138,11 +145,11 @@ export default {
               e.content,
           };
         });
-        console.log("风险报警数据", alarmData, this.hintData1);
+        // console.log("风险报警数据", alarmData, this.hintData1);
       } catch (err) {}
     },
     openRiskDialog(data) {
-      console.log("风险报警数据", data);
+      // console.log("风险报警数据", data);
       // let dialogConfig = {
       //   dialogId: "risk_" + data.id,
       //   show: true, //是否显示
@@ -194,7 +201,7 @@ export default {
 
   .hint-box {
     width: 100%;
-    height: 198px;
+    height: 210px;
     overflow: hidden;
     padding: 0 15px;
     // display: flex;
@@ -240,10 +247,10 @@ export default {
     }
     .content {
       padding: 10px 0;
-      font-size: 13px;
+      font-size: 14px;
       color: #ffffff;
       letter-spacing: 1px;
-      font-weight: 400;
+      font-weight: 550;
     }
   }
   .no-data {

+ 3 - 1
src/views/components/baseFooter/FooterNavigation.vue

@@ -113,7 +113,9 @@ export default {
     $route(to, from) {},
   },
   mounted() {
-    this.getNavigationList();
+    if (localStorage.getItem("token") !== null) {
+      this.getNavigationList();
+    }
   },
   methods: {
     flyToPerspective,

+ 1 - 1
src/views/components/baseHeader/left.vue

@@ -374,7 +374,7 @@ export default {
       this.$notify({
         //样式style块
         dangerouslyUseHTMLString: true,
-        title: "安防门禁",
+        title: "门禁管理",
         message:
           "【郝波】在门禁【托克托出站门禁】人脸认证通过,离开【托克托压气站】",
         // duration: 0,

+ 2 - 2
src/views/components/dialog/AccessControlDialog.vue

@@ -139,7 +139,7 @@
           <el-col :span="8">
             <div class="search-box">
               <div class="search-item">
-                <span class="search-label">安防门禁列表</span>
+                <span class="search-label">设备列表</span>
                 <!-- <el-select
                   value-key="id"
                   v-model="department"
@@ -280,7 +280,7 @@ export default {
       baseDialogConfig: {
         dialogId: "accessControlDialog",
         show: false,
-        title: "安防门禁",
+        title: "门禁管理",
         width: 1240,
         height: 680,
         center: true,

+ 4 - 2
src/views/components/dialog/JGYTControlDialog/index.vue

@@ -305,8 +305,10 @@ export default {
     };
   },
   created() {
-    this.initJGYTList("");
-    this.initJGYTAlarmList("");
+    if (localStorage.getItem("token") !== null) {
+      this.initJGYTList("");
+      this.initJGYTAlarmList("");
+    }
     // this.getDepartmentByPid();
     // this.tableConfig.tableData = this.dataList;
     // this.recordTableConfig.tableData = this.recordList;

+ 4 - 2
src/views/components/dialog/PipeMileageDialog/index.vue

@@ -41,7 +41,7 @@ export default {
     "pipeMileageDialog.show": {
       handler(newVal) {
         this.baseDialogConfig.show = newVal;
-        if (this.statisticData.date.length == 0) {
+        if (newVal && this.statisticData.date.length == 0) {
           this.getMileageList();
         }
         // if (newVal) {
@@ -84,7 +84,9 @@ export default {
   },
   created() {},
   mounted() {
-    this.getMileageList();
+    if (localStorage.getItem("token") !== null) {
+      this.getMileageList();
+    }
   },
   methods: {
     closeDialog() {

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

@@ -232,8 +232,10 @@ export default {
     };
   },
   created() {
-    this.initSoundList();
-    this.getCameraList();
+    if (localStorage.getItem("token") !== null) {
+      this.initSoundList();
+      this.getCameraList();
+    }
     // this.getDepartmentByPid();
     this.departmentOptions = GY_STATIONS.filter((e) => e.id !== "");
   },

+ 4 - 2
src/views/components/dialog/VoiceCallDialog/index.vue

@@ -50,7 +50,9 @@ export default {
     "voiceCallDialog.show": {
       handler(newVal) {
         this.baseDialogConfig.show = newVal;
-        this.init();
+        if (newVal && localStorage.getItem("token") !== null) {
+          this.init();
+        }
       },
       // deep: true,
       immediate: true,
@@ -63,7 +65,7 @@ export default {
       baseDialogConfig: {
         dialogId: "VoiceCall",
         show: false,
-        title: "语音通话",
+        title: "语音交换对讲系统",
         width: 800,
         height: 510,
         center: true,

+ 13 - 3
src/views/components/emergency/CardListDialog.vue

@@ -10,10 +10,18 @@
   >
     <div slot="title" class="dialog-title">
       <span class="title-text">应急处置卡列表</span>
-      <img :src="require('@/assets/imgs/icons/icon_close@2x.png')" @click="handleClose" />
+      <img
+        :src="require('@/assets/imgs/icons/icon_close@2x.png')"
+        @click="handleClose"
+      />
     </div>
     <div class="list-container">
-      <div class="list-item" v-for="item of cardList" :key="item.id" @click="clickRow(item)">
+      <div
+        class="list-item"
+        v-for="item of cardList"
+        :key="item.id"
+        @click="clickRow(item)"
+      >
         <span>{{ item.sort }}、</span>
         <span>{{ item.name }}</span>
       </div>
@@ -49,7 +57,9 @@ export default {
     },
   },
   created() {
-    this.getCartList();
+    if (localStorage.getItem("token") !== null) {
+      this.getCartList();
+    }
   },
   methods: {
     async getCartList() {

+ 6 - 2
src/views/components/emergency/ContactInfoDialog.vue

@@ -217,7 +217,9 @@ export default {
     topNavActive: {
       handler(newVal) {
         this.show = newVal.includes("应急通讯录");
-        this.getContactList();
+        if (this.show) {
+          this.getContactList();
+        }
       },
       deep: true,
     },
@@ -226,7 +228,9 @@ export default {
     this.info = HOME_DATA;
   },
   created() {
-    this.getContactList();
+    if (localStorage.getItem("token") !== null) {
+      this.getContactList();
+    }
   },
   methods: {
     async getContactList() {