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 @@