urlRoute.js
3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import queryString from '../vendors/query-string';
const GO_LIST = 'go.list';
const GO_PRODUCTPOOL = 'go.poollist';
const GO_SHOP = 'go.shop';
const GO_BRAND = 'go.brand';
const GO_CATEGORY = 'go.category';
const GO_DETAIL = 'go.productDetail';
const GO_COUPON = 'go.coupon';
const GO_MINE = 'go.mine';
const GO_NEW = 'go.new';
const GO_SHOPCART = 'go.shopcart';
const GO_H5 = 'go.h5';
const GO_ACTIVITY = 'go.activitytemplate';
const GO_MINIAPP = 'go.miniapp';
const GO_ZEROSELL = 'go.zerosell';
const MINI_APP_DOMAIN = 'miniapp.yohobuy.com';
const router = global.router;
function jumpByUrl(jumpUrl,pageName){
if (!jumpUrl) {
return;
}
// 跳小程序
if (jumpUrl.indexOf(MINI_APP_DOMAIN)>=0) {
router.goUrl(jumpUrl);
return;
}
let url = "";
let startIndex = jumpUrl.indexOf('openby:yohobuy=');
if (startIndex < 0) {
return;
}
let jsonRule = jumpUrl.substring(startIndex+'openby:yohobuy='.length);
let json = JSON.parse(jsonRule);
let action = json.action;
let path = '';
if (GO_LIST === action) {
let actionType = json.params.actiontype;
if (1 == actionType) {
path = "../goodsList/goodsList";
} else if (2 == actionType) {
path = "../goodsList/activtyDetail";
}
} else if (GO_BRAND === action) {
path = "../goodsList/brand";
} else if (GO_PRODUCTPOOL === action) {
path = "../goodsList/productPool";
} else if (GO_SHOP === action) {
path = "../goodsList/brandStore";
} else if (GO_DETAIL === action) {
path = "../goodsDetail/goodsDetail";
} else if (GO_COUPON === action) {
path = "../page/subPackage/pages/couponList/couponList";
}else if (GO_NEW === action) {
path = "../goodsList/newArrival";
} else if (GO_ZEROSELL == action) {
path = "/page/subPackage/pages/zeroSell/index";
} else if (GO_SHOPCART === action) {
wx.switchTab({
url: "/pages/shopCart/shopCart"
})
return;
}else if (GO_CATEGORY === action) {
wx.switchTab({
url: "/pages/classify/category"
})
return;
}else if (GO_MINE === action) {
wx.switchTab({
url: "/pages/userCenter/userCenter"
})
return;
} else if (GO_H5 === action) {
path = "../webview/webview";
} else if (GO_ACTIVITY === action) {
let actionType = json.params.type;
if (actionType == 2) {
path = "../groupPurchase/groupPurchase";
} else if (actionType == 3) {
path = "../assist/assist";
}
}else if (GO_MINIAPP === action){
//跳转到小程序必须有appid和path
if(!json.params||!json.params.appId||!json.params.path ||json.params.appId.length===0 ||json.params.path.length===0){return}
let navigateToMiniParams = {
appId: json.params.appId,
path: json.params.path
};
wx.navigateToMiniProgram(navigateToMiniParams);
return
}
let params = queryString.stringify(json.params, { encode: false });
url = path + "?page_name=" + pageName + "&" + params;
if (!path) {
return;
}
if (url) {
wx.navigateTo({
url: url,
})
}
}
export {
jumpByUrl,
}