|
|
<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,getInitFaceVerify,GetDescribeFaceVerify } from '@/config/api.js' import { website } from '@/config/site.config.js' 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.getCardTypeFn() const version = plus.os.version; console.log('iOS系统版本号:', version); }, 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 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) {
// 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||this.vuex_userInfo.applyStep<2) { // 不是身份证
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') }else { this.getInitFaceVerifyFn() } } // 去填表
if(this.vuex_userInfo.applyStep>1&&this.vuex_userInfo.applyStep<5) { return this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo') } // this.$goPage('/pages/indexEntry/enroll/signContract/signContract')
// this.$goPage('/pages/indexEntry/enroll/uploadAvatar/uploadAvatar')
}, async getInitFaceVerifyFn() { const verifyPlugin = uni.requireNativePlugin('Ocr-FaceDetectModule'); var metaInfo = verifyPlugin.getMetaInfo() let p = uni.getSystemInfoSync().platform; if (p === "ios") { console.log(metaInfo) metaInfo = JSON.stringify(metaInfo); } console.log('metaInfo') console.log(JSON.parse(metaInfo)) const res = await getInitFaceVerify({metaInfo, accountId: this.vuex_userInfo.accountId}) let certifyId = res.data.body.resultObject.certifyId console.log(certifyId) // return
console.log(res) let _this = this verifyPlugin.verify({ certifyId, }, function(response){ console.log(response) if(response.retCode==1000) { uni.showLoading({ title: '正在加载中……' }) GetDescribeFaceVerify({certifyId, accountId: _this.vuex_userInfo.accountId}).then((useRes)=>{ console.log(useRes) let userInfo1 = JSON.parse(useRes.data.body.resultObject.materialInfo) console.log(userInfo1) if(useRes.code==0) { let materialInfo = JSON.parse(useRes.data.body.resultObject.materialInfo) let userInfo = materialInfo.ocrIdCardInfo let obj = { address: userInfo.address, name: userInfo.certName, idcard: userInfo.certNo, nationality: userInfo.nationality, cardType: '1', sex: userInfo.sex=='女'?'2': '1' } let info = Object.assign(_this.$store.state.user.vuex_userInfo, obj) _this.$store.commit('update_vuex_userInfo', info) console.log('请求结果来了') console.log(_this.$store.state.user.vuex_userInfo) _this.$goPage('/pages/indexEntry/enroll/registInfo/registInfo') uni.hideLoading() } }) setTimeout(()=>{ uni.hideLoading() },6000) }else if(response.code==2006) { _this.$u.toast('认证失败!请确定是本人后再重试') }else { _this.$u.toast('认证失败!') } }); },
} } </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>
|