@@ -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 }); | ||||
}, | }, | ||||