庞东旭 před 2 roky
rodič
revize
e2392c1747
3 změnil soubory, kde provedl 99 přidání a 1 odebrání
  1. +2
    -1
      src/main.js
  2. +72
    -0
      src/utils/utils.js
  3. +25
    -0
      src/views/yinnong/bankAgriculture/collectionAccount/collectionAdd.vue

+ 2
- 1
src/main.js Zobrazit soubor

@@ -19,7 +19,7 @@ import global from '@/utils/global';

import { getDicts ,getConfigKey } 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'
Vue.use(vueEsign)

@@ -33,6 +33,7 @@ Vue.prototype.onClickLeft = onClickLeft
Vue.prototype.getNowFormatDate = getNowFormatDate
Vue.prototype.format = format
Vue.prototype.global = global
Vue.prototype.isBankCard = isBankCard

// Vant 引用
import Vant from 'vant';


+ 72
- 0
src/utils/utils.js Zobrazit soubor

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

+ 25
- 0
src/views/yinnong/bankAgriculture/collectionAccount/collectionAdd.vue Zobrazit soubor

@@ -11,6 +11,10 @@
</template>
</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>
<p class="main_title">基础信息</p>
<div class="main_box">
@@ -138,6 +142,7 @@
accountTypeOptions:[],
payeeTypeOptions:[],
bankDepositOptions:[],
value:''
};
},
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){
this.$notify({ type: 'danger', message: e.errors[0].message });
},


Načítá se…
Zrušit
Uložit