From 0a56c0dcf0135e735147c02cb41d36289b01464b Mon Sep 17 00:00:00 2001 From: chenqi Date: Tue, 13 Jan 2026 15:26:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(store):=20=E6=9B=B4=E6=96=B0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=A8=A1=E5=9D=97=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BB=A5=E6=94=AF=E6=8C=81=E7=A7=9F=E6=88=B7=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整导入语句顺序以符合代码风格规范 - 添加tenantName字段用于存储租户名称 - 添加optionMap字段用于存储租户配置项映射 - 修改getInfo方法以从optionMap优先获取医院名称配置 - 添加tenantName赋值逻辑以支持租户名称显示 - 移除已废弃的用户个人资料相关组件文件 --- openhis-ui-vue3/src/store/modules/user.js | 173 ++--- .../src/views/system/user copy/authRole.vue | 112 ---- .../src/views/system/user copy/index.vue | 621 ------------------ .../views/system/user copy/profile/index.vue | 87 --- .../system/user copy/profile/resetPwd.vue | 65 -- .../system/user copy/profile/userAvatar.vue | 171 ----- .../system/user copy/profile/userInfo.vue | 67 -- 7 files changed, 88 insertions(+), 1208 deletions(-) delete mode 100644 openhis-ui-vue3/src/views/system/user copy/authRole.vue delete mode 100644 openhis-ui-vue3/src/views/system/user copy/index.vue delete mode 100644 openhis-ui-vue3/src/views/system/user copy/profile/index.vue delete mode 100644 openhis-ui-vue3/src/views/system/user copy/profile/resetPwd.vue delete mode 100644 openhis-ui-vue3/src/views/system/user copy/profile/userAvatar.vue delete mode 100644 openhis-ui-vue3/src/views/system/user copy/profile/userInfo.vue diff --git a/openhis-ui-vue3/src/store/modules/user.js b/openhis-ui-vue3/src/store/modules/user.js index 7068f658..3d78ba00 100644 --- a/openhis-ui-vue3/src/store/modules/user.js +++ b/openhis-ui-vue3/src/store/modules/user.js @@ -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 diff --git a/openhis-ui-vue3/src/views/system/user copy/authRole.vue b/openhis-ui-vue3/src/views/system/user copy/authRole.vue deleted file mode 100644 index 6a6cf302..00000000 --- a/openhis-ui-vue3/src/views/system/user copy/authRole.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/system/user copy/index.vue b/openhis-ui-vue3/src/views/system/user copy/index.vue deleted file mode 100644 index 45c6f039..00000000 --- a/openhis-ui-vue3/src/views/system/user copy/index.vue +++ /dev/null @@ -1,621 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/system/user copy/profile/index.vue b/openhis-ui-vue3/src/views/system/user copy/profile/index.vue deleted file mode 100644 index 23c6b0e1..00000000 --- a/openhis-ui-vue3/src/views/system/user copy/profile/index.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/openhis-ui-vue3/src/views/system/user copy/profile/resetPwd.vue b/openhis-ui-vue3/src/views/system/user copy/profile/resetPwd.vue deleted file mode 100644 index f122bd09..00000000 --- a/openhis-ui-vue3/src/views/system/user copy/profile/resetPwd.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - diff --git a/openhis-ui-vue3/src/views/system/user copy/profile/userAvatar.vue b/openhis-ui-vue3/src/views/system/user copy/profile/userAvatar.vue deleted file mode 100644 index 23fe3b9d..00000000 --- a/openhis-ui-vue3/src/views/system/user copy/profile/userAvatar.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/system/user copy/profile/userInfo.vue b/openhis-ui-vue3/src/views/system/user copy/profile/userInfo.vue deleted file mode 100644 index 1710582c..00000000 --- a/openhis-ui-vue3/src/views/system/user copy/profile/userInfo.vue +++ /dev/null @@ -1,67 +0,0 @@ - - -