From b04e3a46135cbf33a8bd4c09ea11b5c85310a2dc Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Fri, 17 Jul 2026 09:29:38 +0800 Subject: [PATCH] feat(aigc): add shared work top bar and back fixes - add leftAction prop to AigcTopBar to switch between back arrow and home icon - pass source=sharedWork query param when reLaunching home from shared work page - update home page to detect shared work source, adjust top bar and back behavior - add CSS styling for home top bar icon - update root page back handler to exit WeChat mini program --- src/components/TopNavBar/index.vue | 11 +++++++++++ src/pages-aigc/components/AigcTopBar/index.vue | 9 ++++++++- .../components/AigcTopBar/styles/index.scss | 4 ++++ src/pages-aigc/home/home.vue | 14 ++++++++++++-- src/pages-aigc/sharedWork/sharedWork.vue | 2 +- 5 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/components/TopNavBar/index.vue b/src/components/TopNavBar/index.vue index fda14c4..c0dc8ee 100644 --- a/src/components/TopNavBar/index.vue +++ b/src/components/TopNavBar/index.vue @@ -152,6 +152,17 @@ const hasBackListener = computed(() => { // 处理返回事件 const handleBack = () => { + const pages = getCurrentPages(); + + if (pages.length <= 1) { + // #ifdef MP-WEIXIN + if (typeof wx !== "undefined" && typeof wx.exitMiniProgram === "function") { + wx.exitMiniProgram(); + return; + } + // #endif + } + if (hasBackListener.value) { emit("back"); return; diff --git a/src/pages-aigc/components/AigcTopBar/index.vue b/src/pages-aigc/components/AigcTopBar/index.vue index 5e6faf8..833f382 100644 --- a/src/pages-aigc/components/AigcTopBar/index.vue +++ b/src/pages-aigc/components/AigcTopBar/index.vue @@ -2,7 +2,9 @@ - + + {{ zniconsMap["zn-nav-arrow-left"] }} @@ -43,6 +45,11 @@ const props = defineProps({ type: Boolean, default: true, }, + leftAction: { + type: String, + default: "back", + validator: (value) => ["back", "home"].includes(value), + }, }); const emit = defineEmits(["back", "history", "recharge"]); diff --git a/src/pages-aigc/components/AigcTopBar/styles/index.scss b/src/pages-aigc/components/AigcTopBar/styles/index.scss index c92870c..06a67df 100644 --- a/src/pages-aigc/components/AigcTopBar/styles/index.scss +++ b/src/pages-aigc/components/AigcTopBar/styles/index.scss @@ -48,6 +48,10 @@ transform: translateX(-1px); } +.aigc-back-icon.is-home { + transform: none; +} + .aigc-topbar-actions { flex: 1 1 auto; width: auto; diff --git a/src/pages-aigc/home/home.vue b/src/pages-aigc/home/home.vue index 894aa99..a0bd8d6 100644 --- a/src/pages-aigc/home/home.vue +++ b/src/pages-aigc/home/home.vue @@ -1,6 +1,7 @@