diff --git a/src/api/modules/user.js b/src/api/modules/user.js index 05cc251..16c3138 100644 --- a/src/api/modules/user.js +++ b/src/api/modules/user.js @@ -24,11 +24,16 @@ export function getUserDetail(id) { return get(`/user/detail/${id}`) } -export function getUserInfo() { +export function getUserInfo(userName) { + // 兼容老逻辑:不传 userName 走 system 接口 + // 新逻辑:有 userName 则按用户名走对应接口 + if (userName) { + return getUserInfoByUserName(encodeURIComponent(userName)) + } return get('/system/user/getInfo') } // 获取用户信息(按用户名) export function getUserInfoByUserName(userName) { return get(`/user/getInfo/${userName}`) -} +} \ No newline at end of file diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue index 9ed6912..a689730 100644 --- a/src/pages/login/index.vue +++ b/src/pages/login/index.vue @@ -84,6 +84,9 @@ async function handleLogin() { if (response.refreshToken) { userStore.setRefreshToken(response.refreshToken) } + + // 记录登录账号,供后续页面按用户名取用户信息 + userStore.setUserName({ userName: formData.username }) } uni.showToast({ title: '登录成功', icon: 'success' }) diff --git a/src/pages/user/index.vue b/src/pages/user/index.vue index 0fc6e65..c2eea7b 100644 --- a/src/pages/user/index.vue +++ b/src/pages/user/index.vue @@ -8,13 +8,13 @@ width="120rpx" height="120rpx" /> - {{ userInfo.name }}-{{ userInfo.position }} - 所属单位:{{ userInfo.unit }} + {{ userInfo.nickName }}-{{ userInfo.remark }} + 所属单位:{{ userInfo.deptName }} - 联系方式:{{ userInfo.phone }} 邮箱:{{ userInfo.email }} + 联系方式:{{ userInfo.phonenumber }} 邮箱:{{ userInfo.email }} @@ -40,7 +40,7 @@ import { getUserInfo } from '@/api' const userInfo = ref({ id: '', // 用户ID2 - name: '', // 用户名 + nickName: '', // 用户名 phone: '', // 手机号 email: '', // 邮箱 position: '', // 职位 @@ -52,24 +52,36 @@ const getInfo = async () => { const res = await getUserInfo() if (res?.code === 200) { - const data = res.user || {} - const dept = res.user.dept || {} - const role = Array.isArray(res.user.roles) ? res.user.roles[0] : null + // const data = res.user || {} + // const dept = data.dept || {} + // roles 可能为空/不存在,兜底成空对象,避免 role 为 null/undefined 时取 roleName 报错 + // const role = Array.isArray(data.roles) ? (data.roles[0] || {}) : {} + + // userInfo.value = { + // id: data.userId ?? data.id ?? '', + // name: data.nickName ?? data.userName ?? '', + // phone: data.phonenumber ?? '', + // email: data.email ?? '', + // // 后端若有 remark/roleName 取其中一个;字段不存在则为空字符串 + // position: data.remark ?? role.roleName ?? '', + // unit: dept.deptName ?? '', + // avatar: data.avatar ?? data.avatarUrl ?? '', + // } + // console.log(userInfo.value) userInfo.value = { - id: data.userId ?? data.id ?? '', - name: data.nickName ?? data.userName ?? '', - phone: data.phonenumber ?? '', - email: data.email ?? '', - - // position: data.remark ?? role?.roleName ?? '', - position: role.roleName ?? '', - unit: dept.deptName ?? '', - avatar: data.avatar ?? data.avatarUrl ?? '', + // id: res.data.userId ?? data.id ?? '', + nickName: res.user.nickName, + phonenumber: res.user.phonenumber ?? '', + email: res.user.email ?? '', + remark: res.user.remark ?? res.user.roleNames ?? '', + deptName: res.user.dept.deptName ?? '', + avatar: res.user.avatar ?? res.user.avatarUrl ?? '', } + console.log(userInfo.value) } else { uni.showToast({ - title: res?.msg || '获取用户信息失败', + title: res?.msg || '获取用户信息失败1', icon: 'none', }) }