115 lines
3.1 KiB
JavaScript
115 lines
3.1 KiB
JavaScript
|
// eaterplanet_ecommerce/components/router-link/router-link.js
|
||
|
Component({
|
||
|
/**
|
||
|
* 组件的属性列表
|
||
|
*/
|
||
|
properties: {
|
||
|
url: String,
|
||
|
type: String,
|
||
|
disabled: {
|
||
|
type: Boolean,
|
||
|
value: false
|
||
|
},
|
||
|
delta: {
|
||
|
type: Number,
|
||
|
value: 1
|
||
|
}
|
||
|
},
|
||
|
externalClasses: ["router-class"],
|
||
|
/**
|
||
|
* 组件的初始数据
|
||
|
*/
|
||
|
data: {
|
||
|
canClick: true
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 组件的方法列表
|
||
|
*/
|
||
|
methods: {
|
||
|
routerLink: function () {
|
||
|
var that = this;
|
||
|
if (!this.data.disabled && this.data.canClick)
|
||
|
if (this.data.url) {
|
||
|
this.setData({
|
||
|
canClick: false
|
||
|
});
|
||
|
var data = {
|
||
|
url: this.data.url,
|
||
|
success: function (e) {
|
||
|
that.triggerEvent("on-success", e);
|
||
|
},
|
||
|
fail: function (e) {
|
||
|
console.warn("routerLink Error:", e), that.triggerEvent("on-error", e);
|
||
|
},
|
||
|
complete: function () {
|
||
|
setTimeout(function () {
|
||
|
that.setData({
|
||
|
canClick: true
|
||
|
});
|
||
|
}, 400);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
let surl = this.data.url;
|
||
|
if (surl.indexOf('eaterplanet_ecommerce/pages/index/index') != -1 || surl.indexOf('eaterplanet_ecommerce/pages/order/shopCart') != -1 || surl.indexOf('eaterplanet_ecommerce/pages/user/me') != -1 || surl.indexOf('eaterplanet_ecommerce/pages/type/index') != -1 ) { this.setData({ type: 'switch' })}
|
||
|
|
||
|
switch (this.data.type) {
|
||
|
case "redirect":
|
||
|
wx.redirectTo(data);
|
||
|
break;
|
||
|
|
||
|
case "switch":
|
||
|
wx.switchTab(data);
|
||
|
break;
|
||
|
|
||
|
case "navigateback":
|
||
|
wx.navigateBack({
|
||
|
delta: this.data.delta,
|
||
|
success: function (e) {
|
||
|
that.triggerEvent("on-success", e);
|
||
|
},
|
||
|
fail: function (t) {
|
||
|
console.warn("routerLink Error:", t);
|
||
|
},
|
||
|
complete: function () {
|
||
|
that.setData({
|
||
|
canClick: false
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
break;
|
||
|
|
||
|
case "relaunch":
|
||
|
wx.reLaunch(data);
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
let urlArr = that.queryParam(surl);
|
||
|
wx.$route(urlArr[0], urlArr[1]);
|
||
|
setTimeout(function () {
|
||
|
that.setData({
|
||
|
canClick: true
|
||
|
});
|
||
|
}, 400);
|
||
|
// wx.navigateTo(data);
|
||
|
}
|
||
|
} else console.warn("url 不能为空");
|
||
|
},
|
||
|
queryParam: function(surl){
|
||
|
if (surl.indexOf("?") != -1) {
|
||
|
let urlArr = surl.split('?');
|
||
|
let urls = urlArr[1];
|
||
|
let strs = urls.split("&");
|
||
|
var obj = new Object();
|
||
|
for(var i = 0; i < strs.length; i++) {
|
||
|
var tmp_arr = strs[i].split("=");
|
||
|
obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1]);
|
||
|
}
|
||
|
return [urlArr[0], obj]
|
||
|
}
|
||
|
return [surl, {}]
|
||
|
}
|
||
|
}
|
||
|
})
|