diff --git a/src/views/ebiz/common/CalculatePremium.vue b/src/views/ebiz/common/CalculatePremium.vue index e84cbd1c8..f44f4bfe5 100644 --- a/src/views/ebiz/common/CalculatePremium.vue +++ b/src/views/ebiz/common/CalculatePremium.vue @@ -375,7 +375,9 @@ export default { //是否需存在特殊配置 0-是 1-否 isTrial: localStorage.isTrial, //缴费期间对应index索引 - payEndYearColumnsIndex: 0 + payEndYearColumnsIndex: 0, + // 后台配置的校验规则 + ruleExpression: {} } }, mounted() { @@ -471,60 +473,71 @@ export default { let ruleExpression = JSON.parse(localStorage.ruleExpression); this.ruleExpression = ruleExpression let productCodes = Object.keys(ruleExpression) - productCodes.every(itemKey => { + productCodes.forEach(itemKey => { // console.log(ruleExpression[itemKey]); let rules = ruleExpression[itemKey]; rules.eventList = []; - rules.every( item => { - let config = '' - //JSON.parse(); - let errorMsg = item.errorMsg; + rules.forEach( item => { + let config = '' + config = JSON.parse(item.ruleExpression); + // let errorMsg = item.errorMsg; // config = { - // eventName: 'test', - // funBody: `let ageMap = { - // "10Y":{"30Y": 55,"70A": 55,"88A": 55}, - // "20Y":{ "30Y": 55, "70A": 50, "88A": 55 }, - // "30Y":{ "30Y": 45, "70A": 40, "88A": 45 }, - // } - // // 交费期间 数列 - // let payEndYear = "" - // // 保险期间 横行 - // let insuYear = "" - // par.map(item => { - // if(item.code == "payEndYear"){ - // payEndYear = item.payEndYear + item.payEndYearFlag - // } - // if(item.code == "insuYear"){ - // insuYear = item.insuYear + item.insuYearFlag - // } - // }) - // if(ParKey == "payEndYear"){ - // payEndYear = Par.value + Par.flag - // } - // if(ParKey == "insuYear"){ - // insuYear = Par.value + Par.flag - // } - // let age = ageMap[payEndYear][insuYear] - // if( this.saleInsuredPersonInfo.age > age ){ - // this.errorMsg.push("当前交费期间和保险期间的组合下,被保险人的年龄不能大于"+age+ "周岁。") - // } - // `, + // eventName: 'GFRS_M0020_payEndYear_insuYear', + // eventType: 'onConfirm', + // funBody: [ + // 'let ageMap = {', + // ' "10Y":{"30Y": 55,"70A": 55,"88A": 55},', + // ' "20Y":{ "30Y": 55, "70A": 50, "88A": 55 }, ', + // ' "30Y":{ "30Y": 45, "70A": 40, "88A": 45 },', + // '};', + // 'let payEndYear = "";', + // 'let insuYear = "";', + // 'let age = this.saleInsuredPersonInfo.age;', + // 'let parObj = {};', + // 'par.map(item => {', + // ' parObj[item.code] = item;', + // '});', + // 'if(ParKey == "payEndYear"){', + // ' payEndYear = Par.value + Par.flag;', + // ' lintAgeObj = ageMap[payEndYear];', + // ' let flag = true;', + // ' parObj.insuYear.columns.forEach(item => {', + // ' let lintAge = lintAgeObj[ item.value + item.flag ];', + // ' if( age > lintAge ){', + // ' item.disabled = true;', + // ' if(flag){', + // ' parObj.insuYear.insuYear = item.value;', + // ' parObj.insuYear.insuYearFlag = item.flag;', + // ' parObj.insuYear.showContent = item.text;', + // ' flag = false;', + // ' };', + // ' }else{', + // ' item.disabled = false;', + // ' };', + // ' });', + // ' if(!flag){', + // ' this.errorMsg.push("您当前选择的交费期间下,无可搭配的保险期间。");', + // ' payEndYear = parObj.payEndYear.payEndYear + parObj.payEndYear.payEndYearFlag;', + // ' lintAgeObj = ageMap[payEndYear];', + // ' parObj.insuYear.columns.forEach(item => {', + // ' let lintAge = lintAgeObj[ item.value + item.flag ];', + // ' if( age > lintAge ){', + // ' item.disabled = true;', + // ' }else{', + // ' item.disabled = false;', + // ' };', + // ' });', + // ' return false;', + // ' };', + // ' return true;', + // '}'], // funPar: ['par','ParKey','Par'], // } - console.log("config",config); - // this.$on(config.eventName, new Function(config.funPar,config.funBody)); - this.$on(config.eventName, new Function( ...config.funPar, config.funBody) - ); + // console.log("config",config); + this.$on(config.eventName, new Function( ...config.funPar, config.funBody.join(''))); rules.eventList.push(config.eventName) }) - // let funObj = JSON.parse(item); - // this.ruleExpression[funObj.name] = new Function('obj',funObj.) }) - // this.$emit('test',50) - // if(this.errorMsg){ - // this.$toast(this.errorMsg) - // alert(this.errorMsg) - // } } }, //特殊处理 GFRS_M0016 GFRS_A0004 GFRS_A0005 赔付比例处理 @@ -641,7 +654,7 @@ export default { //确认选择字段 onConfirm(value) { this.columns = [] - let productCode = this.chooseProducts[this.productIndex].productCode + // let productCode = this.chooseProducts[this.productIndex].productCode let currentFactor = this.chooseProducts[this.productIndex].calFactorLst let currentEle = currentFactor[this.calFactorIndex] console.log('value', value) @@ -673,21 +686,34 @@ export default { this.popupShow = false return false } - console.log("productCode ==>" , productCode) + // console.log("productCode ==>" , productCode) + // if(this.ruleExpression[productCode]){ + // this.errorMsg = [] + // this.ruleExpression[productCode].eventList.forEach(item => { + // this.$emit(item,currentFactor,currentEle.code,value); + // }) + // if(this.errorMsg.length > 0){ + // this.$toast(this.errorMsg[0]); + // this.popupShow = false + // return false + // } + // } + let productCode = this.chooseProducts[this.productIndex].productCode if(this.ruleExpression[productCode]){ this.errorMsg = [] - this.ruleExpression[productCode].eventList.every(item => { + let currentFactor = this.chooseProducts[this.productIndex].calFactorLst + let currentEle = currentFactor[this.calFactorIndex] + this.ruleExpression[productCode].eventList.forEach(item => { this.$emit(item,currentFactor,currentEle.code,value); }) if(this.errorMsg.length > 0){ - this.$toast(this.errorMsg[0]); + //this.$toast(this.errorMsg[0]); this.popupShow = false return false } } - // 后台配置 的 js函数 验证 // if(hasR){ // if(currentEle.code == 'payEndYear' || currentEle.code == 'insuYear'){