Browse Source

保存草稿

master
修宁 7 months ago
parent
commit
67930f832a
  1. 30
      src/core/engine/Viewport.ts
  2. 6
      src/core/manager/StateManager.ts
  3. 1
      src/editor/Model2DEditor.vue

30
src/core/engine/Viewport.ts

@ -186,19 +186,25 @@ export default class Viewport {
itemType.clazz.afterAddViewport(this) itemType.clazz.afterAddViewport(this)
}) })
try { // 尝试从草稿中恢复
const vdata = await this.worldModel.getCatalogData(this.scene.catalogCode) const tryGetFromLocal = false // await this.stateManager.tryLoadFromLocalstore()
if (!vdata) {
return if (!tryGetFromLocal) {
} // 没有草稿,就找服务器捞数据
if (!vdata.catalog) { try {
vdata.catalog = toRaw(this.worldModel.state.catalog) const vdata = await this.worldModel.getCatalogData(this.scene.catalogCode)
} if (!vdata) {
await this.stateManager.load(vdata) return
EventBus.dispatch('dataLoadComplete', {}) }
if (!vdata.catalog) {
vdata.catalog = toRaw(this.worldModel.state.catalog)
}
await this.stateManager.load(vdata)
EventBus.dispatch('dataLoadComplete', {})
} finally { } finally {
this.state.isReady = true this.state.isReady = true
}
} }
} }

6
src/core/manager/StateManager.ts

@ -445,7 +445,7 @@ export default class StateManager {
/** /**
* *
*/ */
async loadFromLocalstore() { async tryLoadFromLocalstore(): Promise<boolean> {
try { try {
this.isLoading.value = true this.isLoading.value = true
const saved: VData = await localforage.getItem(this.storeKey) const saved: VData = await localforage.getItem(this.storeKey)
@ -458,10 +458,14 @@ export default class StateManager {
this.fullSync() // 同步到视口 this.fullSync() // 同步到视口
console.log('[StateManager] 从本地存储恢复', this.vdata.items.length, '个对象') console.log('[StateManager] 从本地存储恢复', this.vdata.items.length, '个对象')
this.pendingChanges = false this.pendingChanges = false
return true
} }
return false
} catch (error) { } catch (error) {
console.error('[StateManager] 从本地存储加载失败:', error) console.error('[StateManager] 从本地存储加载失败:', error)
return false
} finally { } finally {
this.isLoading.value = false this.isLoading.value = false

1
src/editor/Model2DEditor.vue

@ -166,6 +166,7 @@ export default defineComponent({
window['renderer'] = viewport.renderer window['renderer'] = viewport.renderer
window['controls'] = viewport.controls window['controls'] = viewport.controls
//@ts-ignore
viewerDom.focus() viewerDom.focus()
// //

Loading…
Cancel
Save