فهرست منبع

Merge branch 'master' of http://192.168.0.115:3000/bill/fuse-code

xzw 3 سال پیش
والد
کامیت
394e1c235c
4فایلهای تغییر یافته به همراه45 افزوده شده و 6 حذف شده
  1. 0 1
      src/api/view.ts
  2. 1 0
      src/env/index.ts
  3. 5 1
      src/sdk/association.ts
  4. 39 4
      src/views/sign-model/index.vue

+ 0 - 1
src/api/view.ts

@@ -50,7 +50,6 @@ export const fetchViews = async () => {
 }
 
 export const postAddView = async (view: View) => {
-  console.log(view, { ...toService(view, false), caseId: params.caseId })
   const serviceView = await axios.post<ServiceView>(INSERT_VIEW, { ...toService(view, false), caseId: params.caseId })
   return toLocal(serviceView)
 }

+ 1 - 0
src/env/index.ts

@@ -43,6 +43,7 @@ params.caseId = Number(params.caseId)
 export type Params = { 
   caseId: number,
   baseURL?: string,
+  modelId?: string,
   token?: string
 }
 

+ 5 - 1
src/sdk/association.ts

@@ -70,6 +70,7 @@ const associationModels = (sdk: SDK) => {
         continue;
       }
 
+      console.error('added', item)
       const itemRaw = toRaw(item)
       const sceneModel = sdk.addModel({
         ...itemRaw,
@@ -166,7 +167,10 @@ const associationModels = (sdk: SDK) => {
           )
           watch(
             () => modelShow.value, 
-            () => isUnSet || getSceneModel(item)?.changeShow(modelShow.value), 
+            () => {
+              console.error(item, modelShow.value)
+              isUnSet || getSceneModel(item)?.changeShow(modelShow.value)
+            }, 
             { immediate: true }
           )
 

+ 39 - 4
src/views/sign-model/index.vue

@@ -3,11 +3,46 @@
 </template>
 
 <script setup lang="ts">
-import { loadModel, fuseModel } from '@/model'
-import { getScene, initialScenes } from '@/store'
+import { ref } from 'vue'
+import { loadModel, fuseModel as FModel } from '@/model'
+import { initialScenes, createFuseModels, fuseModels, scenes } from '@/store'
+import { params, showModelsMapStack } from '@/env'
+import { Dialog } from 'bill/index'
+import { useViewStack, useActive } from '@/hook';
+import { sdk } from '@/sdk'
 
+const active = useActive()
+let pop: () => void
+const loadSignModel = async () => {
+  await initialScenes()
+  const scene = params.modelId && scenes.value.find(scene => scene.modelId === Number(params.modelId))
+  if (!scene) {
+    return Dialog.alert(`模型不存在!`)
+  }
+  if (active.value) {
+    const fuseModel = createFuseModels({
+      modelId: scene.modelId,
+      show: true,
+      url: scene.modelGlbUrl || scene.modelObjUrl,
+      type: scene.type
+    })
+    fuseModels.value.push(fuseModel)
 
-initialScenes()
-  .then(() => getScene)
+    await loadModel(FModel)
+    pop = showModelsMapStack.push(ref(new Map([[fuseModel, true]])))
+    ;(window as any).__sdk = sdk
+  }
+}
 
+
+useViewStack(() => {
+  const bcModels = fuseModels.value
+  fuseModels.value = []
+
+  loadSignModel()
+  return () => {
+    fuseModels.value = bcModels
+    pop && pop()
+  }
+})
 </script>