82 lines
1.6 KiB
TypeScript
82 lines
1.6 KiB
TypeScript
// 员工管理主界面 - 根据用户角色跳转到不同界面
|
|
import { UserInfo } from '../../types';
|
|
|
|
Page({
|
|
data: {
|
|
userInfo: null as UserInfo | null,
|
|
isAdmin: false,
|
|
loading: true
|
|
},
|
|
|
|
onLoad() {
|
|
// 获取用户信息
|
|
this.getUserInfo();
|
|
},
|
|
|
|
onShow() {
|
|
// 页面显示时重新获取用户信息
|
|
this.getUserInfo();
|
|
},
|
|
|
|
/**
|
|
* 获取用户信息并判断角色
|
|
*/
|
|
getUserInfo() {
|
|
this.setData({ loading: true });
|
|
|
|
// 从全局数据获取用户信息
|
|
const app = getApp<any>();
|
|
if (app.globalData.userInfo) {
|
|
const userInfo = app.globalData.userInfo;
|
|
const isAdmin = userInfo.role === 'ADMIN';
|
|
|
|
this.setData({
|
|
userInfo,
|
|
isAdmin,
|
|
loading: false
|
|
});
|
|
|
|
// 根据角色自动跳转到对应界面
|
|
this.redirectToRolePage();
|
|
} else {
|
|
// 如果没有用户信息,跳转到登录页面
|
|
wx.redirectTo({
|
|
url: '/pages/index/index'
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 根据用户角色跳转到对应页面
|
|
*/
|
|
redirectToRolePage() {
|
|
const { isAdmin } = this.data;
|
|
|
|
if (isAdmin) {
|
|
// 管理员跳转到管理员界面
|
|
wx.redirectTo({
|
|
url: '/pages/staff/admin-dashboard'
|
|
});
|
|
} else {
|
|
// 员工跳转到员工界面
|
|
wx.redirectTo({
|
|
url: '/pages/staff/employee-dashboard'
|
|
});
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 手动选择界面(用于测试或特殊情况)
|
|
*/
|
|
goToAdminPage() {
|
|
wx.redirectTo({
|
|
url: '/pages/staff/admin-dashboard'
|
|
});
|
|
},
|
|
|
|
goToEmployeePage() {
|
|
wx.redirectTo({
|
|
url: '/pages/staff/employee-dashboard'
|
|
});
|
|
}
|
|
}); |