|
@@ -4,15 +4,12 @@
|
|
|
<s-header :name="$t('forgetPassword.header')" :noback="false"></s-header>
|
|
|
<div class="forgetPasswordFormBox">
|
|
|
<van-form @submit="forgetPasswordSubmit">
|
|
|
- <van-field v-model="username" name="username" placeholder="请输入账户手机号"
|
|
|
- :rules="[{ required: true, message: '请输入账户手机号' }]" />
|
|
|
- <br/>
|
|
|
- <div >
|
|
|
+ <div>
|
|
|
<span class="word2">{{ $t('forgetPassword.phoneWordSpan') }}</span>
|
|
|
<van-field v-model="phone" name="phone" type="tel" :placeholder="$t('forgetPassword.phonePlaceholder')"
|
|
|
- :rules="[{ required: true, message: $t('forgetPassword.phoneRequired') }]" />
|
|
|
+ :rules="[{ required: true, pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号' }]" />
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<van-field v-model="code" name="code" :placeholder="$t('forgetPassword.codePlaceholder')"
|
|
|
:rules="[{ required: true, message: $t('forgetPassword.codeRequired') }]">
|
|
|
<template #button>
|
|
@@ -20,8 +17,16 @@
|
|
|
$t('forgetPassword.seedVerCode') : time + '秒后可重发' }}</van-button>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
+
|
|
|
+ <van-field v-model="password" name="password" type="password" placeholder="输入新密码"
|
|
|
+ :rules="[{ required: true, message: $t('changePassword.passwordRequired') }]" />
|
|
|
+
|
|
|
+ <van-field v-model="passwordCheck" name="passwordCheck" type="password" placeholder="确认新密码"
|
|
|
+ :rules="[{ required: true, message: $t('changePassword.passwordCheckRequired') }]" />
|
|
|
+
|
|
|
<van-button round type="primary" class="register" native-type="submit">{{ $t('forgetPassword.registerButton')
|
|
|
- }}</van-button>
|
|
|
+ }}</van-button>
|
|
|
+
|
|
|
</van-form>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -29,27 +34,29 @@
|
|
|
|
|
|
<script>
|
|
|
import { ref, reactive, toRefs, onMounted } from 'vue';
|
|
|
-import { showToast, showFailToast } from 'vant';
|
|
|
+import { showToast, showFailToast } from 'vant';
|
|
|
import { setLocal, getLocal, styleUrl } from '@/common/js/utils';
|
|
|
import sHeader from "@/components/SimpleHeader";
|
|
|
import { useRouter } from "vue-router";
|
|
|
import { sentForgetCode, checkForgetCode } from '@/service/login/forget-password';
|
|
|
+import md5 from 'js-md5';
|
|
|
|
|
|
export default {
|
|
|
setup() {
|
|
|
- const username = ref(''); // 用户名
|
|
|
const phone = ref(''); // 手机号
|
|
|
const code = ref(''); // 验证码
|
|
|
const verCodeTime = reactive({
|
|
|
time: 0
|
|
|
}); // 验证码间隔时间及状态
|
|
|
+
|
|
|
+ const password = ref('');
|
|
|
+ const passwordCheck = ref('');
|
|
|
+
|
|
|
const router = useRouter();
|
|
|
// 发送验证码
|
|
|
const seedVerCode = async () => {
|
|
|
const { data } = await sentForgetCode({
|
|
|
- username: username.value,
|
|
|
phone: phone.value,
|
|
|
- hostName: 'Sunzee'
|
|
|
});
|
|
|
if (data.code === '00000') {
|
|
|
showToast('验证码发送成功');
|
|
@@ -65,13 +72,22 @@ export default {
|
|
|
}
|
|
|
// 验证-表单
|
|
|
const forgetPasswordSubmit = async () => {
|
|
|
+ if (password.value !== passwordCheck.value) {
|
|
|
+ showFailToast('两次密码不一致,请确认密码正确');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
const { data } = await checkForgetCode({
|
|
|
phone: phone.value,
|
|
|
- code: code.value
|
|
|
+ code: code.value,
|
|
|
+ password: md5(password.value)
|
|
|
});
|
|
|
+
|
|
|
if (data.code === '00000') {
|
|
|
- showToast('校验成功');
|
|
|
- router.push({ path: '/changepassword', query: { name: username.value } });
|
|
|
+ showToast('修改成功');
|
|
|
+ setTimeout(() => {
|
|
|
+ // router.push({ path: '/changepassword', query: { name: username.value } });
|
|
|
+ router.push({ path: '/login' });
|
|
|
+ }, 1500);
|
|
|
} else {
|
|
|
showFailToast(data.message);
|
|
|
}
|
|
@@ -83,14 +99,19 @@ export default {
|
|
|
verCodeTime.time = getLocal('forgetVerCodeTime');
|
|
|
if (verCodeTime.time && verCodeTime.time !== '') {
|
|
|
verCodeTime.time = parseInt(verCodeTime.time);
|
|
|
- if (verCodeTime.time > 0) { verCodeTimeInterval(); }
|
|
|
- } else { verCodeTime.time = 0; }
|
|
|
+ if (verCodeTime.time > 0) {
|
|
|
+ verCodeTimeInterval();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ verCodeTime.time = 0;
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
return {
|
|
|
...toRefs(verCodeTime),
|
|
|
- username,
|
|
|
phone,
|
|
|
+ password,
|
|
|
+ passwordCheck,
|
|
|
code,
|
|
|
seedVerCode,
|
|
|
forgetPasswordSubmit
|