| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- <template>
- <view>
- <view class="step ddflex">
- <view :class="'li' + (stepOne ? ' ing' : '') + (stepOneComplete ? ' end' : '')">
- <view class="num">1</view>
- <image src="../../static/promote/images/gou_h.png" class="s-gou"></image>
- <text>验证身份信息</text>
- </view>
- <view :class="'li' + (stepTwo ? ' ing' : '') + (stepTwoComplete ? ' end' : '')">
- <view class="num">2</view>
- <image src="../../static/promote/images/gou_h.png" class="s-gou"></image>
- <text>验证银行卡信息</text>
- </view>
- </view>
- <block v-if="stepOne">
- <view class="form">
- <view class="li cards">
- <label class="label">身份证信息</label>
- <view class="card ddflex">
- <view class="linsence" @click="uploadImgs(1)">
- <image :src="fileInfo.legalPersonidPositivePic ? fileInfo.legalPersonidPositivePic : picUrlss + 'card_front.png'"></image>
- <view>身份证人像面</view>
- </view>
- <view class="linsence" @click="uploadImgs(2)">
- <image :src="fileInfo.egalPersonidOppositePic ? fileInfo.egalPersonidOppositePic : picUrlss + 'card_back.png'"></image>
- <view>身份证国徽面</view>
- </view>
- </view>
- </view>
- <view class="li ddflex">
- <label class="label">姓名</label>
- <view class="item fflex"><input v-model="rName" placeholder="上传身份证人像面自动获取" placeholder-class="placeholder" class="ipt" /></view>
- </view>
- <view class="li ddflex">
- <label class="label">身份证号</label>
- <view class="item fflex"><input v-model="rCode" placeholder="上传身份证人像面自动获取" placeholder-class="placeholder" class="ipt" /></view>
- </view>
- <view class="li ddflex">
- <label class="label">有效期限</label>
- <view class="item ddflex fflex">
- <input v-model="rValidDate" placeholder="上传身份证国徽面自动获取" placeholder-class="placeholder" class="ipt fflex" />
- <!-- <view class="chang ddflex">
- <image src="../../static/promote/images/gou1.png"></image>
- 长期
- </view> -->
- </view>
- </view>
- <view class="li dflex">
- <label class="label">所在城市</label>
- <view class="item dflex flex">
- <input :disabled="true" v-model="address" placeholder="点击右侧图标获取" placeholder-class="placeholder" class="ipt flex" />
- <image src="../../static/promote/images/dzico.png" class="location" @click="chooseLocation()"></image>
- </view>
- </view>
- </view>
- <view class="next" @click="toStepTwo">下一步</view>
- </block>
- <block v-if="stepTwo">
- <view class="form">
- <view class="li cards">
- <label class="label">银行卡</label>
- <view class="linsence" @click="uploadImgs(3)">
- <image :src="bankUrl ? bankUrl : picUrlss + 'card.png'"></image>
- <view>上传储蓄银行卡正面照</view>
- </view>
- </view>
- <view class="li dflex">
- <label class="label">户名</label>
- <view class="item flex"><input :disabled="true" v-model="rName" placeholder="请输入户主名称" placeholder-class="placeholder" class="ipt" /></view>
- </view>
- <view class="li ddflex">
- <label class="label">开户银行</label>
- <view class="item fflex">
- <picker :class="'pickers ' + (bankName ? 'active' : '')" @change="bindPickerBank" range-key="name" :range="bankList">
- <view v-if="bankName" class="ipt">{{ bankName }}</view>
- <view v-else class="ipt_g">请选择开户银行</view>
- <image src="../../../static/pages/images/crico1.png" class="rico"></image>
- </picker>
- </view>
- </view>
- <view class="li ddflex">
- <label class="label">银行卡号</label>
- <view class="item fflex"><input v-model="bankNo" placeholder="上传后自动获取" placeholder-class="placeholder" class="ipt" /></view>
- </view>
- <view class="li flexs dflex">
- <label class="label">预留手机</label>
- <view class="item flex">
- <input type="number" v-model="bankAcctPhone" maxlength="11" placeholder="请输入银行预留手机号" placeholder-class="placeholder" class="ipt" />
- </view>
- </view>
- </view>
- <view class="next" @click="submit()">确定绑卡</view>
- </block>
- </view>
- </template>
- <script>
- const app = getApp();
- // const util = require('../../../utils/util.js');
- const req = require('../../../utils/request.js');
- const hfParams = require('../../../utils/hfParams.js');
- var QQMapWX = require('../../../utils/qqmap.js');
- export default {
- data() {
- return {
- picUrlss: req.public.picUrls,
- isEdit: false,
- stepOne: true,
- stepOneComplete: false,
- stepTwo: false,
- stepTwoComplete: false,
- fileInfo: {
- legalPersonidPositivePic: '', //正面
- egalPersonidOppositePic: '' //反面
- },
- //身份信息
- rName: '',
- rCode: '',
- rValidDate: '',
- location: '',
- addIds: '',
- address: '', //区域
- addressDetails: '',
- cityList: [],
- bankList: [],
- bankUrl: '', //银行卡图片
- bankPosition: -1, //下标
- bankName: '', //银行名字
- bankAcctName: '', //户名
- bankNo: '', //卡号
- bankAcctPhone: '',
- settlementInfo: '',
- isEnd: false //是否为查看编辑
- };
- },
- onLoad(opt) {
- this.cityList = hfParams.mArea();
- this.bankList = hfParams.bank();
- if (opt.isEnd) {
- this.isEnd = opt.isEnd;
- //默认选中上面的标签
- let pages = getCurrentPages(); //获取所有页面栈实例列表
- let prevPage = pages[pages.length - 2]; //上一页页面实例
- this.settlementInfo = prevPage.$vm.settlementInfo;
- if (this.settlementInfo) {
- this.addIds = this.settlementInfo.provCode + ',' + this.settlementInfo.areaCode;
- this.address = this.settlementInfo.address;
- this.rName = this.settlementInfo.cardName;
- this.bankName = this.getBankName(this.settlementInfo.bankCode);
- this.bankAcctName = this.settlementInfo.cardName;
- this.bankUrl = this.settlementInfo.bankUrl;
- this.bankNo = this.settlementInfo.cardNo.replace(' ','');
- this.fileInfo = JSON.parse(this.settlementInfo.fileJson);
- this.rCode = this.settlementInfo.legalCertId;
- this.rValidDate = this.settlementInfo.legalCertIdExpires;
- this.bankAcctPhone = this.settlementInfo.legalMp;
- }
- }
- },
- methods: {
- getBankName(code) {
- for (var i = 0; i < this.bankList.length; i++) {
- var bankObj = this.bankList[i];
- if (bankObj.code == code) {
- this.bankPosition = i;
- return bankObj.name;
- }
- }
- },
- toStepTwo() {
- if (!this.fileInfo.legalPersonidPositivePic) {
- req.msg('请上传身份证人像面');
- return;
- }
- if (!this.fileInfo.egalPersonidOppositePic) {
- req.msg('请上传身份证国徽面');
- return;
- }
- if (!this.rName) {
- req.msg('姓名不能为空');
- return;
- }
- if (!this.rCode) {
- req.msg('身份证号不能为空');
- return;
- }
- if (!this.rValidDate) {
- req.msg('身份证有效期不能为空');
- return;
- }
- if (!this.addIds) {
- req.msg('请选择所在地区');
- return;
- }
- this.stepOne = false;
- this.stepOneComplete = true;
- this.stepTwo = true;
- },
- uploadImgs(type) {
- // if (!this.isEdit) {
- // return;
- // }
- let that = this;
- uni.chooseImage({
- count: 1,
- sizeType: ['original', 'compressed'],
- sourceType: ['album', 'camera'],
- success(res) {
- uni.showLoading({
- title: '上传中'
- });
- req.uploadFile('/api/nocheck/upload', res.tempFilePaths[0], res => {
- uni.hideLoading();
- if (type == 1) {
- //正面
- that.fileInfo.legalPersonidPositivePic = res.src;
- that.ocrCard(res.src, 1);
- } else if (type == 2) {
- //反面
- that.fileInfo.egalPersonidOppositePic = res.src;
- that.ocrCard(res.src, 2);
- } else if (type == 3) {
- that.bankUrl = res.src;
- uni.showLoading({
- title: '识别中'
- });
- req.getRequest('/baiduAI/bank', { imgUrl: res.src }, json => {
- uni.hideLoading();
- if (json.result) {
- that.bankNo = json.result.bank_card_number;
- that.initCheckBank(json.result.bank_name);
- }
- });
- }
- });
- }
- });
- },
- ocrCard(imgUrl, type) {
- uni.showLoading({
- title: '识别中'
- });
- //front back
- var idCardDide = type == 1 ? 'front' : 'back';
- req.getRequest('/baiduAI/ocrIdcard', { imgUrl: imgUrl, idCardDide: idCardDide }, json => {
- uni.hideLoading();
- if (type == 1) {
- this.rName = json.words_result.姓名.words;
- this.rCode = json.words_result.公民身份号码.words;
- } else if (type == 2) {
- var dataStr = json.words_result.失效日期.words;
- if (dataStr === '长期') {
- this.rValidDate = '2099-12-31';
- } else {
- var y = dataStr.slice(0, 4);
- var m = dataStr.slice(4, 6);
- var d = dataStr.slice(6, 8);
- this.rValidDate = y + '-' + m + '-' + d;
- }
- }
- });
- },
- initCheckBank(name) {
- for (var i = 0; i < this.bankList.length; i++) {
- var bankObj = this.bankList[i];
- if (bankObj.name == name) {
- this.bankPosition = i;
- this.bankName = name;
- }
- }
- },
- chooseLocation() {
- var tha = this;
- uni.chooseLocation({
- success: res => {
- if (res.name) {
- tha.location = res;
- tha.addressDetails = res.address;
- tha.reverseGeocoder(res);
- }
- },
- fail: () => {
- uni.getSetting({
- success: function(res) {
- var statu = res.authSetting;
- console.log(statu);
- if (!statu['scope.userLocation']) {
- console.log(123);
- uni.showModal({
- title: '是否授权当前位置',
- content: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
- success(tip) {
- if (tip.confirm) {
- uni.openSetting({
- success: function(data) {
- if (data.authSetting['scope.userLocation'] === true) {
- //授权成功之后,再调用chooseLocation选择地方
- setTimeout(function() {
- uni.chooseLocation({
- success: res => {
- if (res.name) {
- tha.location = res;
- tha.addressDetails = res.address;
- console.log('地址数据addressDetail》》》:', tha.addressDetails);
- tha.reverseGeocoder(res);
- }
- }
- });
- }, 1000);
- }
- }
- });
- }
- }
- });
- }
- }
- });
- }
- });
- },
- reverseGeocoder(location) {
- QQMapWX.initMap();
- QQMapWX.reverseGeocoder(location, data => {
- this.address = data.ad_info.province + ' ' + data.ad_info.city; //+ ' ' + data.ad_info.district
- for (var i = 0; i < this.cityList.length; i++) {
- var cityObj = this.cityList[i];
- if (data.ad_info.province.indexOf(cityObj.label) != -1) {
- for (var k = 0; k < cityObj.children.length; k++) {
- var areaObj = cityObj.children[k];
- if(data.ad_info.city == '襄阳市') data.ad_info.city = '襄樊市';
- if(data.ad_info.city == '普洱市') data.ad_info.city = '思茅市';
- if (data.ad_info.city.indexOf(areaObj.label) != -1) {
- this.addIds = cityObj.value + ',' + areaObj.value;
- }
- }
- }
- }
- console.log('解析后的地址地址数据:', this.address + '》》》' + this.addIds);
- });
- },
- bindPickerBank(event) {
- this.bankPosition = event.detail.value;
- this.bankName = this.bankList[this.bankPosition].name;
- },
- submit() {
- if (!this.bankUrl) {
- req.msg('请上传银行卡正面照');
- return;
- }
- if (!this.bankName) {
- req.msg('请选择开户银行');
- return;
- }
- if (!this.bankNo) {
- req.msg('请输入银行卡号');
- return;
- }
- if (!this.bankAcctPhone) {
- req.msg('请输入银行预留手机号');
- return;
- }
- var addIds = this.addIds.split(',');
- var params = {
- provCode: addIds[0],
- areaCode: addIds[1], //商户所在地区
- address: this.address,
- bankAcctType: 2,
- cardName: this.rName,
- bankCode: this.bankList[this.bankPosition].code,
- bankUrl: this.bankUrl,
- cardNo: this.bankNo.replace(' ',''),
- fileJson: JSON.stringify(this.fileInfo),
- haveLicenseNo: 2,
- legalCertName: this.rName,
- legalCertId: this.rCode,
- legalCertIdExpires: this.rValidDate,
- isOpen: 0,
- legalMp: this.bankAcctPhone
- };
- req.postRequest('/api/v3/settlement/create', params, json => {
- req.msg('添加成功');
- setTimeout(() => {
- uni.navigateBack();
- }, 1500);
- });
- }
- }
- };
- </script>
- <style>
- @import './bindCard.css';
- </style>
|