gemercheung 1 год назад
Родитель
Сommit
4e9914137f
2 измененных файлов с 57 добавлено и 32 удалено
  1. 26 12
      src/request/users.ts
  2. 31 20
      src/view/users-password-edit.vue

+ 26 - 12
src/request/users.ts

@@ -2,6 +2,7 @@ import { sendFetch, PageProps } from './index'
 import { ResPage, ResResult } from './type'
 import { encodePwd } from "@/util";
 import * as URL from "./URL";
+import { ElMessage } from "element-plus";
 
 export type UserType = {
     createBy: string
@@ -56,18 +57,31 @@ export const updateUserStatusFetch = (params: Pick<UserType, 'userId' | 'status'
     });
 
 export type ChangePasswordParam = Pick<UserType, 'confirmPwd' | 'msgAuthCode' | 'password' | 'phoneNum'>
-export const changePassword = (params: ChangePasswordParam) =>
-    sendFetch<ResResult>(URL.changePassword, {
-        method: "post",
-        body: JSON.stringify({
-            confirmPwd: encodePwd(params.confirmPwd),
-            msgAuthCode: params.msgAuthCode,
-            password: encodePwd(params.password),
-            phoneNum: params.phoneNum
-        }),
-    }, {
-        useResult: true
-    });
+export const changePassword = (params: ChangePasswordParam) => {
+
+    const ent = encodePwd(params.password)
+    if (params.password !== params.confirmPwd) {
+        ElMessage.error("当前密码与密码确认不一致!");
+        return Promise.reject()
+    } else {
+        return sendFetch<ResResult>(URL.changePassword, {
+            method: "post",
+            body: JSON.stringify({
+                confirmPwd: ent,
+                password: ent,
+                msgAuthCode: params.msgAuthCode,
+                phoneNum: params.phoneNum
+            }),
+        }, {
+            useResult: true
+        });
+    }
+
+
+
+}
+
+
 
 export const getMsgAuthCode = (areaNum: string,
     phoneNum: string) =>

+ 31 - 20
src/view/users-password-edit.vue

@@ -64,26 +64,6 @@ const addPassFlag = ref(false)//图标显示标识
 
 const baseFormRef = ref<FormInstance>();
 
-const rules = reactive<FormRules>({
-
-
-  userName: [
-    { required: true, message: "请输入账号", trigger: "blur" },
-  ],
-  msgAuthCode: [
-    { required: true, message: "请输入验证码", trigger: "change" },
-  ],
-
-  password: [
-    { required: true, pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$/, message: "请输入8-16位数字、字母大小写组合", trigger: "blur" },
-    { required: true, min: 8, message: '密码太短!', trigger: "blur" },
-  ],
-  confirmPwd: [
-    { required: true, pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$/, message: "请输入8-16位数字、字母大小写组合", trigger: "blur" },
-    { required: true, min: 8, message: '密码太短!', trigger: "blur" },
-  ]
-},)
-
 const props = defineProps<{
   user: UserType,
   submit: (data: ChangePasswordParam) => Promise<any>;
@@ -109,6 +89,37 @@ const data = ref<UserType>({
 });
 
 
+const equalToPassword = (_, value: any, callback: any) => {
+  if (data.value.password !== value) {
+    callback(new Error("两次输入的密码不一致"));
+  } else {
+    callback();
+  }
+};
+
+const rules = reactive<FormRules>({
+
+
+  userName: [
+    { required: true, message: "请输入账号", trigger: "blur" },
+  ],
+  msgAuthCode: [
+    { required: true, message: "请输入验证码", trigger: "change" },
+  ],
+
+  password: [
+    { required: true, pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$/, message: "请输入8-16位数字、字母大小写组合", trigger: "blur" },
+    { required: true, min: 8, message: '密码太短!', trigger: "blur" },
+  ],
+  confirmPwd: [
+    { required: true, pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$/, message: "请输入8-16位数字、字母大小写组合", trigger: "blur" },
+    { required: true, min: 8, message: '密码太短!', trigger: "blur" },
+    { required: true, validator: equalToPassword, trigger: "blur" }
+
+  ]
+},)
+
+
 let checkCodeBtn = reactive<any>({
   text: '获取验证码',
   loading: false,