From d037a768560fa55104a465a1d335514803aaca42 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 31 Mar 2025 19:00:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E9=87=8D=E7=BD=AE=E5=8A=9F=E8=83=BD=E5=8F=8A?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/profile.ts | 13 ++ src/components/ForcePasswdChange/index.vue | 198 +++++++++++++++++++++ src/layouts/BasicLayout.vue | 3 + src/store/modules/user.ts | 10 ++ 4 files changed, 224 insertions(+) create mode 100644 src/components/ForcePasswdChange/index.vue diff --git a/src/api/profile.ts b/src/api/profile.ts index 63295ed3..3e52e664 100644 --- a/src/api/profile.ts +++ b/src/api/profile.ts @@ -37,3 +37,16 @@ export function updateUserPassword(oldPassword: string, newPassword: string) { data: { oldPassword, newPassword }, }); } + +/** + * 用户强制重置密码 + * @param password 密码 + * @returns object + */ +export function updateUserPasswordForce(password: string) { + return request({ + url: '/system/user/profile/password-force', + method: 'PUT', + data: { password }, + }); +} diff --git a/src/components/ForcePasswdChange/index.vue b/src/components/ForcePasswdChange/index.vue new file mode 100644 index 00000000..bd9c0ec4 --- /dev/null +++ b/src/components/ForcePasswdChange/index.vue @@ -0,0 +1,198 @@ + + + + diff --git a/src/layouts/BasicLayout.vue b/src/layouts/BasicLayout.vue index 2d5dddcc..f9bd2e0d 100644 --- a/src/layouts/BasicLayout.vue +++ b/src/layouts/BasicLayout.vue @@ -8,6 +8,7 @@ import { import RightContent from './components/RightContent.vue'; import Tabs from './components/Tabs.vue'; import GlobalMask from '@/components/GlobalMask/index.vue'; +import ForcePasswdChange from '@/components/ForcePasswdChange/index.vue'; import { scriptUrl } from '@/assets/js/icon_font_8d5l8fzk5b87iudi'; import { computed, @@ -362,6 +363,8 @@ onUnmounted(() => { + + diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 14a3011a..003ac7e9 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -9,6 +9,8 @@ import { parseUrlPath } from '@/plugins/file-static-url'; /**用户信息类型 */ type UserInfo = { + /**用户ID */ + forcePasswdChange: boolean; /**用户ID */ userId: string; /**登录账号 */ @@ -33,6 +35,7 @@ type UserInfo = { const useUserStore = defineStore('user', { state: (): UserInfo => ({ + forcePasswdChange: false, userId: '', userName: '', roles: [], @@ -104,6 +107,9 @@ const useUserStore = defineStore('user', { if (res.code === RESULT_CODE_SUCCESS && res.data) { const token = res.data[TOKEN_RESPONSE_FIELD]; setToken(token); + if (res.data?.forcePasswdChange) { + this.forcePasswdChange = true; + } } return res; }, @@ -139,6 +145,10 @@ const useUserStore = defineStore('user', { // } // useLayoutStore().changeWaterMark(waterMarkContent); useLayoutStore().changeWaterMark(''); + // 强制修改密码 + if (res.data?.forcePasswdChange) { + this.forcePasswdChange = true; + } } // 网络错误时退出登录状态 if (res.code === 0) {