Procházet zdrojové kódy

修改删除 恢复后模型不显示bug

bill před 3 roky
rodič
revize
ba7805ba32
2 změnil soubory, kde provedl 11 přidání a 2 odebrání
  1. 4 1
      src/sdk/association.ts
  2. 7 1
      src/store/fuse-model.ts

+ 4 - 1
src/sdk/association.ts

@@ -73,6 +73,7 @@ const associationModels = (sdk: SDK) => {
       }
 
       const itemRaw = toRaw(item)
+      console.error('loaded')
       const sceneModel = sdk.addModel({
         ...itemRaw,
         ...modelRange,
@@ -143,6 +144,7 @@ const associationModels = (sdk: SDK) => {
       sceneModel.bus.on('loadProgress', progress => item.progress = progress)
     }
     for (const item of deleted) {
+      console.error('remove')
       getSceneModel(item)?.destroy()
     }
   })
@@ -196,7 +198,8 @@ const associationModels = (sdk: SDK) => {
 
           stopLoadedWatch()
         }
-      }
+      },
+      // { immediate: true }
     )
   })
 }

+ 7 - 1
src/store/fuse-model.ts

@@ -105,7 +105,13 @@ const initFuseModel = (model: FuseModel) => {
   custom.showModelsMap.set(model, model.show)
 }
 
-export const recoverFuseModels = recoverStoreItems(fuseModels, getBackupFuseModels)
+export const recoverFuseModels = () => {
+  const backupItems = getBackupFuseModels()
+  fuseModels.value = backupItems.map(oldItem => {
+    const model = fuseModels.value.find(item => item.id === oldItem.id)
+    return model ? Object.assign(model, oldItem) : serviceToLocal(oldItem)
+  })
+}
 
 export const updateFuseModel = updateStoreItem(fuseModels, postUpdateFuseModels)
 export const deleteFuseModel = deleteStoreItem(fuseModels, postDeleteFuseModel)