Преглед на файлове

[Mod 000000] 优化二维动画样式

hongrunxia преди 1 седмица
родител
ревизия
e21bb9bd10

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

@@ -20,7 +20,7 @@
       </div>
     </div>
     <!-- 瓦斯巡检弹窗信息 -->
-    <div v-if="deviceType.startsWith('gasDay_normal') && activeKey == '1'" class="inspect-info-xj">
+    <div v-if="deviceType.startsWith('gasDay_normal') && activeKey == 'monitor'" class="inspect-info-xj">
       <gasInspectDialog :gasSearch="gasSearch"></gasInspectDialog>
     </div>
     <div
@@ -140,7 +140,7 @@
         </div>
         <!-- 是人员定位表单代码,由于放在tab中,表格对已知刷新,导致表单数据也在刷寻,造成输入一半的中文时会清空输入框的内容,导致的输入不上数据 -->
         <div
-          v-if="(deviceType.startsWith('location') || deviceType.startsWith('vehicle')) && activeKey == '1'"
+          v-if="(deviceType.startsWith('location') || deviceType.startsWith('vehicle')) && activeKey == 'monitor'"
           class="location-form"
           style="position: absolute; z-index: 9999; top: 50px"
         >
@@ -166,7 +166,7 @@
         </div>
         <a-tabs class="tabs-box" v-model:activeKey="activeKey" @change="tabChange" id="tabsBox">
           <a-tab-pane
-            key="1"
+            key="monitor"
             :tab="
               deviceType.startsWith('gasDay_normal')
                 ? '当日巡检监测'
@@ -178,7 +178,7 @@
                 : '实时监测'
             "
           >
-            <template v-if="(deviceType.startsWith('fanlocal') || deviceType.startsWith('fanmain')) && activeKey == '1'">
+            <template v-if="(deviceType.startsWith('fanlocal') || deviceType.startsWith('fanmain')) && activeKey == 'monitor'">
               <GroupMonitorTable
                 ref="MonitorDataTable"
                 :dataSource="dataSource"
@@ -212,10 +212,10 @@
                 </template>
               </GroupMonitorTable>
             </template>
-            <template v-else-if="deviceType == 'majorpath' && activeKey == '1'">
+            <template v-else-if="deviceType == 'majorpath' && activeKey == 'monitor'">
               <a-table :columns="majorColumns" :data-source="dataSource" bordered :scroll="{ y: scroll.y - 30 }" :pagination="false"></a-table>
             </template>
-            <template v-else-if="deviceType.startsWith('safetymonitor') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('safetymonitor') && activeKey == 'monitor'">
               <MonitorTable
                 ref="monitorTable"
                 :columnsType="`${deviceType}_monitor`"
@@ -264,7 +264,7 @@
                 </template>
               </MonitorTable>
             </template>
-            <template v-else-if="deviceType.startsWith('location') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('location') && activeKey == 'monitor'">
               <MonitorTable
                 ref="monitorTable"
                 :columnsType="`${deviceType}_monitor`"
@@ -289,7 +289,7 @@
                 </template>
               </MonitorTable>
             </template>
-            <template v-else-if="deviceType.startsWith('vehicle') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('vehicle') && activeKey == 'monitor'">
               <MonitorTable
                 ref="monitorTable"
                 :columnsType="`${deviceType}_monitor`"
@@ -314,7 +314,7 @@
                 </template>
               </MonitorTable>
             </template>
-            <!-- <template v-else-if="deviceType.startsWith('gasmonitor') && activeKey == '1'">
+            <!-- <template v-else-if="deviceType.startsWith('gasmonitor') && activeKey == 'monitor'">
               <MonitorTable
                 ref="monitorTable"
                 :columnsType="`${deviceType}_monitor`"
@@ -356,41 +356,41 @@
               </MonitorTable>
             </template> -->
             <!-- 瓦斯人工巡检 -->
-            <template v-else-if="deviceType.startsWith('gasDay_normal') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('gasDay_normal') && activeKey == 'monitor'">
               <gaspatrolTable ref="gaspatrol" @getSearch="getSearch" @locate="goLocation"> </gaspatrolTable>
             </template>
             <!-- 瓦斯日报 -->
-            <template v-else-if="deviceType.startsWith('gasDayReport') && activeKey == '1' && glob.sysOrgCode != 'sdmtjtbetmk'">
+            <template v-else-if="deviceType.startsWith('gasDayReport') && activeKey == 'monitor' && glob.sysOrgCode != 'sdmtjtbetmk'">
               <gasReport ref="gasreport" @locate="goLocation"> </gasReport>
             </template>
-            <template v-else-if="deviceType.startsWith('gasDayReport') && activeKey == '1' && glob.sysOrgCode == 'sdmtjtbetmk'">
+            <template v-else-if="deviceType.startsWith('gasDayReport') && activeKey == 'monitor' && glob.sysOrgCode == 'sdmtjtbetmk'">
               <gasReportCount ref="gasreportcount" @locate="goLocation"> </gasReportCount>
             </template>
             <!-- 粉尘监测报表-->
-            <template v-else-if="deviceType.startsWith('dustDayReport') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('dustDayReport') && activeKey == 'monitor'">
               <dustMonitorTable @locate="goLocation" :isShowAction="true"></dustMonitorTable>
             </template>
-            <template v-else-if="deviceType.startsWith('bundleDayReport') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('bundleDayReport') && activeKey == 'monitor'">
               <bundleMonitorTable @locate="goLocation" :isShowAction="true"></bundleMonitorTable>
             </template>
-            <template v-else-if="deviceType.startsWith('bundleSpyDayReport') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('bundleSpyDayReport') && activeKey == 'monitor'">
               <bundleSpyMonitorTable @locate="goLocation" :isShowAction="true"></bundleSpyMonitorTable>
             </template>
-            <template v-else-if="deviceType.startsWith('dusting') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('dusting') && activeKey == 'monitor'">
               <DustingTable :dataSource="dataSource" :deviceType="deviceType" :scroll="scroll" @locate="goLocation" />
             </template>
             <!-- 设备分站 -->
-            <template v-else-if="deviceType.startsWith('substation_normal') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('substation_normal') && activeKey == 'monitor'">
               <stationTable ref="station" @locate="goLocation" @stationDetail="stationDetail"> </stationTable>
             </template>
             <!-- 瓦斯管网 -->
-            <template v-else-if="deviceType.startsWith('gaspipe') && activeKey == '1'">
+            <template v-else-if="deviceType.startsWith('gaspipe') && activeKey == 'monitor'">
               <GasPipeTable :showDetailButton="true" :scroll="scroll" @detail="goDetail($event)" @locate="goLocation" />
             </template>
             <template v-else>
               <!-- 工作面echarts图标 -->
               <BarAndLine
-                v-if="activeKey == '1' && deviceType == 'surface_history'"
+                v-if="activeKey == 'monitor' && deviceType == 'surface_history'"
                 class="echarts-line"
                 xAxisPropType="time"
                 :dataSource="surfaceEchartsData"
@@ -399,7 +399,7 @@
                 :option="echatsOption"
               />
               <MonitorTable
-                v-else-if="activeKey == '1'"
+                v-else-if="activeKey == 'monitor'"
                 ref="monitorTable"
                 :columnsType="`${deviceType}_monitor`"
                 :dataSource="dataSource"
@@ -541,8 +541,8 @@
               </MonitorTable>
             </template>
           </a-tab-pane>
-          <a-tab-pane key="2" tab="历史数据" v-if="!noHistoryArr().find((item) => deviceType.startsWith(item))">
-            <div class="tab-item" v-if="activeKey == '2'">
+          <a-tab-pane key="history" tab="历史数据" v-if="!noHistoryArr().find((item) => deviceType.startsWith(item))">
+            <div class="tab-item" v-if="activeKey == 'history'">
               <template v-if="deviceType.startsWith('firemon_normal')">
                 <HistoryBall :dataSource="dataSource"></HistoryBall>
               </template>
@@ -588,11 +588,15 @@
               />
             </div>
           </a-tab-pane>
-          <a-tab-pane key="3" tab="报警历史" v-if="!noWarningArr.find((item) => deviceType.startsWith(item)) || !hasPermission('safety:hideWarning')">
+          <a-tab-pane
+            key="alarm"
+            tab="报警历史"
+            v-if="!noWarningArr.find((item) => deviceType.startsWith(item)) || !hasPermission('safety:hideWarning')"
+          >
             <div class="tab-item">
               <AlarmHistoryTable
                 ref="alarmHistoryTable"
-                v-if="activeKey == '3'"
+                v-if="activeKey == 'alarm'"
                 :sysId="systemID"
                 columns-type="alarm"
                 :device-type="deviceType"
@@ -654,7 +658,7 @@
   import { TableAction } from '/@/components/Table';
   import { SvgIcon } from '/@/components/Icon';
   import { getActions } from '/@/qiankun/state';
-  import { useRouter } from 'vue-router';
+  import { useRouter, useRoute } from 'vue-router';
   import { setDivHeight } from '/@/utils/event';
   import { render } from '/@/utils/common/renderUtils';
   import {
@@ -680,7 +684,7 @@
   import { useMethods } from '/@/hooks/system/useMethods';
   import { useGo } from '/@/hooks/web/usePage';
   import { useGlobSetting } from '/@/hooks/setting';
-   import { usePermission } from '/@/hooks/web/usePermission';
+  import { usePermission } from '/@/hooks/web/usePermission';
 
   type DeviceType = { deviceType: string; deviceName: string; datalist: any[] };
   const glob = useGlobSetting();
@@ -695,7 +699,7 @@
     },
   });
 
-   const { hasPermission } = usePermission();
+  const { hasPermission } = usePermission();
   const { handleExportXls } = useMethods();
   const go = useGo();
   const echatsOption = {
@@ -711,6 +715,7 @@
     },
   };
   const router = useRouter();
+  const route = useRoute();
   const actions = getActions();
   const locationForm = reactive({
     strname: '',
@@ -738,7 +743,7 @@
   const locationList = ref([]); //巷道定位图标显示列表
   const deviceList = ref<DeviceType[]>([]); //关联设备列表
   const deviceActive = ref('');
-  const activeKey = ref('1'); // tab key
+  const activeKey = ref('monitor'); // tab key
   const dataSource = shallowRef([]); // 实时监测数据
   const majorPathEchartsData = ref({}); // 关键路线echarts数据
   const surfaceEchartsData = ref<any[]>(); // 工作面历史记录,echarts数据
@@ -804,6 +809,7 @@
 
   function tabChange(activeKeyVal) {
     activeKey.value = activeKeyVal;
+    router.push({ path: route.path, query: { ...route.query, tabtype: activeKey.value } });
   }
 
   function showTree(flag, value) {
@@ -1294,14 +1300,14 @@
     dataSource.value = [];
     deviceActive.value = deviceList.value[index].deviceType;
     if (deviceType.value != deviceActive.value) deviceType.value = deviceActive.value;
-    if (activeKey.value == '1' && monitorTable.value) {
+    if (activeKey.value == 'monitor' && monitorTable.value) {
       monitorTable.value.setLoading(true);
       dataSource.value = deviceList.value[index].datalist;
     }
-    if (activeKey.value == '2' && historyTable.value) {
+    if (activeKey.value == 'history' && historyTable.value) {
       historyTable.value.setLoading(true);
     }
-    if (activeKey.value == '3' && alarmHistoryTable.value) {
+    if (activeKey.value == 'alarm' && alarmHistoryTable.value) {
       alarmHistoryTable.value.setLoading(true);
     }
     if (activeKey.value == '4' && handlerHistoryTable.value) {
@@ -1366,6 +1372,7 @@
       locationList.value = await devPosition({});
     }
 
+    router.push({ path: route.path, query: { ...route.query, tabtype: activeKey.value } });
     // safetyOption.value = await safetyDeviceList(null, { devicetype: 'safetymonitor', code: 'dataTypeName' })
   });
 

+ 5 - 5
src/views/vent/monitorManager/gateMonitor/components/gateDualSVG.vue

@@ -6,9 +6,9 @@
     preserveAspectRatio="none"
     x="0px"
     y="0px"
-    width="1536px"
-    height="100%"
-    style="margin-left: calc(50% - 768px)"
+    width="1980px"
+    height="1080"
+    style="position: relative; left: -30px; top: -180px"
     viewBox="0 0 1920 1080"
   >
     <defs>
@@ -1255,12 +1255,12 @@
           <use xlink:href="#KongZhiGui1_0_Layer0_0_1_STROKES" />
         </g>
       </g>
-      <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) ">
+      <!-- <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) ">
         <g transform="matrix( 1, 0, 0, 1, 0,0) ">
           <use xlink:href="#Led_0_Layer0_0_FILL" />
           <use xlink:href="#Led_0_Layer0_0_1_STROKES" />
         </g>
-      </g>
+      </g> -->
       <g transform="matrix( 1, 0, 0, 1, -123.35,-61.2) ">
         <g transform="matrix( 1, 0, 0, 1, 0,0) ">
           <use xlink:href="#KongZhiGui1_0_Layer0_0_FILL" />

+ 3 - 3
src/views/vent/monitorManager/gateMonitor/components/gateSVG.vue

@@ -6,9 +6,9 @@
     preserveAspectRatio="none"
     x="0px"
     y="0px"
-    width="1536px"
-    height="100%"
-    style="margin-left: calc(50% - 768px)"
+    width="1980px"
+    height="1080"
+    style="position: relative; left: -20px; top: -150px"
     viewBox="0 0 1920 1080"
   >
     <defs>

+ 4 - 4
src/views/vent/monitorManager/gateMonitor/components/gateTripleSVG.vue

@@ -6,9 +6,9 @@
     preserveAspectRatio="none"
     x="0px"
     y="0px"
-    width="1536px"
-    height="100%"
-    style="margin-left: calc(50% - 768px)"
+    width="1980px"
+    height="1080"
+    style="position: relative; left: -20px; top: -150px"
     viewBox="0 0 1920 1080"
   >
     <defs>
@@ -1378,7 +1378,7 @@
           <use xlink:href="#KongZhiGui1_0_Layer0_0_1_STROKES" />
         </g>
       </g>
-      <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) ">
+      <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) " style="display: none">
         <g transform="matrix( 1, 0, 0, 1, 0,0) ">
           <use xlink:href="#Led_0_Layer0_0_FILL" />
           <use xlink:href="#Led_0_Layer0_0_1_STROKES" />

+ 2 - 1
src/views/vent/monitorManager/gateMonitor/gate.data.ts

@@ -326,7 +326,8 @@ export function getModelComponent(is2DModel: boolean = false, sysOrgCode?: strin
       //   双道风门
       //   return import('./components/gateDualSVG.vue');
       default:
-        return import('./components/gateTripleSVG.vue');
+        // return import('./components/gateTripleSVG.vue');
+        return import('./components/gateDualSVG.vue');
     }
   });
 }

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

@@ -51,6 +51,7 @@
               :isShowPagination="false"
               :isShowActionColumn="false"
               :is-show-select="false"
+              :form-config="deviceType == 'safetymonitor' && sysOrgCode != 'zjtzqctmk' ? formConfig : undefined"
               title="设备监测"
               :scroll="{ y: 650 }"
               :defSort="defSort"

+ 5 - 5
src/views/vent/monitorManager/windowMonitor/components/windowDualSVG.vue

@@ -6,9 +6,9 @@
     preserveAspectRatio="none"
     x="0px"
     y="0px"
-    width="1536px"
-    height="100%"
-    style="margin-left: calc(50% - 768px)"
+    width="1980px"
+    height="1080"
+    style="position: relative; left: -30px; top: -180px"
     viewBox="0 0 1920 1080"
   >
     <defs>
@@ -1073,12 +1073,12 @@
           <use xlink:href="#____0_Layer0_0_1_STROKES" />
         </g>
       </g>
-      <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) ">
+      <!-- <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) ">
         <g transform="matrix( 1, 0, 0, 1, 0,0) ">
           <use xlink:href="#Led_0_Layer0_0_FILL" />
           <use xlink:href="#Led_0_Layer0_0_1_STROKES" />
         </g>
-      </g>
+      </g> -->
       <g transform="matrix( 1, 0, 0, 1, -155.25,-67.45) ">
         <g transform="matrix( 1, 0, 0, 1, 0,0) ">
           <use xlink:href="#____0_Layer0_0_FILL_FL" />

+ 5 - 5
src/views/vent/monitorManager/windowMonitor/components/windowSVG.vue

@@ -6,9 +6,9 @@
     preserveAspectRatio="none"
     x="0px"
     y="0px"
-    width="1536px"
-    height="100%"
-    style="margin-left: calc(50% - 768px)"
+    width="1980px"
+    height="1080"
+    style="position: relative; left: -30px; top: -180px"
     viewBox="0 0 1920 1080"
   >
     <defs>
@@ -1013,12 +1013,12 @@
           <use xlink:href="#____0_Layer0_0_1_STROKES" />
         </g>
       </g>
-      <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) ">
+      <!-- <g transform="matrix( 1, 0, 0, 1, 613.65,31.8) ">
         <g transform="matrix( 1, 0, 0, 1, 0,0) ">
           <use xlink:href="#Led_0_Layer0_0_FILL" />
           <use xlink:href="#Led_0_Layer0_0_1_STROKES" />
         </g>
-      </g>
+      </g> -->
     </g>
     <g transform="matrix( 1, 0, 0, 1, 978.2,554.7) ">
       <g transform="matrix( 1, 0, 0, 1, 0,0) ">

+ 2 - 0
src/views/vent/monitorManager/windowMonitor/index.vue

@@ -33,6 +33,8 @@
           <div v-if="hasPermission('window:AreaControl')" class="button-box" @click="setArea(1)">设定风窗面积</div>
           <div v-if="hasPermission('window:showAngle')" class="button-box" @click="setAngle(1)">设定风窗角度</div>
           <div v-if="hasPermission('window:showAngleArea')" class="button-box" @click="setAngle(1)">设定风窗面积</div>
+          <div v-if="hasPermission('window:showAddArea')" class="button-box" @click="setControl('addSetValue', '增加面积设置')">增加面积</div>
+          <div v-if="hasPermission('window:showAddArea')" class="button-box" @click="setControl('deSetValue', '减少面积设置')">减少面积</div>
         </div>
         <div v-if="hasPermission('window:sameSet')" class="button-box" @click="setControl('sameSetValue', '风窗面积设置')">设定风窗面积</div>
         <div v-if="hasPermission('window:COTest')" class="button-box" @click="setControl('COTest', 'CO调控预测')">CO调控预测</div>

+ 105 - 107
src/views/vent/monitorManager/windowMonitor/window.threejs.ts

@@ -301,121 +301,119 @@ export const play = (rotationParam, flag) => {
 
 // 切换风窗类型
 export const setModelType = (type) => {
-  if (!model) return;
-  // if (!model || !model.scene) return;
-  windowType = type;
-  const windowConfigurations = {
-    sdFc1: {
-      render: sdFc1 ? () => sdFc1.render() : null,
-      group: sdFc1 ? sdFc1.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    ddFc5: {
-      render: ddFc5 ? () => ddFc5.render() : null,
-      group: ddFc5 ? ddFc5.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    ddFc6: {
-      render: ddFc6 ? () => ddFc6.render() : null,
-      group: ddFc6 ? ddFc6.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    ddFc7: {
-      render: ddFc7 ? () => ddFc7.render() : null,
-      group: ddFc7 ? ddFc7.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    ddFc8: {
-      render: ddFc8 ? () => ddFc8.render() : null,
-      group: ddFc8 ? ddFc8.group : null,
-      newP: { x: 32.78, y: 64.88, z: 106.78 },
-      newT: { x: -6.12, y: 13.27, z: -4.64 },
-    },
-    ddFc1: {
-      render: ddFc1 ? () => ddFc1.render() : null,
-      group: ddFc1 ? ddFc1.group : null,
-      newP: { x: 34.294433107431956, y: 19.284123769585108, z: 47.717286013509835 },
-      newT: { x: 12.311816240141978, y: -5.691930035759495, z: -5.57302688985693 },
-    },
-    ddFc2: {
-      render: ddFc2 ? () => ddFc2.render() : null,
-      group: ddFc2 ? ddFc2.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    ddFc4: {
-      render: ddFc4 ? () => ddFc4.render() : null,
-      group: ddFc4 ? ddFc4.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    sdFc3: {
-      render: sdFc3 ? () => sdFc3.render() : null,
-      group: sdFc3 ? sdFc3.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    sdFc4: {
-      render: sdFc4 ? () => sdFc4.render() : null,
-      group: sdFc4 ? sdFc4.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    sdFc2: {
-      render: sdFc2 ? () => sdFc2.render() : null,
-      group: sdFc2 ? sdFc2.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: 0, y: 0, z: 0 },
-    },
-    sdFc5: {
-      render: sdFc5 ? () => sdFc5.render() : null,
-      group: sdFc5 ? sdFc5.group : null,
-      newP: { x: 34.294433107431956, y: 19.284123769585108, z: 47.717286013509835 },
-      newT: { x: 12.311816240141978, y: -5.691930035759495, z: -5.57302688985693 },
-    },
-    threeFc8: {
-      render: threeFc8 ? () => threeFc8.render() : null,
-      group: threeFc8 ? threeFc8.group : null,
-      newP: { x: 70.79925059068043, y: 61.89235869996884, z: 107.07997293517579 },
-      newT: { x: 15.353809053159333, y: 8.712511207091119, z: -13.223119892513122 },
-    },
-    singleXkWindow: {
-      render: singleWindowXkObj ? () => singleWindowXkObj.render() : null,
-      group: singleWindowXkObj ? singleWindowXkObj.group : null,
-      newP: { x: 116.08531358656566, y: 81.45510733175816, z: 193.00752046594465 },
-      newT: { x: 23.446366480086372, y: -12.335134633777185, z: -5.63294282643405 },
-    },
-    sdFcZhq: {
-      render: sdFcZhq ? () => sdFcZhq.render() : null,
-      group: sdFcZhq ? sdFcZhq.group : null,
-      newP: { x: 66.257, y: 57.539, z: 94.313 },
-      newT: { x: -2.28, y: -0.91, z: -5.68 },
-    },
-  };
-  const oldCameraPosition = { x: 100, y: 0, z: 10 };
-  model.scene?.remove(group);
-  function handleWindowType(windowType: string, model: any) {
+  return new Promise((resolve) => {
+    if (!model) resolve(null);
+    windowType = type;
+    const windowConfigurations = {
+      sdFc1: {
+        render: sdFc1 ? () => sdFc1.render() : null,
+        group: sdFc1 ? sdFc1.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      ddFc5: {
+        render: ddFc5 ? () => ddFc5.render() : null,
+        group: ddFc5 ? ddFc5.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      ddFc6: {
+        render: ddFc6 ? () => ddFc6.render() : null,
+        group: ddFc6 ? ddFc6.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      ddFc7: {
+        render: ddFc7 ? () => ddFc7.render() : null,
+        group: ddFc7 ? ddFc7.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      ddFc8: {
+        render: ddFc8 ? () => ddFc8.render() : null,
+        group: ddFc8 ? ddFc8.group : null,
+        newP: { x: 32.78, y: 64.88, z: 106.78 },
+        newT: { x: -6.12, y: 13.27, z: -4.64 },
+      },
+      ddFc1: {
+        render: ddFc1 ? () => ddFc1.render() : null,
+        group: ddFc1 ? ddFc1.group : null,
+        newP: { x: 34.294433107431956, y: 19.284123769585108, z: 47.717286013509835 },
+        newT: { x: 12.311816240141978, y: -5.691930035759495, z: -5.57302688985693 },
+      },
+      ddFc2: {
+        render: ddFc2 ? () => ddFc2.render() : null,
+        group: ddFc2 ? ddFc2.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      ddFc4: {
+        render: ddFc4 ? () => ddFc4.render() : null,
+        group: ddFc4 ? ddFc4.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      sdFc3: {
+        render: sdFc3 ? () => sdFc3.render() : null,
+        group: sdFc3 ? sdFc3.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      sdFc4: {
+        render: sdFc4 ? () => sdFc4.render() : null,
+        group: sdFc4 ? sdFc4.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      sdFc2: {
+        render: sdFc2 ? () => sdFc2.render() : null,
+        group: sdFc2 ? sdFc2.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: 0, y: 0, z: 0 },
+      },
+      sdFc5: {
+        render: sdFc5 ? () => sdFc5.render() : null,
+        group: sdFc5 ? sdFc5.group : null,
+        newP: { x: 34.294433107431956, y: 19.284123769585108, z: 47.717286013509835 },
+        newT: { x: 12.311816240141978, y: -5.691930035759495, z: -5.57302688985693 },
+      },
+      threeFc8: {
+        render: threeFc8 ? () => threeFc8.render() : null,
+        group: threeFc8 ? threeFc8.group : null,
+        newP: { x: 70.79925059068043, y: 61.89235869996884, z: 107.07997293517579 },
+        newT: { x: 15.353809053159333, y: 8.712511207091119, z: -13.223119892513122 },
+      },
+      singleXkWindow: {
+        render: singleWindowXkObj ? () => singleWindowXkObj.render() : null,
+        group: singleWindowXkObj ? singleWindowXkObj.group : null,
+        newP: { x: 116.08531358656566, y: 81.45510733175816, z: 193.00752046594465 },
+        newT: { x: 23.446366480086372, y: -12.335134633777185, z: -5.63294282643405 },
+      },
+      sdFcZhq: {
+        render: sdFcZhq ? () => sdFcZhq.render() : null,
+        group: sdFcZhq ? sdFcZhq.group : null,
+        newP: { x: 66.257, y: 57.539, z: 94.313 },
+        newT: { x: -2.28, y: -0.91, z: -5.68 },
+      },
+    };
+    const oldCameraPosition = { x: 100, y: 0, z: 10 };
+    model.scene?.remove(group);
     const config = windowConfigurations[windowType];
 
     if (config && config.group) {
       model.startAnimation = config.render;
       group = config.group;
-      return new Promise((resolve) => {
-        setTimeout(async () => {
-          await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, config.newP, config.newT, model);
-          model.scene?.add(config.group);
-          resolve(null);
-        }, 1000);
-      });
+
+      setTimeout(async () => {
+        await animateCamera(oldCameraPosition, { x: 0, y: 0, z: 0 }, config.newP, config.newT, model);
+        model.scene?.add(config.group);
+        resolve(null);
+      }, 1000);
     } else {
+      resolve(null);
       throw new Error(`Unsupported windowType: ${windowType}`);
     }
-  }
-  return handleWindowType(windowType, model);
+  });
 };
 
 export const mountedThree = () => {