pc端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

124 lines
4.8 KiB

<template>
<div class="" style="background-color: #121318;">
<div class="d-flex justify-content-center" style="align-items: center;height: 80vh !important;">
<div class="form-access my-auto">
<form class="chk-body bg-panel">
<template v-if="step == 1">
<div class="text-center h3 mb-4">
<span>{{ $t("login.find-password") }}</span>
</div>
<!-- <span class="mt-4"></span> -->
<div class="form-group">
<input type="text" v-model="user.account" class="form-control" :placeholder="$t('login.enter-account')" >
</div>
<button type="submit" class="btn btn-primary rounded-pill" @click.prevent="step1">{{ $t("login.submit") }}</button>
</template>
<template v-else-if="step == 2">
<div class="text-center h3 mb-4">
<span>{{ $t("login.verCode") }}</span>
</div>
<div class="input-group mb-3" >
<el-input v-model="user.password" type="password" show-password required :placeholder="$t('login.new-password')" ></el-input>
</div>
<div class="input-group mb-3" >
<el-input v-model="user.password_confirmation" type="password" data-type="repassword" show-password required :placeholder="$t('login.confirm-password')" ></el-input>
</div>
<div class="input-group mb-3" v-if="user.google_status">
<input type="text" v-model="codes.google_code" class="form-control" required pattern="\d{6}" data-message="code needs 6 number" :placeholder="$t('login.google-code')" />
</div>
<div class="input-group mb-3" v-if="user.email_status">
<input type="text" v-model="codes.email_code" required class="form-control" pattern="\d{6}" data-message="code needs 6 number" :placeholder="$t('login.email-code')" />
<div class="input-group-append">
<get-code class="btn get-code btn-outline-primary" :data="{email:user.email}" :type="7" />
</div>
</div>
<div class="input-group mb-3" v-if="user.phone_status">
<input type="text" required v-model="codes.sms_code" class="form-control" pattern="\d{6}" data-message="code needs 6 number" :placeholder="$t('login.sms-code')" />
<div class="input-group-append">
<get-code class="btn get-code btn-outline-primary" :data="{country_code:user.country_code, phone:user.phone}" :type="6" />
</div>
</div>
<button type="submit" class="btn btn-primary rounded-pill" @click.prevent="step2">{{$t("login.submit")}}</button>
</template>
</form>
<h2>Remembered your password?
<router-link to="/sign-in">Log In</router-link>
</h2>
</div>
</div>
</div>
</template>
<script>
import Member from "@/api/member";
export default {
data() {
return {
step: 1,
user: {
account: "",
password : "",
password_confirmation : "",
},
codes : {
google_code : '',
email_code : '',
sms_code : ''
}
}
},
methods: {
step1() {
Member.forgetPasswordAttempt({
account: this.user.account
}).then(data => {
// 将用户信息 写入user对象中
Object.assign(this.user, data);
// 进入第二步验证
this.step = 2;
}).catch(err => {
// this.$message({});
})
},
step2() {
if (utils.validate(".chk-body")) {
Member.forgetPwdSumit(Object.assign(this.user, this.codes)).then(dta => {
this.$message({
type : "success",
message : "修改密码成功,正在跳转到登录页",
duration : 2000,
onClose: () => {
// 注册完成 进入登录页
this.$router.push("/sign-in");
}
})
}).catch(err => {})
}
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-input__inner,.form-control{
padding-top:.375rem;
padding-bottom:.375rem;
height: 45px !important;
}
.get-code{
padding-top: 11px !important;
padding-bottom: 11px !important;
}
</style>