11<script setup lang="ts">
2- import { type RouteMap , useRouter } from ' vue-router'
2+ import { useRouter } from ' vue-router'
3+ import type { FieldRule } from ' vant'
34import { useUserStore } from ' @/stores'
45
56const { t } = useI18n ()
@@ -14,6 +15,8 @@ const postData = reactive({
1415 confirmPassword: ' ' ,
1516})
1617
18+ const validatorPassword = (val : string ) => val === postData .password
19+
1720const rules = reactive ({
1821 email: [
1922 { required: true , message: t (' forgot-password.pleaseEnterEmail' ) },
@@ -26,20 +29,20 @@ const rules = reactive({
2629 ],
2730 confirmPassword: [
2831 { required: true , message: t (' forgot-password.pleaseEnterConfirmPassword' ) },
29- ],
32+ { required: true , validator: validatorPassword , message: t (' forgot-password.passwordsDoNotMatch' ) },
33+ ] as FieldRule [],
3034})
3135
32- async function reset(values : any ) {
36+ async function reset() {
3337 try {
3438 loading .value = true
35- await userStore .login ({ ... postData , ... values })
36- const { redirect, ... othersQuery } = router .currentRoute .value .query
37- router .push ({
38- name: (redirect as keyof RouteMap ) || ' home' ,
39- query: {
40- ... othersQuery ,
41- },
42- })
39+
40+ const res = await userStore .reset ()
41+
42+ if (res .code === 0 ) {
43+ showNotify ({ type: ' success' , message: t (' forgot-password.passwordResetSuccee' ) })
44+ router .push ({ name: ' login' })
45+ }
4346 }
4447 finally {
4548 loading .value = false
@@ -68,13 +71,13 @@ async function getCode() {
6871}
6972
7073function handleBackLogin() {
71- router .replace ({ name: ' login' })
74+ router .push ({ name: ' login' })
7275}
7376 </script >
7477
7578<template >
7679 <div class =" m-x-a w-7xl text-center" >
77- <van-form :model =" postData" :rules =" rules" @submit =" reset" >
80+ <van-form :model =" postData" :rules =" rules" validate-trigger = " onSubmit " @submit =" reset" >
7881 <div class =" overflow-hidden rounded-3xl" >
7982 <van-field
8083 v-model.trim =" postData.email"
0 commit comments