浏览代码

添加是否动态加载标识符

bill 2 年之前
父节点
当前提交
36fdad2928
共有 4 个文件被更改,包括 17 次插入7 次删除
  1. 3 2
      src/sdk/association.ts
  2. 1 1
      src/sdk/cover/index.js
  3. 1 1
      src/sdk/sdk.ts
  4. 12 3
      src/store/fuse-model.ts

+ 3 - 2
src/sdk/association.ts

@@ -18,6 +18,7 @@ import {
   togetherCallback
 } from '@/utils'
 import { 
+  dynamicAddedModelIds,
   fuseModels, 
   taggings, 
   isEdit, 
@@ -27,8 +28,7 @@ import {
   MeasureType,
   measures,
   fuseModelsLoaded,
-  getMeasureIsShow,
-  unSetModelUpdate
+  getMeasureIsShow
 } from '@/store'
 
 import TaggingComponent from '@/components/tagging/list.vue'
@@ -86,6 +86,7 @@ const associationModels = (sdk: SDK) => {
         sceneModel = sdk.addModel({
           ...itemRaw,
           ...modelRange,
+          isDynamicAdded: dynamicAddedModelIds.value.some(id => itemRaw.id === id),
           type: item.type === SceneType.SWSS ? 'laser' : item.modelType,
           url: item.type === SceneType.SWSS ? item.url : getResource(item.url)
         })

+ 1 - 1
src/sdk/cover/index.js

@@ -472,7 +472,7 @@ export const enter = (dom, isLocal) => {
         //scaleRange: { min, max }, opacityRange: { min, max }, bottomRange: { min, max } })
         
         addModel(props){ 
-            
+            console.log(props.isDynamicAdded)
             let bus = mitt()  
             //console.log('addModel',props)
             props.isFirstLoad = isLocal && props.bottom == void 0  //离地高度去掉了这怎么办 // //在编辑时用户添加的

+ 1 - 1
src/sdk/sdk.ts

@@ -49,7 +49,7 @@ export type ModelAttrRange = {
 
 export type AddModelProps = Pick<FuseModel, 'url' | 'id'> 
   & FuseModelAttrs 
-  & { type: string }
+  & { type: string, isDynamicAdded: boolean }
   & ModelAttrRange
 
 

+ 12 - 3
src/store/fuse-model.ts

@@ -26,6 +26,8 @@ export type FuseModels = FuseModel[]
 export type { FuseModelAttrs } from '@/api'
 
 export const fuseModels = ref<FuseModels>([])
+export const dynamicAddedModelIds = ref<FuseModel['id'][]>([])
+
 export const defaultFuseModelAttrs: FuseModelAttrs = {
   show: true,
   scale: 100,
@@ -126,14 +128,21 @@ export const recoverFuseModels = () => {
 }
 
 export const updateFuseModel = updateStoreItem(fuseModels, postUpdateFuseModels)
-export const deleteFuseModel = deleteStoreItem(fuseModels, postDeleteFuseModel)
+export const deleteFuseModel = deleteStoreItem(fuseModels, async (model) => {
+  await postDeleteFuseModel(model)
+  const index = dynamicAddedModelIds.value.indexOf(model.id)
+  ~index && dynamicAddedModelIds.value.splice(index, 1)
+})
+
 export const addFuseModel = async (model: FuseModel) => {
   const addModel = reactive(serviceToLocal(await postAddFuseModel(model)))
   initFuseModel(addModel)
-  unSetModelUpdate(() => fuseModels.value.push(addModel))
+  unSetModelUpdate(() => {
+    fuseModels.value.push(addModel)
+    dynamicAddedModelIds.value.push(addModel.id)
+  })
 }
 
-
 export const initialFuseModels = fetchStoreItems(
   fuseModels, 
   fetchFuseModels,