6 changed files with 345 additions and 6 deletions
-
5config/index.js
-
9src/api/user/user.js
-
10src/router/index.js
-
18src/views/userCenter/changeInfo/changePhone.vue
-
284src/views/userCenter/changeInfo/changeRealName.vue
-
25src/views/userCenter/userInfo/userInfo.vue
@ -0,0 +1,284 @@ |
|||||
|
<template> |
||||
|
<div class="container"> |
||||
|
<el-container> |
||||
|
<el-header> |
||||
|
<el-row class="title">实名认证</el-row> |
||||
|
</el-header> |
||||
|
<el-main> |
||||
|
<el-row> |
||||
|
<el-col :span="18" :offset="3"> |
||||
|
<ShopStep :data="stepsArr" :active="active" /> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<div v-if="active == 0"> |
||||
|
<el-row class="mar-top-30"> |
||||
|
<el-col :span="8" :offset="9"> |
||||
|
<span>已绑定的手机号码:{{ phone }}</span> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row class="mar-top-30"> |
||||
|
<el-col class="flex-row-plus" :span="5" :offset="8"> |
||||
|
<el-input class="codeipt" v-model="verifyCode" placeholder="验证码"></el-input> |
||||
|
</el-col> |
||||
|
<el-col class="flex-row-plus" :span="3"> |
||||
|
<el-button |
||||
|
v-if="isoldCodeShow" |
||||
|
class="codebut" |
||||
|
@click="getoldCode" |
||||
|
>{{ oldcodeText }}</el-button |
||||
|
> |
||||
|
<el-button v-else class="codebut codeDisable">{{ |
||||
|
oldcodeText |
||||
|
}}</el-button> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row class="mar-top-30"> |
||||
|
<el-col class="flex-row-plus" :span="4" :offset="10"> |
||||
|
<el-button class="submitBut" @click="checkUser" type="primary" |
||||
|
>下一步</el-button |
||||
|
> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
<div v-if="active == 1"> |
||||
|
<el-row class="mar-top-30"> |
||||
|
<el-col :span="8" :offset="8"> |
||||
|
<el-input class="codeipt" v-model="realName" placeholder="输入真实姓名"></el-input> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row class="mar-top-30"> |
||||
|
<el-col :span="8" :offset="8"> |
||||
|
<el-input class="codeipt" v-model="idCard" placeholder="输入身份证号码"></el-input> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row class="mar-top-30"> |
||||
|
<el-col class="flex-row-plus" :span="4" :offset="10"> |
||||
|
<el-button class="submitBut" @click="updateRealName" type="primary" v-throttle |
||||
|
>提交</el-button |
||||
|
> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
<div v-if="active == 2" style="margin:70px 0"> |
||||
|
<el-row> |
||||
|
<el-col :span="8" :offset="8" style="text-align:center;margin-bottom:20px;"> |
||||
|
<icon-svg style="font-size: 120px; margin-bottom: 20px;" icon-class="success" /> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row> |
||||
|
<el-col :span="8" :offset="8" style="text-align:center;"> |
||||
|
<span>恭喜您,实名认证已完成!</span> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</el-main> |
||||
|
<el-footer class="mar-top-50"> |
||||
|
<el-row class="flex-column-plus mar-20-30"> |
||||
|
<span class="fs8" style="color:#C83732;font-size:16px;">安全服务提示</span> |
||||
|
<span class="mar-top-20 fs7 font-color-9A9" |
||||
|
>• |
||||
|
实名认证后才可购买跨境商品</span |
||||
|
> |
||||
|
</el-row> |
||||
|
</el-footer> |
||||
|
</el-container> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import {mapGetters, mapMutations} from 'vuex' |
||||
|
|
||||
|
import ShopStep from '@/components/base/steps.vue' |
||||
|
|
||||
|
import { |
||||
|
getTheCode |
||||
|
} from '@/api/login.js' |
||||
|
import { |
||||
|
changeRealName, |
||||
|
checkUser, |
||||
|
getUserInfo |
||||
|
} from '@/api/user/user.js' |
||||
|
|
||||
|
export default { |
||||
|
components: {ShopStep}, |
||||
|
data () { |
||||
|
return { |
||||
|
stepsArr: [ |
||||
|
{ |
||||
|
value: 0, |
||||
|
label: '身份验证' |
||||
|
}, |
||||
|
{ |
||||
|
value: 1, |
||||
|
label: '实名认证' |
||||
|
}, |
||||
|
{ |
||||
|
value: 2, |
||||
|
label: '完成' |
||||
|
} |
||||
|
], |
||||
|
active: 0, |
||||
|
realName: '', |
||||
|
idCard: '', |
||||
|
// 手机验证码 |
||||
|
isoldCodeShow: true, |
||||
|
verifyCode: '', |
||||
|
oldcodeText: '获取验证码', |
||||
|
oldtime: 60, |
||||
|
verifyIphone: '', |
||||
|
phone: '' |
||||
|
} |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters([ |
||||
|
'userInfo' // 用户信息 |
||||
|
]) |
||||
|
}, |
||||
|
created () { |
||||
|
if (this.userInfo.phone) { |
||||
|
this.verifyIphone = this.userInfo.phone |
||||
|
} |
||||
|
this.phone = this.verifyIphone.substr(0, 3) + '****' + this.verifyIphone.substr(7, this.verifyIphone.split('').length) |
||||
|
}, |
||||
|
methods: { |
||||
|
...mapMutations({ |
||||
|
setUserInfo: 'SET_USERINFO' // 修改用户信息 |
||||
|
}), |
||||
|
async getUserInfoData () { |
||||
|
const response = await getUserInfo() |
||||
|
const res = response.data |
||||
|
if (res.code === '200') { |
||||
|
this.setUserInfo(res.data) |
||||
|
} else { |
||||
|
this.$message.error(res.message) |
||||
|
} |
||||
|
}, |
||||
|
// 身份验证 |
||||
|
async checkUser () { |
||||
|
if (this.verifyCode === '') { |
||||
|
this.$message.warning('验证码不能为空') |
||||
|
return |
||||
|
} |
||||
|
const response = await checkUser({ |
||||
|
phone: this.verifyIphone, |
||||
|
verificationCode: this.verifyCode |
||||
|
}) |
||||
|
const res = response.data |
||||
|
if (res.code === '200') { |
||||
|
this.active = 1 |
||||
|
} else { |
||||
|
this.$message(res.message) |
||||
|
} |
||||
|
}, |
||||
|
// 获取身份验证的验证码 |
||||
|
async getoldCode () { |
||||
|
if (!(/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/.test(this.verifyIphone))) { |
||||
|
this.$message.warning('手机号格式错误请重新输入') |
||||
|
return |
||||
|
} |
||||
|
const response = await getTheCode({ phone: this.verifyIphone }) |
||||
|
const res = response.data |
||||
|
if (res.code === '200') { |
||||
|
this.$message({ |
||||
|
message: '验证码获取成功', |
||||
|
type: 'success' |
||||
|
}) |
||||
|
this.oldtimer() |
||||
|
} else { |
||||
|
this.$message({ |
||||
|
message: res.message, |
||||
|
type: 'warning' |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
// 更改手机号 |
||||
|
async updateRealName () { |
||||
|
// if (!(/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/.test(this.iphoneNum))) { |
||||
|
// this.$message.warning('手机号格式错误请重新输入') |
||||
|
// return |
||||
|
// } |
||||
|
if (this.realName === '') { |
||||
|
this.$message.warning('真实姓名不能为空') |
||||
|
return |
||||
|
} |
||||
|
if (this.idCard === '') { |
||||
|
this.$message.warning('身份证号码不能为空') |
||||
|
return |
||||
|
} |
||||
|
const response = await changeRealName({ |
||||
|
realName: this.realName, |
||||
|
idCard: this.idCard |
||||
|
}) |
||||
|
const res = response.data |
||||
|
if (res.code === '200') { |
||||
|
this.getUserInfoData() |
||||
|
this.active = 2 |
||||
|
} else { |
||||
|
this.$message.warning(res.message) |
||||
|
} |
||||
|
}, |
||||
|
// 获取更换手机号的验证码倒计时 |
||||
|
oldtimer () { |
||||
|
if (this.oldtime > 0) { |
||||
|
this.oldtime-- |
||||
|
this.oldcodeText = this.oldtime + 's' |
||||
|
setTimeout(this.oldtimer, 1000) |
||||
|
this.isoldCodeShow = false |
||||
|
} else { |
||||
|
this.oldtime = 0 |
||||
|
this.oldcodeText = '获取验证码' |
||||
|
this.isoldCodeShow = true |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
.container { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
background-color: #ffffff; |
||||
|
box-sizing: border-box; |
||||
|
border: 1px solid #E5E5E5; |
||||
|
.el-header{ |
||||
|
padding: 0; |
||||
|
.title{ |
||||
|
padding: 0 30px; |
||||
|
line-height: 50px; |
||||
|
background-color: #FAFAFA; |
||||
|
} |
||||
|
} |
||||
|
.submitBut { |
||||
|
width: 400px; |
||||
|
color: $mainGlod; |
||||
|
background-color: #333; |
||||
|
border-radius: 0; |
||||
|
} |
||||
|
.codebut { |
||||
|
padding: 13px 20px; |
||||
|
width: 100%; |
||||
|
text-align: center; |
||||
|
color: #FFF; |
||||
|
background-color: $mainGlod; |
||||
|
border-radius: 0; |
||||
|
} |
||||
|
.codeDisable{ |
||||
|
color: #999; |
||||
|
cursor: auto; |
||||
|
|
||||
|
} |
||||
|
>>>.codeipt{ |
||||
|
.el-input__inner{ |
||||
|
border-radius: 0; |
||||
|
} |
||||
|
} |
||||
|
.bottom-box { |
||||
|
background-color: #eeeeee; |
||||
|
} |
||||
|
>>>.el-footer{ |
||||
|
background-color: #eee; |
||||
|
height: auto !important; |
||||
|
} |
||||
|
} |
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue