diff --git a/pages/student/index/index.vue b/pages/student/index/index.vue index da57296..5539070 100644 --- a/pages/student/index/index.vue +++ b/pages/student/index/index.vue @@ -6,7 +6,7 @@ - + {{member_info.name}} @@ -133,6 +133,8 @@ }, data() { return { + inited: false, // 添加标记位控制 init 只执行一次 + //上传接口地址 uploadApiUrl: ``, uploadImageApiUrl: `${Api_url}/file/image`, @@ -173,7 +175,13 @@ onLoad() { this.openViewHome()//检测首页是否正确跳转-不正确则进行重定向 }, - onShow(){}, + onShow(){ + // 防止 onShow 触发后重复 init + if (!this.inited) { + this.init() + this.inited = true + } + }, methods: { //学生页面初始化 async init(){ @@ -184,8 +192,8 @@ }, - //检测首页是否正确跳转-不正确则进行重定向 - async openViewHome(){ + + async openViewHome_COPY(){ //获取当前页面路径 let pages = getCurrentPages(); //当前页面路径 @@ -195,21 +203,24 @@ this.openPath = this.path_arr[userType] + console.log( + '跳转', + this.thisPath, + userType, + this.path_arr[userType] + ) if(this.thisPath != this.openPath){ + console.log('打印1') //跳转tabBar首页-页面 uni.setStorageSync('tabBerIndex', 0) uni.navigateTo({ url: this.openPath }) + return }else{ //页面正确的情况下->执行学生页面初始化 this.init() } - - - console.log(123123123123,this.thisPath,userType,this.path_arr[userType]) - - }, async getMemberIndex(){ diff --git a/pages/student/login/login.vue b/pages/student/login/login.vue index 6fdaf19..efe201c 100644 --- a/pages/student/login/login.vue +++ b/pages/student/login/login.vue @@ -63,6 +63,8 @@ import apiRoute from '@/api/apiRoute.js'; export default { data() { return { + inited: false, // 添加标记位控制 init 只执行一次 + password: true, user: '', //账户 password1: '', //密码 @@ -85,6 +87,13 @@ export default { } ], picker_show_loginType:false,//是否显示下拉窗组件 + + + path_arr:{ + '1':'/pages/coach/home/index',//教练 + '2':'/pages/market/index/index',//销售 + '3':'/pages/student/index/index',//学员 + }, } }, onLoad(options) { @@ -93,7 +102,11 @@ export default { this.loginType_str = selectedItem ? selectedItem.text : '未知类型'; // uni.hideHomeButton() // console.log(uni.getStorageSync('um_id')) - this.init() + // 防止 onShow 触发后重复 init + if (!this.inited) { + this.openViewHome() + this.inited = true + } }, methods: { async init(){ @@ -103,7 +116,7 @@ export default { //#endif }, input(e) { - console.log(e) + //console.log(e) }, change() { this.password = !this.password @@ -267,6 +280,39 @@ export default { } }, + + //检测首页是否正确跳转-不正确则进行重定向 + async openViewHome() { + const userType = String(uni.getStorageSync('userType') || ''); + const token = uni.getStorageSync('token') || '' + + if(!userType || !token){ + return + } + + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + const thisPath = '/' + currentPage.route; + + + const openPath = this.path_arr[userType]; + + console.log('当前路径:', thisPath); + console.log('用户类型:', userType); + console.log('应跳转路径:', openPath); + + if (thisPath !== openPath) { + // 如果不是正确的首页路径,则跳转到对应角色首页 + uni.setStorageSync('tabBerIndex', 0) + + // 使用 redirectTo 替代 navigateTo,避免页面栈堆积 + uni.redirectTo({ + url: openPath + }); + return + } + // 如果是正确的路径,交给 onShow 控制初始化 + }, } }