From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/views/Profile/components/ResetPwd.vue | 73 ++++++++++++++++++++++++++++++++++++
1 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/src/views/Profile/components/ResetPwd.vue b/src/views/Profile/components/ResetPwd.vue
new file mode 100644
index 0000000..d9e0de1
--- /dev/null
+++ b/src/views/Profile/components/ResetPwd.vue
@@ -0,0 +1,73 @@
+<template>
+ <el-form ref="formRef" :model="password" :rules="rules" :label-width="200">
+ <el-form-item :label="t('profile.password.oldPassword')" prop="oldPassword">
+ <InputPassword v-model="password.oldPassword" />
+ </el-form-item>
+ <el-form-item :label="t('profile.password.newPassword')" prop="newPassword">
+ <InputPassword v-model="password.newPassword" strength />
+ </el-form-item>
+ <el-form-item :label="t('profile.password.confirmPassword')" prop="confirmPassword">
+ <InputPassword v-model="password.confirmPassword" strength />
+ </el-form-item>
+ <el-form-item>
+ <XButton :title="t('common.save')" type="primary" @click="submit(formRef)" />
+ <XButton :title="t('common.reset')" type="danger" @click="reset(formRef)" />
+ </el-form-item>
+ </el-form>
+</template>
+<script lang="ts" setup>
+import type { FormInstance, FormRules } from 'element-plus'
+
+import { InputPassword } from '@/components/InputPassword'
+import { updateUserPassword } from '@/api/system/user/profile'
+
+defineOptions({ name: 'ResetPwd' })
+
+const { t } = useI18n()
+const message = useMessage()
+const formRef = ref<FormInstance>()
+const password = reactive({
+ oldPassword: '',
+ newPassword: '',
+ confirmPassword: ''
+})
+
+// 琛ㄥ崟鏍¢獙
+const equalToPassword = (_rule, value, callback) => {
+ if (password.newPassword !== value) {
+ callback(new Error(t('profile.password.diffPwd')))
+ } else {
+ callback()
+ }
+}
+
+const rules = reactive<FormRules>({
+ oldPassword: [
+ { required: true, message: t('profile.password.oldPwdMsg'), trigger: 'blur' },
+ { min: 4, max: 16, message: t('profile.password.pwdRules'), trigger: 'blur' }
+ ],
+ newPassword: [
+ { required: true, message: t('profile.password.newPwdMsg'), trigger: 'blur' },
+ { min: 4, max: 16, message: t('profile.password.pwdRules'), trigger: 'blur' }
+ ],
+ confirmPassword: [
+ { required: true, message: t('profile.password.cfPwdMsg'), trigger: 'blur' },
+ { required: true, validator: equalToPassword, trigger: 'blur' }
+ ]
+})
+
+const submit = (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ formEl.validate(async (valid) => {
+ if (valid) {
+ await updateUserPassword(password.oldPassword, password.newPassword)
+ message.success(t('common.updateSuccess'))
+ }
+ })
+}
+
+const reset = (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ formEl.resetFields()
+}
+</script>
--
Gitblit v1.8.0