import { getCityCodeList, getAreaCodeList } from '@/api/product' import { MessageBox,Message } from 'element-ui' import { setStorage, getStorage, removeStorage } from "@/utils/storage"; export default { tabInfo(state,target,self){ const applyInfo = self.$store.state.product.applyInfo const { flowno } = applyInfo switch (state) { case '借款人信息': self.$router.replace({path:`/${target}/borrower`}) break; case '共借人信息': self.$router.replace({path:`/${target}/coBorrower`}) break; case '担保人信息': self.$router.replace({path:`/${target}/guarantor`}) break; case '卖方信息': self.$router.replace({path:`/${target}/seller`}) break; case '买方信息': self.$router.replace({path:`/${target}/buyer`}) break; case '物业信息': self.$router.replace({path:`/${target}/property`}) break; case '借款企业信息': self.$router.replace({path:`/${target}/loanEnterprise`}) break; case '应收账款信息': self.$router.replace({path:`/${target}/receivables`}) break; case '再保理信息': self.$router.replace({path:`/${target}/reFactoring`}) break; case '准入项目信息': self.$router.replace({path:`/${target}/commission`}) break; case '票据信息': self.$router.replace({path:`/${target}/bill`}) break; case '贷款申请信息': self.$router.replace({path:`/${target}/loan`}) break; case '主/共借人征信信息': self.$router.replace({path:`/${target}/credit`}) break; case '预收客户息费': self.$router.replace({path:`/preChargeCustomerInterest`}) break; case '预收商户贴息': self.$router.replace({path:`/preChargeMerchantDiscount`}) break; case '本金回款信息': self.$router.replace({path:`/${target}/receivable`}) break; case '息费结算信息': self.$router.replace({path:`/${target}/interestSettle`}) break; case '还款信息': self.$router.replace({path:`/${target}/repayment`}) break; case '回款信息': self.$router.replace({path:`/${target}/moneyBack`}) break; case '审批意见': flowno == 'ZBDEntInfoAlterFlow' ? self.$router.replace({path:'/ZBDEntInfoAlterFlow/opinion'}) : self.$router.replace({path:'/opinion'}) break; case '影像资料信息': self.$router.replace({path:'/imageData'}) break; case '电子合同信息': self.$router.replace({path:'/contract'}) break; case '风控审批信息': self.$router.replace({path:'/riskApproval'}) break; case '历史审批意见': self.$router.replace({path:'/historicalOpinions'}) break; case '历史贷款信息': self.$router.replace({path:'/historicalLoan'}) break; case '流程流转记录': self.$router.replace({path:'/flowRecord'}) break; default: break; } }, eachRoute(path,that){ switch (path) { case "borrower": that.eachArr('借款人信息') break; case "coBorrower": that.eachArr('共借人信息') break; case "guarantor": that.eachArr('担保人信息') break; case "seller": that.eachArr('卖方信息') break; case "buyer": that.eachArr('买方信息') break; case "property": that.eachArr('物业信息') break; case "loanEnterprise": that.eachArr('借款企业信息') break; case "receivables": that.eachArr('应收账款信息') break; case "reFactoring": that.eachArr('再保理信息') break; case "commission": that.eachArr('准入项目信息') break; case "bill": that.eachArr('票据信息') break; case "loan": that.eachArr('贷款申请信息') break; case "imageData": that.eachArr('影像资料信息') break; case "credit": that.eachArr('主/共借人征信信息') break; case "preChargeCustomerInterest": that.eachArr('预收客户息费') break; case "preChargeMerchantDiscount": that.eachArr('预收商户贴息') break; case "receivable": that.eachArr('本金回款信息') break; case "interestSettle": that.eachArr('息费结算信息') break; case "repayment": that.eachArr('还款信息') break; case "moneyBack": that.eachArr('回款信息') break; case "contract": that.eachArr('电子合同信息') break; case "opinion": that.eachArr('审批意见') break; case "riskApproval": that.eachArr('风控审批信息') break; case "historicalOpinions": that.eachArr('历史审批意见') break; case "historicalLoan": that.eachArr('历史贷款信息') break; case "flowRecord": that.eachArr('流程流转记录') break; default: break; } }, // 点击下一步进行校验 validateForm(array){ let flag = true for (let i = 0; i < array.length; i++) { array[i].validate(valid => { if (!valid) { flag = false } }); if(!flag){ Message.warning('当前页面存在必填项未录入或数据录入错误,请检查!') return { flag:flag,index:i }; } } return { flag:flag } }, // 规则校验 validate(code){ // 中文名称校验 if(code=='name'){ return { pattern: /^[\u4e00-\u9fa5]{2,50}$/, message: `格式不正确`, trigger: 'blur' } } // 手机号码校验 if(code=='phone'){ return { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: `格式不正确`, trigger: 'blur' } } // 身份证号码校验 if(code=='identity'){ return { pattern: /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/, message: `格式不正确`, trigger: 'blur' } } // 电话格式 if(code=='telephone'){ return { pattern: /^[0-9]([-0-9]+)$/, message: `格式不正确`, trigger: 'blur' } } // 金额校验 if(code=='amount'){ return { pattern: /^(([1-9][0-9]{0,2}(,\d{3})*)|0)(\.\d{1,2})?$/, message: `格式不正确`, trigger: 'blur' } } // 纯数字校验 if(code=='number'){ return { pattern: /^\d+$/, message: `格式不正确`, trigger: 'blur' } } // 银行卡号校验 if(code=='bankNo'){ return { pattern: /^[0-9]{16,19}$/, message: `格式不正确`, trigger: 'blur' } } // 银行户名校验 if(code=='bankName'){ return { pattern: /^[\u4E00-\u9FA5]{1,100}$/, message: `格式不正确`, trigger: 'blur' } } // 邮箱校验 if(code=='email'){ return { pattern: /^[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/, message: `格式不正确`, trigger: 'blur' } } }, // 自定义身份证校验 checkCertid(certtype,value,callback){ if(!(/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/.test(value))&&certtype=='01'){ callback(new Error('证件号码格式不正确')); }else{ if(value.length>50&&certtype!='01'){ callback(new Error('证件号码格式不正确')); }else{ callback() } } }, // 根据市获取区枚举值 getcity(val,key,form,callback){ if(val){ getAreaCodeList({codeNo:'AreaCode',itmeNo:val}).then(res=>{ callback(res.result) switch (key) { case 'companycountyList': form.companycounty = '' callback(res.result) break; case 'familycountyList': form.familycounty = '' callback(res.result) break; case 'kosekicountyList': form.kosekicounty = '' callback(res.result) break; case 'housecountyList': form.housecounty = '' callback(res.result) break; case 'registerareList': form.registerare = '' callback(res.result) break; case 'corporatecountyList': form.corporatecounty = '' callback(res.result) break; case 'cpncountyList': form.cpnDist = '' callback(res.result) break; default: break; } }) } }, // 根据省获取市枚举值 getprovince(val,key,form,callback){ if(val){ getCityCodeList({codeNo:'AreaCode',itmeNo:val}).then(res=>{ switch (key) { case 'companycityList': form.companycity = '' form.companycounty = '' callback(res.result) break; case 'familycityList': form.familycity = '' form.familycounty = '' callback(res.result) break; case 'kosekicityList': form.kosekicity = '' form.kosekicounty = '' callback(res.result) break; case 'housecityList': form.housecity = '' form.housecounty = '' callback(res.result) break; case 'registercityList': form.registercity = '' form.registerare = '' callback(res.result) break; case 'putoutbankcityList': form.putoutbankcity = '' callback(res.result) break; case 'corporatecityList': form.corporatecity = '' callback(res.result) break; case 'cpncityList': form.cpnCity = '' form.cpnDist = '' callback(res.result) break; default: break; } }) } }, // 获取区枚举值 qryAreaCodeList(code){ return new Promise(resolve=>{ getAreaCodeList({codeNo:'AreaCode',itmeNo:code}).then(res=>{ resolve(res.result) }) }) }, // 获取市枚举值 qryCityCodeList(code){ return new Promise(resolve=>{ getCityCodeList({codeNo:'AreaCode',itmeNo:code}).then(res=>{ resolve(res.result) }) }) }, // 比较表单数据是否发生变化 compareFormData(oldData,newData,next){ for (let i = 0; i < newData.length; i++) { for (const key in newData[i]) { if (oldData[i].hasOwnProperty(key)) { const flag = typeof newData[i][key] === 'object' ? JSON.stringify(newData[i][key]) != JSON.stringify(oldData[i][key]) : newData[i][key] != oldData[i][key] if (flag) { // 页面有数据未保存 MessageBox.confirm("当前有数据未保存, 是否放弃保存?", "提示", { confirmButtonText: '是', cancelButtonText: '否', closeOnClickModal:false, center: true }) .then(() => { next(); }) .catch(() => {}); return false; } } } } return true }, // 保存标记字段 saveField(applyInfo,name,formData){ let object = {}; if(getStorage(`${applyInfo.serialNo}`)){ object = JSON.parse(getStorage(`${applyInfo.serialNo}`)) } object[name] = formData setStorage(`${applyInfo.serialNo}`,object) }, comfirm(title,content,callback) { MessageBox.confirm(content, title, { confirmButtonText: '是', cancelButtonText: '否', closeOnClickModal:false, cancelButtonClass:'cancelButton', center: true }).then(() => { callback(); }).catch(() => {}); }, alert(title,content,func){ MessageBox.alert(content, title, { confirmButtonText: '确定', center: true, callback: action => { func() } }); } }