|
|
<template> <view class="content "> <view class="stepTop"> <view class="steps flex-b"> <view class="proress" :style="{width: proressWith}"></view> <view class="step"> <view class="num active" >01<view class="text">房屋信息1</view></view> </view> <view class="step"> <view class="num" :class="{active: currentStep}">02<view class="text">个人资料</view></view> </view> <view class="step"> <view class="num" :class="{active: currentStep==2}">03<view class="text">认证成功</view></view> </view> </view> </view> <view class="line"></view> <view class="padding" > <view class="step1" v-if="currentStep==0"> <view class="h1">请选择您的房屋地址</view> <view class="lab">房屋信息</view> <view class="row flex-b"> <view class="lable">详细地址</view> <view class="flex" @click="$goPage('/pages/subPage/authentication/comp/select1')"> <view class="adrs" v-if="counterStore.chooseHouse.houseId">{{ houseStr }}</view> <view class="adrs" v-else>请选择</view> <u-icon name="arrow-right" color="#CCCCCC"></u-icon> </view> </view> <view class="btnBox"> <oneBtn text="下一步" :disabled="!counterStore.chooseHouse.houseId" @oneBtnClick="nextStep(1)"></oneBtn> </view> </view> <view class="step2" v-if="currentStep==1"> <view class="btnBox"> <oneBtn text="点击开始实名认证" @oneBtnClick="nextStep(2)"></oneBtn> </view> </view> <view class="step3" v-if="currentStep==2"> <view class="okIcon"> <image src="@/static/images/okIcon.png" mode=""></image> </view> <view class="oktext">认证成功</view> <view class="btnBox"> <oneBtn text="返回首页" @oneBtnClick="nextStep(3)"></oneBtn> </view> </view> </view> </view> </template>
<script setup> import { startEid } from '@/mp_ecard_sdk/main'; import { getFacetoken, getFaceResult, houseRoomBind } from '@/config/api.js' import {userStore} from '@/store/index.js'; const counterStore = userStore(); import { ref, computed } from 'vue' const currentStep = ref(0) const proressWith = computed(() => { if(currentStep.value==1) return '290rpx' if(currentStep.value==2) return '100%' return 0 }) const houseStr = computed(() => { let item = counterStore.chooseHouse if(!item.houseId) return '' let str = item.communityName +' - '+ item.houseTypeName +' - '+ item.roomNum return str }) function nextStep(num) { // 第一步如果没有选择房子是不能走第二步的
if(num==0&&!counterStore.chooseHouse.houseId) return if(num==1) currentStep.value = num if(num==2) { getpersonfaceFn() } if(num==3) { counterStore.chooseHouse = { "roomNum": "", "houseType": '', "houseTypeName": '', "communityId": '', "communityName": '', "userName": 0, "idNo": "", "houseId": '', } uni.switchTab({ url: '/pages/tabbar/index/index' }) } } async function getpersonfaceFn() { // {MerchantId: '0NSJ2407181630565100'}
// let obj = {
// }
const {data: res} = await getFacetoken() console.log('获取到token了,很好') console.log(res) console.log(res.eidToken) goSDK(res.eidToken) } async function GetDetectInfoEnhancedFn(EidToken) { // userId: counterStore.loginInfo.userId, InfoType: 1
const {data: res} = await getFaceResult({token: EidToken, }) console.log('返回的结果信息') console.log(res) counterStore.upDateHouse('idNo', res.idCard) counterStore.upDateHouse('userName', res.name) counterStore.upDateUseInfo('idCard', res.idCard) counterStore.upDateUseInfo('name', res.name) houseRoomBindFn() } // 绑定房子
async function houseRoomBindFn() { const {data: res} = await houseRoomBind(counterStore.chooseHouse) console.log(res) currentStep.value = 2 uni.hideLoading() } // 示例方法
function goSDK(token) { startEid({ data: { token, }, verifyDoneCallback(res) { const { token, verifyDone } = res; console.log('收到核身完成的res:', res); console.log('核身的token是:', token); uni.showLoading({ title: '正在加载,请稍后……' }) GetDetectInfoEnhancedFn(token) console.log('是否完成核身:', verifyDone); }, }); } </script>
<style lang="scss" scoped> image { display: block; width: 100%; height: 100%; } .content { .btnBox { margin-top: 60rpx; } .line { width: 100%; height: 20rpx; background: #EFEFEF; } .step1 { padding: 20rpx 0; font-size: 28rpx; color: #343434; .lab { padding: 30rpx 0 10rpx 0; } .row { height: 96rpx; border-bottom: 1px solid #EFEFEF; .adrs { color: $themC; margin-right: 6rpx; } } } .step3 { padding: 40rpx 0; display: flex; flex-direction: column; justify-content: center; align-items: center; .okIcon { width: 303rpx; height: 164rpx; } .oktext { font-size: 36rpx; color: #343434; margin-top: 20rpx; } .btnBox { width: 100%; } } .stepTop { padding: 20rpx 20rpx 50rpx 20rpx; } .steps { width: 528rpx; height: 50rpx; background: #EFEFEF; border-radius: 25rpx; position: relative; margin: 20rpx auto 40rpx auto; .proress { position: absolute; left: 0; top: 0; height: 100%; width: 290rpx; background: linear-gradient(90deg, rgba(222,58,38,0.1) 0%, #DE3A26 100%); border-radius: 25rpx; } .step { .num { width: 44rpx; height: 44rpx; background: #FFFFFF; border-radius: 50%; font-size: 24rpx; color: #9C9C9C; line-height: 44rpx; text-align: center; position: relative; &.active { border: 1px solid $themC; color: $themC; .text { color: #333; } } .text { position: absolute; bottom: -60rpx; left: -26rpx; font-size: 24rpx; white-space: nowrap; } } } } } </style>
|