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.
173 lines
5.0 KiB
173 lines
5.0 KiB
<template>
|
|
<view class="nine-content-001">
|
|
<view class="nine-list-001">
|
|
<view class="nine-list-001-item">
|
|
<span>用户账号</span>
|
|
<input class="mt10" placeholder="请输入用户账号" v-model="userName"/>
|
|
</view>
|
|
<view class="nine-list-001-item">
|
|
<span>用户姓名</span>
|
|
<input class="mt10" placeholder="请输入用户姓名" v-model="nickName"/>
|
|
</view>
|
|
<view class="nine-list-001-item">
|
|
<span>手机号</span>
|
|
<view class="display-flex-row">
|
|
<span class="mt10 mr20 color-gray">+86</span>
|
|
<input class="mt10" placeholder="请输入手机号" v-model="phone"/>
|
|
</view>
|
|
</view>
|
|
<view class="nine-list-001-item">
|
|
<span>登录密码</span>
|
|
<input class="mt10" password placeholder="请输入登录密码" v-model="password"/>
|
|
</view>
|
|
<view class="nine-list-001-item">
|
|
<span>确认密码</span>
|
|
<input class="mt10" password placeholder="请再次输入登录密码" v-model="password2"/>
|
|
</view>
|
|
<view class="nine-list-001-item">
|
|
<view class="display-flex-row-between">
|
|
<span>验证码</span>
|
|
<view class="nine-btn-verify-001 plr10 ptb5" @click="verifyClick">
|
|
<span>{{verifyText}}</span>
|
|
</view>
|
|
</view>
|
|
<input class="mt10" placeholder="请输入验证码" v-model="verifyCode"/>
|
|
</view>
|
|
<view class="display-flex-row pt20 pb10 justify-content-center">
|
|
<label class="display-flex-row">
|
|
<checkbox class="transform-scale07" :value="protocolFlag" :checked="protocolFlag==1" @click="checkBoxClick"/>
|
|
已阅读并同意
|
|
</label>
|
|
<span class="color-blue" @click="protocolClick">《服务协议》</span>
|
|
</view>
|
|
|
|
<view class="nine-btn-save-001 ma20" @click="registerClick">
|
|
注 册
|
|
</view>
|
|
<view class="text-center">已有账号?
|
|
<span class="ml10 color-blue" @click="loginClick">立即登录</span>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import store from "@/store"
|
|
export default {
|
|
data() {
|
|
return {
|
|
userName: "",
|
|
nickName: "",
|
|
phone: "",
|
|
password: "",
|
|
password2: "",
|
|
|
|
protocolFlag: "0",
|
|
|
|
verifyTimer: null,
|
|
verifyCode: "",
|
|
verifyTime: 0,
|
|
verifyText: "发送验证码"
|
|
}
|
|
},
|
|
methods: {
|
|
checkBoxClick(){
|
|
this.protocolFlag = String(1 - Number(this.protocolFlag));
|
|
},
|
|
registerClick(){
|
|
if(!this.userName){
|
|
this.msg("用户账号不允许为空");
|
|
return;
|
|
}
|
|
if(!this.isNumberOrLetter(this.userName)){
|
|
this.msg("用户账号只能是字母/数字组合");
|
|
return;
|
|
}
|
|
if(!this.nickName){
|
|
this.msg("用户姓名不允许为空");
|
|
return;
|
|
}
|
|
if(!this.phone){
|
|
this.msg("手机号不允许为空");
|
|
return;
|
|
}
|
|
if(!this.isPhone(this.phone)){
|
|
this.msg("必须为有效手机号");
|
|
return;
|
|
}
|
|
if(!this.verifyCode){
|
|
this.msg("验证码不允许为空");
|
|
return;
|
|
}
|
|
if(!this.password){
|
|
this.msg("登录密码不允许为空");
|
|
return;
|
|
}
|
|
if(!this.password2){
|
|
this.msg("确认密码不允许为空");
|
|
return;
|
|
}
|
|
if(this.password != this.password2){
|
|
this.msg("两次输入的登录密码不一致");
|
|
return;
|
|
}
|
|
if(this.protocolFlag == 0){
|
|
this.msg("请勾选服务协议");
|
|
return;
|
|
}
|
|
this.diyApi('/appRegister', {
|
|
userType: "app_user",
|
|
userName: this.userName.trim(),
|
|
nickName: this.nickName,
|
|
phone: this.phone,
|
|
password: this.password,
|
|
smsCode: this.verifyCode
|
|
}).then(res => {
|
|
store.commit('SET_LOGIN_INFO', {
|
|
...this.$store.state.user.loginInfo,
|
|
loginType: 0,
|
|
userName: this.userName,
|
|
password: this.password
|
|
})
|
|
this.msg("注册成功");
|
|
setTimeout(() => {
|
|
this.navigateToLogin();
|
|
}, 1500);
|
|
})
|
|
},
|
|
loginClick(){
|
|
this.navigateToLogin();
|
|
},
|
|
protocolClick(){
|
|
// this.navigateTo("/pages/setting/protocol")
|
|
},
|
|
verifyClick(){
|
|
if(this.verifyTime == 0){
|
|
if(!this.phone){
|
|
this.msg("必须为有效手机号");
|
|
return;
|
|
}
|
|
this.diyApiGet('/captchaSms', {phone: this.phone}).then(res => {
|
|
this.verifyTime = 60;
|
|
this.verifyText = this.verifyTime + " S";
|
|
this.verifyTimer = setInterval(() => {
|
|
this.timeInterval();
|
|
}, 1000)
|
|
})
|
|
}
|
|
},
|
|
timeInterval() {
|
|
this.verifyTime--;
|
|
if (this.verifyTime > 0) {
|
|
this.verifyText = this.verifyTime + " S";
|
|
}else{
|
|
if(this.verifyTimer) {
|
|
clearInterval(this.verifyTimer);
|
|
this.verifyTimer = null;
|
|
}
|
|
this.verifyText = "发送验证码";
|
|
}
|
|
},
|
|
}
|
|
}
|
|
</script>
|