...
|
...
|
@@ -5,6 +5,14 @@ import {parse, stringify} from '../vendors/query-stringify'; |
|
|
|
|
|
const MINI_APP_DOMAIN = 'miniapp.yohobuy.com';
|
|
|
|
|
|
const pageNameMap = {};
|
|
|
|
|
|
for (let i in rules) {
|
|
|
if (rules.hasOwnProperty(i) && rules[i].path) {
|
|
|
pageNameMap[rules[i].path] = i;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
global.router = {
|
|
|
go(name, qs, type) {
|
|
|
let rule = rules[name];
|
...
|
...
|
@@ -13,21 +21,34 @@ global.router = { |
|
|
return Promise.reject(`router rules mismatch : ${name}`);
|
|
|
}
|
|
|
|
|
|
qs = qs || {};
|
|
|
|
|
|
// 添加yas上报【fromPage】参数
|
|
|
let pages = getCurrentPages();
|
|
|
let currentPage = pages[pages.length - 1];
|
|
|
let path = `/${currentPage.route}`;
|
|
|
|
|
|
if (pageNameMap[path]) {
|
|
|
qs.fromPage = pageNameMap[path];
|
|
|
}
|
|
|
|
|
|
// 页面登录校验
|
|
|
this.app = this.app || getApp();
|
|
|
|
|
|
if (rule.auth && !this.app.getUid()) {
|
|
|
return jump.navigateTo(rules.login.path);
|
|
|
}
|
|
|
|
|
|
// 跳转类型
|
|
|
let jumpFn = jump[type] || rule.type || jump.navigateTo;
|
|
|
|
|
|
return jumpFn(`${rule.path}?${stringify(qs || {})}`);
|
|
|
return jumpFn(`${rule.path}?${stringify(qs)}`);
|
|
|
},
|
|
|
goUrl(url) {
|
|
|
if (!url) {
|
|
|
return Promise.reject('error url');
|
|
|
}
|
|
|
|
|
|
|
|
|
let [uri, search] = url.split('?');
|
|
|
let path = uri.split(MINI_APP_DOMAIN)[1];
|
|
|
let qs = parse(search);
|
...
|
...
|
@@ -40,24 +61,19 @@ global.router = { |
|
|
}
|
|
|
|
|
|
let openBy = JSON.parse(qs['openby:yohobuy'] || {});
|
|
|
|
|
|
|
|
|
if (openBy.action) {
|
|
|
const GO_LIST = 'go.list';
|
|
|
const GO_DETAIL = 'go.productDetail';
|
|
|
|
|
|
let url;
|
|
|
|
|
|
switch (openBy.action) {
|
|
|
case GO_LIST:
|
|
|
url = `/pages/product/list/list?${stringify(openBy.params)}`;
|
|
|
this.go('productList', openBy.params);
|
|
|
break;
|
|
|
case GO_DETAIL:
|
|
|
url = `/pages/product/detail/detail?productSkn=${openBy.params.product_skn}`;
|
|
|
break;
|
|
|
this.go('productDetail', {productSkn: openBy.params.product_skn});
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
url && jump.navigateTo(url);
|
|
|
}
|
|
|
}
|
|
|
}; |
...
|
...
|
|