diff --git a/src/api/sys/model/userModel.ts b/src/api/sys/model/userModel.ts
index 8fb5452d4..c459cee6e 100644
--- a/src/api/sys/model/userModel.ts
+++ b/src/api/sys/model/userModel.ts
@@ -40,3 +40,9 @@ export interface GetUserInfoModel {
desc?: string;
homePath?: string;
}
+
+export interface ChangePasswordParams {
+ oldPassword: string;
+ newPassword: string;
+ newPasswordConfirm: string;
+}
diff --git a/src/api/sys/user.ts b/src/api/sys/user.ts
index 73b00bae7..c4fd64216 100644
--- a/src/api/sys/user.ts
+++ b/src/api/sys/user.ts
@@ -1,5 +1,10 @@
import { ApiServiceEnum, defHttp } from '@/utils/http/axios';
-import { GetUserInfoModel, LoginParams, LoginResultModel } from './model/userModel';
+import {
+ ChangePasswordParams,
+ GetUserInfoModel,
+ LoginParams,
+ LoginResultModel,
+} from './model/userModel';
import { ErrorMessageMode } from '#/axios';
@@ -9,6 +14,7 @@ enum Api {
GetUserInfo = '/getUserInfo',
GetPermCode = '/getPermCode',
TestRetry = '/testRetry',
+ changePassword = 'sys/auth/changePassword',
}
/**
@@ -54,3 +60,15 @@ export function testRetry() {
},
);
}
+
+/**
+ * 修改密码
+ * @param params 参数
+ */
+export const changePasswordApi = (params: ChangePasswordParams) => {
+ return defHttp.post({
+ service: ApiServiceEnum.SMART_SYSTEM,
+ url: Api.changePassword,
+ data: params,
+ });
+};
diff --git a/src/layouts/default/header/components/user-dropdown/ChangePasswordModal.vue b/src/layouts/default/header/components/user-dropdown/ChangePasswordModal.vue
new file mode 100644
index 000000000..03df58955
--- /dev/null
+++ b/src/layouts/default/header/components/user-dropdown/ChangePasswordModal.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/layouts/default/header/components/user-dropdown/index.vue b/src/layouts/default/header/components/user-dropdown/index.vue
index d133d3618..911c3331a 100644
--- a/src/layouts/default/header/components/user-dropdown/index.vue
+++ b/src/layouts/default/header/components/user-dropdown/index.vue
@@ -24,6 +24,11 @@
:text="t('layout.header.dropdownChangeApi')"
icon="ant-design:swap-outlined"
/>
+