// pages/realNameAuthentication/index.js const $$ = require('../../utils/util'); // 实名认证 function realNameAuthenticationApi(submitData) { return $$.request({ url: 'paUser/realAuth', type: 'post', submitData, service: 'cust' }); } Page({ /** * 页面的初始数据 */ backNum: 1, // 如果从完善资料进入则返回两级到个人中心 data: { steps: ['完善信息', '刷脸认证'], submitData: { trueName: '', mobile: '', idcardType: '09_00015-1', idcardTypeName: '身份证', idcard: '', prov: '', provName: '', city: '', cityName: '', area: '', areaName: '', road: '', roadName: '', village: '', villageName: '', addr: '', agree: false, }, popup: {}, // 下拉弹出框数据 }, // 展示弹出层 handleShowPopup(e) { this.setData({ popup: e.detail }); }, // 关闭弹出层 handleClosePopup() { this.data.popup.visible = false; this.setData({ popup: this.data.popup }); }, // 下拉框确认选择 handleConfirmPicker({ detail }) { let type = this.data.popup.type; let value = detail.detail.value; let arr = []; this.data.popup.visible = false; if (type === 'location') { arr = [ ['prov', 'provName'], ['city', 'cityName'], ['area', 'areaName'], ['road', 'roadName'], ['village', 'villageName'], ]; arr.forEach((x, t) => { this.data.submitData[x[0]] = value[t]?.value || ''; this.data.submitData[x[1]] = value[t]?.label || ''; }); } else { if (type === 'cardType') { arr = ['idcardType', 'idcardTypeName']; } else if (type === 'sex') { arr = ['sex', 'sexName']; } arr.forEach((x, t) => { this.data.submitData[x] = value[t === 0 ? 'value' : 'label']; }); } this.setData({ popup: this.data.popup, submitData: this.data.submitData }); }, // form的change handleChange(e) { const { key, value } = e.detail; this.data.submitData[key] = value; this.setData({ submitData: this.data.submitData }); }, // 修改picker的列时触发 handleChangeColumns(e) { if (this.data.popup.type === 'location') { let selectData = $$.changeLocation(e, this.selectComponent('#personal-data-dom').location, this.data.popup.selectData); this.setData({ popup: { ...this.data.popup, selectData } }); } }, // 进行刷脸认证 handleRealName() { let submitData = this.data.submitData; let msg = ''; if (!submitData.trueName) { msg = '请输入姓名'; } else if (!submitData.idcard) { msg = '请输入证件号码'; } else if (!$$.mobileRegExp(submitData.mobile)) { msg = '请输入正确的手机号码'; } else if (!submitData.agree) { msg = '请勾选确认信息'; } if (msg) { $$.showToast({ title: msg }); return false; } let that = this; wx.checkIsSupportFacialRecognition({ success() { wx.startFacialRecognitionVerify({ name: that.data.submitData.trueName, idCardNumber: that.data.submitData.idcard, success() { console.log('识别成功'); that.realNameAuthentication(); }, fail() { $$.showToast({ title: '抱歉!识别失败,请稍后重试' }); }, }); }, fail(res) { console.log(res); $$.showToast({ title: '抱歉!请求失败,稍后重试' }); }, }); }, // 上传实名认证数据 async realNameAuthentication() { $$.showLoading(); const res = await realNameAuthenticationApi(this.data.submitData); $$.hideLoading(); if (res.type) { this.getUserInfo() $$.showToast({ icon: 'success', title: '实名认证成功' }); wx.removeStorage({ key: 'access_token' }); await $$.sleep(); wx.navigateBack({ delta: this.backNum || 1, }); } }, // 获取个人信息 async getUserInfo(e) { let data = e.detail || {}; let keys = Object.keys(this.data.submitData); keys.forEach((x) => { if (data[x]) { this.data.submitData[x] = data[x]; } }); this.setData({ submitData: this.data.submitData }); }, // 获取手机号码 async handleGetPhoneNumber(e) { let phone = await this.selectComponent('#common-page').handleGetPhoneNumber(e.detail); this.data.submitData.mobile = phone; this.setData({ submitData: this.data.submitData }); }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { if (options.backNum) { this.backNum = 2; } }, });