소스 검색

1. 修改视频墙切换设备候视频无法播放的问题
2. 工作面模型切换

hongrunxia 11 달 전
부모
커밋
ad5d2f1132
22개의 변경된 파일101개의 추가작업 그리고 77개의 파일을 삭제
  1. BIN
      public/model/glft/fire/Bertai_2023-11-29.glb
  2. 1 0
      src/hooks/system/useCamera.ts
  3. 6 4
      src/utils/threejs/main.worker.ts
  4. 6 7
      src/views/vent/monitorManager/camera/camera.api.ts
  5. 11 10
      src/views/vent/monitorManager/camera/index.vue
  6. 7 1
      src/views/vent/monitorManager/comment/HistoryTable.vue
  7. 13 13
      src/views/vent/monitorManager/deviceMonitor/components/device/index.vue
  8. 1 1
      src/views/vent/monitorManager/fanLocalMonitor/index.vue
  9. 2 1
      src/views/vent/monitorManager/gasPumpMonitor/components/gasPumpHome.vue
  10. 1 0
      src/views/vent/monitorManager/groutMonitor/grout.data.ts
  11. 7 2
      src/views/vent/monitorManager/mainFanMonitor/index.vue
  12. 1 1
      src/views/vent/monitorManager/nitrogen/nitrogen.data.1.ts
  13. 4 4
      src/views/vent/monitorManager/nitrogen/nitrogen.dataCc_2.ts
  14. 3 2
      src/views/vent/monitorManager/sensorMonitor/index.vue
  15. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFc.threejs.ts
  16. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcBet.threejs.ts
  17. 1 1
      src/views/vent/monitorManager/windowMonitor/dandaoFcXk.threejs.ts
  18. 1 1
      src/views/vent/monitorManager/windowMonitor/shuangdaoFc.threejs.ts
  19. 0 1
      src/views/vent/monitorManager/windrectMonitor/windrect.api.ts
  20. 0 3
      src/views/vent/monitorManager/workFaceMonitor/index.vue
  21. 2 2
      src/views/vent/monitorManager/workFaceMonitor/wokeFace.threejs.ts
  22. 32 21
      src/views/vent/monitorManager/workFaceMonitor/workFace.threejs.base.ts

BIN
public/model/glft/fire/Bertai_2023-11-29.glb


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

@@ -337,6 +337,7 @@ export function useCamera() {
     });
     videoParentDomList.length = 0;
     playerDoms.length = 0;
+    playerList.length = 0;
   }
 
   return {

+ 6 - 4
src/utils/threejs/main.worker.ts

@@ -62,15 +62,17 @@ export function initModalWorker() {
     'fire/nitrogen_2023-06-02.glb',
     'fire/nitrogenUnderground_2023-09-15.glb',
     'fire/grout_2023-06-02.glb',
-    'fire/Bertai_2023-11-29.glb', //lxh
+    'fire/Bertai_2024-04-09.glb',
     'fire/balancePress_2024-03-14.glb',
     'yafeng/compressor_2023-07-10.glb',
     'gas/gasPump_2024-03-04.glb',
     'gas/gasPumpUnder_2023-10-05.glb',
     'mb/obfurage_2024-03-19.glb',
-    'workFace/workFace-base_2024-03-04.glb',
-    'workFace/workFace-jin_2024-03-04.glb',
-    'workFace/workFace-hui_2024-03-04.glb',
+    // 'workFace/workFace-base_2024-03-04.glb',
+    // 'workFace/workFace-jin_2024-03-04.glb',
+    // 'workFace/workFace-hui_2024-03-04.glb',
+    'workFace/workFace1-1_2024-04-09.glb',
+    'workFace/workFace2-1_2024-04-09.glb',
   ];
 
   const db: any = new Dexie('DB');

+ 6 - 7
src/views/vent/monitorManager/camera/camera.api.ts

@@ -1,12 +1,11 @@
 import { defHttp } from '/@/utils/http/axios';
 
 enum Api {
-  getCameraDevKind='/safety/ventanalyCamera/getCameraDevKind',
+  getCameraDevKind = '/safety/ventanalyCamera/getCameraDevKind',
   list = '/safety/ventanalyCamera/listNew',
   getCameraUrl = '/ventanaly-device/camera/queryByCameraCode',
-  getDevice='/ventanaly-device/monitor/device',
-  getVentanalyCamera='/safety/ventanalyCamera/list'
-
+  getDevice = '/ventanaly-device/monitor/device',
+  getVentanalyCamera = '/safety/ventanalyCamera/list',
 }
 /**
  * 列表接口
@@ -16,6 +15,6 @@ export const list = (params) => defHttp.get({ url: Api.list, params });
 
 export const cameraAddr = (params) => defHttp.get({ url: Api.getCameraUrl, params });
 
-export const getCameraDevKind = () => defHttp.get({ url: Api.getCameraDevKind, });
-export const getDevice = (params) => defHttp.post({ url: Api.getDevice,params });
-export const getVentanalyCamera = (params) => defHttp.get({ url: Api.getVentanalyCamera,params });
+export const getCameraDevKind = () => defHttp.get({ url: Api.getCameraDevKind });
+export const getDevice = (params) => defHttp.post({ url: Api.getDevice, params });
+export const getVentanalyCamera = (params) => defHttp.get({ url: Api.getVentanalyCamera, params });

+ 11 - 10
src/views/vent/monitorManager/camera/index.vue

@@ -31,7 +31,7 @@
         </div>
       </div>
       <div class="pagination">
-        <Pagination v-model:current="current" :total="total" show-less-items @change="onChange" />
+        <Pagination v-model:current="current" v-model:page-size="pageSize" :total="total"  @change="onChange" />
       </div>
     </div>
     <div class="camera-box" v-else>
@@ -40,7 +40,7 @@
   </div>
 </template>
 <script lang="ts" setup>
-import { onMounted, onUnmounted, ref, reactive, nextTick } from 'vue';
+import { onMounted, onUnmounted, ref, reactive } from 'vue';
 import { useRouter } from 'vue-router';
 import { Pagination, Empty } from 'ant-design-vue';
 import { list, cameraAddr, getCameraDevKind, getDevice, getVentanalyCamera } from './camera.api'
@@ -69,7 +69,7 @@ let searchParam = reactive({
 
 I18N.use(ZH)
 let router = useRouter(); //路由
-const pageSize = 8
+const pageSize = ref(8)
 const current = ref(1)
 const total = ref(0)
 const playerList = ref([])
@@ -107,7 +107,8 @@ async function getCameraDevKindList() {
 
 //点击目录
 async function onClick(node) {
-  console.log(node, 'node--------------')
+  if(selected.title === node.title && selected.id === node.id) return
+  current.value = 1
   selected.id = node.id;
   selected.pid = node.pid;
   selected.title = node.title;
@@ -130,7 +131,7 @@ async function onClick(node) {
       }
       searchParam.devKind = node.itemValue
       searchParam.strType = ''
-      getVideoAddrs()
+      await getVideoAddrs()
     } else {
       getVideoAddrsSon(node.deviceID)
     }
@@ -138,9 +139,9 @@ async function onClick(node) {
   } else {
     searchParam.devKind = ''
     searchParam.strType = ''
-    getVideoAddrs()
+    await getVideoAddrs()
   }
-
+  getVideo()
 };
 
 //点击详情跳转
@@ -162,8 +163,8 @@ function onDetail(node) {
 async function getVideoAddrs() {
   clearCamera();
   playerList.value = []
-  let res = await list({ ...searchParam })
-  console.log(res, '摄像头信息--------')
+  let res = await list({ ...searchParam, pageSize: pageSize.value, pageNo: current.value })
+  total.value = res['total'] || 0
   if (res.records.length != 0) {
     const cameraList = <{ name: string, addr: string }[]>[]
     const cameras = res.records
@@ -174,7 +175,7 @@ async function getVideoAddrs() {
         // 从海康平台接口获取视频流
         try {
           const data = await cameraAddr({ cameraCode: item['addr'] });
-          if (data && data['url']) {
+          if (data) {
             cameraList.push({ name: item['name'], addr: data['url'] });
           }
           // cameraList.push({

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

@@ -166,7 +166,13 @@
     if (!props.sysId) {
       if (props.deviceListApi) {
         const res = await props.deviceListApi();
-        if (res['records'] && res['records'].length > 0) result = res['records'];
+        if (props.deviceType.startsWith('modelsensor')) {
+          if (res['msgTxt'] && res['msgTxt'][0] && res['msgTxt'][0]['datalist']) {
+            result = res['msgTxt'][0]['datalist'];
+          }
+        } else {
+          if (res['records'] && res['records'].length > 0) result = res['records'];
+        }
       } else {
         const res = await deviceListApi({ devicekind: props.deviceType, pageSize: 10000 });
         if (res['records'] && res['records'].length > 0) {

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

@@ -392,7 +392,7 @@ const scroll = reactive({
   y: 210
 })
 const treeData = ref<TreeProps['treeData']>([]);
-
+let startMonitorTimer = 0
 
 //树形菜单选择事件
 const onSelect: TreeProps['onSelect'] = (keys, e) => {
@@ -411,15 +411,12 @@ const onSelect: TreeProps['onSelect'] = (keys, e) => {
     deviceType.value = e.node.type
     actions.setGlobalState({ locationObj: { pageType: deviceType.value  }, pageObj: null });
   }
-  if(timer == null){
-    timer = undefined
-  }
-  if(timer){
-    clearTimeout(timer)
-    timer = undefined
+  clearTimeout(timer)
+  timer = undefined
+  if(startMonitorTimer){
+    clearTimeout(startMonitorTimer)
   }
-
-  setTimeout(() => {
+  startMonitorTimer = setTimeout(() => {
     expandedKeys.value = keys
     selectedKeys.value = keys
     treeNodeTitle.value = e.node.title
@@ -430,7 +427,7 @@ const onSelect: TreeProps['onSelect'] = (keys, e) => {
     if(e.node.children?.length < 1){
       getMonitor(true)
     }
-  }, 200)
+  }, 1000)
 };
 
 function tabChange(activeKeyVal) {
@@ -564,9 +561,9 @@ async function getDataSource() {
         if(deviceType.value.startsWith('safetymonitor')){
           resultData = await list({ devicetype: deviceType.value, pagetype: 'normal', filterParams: { ...searchForm } })
         }else if(deviceType.value.startsWith('location')) {
-          resultData = await list({ devicetype: deviceType.value, pagetype: 'normal', filterParams: {strinstallpos: searchForm['stationname'], userName: searchForm['strname'] }, ...searchForm,})
+          resultData = await list({ devicetype: deviceType.value, pagetype: 'normal', filterParams: {strinstallpos: searchForm && searchForm['stationname'] ? searchForm['stationname'] : '', userName: searchForm && searchForm['strname'] ? searchForm['strname'] : ''}})
         }else if(deviceType.value.startsWith('vehicle')) {
-          resultData = await list({ devicetype: deviceType.value, pagetype: 'normal', filterParams: {strinstallpos: searchForm['stationname'], vehicleName: searchForm['strname'] ,...searchForm,}})
+          resultData = await list({ devicetype: deviceType.value, pagetype: 'normal', filterParams: {strinstallpos: searchForm && searchForm['stationname'] ? searchForm['stationname'] : '', vehicleName: searchForm && searchForm['strname'] ? searchForm['strname'] : ''}})
         }else{
           resultData = await list({ devicetype: deviceType.value, pagetype: 'normal'})
         }
@@ -805,8 +802,11 @@ function setLocation() {
   }, 600)
 }
 
-watch(() => props.pageData, (pageObj) => {
+watch(() => props.pageData, async(pageObj) => {
   isRefresh.value = false
+  if(!treeData.value || treeData.value?.length < 1){
+    await getDeviceType()
+  }
   nextTick(() => {
     isRefresh.value = true
     if (pageObj.deviceid) {

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

@@ -68,7 +68,7 @@
               >风窗开度值:<span class="value">{{ selectData.OpenDegree ? selectData.OpenDegree : '-' }}</span> <span class="unit"> %</span></p
             >
             <p v-if="selectData.OpenDegree"
-              >风窗过风面积:<span class="value">{{ selectData.forntArea ? selectData.forntArea : '-' }}</span> <span class="unit"> m2</span></p
+              >风窗过风面积:<span class="value">{{ selectData.forntArea ? selectData.forntArea : '-' }}</span> <span class="unit"> </span></p
             >
           </div>
         </div>

+ 2 - 1
src/views/vent/monitorManager/gasPumpMonitor/components/gasPumpHome.vue

@@ -378,6 +378,7 @@
   watch(
     () => props.deviceType,
     () => {
+      removeCamera();
       nextTick(async () => {
         if (props.deviceType == 'pump_over') {
           setModelType('gasPump');
@@ -398,7 +399,7 @@
   onMounted(async () => {
     timer = null;
     await getMonitor(true);
-    if (selectData && selectData['deviceID']) await getCamera(selectData['deviceID'], playerRef.value);
+    // if (selectData && selectData['deviceID']) await getCamera(selectData['deviceID'], playerRef.value);
   });
 
   onBeforeUnmount(() => {

+ 1 - 0
src/views/vent/monitorManager/groutMonitor/grout.data.ts

@@ -645,6 +645,7 @@ export function getMonitorComponent() {
   const { sysOrgCode } = useGlobSetting();
   let groutHome;
   switch (sysOrgCode) {
+    case 'sdmtjtbetmk': // 布尔台
     case 'sdmtjtjjmk': // 锦界
       groutHome = defineAsyncComponent(() => import('./components/groutHomeJj.vue'));
       return groutHome;

+ 7 - 2
src/views/vent/monitorManager/mainFanMonitor/index.vue

@@ -551,7 +551,6 @@
               MonitorDataTable.value.setSelectedRowKeys(dataSource.value[0]['deviceID']);
             }
           }
-          Object.assign(selectData, deviceBaseList.value, dataSource.value[selectRowIndex.value]);
 
           if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
             frontMonitorIsShow.value = true;
@@ -560,7 +559,13 @@
             backMonitorIsShow.value = true;
             frontMonitorIsShow.value = false;
           }
-          deviceType.value = selectData.deviceType;
+
+          if (dataSource.value.length > 0 && dataSource.value[selectRowIndex.value]) {
+            deviceType.value = dataSource.value[selectRowIndex.value]['deviceType'];
+            if (dataSource.value.length > 0 && dataSource.value[selectRowIndex.value]) {
+              Object.assign(selectData, dataSource.value[selectRowIndex.value]);
+            }
+          }
           addText();
           playAnimate(selectData);
           if (timer) {

+ 1 - 1
src/views/vent/monitorManager/nitrogen/nitrogen.data.1.ts

@@ -71,7 +71,7 @@ export async function getMonitorData() {
     case 'sdmtjtcctmk': // 寸草1
       return await import('./nitrogen.dataCc');
     case 'sdmtjtcctrk': // 寸草2
-      return await import('./nitrogen.dataCc');
+      return await import('./nitrogen.dataCc_2');
     default: //默认
       return await import('./nitrogen.dataBet');
   }

+ 4 - 4
src/views/vent/monitorManager/nitrogen/nitrogen.dataCc_2.ts

@@ -17,8 +17,8 @@ export const preMonitorList = [
     child: [],
   },
   {
-    title: `机温度`,
-    code: `PRE_CPR_HeadTemp`,
+    title: `机温度`,
+    code: `PRE_HostTemp`,
     unit: '℃',
     child: [],
   },
@@ -139,8 +139,8 @@ export const preFanMonitorData = [
 ];
 export const totalData = [
   {
-    title: '总风管流量',
-    code: 'TotalInPipeFlow',
+    title: '总风管流量',
+    code: 'TotalOutPipeFlow',
     unit: 'm³/h',
   },
   {

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

@@ -55,16 +55,17 @@
             <HistoryTable
               :columns-type="deviceKind"
               :device-type="deviceKind"
-              :device-list-api="baseList.bind(null, { strtype: selectData.deviceType })"
+              :device-list-api="list.bind(null, { devicetype: selectData.deviceType })"
               @change="historyDataSourceChange"
               designScope="modelsensor-history"
+              :scroll="{ y: chartsColumns.length > 0 ? 400 : 600 }"
             />
             <div class="charts-box" v-if="chartsColumns.length > 0">
               <BarAndLine
                 :chartsColumnsType="selectData.deviceType"
                 xAxisPropType="gcreatetime"
                 :dataSource="historyDataSource"
-                height="100%"
+                height="300px"
                 :chartsColumns="chartsColumns"
                 chartsType="history"
                 :option="echartsOption1"

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

@@ -47,7 +47,7 @@ class singleWindow {
         y: 90,
       },
       {
-        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(m2)' : '过风面积(m2)'}:`,
+        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(㎡)' : '过风面积(㎡)'}:`,
         font: 'normal 30px Arial',
         color: '#009900',
         strokeStyle: '#002200',

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

@@ -47,7 +47,7 @@ class singleWindowBet {
         y: 95,
       },
       {
-        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(m2)' : '过风面积(m2)'}:`,
+        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(㎡)' : '过风面积(㎡)'}:`,
         font: 'normal 30px Arial',
         color: '#009900',
         strokeStyle: '#002200',

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

@@ -44,7 +44,7 @@ class singleWindowXk {
         y: 95,
       },
       {
-        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(m2)' : '过风面积(m2)'}:`,
+        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(㎡)' : '过风面积(㎡)'}:`,
         font: 'normal 30px Arial',
         color: '#009900',
         strokeStyle: '#002200',

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

@@ -42,7 +42,7 @@ class doubleWindow {
         y: 97,
       },
       {
-        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(m2)' : '过风面积(m2)'}:`,
+        text: `${selectData.OpenDegree ? '开度值(%)' : selectData.forntArea ? '过风面积(㎡)' : '过风面积(㎡)'}:`,
         font: 'normal 28px Arial',
         color: '#009900',
         strokeStyle: '#002200',

+ 0 - 1
src/views/vent/monitorManager/windrectMonitor/windrect.api.ts

@@ -53,4 +53,3 @@ export const cameraAddrList = (params) => defHttp.post({ url: Api.cameraAddrList
 export const cameraList = (params) => defHttp.get({ url: Api.cameraList, params });
 
 export const exportXls = (params) => defHttp.post({ url: Api.importExcel, params });
-

+ 0 - 3
src/views/vent/monitorManager/workFaceMonitor/index.vue

@@ -162,9 +162,6 @@ function changeModalType(currentData) {
   if (currentData['strsystype'] === 'sys_surface_caimei_modal_1') {
     // 单进单回
     modalType = 'workFace1'
-  } else if (currentData['strsystype'] === 'sys_surface_caimei_modal_2') {
-    // 单进双回
-    modalType = 'workFace2'
   } else if (currentData['strsystype'] === 'sys_surface_caimei_modal_3') {
     // 双进单回
     modalType = 'workFace3'

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

@@ -85,8 +85,8 @@ export const setModelType = (type, n = Math.ceil(Math.random() * 4), isShowPlane
         // 双进单会
         var oldControlsPosition = { x: 0.055, y: 0.062, z: 0.117 };
         var oldCameraPosition = { x: 1.403, y: 3.354, z: 2.873 };
-        var newCameraPosition = { x: -0.078, y: 2.524, z: 0.886 };
-        var newControlsPosition = { x: -0.078, y: 0.063, z: 0.181 };
+        var newCameraPosition = { x: -0.0736339522439517, y: 2.8359333767190282, z: 1.1782304435986413 };
+        var newControlsPosition = { x: -0.0792833688241211, y: 0.1249789297357116, z: -0.07315650372945247 };
       } else {
         var oldControlsPosition = { x: 0.055, y: 0.062, z: 0.117 };
         var oldCameraPosition = { x: 1.403, y: 3.354, z: 2.873 };

+ 32 - 21
src/views/vent/monitorManager/workFaceMonitor/workFace.threejs.base.ts

@@ -6,9 +6,8 @@ import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass.js';
 import { FXAAShader } from 'three/examples/jsm/shaders/FXAAShader.js';
 import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass.js';
 import { OutputPass } from 'three/examples/jsm/postprocessing/OutputPass.js';
-import { setModalCenter, setTag3D } from '/@/utils/threejs/util';
+import { setModalCenter, setTag3D, gradientColors } from '/@/utils/threejs/util';
 import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer.js';
-import { gradientColors } from '/@/utils/threejs/util';
 
 // import * as dat from 'dat.gui';
 // const gui = new dat.GUI();
@@ -117,7 +116,7 @@ class WorkFace {
         gasUnitCSS3D.scale.set(0.0009, 0.0009, 0.0009);
         gasUnitCSS3D.position.set(-0.1, 0.11, 0.05);
         gasUnitCSS3D.lookAt(-0.1, 0.5, 1);
-        this.group.add(gasUnitCSS3D);
+        this.planeGroup.add(gasUnitCSS3D);
       }
     }
     for (let i = 0; i < this.planeNum; i++) {
@@ -350,26 +349,34 @@ class WorkFace {
   }
 
   setModalType(modalType) {
-    const intakeWind = this.group.getObjectByName('workFace-jin');
-    const returnWind = this.group.getObjectByName('workFace-hui');
-    if (intakeWind && returnWind) {
+    debugger;
+    const workFace2 = this.group.getObjectByName('workFace2-1');
+    const workFace1 = this.group.getObjectByName('workFace1-1');
+    // const workFace3 = this.group.getObjectByName('workFace2-2');
+    if (workFace2 && workFace1) {
       if (modalType === 'workFace1') {
         // 单进单回
-        intakeWind.visible = false;
-        returnWind.visible = false;
-      } else if (modalType === 'workFace2') {
-        // 单进双回
-        intakeWind.visible = false;
-        returnWind.visible = true;
+        workFace2.visible = false;
+        // workFace3.visible = false;
+        workFace1.visible = true;
+        workFace1.add(this.planeGroup);
+        this.planeGroup.visible = false;
+        this.planeGroup.position.set(-0.35, 0.14, -0.21);
       } else if (modalType === 'workFace3') {
         // 双进单回
-        intakeWind.visible = true;
-        returnWind.visible = false;
-      } else if (modalType === 'workFace4') {
-        // 双进双回
-        intakeWind.visible = true;
-        returnWind.visible = true;
+        workFace1.visible = false;
+        // workFace3.visible = false;
+        workFace2.visible = true;
+        workFace2.add(this.planeGroup);
+        this.planeGroup.visible = false;
+        this.planeGroup.position.set(-0.35, 0.14, -0.21);
       }
+      // else if (modalType === 'workFace4') {
+      //   // 双进双回
+      //   workFace2.visible = false;
+      //   workFace3.visible = true;
+      //   workFace1.visible = false;
+      // }
       setModalCenter(this.group);
     }
   }
@@ -380,10 +387,14 @@ class WorkFace {
       // this.model.camera.position.set(0, 3.1, 500);
       // this.setRenderPass();
       this.model.orbitControls.update();
-      this.model.setGLTFModel(['workFace-base', 'workFace-jin', 'workFace-hui'], this.group).then(async () => {
+      this.model.setGLTFModel(['workFace2-1', 'workFace1-1'], this.group).then(async () => {
+        this.group.children.forEach((object: THREE.Object3D) => {
+          if (object.name.startsWith('workFace')) {
+            setModalCenter(object);
+          }
+        });
         this.group.name = this.modelName;
-        this.group.add(this.planeGroup);
-        this.planeGroup.visible = false;
+
         // this.group.position.set(-0.06, 0.28, 0.07);
         this.group.scale.set(2.5, 2.5, 2.5);
         // this.resetMesh();