diff --git a/src/modules/contents/pages/SinglePageEditor.vue b/src/modules/contents/pages/SinglePageEditor.vue index 8c99e983b..fd30e580d 100644 --- a/src/modules/contents/pages/SinglePageEditor.vue +++ b/src/modules/contents/pages/SinglePageEditor.vue @@ -108,6 +108,8 @@ const handleSave = async () => { } }; +const returnToView = useRouteQuery("returnToView"); + const handlePublish = async () => { try { publishing.value = true; @@ -117,6 +119,7 @@ const handlePublish = async () => { if (isUpdateMode.value) { const { name: singlePageName } = formState.value.page.metadata; + const { permalink } = formState.value.page.status || {}; await apiClient.singlePage.updateSinglePageContent({ name: singlePageName, @@ -126,6 +129,12 @@ const handlePublish = async () => { await apiClient.singlePage.publishSinglePage({ name: singlePageName, }); + + if (returnToView.value && permalink) { + window.location.href = permalink; + } else { + router.push({ name: "SinglePages" }); + } } else { formState.value.page.spec.publish = true; await apiClient.singlePage.draftSinglePage({ @@ -134,8 +143,6 @@ const handlePublish = async () => { } Toast.success("发布成功"); - - router.push({ name: "SinglePages" }); } catch (error) { console.error("Failed to publish single page", error); Toast.error("发布失败,请重试"); diff --git a/src/modules/contents/posts/PostEditor.vue b/src/modules/contents/posts/PostEditor.vue index 1acef46fb..7c531bb92 100644 --- a/src/modules/contents/posts/PostEditor.vue +++ b/src/modules/contents/posts/PostEditor.vue @@ -109,6 +109,8 @@ const handleSave = async () => { } }; +const returnToView = useRouteQuery("returnToView"); + const handlePublish = async () => { try { publishing.value = true; @@ -118,6 +120,7 @@ const handlePublish = async () => { if (isUpdateMode.value) { const { name: postName } = formState.value.post.metadata; + const { permalink } = formState.value.post.status || {}; await apiClient.post.updatePostContent({ name: postName, @@ -127,6 +130,12 @@ const handlePublish = async () => { await apiClient.post.publishPost({ name: postName, }); + + if (returnToView.value === "true" && permalink) { + window.location.href = permalink; + } else { + router.push({ name: "Posts" }); + } } else { const { data } = await apiClient.post.draftPost({ postRequest: formState.value, @@ -138,8 +147,6 @@ const handlePublish = async () => { } Toast.success("发布成功", { duration: 2000 }); - - router.push({ name: "Posts" }); } catch (error) { console.error("Failed to publish post", error); Toast.error("发布失败,请重试");