From ea2c988d3d6f875e37cbe54268612f497f2b743a Mon Sep 17 00:00:00 2001 From: ysn <2126564605@qq.com> Date: Wed, 3 Jun 2026 15:56:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=B4=E5=83=8F-=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/user.js | 5 +- src/layout/components/Navbar.vue | 15 +- src/store/getters.js | 1 + src/store/modules/user.js | 11 +- src/views/system/user/profile/userAvatar.vue | 262 +++++++++---------- 5 files changed, 143 insertions(+), 151 deletions(-) diff --git a/src/api/system/user.js b/src/api/system/user.js index 5c08719..ec00852 100644 --- a/src/api/system/user.js +++ b/src/api/system/user.js @@ -97,11 +97,10 @@ export function postUserOpsPwd(data) { } // 用户头像上传 -export function uploadAvatar(data) { +export function postUserOpsAvatarUpdate(data) { return request({ - url: '/system/user/profile/avatar', + url: '/users/ops/avatar/update', method: 'post', - headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: data }) } diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index d0faaef..d7f54d5 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -50,20 +50,24 @@ trigger="hover" >
- + {{ userInfo.name }} - {{ userInfo.status }} + {{ + userInfo.status + ? userStateList.find((item) => item.id == userInfo.status) + .state + : "" + }} - + 所属单位 {{ userInfo.group }} @@ -132,7 +136,6 @@ import SystemSettingDialog from "./SystemSettingDialog"; import AboutDialog from "./AboutDialog"; export default { - dicts: ["sys_normal_disable"], components: { Breadcrumb, Logo, @@ -167,7 +170,7 @@ export default { }, }, computed: { - ...mapGetters(["sidebar", "avatar", "device", "userInfo"]), + ...mapGetters(["sidebar", "avatar", "device", "config", "userStateList", "userInfo"]), setting: { get() { return this.$store.state.settings.showSettings; diff --git a/src/store/getters.js b/src/store/getters.js index 5cd8572..8e15d1c 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -8,6 +8,7 @@ const getters = { visitedViews: state => state.tagsView.visitedViews, cachedViews: state => state.tagsView.cachedViews, loginInfo: state => state.user.loginInfo, + userStateList: state => state.user.userStateList, token: state => state.user.token, userInfo: state => state.user.userInfo, introduction: state => state.user.introduction, diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 46b3cec..987a215 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -2,7 +2,7 @@ import store from '@/store' import router from '@/router' import cache from '@/plugins/cache' import { MessageBox } from 'element-ui' -import { login, logout, getInfo, getCommonConfigOptions } from '@/api/login' +import { login, logout, getInfo, getCommonConfigOptions, postUserStateList } from '@/api/login' import { getToken, getLoginInfo, setToken, setLoginInfo, removeToken, removeLoginInfo } from '@/utils/auth' import { isHttp, isEmpty } from "@/utils/validate" import defAva from '@/assets/images/profile.jpg' @@ -11,11 +11,12 @@ import { initMinioClient, parseMinioFilePath } from '@/utils/requestMinio' const user = { state: { loginInfo: getLoginInfo(), + userStateList: [], userInfo: {}, token: getToken(), roles: [], permissions: [], - netConfig: {} + netConfig: {}, }, mutations: { @@ -37,6 +38,9 @@ const user = { SET_NET_CONFIG: (state, netConfig) => { state.netConfig = netConfig }, + SET_USER_STATE_LIST: (state, userStateList) => { + state.userStateList = userStateList + }, }, actions: { // 登录 @@ -60,6 +64,9 @@ const user = { GetInfo({ commit, state }) { return new Promise((resolve, reject) => { getInfo().then(res => { + postUserStateList().then(res => { + commit('SET_USER_STATE_LIST', res.data.list) + }) const user = res.data let avatar = user.avatar || "" if (!isHttp(avatar)) { diff --git a/src/views/system/user/profile/userAvatar.vue b/src/views/system/user/profile/userAvatar.vue index 59afb35..36ec279 100644 --- a/src/views/system/user/profile/userAvatar.vue +++ b/src/views/system/user/profile/userAvatar.vue @@ -1,162 +1,133 @@ + + +.upload-progress-container { + padding: 20px; +} + +.upload-progress-info { + margin-bottom: 15px; + text-align: center; + font-size: 14px; + color: #666; +} + \ No newline at end of file