中品云站
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.

125 lines
3.1 KiB

2 years ago
<template>
<view class="page-content my-bg">
<cu-custom :isBack="true" class="main-topbar bg-main-oil" bgColor="bg-main-oil">
<block slot="content">手机短信验证</block>
<block slot="backText">返回</block>
</cu-custom>
<view class="bg-white cu-card margin-bottom-lg">
<view class="text-gray text-lg padding-top-lg padding-bottom-lg margin-bottom margin-top-lg text-center">
请输入 <text class="text-black">
{{loginUser.userPhone}}
</text> 收到的短信验证码
</view>
</view>
<view class="cu-form-group padding-top-sm padding-bottom-sm">
<view class="title text-black ">验证码</view>
<input type="number" :maxlength="6" v-model="code" placeholder="填写验证码" name="input" />
<text class="mini-left-border" :class="frozen?'text-gray':'oil-main-color'" @tap="sendMsg">{{tips}}</text>
</view>
<view class="padding margin-top-lg padding-top-lg">
<button class="bg-main-oil" @tap="nextStep">下一步</button>
</view>
</view>
</template>
<script>
import cloudSiteApi from '@/api/cloud-site.js'
import oliUserApi from '@/api/oli-user.js'
export default {
data() {
return {
odphone:'',
oldPhone: uni.getStorageSync('oldPhone'),
loginUser: uni.getStorageSync('loginUser'),
auth: {},
type: 'oldPhone',
code: "",
tips: '获取验证码',
frozen: false ,// 冷却时间
verifyCodeToken:''
}
},
onLoad() {
let phones = uni.getStorageSync('loginUser')
this.odphone =phones.userPhone
},
methods: {
nextStep() {
if (this.code) {
const data3 = {
phone: this.loginUser.userPhone,
code: this.code,
type: this.type,
verifyCodeToken : this.verifyCodeToken
}
oliUserApi.checkOldPhoneCode(data3).then(res => {
if (res.code == 20000) {
uni.showToast({
title: res.msg
})
setTimeout(() => {
uni.navigateTo({
url: '/packageSecurity/changePhone/changePhone',
fail: (err) => {
console.log(err)
}
})
}, 800);
}
})
} else {
uni.showToast({
title: '请输入验证码',
icon: 'none'
});
}
},
sendMsg() {
if (!this.frozen) {
const data2 = {
phone: this.loginUser.userPhone
}
oliUserApi.sendOldPhoneSms(data2).then(res => {
console.log('res', res)
this.verifyCodeToken = res.data.verifyCodeToken
uni.showToast({
title: res.msg,
icon: 'none'
})
if (res.code == 20000) {
this.frozen = true
let second = 60
this.tips = `${second}秒后重发`
setTimeout(() => {
this.frozen = false
clearInterval(timer)
this.tips = `发送验证码`
}, 1000 * 60);
const timer = setInterval(() => {
second--
if (second) {
this.tips = `${second}秒后重发`
} else {
this.tips = `发送验证码`
}
}, 1000)
}
})
}
},
}
}
</script>
<style scoped>
.mini-left-border {
border-left: 1px solid #999;
padding-left: 1rem;
}
</style>