Files
ebiz-h5/src/views/ebiz/proposal/js/exhibitionMethod.js

184 lines
5.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export function haveTap(content, keys) {
//判断是否含有档位
if (content.indexOf(keys) === -1) {
return false
} else {
return true
}
}
export function getTapIndex(content, keys) {
//获取关键字的位置
let index = null
index = content.indexOf(keys)
return index
}
export function formLabel(label, key) {
//格式化label
let obj = {}
let result = [] //进行去重
for (var i = 0; i < label.length; i++) {
if (!obj[label[i].contentLabel]) {
result.push(label[i])
obj[label[i].contentLabel] = true
}
}
let defaultArr = []
//找出默认值
label.forEach(v => {
let indexPlace = getTapIndex(v.content, '_') + 1
let keyPlcae = getTapIndex(v.content, key)
if (keyPlcae === indexPlace) {
defaultArr.push(v)
}
})
//进行默认值 赋值
result.forEach(r => {
defaultArr.forEach(d => {
if (r.contentLabel === d.contentLabel) {
r.content = d.content
r.value = d.value
}
})
})
return result
}
//将被保险人与利益演示相关联
export function relevance(insured, insuredLabelResult, insuredResult, insuredInfoResult, amtFormat, dutyLst) {
insured.forEach(insure => {
insure.productFeatures = ''
insure.riskDTOLst.forEach(risk => {
if (!isNaN(Number(risk.planCodeLabel))) {
//如果当前 计划编码为 数字的话 进行格式化
risk.planCodeLabel = amtFormat(Number(risk.planCodeLabel))
}
risk.sliderValue = 1
let insuredId = risk.insuredId
let riskCode = risk.riskCode
let currentInsuredInfo = insuredInfoResult[insuredId][riskCode]
risk.demoLabel = insuredLabelResult[insuredId][riskCode]
risk.demoValue = insuredResult[insuredId][riskCode]
insure.productFeatures = insure.productFeatures + currentInsuredInfo.productFeatures //所有产品特色
// dutyLst.map((duty, ind) => {
// console.log(duty)
// risk.demoLabel.map((item, index, array) => {
// // debugger
// // console.log(risk.demoValue['1'][item.content].replace(/,/g, ''))
// if (risk.demoValue['1'][item.content].replace(/,/g, '') != duty.dutyCode) {
// array.splice(index, 1)
// // console.log('删除成功')
// }
// })
// })
risk.demoLabel.forEach(v => {
// v.value = '' //设置初始值
v.value = risk.demoValue['1'][v.content] //设置初始值
})
if (currentInsuredInfo.plan && currentInsuredInfo.plan === '0') {
let defaulValue = 'M' //档位默认值
let radios = [
{
label: '低档' + currentInsuredInfo.L,
value: 'L'
},
{
label: '中档' + currentInsuredInfo.M,
value: 'M'
},
{
label: '高档' + currentInsuredInfo.H,
value: 'H'
}
]
risk.tap = defaulValue
risk.radios = []
radios.forEach(item => {
risk.radios.push(item)
})
//档位去重 默认显示中档 L低档 M中档 H高档
risk.demoLabel = formLabel(risk.demoLabel, defaulValue)
}
let policyYear = 1 //初始化保单年度 确定滑动条最大值
for (let key in risk.demoValue) {
if (Number(key) > policyYear) {
policyYear = key
}
}
risk.policyYear = Number(policyYear)
})
})
return insured
}
//将被保人与利益演示相关联(被保人维度)
export function relevanceByInsure(insured, insuredLabelResult, insuredResult, insuredInfoResult) {
insured.forEach(insure => {
for (let key in insuredLabelResult[insure.insuredId]) {
insure.demoLabel = insuredLabelResult[insure.insuredId][key]
}
for (let key in insuredResult[insure.insuredId]) {
insure.demoValue = insuredResult[insure.insuredId][key]
}
insure.demoLabel.forEach(v => {
v.value = insure.demoValue['1'][v.content] //设置初始值
})
insure.sliderValue = 1
insure.radios = []
let policyYear = 1 //初始化保单年度 确定滑动条最大值
let ageColums = []
for (let key in insure.demoValue) {
ageColums.push(insure.demoValue[key]['currentAge'])
if (Number(key) > policyYear) {
policyYear = key
// chuli
}
}
insure.ageColums = ageColums
insure.checkAge = ageColums[0]
insure.policyYear = Number(policyYear)
insure.riskDTOLst.forEach(risk => {
let currentInsuredInfo = insuredInfoResult[insure.insuredId][risk.riskCode]
if (currentInsuredInfo.plan && currentInsuredInfo.plan === '0') {
let defaulValue = 'M' //档位默认值
let radios = [
{
label: '低档' + currentInsuredInfo.L,
value: 'L'
},
{
label: '中档' + currentInsuredInfo.M,
value: 'M'
},
{
label: '高档' + currentInsuredInfo.H,
value: 'H'
}
]
insure.tap = defaulValue
radios.forEach(item => {
insure.radios.push(item)
})
}
})
//档位去重 默认显示中档 L低档 M中档 H高档
if (insure.tap) {
insure.demoLabel = formLabel(insure.demoLabel, insure.tap)
}
})
return insured
}
//js判断数组参数是否全部相等或对象数组相同的key参数是否相等
export function isAllEqual(array) {
if (array.length > 0) {
return !array.some(function (value, index) {
return value !== array[0];
});
} else {
return true;
}
}