feat(store): 更新用户模块状态管理以支持租户配置

- 调整导入语句顺序以符合代码风格规范
- 添加tenantName字段用于存储租户名称
- 添加optionMap字段用于存储租户配置项映射
- 修改getInfo方法以从optionMap优先获取医院名称配置
- 添加tenantName赋值逻辑以支持租户名称显示
- 移除已废弃的用户个人资料相关组件文件
This commit is contained in:
2026-01-13 15:26:46 +08:00
parent eff98ea5eb
commit 0a56c0dcf0
7 changed files with 88 additions and 1208 deletions

View File

@@ -1,96 +1,99 @@
import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import {getInfo, login, logout} from '@/api/login'
import {getToken, removeToken, setToken} from '@/utils/auth'
import defAva from '@/assets/images/user.png'
import { defineStore } from 'pinia'
import {defineStore} from 'pinia'
const useUserStore = defineStore(
'user',
{
state: () => ({
token: getToken(),
id: '',
name: '',
avatar: '',
orgId: '',
practitionerId: '',
orgName: '',
nickName: '',
fixmedinsCode: '', // 医疗机构编码
roles: [],
permissions: [],
tenantId: '',
hospitalName:''
}),
actions: {
// 登录
login(userInfo) {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
const tenantId = userInfo.tenantId
return new Promise((resolve, reject) => {
login(username, password, code, uuid ,tenantId).then(res => {
setToken(res.token)
this.token = res.token
this.tenantId = tenantId
resolve()
}).catch(error => {
reject(error)
'user',
{
state: () => ({
token: getToken(),
id: '',
name: '',
avatar: '',
orgId: '',
practitionerId: '',
orgName: '',
nickName: '',
fixmedinsCode: '', // 医疗机构编码
roles: [],
permissions: [],
tenantId: '',
tenantName: '', // 租户名称
hospitalName:'',
optionMap: {} // 租户配置项Map从sys_tenant_option表读取
}),
actions: {
// 登录
login(userInfo) {
const username = userInfo.username.trim()
const password = userInfo.password
const code = userInfo.code
const uuid = userInfo.uuid
const tenantId = userInfo.tenantId
return new Promise((resolve, reject) => {
login(username, password, code, uuid ,tenantId).then(res => {
setToken(res.token)
this.token = res.token
this.tenantId = tenantId
resolve()
}).catch(error => {
reject(error)
})
})
})
},
// 获取用户信息
getInfo() {
return new Promise((resolve, reject) => {
getInfo().then(res => {
const user = res.user
const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
},
// 获取用户信息
getInfo() {
return new Promise((resolve, reject) => {
getInfo().then(res => {
const user = res.user
const avatar = (user.avatar == "" || user.avatar == null) ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
this.roles = res.roles
this.permissions = res.permissions
} else {
this.roles = ['ROLE_DEFAULT']
}
// console.log('user info:', user);
this.id = user.userId
this.name = user.userName // 用户账号对应数据库的user_name字段如'admin'
this.orgId = user.orgId
this.orgName = user.orgName
this.nickName = user.nickName
this.practitionerId = res.practitionerId
this.fixmedinsCode = res.optionJson.fixmedinsCode
this.avatar = avatar
this.hospitalName = res.optionJson.hospitalName
// 获取tenantId优先从res.user获取否则从res获取
this.tenantId = user.tenantId || res.tenantId || this.tenantId
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
this.roles = res.roles
this.permissions = res.permissions
} else {
this.roles = ['ROLE_DEFAULT']
}
// console.log('user info:', user);
this.id = user.userId
this.name = user.userName // 用户账号对应数据库的user_name字段如'admin'
this.orgId = user.orgId
this.orgName = user.orgName
this.nickName = user.nickName
this.practitionerId = res.practitionerId
this.fixmedinsCode = res.optionJson.fixmedinsCode
this.avatar = avatar
this.optionMap = res.optionMap || {}
// 优先从optionMap获取配置如果没有则从optionJson获取
this.hospitalName = this.optionMap.hospitalName || res.optionJson.hospitalName || ''
this.tenantName = res.tenantName || ''
resolve(res)
}).catch(error => {
reject(error)
resolve(res)
}).catch(error => {
reject(error)
})
})
})
},
// 退出系统
logOut() {
return new Promise((resolve, reject) => {
logout(this.token).then(() => {
this.token = ''
this.roles = []
this.permissions = []
this.tenantId = ''
removeToken()
resolve()
}).catch(error => {
reject(error)
},
// 退出系统
logOut() {
return new Promise((resolve, reject) => {
logout(this.token).then(() => {
this.token = ''
this.roles = []
this.permissions = []
this.tenantId = ''
removeToken()
resolve()
}).catch(error => {
reject(error)
})
})
})
},
removeRoles(){
this.roles = []
},
removeRoles(){
this.roles = []
}
}
}
})
})
export default useUserStore