Quellcode durchsuchen

[Mod 0000] 根据需求修改了模型电子屏上的文字内容;将摄像头调大了

hongrunxia vor 3 Tagen
Ursprung
Commit
0861dbb7be
57 geänderte Dateien mit 910 neuen und 807 gelöschten Zeilen
  1. 17 16
      src/design/vent/comment.less
  2. 1 1
      src/hooks/system/useCamera.ts
  3. 1 1
      src/views/vent/monitorManager/balancePressMonitor/balancePress.threejs.base.ts
  4. 1 1
      src/views/vent/monitorManager/balancePressMonitor/balancePress.threejs.sp.ts
  5. 1 1
      src/views/vent/monitorManager/balancePressMonitor/balancePress.threejs.tun.ts
  6. 1 1
      src/views/vent/monitorManager/balancePressMonitor1/balancePress.three.ts
  7. 1 1
      src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.Two.ts
  8. 1 1
      src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.base.ts
  9. 1 1
      src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.single.ts
  10. 6 4
      src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.ts
  11. 5 1
      src/views/vent/monitorManager/fanLocalMonitor/fanLocalDual.threejs.base.ts
  12. 2 2
      src/views/vent/monitorManager/fanLocalMonitor/index.vue
  13. 2 2
      src/views/vent/monitorManager/fanLocalMonitor1/fanLocal.three.ts
  14. 34 4
      src/views/vent/monitorManager/fireDoorMonitor/index.vue
  15. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.noStation.ts
  16. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.one.sp.ts
  17. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.qd.ts
  18. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.three.hsw.ts
  19. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.three.tl.ts
  20. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.three.ts
  21. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.two.ss.ts
  22. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.two.yj.ts
  23. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.window.hjg.ts
  24. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.window.ts
  25. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.window.zhq.ts
  26. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.xc.ts
  27. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.xr.ts
  28. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.yj.ts
  29. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.yy.ts
  30. 15 1
      src/views/vent/monitorManager/gateMonitor/index.vue
  31. 6 3
      src/views/vent/monitorManager/mainFanMonitor/index.vue
  32. 21 3
      src/views/vent/monitorManager/mainFanMonitor/main.data.ts
  33. 1 1
      src/views/vent/monitorManager/obfurage1Monitor/gate.threejs.three.ts
  34. 1 1
      src/views/vent/monitorManager/obfurage1Monitor/gate.threejs.two.ts
  35. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFc.threejs.ts
  36. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcBd1.threejs.ts
  37. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcBd2.threejs.ts
  38. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcBd3.threejs.ts
  39. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcBet.threejs.ts
  40. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcHjt.threejs.ts
  41. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcLt.threejs.ts
  42. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcYjl.threejs.ts
  43. 14 1
      src/views/vent/monitorManager/windowMonitor/index.vue
  44. 1 1
      src/views/vent/monitorManager/windowMonitor/sandaoFc.threejs.ts
  45. 1 1
      src/views/vent/monitorManager/windowMonitor/shuangdaoFc.threejs.ts
  46. 1 1
      src/views/vent/monitorManager/windowMonitor/shuangdaoFcBlt.threejs.ts
  47. 1 1
      src/views/vent/monitorManager/windowMonitor/shuangdaoFcHj.threejs.ts
  48. 1 1
      src/views/vent/monitorManager/windowMonitor/shuangdaoFcSw.threejs.ts
  49. 1 1
      src/views/vent/monitorManager/windowMonitor/shuangdaoFcYjl.threejs.ts
  50. 1 1
      src/views/vent/monitorManager/windowMonitor/shuangdaoFcZhq.threejs.ts
  51. 1 1
      src/views/vent/monitorManager/windowMonitorBet/dandaoFc.threejs.ts
  52. 1 1
      src/views/vent/monitorManager/windowMonitorBet/dandaoFcBet.threejs.ts
  53. 1 1
      src/views/vent/monitorManager/windowMonitorBet/dandaoFcBetZh.threejs.ts
  54. 1 1
      src/views/vent/monitorManager/windowMonitorBet/shuangdaoFc.threejs.ts
  55. 1 1
      src/views/vent/monitorManager/windrectMonitor/dantou.threejs.ts
  56. 1 1
      src/views/vent/monitorManager/windrectMonitor/duishe.threejs.ts
  57. 742 724
      src/views/vent/monitorManager/windrectMonitor/index.vue

+ 17 - 16
src/design/vent/comment.less

@@ -101,11 +101,11 @@
 }
 
 .vent-padding-lr-5 {
-  padding: 0 5px
+  padding: 0 5px;
 }
 
 .vent-padding-lr-10 {
-  padding: 0 10px
+  padding: 0 10px;
 }
 
 .table-action-link {
@@ -181,9 +181,9 @@
   font-size: 20px;
   text-align: center;
   cursor: pointer;
-  box-shadow: 0 1px 2px rgba(0, 0, 0, .3);
+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
   overflow: hidden;
-  background-color: #00FF00;
+  background-color: #00ff00;
   animation: ease-in-out breathe 500ms infinite alternate;
 }
 
@@ -198,9 +198,9 @@
   font-size: 20px;
   text-align: center;
   cursor: pointer;
-  box-shadow: 0 1px 2px rgba(0, 0, 0, .3);
+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
   overflow: hidden;
-  background-color: #FF0000;
+  background-color: #ff0000;
   animation: ease-in-out breathe 100ms infinite alternate;
 }
 
@@ -209,8 +209,10 @@
   --image-camera_bg: url('/@/assets/images/vent/camera_bg.png');
   margin-top: 10px;
   position: relative;
-  width: 314px;
-  height: 208px;
+  // width: 314px;
+  // height: 208px;
+  // width: 614px;
+  // height: 508px;
   background: var(--image-camera_bg);
   background-size: cover;
   padding: 10px;
@@ -227,7 +229,7 @@
     top: 25px;
     right: 35px;
     color: @vent-font-color;
-    background-color: hsla(0, 0%, 50%, .5);
+    background-color: hsla(0, 0%, 50%, 0.5);
     border-radius: 2px;
     padding: 1px 5px;
     max-width: 120px;
@@ -240,14 +242,14 @@
 #LivePlayerBox {
   --image-camera_bg: url('/@/assets/images/vent/camera_bg.png');
   width: 100%;
-  // height: 100%;
-  height: 208px;
+  height: 100%;
+  // height: 208px;
   position: relative;
 
   .liveVideo {
-    height: 208px;
     pointer-events: auto !important;
-    width: 314px;
+    width: 460px !important;
+    height: 305px !important;
     padding: 10px;
     background: var(--image-camera_bg);
     background-size: cover;
@@ -259,12 +261,11 @@
     //     background-size: cover;
     //   }
   }
-
 }
 
 @keyframes breathe {
   0% {
-    opacity: .2;
+    opacity: 0.2;
     box-shadow: 0 1px 2px rgba(255, 255, 255, 0.1);
   }
 
@@ -273,4 +274,4 @@
     border: 1px solid rgba(59, 235, 235, 1);
     box-shadow: 0 1px 30px rgba(59, 255, 255, 1);
   }
-}
+}

+ 1 - 1
src/hooks/system/useCamera.ts

@@ -336,7 +336,7 @@ export function useCamera() {
     });
   }
 
-  function getPlayer(fileExtension, playerDomId, camerakind, cameraUrl, cameraRate, option = { width: 294, height: 188 }) {
+  function getPlayer(fileExtension, playerDomId, camerakind, cameraUrl, cameraRate, option = { width: '100%', height: '100%' }) {
     let player;
     if (fileExtension === 'flv' || camerakind == 'flv') {
       player = new Player({

+ 1 - 1
src/views/vent/monitorManager/balancePressMonitor/balancePress.threejs.base.ts

@@ -110,7 +110,7 @@ class balancePressBase {
         y: 275,
       },
       {
-        text: `煤炭科学技术研究院有限公司研制`,
+        text: `煤科通安(北京)智控科技有限公司研制`,
         font: 'normal 28px Arial',
         color: '#009900',
         strokeStyle: '#002200',

+ 1 - 1
src/views/vent/monitorManager/balancePressMonitor/balancePress.threejs.sp.ts

@@ -110,7 +110,7 @@ class balancePressSp {
         y: 275,
       },
       {
-        text: `煤炭科学技术研究院有限公司研制`,
+        text: `煤科通安(北京)智控科技有限公司研制`,
         font: 'normal 28px Arial',
         color: '#009900',
         strokeStyle: '#002200',

+ 1 - 1
src/views/vent/monitorManager/balancePressMonitor/balancePress.threejs.tun.ts

@@ -109,7 +109,7 @@ class balancePressTun {
         y: 275,
       },
       {
-        text: `煤炭科学技术研究院有限公司研制`,
+        text: `煤科通安(北京)智控科技有限公司研制`,
         font: 'normal 28px Arial',
         color: '#009900',
         strokeStyle: '#002200',

+ 1 - 1
src/views/vent/monitorManager/balancePressMonitor1/balancePress.three.ts

@@ -182,7 +182,7 @@ export const addText = (selectData) => {
       y: 275,
     },
     {
-      text: `煤炭科学技术研究院有限公司研制`,
+      text: `煤科通安(北京)智控科技有限公司研制`,
       font: 'normal 28px Arial',
       color: '#009900',
       strokeStyle: '#002200',

+ 1 - 1
src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.Two.ts

@@ -320,7 +320,7 @@ class ModelContext {
       : // @ts-ignore
       History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.base.ts

@@ -316,7 +316,7 @@ class ModelContext {
       : // @ts-ignore
       History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.single.ts

@@ -149,7 +149,7 @@ class ModelContext {
       : // @ts-ignore
       History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 6 - 4
src/views/vent/monitorManager/fanLocalMonitor/fanLocal.threejs.ts

@@ -95,19 +95,21 @@ export function setModelType(modelType: 'fanLocal' | 'fanLocalDual' | 'fanLocalS
         group.children.forEach((e) => {
           e.visible = true;
         });
+        debugger;
 
         // 模型发生了替换,需要使用摄像头动画// 模型不同需要不同的初始角度与位置
         if (type == 'fanLocal') {
           const oldCameraPosition = { x: 615, y: 275, z: 744 };
           animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, { x: -1.85, y: 13.58, z: 37.39 }, { x: -1.83, y: 2.58, z: -0.75 }, model, 0.8);
-        }
-        if (type == 'fanLocalTwo') {
+        } else if (type == 'fanLocalTwo') {
           const oldCameraPosition = { x: 615, y: 275, z: 744 };
           animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, { x: -1.85, y: 13.58, z: 37.39 }, { x: -1.83, y: 2.58, z: -0.75 }, model, 0.8);
-        }
-        if (type == 'fanLocalDual') {
+        } else if (type == 'fanLocalDual') {
           const oldCameraPosition = { x: -693, y: 474, z: 398 };
           animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, { x: 14.83, y: 16.9, z: 36.46 }, { x: 0, y: 0, z: 0 }, model, 0.8);
+        } else if (type == 'fanLocalSingle') {
+          const oldCameraPosition = { x: 615, y: 275, z: 744 };
+          animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, { x: -1.85, y: 13.58, z: 37.39 }, { x: -1.83, y: 2.58, z: -0.75 }, model, 0.8);
         }
 
         resolve(null);

+ 5 - 1
src/views/vent/monitorManager/fanLocalMonitor/fanLocalDual.threejs.base.ts

@@ -496,7 +496,11 @@ class ModelContext {
       return;
     }
     // @ts-ignore
-    const screenDownText = get(VENT_PARAM, 'modalText', History_Type['type'] == 'remote' ? '国能神东煤炭集团监制' : '煤炭科学技术研究院有限公司研制');
+    const screenDownText = get(
+      VENT_PARAM,
+      'modalText',
+      History_Type['type'] == 'remote' ? '国能神东煤炭集团监制' : '煤科通安(北京)智控科技有限公司研制'
+    );
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 2 - 2
src/views/vent/monitorManager/fanLocalMonitor/index.vue

@@ -1818,8 +1818,8 @@
     mountedThree('#fanLocal3D', ['#fanLocal3DCSS']).then(async () => {
       await getMonitor(true);
       nextTick(async () => {
-        addCssText();
-        setModelType(mainModelType.value, modalType.value);
+        // addCssText();
+        // setModelType(mainModelType.value, modalType.value);
       });
     });
 

+ 2 - 2
src/views/vent/monitorManager/fanLocalMonitor1/fanLocal.three.ts

@@ -144,7 +144,7 @@ export const addText = (selectData) => {
     ? VENT_PARAM['modalText']
     : History_Type['type'] == 'remote'
     ? `国能神东煤炭集团监制`
-    : '煤炭科学技术研究院有限公司研制';
+    : '煤科通安(北京)智控科技有限公司研制';
 
   const screenDownTextX = 80 - (screenDownText.length - 10) * 6;
   const textArr = [
@@ -233,7 +233,7 @@ export const addText = (selectData) => {
       font: 'normal 28px Arial',
       color: '#009900',
       strokeStyle: '#002200',
-      x: screenDownTextX, //20  煤炭科学技术研究院有限公司研制
+      x: screenDownTextX, //20  煤科通安(北京)智控科技有限公司研制
       y: 325,
     },
   ];

+ 34 - 4
src/views/vent/monitorManager/fireDoorMonitor/index.vue

@@ -176,7 +176,23 @@
       </dv-border-box8>
     </div>
   </div>
-  <div ref="playerRef" style="z-index: 999; position: absolute; top: 100px; right: 15px; width: 300px; height: 280px; margin: auto"> </div>
+  <div
+    :class="{ 'dfc-box': sysOrgCode == 'bcjtdfsmk' }"
+    ref="playerRef"
+    style="
+      z-index: 1;
+      position: absolute;
+      top: 100px;
+      right: 0px;
+      width: 100%;
+      height: 800px;
+      overflow-y: auto;
+      pointer-events: none;
+      margin-left: auto;
+      display: flex;
+      justify-items: flex-end;
+    "
+  ></div>
   <HandleModal
     v-if="!globalConfig?.simulatedPassword"
     :modal-is-show="modalIsShow"
@@ -225,17 +241,18 @@
   import { useCamera } from '/@/hooks/system/useCamera';
   import { usePermission } from '/@/hooks/web/usePermission';
   import { getDictItems } from '/@/api/common/api';
+  import { useGlobSetting } from '/@/hooks/setting';
 
   const { hasPermission } = usePermission();
 
   const globalConfig = inject('globalConfig');
-
+  const { sysOrgCode } = useGlobSetting();
   const { currentRoute } = useRouter();
   const MonitorDataTable = ref();
   let contrlValue = '';
   const playerRef = ref();
-  const deviceType = ref('door');
-  // const deviceType = ref('gate');
+  // const deviceType = ref('door');
+  const deviceType = ref('gate');
   // const deviceType = ref('firedoor');
   const activeKey = ref('1'); // tab
   const loading = ref(false);
@@ -507,6 +524,15 @@
       top: 35px !important;
     }
   }
+  .dfc-box {
+    :deep(#LivePlayerBox .liveVideo) {
+      width: 800px !important;
+      height: 600px !important;
+      .xgplayer {
+        height: 100% !important;
+      }
+    }
+  }
 
   :deep(.@{ventSpace}-tabs-tabpane-active) {
     height: 100%;
@@ -522,4 +548,8 @@
   :deep(.zxm-radio-disabled .zxm-radio-inner::after) {
     background-color: #127cb5 !important;
   }
+  :deep(.live-player-box) {
+    display: flex;
+    justify-content: end;
+  }
 </style>

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.noStation.ts

@@ -75,7 +75,7 @@ class FmNoStation {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.one.sp.ts

@@ -76,7 +76,7 @@ class FmSp1 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 11) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.qd.ts

@@ -79,7 +79,7 @@ class Fm3 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 6;
 

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.three.hsw.ts

@@ -83,7 +83,7 @@ class FmHsw3 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 11) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.three.tl.ts

@@ -90,7 +90,7 @@ class FmThreeTl {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 11) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.three.ts

@@ -83,7 +83,7 @@ class Fm2 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.two.ss.ts

@@ -102,7 +102,7 @@ class FmTwoSs {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 11) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.two.yj.ts

@@ -102,7 +102,7 @@ class FmYjXr {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 11) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.window.hjg.ts

@@ -72,7 +72,7 @@ class FmDcHJG {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 7;
 

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.window.ts

@@ -72,7 +72,7 @@ class FmDc {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 7;
 

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.window.zhq.ts

@@ -72,7 +72,7 @@ class FmDcZHQ {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 7;
 

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.xc.ts

@@ -103,7 +103,7 @@ class FmXR {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 9;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.xr.ts

@@ -75,7 +75,7 @@ class FmXR {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 9;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.yj.ts

@@ -102,7 +102,7 @@ class FmYj {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 9;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.yy.ts

@@ -77,7 +77,7 @@ class Fm1 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 11) * 9;
     const textArr = [

+ 15 - 1
src/views/vent/monitorManager/gateMonitor/index.vue

@@ -317,7 +317,21 @@
       </dv-border-box8>
     </div>
   </div>
-  <div ref="playerRef" style="z-index: 999; position: absolute; top: 100px; right: 15px; width: 300px; height: 280px; margin: auto"> </div>
+  <div
+    ref="playerRef"
+    style="
+      z-index: 1;
+      position: absolute;
+      top: 100px;
+      right: 0px;
+      width: 100%;
+      height: 800px;
+      overflow-y: auto;
+      pointer-events: none;
+      margin-left: auto;
+    "
+  >
+  </div>
   <LivePlayer
     id="fm-player1"
     style="height: 220px; width: 300px; position: absolute; top: 0px; z-index: -1"

+ 6 - 3
src/views/vent/monitorManager/mainFanMonitor/index.vue

@@ -429,7 +429,7 @@
   <div
     v-show="showPlay"
     ref="playerRef"
-    style="z-index: 999; position: absolute; right: 15px; width: 100%; height: 100%; margin: auto; pointer-events: none"
+    style="z-index: 999; position: absolute; width: 100%; height: 100%; overflow-x: auto; overflow-y: hidden; margin: auto; pointer-events: none"
     :style="{ top: hasPermission('btn:show') ? '155px' : '100px' }"
   >
   </div>
@@ -2365,14 +2365,17 @@
   }
 
   ::v-deep(#LivePlayerBox) {
+    width: 100%;
     display: flex;
     flex-direction: row;
     justify-content: flex-end;
-    padding-right: 380px;
+    // padding-right: 380px;
+    // padding-left: 380px;
     pointer-events: none;
+    overflow-x: auto;
 
     .video-parent {
-      height: 208px;
+      // height: 100%;
       pointer-events: auto !important;
     }
   }

+ 21 - 3
src/views/vent/monitorManager/mainFanMonitor/main.data.ts

@@ -812,8 +812,8 @@ export const assistanceData = {
 
 export const setOption = (deviceType?) => {
   let yMax = 4500;
-  // const { sysOrgCode } = useGlobSetting();
-  const sysOrgCode = 'sdtljtdhzmk';
+  const { sysOrgCode } = useGlobSetting();
+  // const sysOrgCode = 'yjmdhswmk';
   if (sysOrgCode == 'sdmtjtdltmk') {
     // 这里判断白家渠还是五当沟
     if (deviceType == 'fanmain_bjq') {
@@ -849,6 +849,8 @@ export const setOption = (deviceType?) => {
     yMax = 4000;
   } else if (sysOrgCode == 'sdtljtdhzmk') {
     yMax = 5000;
+  } else if (sysOrgCode == 'yjmdhswmk') {
+    yMax = 5000;
   } else {
     yMax = 4500;
   }
@@ -1160,7 +1162,7 @@ export const initData1 = () => {
 // 大柳塔武当沟
 export const initData = (deviceType?) => {
   const { sysOrgCode } = useGlobSetting();
-  // const sysOrgCode = 'sdtljtdhzmk';
+  // const sysOrgCode = 'yjmdhswmk';
   if (sysOrgCode == 'sdmtjtdltmk') {
     return initDataDlt(deviceType);
   } else if (sysOrgCode == 'sdmtjtswmk') {
@@ -1187,6 +1189,9 @@ export const initData = (deviceType?) => {
     return initDataLt();
   } else if (sysOrgCode == 'sdtljtdhzmk') {
     return initDataDhz();
+  } else if (sysOrgCode == 'yjmdhswmk') {
+    //海石湾
+    return initDataHsw();
   } else {
     return initData1();
   }
@@ -1742,6 +1747,19 @@ const initDataDhz = () => {
   return data;
 };
 
+const initDataHsw = () => {
+  const data: any[] = [];
+  data.push({
+    Hz: 50,
+    a: -0.0704,
+    b: 6.9552,
+    c: 4596.9,
+    min: 80,
+    max: 300,
+  });
+  return data;
+};
+
 export const fanInfoData = reactive({
   fj: '一号回风井',
   xh: 'FBCDZ No.29',

+ 1 - 1
src/views/vent/monitorManager/obfurage1Monitor/gate.threejs.three.ts

@@ -138,7 +138,7 @@ class Fm2 {
         y: 275,
       },
       {
-        text: `煤炭科学技术研究院有限公司研制`,
+        text: `煤科通安(北京)智控科技有限公司研制`,
         font: 'normal 28px Arial',
         color: '#00FF00',
         strokeStyle: '#007400',

+ 1 - 1
src/views/vent/monitorManager/obfurage1Monitor/gate.threejs.two.ts

@@ -157,7 +157,7 @@ class Fm1 {
         y: 275,
       },
       {
-        text: `煤炭科学技术研究院有限公司研制`,
+        text: `煤科通安(北京)智控科技有限公司研制`,
         font: 'normal 28px Arial',
         color: '#00FF00',
         strokeStyle: '#007400',

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFc.threejs.ts

@@ -64,7 +64,7 @@ class ddFc_5 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFcBd1.threejs.ts

@@ -56,7 +56,7 @@ class ddFc_4 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFcBd2.threejs.ts

@@ -58,7 +58,7 @@ class ddFc_2 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFcBd3.threejs.ts

@@ -60,7 +60,7 @@ class ddFc_7 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFcBet.threejs.ts

@@ -57,7 +57,7 @@ class singleWindowBet {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFcHjt.threejs.ts

@@ -57,7 +57,7 @@ class ddFc_6 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFcLt.threejs.ts

@@ -56,7 +56,7 @@ class ddFc_lt {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/dandaoFcYjl.threejs.ts

@@ -41,7 +41,7 @@ class ddFc_1 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 14 - 1
src/views/vent/monitorManager/windowMonitor/index.vue

@@ -165,7 +165,20 @@
       </dv-border-box8>
     </div>
   </div>
-  <div ref="playerRef" style="z-index: 999; position: absolute; top: 100px; right: 10px; width: 300px; height: 280px; margin: auto"></div>
+  <div
+    ref="playerRef"
+    style="
+      z-index: 1;
+      position: absolute;
+      top: 100px;
+      right: 0px;
+      width: 100%;
+      height: 800px;
+      overflow-y: auto;
+      pointer-events: none;
+      margin-left: auto;
+    "
+  ></div>
   <LivePlayer
     id="fc-player1"
     style="height: 220px; width: 300px; position: absolute; top: 0px; z-index: -1"

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/sandaoFc.threejs.ts

@@ -59,7 +59,7 @@ class threeFc_8 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/shuangdaoFc.threejs.ts

@@ -60,7 +60,7 @@ class sdFc_1 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/shuangdaoFcBlt.threejs.ts

@@ -41,7 +41,7 @@ class sdFc_3 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 125 - (screenDownText.length - 10) * 11;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/shuangdaoFcHj.threejs.ts

@@ -43,7 +43,7 @@ class sdFc_4 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 125 - (screenDownText.length - 10) * 11;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/shuangdaoFcSw.threejs.ts

@@ -63,7 +63,7 @@ class sdFc_2 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 120 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/shuangdaoFcYjl.threejs.ts

@@ -43,7 +43,7 @@ class ddFc_2 {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 120 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/shuangdaoFcZhq.threejs.ts

@@ -70,7 +70,7 @@ class SdFcZhq {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 80 - (screenDownText.length - 10) * 7;
 

+ 1 - 1
src/views/vent/monitorManager/windowMonitorBet/dandaoFc.threejs.ts

@@ -41,7 +41,7 @@ class singleWindow {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 120 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitorBet/dandaoFcBet.threejs.ts

@@ -41,7 +41,7 @@ class singleWindowBet {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitorBet/dandaoFcBetZh.threejs.ts

@@ -42,7 +42,7 @@ class singleWindowBetZh {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 90 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windowMonitorBet/shuangdaoFc.threejs.ts

@@ -36,7 +36,7 @@ class doubleWindow {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 120 - (screenDownText.length - 10) * 6;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windrectMonitor/dantou.threejs.ts

@@ -54,7 +54,7 @@ class ddWindRect {
       ? VENT_PARAM['modalText']
       : History_Type['type'] == 'remote'
       ? `国能神东煤炭集团监制`
-      : '煤炭科学技术研究院有限公司研制';
+      : '煤科通安(北京)智控科技有限公司研制';
 
     const screenDownTextX = 100 - (screenDownText.length - 10) * 7;
     const textArr = [

+ 1 - 1
src/views/vent/monitorManager/windrectMonitor/duishe.threejs.ts

@@ -148,7 +148,7 @@ class dsWindRect {
         font: 'normal 28px Arial',
         color: '#009900',
         strokeStyle: '#002200',
-        x: 50,
+        x: 20,
         y: 302,
       },
     ];

+ 742 - 724
src/views/vent/monitorManager/windrectMonitor/index.vue

@@ -119,7 +119,21 @@
       </dv-border-box8>
     </div>
   </div>
-  <div ref="playerRef" style="z-index: 999; position: absolute; top: 100px; right: 10px; width: 300px; height: 280px; margin: auto"></div>
+  <div
+    ref="playerRef"
+    style="
+      z-index: 1;
+      position: absolute;
+      top: 100px;
+      right: 0px;
+      width: 100%;
+      height: 800px;
+      overflow-y: auto;
+      pointer-events: none;
+      margin-left: auto;
+    "
+  >
+  </div>
   <BasicModal v-bind="$attrs" @register="registerModal" title="一键测风" width="900px" @ok="handleOk" @cancel="handleCancel">
     <div class="head-line">
       <!-- <div class="vent-flex-row">
@@ -148,809 +162,813 @@
 </template>
 
 <script setup lang="ts">
-import DeviceEcharts from '../comment/DeviceEcharts.vue';
-import { unref, onBeforeMount, ref, onMounted, onUnmounted, reactive, toRaw, nextTick, inject, shallowRef } from 'vue';
-import { BasicModal, useModalInner } from '/@/components/Modal';
-import MonitorTable from '../comment/MonitorTable.vue';
-import ModalTable from './components/modalTable.vue';
-import HandleModal from './components/modal.vue';
-import DeviceBaseInfo from '../comment/components/DeviceBaseInfo.vue';
-import ResultTable from './components/resultTable.vue';
-import HistoryTable from '../comment/HistoryTable.vue';
-import AlarmHistoryTable from '../comment/AlarmHistoryTable.vue';
-import AlarmNumTable from '../comment/AlarmNumTable.vue';
-import HandlerHistoryTable from '../comment/HandlerHistoryTable.vue';
-import { deviceControlApi } from '/@/api/vent/index';
-import { mountedThree, destroy, addMonitorText, play, setModelType, playCamera } from './windrect.threejs';
-import { list, pathList, deviceList, testWind, exportXls, resetWind, getRegulation } from './windrect.api';
-import { message, Progress } from 'ant-design-vue';
-import { chartsColumns, chartsColumnsHistory, option } from './windrect.data';
-import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
-import { setDivHeight } from '/@/utils/event';
-import { BorderBox8 as DvBorderBox8 } from '@kjgl77/datav-vue3';
-import { useRouter } from 'vue-router';
-import { useModal } from '/@/components/Modal';
-import { useCamera } from '/@/hooks/system/useCamera';
-import { usePermission } from '/@/hooks/web/usePermission';
-import { useGlobSetting } from '/@/hooks/setting';
-import { device } from '../../gas/gasPipeNet/gasPipeNet.api';
-import { getModelComponent } from './windrect.data';
-const { hasPermission } = usePermission();
-
-const globalConfig = inject<any>('globalConfig');
-
-const { sysOrgCode } = useGlobSetting();
-const { currentRoute } = useRouter();
-const modelRef = ref();
-/** 模型对应的组件,根据实际情况分为二维三维 */
-let modelComponent = shallowRef(getModelComponent(globalConfig.is2DModel));
-
-const MonitorDataTable = ref();
-const scroll = reactive({
-  y: 230,
-});
-const modalType = ref('');
-const modalIsShow = ref(false);
-const modalTable = ref();
-const runNum = ref(5); //设备运行数量
-const criticalPathList = ref([]);
-const playerRef = ref();
-const activeKey = ref('1');
-const loading = ref(false);
-// 默认初始是第一行
-const selectRowIndex = ref(-1);
-// 监测数据
-const selectData = reactive({
-  deviceID: '',
-  deviceType: '',
-  strname: '',
-  dataDh: '-', //压差
-  dataDtestq: '-', //测试风量
-  // sourcePressure: '-', //气源压力
-  dataDequivalarea: '-',
-  netStatus: '0', //通信状态
-  fault: '气源压力超限',
-  sign: -1,
-  sensorRight: 0,
-  sensorMiddle: 1,
-  sensorLeft: 0,
-});
-const deviceType = ref('windrect');
-const deviceId = ref('');
-const chartsColumnArr = getTableHeaderColumns('windrect_chart');
-const chartsColumnList = ref(chartsColumnArr.length > 0 ? chartsColumnArr : chartsColumns);
-
-// const dataSource = computed(() => {
-//   const data = [...getRecordList()] || [];
-//   Object.assign(selectData, toRaw(data[selectRowIndex.value]));
-//   addMonitorText(selectData);
-//   return data;
-// });
-
-const dataSource = ref([]);
-const [regModal, { openModal }] = useModal();
-
-const { getCamera, removeCamera } = useCamera();
-const tabChange = (activeKeyVal) => {
-  activeKey.value = activeKeyVal;
-  if (activeKeyVal == 1) {
-    nextTick(() => {
-      MonitorDataTable.value.setSelectedRowKeys([selectData.deviceID]);
-    });
-  }
-};
-
-// 设备数据
-const controlType = ref(1);
-//表单赋值
-const [registerModal, { setModalProps, closeModal }] = useModalInner();
-
-// https获取监测数据
-let timer: null | NodeJS.Timeout = null;
-// function getMonitor(flag?) {
-//   if (Object.prototype.toString.call(timer) === '[object Null]') {
-//     timer = setTimeout(
-//       () => {
-//         list({ devicetype: deviceType.value, pagetype: 'normal' }).then((res) => {
-//           if (res && res.msgTxt[0]) {
-//             // dataSource.value = res.msgTxt[0].datalist || [];
-//             const getData = res.msgTxt[0].datalist || [];
-//             getData.forEach((data) => {
-//               if (data.regulation) {
-//                 getRegulationList(data.regulation);
-//               }
-//             });
-//             dataSource.value = getData;
-//             if (dataSource.value.length > 0) {
-//               dataSource.value.forEach((data: any) => {
-//                 const readData = data.readData;
-//                 data = Object.assign(data, readData);
-//               });
-//               if (dataSource.value.length > 0 && selectRowIndex.value == -1) {
-//                 // 初始打开页面
-//                 if (currentRoute.value && currentRoute.value['query'] && currentRoute.value['query']['id']) {
-//                   MonitorDataTable.value.setSelectedRowKeys([currentRoute.value['query']['id']]);
-//                 } else {
-//                   MonitorDataTable.value.setSelectedRowKeys([dataSource.value[0]['deviceID']]);
-//                 }
-//               }
-//               const data: any = toRaw(dataSource.value[selectRowIndex.value]); //maxarea
-//               Object.assign(selectData, data);
-//               addMonitorText(selectData);
-
-//               palyAnimation(selectData);
-//             }
-//           }
-//           if (timer) {
-//             timer = null;
-//           }
-//           getMonitor();
-//         });
-//       },
-//       flag ? 0 : 1000
-//     );
-//   }
-// }
-// function getRegulationList(data) {
-//   getRegulation().then((res) => {
-//     if (res) {
-//       const regulation = res.find((item) => item.id == data);
-//       data.regulation = regulation;
-//       data.fmin = data.regulation.fmin;
-//       data.fmax = data.regulation.fmax;
-//     }
-//   });
-// }
-// 缓存
-let allRegulations: any[] | null = null;
-
-async function getMonitor(flag?: boolean) {
-  if (timer === null) {
-    timer = setTimeout(
-      async () => {
-        try {
-          // 1. 获取监控列表数据
-          const res = await list({
-            devicetype: deviceType.value,
-            pagetype: 'normal',
-          });
-          if (res?.msgTxt[0]) {
-            const rawData = res.msgTxt[0].datalist || [];
-            const processedData = [...rawData];
-
-            // 首次请求获取去所有regulation数据
-            if (allRegulations === null) {
-              const regulationRes = await getRegulation({
-                deviceKind: deviceType.value,
-              });
-              allRegulations = regulationRes || [];
-            }
-            // 根据id创建一个映射表
-            const regulationMap = new Map();
-            allRegulations.forEach((reg) => {
-              regulationMap.set(reg.id, reg);
+  import DeviceEcharts from '../comment/DeviceEcharts.vue';
+  import { unref, onBeforeMount, ref, onMounted, onUnmounted, reactive, toRaw, nextTick, inject, shallowRef } from 'vue';
+  import { BasicModal, useModalInner } from '/@/components/Modal';
+  import MonitorTable from '../comment/MonitorTable.vue';
+  import ModalTable from './components/modalTable.vue';
+  import HandleModal from './components/modal.vue';
+  import DeviceBaseInfo from '../comment/components/DeviceBaseInfo.vue';
+  import ResultTable from './components/resultTable.vue';
+  import HistoryTable from '../comment/HistoryTable.vue';
+  import AlarmHistoryTable from '../comment/AlarmHistoryTable.vue';
+  import AlarmNumTable from '../comment/AlarmNumTable.vue';
+  import HandlerHistoryTable from '../comment/HandlerHistoryTable.vue';
+  import { deviceControlApi } from '/@/api/vent/index';
+  import { mountedThree, destroy, addMonitorText, play, setModelType, playCamera } from './windrect.threejs';
+  import { list, pathList, deviceList, testWind, exportXls, resetWind, getRegulation } from './windrect.api';
+  import { message, Progress } from 'ant-design-vue';
+  import { chartsColumns, chartsColumnsHistory, option } from './windrect.data';
+  import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
+  import { setDivHeight } from '/@/utils/event';
+  import { BorderBox8 as DvBorderBox8 } from '@kjgl77/datav-vue3';
+  import { useRouter } from 'vue-router';
+  import { useModal } from '/@/components/Modal';
+  import { useCamera } from '/@/hooks/system/useCamera';
+  import { usePermission } from '/@/hooks/web/usePermission';
+  import { useGlobSetting } from '/@/hooks/setting';
+  import { device } from '../../gas/gasPipeNet/gasPipeNet.api';
+  import { getModelComponent } from './windrect.data';
+  const { hasPermission } = usePermission();
+
+  const globalConfig = inject<any>('globalConfig');
+
+  const { sysOrgCode } = useGlobSetting();
+  const { currentRoute } = useRouter();
+  const modelRef = ref();
+  /** 模型对应的组件,根据实际情况分为二维三维 */
+  let modelComponent = shallowRef(getModelComponent(globalConfig.is2DModel));
+
+  const MonitorDataTable = ref();
+  const scroll = reactive({
+    y: 230,
+  });
+  const modalType = ref('');
+  const modalIsShow = ref(false);
+  const modalTable = ref();
+  const runNum = ref(5); //设备运行数量
+  const criticalPathList = ref([]);
+  const playerRef = ref();
+  const activeKey = ref('1');
+  const loading = ref(false);
+  // 默认初始是第一行
+  const selectRowIndex = ref(-1);
+  // 监测数据
+  const selectData = reactive({
+    deviceID: '',
+    deviceType: '',
+    strname: '',
+    dataDh: '-', //压差
+    dataDtestq: '-', //测试风量
+    // sourcePressure: '-', //气源压力
+    dataDequivalarea: '-',
+    netStatus: '0', //通信状态
+    fault: '气源压力超限',
+    sign: -1,
+    sensorRight: 0,
+    sensorMiddle: 1,
+    sensorLeft: 0,
+  });
+  const deviceType = ref('windrect');
+  const deviceId = ref('');
+  const chartsColumnArr = getTableHeaderColumns('windrect_chart');
+  const chartsColumnList = ref(chartsColumnArr.length > 0 ? chartsColumnArr : chartsColumns);
+
+  // const dataSource = computed(() => {
+  //   const data = [...getRecordList()] || [];
+  //   Object.assign(selectData, toRaw(data[selectRowIndex.value]));
+  //   addMonitorText(selectData);
+  //   return data;
+  // });
+
+  const dataSource = ref([]);
+  const [regModal, { openModal }] = useModal();
+
+  const { getCamera, removeCamera } = useCamera();
+  const tabChange = (activeKeyVal) => {
+    activeKey.value = activeKeyVal;
+    if (activeKeyVal == 1) {
+      nextTick(() => {
+        MonitorDataTable.value.setSelectedRowKeys([selectData.deviceID]);
+      });
+    }
+  };
+
+  // 设备数据
+  const controlType = ref(1);
+  //表单赋值
+  const [registerModal, { setModalProps, closeModal }] = useModalInner();
+
+  // https获取监测数据
+  let timer: null | NodeJS.Timeout = null;
+  // function getMonitor(flag?) {
+  //   if (Object.prototype.toString.call(timer) === '[object Null]') {
+  //     timer = setTimeout(
+  //       () => {
+  //         list({ devicetype: deviceType.value, pagetype: 'normal' }).then((res) => {
+  //           if (res && res.msgTxt[0]) {
+  //             // dataSource.value = res.msgTxt[0].datalist || [];
+  //             const getData = res.msgTxt[0].datalist || [];
+  //             getData.forEach((data) => {
+  //               if (data.regulation) {
+  //                 getRegulationList(data.regulation);
+  //               }
+  //             });
+  //             dataSource.value = getData;
+  //             if (dataSource.value.length > 0) {
+  //               dataSource.value.forEach((data: any) => {
+  //                 const readData = data.readData;
+  //                 data = Object.assign(data, readData);
+  //               });
+  //               if (dataSource.value.length > 0 && selectRowIndex.value == -1) {
+  //                 // 初始打开页面
+  //                 if (currentRoute.value && currentRoute.value['query'] && currentRoute.value['query']['id']) {
+  //                   MonitorDataTable.value.setSelectedRowKeys([currentRoute.value['query']['id']]);
+  //                 } else {
+  //                   MonitorDataTable.value.setSelectedRowKeys([dataSource.value[0]['deviceID']]);
+  //                 }
+  //               }
+  //               const data: any = toRaw(dataSource.value[selectRowIndex.value]); //maxarea
+  //               Object.assign(selectData, data);
+  //               addMonitorText(selectData);
+
+  //               palyAnimation(selectData);
+  //             }
+  //           }
+  //           if (timer) {
+  //             timer = null;
+  //           }
+  //           getMonitor();
+  //         });
+  //       },
+  //       flag ? 0 : 1000
+  //     );
+  //   }
+  // }
+  // function getRegulationList(data) {
+  //   getRegulation().then((res) => {
+  //     if (res) {
+  //       const regulation = res.find((item) => item.id == data);
+  //       data.regulation = regulation;
+  //       data.fmin = data.regulation.fmin;
+  //       data.fmax = data.regulation.fmax;
+  //     }
+  //   });
+  // }
+  // 缓存
+  let allRegulations: any[] | null = null;
+
+  async function getMonitor(flag?: boolean) {
+    if (timer === null) {
+      timer = setTimeout(
+        async () => {
+          try {
+            // 1. 获取监控列表数据
+            const res = await list({
+              devicetype: deviceType.value,
+              pagetype: 'normal',
             });
-            // 对regulation字段进行替换
-            processedData.forEach((data) => {
-              if (data.regulation) {
-                const reg = regulationMap.get(data.regulation);
-                if (reg) {
-                  data.regulation = reg; // 替换为完整对象
-                  data.fmin = reg.fmin;
-                  data.fmax = reg.fmax;
+            if (res?.msgTxt[0]) {
+              const rawData = res.msgTxt[0].datalist || [];
+              const processedData = [...rawData];
+
+              // 首次请求获取去所有regulation数据
+              if (allRegulations === null) {
+                const regulationRes = await getRegulation({
+                  deviceKind: deviceType.value,
+                });
+                allRegulations = regulationRes || [];
+              }
+              // 根据id创建一个映射表
+              const regulationMap = new Map();
+              allRegulations.forEach((reg) => {
+                regulationMap.set(reg.id, reg);
+              });
+              // 对regulation字段进行替换
+              processedData.forEach((data) => {
+                if (data.regulation) {
+                  const reg = regulationMap.get(data.regulation);
+                  if (reg) {
+                    data.regulation = reg; // 替换为完整对象
+                    data.fmin = reg.fmin;
+                    data.fmax = reg.fmax;
+                  }
                 }
+              });
+              dataSource.value = processedData;
+              if (dataSource.value.length > 0) {
+                await processReadData(processedData);
+                await handleInitialSelection();
               }
-            });
-            dataSource.value = processedData;
-            if (dataSource.value.length > 0) {
-              await processReadData(processedData);
-              await handleInitialSelection();
             }
+          } catch (error) {
+            console.error('Error', error);
+          } finally {
+            timer = null;
+            getMonitor();
           }
-        } catch (error) {
-          console.error('Error', error);
-        } finally {
-          timer = null;
-          getMonitor();
-        }
-      },
-      flag ? 0 : 1000
-    );
+        },
+        flag ? 0 : 1000
+      );
+    }
   }
-}
-
-// async function getRegulationList(regulationId: string, data: any) {
-//   const res = await getRegulation();
-//   if (res) {
-//     const regulation = res.find((item) => item.id === regulationId);
-//     if (regulation) {
-//       data.regulation = regulation;
-//       data.fmin = regulation.fmin;
-//       data.fmax = regulation.fmax;
-//     }
-//   }
-// }
-
-async function processReadData(data: any[]) {
-  const promises = data
-    .filter((item) => item.readData)
-    .map(async (item) => {
-      item.readData && Object.assign(item, item.readData);
-    });
-  await Promise.all(promises);
-}
-
-async function handleInitialSelection() {
-  if (dataSource.value.length > 0) {
-    const selectedData = toRaw(dataSource.value[selectRowIndex.value]);
-    Object.assign(selectData, selectedData);
-    addMonitorText(selectData);
-    if (selectedData) palyAnimation(selectedData);
+
+  // async function getRegulationList(regulationId: string, data: any) {
+  //   const res = await getRegulation();
+  //   if (res) {
+  //     const regulation = res.find((item) => item.id === regulationId);
+  //     if (regulation) {
+  //       data.regulation = regulation;
+  //       data.fmin = regulation.fmin;
+  //       data.fmax = regulation.fmax;
+  //     }
+  //   }
+  // }
+
+  async function processReadData(data: any[]) {
+    const promises = data
+      .filter((item) => item.readData)
+      .map(async (item) => {
+        item.readData && Object.assign(item, item.readData);
+      });
+    await Promise.all(promises);
   }
-}
-let deviceRunState = '',
-  tanTouRunState = '';
-// 根据3个点位分别执行动画
-function palyAnimation(selectData) {
-  if (selectData.deviceType == 'windrect_normal') {
-    if (selectData['apparatusRun'] == 1) {
-      const flag = selectData.sign == '0' ? 'up' : selectData.sign == 1 ? 'center' : selectData.sign == 2 ? 'down' : null;
-      if (flag) play(flag);
-    } else {
-      const flag = selectData.sign == 1 ? 'center' : selectData.sign == 2 ? 'down' : null;
-      if (flag) play(flag, true);
+
+  async function handleInitialSelection() {
+    if (dataSource.value.length > 0) {
+      const selectedData = toRaw(dataSource.value[selectRowIndex.value]);
+      Object.assign(selectData, selectedData);
+      addMonitorText(selectData);
+      if (selectedData) palyAnimation(selectedData);
     }
   }
-  // 运行中是0,运行到达是1
-  if (selectData.deviceType == 'windrect_rect_single') {
-    if (selectData['apparatusRun'] == 1) {
-      // 镜头指向横杆
-      // if(!deviceRunState && !tanTouRunState)playCamera('start')
-      // 正在执行或是开始执行
-
-      //开始执行时,
-      // selectData['poleIncipient'] == 1 selectData.sensorMiddle == 1 代表可是执行 或是 执行结束
-
-      // 1. selectData['poleIncipient'] == 1 selectData.sensorMiddle == 1, 执行 play('up', true),play('middle', true)
-      // 2. 探头左移play('left')
-      // 3. 探头右移play('right')
-      // 4. 横杆向中位移动,探头在右边
-      // 5. 探头移到中间play('middle')
-      // 6. 探头移到左边play('left')
-      // 7. 横杆向低位移动,探头在左边
-      // 8. 探头移到中间play('middle')
-      // 9. 探头右移play('right')
-      // 10. 测风结束,探头移到中间play('middle'),横杆向高位移动
-      if (selectData['poleIncipient'] == 1) {
-        // 横杆在高位,开始执行 或是 执行结束
-        if (selectData.sensorMiddle == 1 && !deviceRunState && !tanTouRunState) {
-          // 1. 开始执行
-          deviceRunState = 'up';
-          tanTouRunState = 'middle';
-          play('up', true);
-          play('middle', true);
-        }
-        if (deviceRunState == 'up-m') {
-          play('up', true);
-          play('middle', true);
-          deviceRunState = '';
-          tanTouRunState = '';
-          playCamera('end');
-        }
-        // 初始已经在运行
+  let deviceRunState = '',
+    tanTouRunState = '';
+  // 根据3个点位分别执行动画
+  function palyAnimation(selectData) {
+    if (selectData.deviceType == 'windrect_normal') {
+      if (selectData['apparatusRun'] == 1) {
+        const flag = selectData.sign == '0' ? 'up' : selectData.sign == 1 ? 'center' : selectData.sign == 2 ? 'down' : null;
+        if (flag) play(flag);
+      } else {
+        const flag = selectData.sign == 1 ? 'center' : selectData.sign == 2 ? 'down' : null;
+        if (flag) play(flag, true);
+      }
+    }
+    // 运行中是0,运行到达是1
+    if (selectData.deviceType == 'windrect_rect_single') {
+      if (selectData['apparatusRun'] == 1) {
+        // 镜头指向横杆
+        // if(!deviceRunState && !tanTouRunState)playCamera('start')
+        // 正在执行或是开始执行
+
+        //开始执行时,
+        // selectData['poleIncipient'] == 1 selectData.sensorMiddle == 1 代表可是执行 或是 执行结束
+
+        // 1. selectData['poleIncipient'] == 1 selectData.sensorMiddle == 1, 执行 play('up', true),play('middle', true)
+        // 2. 探头左移play('left')
+        // 3. 探头右移play('right')
+        // 4. 横杆向中位移动,探头在右边
+        // 5. 探头移到中间play('middle')
+        // 6. 探头移到左边play('left')
+        // 7. 横杆向低位移动,探头在左边
+        // 8. 探头移到中间play('middle')
+        // 9. 探头右移play('right')
+        // 10. 测风结束,探头移到中间play('middle'),横杆向高位移动
+        if (selectData['poleIncipient'] == 1) {
+          // 横杆在高位,开始执行 或是 执行结束
+          if (selectData.sensorMiddle == 1 && !deviceRunState && !tanTouRunState) {
+            // 1. 开始执行
+            deviceRunState = 'up';
+            tanTouRunState = 'middle';
+            play('up', true);
+            play('middle', true);
+          }
+          if (deviceRunState == 'up-m') {
+            play('up', true);
+            play('middle', true);
+            deviceRunState = '';
+            tanTouRunState = '';
+            playCamera('end');
+          }
+          // 初始已经在运行
 
-        if (selectData.sensorLeft == '0' && selectData.sensorMiddle == '0' && selectData.sensorRight == '0') {
-          //2.探头左移play('left')
-          if (tanTouRunState == 'middle') {
-            tanTouRunState = 'left-m';
-            play('left');
+          if (selectData.sensorLeft == '0' && selectData.sensorMiddle == '0' && selectData.sensorRight == '0') {
+            //2.探头左移play('left')
+            if (tanTouRunState == 'middle') {
+              tanTouRunState = 'left-m';
+              play('left');
+            }
+            //3. 探头右移play('right')
+            if (tanTouRunState == 'left') {
+              tanTouRunState = 'right-m';
+              play('right');
+            }
           }
-          //3. 探头右移play('right')
-          if (tanTouRunState == 'left') {
-            tanTouRunState = 'right-m';
-            play('right');
+          if (selectData.sensorLeft == 1) {
+            tanTouRunState = 'left';
+            if (!tanTouRunState || tanTouRunState == 'left-m') {
+              play('left', true);
+            }
           }
-        }
-        if (selectData.sensorLeft == 1) {
-          tanTouRunState = 'left';
-          if (!tanTouRunState || tanTouRunState == 'left-m') {
-            play('left', true);
+          if (selectData.sensorRight == 1) {
+            tanTouRunState = 'right';
+            if (!tanTouRunState || tanTouRunState == 'right-m') {
+              play('right', true);
+            }
           }
-        }
-        if (selectData.sensorRight == 1) {
-          tanTouRunState = 'right';
-          if (!tanTouRunState || tanTouRunState == 'right-m') {
+        } else if (selectData['poleMiddle'] == 1) {
+          if (deviceRunState == 'center-m') {
+            play('center', true);
+            deviceRunState = 'center';
+            tanTouRunState = 'right';
+            play('right', true);
+          }
+          if (!deviceRunState) {
+            deviceRunState = 'center';
+            play('center', true);
+          }
+          if (!tanTouRunState) {
             play('right', true);
           }
-        }
-      } else if (selectData['poleMiddle'] == 1) {
-        if (deviceRunState == 'center-m') {
-          play('center', true);
-          deviceRunState = 'center';
-          tanTouRunState = 'right';
-          play('right', true);
-        }
-        if (!deviceRunState) {
-          deviceRunState = 'center';
-          play('center', true);
-        }
-        if (!tanTouRunState) {
-          play('right', true);
-        }
 
-        // 横杆在中位
-        if (selectData.sensorLeft == '0' && selectData.sensorMiddle == '0' && selectData.sensorRight == '0') {
-          //5. 探头移到中间play('middle')
-          if (tanTouRunState == 'right') {
-            tanTouRunState = 'middle-m';
-            play('middle');
+          // 横杆在中位
+          if (selectData.sensorLeft == '0' && selectData.sensorMiddle == '0' && selectData.sensorRight == '0') {
+            //5. 探头移到中间play('middle')
+            if (tanTouRunState == 'right') {
+              tanTouRunState = 'middle-m';
+              play('middle');
+            }
+            //6. 探头移到左边play('left')
+            if (tanTouRunState == 'middle') {
+              tanTouRunState = 'left-m';
+              play('left');
+            }
           }
-          //6. 探头移到左边play('left')
-          if (tanTouRunState == 'middle') {
-            tanTouRunState = 'left-m';
-            play('left');
+          if (selectData.sensorMiddle == 1) {
+            tanTouRunState = 'middle';
+            if (!tanTouRunState || tanTouRunState == 'middle-m') {
+              play('middle', true);
+            }
           }
-        }
-        if (selectData.sensorMiddle == 1) {
-          tanTouRunState = 'middle';
-          if (!tanTouRunState || tanTouRunState == 'middle-m') {
-            play('middle', true);
+          if (selectData.sensorLeft == 1) {
+            tanTouRunState = 'left';
+            if (!tanTouRunState || tanTouRunState == 'left-m') {
+              play('left', true);
+            }
           }
-        }
-        if (selectData.sensorLeft == 1) {
-          tanTouRunState = 'left';
-          if (!tanTouRunState || tanTouRunState == 'left-m') {
+        } else if (selectData['poleNether'] == 1) {
+          if (deviceRunState == 'down-m') {
+            play('down', true);
+            deviceRunState = 'down';
+            tanTouRunState = 'left';
             play('left', true);
           }
-        }
-      } else if (selectData['poleNether'] == 1) {
-        if (deviceRunState == 'down-m') {
-          play('down', true);
-          deviceRunState = 'down';
-          tanTouRunState = 'left';
-          play('left', true);
-        }
-        if (!deviceRunState) {
-          play('down', true);
-          deviceRunState = 'down';
-        }
-        if (!tanTouRunState) {
-          play('left', true);
-        }
-        // 横杆在低位
-        if (selectData.sensorLeft == '0' && selectData.sensorMiddle == '0' && selectData.sensorRight == '0') {
-          //8. 探头移到中间play('middle')
-          if (tanTouRunState == 'left') {
-            tanTouRunState = 'left-middle-m';
-            play('middle');
+          if (!deviceRunState) {
+            play('down', true);
+            deviceRunState = 'down';
           }
-          //9. 探头右移play('right')
-          if (tanTouRunState == 'middle1') {
-            tanTouRunState = 'right-m';
-            play('right');
+          if (!tanTouRunState) {
+            play('left', true);
           }
-          // 10. 测风结束,探头移到中间play('middle'),横杆向高位移动
-          if (tanTouRunState == 'right') {
-            tanTouRunState = 'right-middle-m';
-            play('middle');
+          // 横杆在低位
+          if (selectData.sensorLeft == '0' && selectData.sensorMiddle == '0' && selectData.sensorRight == '0') {
+            //8. 探头移到中间play('middle')
+            if (tanTouRunState == 'left') {
+              tanTouRunState = 'left-middle-m';
+              play('middle');
+            }
+            //9. 探头右移play('right')
+            if (tanTouRunState == 'middle1') {
+              tanTouRunState = 'right-m';
+              play('right');
+            }
+            // 10. 测风结束,探头移到中间play('middle'),横杆向高位移动
+            if (tanTouRunState == 'right') {
+              tanTouRunState = 'right-middle-m';
+              play('middle');
+            }
           }
-        }
 
-        if (selectData.sensorMiddle == 1) {
-          if (tanTouRunState == 'left-middle-m') tanTouRunState = 'middle1';
-          if (tanTouRunState == 'right-middle-m') tanTouRunState = 'middle2';
+          if (selectData.sensorMiddle == 1) {
+            if (tanTouRunState == 'left-middle-m') tanTouRunState = 'middle1';
+            if (tanTouRunState == 'right-middle-m') tanTouRunState = 'middle2';
 
-          if (!tanTouRunState || tanTouRunState == 'left-middle-m' || tanTouRunState == 'right-middle-m') {
-            play('middle', true);
+            if (!tanTouRunState || tanTouRunState == 'left-middle-m' || tanTouRunState == 'right-middle-m') {
+              play('middle', true);
+            }
           }
-        }
 
-        if (selectData.sensorRight == 1) {
-          tanTouRunState = 'right';
-          if (!tanTouRunState || tanTouRunState == 'right-m') {
-            play('right', true);
+          if (selectData.sensorRight == 1) {
+            tanTouRunState = 'right';
+            if (!tanTouRunState || tanTouRunState == 'right-m') {
+              play('right', true);
+            }
+          }
+        } else {
+          // 横杆正在运行
+          if (deviceRunState == 'up') {
+            deviceRunState = 'center-m';
+            play('center');
+          }
+          if (deviceRunState == 'center') {
+            deviceRunState = 'down-m';
+            play('down');
+          }
+          if (deviceRunState == 'down') {
+            deviceRunState = 'up-m';
+            play('up');
           }
         }
-      } else {
-        // 横杆正在运行
-        if (deviceRunState == 'up') {
-          deviceRunState = 'center-m';
-          play('center');
-        }
-        if (deviceRunState == 'center') {
-          deviceRunState = 'down-m';
-          play('down');
-        }
-        if (deviceRunState == 'down') {
-          deviceRunState = 'up-m';
-          play('up');
-        }
-      }
 
-      // //正在执行时
+        // //正在执行时
 
-      // // 判断上中下是否都为0
-      // if(selectData['poleIncipient'] == 0 && selectData['poleMiddle'] == 0 && selectData['poleNether'] == 0) {
-      //   // 判断是否有前一个状态值,有的话执行
-      //   //没有前一个状态
+        // // 判断上中下是否都为0
+        // if(selectData['poleIncipient'] == 0 && selectData['poleMiddle'] == 0 && selectData['poleNether'] == 0) {
+        //   // 判断是否有前一个状态值,有的话执行
+        //   //没有前一个状态
 
-      //   //有前一个状态
+        //   //有前一个状态
 
-      //   // 横杆前状态在上位时,横杆中位移动,探头在右边
+        //   // 横杆前状态在上位时,横杆中位移动,探头在右边
 
-      //   // 横杆前状态在中位时,横杆下位移动,探头在左边
+        //   // 横杆前状态在中位时,横杆下位移动,探头在左边
 
-      //   // 横杆前状态在下位时,横杆上位移动,探头在中间
+        //   // 横杆前状态在下位时,横杆上位移动,探头在中间
 
-      // }else{
-      //   // 判断当前动画停在固定位置
-      //   if(selectData['poleIncipient'] == 1) {
-      //     // 滑杆停在上面,探头在中间
+        // }else{
+        //   // 判断当前动画停在固定位置
+        //   if(selectData['poleIncipient'] == 1) {
+        //     // 滑杆停在上面,探头在中间
 
-      //   }else if (selectData['poleMiddle'] == 1) {
-      //     // 滑杆停在中间面,初始探头在右边
+        //   }else if (selectData['poleMiddle'] == 1) {
+        //     // 滑杆停在中间面,初始探头在右边
 
-      //   } else if (selectData['poleNether'] == 1) {
-      //     // 滑杆停在下面,初始探头在左边
+        //   } else if (selectData['poleNether'] == 1) {
+        //     // 滑杆停在下面,初始探头在左边
 
-      //   }
-      // }
-    } else {
-      // if(selectData['poleIncipient'] == 1){
-      //   deviceRunState = ''
-      //   tanTouRunState = ''
-      // }
+        //   }
+        // }
+      } else {
+        // if(selectData['poleIncipient'] == 1){
+        //   deviceRunState = ''
+        //   tanTouRunState = ''
+        // }
+      }
+    }
+
+    if (selectData.deviceType == 'windrect_rect') {
+      if (selectData['apparatusRun'] == 1) {
+        const flag = selectData.sign == '0' ? 'center' : selectData.sign == 1 ? 'down' : selectData.sign == 2 ? 'up' : null;
+        if (flag) play(flag);
+      } else {
+        const flag = selectData.sign == 1 ? 'center' : selectData.sign == 2 ? 'down' : selectData.sign == '0' ? 'up' : null;
+        if (flag) play(flag, true);
+      }
     }
-  }
 
-  if (selectData.deviceType == 'windrect_rect') {
-    if (selectData['apparatusRun'] == 1) {
-      const flag = selectData.sign == '0' ? 'center' : selectData.sign == 1 ? 'down' : selectData.sign == 2 ? 'up' : null;
-      if (flag) play(flag);
-    } else {
-      const flag = selectData.sign == 1 ? 'center' : selectData.sign == 2 ? 'down' : selectData.sign == '0' ? 'up' : null;
-      if (flag) play(flag, true);
+    if (selectData.deviceType == 'windrect_ds') {
+      if (selectData['apparatusRun'] == 1 && selectData['sign'] == 2) {
+        if (!deviceRunState) {
+          deviceRunState = 'start';
+          play('down');
+          modelRef.value?.animate?.('down');
+        }
+      } else if (selectData['apparatusRun'] == 0 && selectData['sign'] == 0 && deviceRunState == 'start') {
+        deviceRunState = '';
+        play('up');
+        modelRef.value?.animate?.('up');
+      }
     }
   }
 
-  if (selectData.deviceType == 'windrect_ds') {
-    if (selectData['apparatusRun'] == 1 && selectData['sign'] == 2) {
-      if (!deviceRunState) {
-        deviceRunState = 'start';
+  // 自测动画方法
+  function testPlay(flag) {
+    if (selectData.deviceType == 'windrect_rect') {
+      setTimeout(() => {
+        play('center');
+      }, 0);
+      setTimeout(() => {
         play('down');
-        modelRef.value?.animate?.('down');
+      }, 4000);
+      setTimeout(() => {
+        play('up');
+      }, 10000);
+    }
+    if (selectData.deviceType == 'windrect_normal') {
+      setTimeout(() => {
+        play('up');
+      }, 0);
+      setTimeout(() => {
+        play('center');
+      }, 10000);
+      setTimeout(() => {
+        play('down');
+      }, 18000);
+      setTimeout(() => {
+        play('up');
+      }, 21000);
+    }
+    if (selectData.deviceType == 'windrect_ds') {
+      play('moni');
+    }
+  }
+
+  function clearPlay() {
+    modalType.value = 'autoClear';
+    modalIsShow.value = true;
+    if (globalConfig?.simulatedPassword) {
+      controlDevice('', modalType.value);
+    }
+  }
+
+  function startRun() {
+    modalType.value = 'sing';
+    modalIsShow.value = true;
+    if (globalConfig?.simulatedPassword) {
+      controlDevice('', modalType.value);
+    }
+  }
+  // 切换检测数据
+  async function getSelectRow(selectRow, index) {
+    if (selectRow) {
+      loading.value = true;
+      selectRowIndex.value = index;
+      Object.assign(selectData, selectRow);
+      let type = '';
+      if (selectRow['modelType']) {
+        type = selectRow['modelType'];
+        // debugger;
+      } else {
+        if (selectRow.deviceType.startsWith('windrect_rect')) {
+          type = 'lmWindRect';
+        }
+        if (selectRow.deviceType.startsWith('windrect_normal')) {
+          type = 'zdWindRect';
+        }
+        if (selectRow.deviceType.startsWith('windrect_rect_single')) {
+          type = 'lmWindSide';
+        }
+        if (selectRow.deviceType.startsWith('windrect_ds')) {
+          type = 'dsWindRect_move';
+          // type = 'duisheFixed';
+        }
+        if (selectRow.deviceType.startsWith('windrect_ds_four')) {
+          //windrect_ds_two
+          type = 'dsWindRect_four';
+        }
+        if (selectRow.deviceType.startsWith('windrect_ds_two')) {
+          type = 'dsWindRect_two';
+        }
+        if (selectRow.deviceType.startsWith('windrect_ds_sut') || selectRow.deviceType.startsWith('windrect_muti')) {
+          type = 'duisheFixed';
+        }
+        if (
+          selectRow.deviceType.startsWith('windrect_dd') ||
+          selectRow.deviceType == 'windrect_safety' ||
+          selectRow.deviceType == 'windrect_sensor'
+        ) {
+          type = 'ddWindSide';
+        }
       }
-    } else if (selectData['apparatusRun'] == 0 && selectData['sign'] == 0 && deviceRunState == 'start') {
+
+      // const type = selectRowIndex.value >= 1 ? 'lmWindRect' : selectRowIndex.value <= 3 ? 'zdWindRect' : 'dsWindRect';
+      /**
+       * 模型对应的组件,根据实际情况分为二维三维
+       * 这里传入类型type而不是sysOrgCode进行判断展示哪个装置
+       * */
+      if (globalConfig.is2DModel) await setSVGModelType(type);
+      await setModelType(type);
+      loading.value = false;
       deviceRunState = '';
-      play('up');
-      modelRef.value?.animate?.('up');
+      tanTouRunState = '';
+      await getCamera(selectRow.deviceID, playerRef.value);
     }
   }
-}
-
-// 自测动画方法
-function testPlay(flag) {
-  if (selectData.deviceType == 'windrect_rect') {
-    setTimeout(() => {
-      play('center');
-    }, 0);
-    setTimeout(() => {
-      play('down');
-    }, 4000);
-    setTimeout(() => {
-      play('up');
-    }, 10000);
+  // 设置模型类型
+  function setSVGModelType(type) {
+    modelComponent.value = getModelComponent(globalConfig.is2DModel, type);
+    return nextTick();
   }
-  if (selectData.deviceType == 'windrect_normal') {
-    setTimeout(() => {
-      play('up');
-    }, 0);
-    setTimeout(() => {
-      play('center');
-    }, 10000);
-    setTimeout(() => {
-      play('down');
-    }, 18000);
-    setTimeout(() => {
-      play('up');
-    }, 21000);
+  /* 一键测风 */
+  function handleOk() {
+    modalType.value = 'multiple';
+    modalIsShow.value = true;
+    if (globalConfig?.simulatedPassword) {
+      controlDevice('', modalType.value);
+    }
   }
-  if (selectData.deviceType == 'windrect_ds') {
-    play('moni');
+
+  /* 打开一键测风弹窗 */
+  function openModel() {
+    setModalProps({ visible: true });
   }
-}
 
-function clearPlay() {
-  modalType.value = 'autoClear';
-  modalIsShow.value = true;
-  if (globalConfig?.simulatedPassword) {
-    controlDevice('', modalType.value);
+  function resetHandle() {
+    modalType.value = 'resetWind';
+    modalIsShow.value = true;
   }
-}
 
-function startRun() {
-  modalType.value = 'sing';
-  modalIsShow.value = true;
-  if (globalConfig?.simulatedPassword) {
-    controlDevice('', modalType.value);
+  function exportExcel(id) {
+    exportXls({ testid: id });
   }
-}
-// 切换检测数据
-async function getSelectRow(selectRow, index) {
-  if (selectRow) {
-    loading.value = true;
-    selectRowIndex.value = index;
-    Object.assign(selectData, selectRow);
-    let type = '';
-    if (selectRow['modelType']) {
-      type = selectRow['modelType'];
-      // debugger;
-    } else {
-      if (selectRow.deviceType.startsWith('windrect_rect')) {
-        type = 'lmWindRect';
-      }
-      if (selectRow.deviceType.startsWith('windrect_normal')) {
-        type = 'zdWindRect';
-      }
-      if (selectRow.deviceType.startsWith('windrect_rect_single')) {
-        type = 'lmWindSide';
-      }
-      if (selectRow.deviceType.startsWith('windrect_ds')) {
-        type = 'dsWindRect_move';
-        // type = 'duisheFixed';
-      }
-      if (selectRow.deviceType.startsWith('windrect_ds_four')) {
-        //windrect_ds_two
-        type = 'dsWindRect_four';
-      }
-      if (selectRow.deviceType.startsWith('windrect_ds_two')) {
-        type = 'dsWindRect_two';
-      }
-      if (selectRow.deviceType.startsWith('windrect_ds_sut') || selectRow.deviceType.startsWith('windrect_muti')) {
-        type = 'duisheFixed';
-      }
-      if (selectRow.deviceType.startsWith('windrect_dd') || selectRow.deviceType == 'windrect_safety' || selectRow.deviceType == 'windrect_sensor') {
-        type = 'ddWindSide';
-      }
-    }
 
-    // const type = selectRowIndex.value >= 1 ? 'lmWindRect' : selectRowIndex.value <= 3 ? 'zdWindRect' : 'dsWindRect';
-    /**
-     * 模型对应的组件,根据实际情况分为二维三维
-     * 这里传入类型type而不是sysOrgCode进行判断展示哪个装置
-     * */
-    if (globalConfig.is2DModel) await setSVGModelType(type);
-    await setModelType(type);
-    loading.value = false;
-    deviceRunState = '';
-    tanTouRunState = '';
-    await getCamera(selectRow.deviceID, playerRef.value);
+  /* 关闭一键测风弹窗 */
+  function handleCancel() {
+    setModalProps({ visible: false });
+    modalTable.value.clearSelectedRowKeys();
   }
-}
-// 设置模型类型
-function setSVGModelType(type) {
-  modelComponent.value = getModelComponent(globalConfig.is2DModel, type);
-  return nextTick();
-}
-/* 一键测风 */
-function handleOk() {
-  modalType.value = 'multiple';
-  modalIsShow.value = true;
-  if (globalConfig?.simulatedPassword) {
-    controlDevice('', modalType.value);
+
+  /* 关闭一键测风控制*/
+  function handleCancelControl() {
+    modalIsShow.value = false;
   }
-}
-
-/* 打开一键测风弹窗 */
-function openModel() {
-  setModalProps({ visible: true });
-}
-
-function resetHandle() {
-  modalType.value = 'resetWind';
-  modalIsShow.value = true;
-}
-
-function exportExcel(id) {
-  exportXls({ testid: id });
-}
-
-/* 关闭一键测风弹窗 */
-function handleCancel() {
-  setModalProps({ visible: false });
-  modalTable.value.clearSelectedRowKeys();
-}
-
-/* 关闭一键测风控制*/
-function handleCancelControl() {
-  modalIsShow.value = false;
-}
-
-function controlDevice(passWord, type) {
-  try {
-    if (type == 'sing') {
-      testWind({
-        ids: [selectData.deviceID],
-        maxnum: 1000,
-        windnum: 1,
-        password: passWord || globalConfig?.simulatedPassword,
-      }).then((res) => {
-        if (res && res.success === false) {
-          message.error(res.message);
-        } else {
-          if (globalConfig.History_Type == 'remote') {
-            message.success('指令已下发至生产管控平台成功!');
+
+  function controlDevice(passWord, type) {
+    try {
+      if (type == 'sing') {
+        testWind({
+          ids: [selectData.deviceID],
+          maxnum: 1000,
+          windnum: 1,
+          password: passWord || globalConfig?.simulatedPassword,
+        }).then((res) => {
+          if (res && res.success === false) {
+            message.error(res.message);
           } else {
-            message.success('指令已下发成功!');
+            if (globalConfig.History_Type == 'remote') {
+              message.success('指令已下发至生产管控平台成功!');
+            } else {
+              message.success('指令已下发成功!');
+            }
           }
-        }
-        modalIsShow.value = false;
-      });
-    } else if (type == 'multiple') {
-      const ids = toRaw(modalTable.value.selectedRowKeys);
-      testWind({
-        ids: ids,
-        maxnum: 1000,
-        windnum: modalTable.value.selectedRowKeys.length,
-        password: passWord || globalConfig?.simulatedPassword,
-      }).then((res) => {
-        if (res && res.success === false) {
-          message.error(res.message);
-        } else {
-          if (globalConfig.History_Type == 'remote') {
-            message.success('指令已下发至生产管控平台成功!');
+          modalIsShow.value = false;
+        });
+      } else if (type == 'multiple') {
+        const ids = toRaw(modalTable.value.selectedRowKeys);
+        testWind({
+          ids: ids,
+          maxnum: 1000,
+          windnum: modalTable.value.selectedRowKeys.length,
+          password: passWord || globalConfig?.simulatedPassword,
+        }).then((res) => {
+          if (res && res.success === false) {
+            message.error(res.message);
           } else {
-            message.success('指令已下发成功!');
+            if (globalConfig.History_Type == 'remote') {
+              message.success('指令已下发至生产管控平台成功!');
+            } else {
+              message.success('指令已下发成功!');
+            }
           }
-        }
-        modalIsShow.value = false;
-        setModalProps({ visible: false });
-        modalTable.value.clearSelectedRowKeys();
-      });
-    } else if (type == 'autoClear') {
-      const data = {
-        deviceid: selectData.deviceID,
-        devicetype: selectData.deviceType,
-        paramcode: 'autoClear',
-        value: null,
-        password: passWord || globalConfig?.simulatedPassword,
-        masterComputer: selectData.masterComputer,
-      };
-      deviceControlApi(data).then((res) => {
-        // 模拟时开启
-        if (res.success) {
-          if (globalConfig.History_Type == 'remote') {
-            message.success('指令已下发至生产管控平台成功!');
+          modalIsShow.value = false;
+          setModalProps({ visible: false });
+          modalTable.value.clearSelectedRowKeys();
+        });
+      } else if (type == 'autoClear') {
+        const data = {
+          deviceid: selectData.deviceID,
+          devicetype: selectData.deviceType,
+          paramcode: 'autoClear',
+          value: null,
+          password: passWord || globalConfig?.simulatedPassword,
+          masterComputer: selectData.masterComputer,
+        };
+        deviceControlApi(data).then((res) => {
+          // 模拟时开启
+          if (res.success) {
+            if (globalConfig.History_Type == 'remote') {
+              message.success('指令已下发至生产管控平台成功!');
+            } else {
+              message.success('指令已下发成功!');
+            }
           } else {
-            message.success('指令已下发成功!');
+            message.error(res.message);
           }
-        } else {
-          message.error(res.message);
-        }
+          modalIsShow.value = false;
+        });
+      } else if (type == 'resetWind') {
+        resetWind({}).then((res: any) => {
+          message.info(res);
+        });
         modalIsShow.value = false;
-      });
-    } else if (type == 'resetWind') {
-      resetWind({}).then((res: any) => {
-        message.info(res);
-      });
+      }
+    } catch (error) {
+      message.error('测风失败,请联系管理员。。。');
       modalIsShow.value = false;
     }
-  } catch (error) {
-    message.error('测风失败,请联系管理员。。。');
-    modalIsShow.value = false;
   }
-}
 
-/** 避灾路线上的测风装置 */
-async function getPathList() {
-  const pathArr = await pathList({});
-  criticalPathList.value = pathArr.records.filter((item) => {
-    return item.strsystype == 3;
-  });
-}
-
-/* 根据路线选择测风装置 */
-function selectCriticalPath(pathId) {
-  deviceList({ deviceType: 'wind', sysId: pathId }).then((res) => {
-    const ids: string[] = [];
-    res.records.forEach((item) => {
-      ids.push(item.id);
+  /** 避灾路线上的测风装置 */
+  async function getPathList() {
+    const pathArr = await pathList({});
+    criticalPathList.value = pathArr.records.filter((item) => {
+      return item.strsystype == 3;
     });
-    if (modalTable.value) modalTable.value.setSelectedRowKeys(ids);
-  });
-}
+  }
+
+  /* 根据路线选择测风装置 */
+  function selectCriticalPath(pathId) {
+    deviceList({ deviceType: 'wind', sysId: pathId }).then((res) => {
+      const ids: string[] = [];
+      res.records.forEach((item) => {
+        ids.push(item.id);
+      });
+      if (modalTable.value) modalTable.value.setSelectedRowKeys(ids);
+    });
+  }
+
+  function deviceEdit(e: Event, type: string, record) {
+    e.stopPropagation();
+    openModal(true, {
+      type,
+      deviceId: record['deviceID'],
+    });
+  }
 
-function deviceEdit(e: Event, type: string, record) {
-  e.stopPropagation();
-  openModal(true, {
-    type,
-    deviceId: record['deviceID'],
+  onBeforeMount(() => {
+    getPathList();
   });
-}
-
-onBeforeMount(() => {
-  getPathList();
-});
-
-onMounted(async () => {
-  // const playerDom = document.getElementById('cf-player1')?.getElementsByClassName('vjs-tech')[0];
-  // loading.value = true;
-  // mountedThree(playerDom).then(async () => {
-  //   getMonitor(true);
-  //   // loading.value = false;
-  // });
-  const { query } = unref(currentRoute);
-  if (query['deviceType']) deviceType.value = query['deviceType'] as string;
-  loading.value = true;
-  mountedThree(null).then(async () => {
-    await getMonitor(true);
-    loading.value = false;
+
+  onMounted(async () => {
+    // const playerDom = document.getElementById('cf-player1')?.getElementsByClassName('vjs-tech')[0];
+    // loading.value = true;
+    // mountedThree(playerDom).then(async () => {
+    //   getMonitor(true);
+    //   // loading.value = false;
+    // });
+    const { query } = unref(currentRoute);
+    if (query['deviceType']) deviceType.value = query['deviceType'] as string;
+    loading.value = true;
+    mountedThree(null).then(async () => {
+      await getMonitor(true);
+      loading.value = false;
+    });
   });
-});
 
-onUnmounted(() => {
-  removeCamera();
-  if (timer) {
-    clearTimeout(timer);
-    timer = undefined;
-  }
-  destroy();
-});
+  onUnmounted(() => {
+    removeCamera();
+    if (timer) {
+      clearTimeout(timer);
+      timer = undefined;
+    }
+    destroy();
+  });
 </script>
 <style scoped lang="less">
-@import '/@/design/theme.less';
-@import '/@/design/vent/modal.less';
-@ventSpace: zxm;
-
-:deep(.@{ventSpace}-tabs-tabpane-active) {
-  height: 100%;
-}
-.scene-box {
-  .bottom-tabs-box {
-    height: 350px;
+  @import '/@/design/theme.less';
+  @import '/@/design/vent/modal.less';
+  @ventSpace: zxm;
+
+  :deep(.@{ventSpace}-tabs-tabpane-active) {
+    height: 100%;
   }
-}
-.head-line {
-  display: flex;
-  flex-direction: row;
-  justify-content: space-between;
-  .button-box {
-    position: relative;
-    padding: 5px;
-    border: 1px transparent solid;
-    border-radius: 5px;
-    margin-left: 8px;
-    margin-right: 8px;
-    width: auto;
-    height: 34px;
-    border: 1px solid var(--vent-base-border);
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    color: var(--vent-font-color);
-    padding: 0 15px;
-    cursor: pointer;
-    pointer-events: auto;
-    &:hover {
-      background: var(--vent-device-manager-control-btn-hover);
+  .scene-box {
+    .bottom-tabs-box {
+      height: 350px;
     }
-    &::before {
-      width: calc(100% - 6px);
-      height: 26px;
-      content: '';
-      position: absolute;
-      top: 3px;
-      right: 0;
-      left: 3px;
-      bottom: 0;
-      z-index: -1;
-      border-radius: inherit; /*important*/
-      background: var(--vent-device-manager-control-btn);
+  }
+  .head-line {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+    .button-box {
+      position: relative;
+      padding: 5px;
+      border: 1px transparent solid;
+      border-radius: 5px;
+      margin-left: 8px;
+      margin-right: 8px;
+      width: auto;
+      height: 34px;
+      border: 1px solid var(--vent-base-border);
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      color: var(--vent-font-color);
+      padding: 0 15px;
+      cursor: pointer;
+      pointer-events: auto;
+      &:hover {
+        background: var(--vent-device-manager-control-btn-hover);
+      }
+      &::before {
+        width: calc(100% - 6px);
+        height: 26px;
+        content: '';
+        position: absolute;
+        top: 3px;
+        right: 0;
+        left: 3px;
+        bottom: 0;
+        z-index: -1;
+        border-radius: inherit; /*important*/
+        background: var(--vent-device-manager-control-btn);
+      }
     }
   }
-}
-:deep(.@{ventSpace}-picker-datetime-panel) {
-  height: 200px !important;
-  overflow-y: auto !important;
-}
+  :deep(.@{ventSpace}-picker-datetime-panel) {
+    height: 200px !important;
+    overflow-y: auto !important;
+  }
 </style>