From 51737d964d84e526b007c94bf56ef918af394932 Mon Sep 17 00:00:00 2001 From: gene9831 Date: Fri, 24 Jan 2025 11:29:47 +0800 Subject: [PATCH 1/3] fix: parent form field in page settings do not display --- packages/plugins/page/src/PageGeneral.vue | 17 ++++++++++++++--- packages/plugins/page/src/composable/usePage.js | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/plugins/page/src/PageGeneral.vue b/packages/plugins/page/src/PageGeneral.vue index 252da0623..b8a68069c 100644 --- a/packages/plugins/page/src/PageGeneral.vue +++ b/packages/plugins/page/src/PageGeneral.vue @@ -32,7 +32,7 @@ prop="parentId" > { oldParentId.value = pageSettingState.oldParentId @@ -102,7 +112,7 @@ export default { const currentRoute = computed(() => { let route = pageSettingState.currentPageData.route || '' - let parentId = pageSettingState.currentPageData.parentId + let parentId = pageParentId while (parentId !== ROOT_ID) { const parent = pageSettingState.treeDataMapping[parentId] @@ -233,6 +243,7 @@ export default { pageRules, folderRules, pageSettingState, + pageParentId, generalForm, validGeneralForm, treeFolderOp, diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index 3463548cd..c31edb4e8 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -152,7 +152,7 @@ const isCurrentDataSame = () => { } const changeTreeData = (newParentId, oldParentId) => { - if (newParentId && oldParentId && newParentId !== oldParentId) { + if (newParentId && oldParentId && String(newParentId) !== String(oldParentId)) { const folderData = pageSettingState.treeDataMapping[newParentId] const parentData = pageSettingState.treeDataMapping[oldParentId] const currentPageDataId = pageSettingState.currentPageData.id From ba62f9f159bc19d3215db9360c2c9558b90d3c72 Mon Sep 17 00:00:00 2001 From: gene9831 Date: Fri, 24 Jan 2025 15:21:02 +0800 Subject: [PATCH 2/3] fix: page node disappear when setting parent to root --- packages/plugins/page/src/composable/usePage.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index c31edb4e8..850842243 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -75,6 +75,9 @@ const isTemporaryPage = reactive({ saved: false }) +const STATIC_PAGE_GROUP_ID = 0 +const COMMON_PAGE_GROUP_ID = 1 + const generateCssString = (pageOptions, materialsOptions) => { if (!pageOptions?.pageBaseStyle?.className || !pageOptions?.pageBaseStyle?.style) { return '' @@ -151,10 +154,16 @@ const isCurrentDataSame = () => { return isEqual } +const getParentNode = (parentId) => { + return parentId === pageSettingState.ROOT_ID + ? { id: pageSettingState.ROOT_ID, children: pageSettingState.pages[STATIC_PAGE_GROUP_ID].data } + : pageSettingState.treeDataMapping[parentId] +} + const changeTreeData = (newParentId, oldParentId) => { if (newParentId && oldParentId && String(newParentId) !== String(oldParentId)) { - const folderData = pageSettingState.treeDataMapping[newParentId] - const parentData = pageSettingState.treeDataMapping[oldParentId] + const folderData = getParentNode(newParentId) + const parentData = getParentNode(oldParentId) const currentPageDataId = pageSettingState.currentPageData.id const curDataIndex = parentData.children?.findIndex?.(({ id }) => id === currentPageDataId) @@ -187,9 +196,6 @@ const resetPageData = () => { // 判断当前页面内容是否有修改 const isChangePageData = () => !isEqual(pageSettingState.currentPageData, pageSettingState.currentPageDataCopy) -const STATIC_PAGE_GROUP_ID = 0 -const COMMON_PAGE_GROUP_ID = 1 - /** * * @typedef {Object} PageData From 5f7b02464c302ae75dd065b85d877088d5e4bbb3 Mon Sep 17 00:00:00 2001 From: gene9831 Date: Fri, 24 Jan 2025 15:33:01 +0800 Subject: [PATCH 3/3] add guard to avoid runtime errors --- packages/plugins/page/src/composable/usePage.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index 850842243..dd0a537d8 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -164,6 +164,11 @@ const changeTreeData = (newParentId, oldParentId) => { if (newParentId && oldParentId && String(newParentId) !== String(oldParentId)) { const folderData = getParentNode(newParentId) const parentData = getParentNode(oldParentId) + + if (!folderData || !parentData) { + return + } + const currentPageDataId = pageSettingState.currentPageData.id const curDataIndex = parentData.children?.findIndex?.(({ id }) => id === currentPageDataId)