/** * 路由仓库 * 统一管理页面路由配置和跳转逻辑 */ // 页面路由配置 export const PAGE_ROUTES = { // 主要功能页面 MONK: '/pages/monk/monk', MONK_DETAIL: '/pages/monk/monkDetail', WALK_INTO: '/pages/walkInto/walkInto', INSTITUTIONAL_STRUCTURE: '/pages/institutionalStructure/institutionalStructure', ACTIVITY: '/pages/activity/activity', PRAY: '/pages/pray/pray', // 待开发页面 NEWS: '/pages/news/news', ABBOT: '/pages/abbot/abbot', ANCIENT: '/pages/ancient/ancient', FUTURE: '/pages/future/future', // 其他页面 LOGIN: '/pages/login/login', INDEX: '/pages/nearbystores/index', MY: '/pages/my/my', MY_ORDER: '/pages/myorder/index', MY_ORDER_RETURNED: '/pages/myorder/returned/index', } // 页面类型映射 export const PAGE_TYPE_MAP = { monk: PAGE_ROUTES.MONK, monkDetail: PAGE_ROUTES.MONK_DETAIL, walkInto: PAGE_ROUTES.WALK_INTO, institutionalStructure: PAGE_ROUTES.INSTITUTIONAL_STRUCTURE, activity: PAGE_ROUTES.ACTIVITY, news: PAGE_ROUTES.NEWS, abbot: PAGE_ROUTES.ABBOT, ancient: PAGE_ROUTES.ANCIENT, future: PAGE_ROUTES.FUTURE, index: PAGE_ROUTES.INDEX, pray: PAGE_ROUTES.PRAY, } /** * 页面跳转方法 * @param {string} pageType - 页面类型 * @param {Object} options - 跳转选项 */ export function navigateToPage(pageType, options = {}) { // 清除loading状态 try { uni.hideLoading() } catch (error) { console.warn('清除loading失败:', error) } const targetPage = PAGE_TYPE_MAP[pageType] if (!targetPage) { // 使用uni.showToast替代console,减少文件系统访问 uni.showToast({ title: '页面配置错误', icon: 'none', }) return } const defaultOptions = { url: targetPage, fail: err => { // 避免在真机调试时输出过多日志 uni.showToast({ title: '页面开发中', icon: 'none', }) }, } uni.navigateTo({ ...defaultOptions, ...options, }) } /** * 跳转到TabBar页面 * @param {string} pageType - 页面类型 */ export function switchToTab(pageType) { // 清除loading状态 try { uni.hideLoading() } catch (error) { console.warn('清除loading失败:', error) } const tabRoutes = { index: PAGE_ROUTES.INDEX, my: PAGE_ROUTES.MY, } const targetPage = tabRoutes[pageType] if (!targetPage) { uni.showToast({ title: '页面配置错误', icon: 'none', }) return } uni.switchTab({ url: targetPage, fail: err => { uni.showToast({ title: '跳转失败', icon: 'none', }) }, }) } /** * 返回上一页 * @param {number} delta - 返回的页面数,默认为1 */ export function navigateBack(delta = 1) { uni.navigateBack({ delta, fail: () => { // 如果没有上一页,跳转到首页 switchToTab('index') }, }) } /** * 重定向到页面 * @param {string} pageType - 页面类型 */ export function redirectToPage(pageType) { // 清除loading状态 try { uni.hideLoading() } catch (error) { console.warn('清除loading失败:', error) } const targetPage = PAGE_TYPE_MAP[pageType] if (!targetPage) { console.error('未知的页面类型:', pageType) return } uni.redirectTo({ url: targetPage, fail: err => { console.error('页面重定向失败:', err) }, }) } /** * 重新启动到页面 * @param {string} pageType - 页面类型 */ export function reLaunchToPage(pageType) { // 清除loading状态 try { uni.hideLoading() } catch (error) { console.warn('清除loading失败:', error) } const targetPage = PAGE_TYPE_MAP[pageType] if (!targetPage) { console.error('未知的页面类型:', pageType) return } uni.reLaunch({ url: targetPage, fail: err => { console.error('页面重启失败:', err) }, }) }