Quellcode durchsuchen

提交新版本

lxh vor 1 Monat
Ursprung
Commit
6036497265

+ 1 - 1
.env.development

@@ -6,7 +6,7 @@ VITE_PUBLIC_PATH = /
 
 # 跨域代理,您可以配置多个 ,请注意,没有换行符
 #VITE_PROXY = [["/jeecgboot","http://localhost:8080/jeecg-boot"],["/upload","http://localhost:3300/upload"]]
-VITE_PROXY = [["/sw","http://182.92.126.35:6008"],["/jeecgsystem","http://182.92.126.35:9999"],["/upload","http://182.92.126.35:9999/upload"],["/documents", "http://182.92.126.35:9050"],["/modelreq", "http://182.92.126.35:9999"],["/webRtc", "http://182.92.126.35:8051"], ["/python", "http://127.0.0.1:8008"], ["/tun2D", "http://127.0.0.1:8088/micro-vent-2dModal/tun2D"],["/dataCenter", "http://39.97.59.228:10999"]]
+VITE_PROXY = [["/sw","http://182.92.126.35:6008"],["/jeecgsystem","http://182.92.126.35:9999"],["/upload","http://39.97.59.228:9999/upload"],["/documents", "http://182.92.126.35:9050"],["/modelreq", "http://39.97.59.228:9999"],["/webRtc", "http://182.92.126.35:8051"], ["/python", "http://127.0.0.1:8008"], ["/tun2D", "http://127.0.0.1:8088/micro-vent-2dModal/tun2D"],["/dataCenter", "http://39.97.59.228:10999"]]
 # VITE_PROXY = [["/sw","http://182.92.126.35:6008"],["/jeecgsystem","http://39.97.59.228:9999"],["/upload","http://39.97.59.228:9999/upload"],["/documents", "http://182.92.126.35:9050"],["/modelreq", "http://39.97.59.228:9999"],["/webRtc", "http://182.92.126.35:8051"], ["/python", "http://127.0.0.1:8008"], ["/tun2D", "http://127.0.0.1:8088/micro-vent-2dModal/tun2D"],["/dataCenter", "http://39.97.59.228:10999"]]
 # VITE_PROXY = [["/jeecgsystem","http://192.168.183.88:9999"],["/upload","http://192.168.183.88:9999/upload"],["/documents", "http://192.168.183.88:9050"],["/modelreq", "http://192.168.183.88:9999"],["/webRtc", "http://192.168.183.88:8051"]]
 # VITE_PROXY = [["/jeecgsystem","http://10.10.150.72:9999"],["/upload","http://localhost:3300/upload"],["/documents", "http://10.10.150.72:9050"],["/modelreq", "http://10.10.150.72:9999"],["/webRtc", "http://192.168.183.216:8051"]]

Datei-Diff unterdrückt, da er zu groß ist
+ 2 - 0
src/assets/icons/modal-back.svg


+ 1 - 1
src/views/vent/home/configurable/components/content.vue

@@ -140,7 +140,7 @@
           <gasWarnList class="content__module" :option="config.config.option" />
         </template>
         <template v-else-if="config.name === 'gasdevice_status_control'">
-          <gasDeviceStatusControl class="content__module" :option="config.config.option" />
+          <gasDeviceStatusControl class="content__module" :option="config.config.option" :statusData="config.data" />
         </template>
         <template v-else-if="config.name === 'board_gas'">
           <gasBoard class="content__module" :option="config.config.option" />

+ 6 - 2
src/views/vent/home/configurable/components/gasInject/curveEchartDetail.vue

@@ -36,7 +36,7 @@
       </div>
     </template>
     <template v-else>
-      <zqHistoryExport :tableColumn="tableColumn"></zqHistoryExport>
+      <zqHistoryExport :tableColumn="tableColumn" @handleBack="handleBack"></zqHistoryExport>
     </template>
   </div>
 </template>
@@ -101,10 +101,14 @@ let echartOption = computed(() => {
   return props.sysType == 'Cc' ? ccEchartOption : zqEchartOption
 })
 
-//历史数据详情及导出
+//打开历史数据详情及导出
 function handleHistory() {
   showExport.value = true
 }
+//历史数据返回至详情
+function handleBack(){
+  showExport.value=false
+}
 
 watch(() => props.isShowExport, (newV, oldV) => {
   showExport.value = newV

+ 23 - 6
src/views/vent/home/configurable/components/gasInject/zqHistoryExport.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="history-export">
+    <SvgIcon v-if="!isShowIcon" class="icon-style-back" size="32" name="modal-back" @click="handleBack"></SvgIcon>
     <div class="nav-box">
       <div class="nav-picker">
         <span>时间:</span>
@@ -14,7 +15,8 @@
       </div>
     </div>
     <div class="main-content">
-      <a-table size="small" :dataSource="dataSource" :columns="tableColumn" :scroll="{ y: 455 }" :pagination="pagination">
+      <a-table size="small" :dataSource="dataSource" :columns="tableColumn" :scroll="{ y: 455 }"
+        :pagination="pagination">
         <template #action="{ record }">
           <!-- <a class="table-action-link" @click="handleSpDetail(record)">审批详情</a> -->
         </template>
@@ -27,9 +29,13 @@
 import { reactive, ref } from 'vue'
 import { SvgIcon } from '/@/components/Icon';
 
-let props=defineProps({
-  tableColumn:{
-    type:Array
+let props = defineProps({
+  //是否显示返回按钮
+  isShowIcon:{
+    type:Boolean
+  },
+  tableColumn: {
+    type: Array
   }
 })
 
@@ -49,8 +55,6 @@ let dataSource = ref<any[]>([
   { fileName: '测试' },
   { fileName: '测试' },
 ])
-
-
 //分页参数配置
 let pagination = reactive({
   current: 1, // 当前页码
@@ -60,7 +64,12 @@ let pagination = reactive({
   showSizeChanger: true, // 是否可改变每页显示条数
   pageSizeOptions: ['15', '20', '25', '30', '50'], // 可选的每页显示条数
 });
+let $emit=defineEmits(['handleBack'])
 
+//返回上一级
+function handleBack(){
+$emit('handleBack')
+}
 //导出历史数据
 function handleHisExport() { }
 //日期切换
@@ -78,9 +87,17 @@ function onRangeChange() { }
 
 .history-export {
   --image-inject_zq_monitor: url('@/assets/images/gasInjection/9-3.png');
+  position: relative;
   width: 100%;
   height: 100%;
 
+  .icon-style-back {
+    position: absolute;
+    left: 6px;
+    top: -44px;
+    cursor: pointer;
+  }
+
   .nav-box {
     display: flex;
     justify-content: space-between;

+ 5 - 3
src/views/vent/home/configurable/components/gasInject/zqMonitorDetail.vue

@@ -48,7 +48,7 @@
       </div>
     </template>
     <template v-else>
-      <zqHistoryExport :tableColumn="tableColumn"></zqHistoryExport>
+      <zqHistoryExport :tableColumn="tableColumn" :isShowIcon="isShowExport" @handleBack="handleBack"></zqHistoryExport>
     </template>
   </div>
 </template>
@@ -115,6 +115,10 @@ let zqDetailData4 = reactive({
 function handleExport() {
   showExport.value = true
 }
+//历史数据返回至详情
+function handleBack(){
+  showExport.value=false
+}
 
 watch(() => props.isShowExport, (newV, oldV) => {
   showExport.value = newV
@@ -328,7 +332,5 @@ watch(() => props.isShowExport, (newV, oldV) => {
     background-size: 100% 100%;
     transform: rotate(180deg);
   }
-
-
 }
 </style>

+ 52 - 20
src/views/vent/home/configurable/components/preset/gasDeviceStatusControl.vue

@@ -4,38 +4,65 @@
       <SvgIcon class="icon-style" size="20" :name="item.iconName" />
       <div class="control-box-title">{{ item.label }}</div>
       <div class="control-box" v-if="item.isShowSwitch">
-        <div class="btn-item btn-open">开启</div>
-        <div class=" btn-item btn-close">关闭</div>
+        <div class="btn-item btn-open" :class="statusDatas[item.value] == '1' ? 'btn-avtive' : ''"
+          @click="handlerClick('open', item)">开启
+        </div>
+        <div class=" btn-item btn-close" :class="statusDatas[item.value] != '1' ? 'btn-avtive' : ''"
+          @click="handlerClick('close', item)">
+          关闭
+        </div>
       </div>
       <div class="control-box" v-else>
-        <a-input v-model:value="presure" size="small" placeholder="请输入"  />
+        <a-input v-model:value="presure" size="small" placeholder="请输入" />
         <!-- <span style="font-size: 12px;">MPa</span> -->
-         <div class="nav-btn" @click="handleSetting">
-            <div class="nav-text">
-              <SvgIcon class="icon-style1" size="12" name="gas-export"></SvgIcon>
-              <span>设置</span>
-            </div>
+        <div class="nav-btn" @click="handleSetting">
+          <div class="nav-text">
+            <SvgIcon class="icon-style1" size="12" name="gas-export"></SvgIcon>
+            <span>设置</span>
           </div>
+        </div>
       </div>
     </div>
   </div>
 </template>
 
 <script setup lang="ts">
-import { ref } from 'vue'
+import { reactive, ref, watch } from 'vue'
 import { SvgIcon } from '/@/components/Icon';
 
-let props=defineProps({
-  option:{
-    type:Array as any
+let props = defineProps({
+  option: {
+    type: Array as any
+  },
+  statusData: {
+    type: Object as any
   }
 })
-let presure=ref('')
+
+let statusDatas = reactive({})
+let presure = ref('')
 
 //设置
-function handleSetting(){
+function handleSetting() {
 
 }
+//开启/关闭
+function handlerClick(param, item) {
+  switch (param) {
+    case 'open':
+      statusDatas[item.value] = '1'
+      break;
+    case 'close':
+      statusDatas[item.value] = '0'
+      break;
+  }
+}
+
+watch(() => props.statusData, (newV, oldV) => {
+  if (newV) {
+    statusDatas = newV
+  }
+})
 
 </script>
 
@@ -102,8 +129,12 @@ function handleSetting(){
 
   .btn-open {
     margin-right: 5px;
+  }
 
+  .btn-avtive {
+    background-color: rgba(44, 182, 255, .4);
   }
+
   .nav-btn {
     width: 56px;
     height: 78%;
@@ -127,12 +158,13 @@ function handleSetting(){
     margin-right: 5px;
   }
 }
-::v-deep .zxm-input-sm{
+
+::v-deep .zxm-input-sm {
   width: 70px;
-    margin-right: 5px;
-    height: 25px !important;
-    background-color: transparent !important;
-    border: 1px solid #2cb6ff;
-    color: #fff;
+  margin-right: 5px;
+  height: 25px !important;
+  background-color: transparent !important;
+  border: 1px solid #2cb6ff;
+  color: #fff;
 }
 </style>

+ 45 - 63
src/views/vent/home/configurable/components/preset/gasInjectList.vue

@@ -7,83 +7,65 @@
         <span style="margin-left: 5px; color: aliceblue">{{ item.unit }}</span>
       </div>
     </div>
-    <!-- <div class="list-box-item">
-        <div class="box-item-label">{{ item.mcTitle }}</div>
-        <div class="box-item-value">{{ item.mcValue }}</div>
-      </div>
-      <div class="list-box-item">
-        <div class="box-item-label">{{ item.cdTitle }}</div>
-        <div class="box-item-value">{{ item.cdValue }}</div>
-      </div>
-      <div class="list-box-item">
-        <div class="box-item-label">{{ item.kdTitle }}</div>
-        <div class="box-item-value">{{ item.kdValue }}</div>
-      </div>
-      <div class="list-box-item">
-        <div class="box-item-label">{{ item.sycdTitle }}</div>
-        <div class="box-item-value">{{ item.sycdValue }}</div>
-      </div>
-      <div class="list-box-item">
-        <div class="box-item-label">{{ item.hlTitle }}</div>
-        <div class="box-item-value">{{ item.hlValue }}</div>
-      </div> -->
   </div>
 </template>
 
 <script setup lang="ts">
-  import { ref } from 'vue';
+import { ref } from 'vue';
+
+let props = defineProps({
+  option: {
+    type: Array as any,
+  },
+});
 
-  let props = defineProps({
-    option: {
-      type: Array as any,
-    },
-  });
-  // let listData = ref([
-  //   { id: 1, gzmTitle: '工作面', gzmValue: '12304工作面', mcTitle: '所属煤层', mcValue: '2号煤', cdTitle: '设计长度', cdValue: '2924.6', kdTitle: '采面宽度', kdValue: '300.4', sycdTitle: '剩余可采长度', sycdValue: '900', hlTitle: '原始煤层瓦斯含量', hlValue: '3.40' },
-  // ])
 </script>
 
 <style lang="less" scoped>
-  @import '/@/design/theme.less';
+@import '/@/design/theme.less';
 
-  @{theme-deepblue} {
-    .gas-inject-list {
-      --image-model_list_bg: url('@/assets/images/themify/deepblue/home-container/configurable/gasInjection/5-1.png');
-    }
+@{theme-deepblue} {
+  .gas-inject-list {
+    --image-model_list_bg: url('@/assets/images/themify/deepblue/home-container/configurable/gasInjection/5-1.png');
   }
+}
 
-  .gas-inject-list {
-    --image-model_list_bg: url('@/assets/images/gasInjection/5-1.png');
-    position: relative;
-    width: 100%;
-    height: 100%;
-    padding: 13px 15px;
-    box-sizing: border-box;
-    overflow-y: auto;
+.gas-inject-list {
+  --image-model_list_bg: url('@/assets/images/gasInjection/5-1.png');
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  align-items: center;
+  width: 100%;
+  height: 100%;
+  padding: 13px 15px;
+  box-sizing: border-box;
+  overflow-y: auto;
 
-    .list-box-item {
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      width: 100%;
-      height: 50px;
-      padding: 0px 28px;
-      background: var(--image-model_list_bg) no-repeat;
-      background-size: 100% 100%;
-    }
+  .list-box-item {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    width: 100%;
+    height: 50px;
+    padding: 0px 28px;
+    background: var(--image-model_list_bg) no-repeat;
+    background-size: 100% 100%;
+  }
 
-    .box-item-label {
-      color: #c3f5ff;
-      font-size: 15px;
-      font-weight: 700;
-    }
+  .box-item-label {
+    color: #c3f5ff;
+    font-size: 15px;
+    font-weight: 700;
+  }
 
-    .box-item-value {
-      font-size: 15px;
-      font-weight: 700;
-      // font-family: 'douyuFont';
+  .box-item-value {
+    font-size: 15px;
+    font-weight: 700;
+    // font-family: 'douyuFont';
 
-      color: #91faff;
-    }
+    color: #91faff;
   }
+}
 </style>

+ 25 - 0
src/views/vent/home/configurable/configurable.api.ts

@@ -18,6 +18,7 @@ enum Api {
   sysTypeWarnList = '/safety/ventanalyAlarmLog/sysTypeWarn',
   getDisasterProportion = '/safety/ventanalyAlarmLog/getDisasterProportion',
   system = '/ventanaly-device/monitor/device',
+  getSystem = '/monitor/system'
 }
 
 // 搞这个缓存是由于:目前代码上的设计是多个模块发出多次请求,每个模块自己负责消费前者的响应。
@@ -634,3 +635,27 @@ export const getElectroData = (params) => {
     return data;
   });
 };
+
+//获取注气系统数据
+export const getSystemApi = (params) => {
+  const key = `${Api.getSystem}?${JSON.stringify(params)}`;
+  if (!cache.has(key)) {
+    cache.set(
+      key,
+      defHttp.post({ url: Api.getSystem, params }).finally(() => {
+        cache.delete(key);
+      })
+    );
+  }
+  return (cache.get(key) as Promise<any>).then((res) => {
+    console.log(res, '注气系统数据-----')
+    //注气数据
+    res.deviceStatusControl = {
+      runStatus: res.deviceInfo.injection.datalist[0].readData.runStatus,
+      paramSetting: res.deviceInfo.injection.datalist[0].readData.paramSetting
+    }
+   
+
+    return res;
+  });
+};

+ 10 - 10
src/views/vent/home/configurable/configurable.data.ts

@@ -508,10 +508,10 @@ export const testConfigGasInjectZq: Config[] = [
       gallery_list: [],
       preset: [
         {
-          readFrom: '',
+          readFrom: 'deviceStatusControl',
           option: [
-            { label: '开关', isShowSwitch: true, value: '1', iconName: 'kaiguan' },
-            { label: '出口压力设置', isShowSwitch: false, value: '1', iconName: 'yalishezhi' },
+            { label: '开关', isShowSwitch: true, value: 'runStatus', iconName: 'kaiguan' },
+            { label: '出口压力设置', isShowSwitch: false, value: 'paramSetting', iconName: 'yalishezhi' },
             { label: '进气端阀门', isShowSwitch: true, value: '1', iconName: 'fameng' },
             { label: '出气端阀门', isShowSwitch: true, value: '1', iconName: 'fameng' },
           ],
@@ -816,13 +816,13 @@ export const testConfigGasInjectCc: Config[] = [
         {
           readFrom: '',
           option: [
-            { label: '瓦斯浓度', value: '12304' },
-            { label: '抽采负压', value: '2号煤' },
-            { label: '混合气体标况总量', value: '2924.6' },
-            { label: '混合气体标况瞬量', value: '300.4' },
-            { label: '甲烷气体标况总量', value: '900' },
-            { label: '甲烷气体标况瞬量', value: '3.40' },
-            { label: '累计流量', value: '100' },
+            { label: '瓦斯浓度', value: '12304', unit: '%' },
+            { label: '抽采负压', value: '2号煤', unit: 'Pa' },
+            { label: '混合气体标况总量', value: '2924.6', unit: 'm³' },
+            { label: '混合气体标况瞬量', value: '300.4', unit: 'm³' },
+            { label: '甲烷气体标况总量', value: '900', unit: 'm³' },
+            { label: '甲烷气体标况瞬量', value: '3.40', unit: 'm³' },
+            { label: '累计流量', value: '100', unit: 'm³' },
           ],
         },
       ],

+ 218 - 233
src/views/vent/home/configurable/gasInjection.vue

@@ -9,32 +9,17 @@
       </div>
       <template v-if="menuName == 'zjm'">
         <div class="main-status"> 运行中 </div>
-        <ModuleGasInject
-          v-for="cfg in configs"
-          :key="cfg.deviceType"
-          :show-style="cfg.showStyle"
-          :module-data="cfg.moduleData"
-          :module-name="cfg.moduleName"
-          :device-type="cfg.deviceType"
-          :data="data"
-          :visible="true"
-          :visible-detail="cfg.showDetail"
-        />
+        <ModuleGasInject v-for="cfg in configs" :key="cfg.deviceType" :show-style="cfg.showStyle"
+          :module-data="cfg.moduleData" :module-name="cfg.moduleName" :device-type="cfg.deviceType" :data="data"
+          :visible="true" :visible-detail="cfg.showDetail" />
       </template>
       <template v-else>
-        <ModuleGasInject
-          v-for="cfg in configs"
-          :key="cfg.deviceType"
-          :show-style="cfg.showStyle"
-          :module-data="cfg.moduleData"
-          :module-name="cfg.moduleName"
-          :device-type="cfg.deviceType"
-          :data="data"
-          :visible="true"
-          :visible-detail="cfg.showDetail"
-        />
+        <ModuleGasInject v-for="cfg in configs" :key="cfg.deviceType" :show-style="cfg.showStyle"
+          :module-data="cfg.moduleData" :module-name="cfg.moduleName" :device-type="cfg.deviceType" :data="data"
+          :visible="true" :visible-detail="cfg.showDetail" />
       </template>
-      <div :class="{ 'vent-modal': menuName == 'zjm', 'vent-modal-1': menuName == 'syq' || menuName == 'zqxt' || menuName == 'ccxt' }">
+      <div
+        :class="{ 'vent-modal': menuName == 'zjm', 'vent-modal-1': menuName == 'syq' || menuName == 'zqxt' || menuName == 'ccxt' }">
         <div class="modal-box">
           <Three3D ref="three3D" :modalName="'zhuqi'" class="modal-3d" @success="initModalAnimate" />
         </div>
@@ -45,262 +30,262 @@
   </div>
 </template>
 <script lang="ts" setup>
-  import { onMounted, onUnmounted, ref, computed, nextTick } from 'vue';
-  import { useInitConfigs, useInitPage } from './hooks/useInit';
-  import ModuleGasInject from './components/ModuleGasInject.vue';
-  import navMenu from './components/gasInject/navMenu.vue';
-  import Three3D from './components/three3D.vue';
-  import { getHomeData } from './configurable.api';
-  // import { useRoute } from 'vue-router';
-  import { testConfigGasInject, testConfigGasInjectZq, testConfigGasInjectCc, testConfigGasInjectSy } from './configurable.data';
-  import { animateCamera } from '/@/utils/threejs/util';
-  import { modalAnimate } from './threejs/gasInjection';
-  // import * as dat from 'dat.gui';
-  // const gui = new dat.GUI();
-  // gui.domElement.style = 'position:absolute;top:100px;left:10px;z-index:99999999999999';
+import { onMounted, onUnmounted, ref, computed, nextTick } from 'vue';
+import { useInitConfigs, useInitPage } from './hooks/useInit';
+import ModuleGasInject from './components/ModuleGasInject.vue';
+import navMenu from './components/gasInject/navMenu.vue';
+import Three3D from './components/three3D.vue';
+import { getHomeData, getSystemApi } from './configurable.api';
+// import { useRoute } from 'vue-router';
+import { testConfigGasInject, testConfigGasInjectZq, testConfigGasInjectCc, testConfigGasInjectSy } from './configurable.data';
+import { animateCamera } from '/@/utils/threejs/util';
+// import { modalAnimate } from './threejs/gasInjection';
+// import * as dat from 'dat.gui';
+// const gui = new dat.GUI();
+// gui.domElement.style = 'position:absolute;top:100px;left:10px;z-index:99999999999999';
 
-  const { configs, fetchConfigs } = useInitConfigs();
-  const { mainTitle, data, updateData } = useInitPage('注气驱替智能管控系统');
-  const three3D = ref(null);
-  let interval: number | undefined;
-  let menuName = ref('zjm');
+const { configs, fetchConfigs } = useInitConfigs();
+const { mainTitle, data, updateData } = useInitPage('注气驱替智能管控系统');
+const three3D = ref(null);
+let interval: number | undefined;
+let menuName = ref('zjm');
 
-  //选项切换
-  function toggleMenu(param) {
-    menuName.value = param;
-    switch (menuName.value) {
-      case 'zjm':
-        configs.value = testConfigGasInject;
-        break;
-      case 'syq':
-        configs.value = testConfigGasInjectSy;
-        break;
-      case 'zqxt':
-        configs.value = testConfigGasInjectZq;
-        break;
-      case 'ccxt':
-        configs.value = testConfigGasInjectCc;
-        break;
-    }
+//选项切换
+function toggleMenu(param) {
+  menuName.value = param;
+  switch (menuName.value) {
+    case 'zjm':
+      configs.value = testConfigGasInject;
+      break;
+    case 'syq':
+      configs.value = testConfigGasInjectSy;
+      break;
+    case 'zqxt':
+      configs.value = testConfigGasInjectZq;
+      break;
+    case 'ccxt':
+      configs.value = testConfigGasInjectCc;
+      break;
+  }
 
-    // 刷新/
-    nextTick(async () => {
-      three3D.value?.resizeRenderer();
-      const modal = three3D.value.getModal();
-      if (modal) {
-        const oldCamera = modal.camera;
-        const oldCameraPosition = { x: oldCamera.position.x, y: oldCamera.position.y, z: oldCamera.position.z };
-        if (param == 'zqxt') {
-          const newP = { x: -26.587483577770445, y: -1.885170491810538, z: 39.104309663143255 };
-          const newT = { x: 10.919881491980828, y: -4.7228274957026946, z: 38.87645926712004 };
-          await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, newP, newT, modal);
-        } else if (param == 'zjm') {
-          const newP = { x: -45.69228602978097, y: 49.59721939545517, z: 2.6454258202266985 };
-          const newT = { x: 9.289291846942458, y: -21.608842010051386, z: 2.7675348357947906 };
-          await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, newP, newT, modal);
-        } else {
-          const newP = { x: -43.18945276107877, y: 40.44347648044, z: 0.059975838354020664 };
-          const newT = { x: 6.431421158296241, y: -23.819993211059913, z: 0.17017939135402457 };
-          await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, newP, newT, modal);
-        }
+  // 刷新/
+  nextTick(async () => {
+    three3D.value?.resizeRenderer();
+    const modal = three3D.value.getModal();
+    if (modal) {
+      const oldCamera = modal.camera;
+      const oldCameraPosition = { x: oldCamera.position.x, y: oldCamera.position.y, z: oldCamera.position.z };
+      if (param == 'zqxt') {
+        const newP = { x: -26.587483577770445, y: -1.885170491810538, z: 39.104309663143255 };
+        const newT = { x: 10.919881491980828, y: -4.7228274957026946, z: 38.87645926712004 };
+        await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, newP, newT, modal);
+      } else if (param == 'zjm') {
+        const newP = { x: -45.69228602978097, y: 49.59721939545517, z: 2.6454258202266985 };
+        const newT = { x: 9.289291846942458, y: -21.608842010051386, z: 2.7675348357947906 };
+        await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, newP, newT, modal);
+      } else {
+        const newP = { x: -43.18945276107877, y: 40.44347648044, z: 0.059975838354020664 };
+        const newT = { x: 6.431421158296241, y: -23.819993211059913, z: 0.17017939135402457 };
+        await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, newP, newT, modal);
       }
-    });
-  }
+    }
+  });
+}
 
-  function initModalAnimate(modal) {
-    console.log('初始化模型', modal);
-    modal.isRender = true;
+function initModalAnimate(modal) {
+  console.log('初始化模型', modal);
+  modal.isRender = true;
 
-    modalAnimate(modal);
-  }
+  // modalAnimate(modal);
+}
 
-  onMounted(() => {
-    // fetchConfigs('vent_new').then(() => {
+onMounted(() => {
+  fetchConfigs('gas_injection').then(() => {
     configs.value = testConfigGasInject;
-    // updateEnhancedConfigs(configs.value);
-
-    getHomeData({}).then(updateData);
-    // });
-    setInterval(() => {
-      getHomeData({}).then(updateData);
-    }, 60000);
+    //  updateEnhancedConfigs(configs.value);
+    getSystemApi({systemID: "2036323791827165185",}).then(updateData);
   });
 
-  onUnmounted(() => {
-    clearInterval(interval);
-  });
+  setInterval(() => {
+    getSystemApi({systemID: "2036323791827165185",}).then(updateData);
+  }, 60000);
+});
+
+onUnmounted(() => {
+  clearInterval(interval);
+});
 </script>
 
 <style lang="less" scoped>
-  @import '/@/design/theme.less';
-
-  @{theme-deepblue} {
-    .company-home {
-      --image-modal-top: url('@/assets/images/gasInjection/1-1.png');
-      --image-modal-status: url('@/assets/images/gasInjection/3-1.png');
-      --image-modal-center: url('@/assets/images/gasInjection/1-2.png');
-    }
-  }
+@import '/@/design/theme.less';
 
+@{theme-deepblue} {
   .company-home {
     --image-modal-top: url('@/assets/images/gasInjection/1-1.png');
     --image-modal-status: url('@/assets/images/gasInjection/3-1.png');
     --image-modal-center: url('@/assets/images/gasInjection/1-2.png');
-    width: 100%;
-    height: 100%;
-    color: @white;
-    position: relative;
-    background: url('@/assets/images/vent/homeNew/bg.png') no-repeat center;
-
-    .top-bg {
-      width: 100%;
-      height: 66px;
-      background: var(--image-modal-top) no-repeat center;
-      background-size: 100% 100%;
-      position: absolute;
-      z-index: 1;
-
-      .main-title {
-        height: 66px;
-        font-family: 'douyuFont';
-        font-size: 20px;
-        letter-spacing: 2px;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-      }
+  }
+}
 
-      .top-nav {
-        position: absolute;
-        top: 0;
-        width: 880px;
-        height: 100%;
-        display: flex;
-        justify-content: flex-start;
-      }
-    }
+.company-home {
+  --image-modal-top: url('@/assets/images/gasInjection/1-1.png');
+  --image-modal-status: url('@/assets/images/gasInjection/3-1.png');
+  --image-modal-center: url('@/assets/images/gasInjection/1-2.png');
+  width: 100%;
+  height: 100%;
+  color: @white;
+  position: relative;
+  background: url('@/assets/images/vent/homeNew/bg.png') no-repeat center;
 
-    .main-container {
-      position: absolute;
-      top: 66px;
-      width: 100%;
-      height: calc(100% - 66px);
-      padding: 0px 10px;
-      box-sizing: border-box;
-    }
+  .top-bg {
+    width: 100%;
+    height: 66px;
+    background: var(--image-modal-top) no-repeat center;
+    background-size: 100% 100%;
+    position: absolute;
+    z-index: 1;
 
-    .main-status {
+    .main-title {
+      height: 66px;
+      font-family: 'douyuFont';
+      font-size: 20px;
+      letter-spacing: 2px;
       display: flex;
       justify-content: center;
       align-items: center;
-      width: 440px;
-      height: 80px;
-      font-size: 18px;
-      font-family: 'douyuFont';
-      margin: 10px 0px;
-      background: var(--image-modal-status);
-      background-size: 100% 100%;
     }
 
-    .module-dropdown {
-      padding: 10px;
-      background-image: @vent-configurable-dropdown;
-      border-bottom: 2px solid @vent-configurable-home-light-border;
-      color: @vent-font-color;
+    .top-nav {
       position: absolute;
-      top: 70px;
-      right: 460px;
-    }
-
-    .modal-box {
-      width: calc(100% - 20px);
-      height: calc(100% - 20px);
-      position: relative;
-      pointer-events: auto;
-      margin: 10px;
-    }
-
-    .module-dropdown-original {
-      padding: 10px;
-      background-image: @vent-configurable-dropdown;
-      border-bottom: 2px solid @vent-configurable-home-light-border;
-      color: @vent-font-color;
-      position: absolute;
-      top: 70px;
-      right: 460px;
+      top: 0;
+      width: 880px;
+      height: 100%;
+      display: flex;
+      justify-content: flex-start;
     }
+  }
 
-    .module-trigger-button {
-      color: @vent-font-color;
-      background-image: @vent-configurable-dropdown;
-      border: none;
-      border-bottom: 2px solid @vent-configurable-home-light-border;
-    }
+  .main-container {
+    position: absolute;
+    top: 66px;
+    width: 100%;
+    height: calc(100% - 66px);
+    padding: 0px 10px;
+    box-sizing: border-box;
+  }
 
-    .nav-cards {
-      position: absolute;
-      left: 50%;
-      top: 0px;
-      transform: translate(-50%, 0);
-      width: 691px;
-      height: 58px;
-      background: var(--image-modal-center) no-repeat;
-      background-size: 100% 100%;
-    }
+  .main-status {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 440px;
+    height: 80px;
+    font-size: 18px;
+    font-family: 'douyuFont';
+    margin: 10px 0px;
+    background: var(--image-modal-status);
+    background-size: 100% 100%;
   }
 
-  :deep(.loading-box) {
-    position: unset;
+  .module-dropdown {
+    padding: 10px;
+    background-image: @vent-configurable-dropdown;
+    border-bottom: 2px solid @vent-configurable-home-light-border;
+    color: @vent-font-color;
+    position: absolute;
+    top: 70px;
+    right: 460px;
   }
 
   .modal-box {
-    width: 100%;
-    height: 100%;
+    width: calc(100% - 20px);
+    height: calc(100% - 20px);
     position: relative;
     pointer-events: auto;
+    margin: 10px;
   }
 
-  // 试验区模型区域样式
-  .syq-modal {
+  .module-dropdown-original {
+    padding: 10px;
+    background-image: @vent-configurable-dropdown;
+    border-bottom: 2px solid @vent-configurable-home-light-border;
+    color: @vent-font-color;
     position: absolute;
-    top: 135px;
-    right: 20px;
-    width: calc(100% - 510px);
-    height: 515px;
-    background: url('@/assets/images/gasInjection/syq/modal-bg.png') no-repeat;
-    background-size: 100% 100%;
+    top: 70px;
+    right: 460px;
   }
 
-  .vent-modal {
-    position: absolute;
-    top: 70px;
-    left: 50%;
-    transform: translate(-50%, 0px);
-    width: calc(100% - 920px);
-    height: 500px;
-    background: url(/src/assets/images/gasInjection/syq/modal-bg.png) no-repeat;
-    background-size: 100% 100%;
-    pointer-events: auto;
-    // padding: 15px;
-    box-sizing: border-box;
-    overflow: hidden;
+  .module-trigger-button {
+    color: @vent-font-color;
+    background-image: @vent-configurable-dropdown;
+    border: none;
+    border-bottom: 2px solid @vent-configurable-home-light-border;
   }
 
-  .vent-modal-1 {
+  .nav-cards {
     position: absolute;
-    top: 70px;
-    left: 460px;
-    width: calc(100% - 470px);
-    height: 500px;
-    background: url(/src/assets/images/gasInjection/syq/modal-bg.png) no-repeat;
+    left: 50%;
+    top: 0px;
+    transform: translate(-50%, 0);
+    width: 691px;
+    height: 58px;
+    background: var(--image-modal-center) no-repeat;
     background-size: 100% 100%;
-    pointer-events: auto;
-    padding: 10px 15px;
-    box-sizing: border-box;
-    overflow: hidden;
   }
+}
 
-  .modal-3d {
-    width: 100%;
-  }
+:deep(.loading-box) {
+  position: unset;
+}
+
+.modal-box {
+  width: 100%;
+  height: 100%;
+  position: relative;
+  pointer-events: auto;
+}
+
+// 试验区模型区域样式
+.syq-modal {
+  position: absolute;
+  top: 135px;
+  right: 20px;
+  width: calc(100% - 510px);
+  height: 515px;
+  background: url('@/assets/images/gasInjection/syq/modal-bg.png') no-repeat;
+  background-size: 100% 100%;
+}
+
+.vent-modal {
+  position: absolute;
+  top: 70px;
+  left: 50%;
+  transform: translate(-50%, 0px);
+  width: calc(100% - 920px);
+  height: 500px;
+  background: url(/src/assets/images/gasInjection/syq/modal-bg.png) no-repeat;
+  background-size: 100% 100%;
+  pointer-events: auto;
+  // padding: 15px;
+  box-sizing: border-box;
+  overflow: hidden;
+}
+
+.vent-modal-1 {
+  position: absolute;
+  top: 70px;
+  left: 460px;
+  width: calc(100% - 470px);
+  height: 500px;
+  background: url(/src/assets/images/gasInjection/syq/modal-bg.png) no-repeat;
+  background-size: 100% 100%;
+  pointer-events: auto;
+  padding: 10px 15px;
+  box-sizing: border-box;
+  overflow: hidden;
+}
+
+.modal-3d {
+  width: 100%;
+}
 </style>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.