Browse Source

更新模型

hongrunxia 1 year ago
parent
commit
ece39e64ee

BIN
public/model/glft/cf/ddcf_2023-12-09.glb


+ 1 - 0
src/design/vent/antCss.less

@@ -119,6 +119,7 @@
   z-index: 999 !important;
   padding: 4px 0 !important;
   &::-webkit-scrollbar {
+  
     display: none !important;
   }
 }

+ 0 - 3
src/layouts/default/sider/bottomSideder.vue

@@ -84,7 +84,6 @@
       const glob = useGlobSetting();
 
       function selectMenu(e:Event, programMenu) {
-        debugger
         e.stopPropagation()
         currentParentRoute.value = programMenu;
       }
@@ -100,7 +99,6 @@
           url.location = 'https://swkhmi.shendong.vip:9043/#SW_CA';//使这个窗口跳转到。
           return
         }
-        debugger
         // if (route.path.startsWith('/micro-')) {
         //   // if(path.path.startsWith('/micro-vent-3dModal') && route.path.startsWith('/micro-vent-3dModal')){
         //   //   debugger
@@ -140,7 +138,6 @@
           return
         }
         if(route.path.startsWith('/micro-vent-3dModal')){
-          debugger
           if (path.path.startsWith('/micro-vent-3dModal') && route.path.startsWith('/micro-vent-3dModal')) {
             unmountMicroApps(['/micro-vent-3dModal']);
             nextTick(() => {

+ 0 - 1
src/qiankun/index.ts

@@ -25,7 +25,6 @@ function filterApps() {
 const mountMicroApp = (path, toPath?) => {
   const microApps = filterApps()
   const app = microApps.find(item => path.startsWith(item['activeRule']))
-  debugger
   if (app) {
     const instance = activeApps[app['activeRule']]
     if (instance) {

+ 0 - 1
src/utils/env.ts

@@ -96,7 +96,6 @@ export function isProdMode(): boolean {
 }
 
 export function getHomePath(key): string {
-  debugger
   let homePath = '';
   switch (key) {
     case 'styleOne':

+ 0 - 2
src/views/sys/redirect/index.vue

@@ -14,10 +14,8 @@
   Reflect.deleteProperty(params, 'path');
 
   const _path = Array.isArray(path) ? path.join('/') : path;
-  debugger
   
   onMounted(() => {
-    debugger
     if(query && query['redirect']) router.push({path: query['redirect']})
     // if (_redirect_type === 'name') {
     //   // replace({

+ 0 - 9
src/views/vent/monitorManager/comment/AlarmHistoryTable.vue

@@ -136,16 +136,7 @@
             required: true,
             componentProps: {
               options: deviceOptions,
-              onChange: (e, option) => {
-                if (option && (option['strinstallpos'] || option['strtype'] || option['devicekind'])) historyType.value = option['strtype'] || option['devicekind']
-              },
             },
-            // componentProps: {
-            //   api: props.deviceListApi,
-            //   resultField: 'records',
-            //   labelField: 'strname',
-            //   valueField: 'id',
-            // },
           },
         ],
         fieldMapToTime: [['createTime', ['createTime_begin', 'createTime_end'], '']],

+ 0 - 1
src/views/vent/monitorManager/comment/DeviceEcharts.vue

@@ -251,7 +251,6 @@
             // 实时监测所有
             resultDataSource.value = props.dataSource;
           } else if (newChartsType === 'history') {
-            debugger
             // 历史
             resultXAxisPropType.value = 'gcreatetime';
             if (newChartsType !== oldChartsType || newDeviceId !== oldDeviceId) {

+ 39 - 5
src/views/vent/monitorManager/comment/GroupMonitorTable.vue

@@ -61,10 +61,12 @@
   const emits = defineEmits(['selectRow']);
   const dataTableSource = ref<any[]>([]);
   const loading = ref(true);
-  const tableScroll = props.scroll.y ? ref({ y: props.scroll.y }) : ref({})
+  const tableScroll = props.scroll.y ? ref({ y: props.scroll.y, x: 'max-content' }) : ref({})
+  let scrollY = 0
   const columns = ref<any[]>([])
   // 默认初始是第一行
   const selectRowIndex = ref(-1);
+  const headElHeight = ref(0)
 
   const rowClick = (record) => {
     return {
@@ -142,6 +144,18 @@
         }
       };
     }
+    columns.value.forEach(item => {
+      if(item.dataIndex === 'strinstallpos' || item.dataIndex === 'strname' || item.dataIndex.endsWith('_merge')){
+        item.customCell = (_, index) => {
+          if (index % 2 == 0) {
+            return { rowSpan: 2 };
+          } else {
+            return { rowSpan: 0 };
+          }
+        };
+      }
+    })
+    
     columns.value.splice(1, 0, runDevice);
     if (props.isShowSelect) {
       columns.value = [isCheckColumn, ...columns.value];
@@ -156,9 +170,16 @@
         width: 120,
         align: 'center',
         slots: { customRender: 'operation' },
+        customCell:(_, index) => {
+          if (index % 2 == 0) {
+            return { rowSpan: 2 };
+          } else {
+            return { rowSpan: 0 };
+          }
+        }
       }];
     }
-   
+    // columns.value = [...columns.value, ...columns.value]
     return columns;
   }
   
@@ -169,6 +190,13 @@
     (newVal, oldVal) => {
       if (!newVal) return
       setColumns(newVal)
+      nextTick(() => {
+        const headEl = document.querySelector(`.zxm-table-thead`);
+        if (headEl) {
+          headElHeight.value = headEl.clientHeight
+          tableScroll.value = { y: (scrollY || props.scroll.y) - (headElHeight.value - 56), x: 'max-content' }
+        }
+      })
     },
     {
       immediate: true
@@ -188,7 +216,9 @@
         columns.value.forEach((column) => {
           const columnKey = column.dataIndex;
           if(columnKey){
-            if (columnKey.startsWith('Fan')) {
+            if(columnKey.endsWith('_merge')) {
+              resultData1[columnKey] = data[columnKey];
+            }else if (columnKey.startsWith('Fan')) {
               const key1 = columnKey.replace('Fan', 'Fan1');
               const key2 = columnKey.replace('Fan', 'Fan2');
               resultData1[columnKey] = data[key1];
@@ -226,7 +256,8 @@
   
   watch(() => props.scroll.y, (newVal) => {
       if (newVal) {
-        tableScroll.value = { y: newVal }
+        scrollY = newVal
+        tableScroll.value = { y: newVal - (headElHeight.value - 56) , x: 'max-content' }
       } else {
         tableScroll.value = {}
       }
@@ -237,7 +268,6 @@
     // 如果是https
     // 反之是websocket
     
-    debugger
 
   });
 
@@ -253,8 +283,12 @@
 
   :deep(.@{ventSpace}-table-body) {
     height: auto !important;
+    &::-webkit-scrollbar{
+      height: 5px !important;
+    }
   }
   :deep(.jeecg-basic-table .@{ventSpace}-table-wrapper .@{ventSpace}-table-title) {
     min-height: 0;
   }
+ 
 </style>

+ 0 - 1
src/views/vent/monitorManager/comment/HistoryTable.vue

@@ -93,7 +93,6 @@ import { onMounted } from 'vue';
   );
 
   watch(historyType, (type) => {
-    debugger
     if (!type) return
     // if (historyTable.value) getForm().resetFields()
     const column = getTableHeaderColumns(type.includes('_history') ? type : type + '_history')

+ 0 - 2
src/views/vent/monitorManager/comment/components/DeviceBaseInfo.vue

@@ -134,7 +134,6 @@ const arrToFormColumns = (tableHeaderColumns = [], devicetype) => {
 
 // 注册 modal
 const [register, { closeModal, setModalProps }] = useModalInner(async (data) => {
-  debugger
   tabType.value = data.type
   const deviceId = data.deviceId
   if (FormRef.value) {
@@ -187,7 +186,6 @@ async function onSubmit() {
 }
 
 onMounted(async () => {
-  debugger
 });
 onUnmounted(() => {
 

+ 0 - 1
src/views/vent/monitorManager/compressor/nitrogen.dishang.threejs.ts

@@ -124,7 +124,6 @@ class NitrogenOverground {
   };
 
   addCssText = () => {
-    debugger;
     if (this.nitrogenNum > 0) {
       for (let i = 0; i < this.nitrogenNum; i++) {
         const nitrogenModal = this.group.getObjectByName('nitrogenModal' + i) as THREE.Object3D;

+ 1 - 0
src/views/vent/monitorManager/deviceMonitor/components/device/index.vue

@@ -368,6 +368,7 @@ const scroll = reactive({
 })
 const treeData = ref<TreeProps['treeData']>([]);
 
+
 //树形菜单选择事件
 const onSelect: TreeProps['onSelect'] = (keys, e) => {
   deviceType.value = ''

+ 0 - 1
src/views/vent/monitorManager/deviceMonitor/index.vue

@@ -44,7 +44,6 @@ watch(() => route.fullPath, (fullPath) => {
 })
 
 onMounted(() => {
-  debugger
   const { type, deviceType } = route.query
   mountMicroApp('/micro-vent-3dModal')
 

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

@@ -202,7 +202,7 @@
         </div> -->
         <a-tabs class="tabs-box" v-model:activeKey="activeKey" @change="tabChange">
           <a-tab-pane key="1" tab="实时监测">
-            <GroupMonitorTable  v-if="activeKey === '1'" ref="MonitorDataTable" :dataSource="dataSource" :columnsType="`${selectData.deviceType}_monitor`" @selectRow="getSelectRow" :scroll="{y: scroll.y - (headElHeight - 56) }" :is-action="true">
+            <GroupMonitorTable  v-if="activeKey === '1'" ref="MonitorDataTable" :dataSource="dataSource" :columnsType="`${selectData.deviceType}_monitor`" @selectRow="getSelectRow" :scroll="scroll" :is-action="true">
               <template #action="{ record }">
                 <a class="table-action-link" @click="deviceEdit($event, 'reportInfo', record)">报表录入</a>
                 <a class="table-action-link" @click="deviceEdit($event, 'deviceInfo', record)">设备编辑</a>
@@ -527,7 +527,7 @@
   const leftColumns = ref<BasicColumn[]>([])
   const devicekide = ref('fanlocal')
   const deviceType = ref(selectData.deviceType)
-  let headElHeight = ref(0)
+  const headElHeight = ref(0)
 
   watch(deviceType , (type) => {
     rightColumns.value = getTableHeaderColumns(type + '_monitor_right') as []
@@ -655,7 +655,6 @@
     modalType.value = selectIndex > 0 ? 'fm' : 'fc';
 
     nextTick(() => {
-      debugger
       const headEl = document.querySelector(`.zxm-table-thead`);
       if (headEl) {
         headElHeight.value = headEl.clientHeight

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

@@ -193,7 +193,6 @@ export const setModelType = (type) => {
 };
 
 export const initCameraCanvas = async (playerVal1) => {
-  debugger;
   if (fmType === 'fm1' && fm1) {
     return await fm1.initCamera.call(fm1, playerVal1);
   } else if (fmType === 'fm2' && fm2) {

+ 1031 - 0
src/views/vent/monitorManager/nitrogen/components/nitrogenHome1.vue

@@ -0,0 +1,1031 @@
+<template>
+    <div id="compressor3D" style="width: 100%; height: 100%; position: absolute; overflow: hidden"></div>
+    <div v-show="monitorDataGroupFlag == 1" id="compressorCss3D"  class="threejs-Object-CSS compressorCss3D-box"
+        style="width: 100%; height: 100%; position: absolute; pointer-events: none; overflow: hidden; z-index: 2; top: 0px; left: 0px">
+        <!-- <a-spin :spinning="loading" /> -->
+        <div  v-for="(groupNum, index) in monitorDataGroupNum1" :key="index" class="modal-monitor">
+          <fourBorderBg :class="`kyj${groupNum}`" :id="`nitrogenMonitor${groupNum}`">
+            <div class="title">{{ groupNum }}号空压机 </div>
+            <div class="monitor-item">
+              <span class="monitor-title">机头温度:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_HeadTemp`] ?
+                monitorData[`PRE${groupNum}_CPR_HeadTemp`] : '-' }}</span><span class="unit"></span>℃</span>
+            </div>
+            <div class="monitor-item">
+              <span class="monitor-title">冷却温度:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_CoolantTemp`] ?
+                monitorData[`PRE${groupNum}_CPR_CoolantTemp`] : '-' }}</span><span class="unit">℃</span></span>
+            </div>
+            <div class="monitor-item">
+              <span class="monitor-title">排气温度:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_ExhaustTemp`] ? monitorData[`PRE${groupNum}_CPR_ExhaustTemp`] : '-' }}</span><span class="unit">℃</span></span>
+            </div>
+            <div class="signal-item">
+              <div class="signal"><span class="monitor-title">运行信号</span><span
+                  :class="{ 'signal-round': true, 'signal-round-run': monitorData[`PRE${groupNum}_MOT_Running`] == '1', 'signal-round-gry': monitorData[`PRE${groupNum}_MOT_Running`] != '1' }"></span>
+              </div>
+              <div class="signal"><span class="monitor-title">故障信号</span><span
+                  :class="{ 'signal-round': true, 'signal-round-warning': monitorData[`PRE${groupNum}_MOT_Fault`] == '1', 'signal-round-gry': monitorData[`PRE${groupNum}_MOT_Fault`] != '1' }"></span>
+              </div>
+            </div>
+          </fourBorderBg>
+          <fourBorderBg :class="`cqg${groupNum}`" :id="`cqgMonitor${groupNum}`">
+            <div class="title">{{ groupNum }}号储气罐 </div>
+            <div class="monitor-item">
+              <span class="monitor-title">气囊温度:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_VLS_Temp`] ?
+                monitorData[`PRE${groupNum}_VLS_Temp`] : '-' }}</span><span class="unit">℃</span></span>
+            </div>
+            <!-- <div class="monitor-item">
+              <span class="monitor-title">气囊压力<span class="unit"></span>:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[groupNum - 1] && monitorData[groupNum - 1]['airReceiverPress'] ?
+                monitorData[groupNum - 1]['airReceiverPress'] : '-' }}</span><span class="unit">Mpa</span></span>
+            </div>
+            <div class="monitor-item">
+              <span class="monitor-title">气囊流量<span class="unit"></span>:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[groupNum - 1] && monitorData[groupNum - 1]['airReceiverFlow'] ?
+                monitorData[groupNum - 1]['airReceiverFlow'] : '-' }}</span><span class="unit">m³/k</span></span>
+            </div> -->
+          </fourBorderBg>
+        </div>
+    </div>
+    <div v-show="monitorDataGroupFlag == 2" id="compressorCss3D1" class="threejs-Object-CSS compressorCss3D-box"
+        style="width: 100%; height: 100%; position: absolute; pointer-events: none; overflow: hidden; z-index: 3; top: 0px; left: 0px">
+        <div  v-for="(groupNum, index) in monitorDataGroupNum2" :key="index" class="modal-monitor">
+            <fourBorderBg :class="`kyj${groupNum}`" :id="`nitrogenMonitor${groupNum}`">
+              <div class="title">{{ groupNum }}号空压机 </div>
+              <div class="monitor-item">
+                <span class="monitor-title">机头温度:</span>
+                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_HeadTemp`] ?
+                  monitorData[`PRE${groupNum}_CPR_HeadTemp`] : '-' }}</span><span class="unit"></span>℃</span>
+              </div>
+              <div class="monitor-item">
+                <span class="monitor-title">冷却温度:</span>
+                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_CoolantTemp`] ?
+                  monitorData[`PRE${groupNum}_CPR_CoolantTemp`] : '-' }}</span><span class="unit">℃</span></span>
+              </div>
+              <div class="monitor-item">
+                <span class="monitor-title">排气温度:</span>
+                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_ExhaustTemp`] ? monitorData[`PRE${groupNum}_CPR_ExhaustTemp`] : '-' }}</span><span class="unit">℃</span></span>
+              </div>
+              <div class="signal-item">
+                <div class="signal"><span class="monitor-title">运行信号</span><span
+                    :class="{ 'signal-round': true, 'signal-round-run': monitorData[`PRE${groupNum}_MOT_Running`] == '1', 'signal-round-gry': monitorData[`PRE${groupNum}_MOT_Running`] != '1' }"></span>
+                </div>
+                <div class="signal"><span class="monitor-title">故障信号</span><span
+                    :class="{ 'signal-round': true, 'signal-round-warning': monitorData[`PRE${groupNum}_MOT_Fault`] == '1', 'signal-round-gry': monitorData[`PRE${groupNum}_MOT_Fault`] != '1' }"></span>
+                </div>
+              </div>
+            </fourBorderBg>
+            <fourBorderBg :class="`cqg${groupNum}`" :id="`cqgMonitor${groupNum}`">
+              <div class="title">{{ groupNum }}号储气罐 </div>
+              <div class="monitor-item">
+                <span class="monitor-title">气囊温度:</span>
+                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_VLS_Temp`] ?
+                  monitorData[`PRE${groupNum}_VLS_Temp`] : '-' }}</span><span class="unit">℃</span></span>
+              </div>
+              <!-- <div class="monitor-item">
+              <span class="monitor-title">气囊压力<span class="unit"></span>:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[groupNum - 1] && monitorData[groupNum - 1]['airReceiverPress'] ?
+                monitorData[groupNum - 1]['airReceiverPress'] : '-' }}</span><span class="unit">Mpa</span></span>
+            </div>
+            <div class="monitor-item">
+              <span class="monitor-title">气囊流量<span class="unit"></span>:</span>
+              <span class="monitor-val"><span class="val">{{ monitorData[groupNum - 1] && monitorData[groupNum - 1]['airReceiverFlow'] ?
+                monitorData[groupNum - 1]['airReceiverFlow'] : '-' }}</span><span class="unit">m³/k</span></span>
+            </div> -->
+            </fourBorderBg>
+          </div>
+    </div>
+    <div class="nitrogen-home">
+      <div style="position: absolute; color: #fff; top: 30px; pointer-events: auto; display: flex;">
+        <span class="tab-button-box" :class="{'tab-button-box-active': monitorDataGroupFlag == 1}" @click="setMonitorGroupNum(monitorDataGroupNum1, 1)">压风系统1</span>
+        <span class="tab-button-box" :class="{ 'tab-button-box-active': monitorDataGroupFlag == 2 }" @click="setMonitorGroupNum(monitorDataGroupNum2, 2)">压风系统2</span>
+      </div>
+      <div class="total-data">
+        <div class="item">总流量(m³/min):<span class="val">{{ monitorData[`PreSys_TotalOutPipeFlow${monitorDataGroupFlag}`] ? monitorData[`PreSys_TotalOutPipeFlow${monitorDataGroupFlag}`] : '-' }}</span></div>
+        <div class="item">总压力(bar):<span class="val">{{ monitorData[`PreSys_TotalOutPipePre${monitorDataGroupFlag}`] ? monitorData[`PreSys_TotalOutPipePre${monitorDataGroupFlag}`] : '-' }}</span></div>
+      </div>
+      <div class="nitrogen-container">
+        <div v-if="monitorData['netStatus'] == 0" class="device-state">网络断开</div>
+        <div class="top-box">
+          <!-- 左边监测数据 -->
+          <div class="lr-box left-box">
+            <div class="left-container">
+              <div class="item item-l" v-for="(groupNum, index) in monitorDataGroupNum" :key="index">
+                <div class="monitor-box">
+                  <ventBox1>
+                    <template #title>
+                      <div>{{ groupNum }}号空压机组</div>
+                    </template>
+                    <template #container>
+                      <div class="state-item" v-for="(data, index) in showMonitorData" :key="index">
+                        <div class="item-col">
+                          <span class="state-title">{{ Object.values(data)[0] }} :</span>
+                          <span class="state-val">{{ (monitorData[Object.keys(data)[0].replace('PRE', 'PRE'+ groupNum)])
+                            >= 0 ? Number(monitorData[Object.keys(data)[0].replace('PRE', 'PRE' + groupNum)]) : '-' }}</span>
+                        </div>
+                        <div class="item-col">
+                          <span class="state-title">{{ Object.values(data)[1] }} :</span>
+                          <span class="state-val">{{ (monitorData[Object.keys(data)[0].replace('PRE', 'PRE' + groupNum)])
+                            >= 0 ? Number(monitorData[Object.keys(data)[0].replace('PRE', 'PRE' + groupNum)]) : '-' }}</span>
+                        </div>
+                      </div>
+                    </template>
+                  </ventBox1>                
+                </div>
+              </div>
+            </div>
+          </div>
+          <!-- 右边控制状态 -->
+          <div class="lr-box right-box" style="display: none;">
+            <ventBox1>
+              <template #title>
+                <div>远程控制</div>
+              </template>
+              <template #container>
+                <div class="control-group">
+                  <div class="control-item" v-for="groupNum in monitorDataGroupNum" :key="groupNum">
+                    <div class="control-item-title">{{ kyjs[groupNum - 1] }}</div>
+                    <div class="control-item-state">
+                      <a-switch v-model="airCompressorState[groupNum - 1][`compressRunSigF1`]" size="small"  checked-children="开启"
+                        un-checked-children="关闭" :disabled="airCompressorState[groupNum - 1][`controlModel`]"
+                        @change="handlerDevice(airCompressorState[groupNum - 1])">
+                      </a-switch>
+                    </div>
+                  </div>
+                  <div class="control-item" v-for="groupNum in monitorDataGroupNum" :key="groupNum">
+                    <div class="control-item-title">{{ cqgs[groupNum - 1] }}</div>
+                    <div class="control-item-state">
+                      <a-switch v-model="airCompressorState[groupNum - 1][`compressRunSigF1`]" size="small"  checked-children="开启"
+                        un-checked-children="关闭" :disabled="airCompressorState[groupNum - 1][`controlModel`]"
+                        @change="handlerDevice(airCompressorState[groupNum - 1])">
+                      </a-switch>
+                    </div>
+                  </div>
+                  
+                  <a-divider style="height: 1px; background-color: #d7d7d755" />
+                  <div class="control-btn-group vent-margin-b-20">
+                    <div class="control-left-box">
+                      <div class="btn-box">
+                        <span @click="handlerDevice({ remote: true })">远程</span>
+                        <span @click="handlerDevice({ remote: false })">就地</span>
+                      </div>
+                      <div class="icon-box" :class="{ 'remote-icon-box': true }">
+                        <div class="icon"></div>
+                      </div>
+                    </div>
+                    <div class="control-right-box">
+                      <div class="control-item-title">是否开启联动</div>
+                      <div class="item-data-box" >
+                        <div :class="{ 'state-icon': true, 'open': monitorData[0] && monitorData[0].linkState, 'close': monitorData[0] && !monitorData[0].linkState }">
+                        </div>
+                        <div >{{ monitorData[0] && !monitorData[0].linkState ? '不联动' : '联动' }}</div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </template>
+            </ventBox1>
+            
+            <!-- <div class="control-item">
+              <div class="control-item-l">
+                <span class="round"></span>
+                <span>控制模式</span>
+              </div>
+              <div>
+                <a-switch v-model="airCompressorState[0][`controlModel`]" checked-children="就地" un-checked-children="远程"
+                  @change="handlerControlModel(airCompressorState[0])">
+                </a-switch>
+              </div>
+            </div> -->
+          </div>
+        </div>
+      </div>
+    </div>
+</template>
+<script lang="ts" setup name="nitrogenHome">
+import { onMounted, onUnmounted, ref, watch } from 'vue'
+import fourBorderBg from '../../../comment/components/fourBorderBg.vue'
+import { mountedThree, destroy, setModelType, clearCssText } from '../nitrogen.threejs'
+import { list } from '../nitrogen.api'
+import ventBox1 from '/@/components/vent/ventBox1.vue'
+import { monitorDataGroupNum1, monitorDataGroupNum2, airCompressorState, showMonitorData, monitorData } from '../nitrogen.data'
+
+const loading = ref(true)
+const monitorDataGroupNum = ref(monitorDataGroupNum1)
+const monitorDataGroupFlag = ref(1)
+const kyjs = ['1号空压机', '2号空压机', '3号空压机', '4号空压机'];
+const cqgs = ['1号储气罐', '2号储气罐', '3号储气罐', '4号储气罐'];
+
+// https获取监测数据
+let timer: null | NodeJS.Timeout = null;
+async function getMonitor(flag?) {
+  if (Object.prototype.toString.call(timer) === '[object Null]') {
+    timer = await setTimeout(async () => {
+      await getDataSource();
+      if (timer) {
+        timer = null;
+      }
+      await getMonitor();
+    }, flag ? 0 : 1000);
+  }
+};
+
+async function getDataSource() {
+  const res = await list({ devicetype: 'forcFan', pagetype: 'normal' });
+  let dataSource = res.msgTxt[0].datalist[0];
+  // dataSource =  
+  //   {
+  //     "msgType": null,
+  //     "deviceID": "1705212847586627592",
+  //     "strname": "压风机系统",
+  //     "strinstallpos": "压风机系统",
+  //     "fsectarea": "null",
+  //     "stationname": "压风机系统分站",
+  //     "deviceType": "forcFan",
+  //     "typeName": null,
+  //     "netStatus": 1,
+  //     "warnFlag": 0,
+  //     "warnLevel": null,
+  //     "warnLevel_str": null,
+  //     "warnTime": null,
+  //     "readTime": "2023-10-24 08:47:27",
+  //     "warnDes": "",
+  //     "frontGateOpenCtrl": null,
+  //     "rearGateOpenCtrl": null,
+  //     "readData": {
+  //       "PRE1_MOT_PhaseATemp": "526",
+  //       "PRE3_CPR_CoolantTemp": "12",
+  //       "PRE4_CPR_HeadTemp": "13",
+  //       "PRE2_MOT_PhaseATempAlarm": "0",
+  //       "PRE5_MOT_Fault": "0",
+  //       "PRE4_MOT_PhaseATempStop": "0",
+  //       "PRE4_CPR_LoadPre": "65",
+  //       "PRE5_CPR_LoadPre": "62",
+  //       "PRE4_MOT_CtrlMode": "1",
+  //       "PRE2_CPR_LoadorUnload": "1",
+  //       "PRE3_MOT_PhaseBTemp": "133",
+  //       "PRE1_CPR_ExhaustPre": "66",
+  //       "PRE1_MOT_PhaseATempAlarm": "0",
+  //       "PRE5_CPR_UnLoadPre": "69",
+  //       "PRE4_MOT_PhaseATemp": "129",
+  //       "PRE5_MOT_PhaseCTemp": "685",
+  //       "PRE5_MOT_PhaseATemp": "681",
+  //       "PRE5_VLS_Temp": "590",
+  //       "PRE1_CPR_LoadTime": "8344",
+  //       "PRE2_CPR_LoadTime": "5553",
+  //       "PRE4_CPR_LoadorUnload": "0",
+  //       "PRE5_MOT_PhaseATempAlarm": "0",
+  //       "PRE3_CPR_LoadTime": "4511",
+  //       "PRE5_CPR_LoadTime": "6032",
+  //       "PRE1_MOT_PhaseATempStop": "0",
+  //       "PRE2_MOT_CompProtFault": "0",
+  //       "PRE5_MOT_PhaseATempStop": "0",
+  //       "PRE3_MOT_PhaseATempStop": "0",
+  //       "PRE1_VLS_Temp": "436",
+  //       "PRE2_CPR_ExhaustPre": "71",
+  //       "PRE5_MOT_CtrlMode": "1",
+  //       "PRE3_CPR_ExhaustTemp": "10",
+  //       "PRE3_MOT_TotalRunTime": "5342",
+  //       "P RE2_MOT_PhaseATemp": "541",
+  //       "PRE4_MOT_PhaseCTemp": "130",
+  //       "PRE4_MOT_PhaseATempAlarm": "0",
+  //       "timestamp": "1698108447720",
+  //       "PRE3_VLS_Temp": "219",
+  //       "PRE1_HostorLoc": "0",
+  //       "PRE2_MOT_Running": "1",
+  //       "PRE1_CPR_LoadPre": "65",
+  //       "PRE1_MOT_Running": "1",
+  //       "PRE4_MOT_Fault": "0",
+  //       "PRE2_CPR_LoadPre": "65",
+  //       "PRE3_MOT_Running": "0",
+  //       "PRE4_MOT_Running": "0",
+  //       "PRE3_CPR_LoadPre": "65",
+  //       "PRE1_MOT_CtrlMode": "1",
+  //       "PRE3_MOT_CtrlMode": "1",
+  //       "PRE3_CPR_LoadorUnload": "0",
+  //       "PRE2_MOT_PhaseCTemp": "550",
+  //       "PRE1_CPR_CoolantTemp": "71",
+  //       "PRE1_MOT_PhaseBTemp": "539",
+  //       "PRE3_MOT_PhaseATempAlarm": "0",
+  //       "PRE5_MOT_Running": "1",
+  //       "PRE1_MOT_Fault": "0",
+  //       "PRE4_CPR_ExhaustPre": "66",
+  //       "PRE4_CPR_CoolantTemp": "12",
+  //       "PRE5_CPR_ExhaustTemp": "76",
+  //       "PRE2_CPR_HeadTemp": "89",
+  //       "PRE3_MOT_PhaseCTemp": "135",
+  //       "PRE4_CPR_LoadTime": "5084",
+  //       "sign": "0",
+  //       "PRE1_CPR_UnLoadPre": "72",
+  //       "PRE4_HostorLoc": "0",
+  //       "PRE4_MOT_CompProtFault": "0",
+  //       "PRE1_CPR_LoadorUnload": "1",
+  //       "PRE3_CPR_ExhaustPre": "68",
+  //       "PRE2_CPR_ExhaustTemp": "77",
+  //       "PRE2_MOT_PhaseATempStop": "0",
+  //       "PRE5_MOT_CompProtFault": "0",
+  //       "PRE2_MOT_Fault": "0",
+  //       "PRE5_MOT_PhaseBTemp": "676",
+  //       "PRE3_MOT_PhaseATemp": "134",
+  //       "PRE4_MOT_PhaseBTemp": "130",
+  //       "PRE2_CPR_CoolantTemp": "66",
+  //       "PRE3_HostorLoc": "0",
+  //       "PRE4_MOT_TotalRunTime": "5104",
+  //       "PRE1_MOT_TotalRunTime": "8416",
+  //       "PRE3_MOT_CompProtFault": "0",
+  //       "PRE3_MOT_Fault": "0",
+  //       "PRE4_CPR_UnLoadPre": "72",
+  //       "PRE1_CPR_HeadTemp": "97",
+  //       "PRE2_HostorLoc": "0",
+  //       "PRE2_MOT_PhaseBTemp": "562",
+  //       "PRE3_CPR_HeadTemp": "13",
+  //       "PRE2_MOT_TotalRunTime": "5586",
+  //       "PRE5_CPR_HeadTemp": "95",
+  //       "PRE3_CPR_UnLoadPre": "72",
+  //       "PRE4_VLS_Temp": "166",
+  //       "PRE5_CPR_CoolantTemp": "70",
+  //       "PRE1_MOT_CompProtFault": "0",
+  //       "PRE5_MOT_TotalRunTime": "7825",
+  //       "PRE2_MOT_CtrlMode": "1",
+  //       "PRE5_CPR_ExhaustPre": "68",
+  //       "PRE1_MOT_PhaseCTemp": "544",
+  //       "PRE5_CPR_LoadorUnload": "1",
+  //       "PRE2_CPR_UnLoadPre": "72",
+  //       "PRE4_CPR_ExhaustTemp": "11",
+  //       "PRE2_VLS_Temp": "445",
+  //       "isRun": "-2",
+  //       "PRE5_HostorLoc": "0",
+  //       "PRE1_CPR_ExhaustTemp": "68"
+  //     },
+  //     "readDataDes": null,
+  //     "summaryHour": [],
+  //     "summaryDay": [],
+  //     "history": [],
+  //     "totalInfo": null,
+  //     "sign": null,
+  //     "cameras": [],
+  //     "links": [],
+  //     "other1": null,
+  //     "other2": null,
+  //     "other3": null
+  //   }
+  if(dataSource){
+    monitorData.value = Object.assign(dataSource, dataSource.readData);
+  }
+  // dataSource.forEach((data, index) => {
+  //   const item = data.readData;
+  //   Object.assign(item, data);
+  //   item.compressRunSigF1 = item.compressRunSigF1 ? true : false
+  //   airCompressorState.value[index].id = item.id
+  //   airCompressorState.value[index].compressRunSigF1 = item.compressRunSigF1
+  //   airCompressorState.value[index].controlModel = item.controlModel === 'LOC' ? true : false
+  //   monitorData.value[index] = item
+  // });
+  // monitorDataGroupNum.value = monitorData.value.length
+  loading.value = false
+};
+
+function setMonitorGroupNum(num, flag){
+  
+  monitorDataGroupNum.value = num
+  monitorDataGroupFlag.value = flag
+}
+
+function handlerDevice(data) {
+  // if (data.length < 1) return
+  // handleAirCompressor({ id: data.id, compressRunF1: data.compressRunSigF1 }).then(res => {
+  //   if (res.success) {
+  //     message.success('操作成功')
+  //   } else {
+  //     message.warning(data.msg)
+  //   }
+  // })
+};
+function resetDevice(data) {
+
+}
+
+function handlerControlModel(data) {
+
+}
+
+watch(monitorDataGroupFlag, (newVal) => {
+
+  if(newVal == 1){
+    setModelType('compressor1')
+  }
+  if (newVal == 2) {
+    setModelType('compressor2')
+  }
+})
+
+onMounted(async () => {
+  mountedThree(monitorDataGroupNum1, monitorDataGroupNum2).then(async() => {
+    await getMonitor(true)
+    setModelType('compressor1')
+  })
+})
+
+onUnmounted(() => {
+  destroy();
+  if (timer) {
+    clearTimeout(timer);
+    timer = undefined;
+  }
+});
+
+</script>
+
+<style lang="less" scoped>
+@ventSpace: zxm;
+
+.nitrogen-home {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  position: relative;
+  .total-data{
+    position: absolute;
+    color: #e4cd00;
+    z-index: 9;
+    top: 50px;
+    right: 30px;
+    display: flex;
+    font-size: 18px;
+    .item{
+      margin-left: 30px;
+      .val{
+        color: #00d8ff;
+      }
+    }
+  }
+
+}
+
+.compressorCss3D-box {
+  .modal-monitor {
+    position: absolute;
+    left: 0px;
+    top: 0px;
+  }
+
+  &:deep(.win) {
+    margin: 0 !important;
+    background: #00000044;
+  }
+
+  &:deep(.main) {
+    .title {
+      height: 34px;
+      text-align: center;
+      font-weight: 600;
+      color: #7AF5FF;
+      // background-image: url('../../../assets/img/yfj/light.png');
+      background-repeat: no-repeat;
+      background-position-x: center;
+      background-position-y: 100%;
+      background-size: 80%;
+      font-size: 16px;
+    }
+
+    .monitor-item {
+      display: flex;
+      flex-direction: row;
+      width: auto;
+      margin-bottom: 3px;
+      .monitor-val {
+        color: #ffb700;
+        display: flex;
+        width: auto;
+
+        .val {
+          width: 80px;
+          font-size: 14px;
+        }
+
+        .unit {
+          color: #ffffffbb;
+          font-size: 14px;
+
+        }
+      }
+    }
+
+    .monitor-title {
+      width: 100px;
+      color: #7AF5FF;
+      font-weight: 400;
+      font-size: 14px;
+    }
+
+    .signal-item {
+      display: flex;
+      justify-content: space-between;
+
+      // margin-bottom: 5px;
+      .signal-round {
+        display: inline-block;
+        width: 8px;
+        height: 8px;
+        border-radius: 50%;
+        margin: 0 10px;
+        position: relative;
+
+        &::after {
+          display: block;
+          content: '';
+          position: absolute;
+          width: 12px;
+          height: 12px;
+          top: -2px;
+          left: -2px;
+          border-radius: 50%;
+        }
+      }
+
+      .signal-round-gry {
+        background-color: #858585;
+
+        &::after {
+          background-color: #85858544;
+          box-shadow: 0 0 1px 1px #85858599;
+        }
+      }
+
+      .signal-round-run {
+        background-color: #67FC00;
+
+        &::after {
+          background-color: #67FC0044;
+          box-shadow: 0 0 1px 1px #c6ff77;
+        }
+      }
+
+      .signal-round-warning {
+        background-color: #E9170B;
+
+        &::after {
+          background-color: #E9170B44;
+          box-shadow: 0 0 1px 1px #E9170B;
+        }
+      }
+    }
+  }
+}
+
+.nitrogen-home {
+  width: 100%;
+  height: calc(100% - 100px);
+  position: fixed;
+  z-index: 99;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  pointer-events: none;
+  top: 60px;
+  .nitrogen-container {
+    width: 100%;
+    height: calc(100%);
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 100px;
+    position: relative;
+    .device-state{
+      width: 100%;
+      position: absolute;
+      top: 70px;
+      color: #e90000;
+      display: flex;
+      justify-content: center;
+      font-size: 20px;
+    }
+    .top-box {
+      width: 100%;
+      padding: 10px;
+      overflow: hidden;
+      display: flex;
+      justify-content: space-between;
+
+      .lr-box {
+        display: flex;
+        flex-direction: column;
+        position: relative;
+        z-index: 9999;
+        pointer-events: auto;
+      }
+
+      .item {
+        width: 285px;
+        height: auto;
+        position: relative;
+        border-radius: 5px;
+        margin-top: 10px;
+        margin-bottom: 0px;
+        pointer-events: auto;
+        color: #fff;
+        overflow: hidden;
+
+        .control-item {
+          height: auto;
+          min-height: 35px;
+          display: flex;
+          flex-direction: row;
+          justify-content: space-between;
+          align-items: center;
+          padding: 5px;
+          margin: 0 10px 0 3px;
+          pointer-events: auto;
+          background: linear-gradient(to right, #0063CD22, #0063CD04);
+
+          margin-bottom: 5px;
+          border-width: 1px;
+          border-style: dashed;
+
+          border-image: linear-gradient(to right, #008ccd66, #0063CD04)1 1;
+          border-radius: 5px;
+
+          &:last-child {
+            margin-bottom: 0
+          }
+
+          .control-item-l {
+            display: flex;
+            align-items: center;
+            font-size: 14px;
+
+            .round {
+              display: inline-block;
+              width: 3px;
+              height: 3px;
+              padding: 1px;
+              border-radius: 50%;
+              background-color: #3DF6FF;
+              margin-right: 5px;
+              box-shadow: 0 0 1px 1px #64f7ff;
+            }
+          }
+
+          .control-item-r {
+            text-align: right;
+          }
+
+          .button-box {
+            position: relative;
+            padding: 5px;
+            border: 1px transparent solid;
+            background-clip: border-box;
+            border-radius: 5px;
+            margin-left: 8px;
+          }
+
+          .a-button {
+            pointer-events: auto;
+          }
+
+          &::v-deep .a-button--mini {
+            padding: 6px 10px;
+          }
+
+          &::v-deep .a-button--mini.is-round {
+            padding: 6px 10px;
+          }
+        }
+
+        .base-title {
+          width: calc(100% - 60px);
+          text-align: center;
+          color: #00d8ff;
+        }
+
+        .state-item {
+          display: flex;
+          flex-direction: row;
+          padding: 5px;
+
+          .item-col {
+            width: 50%;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            padding-right: 4px;
+
+            .state-title {
+              color: #ffffffcc;
+              flex: 9;
+              font-size: 14px;
+
+              .unit {
+                // color: #ffffffbb;
+              }
+            }
+
+            .state-val {
+              flex: 1;
+              color: #e4a300;
+              margin-right: 5px;
+              text-align: right;
+              font-size: 14px;
+            }
+          }
+        }
+
+        .signal-box {
+          margin: 5px 0;
+          display: flex;
+          align-items: center;
+
+          .signal-title {
+            color: #7AF5FF;
+            margin: 0 5px;
+          }
+
+          &:last-child {
+            margin-right: 0px;
+          }
+        }
+
+        .list-item {
+          padding: 0 10px;
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+
+          .item-data-key {
+            color: #ffffff99;
+          }
+        }
+
+        .item-data-box {
+          color: #fff;
+
+          .state-icon {
+            display: inline-block;
+            width: 12px;
+            height: 12px;
+            border-radius: 12px;
+          }
+
+          .open {
+            border: 5px solid #133a56;
+            background: #4ecb73;
+          }
+
+          .close {
+            border: 5px solid #192961;
+            background: #6d7898;
+          }
+        }
+      }
+
+      .item-l {
+        width: 335px;
+
+        .monitor-box {
+          // width: 335px;
+          background-color: #ffffff05;
+          // margin-left: 2px;
+          // border-radius: 5px;
+          // backdrop-filter: blur(10px);
+        }
+      }
+
+      .right-box {
+         width: 330px;
+        .control-group{
+          display: flex;
+          // justify-content: space-around;
+          flex-wrap: wrap;
+          .control-item {
+            
+            display: flex;
+            flex-direction: column;
+            justify-content: center;
+            align-items: center;
+            padding: 0 4px;
+            .control-item-title{
+              color: #A6DCE9;
+              position: relative;
+              top: 5px;
+            }
+            .control-item-state{
+              width: 94px;
+              height: 47px;
+              background: url('/@/assets/images/vent/control-switch-bg.png');
+              display: flex;
+              justify-content: center;
+              align-items: center;
+              color: #fff;
+            }
+          
+            .button-box {
+              position: relative;
+              padding: 5px;
+              border: 1px transparent solid;
+              background-clip: border-box;
+              border-radius: 5px;
+              margin-left: 8px;
+            }
+
+            .a-button {
+              pointer-events: auto;
+            }
+
+            &::v-deep .a-button--mini {
+              padding: 6px 10px;
+            }
+
+            &::v-deep .a-button--mini.is-round {
+              padding: 6px 10px;
+            }
+          }
+
+        }
+        .control-btn-group{
+          width: 100%;
+          display: flex;
+          flex-direction: row;
+          justify-content: space-between;
+          align-items: center;
+          .control-left-box{
+            display: flex;
+            flex-direction: column;
+            justify-content: center;
+            align-items: center;
+            padding: 0 20px;
+            .btn-box{
+              width: 100px;
+              color: #fff;
+              display: flex;
+              justify-content: space-between;
+              span{
+                display: inline-block;
+                padding: 2px 8px;
+                background: #007099;
+                border-radius: 4px;
+                border: 1px solid rgb(125, 230, 249);
+                cursor: pointer;
+                &:hover{
+                  background: #005574;
+                }
+              }
+            }
+            .icon-box{
+              width: 60px;
+              height: 60px;
+              border-radius: 30px;
+              border: 2px solid #00bcdd;
+              box-shadow: 0 0 20px #ffffff88;
+              display: flex;
+              justify-content: center;
+              align-items: center;
+              margin-top: 20px;
+                
+              .icon{
+                width: 18px;
+                height: 18px;
+                border-radius: 9px;
+                border: 3px solid #d7f9ff;
+                position: relative;
+                background: #00bcdd;
+                &::before{
+                  position: absolute;
+                  content: '';
+                  width: 2px;
+                  height: 12px;
+                  background-color: #00bcdd;
+                  left: 6px;
+                  top: -16px;
+                }
+                &::after{
+                  position: absolute;
+                  content: '';
+                  width: 2px;
+                  height: 12px;
+                  left: 6px;
+                  top: 17px;
+                  background-color: #00d9ff;
+                }
+              }
+            }
+            .remote-icon-box{
+              transform: rotate(30deg);
+              animation: iconRotate 1s linear;
+            }
+            .remote-icon-box1{
+              transform: rotate(-30deg);
+              animation: iconRotate1 1s linear;
+            }
+
+            @keyframes iconRotate{
+              from{
+                transform: rotate(-30deg);
+              }
+              to {
+                transform: rotate(30deg);
+              }
+            }
+            @keyframes iconRotate1{
+              from {
+                transform: rotate(30deg);
+              }
+              to {
+                transform: rotate(-30deg);
+              }
+            }
+            
+          }
+          .control-right-box{
+            width: 100px;
+            color: #fff;
+            height: 80px;
+            justify-content: space-between;
+            align-items: center;
+            .btn{
+              margin-bottom: 30px;
+            }
+          }
+        }
+      }
+
+      .left-box {
+        height: calc(100% );
+        overflow-x: hidden;
+        overflow-y: auto;
+        pointer-events: auto;
+        direction: rtl;
+        .left-container{
+          direction: ltr;
+        }
+        .control-item {
+          height: 36px;
+        }
+      }
+    }
+  }
+}
+.tab-button-box{
+  display: inline-block;
+  position: relative;
+  padding: 5px;
+  // border: 1px transparent solid;
+  border-radius: 5px;
+  margin-left: 8px;
+  margin-right: 8px;
+  width: auto;
+  // height: 40px;
+  // border: 1px solid #65dbea;
+  height: 35px !important;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #fff;
+  padding: 0 15px 5px 15px;
+  cursor: pointer;
+  &:hover {
+    background: linear-gradient(#2cd1ff55, #1eb0ff55);
+  }
+  &::before {
+    width: calc(100% - 6px);
+    height: 27px;
+    content: '';
+    position: absolute;
+    top: 3px;
+    right: 0;
+    left: 3px;
+    bottom: 0;
+    z-index: -1;
+    border-radius: inherit; /*important*/
+    background: linear-gradient(#1fa6cb, #127cb5);
+  }
+  &::after {
+    width: calc(100% + 32px);
+    height: 10px;
+    content: '';
+    position: absolute;
+    top: 28px;
+    right: 0;
+    left: -16px;
+    bottom: 0;
+    z-index: -1;
+    border-radius: inherit; /*important*/
+    background: url('/@/assets/images/vent/short-light.png') no-repeat;
+    background-position: center;
+    background-size: 100%;
+    z-index: 999;
+  }
+}
+
+.tab-button-box-active {
+  border: 1px solid #66989e !important;
+  &:hover {
+    background: none !important;
+  }
+  &::before {
+    background: linear-gradient(#1fa6cbcc, #127cb5cc) !important;
+  }
+}
+</style>

+ 0 - 1
src/views/vent/monitorManager/nitrogen/nitrogen.dishang.threejs.ts

@@ -237,7 +237,6 @@ class Nitrogen {
 
   mountedThree(monitorDataGroup, dom) {
     return new Promise((resolve) => {
-      debugger
       this.CSSCanvasContainer = document.querySelector(dom);
       if (this.CSSCanvasContainer) {
         this.css3dRender = new CSS3DRenderer() as CSS3DRenderer;

+ 0 - 3
src/views/vent/monitorManager/nitrogen/nitrogen.threejs.ts

@@ -75,7 +75,6 @@ export const play = () => {
 
 // 切换风窗类型
 export const setModelType = (type) => {
-  debugger;
   modalType = type;
 
   if (group) {
@@ -146,7 +145,6 @@ export const clearCssText = () => {
 
 export const mountedThree = (monitorDataGroupNum1?, monitorDataGroupNum2?) => {
   return new Promise(async (resolve) => {
-    debugger;
     model = new UseThree('#compressor3D');
     model.setEnvMap('test1');
     model.renderer.toneMappingExposure = 1.0;
@@ -163,7 +161,6 @@ export const mountedThree = (monitorDataGroupNum1?, monitorDataGroupNum2?) => {
       await compressorObj2.mountedThree(monitorDataGroupNum2, '#compressorCss3D1');
       compressorObj2.modelName = 'compressor2';
     }
-    debugger
     resolve(null);
     // render();
     model.animate();

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

@@ -117,7 +117,6 @@ export const play = (rotationParam, flag) => {
 };
 
 export const initCameraCanvas = async (playerVal1?, playerVal2?) => {
-  debugger;
   if (windowType === 'singleWindow' && singleWindowObj) {
     return await singleWindowObj.initCamera.call(singleWindowObj, playerVal1);
   } else if (windowType === 'doubleWindow' && doubleWindowObj) {

+ 0 - 1
src/views/vent/monitorManager/workFaceMonitor/wokeFace.threejs.ts

@@ -60,7 +60,6 @@ export const clearCss3D = () => {
 
 // 切换风窗类型
 export const setModelType = (type, n = Math.ceil(Math.random() * 10)) => {
-  debugger;
   fiberType = type;
   return new Promise((resolve) => {
     if (workFaceObj) {