bill 1 рік тому
батько
коміт
5950423b75
3 змінених файлів з 75 додано та 47 видалено
  1. 5 1
      src/model/platform.ts
  2. 2 2
      src/views/fire/index.vue
  3. 68 44
      src/views/sign-model/index.vue

+ 5 - 1
src/model/platform.ts

@@ -150,7 +150,11 @@ export async function exposeFactory(type: ModelType, win?: any): Promise<ModelEx
   platforms[SceneType.SWYDSS] = platforms[SceneType.SWSS]
   platforms[SceneType.SWYDMX] = platforms[SceneType.SWSSMX] = platforms[SceneType.SWKJ] = platforms[SceneType.SWKK]
   platforms[SceneType.SWMX] = {
-    getSDK: async () => findObjectAttr(win , '__sdk'),
+    getSDK: async () => {
+      const sdk = await findObjectAttr(win , '__sdk')
+      // await new Promise(resolve => setTimeout(resolve, 2000))
+      return sdk
+    },
     expose: platforms[fuseModel].expose
   }
 

+ 2 - 2
src/views/fire/index.vue

@@ -40,7 +40,7 @@
         {{ caseProject.tmProject.organizerUsers }}
       </p> -->
       <p>
-        <span>勘验人单位、职务:</span>
+        <span>勘验人勘验人职务:</span>
         {{ caseProject.tmProject.field4 }}
       </p>
 
@@ -66,7 +66,7 @@
         {{ caseProject.tmProject.accidentDate }}
       </p>
       <p>
-        <span>勘验日期:</span>
+        <span>勘验起止时间:</span>
         {{ caseProject.tmProject.field8 }}
       </p>
       <p>

+ 68 - 44
src/views/sign-model/index.vue

@@ -1,66 +1,90 @@
-<template>
-
-</template>
+<template></template>
 
 <script setup lang="ts">
-import {computed, ref} from 'vue'
-import { loadModel, fuseModel as FModel } from '@/model'
-import { fetchScene, fetchScenesAll, Scene, SceneType } from '@/api'
-import { createFuseModels, defTitle, fuseModels, SceneStatus } from '@/store'
-import {custom, params, showModelsMapStack, showRightPanoStack, viewModeStack} from '@/env'
-import { Dialog } from 'bill/index'
-import { useViewStack, useActive } from '@/hook';
-import { sdk } from '@/sdk'
+import { computed, ref, watchEffect } from "vue";
+import { loadModel, fuseModel as FModel } from "@/model";
+import { fetchScene, fetchScenesAll, Scene, SceneType } from "@/api";
+import {
+  createFuseModels,
+  defTitle,
+  fuseModels,
+  fuseModelsLoaded,
+  SceneStatus,
+} from "@/store";
+import {
+  custom,
+  params,
+  showModelsMapStack,
+  showRightPanoStack,
+  viewModeStack,
+} from "@/env";
+import { Dialog } from "bill/index";
+import { useViewStack, useActive } from "@/hook";
+import { sdk } from "@/sdk";
 
-const active = useActive()
-let pop: () => void
+const active = useActive();
+let pop: () => void;
 const loadSignModel = async () => {
-  showRightPanoStack.push(ref(false))
-  viewModeStack.push(ref('full'))
-  let scene: Scene | undefined
-  if ('modelId' in params) {
-    const mscene = await fetchScene(Number(params.modelId))
+  showRightPanoStack.push(ref(false));
+  viewModeStack.push(ref("full"));
+  let scene: Scene | undefined;
+  if ("modelId" in params) {
+    const mscene = await fetchScene(Number(params.modelId));
     if (mscene.status !== SceneStatus.SUCCESS) {
-      scene = mscene
+      scene = mscene;
     }
-  } else if ('m' in params) {
-    const SSscenes = await fetchScenesAll({ numList: [params.m!], type: SceneType.SWSSMX })
-    const YDscenes = await fetchScenesAll({ numList: [params.m!], type: SceneType.SWYDMX })
-    const scenes = [...SSscenes, ...YDscenes]
-    scene = scenes.find(scene => scene.num === params.m)
-    console.log(scene)
-  } 
+  } else if ("m" in params) {
+    const SSscenes = await fetchScenesAll({
+      numList: [params.m!],
+      type: SceneType.SWSSMX,
+    });
+    const YDscenes = await fetchScenesAll({
+      numList: [params.m!],
+      type: SceneType.SWYDMX,
+    });
+    const scenes = [...SSscenes, ...YDscenes];
+    scene = scenes.find((scene) => scene.num === params.m);
+    console.log(scene);
+  }
 
   if (!scene) {
-    return Dialog.alert(`模型不存在!`)
+    return Dialog.alert(`模型不存在!`);
   }
   if (active.value) {
-    defTitle.value = scene.title || scene.modelTitle
-    
+    defTitle.value = scene.title || scene.modelTitle;
+
     const fuseModel = createFuseModels({
       modelId: scene.modelId,
       show: true,
       url: scene.modelGlbUrl || scene.modelObjUrl,
       type: scene.type,
       opacity: 100,
-      modelType: scene.modelDateType
-    })
-    fuseModels.value.push(fuseModel)
+      modelType: scene.modelDateType,
+    });
+    fuseModels.value.push(fuseModel);
 
-    await loadModel(FModel)
-    pop = showModelsMapStack.push(ref(new Map([[fuseModel, true]])))
-    ;(window as any).__sdk = sdk
+    await loadModel(FModel);
+    pop = showModelsMapStack.push(ref(new Map([[fuseModel, true]])));
+    await new Promise<void>((resolve) => {
+      const stop = watchEffect(() => {
+        if (fuseModelsLoaded.value) {
+          resolve();
+          setTimeout(() => stop());
+        }
+      });
+    });
+    (window as any).__sdk = sdk;
   }
-}
+};
 
 useViewStack(() => {
-  const bcModels = fuseModels.value
-  fuseModels.value = []
+  const bcModels = fuseModels.value;
+  fuseModels.value = [];
 
-  loadSignModel()
+  loadSignModel();
   return () => {
-    fuseModels.value = bcModels
-    pop && pop()
-  }
-})
-</script>
+    fuseModels.value = bcModels;
+    pop && pop();
+  };
+});
+</script>