"use strict"; const common_vendor = require("../../common/vendor.js"); const sheep_store_index = require("../store/index.js"); const sheep_hooks_useModal = require("../hooks/useModal.js"); const sheep_helper_throttle = require("../helper/throttle.js"); const _go = (path, params = {}, options = { redirect: false }) => { var _a; let page = ""; let query = ""; let url = ""; if (common_vendor.lodashExports.isString(path)) { if (common_vendor.lodashExports.startsWith(path, "http")) { page = `/pages/public/webview`; query = `url=${encodeURIComponent(path)}`; } else if (common_vendor.lodashExports.startsWith(path, "action:")) { handleAction(path); return; } else { [page, query] = path.split("?"); } if (!common_vendor.lodashExports.isEmpty(params)) { let query2 = paramsToQuery(params); if (common_vendor.lodashExports.isEmpty(query)) { query = query2; } else { query += "&" + query2; } } } if (common_vendor.lodashExports.isObject(path)) { page = path.url; if (!common_vendor.lodashExports.isNil(path.params)) { query = paramsToQuery(path.params); } } const nextRoute = { "/pages/index/index": { "path": "/pages/index/index", "aliasPath": "/", "meta": { "auth": false, "sync": true, "title": "首页", "group": "商城" } }, "/pages/index/user": { "path": "/pages/index/user", "meta": { "sync": true, "title": "个人中心", "group": "商城" } }, "/pages/index/category": { "path": "/pages/index/category", "meta": { "sync": true, "title": "商品分类", "group": "商城" } }, "/pages/index/cart": { "path": "/pages/index/cart", "meta": { "sync": true, "title": "购物车", "group": "商城" } }, "/pages/index/login": { "path": "/pages/index/login" }, "/pages/index/search": { "path": "/pages/index/search", "meta": { "sync": true, "title": "搜索", "group": "商城" } }, "/pages/index/page": { "path": "/pages/index/page", "meta": { "auth": false, "sync": true, "title": "自定义页面", "group": "商城" } }, "/pages/goods/index": { "path": "/pages/goods/index", "meta": { "sync": true, "title": "普通商品", "group": "商品" } }, "/pages/goods/groupon": { "path": "/pages/goods/groupon", "meta": { "sync": true, "title": "拼团商品", "group": "商品" } }, "/pages/goods/seckill": { "path": "/pages/goods/seckill", "meta": { "sync": true, "title": "秒杀商品", "group": "商品" } }, "/pages/goods/list": { "path": "/pages/goods/list", "meta": { "sync": true, "title": "商品列表", "group": "商品" } }, "/pages/goods/comment/add": { "path": "/pages/goods/comment/add", "meta": { "auth": true } }, "/pages/goods/comment/list": { "path": "/pages/goods/comment/list" }, "/pages/order/detail": { "path": "/pages/order/detail", "meta": { "auth": true, "title": "订单详情" } }, "/pages/order/confirm": { "path": "/pages/order/confirm", "meta": { "auth": true, "title": "确认订单" } }, "/pages/order/list": { "path": "/pages/order/list", "meta": { "auth": true, "sync": true, "title": "用户订单", "group": "订单中心" } }, "/pages/order/aftersale/apply": { "path": "/pages/order/aftersale/apply", "meta": { "auth": true, "title": "申请售后" } }, "/pages/order/aftersale/return-delivery": { "path": "/pages/order/aftersale/return-delivery", "meta": { "auth": true, "title": "退货物流" } }, "/pages/order/aftersale/list": { "path": "/pages/order/aftersale/list", "meta": { "auth": true, "sync": true, "title": "售后订单", "group": "订单中心" } }, "/pages/order/aftersale/detail": { "path": "/pages/order/aftersale/detail", "meta": { "auth": true, "title": "售后详情" } }, "/pages/order/aftersale/log": { "path": "/pages/order/aftersale/log", "meta": { "auth": true, "title": "售后进度" } }, "/pages/order/express/log": { "path": "/pages/order/express/log", "meta": { "auth": true, "title": "物流轨迹" } }, "/pages/order/otherlist": { "path": "/pages/order/otherlist" }, "/pages/user/info": { "path": "/pages/user/info", "meta": { "auth": true, "sync": true, "title": "用户信息", "group": "用户中心" } }, "/pages/user/setting": { "path": "/pages/user/setting", "meta": { "auth": true, "sync": true, "title": "用户设置", "group": "用户中心" } }, "/pages/user/qrcode-share": { "path": "/pages/user/qrcode-share", "meta": { "auth": true, "sync": true, "title": "我的二维码/分享页", "group": "用户中心" } }, "/pages/user/goods-collect": { "path": "/pages/user/goods-collect", "meta": { "auth": true, "sync": true, "title": "商品收藏", "group": "用户中心" } }, "/pages/user/goods-log": { "path": "/pages/user/goods-log", "meta": { "auth": true, "sync": true, "title": "浏览记录", "group": "用户中心" } }, "/pages/user/address/list": { "path": "/pages/user/address/list", "meta": { "auth": true, "sync": true, "title": "地址管理", "group": "用户中心" } }, "/pages/user/dummyAddress/list": { "path": "/pages/user/dummyAddress/list", "meta": { "auth": true, "sync": true, "title": "虚拟商品收货地址", "group": "用户中心" } }, "/pages/user/invoice/edit": { "path": "/pages/user/invoice/edit", "meta": { "auth": true, "title": "发票抬头" } }, "/pages/user/invoice/list": { "path": "/pages/user/invoice/list", "meta": { "auth": true, "sync": true, "title": "发票抬头管理", "group": "用户中心" } }, "/pages/user/address/edit": { "path": "/pages/user/address/edit", "meta": { "auth": true, "title": "编辑地址" } }, "/pages/user/dummyAddress/edit": { "path": "/pages/user/dummyAddress/edit", "meta": { "auth": true, "title": "编辑地址" } }, "/pages/user/wallet/money": { "path": "/pages/user/wallet/money", "meta": { "auth": true, "sync": true, "title": "用户余额", "group": "用户中心" } }, "/pages/user/wallet/score": { "path": "/pages/user/wallet/score", "meta": { "auth": true, "sync": true, "title": "用户积分", "group": "用户中心" } }, "/pages/user/wallet/scoreToMoney": { "path": "/pages/user/wallet/scoreToMoney", "meta": { "auth": true, "sync": true, "title": "积分兑换", "group": "用户中心" } }, "/pages/user/wallet/ScoreLog": { "path": "/pages/user/wallet/ScoreLog" }, "/pages/user/wallet/maxScoreLog": { "path": "/pages/user/wallet/maxScoreLog" }, "/pages/user/wallet/team": { "path": "/pages/user/wallet/team", "meta": { "auth": true, "sync": true, "title": "团队", "group": "用户中心" } }, "/pages/commission/index": { "path": "/pages/commission/index", "meta": { "auth": true, "sync": true, "title": "分销中心", "group": "分销商城" } }, "/pages/commission/wallet": { "path": "/pages/commission/wallet", "meta": { "auth": true, "sync": true, "title": "用户佣金", "group": "分销中心" } }, "/pages/commission/goods": { "path": "/pages/commission/goods", "meta": { "auth": true, "sync": true, "title": "推广商品", "group": "分销商城" } }, "/pages/commission/order": { "path": "/pages/commission/order", "meta": { "auth": true, "sync": true, "title": "分销订单", "group": "分销商城" } }, "/pages/commission/team": { "path": "/pages/commission/team", "meta": { "auth": true, "sync": true, "title": "我的团队", "group": "分销商城" } }, "/pages/commission/promoter": { "path": "/pages/commission/promoter", "meta": { "auth": true, "sync": true, "title": "推广人排行榜", "group": "分销商城" } }, "/pages/commission/commission-ranking": { "path": "/pages/commission/commission-ranking", "meta": { "auth": true, "sync": true, "title": "佣金排行榜", "group": "分销商城" } }, "/pages/commission/withdraw": { "path": "/pages/commission/withdraw", "meta": { "auth": true, "sync": true, "title": "申请提现", "group": "分销商城" } }, "/pages/app/sign": { "path": "/pages/app/sign", "meta": { "auth": true, "sync": true, "title": "签到中心", "group": "应用" } }, "/pages/shop/index": { "path": "/pages/shop/index", "meta": { "auth": true, "sync": true, "title": "店铺首页", "group": "应用" } }, "/pages/public/setting": { "path": "/pages/public/setting", "meta": { "sync": true, "title": "系统设置", "group": "通用" } }, "/pages/public/richtext": { "path": "/pages/public/richtext", "meta": { "sync": true, "title": "富文本", "group": "通用" } }, "/pages/public/faq": { "path": "/pages/public/faq", "meta": { "sync": true, "title": "常见问题", "group": "通用" } }, "/pages/public/error": { "path": "/pages/public/error" }, "/pages/public/webview": { "path": "/pages/public/webview" }, "/pages/coupon/list": { "path": "/pages/coupon/list", "meta": { "sync": true, "title": "领券中心", "group": "优惠券" } }, "/pages/coupon/detail": { "path": "/pages/coupon/detail", "meta": { "auth": false, "sync": true, "title": "优惠券详情", "group": "优惠券" } }, "/pages/chat/index": { "path": "/pages/chat/index", "meta": { "auth": true, "sync": true, "title": "客服", "group": "客服" } }, "/pages/chat/speechtotext": { "path": "/pages/chat/speechtotext", "meta": { "auth": true, "sync": true, "title": "语音转文字", "group": "语音转文字" } }, "/pages/pay/index": { "path": "/pages/pay/index" }, "/pages/pay/result": { "path": "/pages/pay/result" }, "/pages/pay/recharge": { "path": "/pages/pay/recharge", "meta": { "auth": true, "sync": true, "title": "充值余额", "group": "支付" } }, "/pages/pay/recharge-log": { "path": "/pages/pay/recharge-log", "meta": { "auth": true, "sync": true, "title": "充值记录", "group": "支付" } }, "/pages/activity/groupon/detail": { "path": "/pages/activity/groupon/detail" }, "/pages/activity/groupon/order": { "path": "/pages/activity/groupon/order", "meta": { "auth": true, "sync": true, "title": "拼团订单", "group": "营销活动" } }, "/pages/activity/index": { "path": "/pages/activity/index", "meta": { "sync": true, "title": "营销商品", "group": "营销活动" } }, "/pages/activity/groupon/list": { "path": "/pages/activity/groupon/list", "meta": { "sync": true, "title": "拼团活动", "group": "营销活动" } }, "/pages/activity/seckill/list": { "path": "/pages/activity/seckill/list", "meta": { "sync": true, "title": "秒杀活动", "group": "营销活动" } }, "/pages/activity/bargain/list": { "path": "/pages/activity/bargain/list", "meta": { "sync": true, "title": "砍价列表", "group": "营销活动" } }, "/pages/activity/bargain/detail": { "path": "/pages/activity/bargain/detail", "meta": { "sync": true, "title": "砍价详情", "group": "营销活动" } } }[page]; if (!nextRoute) { console.log(`%c跳转路径参数错误<${page || "EMPTY"}>`, "color:red;background:yellow"); return; } if (((_a = nextRoute.meta) == null ? void 0 : _a.auth) && !sheep_store_index.$store("user").isLogin) { sheep_hooks_useModal.showAuthModal(); return; } url = page; if (!common_vendor.lodashExports.isEmpty(query)) { url += `?${query}`; } if (["/pages/index/index", "/pages/index/cart", "/pages/index/user"].includes(page)) { common_vendor.index.switchTab({ url }); return; } if (options.redirect) { common_vendor.index.redirectTo({ url }); return; } common_vendor.index.navigateTo({ url }); }; function go(...args) { sheep_helper_throttle.throttle(() => { _go(...args); }); } function paramsToQuery(params) { if (common_vendor.lodashExports.isEmpty(params)) { return ""; } let query = []; for (let key in params) { query.push(key + "=" + params[key]); } return query.join("&"); } function back() { common_vendor.index.navigateBack(); } function redirect(path, params = {}) { go(path, params, { redirect: true }); } function hasHistory() { const pages = getCurrentPages(); if (pages.length > 1) { return true; } return false; } function getCurrentRoute(field = "") { let currentPage = getCurrentPage(); currentPage.$page["route"] = currentPage.route; currentPage.$page["options"] = currentPage.options; if (field !== "") { return currentPage.$page[field]; } else { return currentPage.$page; } } function getCurrentPage() { let pages = getCurrentPages(); return pages[pages.length - 1]; } function handleAction(path) { const action = path.split(":"); switch (action[1]) { case "showShareModal": sheep_hooks_useModal.showShareModal(); break; } } function error(errCode, errMsg = "") { redirect("/pages/public/error", { errCode, errMsg }); } const $router = { go, back, hasHistory, redirect, getCurrentPage, getCurrentRoute, error }; exports.$router = $router;