From 0143a08af72c08d7bd882fa67152fc196d8160ba Mon Sep 17 00:00:00 2001 From: zzc <1761997216@qq.com> Date: Wed, 20 May 2026 15:58:04 +0800 Subject: [PATCH] feat: release --- api/release.js | 9 +++++++++ pages/release/index.vue | 31 ++++++++++++++++++++++--------- utils/page.js | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 api/release.js create mode 100644 utils/page.js diff --git a/api/release.js b/api/release.js new file mode 100644 index 0000000..28e2cd8 --- /dev/null +++ b/api/release.js @@ -0,0 +1,9 @@ +import { request } from "@/utils/request.js"; + +export const releaseTopic = async (data) => { + return request({ + url: "/api/rating/topic/release", + method: "POST", + data, + }); +}; \ No newline at end of file diff --git a/pages/release/index.vue b/pages/release/index.vue index 364962d..db62234 100644 --- a/pages/release/index.vue +++ b/pages/release/index.vue @@ -159,6 +159,8 @@ diff --git a/utils/page.js b/utils/page.js new file mode 100644 index 0000000..4abebac --- /dev/null +++ b/utils/page.js @@ -0,0 +1,41 @@ +/** + * 页面跳转相关工具方法 + */ + +/** + * 智能返回方法:默认返回上一页,如果页面栈只有1层(没有上一页),则返回到首页 + * + * @param {Object} options 配置参数 + * @param {number} options.delay 延迟执行的时间,单位毫秒,默认 0 + * @param {string} options.homePath 首页的路径,默认为 '/pages/index/index' + */ +export const smartNavigateBack = (options = {}) => { + const { delay = 0, homePath = '/pages/index/index' } = options; + + const executeBack = () => { + const pages = getCurrentPages(); + if (pages.length > 1) { + // 有上一页,直接返回 + uni.navigateBack({ + delta: 1 + }); + } else { + // 页面栈只有一层,返回首页 + uni.switchTab({ + url: homePath, + fail: () => { + // 如果首页不是 tabBar 页面,则使用 reLaunch + uni.reLaunch({ + url: homePath + }); + } + }); + } + }; + + if (delay > 0) { + setTimeout(executeBack, delay); + } else { + executeBack(); + } +};