94 lines
2.8 KiB
JavaScript
94 lines
2.8 KiB
JavaScript
// router.js
|
||
//import {getCurrentPageUrl} from "./getUrl"
|
||
module.exports = {
|
||
navigateTo(object) {
|
||
let pages = getCurrentPages();
|
||
let len = pages.length;
|
||
let dlt = 0;
|
||
let cur_url=object.url;
|
||
|
||
object.fail=function(error){
|
||
console.log(error)
|
||
};
|
||
let is_otherCommon=false;
|
||
let currentOptions=cur_url.split("?")[1];
|
||
for (let i = 0; i < len; i++) {
|
||
//判断是否是聊天页面
|
||
if(pages[i].route=="TUIService/pages/index" && cur_url.indexOf("TUIService/pages/index")!=-1 ) {
|
||
let currentOptionsArr=currentOptions.split("&");
|
||
let cur_options=currentOptionsArr[0].toString()+"&"+currentOptionsArr[1].toString();
|
||
let options=pages[i].options;
|
||
//let params="currentConversationID="+options['currentConversationID']+"&order_inquiry_id="+options['order_inquiry_id']+"&inquiry_type="+options['inquiry_type']
|
||
let params="currentConversationID="+options['currentConversationID']+"&order_inquiry_id="+options['order_inquiry_id'];
|
||
//判断历史路由栈中是否有打开过同一个问诊聊天
|
||
if(cur_options==params){
|
||
dlt = i+1 ; //目标页在栈中的位置
|
||
break;
|
||
}else{
|
||
is_otherCommon=true;
|
||
dlt = i+1 ; //目标页在栈中的位置
|
||
break;
|
||
}
|
||
|
||
}else if(pages[i].route=="pages/expertDetail/expertDetail" && cur_url.indexOf("pages/expertDetail/expertDetail")!=-1){
|
||
let options=pages[i].options;
|
||
let params='doctor_id='+options['doctor_id'];
|
||
if(currentOptions.indexOf(params)!=-1){
|
||
dlt = i+1 ; //目标页在栈中的位置
|
||
break;
|
||
}
|
||
}
|
||
};
|
||
if (!dlt) { //这个判断里面的跳转代码可根据自己项目实际需求场景进行修改
|
||
if (len < 10) {
|
||
wx.navigateTo(object);
|
||
} else {
|
||
wx.redirectTo(object)
|
||
}
|
||
} else { //主要是else里面的跳转代码用来解决页面栈10层限制问题导致卡住的问题
|
||
wx.navigateBack({
|
||
delta: len - dlt,
|
||
fail(error){
|
||
console.log(error)
|
||
},
|
||
success(){
|
||
// iOS使用navigateBack返回超过4级之后会导致页面点击事件失效以及都是聊天页但不是同一个用户,都对页面进行重新载入
|
||
if(is_otherCommon || len - dlt>=5){
|
||
wx.redirectTo(object)
|
||
}
|
||
|
||
}
|
||
});
|
||
}
|
||
|
||
// if (getCurrentPages().length > 9) {
|
||
// wx.redirectTo(object)
|
||
// // this.reLaunch(object)
|
||
// } else {
|
||
|
||
// wx.navigateTo(object)
|
||
// }
|
||
},
|
||
goTo(object){
|
||
//let pages=getCurrentPages();
|
||
|
||
},
|
||
// 其他跳转不处理
|
||
navigateBack(object) {
|
||
wx.navigateBack(object)
|
||
},
|
||
|
||
switchTab(object) {
|
||
wx.switchTab(object)
|
||
},
|
||
|
||
redirectTo(object) {
|
||
wx.redirectTo(object)
|
||
},
|
||
|
||
reLaunch(object) {
|
||
wx.reLaunch(object)
|
||
},
|
||
|
||
}
|