2023-11-17 09:51:35 +08:00

94 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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)
},
}