Browse Source

fix(student): 优化学员端页面初始化和跳转逻辑

- 在学员首页和登录页添加标记位控制 init 只执行一次
- 修复学员首页头像显示逻辑,添加默认头像
-优化登录页跳转逻辑,确保正确跳转到对应角色首页- 调整 my 页面 member_init 方法,添加测试 alert
master
liutong 1 year ago
parent
commit
95a32da069
  1. 29
      pages/student/index/index.vue
  2. 50
      pages/student/login/login.vue

29
pages/student/index/index.vue

@ -6,7 +6,7 @@
<view class="head">
<view class="head-img">
<!-- <fui-avatar width="136" :src="$util.img(member_info.headimg)"></fui-avatar> -->
<image class="pic" :src="member_info.memberHasOne ? member_info.memberHasOne.headimg : ''"></image>
<image class="pic" :src="member_info.memberHasOne ? member_info.memberHasOne.headimg : $util.img('/uniapp_src/static/images/common/yong_hu.png')"></image>
<view class="head-text">{{member_info.name}}</view>
</view>
</view>
@ -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(){

50
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 控制初始化
},
}
}
</script>

Loading…
Cancel
Save