bill пре 1 година
родитељ
комит
f4a3807647
4 измењених фајлова са 66 додато и 47 уклоњено
  1. 1 1
      src/api/fuse-model.ts
  2. 9 1
      src/sdk/association.ts
  3. 55 44
      src/views/sign-model/index.vue
  4. 1 1
      vite.config.ts

+ 1 - 1
src/api/fuse-model.ts

@@ -84,7 +84,7 @@ export type FuseModels = FuseModel[]
 
 export const fetchFuseModels = async () => {
   const serviceModels = await axios.get<ServiceFuseModel[]>(FUSE_MODEL_LIST, { params: { caseId: params.caseId } })
-  console.error(serviceModels.map((item, index) => serviceToLocal(item, index == 0)))
+  console.error('=====>', serviceModels.map((item, index) => serviceToLocal(item, index == 0)))
   return serviceModels.map((item, index) => serviceToLocal(item, index == 0))
 } 
 

+ 9 - 1
src/sdk/association.ts

@@ -84,7 +84,7 @@ const associationModels = (sdk: SDK) => {
       const itemRaw = toRaw(item)
       let sceneModel: SceneModel
       try {
-        sceneModel = sdk.addModel({
+        console.error('===>add', {
           ...itemRaw,
           ...modelRange,
           mode: RoutesName.signModel === currentLayout.value! ? 'single' : 'many',
@@ -92,6 +92,14 @@ const associationModels = (sdk: SDK) => {
           type: [SceneType.SWSS, SceneType.SWYDSS].includes(item.type) ? 'laser' : item.modelType,
           url: [SceneType.SWSS, SceneType.SWYDSS].includes(item.type) ? item.url : item.url && getResource(item.url)
         })
+        sceneModel = sdk.addModel({
+          ...itemRaw,
+          ...modelRange,
+          mode: RoutesName.signModel === currentLayout.value! ? 'single' : 'many',
+          isDynamicAdded: dynamicAddedModelIds.value.some(id => itemRaw.id === id),
+          type: [SceneType.SWSS, SceneType.SWYDSS].includes(item.type) ? 'laser' : item.modelType,
+          url: [SceneType.SWSS, SceneType.SWYDSS].includes(item.type) ? item.url : item.url && item.url
+        })
       } catch(e) {
         console.error('模型加载失败', e)
         item.error = true

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

@@ -1,66 +1,77 @@
-<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 } 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";
 
-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
+    console.error("===>", fuseModels.value);
+    await loadModel(FModel);
+    pop = showModelsMapStack.push(ref(new Map([[fuseModel, true]])));
+    (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>

+ 1 - 1
vite.config.ts

@@ -12,7 +12,7 @@ const proxy = {
     rewrite: path => path.replace(/^\/local/, '')
   },
   '/fusion': {
-    target: config.dev ? 'https://test-mix3d.4dkankan.com' : 'https://mix3d.4dkankan.com',
+    target: config.dev ? 'http://192.168.50.101:14000/' : 'https://mix3d.4dkankan.com',
     changeOrigin: true,
     rewrite: path => path.replace(/^\/api/, '')
   },