From a9d5abbd70cae7baca5239f117a84f8c99a28ecf Mon Sep 17 00:00:00 2001 From: lichunn <269031597@qq.com> Date: Thu, 6 Feb 2025 01:34:17 -0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=E5=BD=93=E5=89=8D=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E8=B0=83=E6=95=B4=E4=B8=BAschema=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E4=B8=8D=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/plugins/page/src/composable/usePage.js | 13 ++++++++----- packages/toolbars/preview/src/Main.vue | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index dd0a537d88..599dd24c70 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -395,11 +395,14 @@ const switchPageWithConfirm = (pageId) => { }) } -const handlePageDetail = async (pages) => { - const ROOT_ID = '0' +const handlePageDetail = async (pages, currentPage) => { + const { ROOT_ID } = pageSettingState if (pages.length > 0) { for (let i = 0; i < pages.length; i++) { + if (pages[i].id === currentPage.id) { + pages[i].page_content = currentPage.pageInfo?.schema + } if (!pages[i].page_content) { const pageDetail = await http.fetchPageDetail(pages[i].id) pages[i].page_content = pageDetail.page_content @@ -412,16 +415,16 @@ const handlePageDetail = async (pages) => { } } -const getFamily = async (id) => { +const getFamily = async (page) => { if (pageSettingState.pages.length === 0) { await getPageList() } - const familyPages = getAncestorsRecursively(id) + const familyPages = getAncestorsRecursively(page.id) .filter((item) => item.isPage) .reverse() - await handlePageDetail(familyPages) + await handlePageDetail(familyPages, page) return familyPages } diff --git a/packages/toolbars/preview/src/Main.vue b/packages/toolbars/preview/src/Main.vue index eaab03fcb6..64bc3822a0 100644 --- a/packages/toolbars/preview/src/Main.vue +++ b/packages/toolbars/preview/src/Main.vue @@ -80,7 +80,7 @@ export default { const page = getCurrentPage() params.id = page?.id params.pageInfo.name = page?.name - params.ancestors = await getFamily(params.id) + params.ancestors = await getFamily(params) previewPage(params) } From 781f1f7fa57ba7538b9a05317a7109c1e7faffe8 Mon Sep 17 00:00:00 2001 From: lichunn <269031597@qq.com> Date: Sun, 9 Feb 2025 18:42:04 -0800 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=E5=A4=9A=E9=A1=B5=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E4=BC=A0=E5=8F=82=E6=96=B9=E6=B3=95=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugins/page/src/composable/usePage.js | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index 599dd24c70..e740577cd1 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -395,36 +395,53 @@ const switchPageWithConfirm = (pageId) => { }) } +const updatePageContent = (page, currentPage) => { + if (currentPage.id && currentPage.pageInfo?.schema && page.id === currentPage.id) { + page.page_content = currentPage.pageInfo?.schema + } + return page +} + +const fetchPageDetailIfNeeded = async (page) => { + if (!page.page_content) { + const pageDetail = await http.fetchPageDetail(page.id) + page.page_content = pageDetail.page_content + } + return page +} + +const updateParentId = (page, pages, index, ROOT_ID) => { + if (page.parentId !== ROOT_ID && !pages.find((item) => item.id === page.parentId)) { + page.parentId = pages[index - 1]?.id ? pages[index - 1].id : ROOT_ID + } +} + const handlePageDetail = async (pages, currentPage) => { const { ROOT_ID } = pageSettingState if (pages.length > 0) { - for (let i = 0; i < pages.length; i++) { - if (pages[i].id === currentPage.id) { - pages[i].page_content = currentPage.pageInfo?.schema - } - if (!pages[i].page_content) { - const pageDetail = await http.fetchPageDetail(pages[i].id) - pages[i].page_content = pageDetail.page_content - } + pages = await Promise.all( + pages.map(async (page, index) => { + page = updatePageContent(page, currentPage) + page = await fetchPageDetailIfNeeded(page) + page = updateParentId(page, pages, index, ROOT_ID) - if (pages[i].parentId !== ROOT_ID && !pages.find((item) => item.id === pages[i].parentId)) { - pages[i].parentId = pages[i - 1]?.id ? pages[i - 1].id : ROOT_ID - } - } + return page + }) + ) } } -const getFamily = async (page) => { +const getFamily = async (previewParams) => { if (pageSettingState.pages.length === 0) { await getPageList() } - const familyPages = getAncestorsRecursively(page.id) + const familyPages = getAncestorsRecursively(previewParams.id) .filter((item) => item.isPage) .reverse() - await handlePageDetail(familyPages, page) + await handlePageDetail(familyPages, previewParams) return familyPages } From 806ee47eb61caf9cd42c5f5c8882d12160738430 Mon Sep 17 00:00:00 2001 From: lichunn <269031597@qq.com> Date: Sun, 9 Feb 2025 18:48:20 -0800 Subject: [PATCH 3/5] fix: fix review --- packages/plugins/page/src/composable/usePage.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index e740577cd1..2e7fee2ff3 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -404,8 +404,12 @@ const updatePageContent = (page, currentPage) => { const fetchPageDetailIfNeeded = async (page) => { if (!page.page_content) { - const pageDetail = await http.fetchPageDetail(page.id) - page.page_content = pageDetail.page_content + try { + const pageDetail = await http.fetchPageDetail(page.id) + page.page_content = pageDetail.page_content + } catch (error) { + page.page_content = {} + } } return page } From 177ccf97cc71c3f97e589d96fadd74e384e0d82e Mon Sep 17 00:00:00 2001 From: lichunn <269031597@qq.com> Date: Thu, 13 Feb 2025 00:42:18 -0800 Subject: [PATCH 4/5] fix:fix review --- packages/plugins/page/src/composable/usePage.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index 5586dd7e98..494521e959 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -387,7 +387,6 @@ const updatePageContent = (page, currentPage) => { if (currentPage.id && currentPage.pageInfo?.schema && page.id === currentPage.id) { page.page_content = currentPage.pageInfo?.schema } - return page } const fetchPageDetailIfNeeded = async (page) => { @@ -399,7 +398,6 @@ const fetchPageDetailIfNeeded = async (page) => { page.page_content = {} } } - return page } const updateParentId = (page, pages, index, ROOT_ID) => { @@ -414,9 +412,9 @@ const handlePageDetail = async (pages, currentPage) => { if (pages.length > 0) { pages = await Promise.all( pages.map(async (page, index) => { - page = updatePageContent(page, currentPage) - page = await fetchPageDetailIfNeeded(page) - page = updateParentId(page, pages, index, ROOT_ID) + updatePageContent(page, currentPage) + await fetchPageDetailIfNeeded(page) + updateParentId(page, pages, index, ROOT_ID) return page }) From 08b5353779954e036558c93516e4ac323db4af73 Mon Sep 17 00:00:00 2001 From: lichunn <269031597@qq.com> Date: Fri, 14 Feb 2025 00:55:12 -0800 Subject: [PATCH 5/5] fix: fix review --- packages/plugins/page/src/composable/usePage.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/plugins/page/src/composable/usePage.js b/packages/plugins/page/src/composable/usePage.js index 494521e959..44a42899ee 100644 --- a/packages/plugins/page/src/composable/usePage.js +++ b/packages/plugins/page/src/composable/usePage.js @@ -410,13 +410,11 @@ const handlePageDetail = async (pages, currentPage) => { const { ROOT_ID } = pageSettingState if (pages.length > 0) { - pages = await Promise.all( + await Promise.all( pages.map(async (page, index) => { updatePageContent(page, currentPage) await fetchPageDetailIfNeeded(page) updateParentId(page, pages, index, ROOT_ID) - - return page }) ) }