| @@ -19,7 +19,7 @@ import global from '@/utils/global'; | |||||
| import { getDicts ,getConfigKey } from "@/utils/data"; | import { getDicts ,getConfigKey } from "@/utils/data"; | ||||
| import { houseGetDicts } from '@/utils/data'; | import { houseGetDicts } from '@/utils/data'; | ||||
| import { selectDictLabel , selectDictScheme , onClickLeft , getNowFormatDate , format } from "@/utils/utils"; | |||||
| import { selectDictLabel , selectDictScheme , onClickLeft , getNowFormatDate , format , isBankCard } from "@/utils/utils"; | |||||
| import vueEsign from 'vue-esign' | import vueEsign from 'vue-esign' | ||||
| Vue.use(vueEsign) | Vue.use(vueEsign) | ||||
| @@ -33,6 +33,7 @@ Vue.prototype.onClickLeft = onClickLeft | |||||
| Vue.prototype.getNowFormatDate = getNowFormatDate | Vue.prototype.getNowFormatDate = getNowFormatDate | ||||
| Vue.prototype.format = format | Vue.prototype.format = format | ||||
| Vue.prototype.global = global | Vue.prototype.global = global | ||||
| Vue.prototype.isBankCard = isBankCard | |||||
| // Vant 引用 | // Vant 引用 | ||||
| import Vant from 'vant'; | import Vant from 'vant'; | ||||
| @@ -86,3 +86,75 @@ export function format(time, format) { | |||||
| } | } | ||||
| }) | }) | ||||
| } | } | ||||
| /** | |||||
| * @author Rui.Zhang | |||||
| * @description 判断是否为银行卡号 | |||||
| * @param {String} str_cardNo 待校验的数据 | |||||
| * @returns {Boolean}, true:是银行卡号 | |||||
| **/ | |||||
| export function isBankCard (str_cardNo) { | |||||
| str_cardNo = str_cardNo || String(this); | |||||
| if ("" == str_cardNo.trim() || undefined == str_cardNo) { | |||||
| return false; | |||||
| } | |||||
| var lastNum = str_cardNo.substr(str_cardNo.length - 1, 1);//取出最后一位(与luhm进行比较) | |||||
| var first15Num = str_cardNo.substr(0, str_cardNo.length - 1);//前15或18位 | |||||
| var newArr=new Array(); | |||||
| for(var i=first15Num.length-1;i>-1;i--){ //前15或18位倒序存进数组 | |||||
| newArr.push(first15Num.substr(i,1)); | |||||
| } | |||||
| var arrJiShu=new Array(); //奇数位*2的积 <9 | |||||
| var arrJiShu2=new Array(); //奇数位*2的积 >9 | |||||
| var arrOuShu=new Array(); //偶数位数组 | |||||
| for(var j=0;j<newArr.length;j++){ | |||||
| if((j+1)%2==1){//奇数位 | |||||
| if(parseInt(newArr[j])*2<9) | |||||
| arrJiShu.push(parseInt(newArr[j])*2); | |||||
| else | |||||
| arrJiShu2.push(parseInt(newArr[j])*2); | |||||
| } | |||||
| else //偶数位 | |||||
| arrOuShu.push(newArr[j]); | |||||
| } | |||||
| var jishu_child1=new Array();//奇数位*2 >9 的分割之后的数组个位数 | |||||
| var jishu_child2=new Array();//奇数位*2 >9 的分割之后的数组十位数 | |||||
| for(var h=0;h<arrJiShu2.length;h++){ | |||||
| jishu_child1.push(parseInt(arrJiShu2[h])%10); | |||||
| jishu_child2.push(parseInt(arrJiShu2[h])/10); | |||||
| } | |||||
| var sumJiShu=0; //奇数位*2 < 9 的数组之和 | |||||
| var sumOuShu=0; //偶数位数组之和 | |||||
| var sumJiShuChild1=0; //奇数位*2 >9 的分割之后的数组个位数之和 | |||||
| var sumJiShuChild2=0; //奇数位*2 >9 的分割之后的数组十位数之和 | |||||
| var sumTotal=0; | |||||
| for(var m=0;m<arrJiShu.length;m++){ | |||||
| sumJiShu=sumJiShu+parseInt(arrJiShu[m]); | |||||
| } | |||||
| for(var n=0;n<arrOuShu.length;n++){ | |||||
| sumOuShu=sumOuShu+parseInt(arrOuShu[n]); | |||||
| } | |||||
| for(var p=0;p<jishu_child1.length;p++){ | |||||
| sumJiShuChild1=sumJiShuChild1+parseInt(jishu_child1[p]); | |||||
| sumJiShuChild2=sumJiShuChild2+parseInt(jishu_child2[p]); | |||||
| } | |||||
| //计算总和 | |||||
| sumTotal=parseInt(sumJiShu)+parseInt(sumOuShu)+parseInt(sumJiShuChild1)+parseInt(sumJiShuChild2); | |||||
| //计算Luhm值 | |||||
| var k= parseInt(sumTotal)%10==0?10:parseInt(sumTotal)%10; | |||||
| var luhm= 10-k; | |||||
| if(lastNum==luhm){ | |||||
| return true; | |||||
| } | |||||
| else{ | |||||
| return false; | |||||
| } | |||||
| } | |||||
| @@ -11,6 +11,10 @@ | |||||
| </template> | </template> | ||||
| </van-nav-bar> | </van-nav-bar> | ||||
| <div class="main_box"> | |||||
| <van-field v-model="value" placeholder="粘贴信息,自动拆分收款方、收款账号" @input="changeInform" /> | |||||
| </div> | |||||
| <van-form @submit="goAdd" @failed="getError" :show-error-message="false" scroll-to-error validate-first> | <van-form @submit="goAdd" @failed="getError" :show-error-message="false" scroll-to-error validate-first> | ||||
| <p class="main_title">基础信息</p> | <p class="main_title">基础信息</p> | ||||
| <div class="main_box"> | <div class="main_box"> | ||||
| @@ -138,6 +142,7 @@ | |||||
| accountTypeOptions:[], | accountTypeOptions:[], | ||||
| payeeTypeOptions:[], | payeeTypeOptions:[], | ||||
| bankDepositOptions:[], | bankDepositOptions:[], | ||||
| value:'' | |||||
| }; | }; | ||||
| }, | }, | ||||
| created() { | created() { | ||||
| @@ -169,6 +174,26 @@ | |||||
| }); | }); | ||||
| }, | }, | ||||
| changeInform(val){ | |||||
| console.log(val) | |||||
| var that = this; | |||||
| var str = val; | |||||
| var numArr = str.match(/\d+/g) | |||||
| var nameArr = str.match(/[\u4e00-\u9fa5]/g).join("") | |||||
| console.log(numArr) | |||||
| console.log(nameArr) | |||||
| if (numArr) { | |||||
| numArr.map(rr=>{ | |||||
| if (rr.length>16) { | |||||
| const carId = this.isBankCard(rr); | |||||
| if (carId) { | |||||
| that.form.payee = nameArr; | |||||
| that.form.payeeAccount = rr | |||||
| } | |||||
| } | |||||
| }) | |||||
| } | |||||
| }, | |||||
| getError(e){ | getError(e){ | ||||
| this.$notify({ type: 'danger', message: e.errors[0].message }); | this.$notify({ type: 'danger', message: e.errors[0].message }); | ||||
| }, | }, | ||||