diff --git a/src/config.ts b/src/config.ts index e3838b9..0c8fb1e 100644 --- a/src/config.ts +++ b/src/config.ts @@ -42,7 +42,7 @@ function globalConfig() { const { data: { message, validMessageList } } = response; if (validMessageList) { err.message = "请求参数校验失败"; - } else if (message) { + } else { err.message = message ?? Constant.defHttpErrorMsg[response.status] ?? "服务器异常"; } } diff --git a/src/core/manager/WorldModel.ts b/src/core/manager/WorldModel.ts index 9576343..07bf596 100644 --- a/src/core/manager/WorldModel.ts +++ b/src/core/manager/WorldModel.ts @@ -1,5 +1,6 @@ -import _, { cloneDeep } from 'lodash' -import { reactive, watch } from 'vue' +import _ from 'lodash' +import { reactive } from 'vue' +import { Request } from "@ease-forge/shared"; import EventBus from '@/runtime/EventBus' import StateManager from '@/core/manager/StateManager.ts' import { getQueryParams, setQueryParam } from '@/utils/webutils.ts' @@ -187,6 +188,22 @@ export default class WorldModel { * 从服务器获取当前目录楼层的所有数据 */ async getCatalogData(catalogCode: string): Promise { + if(true) { + const res = await Request.request.get("/api/workbench/LccModelManager@getFloor", { params: {catalogCode,project_uuid:this.state.project_uuid} }); + let items :Array=[]; + if(res?.items) items = JSON.parse(res.items) ?? []; + const vdata: any = { + items: items as ItemJson[], + infos: {catalogCode, t: "floor" }, + isChanged: false, + catalog: _.cloneDeep(this.state.catalog), + server: this.state.server, + project_uuid: this.state.project_uuid, + catalogCode: catalogCode, + worldData: _.cloneDeep(this.state.worldData) + } + return Promise.resolve(vdata) + } const _____veryBigItemsData: any = await localforage.getItem('_____veryBigItemsData') if (!_____veryBigItemsData) { return Promise.reject('楼层数据未加载, catalogCode=' + catalogCode) @@ -200,7 +217,7 @@ export default class WorldModel { const items = _.cloneDeep(floor.items) delete floor.items - + console.log("floor", floor); const vdata: VData = { items: items as ItemJson[], infos: floor, diff --git a/src/editor/CatalogDefine.vue b/src/editor/CatalogDefine.vue index a0dc1e5..150adf8 100644 --- a/src/editor/CatalogDefine.vue +++ b/src/editor/CatalogDefine.vue @@ -3,7 +3,7 @@ import { computed, createVNode, reactive, useTemplateRef } from "vue"; import { ElButton, ElSpace, ElTree } from "element-plus"; import YvSrcEditor from "@/components/YvSrcEditor.vue"; import DataForm from "@/components/data-form/DataForm.vue"; -import {worldModel} from '@/core/manager/WorldModel.ts' +import { worldModel } from '@/core/manager/WorldModel.ts' import lodash from "lodash"; defineOptions({ @@ -42,7 +42,7 @@ const data: CatalogDefineData = {}; const tree = useTemplateRef>("treeRef"); const catalog = computed>(() => { // state.forceUpdateForCatalog; - return worldModel.value?.state?.catalog; + return worldModel?.state?.catalog; }); const catalogTree = computed(() => { const array = catalog.value; diff --git a/src/editor/menus/FileMenu.ts b/src/editor/menus/FileMenu.ts index 5f106fd..5789b72 100644 --- a/src/editor/menus/FileMenu.ts +++ b/src/editor/menus/FileMenu.ts @@ -60,7 +60,7 @@ export default defineMenu((menus) => { [ { name: 'open', label: '打开', icon: SvgCode.open, order: 1, tip: 'Ctrl+O', - click: async () => { + click2: async () => { worldModel.state.isOpened = false worldModel.state.isDraft = false worldModel.state.catalog = [] @@ -80,7 +80,7 @@ export default defineMenu((menus) => { system.clearLoading() } }, - click2: async () => { + click: async () => { let dialog: any = null system.showDialog(createVNode(OpenProject, { onCancel: () => dialog?.onClose(), @@ -88,7 +88,7 @@ export default defineMenu((menus) => { dialog?.onClose() const veryBigData = JSON.parse(row.otherData) veryBigData.catalog = JSON.parse(row.directoryData) - veryBigData.items = [] + if(!veryBigData.items) veryBigData.items = [] worldModel.state.isOpened = false worldModel.state.isDraft = false worldModel.state.catalog = [] @@ -126,7 +126,12 @@ export default defineMenu((menus) => { click: async () => { const viewport: Viewport = window['viewport'] const vdata: any = await viewport.stateManager.save() - console.log(system.json5.stringify(vdata.items)) + console.log(system.json5.stringify(vdata.items)); + await Request.request.post("/api/workbench/LccModelManager@addOrUpdateFloor", { + projectUuid: worldModel.state.project_uuid, + catalogCode: worldModel.state.catalogCode, + items: JSON.stringify(vdata.items), + }); } }, {