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.
318 lines
9.2 KiB
318 lines
9.2 KiB
<template>
|
|
<view class="pageBg">
|
|
<!-- <topNavbar :title="title"></topNavbar> -->
|
|
<view class="pad">
|
|
<view class="card">
|
|
<view class="row">
|
|
<view class="lab">证件类型</view>
|
|
<view class="rightCon">
|
|
<view class="val" @click="showType=true">
|
|
<input v-model="form.typeName" placeholder="请选择" class="input1" style="pointer-events: none;" disabled/></input>
|
|
</view>
|
|
<view class="icon">
|
|
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="row" v-if="form.value==1">
|
|
<view class="lab">实名认证</view>
|
|
<view class="rightCon">
|
|
<view class="val" v-if="vuex_userInfo.applyStep>1" style="color: #1989FA;">已认证</view>
|
|
<view class="val" v-else>待认证</view>
|
|
</view>
|
|
</view>
|
|
<view class="" v-else>
|
|
<!-- <view class="row" v-if="form.value==7">
|
|
<view class="lab">国籍</view>
|
|
<view class="rightCon">
|
|
<view class="val">
|
|
<input v-model="form.nationality" placeholder="请选择" @click="showType=true" disabled/></input>
|
|
</view>
|
|
<view class="icon">
|
|
<u-icon name="arrow-right" size="14" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
|
|
</view>
|
|
</view>
|
|
</view> -->
|
|
<view class="row">
|
|
<view class="lab">证件号码</view>
|
|
<view class="rightCon">
|
|
<view class="val">
|
|
<input v-model="form.idcard" placeholder="请输入" /></input>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="row">
|
|
<view class="lab">真实姓名</view>
|
|
<view class="rightCon">
|
|
<view class="val">
|
|
<input v-model="form.name" placeholder="请输入" /></input>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="row">
|
|
<view class="lab">性别</view>
|
|
<view class="rightCon">
|
|
<u-radio-group v-model="form.sex" :labelDisabled="false">
|
|
<u-radio shape="circle" label="男" name="1" :labelDisabled="false">男</u-radio>
|
|
<view class="" style="width: 50rpx;"></view>
|
|
<u-radio shape="circle" label="女" name="2" :labelDisabled="false">女</u-radio>
|
|
</u-radio-group>
|
|
</view>
|
|
</view>
|
|
<view class="row">
|
|
<view class="lab">户籍地址</view>
|
|
<view class="rightCon">
|
|
<view class="val">
|
|
<input v-model="form.address" placeholder="请输入" /></input>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="footerBtn pad">
|
|
<view class="btnBg" @click="goNext">下一步</view>
|
|
</view>
|
|
</view>
|
|
<u-picker :show="showType" :columns="typeArr" keyName="label" @confirm="confirmType" @cancel="showType=false"></u-picker>
|
|
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { getpersonface, GetDetectInfoEnhanced, getCardType } from '@/config/api.js'
|
|
import { website } from '@/config/site.config.js'
|
|
import { startEid } from '@/mp_ecard_sdk/main';
|
|
export default {
|
|
data() {
|
|
return {
|
|
form: {
|
|
value: 1,
|
|
nationality: '中国',
|
|
idcard: '',
|
|
name: '',
|
|
sex: '1',
|
|
address: '',
|
|
typeName: '身份证',
|
|
},
|
|
formToast: {
|
|
idcard: '请输入证件号码',
|
|
name: '请输入真实姓名',
|
|
sex: '请选择性别',
|
|
address: '请输入户籍地址',
|
|
},
|
|
showType: false,
|
|
typeArr: [],
|
|
title: '学员报名'
|
|
}
|
|
// 报名进度(0:待报名,1:已选驾校,2:已实名制,3:已填写报名信息,4:已签署合同,5:待支付,6:已支付)
|
|
},
|
|
onLoad(options) {
|
|
if(options.tit) {
|
|
this.title = options.tit
|
|
}
|
|
// this.GetDetectInfoEnhancedFn()
|
|
this.getCardTypeFn()
|
|
},
|
|
methods: {
|
|
// 获取证件类型
|
|
async getCardTypeFn() {
|
|
const {data: res} = await getCardType()
|
|
this.typeArr = [res]
|
|
await this.$store.dispatch('getUserInfo')
|
|
if(this.vuex_userInfo.applyStep>1) {
|
|
res.forEach(item=>{
|
|
if(item.value==this.vuex_userInfo.cardType ){
|
|
this.form.typeName = item.label
|
|
}
|
|
})
|
|
|
|
}
|
|
console.log(res)
|
|
},
|
|
confirmType(val) {
|
|
let item = val.value[0]
|
|
console.log(item)
|
|
this.form.value = item.value
|
|
this.form.typeName = item.label
|
|
this.showType = false
|
|
},
|
|
async getpersonfaceFn() {
|
|
const {data: res} = await getpersonface({MerchantId: '0NSJ2312271333064407'})
|
|
let obj = JSON.parse(res)
|
|
// this.link = obj.Url
|
|
// this.$store.commit('updateBizToken', obj.BizToken)
|
|
this.EidToken = obj.EidToken
|
|
return obj.EidToken
|
|
// #ifdef H5
|
|
window.open(this.link, '_blank')
|
|
|
|
// #endif
|
|
// var regex = /\[.*?\]/;
|
|
// alert(obj.BizToken)
|
|
// this.GetDetectInfoEnhancedFn(obj.BizToken)
|
|
// #ifdef MP-WEIXIN
|
|
this.$store.commit('updateWebVeiwUrl', this.link)
|
|
|
|
uni.navigateTo({
|
|
url: '/pages/indexEntry/enroll/realName/webView'
|
|
})
|
|
// #endif
|
|
|
|
console.log(obj)
|
|
},
|
|
async GetDetectInfoEnhancedFn(EidToken) {
|
|
// let obj = {
|
|
// ruleId: 2,
|
|
// redirectUrl: website + '/pages/indexEntry/enroll/registInfo/registInfo',
|
|
// bizToken: 'C9C2BC8E-8336-4071-84B3-8170E283E6CA',
|
|
// userId: this.userId
|
|
// }
|
|
const res = await GetDetectInfoEnhanced({EidToken, userId: this.userId, InfoType: 1})
|
|
if(res.code!=0) return
|
|
let obj = JSON.parse(res.data).Text
|
|
if(obj.Comparemsg!=='成功') return
|
|
let userInfo = {
|
|
address: obj.OcrAddress,
|
|
name: obj.OcrName,
|
|
idcard: obj.OcrIdCard,
|
|
sex: obj.OcrGender=='女'?2:1,
|
|
applyStep: 2
|
|
}
|
|
let info = Object.assign(this.$store.state.user.vuex_userInfo, userInfo)
|
|
this.$store.commit('update_vuex_userInfo', info)
|
|
console.log('请求结果来了')
|
|
console.log(userInfo)
|
|
console.log(this.$store.state.user.vuex_userInfo)
|
|
uni.hideLoading()
|
|
this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
|
|
// uni.setStorageSync(obj2)
|
|
},
|
|
async goNext() {
|
|
// if(!this.form.value) return this.$u.toast('请选择证件类型')
|
|
// this.$goPage('/pages/indexEntry/enroll/signContract/signContract?schoolId='+this.vuex_userInfo.schoolId)
|
|
// return
|
|
// 去签约
|
|
// if(this.vuex_userInfo.applyStep==3) {
|
|
// return this.$goPage('/pages/indexEntry/enroll/signContract/signContract')
|
|
// }
|
|
// return this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
|
|
// 去填表
|
|
if(this.vuex_userInfo.applyStep==2) {
|
|
if(this.title=='学员信息') {
|
|
// 非平台学员
|
|
return this.$goPage('/pages/indexEntry/NonPlatformStudentInfo/NonPlatformStudentInfo')
|
|
}
|
|
return this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
|
|
}
|
|
// 去支付
|
|
// if(this.vuex_userInfo.applyStep==4||this.vuex_userInfo.applyStep==5) {
|
|
// return this.$goPage('/pages/indexEntry/enroll/payment/payment')
|
|
// }
|
|
if(this.vuex_userInfo.applyStep>1&&this.vuex_userInfo.applyStep<5) {
|
|
return this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo')
|
|
}
|
|
// 不是身份证
|
|
if(this.form.value!=1) {
|
|
for(let key in this.formToast) {
|
|
if(!this.form[key]) {
|
|
return this.$u.toast(this.formToast[key])
|
|
}
|
|
}
|
|
this.vuex_userInfo.address = this.form.address
|
|
this.vuex_userInfo.name = this.form.name
|
|
this.vuex_userInfo.sex = this.form.sex
|
|
this.vuex_userInfo.idcard = this.form.idcard
|
|
this.vuex_userInfo.nationality = (this.form.value==7||this.form.value==2)?'外国':'中国'
|
|
this.vuex_userInfo.cardType = this.form.value
|
|
return this.$goPage('/pages/indexEntry/enroll/uploadAvatar/uploadAvatar')
|
|
|
|
}
|
|
// 去实名
|
|
if(!this.vuex_userInfo.applyStep||this.vuex_userInfo.applyStep<2) {
|
|
const EidToken = await this.getpersonfaceFn()
|
|
console.log(EidToken)
|
|
this.goSDK(EidToken)
|
|
}
|
|
|
|
// this.$goPage('/pages/indexEntry/enroll/signContract/signContract')
|
|
// this.$goPage('/pages/indexEntry/enroll/uploadAvatar/uploadAvatar')
|
|
},
|
|
// 示例方法
|
|
goSDK(token) {
|
|
let _this = this
|
|
startEid({
|
|
data: {
|
|
token,
|
|
},
|
|
verifyDoneCallback(res) {
|
|
const { token, verifyDone } = res;
|
|
console.log('收到核身完成的res:', res);
|
|
console.log('核身的token是:', token);
|
|
uni.showLoading({
|
|
title: '正在加载,请稍后……'
|
|
})
|
|
_this.GetDetectInfoEnhancedFn(token)
|
|
console.log('是否完成核身:', verifyDone);
|
|
},
|
|
});
|
|
},
|
|
|
|
}
|
|
}
|
|
</script>
|
|
<style>
|
|
.input1::placeholder {
|
|
color: red !important;
|
|
}
|
|
</style>
|
|
<style lang="scss" scoped>
|
|
|
|
.card {
|
|
padding: 10rpx 46rpx 10rpx 32rpx;
|
|
margin-bottom: 20rpx;
|
|
.row {
|
|
height: 100rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.lab {
|
|
width: 152rpx;
|
|
}
|
|
|
|
.rightCon {
|
|
flex: 1;
|
|
width: 0;
|
|
display: flex;
|
|
.val {
|
|
flex: 1;
|
|
width: 0;
|
|
input {
|
|
font-size: 28rpx;
|
|
}
|
|
}
|
|
|
|
.icon {
|
|
width: 30rpx;
|
|
height: 30rpx;
|
|
u-icon {
|
|
color: #fff;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.footerBtn {
|
|
position: fixed;
|
|
left: 0;
|
|
width: 100%;
|
|
bottom: 30rpx;
|
|
}
|
|
.btnBg {
|
|
width: 100%;
|
|
height: 88rpx;
|
|
text-align: center;
|
|
}
|
|
</style>
|