|
|
@@ -1,22 +1,11 @@
|
|
|
<template>
|
|
|
<el-drawer v-model="isDrawer" :size="width" :title="props.title" @close="handleReset">
|
|
|
- <el-form
|
|
|
- :model="formParams"
|
|
|
- :rules="rules"
|
|
|
- ref="formRef"
|
|
|
- label-placement="left"
|
|
|
- :label-width="80"
|
|
|
- >
|
|
|
+ <el-form :model="formParams" :rules="rules" ref="formRef" label-placement="left" :label-width="80">
|
|
|
<el-form-item label="登录账号" prop="username">
|
|
|
<el-input placeholder="请输入登录账号" v-model="formParams.username" disabled />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="新密码" prop="password">
|
|
|
- <el-input
|
|
|
- type="password"
|
|
|
- show-password-on="mousedown"
|
|
|
- placeholder="请输入密码"
|
|
|
- v-model="formParams.password"
|
|
|
- />
|
|
|
+ <el-input type="password" show-password-on="mousedown" placeholder="请输入密码" v-model="formParams.password" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="确认密码" prop="passwordRe">
|
|
|
<el-input
|
|
|
@@ -40,25 +29,40 @@
|
|
|
<script lang="ts" setup>
|
|
|
import { ref } from 'vue';
|
|
|
import { FormRules, ElMessage } from 'element-plus';
|
|
|
- import { cloneDeep } from 'lodash-es';
|
|
|
+ import type { FormInstance } from 'element-plus';
|
|
|
+ // import { cloneDeep } from 'lodash-es';
|
|
|
import { UserType, resetCode } from '@/api/system/user-operate';
|
|
|
+ import md5 from 'blueimp-md5';
|
|
|
+ import { checkPwdRegexp, PWD_KEY, PWD_MESSAGE } from '@/utils/pwd';
|
|
|
+
|
|
|
+ const validateNewPassword = (rule: any, value: string, callback: any) => {
|
|
|
+ if (value.length < 6) {
|
|
|
+ callback(new Error('密码长度不能小于6位'));
|
|
|
+ } else if (!checkPwdRegexp(value)) {
|
|
|
+ callback(new Error(PWD_MESSAGE));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const validateConfirmPassword = (rule: any, value: string, callback: any) => {
|
|
|
+ if (value !== formParams.value.password) {
|
|
|
+ callback(new Error('两次输入密码不一致'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
const rules: FormRules = {
|
|
|
- username: {
|
|
|
- required: true,
|
|
|
- message: '登录账号不能为空',
|
|
|
- trigger: 'blur',
|
|
|
- },
|
|
|
- password: {
|
|
|
- required: true,
|
|
|
- message: '密码不能为空',
|
|
|
- trigger: 'blur',
|
|
|
- },
|
|
|
- passwordRe: {
|
|
|
- required: true,
|
|
|
- message: '密码不能为空',
|
|
|
- trigger: 'blur',
|
|
|
- },
|
|
|
+ username: [{ required: true, message: '登录账号不能为空', trigger: 'blur' }],
|
|
|
+ password: [
|
|
|
+ { required: true, message: '新密码不能为空', trigger: 'blur' },
|
|
|
+ { validator: validateNewPassword, trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ passwordRe: [
|
|
|
+ { required: true, message: '请确认新密码', trigger: 'blur' },
|
|
|
+ { validator: validateConfirmPassword, trigger: 'blur' },
|
|
|
+ ],
|
|
|
};
|
|
|
const emit = defineEmits(['change']);
|
|
|
|
|
|
@@ -79,13 +83,13 @@
|
|
|
});
|
|
|
|
|
|
const message = ElMessage;
|
|
|
- const formRef: any = ref(null);
|
|
|
+ const formRef = ref<FormInstance>();
|
|
|
const isDrawer = ref(false);
|
|
|
const subLoading = ref(false);
|
|
|
|
|
|
const formParams = ref<UserType>(defaultValueRef());
|
|
|
|
|
|
- async function openDrawer(username?, userId? ) {
|
|
|
+ async function openDrawer(username?, userId?) {
|
|
|
formParams.value.username = username;
|
|
|
formParams.value.userId = userId;
|
|
|
isDrawer.value = true;
|
|
|
@@ -96,31 +100,26 @@
|
|
|
}
|
|
|
|
|
|
function formSubmit() {
|
|
|
- formRef.value.validate((valid) => {
|
|
|
- if (!valid) {
|
|
|
- return message.error('请填写完整信息');
|
|
|
- }
|
|
|
- // 克隆
|
|
|
- const params = cloneDeep(formParams.value);
|
|
|
- if (params.password != params.passwordRe) {
|
|
|
- return message.error('两次密码不一致');
|
|
|
- }
|
|
|
- const addData = {
|
|
|
- newPwd: formParams.value.password as string,
|
|
|
- userId: Number(formParams.value.userId),
|
|
|
- };
|
|
|
- resetCode(addData).then(() => {
|
|
|
- emit('change');
|
|
|
- handleReset();
|
|
|
- closeDrawer();
|
|
|
- ElMessage.success('重置成功');
|
|
|
- });
|
|
|
+ if (!formRef.value) return;
|
|
|
+ formRef.value.validate((valid: boolean) => {
|
|
|
+ if (valid) {
|
|
|
+ const addData = {
|
|
|
+ userId: Number(formParams.value.userId),
|
|
|
+ newPwd: md5(PWD_KEY + formParams.value.password),
|
|
|
+ };
|
|
|
|
|
|
- //然后进行调接口
|
|
|
+ resetCode(addData).then(() => {
|
|
|
+ emit('change');
|
|
|
+ handleReset();
|
|
|
+ closeDrawer();
|
|
|
+ ElMessage.success('重置成功');
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function handleReset() {
|
|
|
+ if (!formRef.value) return;
|
|
|
formRef.value.resetFields();
|
|
|
formParams.value = Object.assign(formParams.value, defaultValueRef());
|
|
|
}
|