goto.js
2.43 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
import wx from 'weixin-js-sdk';
import {linkToMiniApp, invokeMethod, createLinkButton} from "../utils/common";
export default class {
constructor(_env) {
this.env = _env;
}
link(event) {
let element = event.currentTarget;
let type = element.getAttribute('data-type') || 'other';
let id = element.getAttribute('data-id') || '';
let url = element.getAttribute('data-url') || '';
let name = element.getAttribute('data-name') || '';
let linkUrl = '';
if (this.env === 'miniprogram') {
if (type === 'product') {
linkUrl = '/pages/goodsDetail/goodsDetail?productSkn=' + id + '&page_name=goodsList&page_param=5'
} else if (type === 'brand') {
linkUrl = '/pages/goodsList/brandStore?shop_id=' + id + '&shop_name=' + name
} else {
linkUrl = url
}
return linkToMiniApp(linkUrl, type);
} else if (this.env === 'pc') {
if (type === 'product') {
linkUrl = 'https://www.yohobuy.com/product/' + id + '.html';
} else if (type === 'brand') {
linkUrl = 'https://www.yohobuy.com/shop/' + name + '-' + id + '.html';
} else {
linkUrl = url
}
} else {
if (type === 'product') {
linkUrl = '//m.yohobuy.com/product/' + id + '.html?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":' + id + '}}'
} else if (type === 'brand') {
linkUrl = '//m.yohobuy.com/product/index/brand?shop_id=' + id + '&openby:yohobuy={"action":"go.shop","params":{"shop_id":"' + id + '","shop_template_type":"1","shop_name":"' + name + '","is_red_shop":"1"}}'
} else {
linkUrl = url
}
}
if (this.env === 'app') {
let dom = document.getElementById('yosdk-goto');
if (!dom) {
dom = createLinkButton(linkUrl, 'yosdk-goto');
} else {
dom.setAttribute('href', linkUrl);
}
return dom.click();
} else {
window.location.href = linkUrl
}
}
goBack() {
if (this.env === 'app') {
invokeMethod({method: 'go.back'})
} else if (this.env === 'miniprogram') {
wx.miniProgram.navigateBack();
} else {
history.go(-1);
}
}
}