147 lines
4.4 KiB
Vue
147 lines
4.4 KiB
Vue
<template>
|
||
<view class="register absolute">
|
||
<view class="shading">
|
||
<view class="pictrue acea-row row-center-wrapper">
|
||
</view>
|
||
</view>
|
||
<view class="whiteBg">
|
||
<view class="title">找回密码</view>
|
||
<view class="list">
|
||
<view class="item">
|
||
<view class="acea-row row-middle">
|
||
<image src="/static/images/phone_1.png"></image>
|
||
<input type="text" placeholder="输入手机号码" placeholder-class="placeholder" v-model="account" class="input"/>
|
||
</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="align-left acea-row row-middle">
|
||
<image src="/static/images/code_2.png"></image>
|
||
<input type="text" placeholder="填写验证码" class="codeIput" v-model="captcha" placeholder-class="placeholder"/>
|
||
<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="handleVerify">
|
||
{{ text }}
|
||
</button>
|
||
</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="acea-row row-middle">
|
||
<image src="/static/images/code_1.png"></image>
|
||
<input type="password" placeholder="填写您的登录密码" v-model="password" placeholder-class="placeholder" class="input"/>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="logon" @click="registerReset">确认</view>
|
||
<navigator url="/pages/users/login/index" class="tip">
|
||
<text class="font-color">立即登录</text>
|
||
</navigator>
|
||
</view>
|
||
<view class="bottom"></view>
|
||
<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }" ref="verify"></Verify>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
// +----------------------------------------------------------------------
|
||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | Author: CRMEB Team <admin@crmeb.com>
|
||
// +----------------------------------------------------------------------
|
||
import sendVerifyCode from "@/mixins/SendVerifyCode";
|
||
import { registerVerify, registerReset } from "@/api/user";
|
||
import Verify from '@/components/verify/verify.vue';
|
||
export default {
|
||
components: {
|
||
Verify
|
||
},
|
||
data() {
|
||
return {
|
||
account: "",
|
||
password: "",
|
||
captcha: ""
|
||
};
|
||
},
|
||
mixins: [sendVerifyCode],
|
||
methods: {
|
||
registerReset() {
|
||
let that = this;
|
||
if (!that.account) return that.$util.Tips({
|
||
title: '请填写手机号码'
|
||
});
|
||
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.account)) return that.$util.Tips({
|
||
title: '请输入正确的手机号码'
|
||
});
|
||
if (!that.captcha) return that.$util.Tips({
|
||
title: '请填写验证码'
|
||
});
|
||
if (!/^[\w\d]+$/i.test(that.captcha)) return that.$util.Tips({
|
||
title: '请输入正确的验证码'
|
||
});
|
||
if (!that.password) return that.$util.Tips({
|
||
title: '请填写密码'
|
||
});
|
||
if (!/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$/i.test(that.password)) return that.$util.Tips({
|
||
title: '您输入的密码过于简单'
|
||
});
|
||
registerReset({
|
||
account: that.account,
|
||
captcha: that.captcha,
|
||
password: that.password
|
||
})
|
||
.then(res => {
|
||
that.$util.Tips({
|
||
title: res.msg,
|
||
success: () => {
|
||
uni.navigateTo({
|
||
url: '/pages/login/index'
|
||
});
|
||
}
|
||
});
|
||
})
|
||
.catch(res => {
|
||
that.$util.Tips({
|
||
title: res.msg
|
||
});
|
||
});
|
||
},
|
||
async code(data) {
|
||
let that = this;
|
||
if (!that.account) return that.$util.Tips({
|
||
title: '请填写手机号码'
|
||
});
|
||
if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.account)) return that.$util.Tips({
|
||
title: '请输入正确的手机号码'
|
||
});
|
||
registerVerify({
|
||
phone: that.account,
|
||
captchaType: 'blockPuzzle',
|
||
captchaVerification: data.captchaVerification
|
||
})
|
||
.then(res => {
|
||
that.$util.Tips({
|
||
title: res.msg
|
||
});
|
||
that.sendCode();
|
||
})
|
||
.catch(res => {
|
||
that.$util.Tips({
|
||
title: res
|
||
});
|
||
});
|
||
},
|
||
success(data) {
|
||
this.$refs.verify.hide();
|
||
this.code(data);
|
||
},
|
||
handleVerify() {
|
||
this.$refs.verify.show();
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style>
|
||
</style>
|