From 47743bf4909699ceb2040796926fb00839996524 Mon Sep 17 00:00:00 2001 From: xuxingjun Date: Wed, 20 Nov 2024 18:23:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=87=BA=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ebiz/billingDetail/billingDetail.js | 8 + src/assets/images/sale/coin.png | Bin 0 -> 5393 bytes .../ebiz/billingDetail/tableDetail2.vue | 122 +- src/router/ebiz/billingDetail.js | 12 +- .../ebiz/billingDetail/billingDetail.vue | 371 +- .../ebiz/billingDetail/policyDetails.vue | 160 + src/views/ebiz/common/CalculatePremium.vue | 5678 +++++++++-------- src/views/ebiz/common/MainRiskList.vue | 3 + src/views/ebiz/generateImg/generateImg.vue | 36 +- .../ebiz/goodStart/PerformanceReport.vue | 2 +- src/views/ebiz/proposal/ProposalInfo.vue | 259 +- src/views/ebiz/sale/Detail.vue | 2 +- src/views/ebiz/sale/InsuredInfo.vue | 12 +- src/views/ebiz/sale/InsuredPerson.vue | 9 +- 14 files changed, 3755 insertions(+), 2919 deletions(-) create mode 100644 src/assets/images/sale/coin.png create mode 100644 src/views/ebiz/billingDetail/policyDetails.vue diff --git a/src/api/ebiz/billingDetail/billingDetail.js b/src/api/ebiz/billingDetail/billingDetail.js index 667435e18..62ad5bbc4 100644 --- a/src/api/ebiz/billingDetail/billingDetail.js +++ b/src/api/ebiz/billingDetail/billingDetail.js @@ -24,4 +24,12 @@ export function queryOutOrderList(data) { method: 'post', data }) + } + // 出单详情 + export function queryOutOrderDetail(data) { + return request({ + url: getUrl(`/sale/order/queryOutOrderDetail`, 1), + method: 'post', + data + }) } \ No newline at end of file diff --git a/src/assets/images/sale/coin.png b/src/assets/images/sale/coin.png new file mode 100644 index 0000000000000000000000000000000000000000..8666b4267fca8da7aadfa9ef21b5733f203ba49a GIT binary patch literal 5393 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 literal 0 HcmV?d00001 diff --git a/src/components/ebiz/billingDetail/tableDetail2.vue b/src/components/ebiz/billingDetail/tableDetail2.vue index 39bdf69a5..610d8a00a 100644 --- a/src/components/ebiz/billingDetail/tableDetail2.vue +++ b/src/components/ebiz/billingDetail/tableDetail2.vue @@ -11,13 +11,20 @@ {{ Number(index) + 1 }} - {{ item.signDate }} - {{ item.appntDate }} - {{ item.productName }} - {{ item.prem }} - {{ item.name }} + {{ item.signDate }} + {{ item.appntDate }} + {{ item.productName }} + {{ item.prem }} + + {{ item.name }} + {{ item.manageComName }} + + 下载贺报 + 查看 + + @@ -28,6 +35,8 @@
上一页
{{ pageNum }}/{{ Math.ceil(total / pageSize) }}
下一页 >
+
+
@@ -62,9 +71,32 @@ export default { } }, data() { - return {} + return { + timeShow: false, + } + }, + watch: { + theads(newVal) { + if (newVal) { + for(let i=0;i @@ -110,6 +157,21 @@ export default { margin-bottom: 10px; justify-content: space-between; align-items: center; + position: relative; + .shangzheBox { + position: absolute; + left: 0; + top: 0; + width: 70px; + height: 30px; + } + .xiazheBox { + position: absolute; + right: 0; + top: 0; + width: 70px; + height: 30px; + } } .statisticsTable_table { height: 82.5vh; @@ -117,14 +179,35 @@ export default { //width: 1000px; } .statisticsTable_table .table { - width: 1000px; + width: 195.6vw !important; +} +.timeDate { + width: 90px !important; +} +.productName { + width: 35vw; +} +.chakan { + width: 130px; +} +.prem { + text-align: right !important; + width: 90px !important; + padding-right: 7px !important; } .statisticsTable th { - width: 800px; + width: 90px; } table { // width: 200vw; } +.th-fixed { + position: sticky; + border: 1px solid #999 !important; + left: 0; + width: 35px !important; + padding: 0 5px; +} .statisticsTable { width: 100%; overflow-x: hidden; @@ -150,17 +233,22 @@ table { } } } -.th-fixed { - // position: sticky; - left: 0; - width: 150px; - padding: 0 5px; -} + .td-fixed { // position: sticky; - width: 150px; + width: 33px !important; padding: 0 5px; left: 0; text-decoration: underline; } +.td-sheng { + display: block; + width: 65px; /* 设置span的宽度 */ + white-space: nowrap; /* 确保文本不换行 */ + overflow: hidden; /* 隐藏超出span宽度的文本 */ + text-overflow: ellipsis; /* 超出部分显示为省略号 */ + text-align: left; /* 文本对齐方式 */ + margin: 0 auto; + text-align: center; +} diff --git a/src/router/ebiz/billingDetail.js b/src/router/ebiz/billingDetail.js index 4ed21fb49..fe6b32ef0 100644 --- a/src/router/ebiz/billingDetail.js +++ b/src/router/ebiz/billingDetail.js @@ -1,5 +1,7 @@ const billingDetail = () => import('@/views/ebiz/billingDetail/billingDetail') const generateImg = () => import('@/views/ebiz/generateImg/generateImg') +const policyDetails = () => import('@/views/ebiz/billingDetail/policyDetails') + export default [ { @@ -18,5 +20,13 @@ export default [ meta: { title: '业绩贺报' } - } + }, + { + path: '/policyDetails', + name: 'policyDetails', + component: policyDetails, + meta: { + title: '保单详情', + } + }, ] diff --git a/src/views/ebiz/billingDetail/billingDetail.vue b/src/views/ebiz/billingDetail/billingDetail.vue index c43f8f4ef..1ca37d31c 100644 --- a/src/views/ebiz/billingDetail/billingDetail.vue +++ b/src/views/ebiz/billingDetail/billingDetail.vue @@ -1,10 +1,24 @@ diff --git a/src/views/ebiz/billingDetail/policyDetails.vue b/src/views/ebiz/billingDetail/policyDetails.vue new file mode 100644 index 000000000..3f5ce5740 --- /dev/null +++ b/src/views/ebiz/billingDetail/policyDetails.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/src/views/ebiz/common/CalculatePremium.vue b/src/views/ebiz/common/CalculatePremium.vue index 230d3a2f4..2b67eaab1 100644 --- a/src/views/ebiz/common/CalculatePremium.vue +++ b/src/views/ebiz/common/CalculatePremium.vue @@ -17,9 +17,9 @@ 附 - + - +
@@ -31,14 +31,14 @@
-
+
@@ -99,9 +102,10 @@
{{ riskFactor.name }}
+
{{ dutyItem.dutyName }}({{ dutyItem.suffix }}){{ dutyItem.dutyName }}({{ dutyItem.suffix }}) {{ dutyItem.dutyName }}
+ +
+ +
@@ -180,13 +196,13 @@ {{ riskFactor.name }}      
@@ -222,15 +238,15 @@ {{ dutyItem.dutyName }}({{ dutyItem.suffix }})
+ +
+ +
@@ -274,16 +294,16 @@ {{ dutyItem.dutyName }}({{ dutyItem.suffix }})
+ +
+ +
-
+
首期保费(元): @@ -337,13 +364,13 @@ {{ trialList[index].showPrem | moneyFormat }}
- - - - - - - + + + + + + +
完成
@@ -356,2011 +383,2077 @@ -
+
- - {{item.ruleType | ruleTypeFilter}} + + {{ item.ruleType | ruleTypeFilter }}
- +
-
-

说明:绿色✔表示 未触发规则、红色×表示 触发规则

+
+
+ + {{ item.accuRiskDesc }}: +
+
+ {{item.accuRiskAmnt}} + +
+
+
+

说明:
+ 1.绿色✔表示 未触发规则、红色×表示 触发规则;
+ 2.已累计本次投保的风险保额;
3.展示的风险保额为常见风险类别。

diff --git a/src/views/ebiz/common/MainRiskList.vue b/src/views/ebiz/common/MainRiskList.vue index 614fb7a5e..068f382cc 100644 --- a/src/views/ebiz/common/MainRiskList.vue +++ b/src/views/ebiz/common/MainRiskList.vue @@ -553,6 +553,9 @@ export default { item['amt'] = Number(item.minAmt) * Number(item.moneyUnit) } } + }else if(item.type==5){ + // 单元格,用于展示文案,从extra中获取 + item['showContent'] = item.extra } //规则储存 item['rules'] = productTrialInfoDTO[item.code] diff --git a/src/views/ebiz/generateImg/generateImg.vue b/src/views/ebiz/generateImg/generateImg.vue index af7235081..606e8ad0e 100644 --- a/src/views/ebiz/generateImg/generateImg.vue +++ b/src/views/ebiz/generateImg/generateImg.vue @@ -4,10 +4,10 @@
-

{{ orderList.manageComName }}

+

{{ orderList.manageComNameFull }}

{{ orderList.name }}

-
{{ orderList.productName }}
+
{{ orderList.productNameFull }}
{{ orderList.outOrderType == 'accept' ? '承保规保' : '预收规保' }}
{{ orderList.prem }}
{{ orderList.outOrderType == 'accept' ? '承保时间:' : '预收时间:' }}{{ orderList.appntDate }}
@@ -17,6 +17,9 @@ 分享 下载
+
+ +
@@ -25,9 +28,23 @@ import html2canvas from 'html2canvas' import { base64Excel } from '@/api/ebiz/nbs' export default { name: 'generateImg', + // generateImgData + props: { + // generateImgData: { + // type: Object, + // default: {} + // }, + }, data() { return { - orderList: {} + orderList: {}, + isIOS: false, + } + }, + created() { + this.isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; + if(this.isIOS) { + document.getElementsByClassName('box').style.top = '38%' } }, mounted() { @@ -122,6 +139,9 @@ export default { }, downLoadImagesFunc() { this.domToImage(this.$refs.generateImg) + }, + close() { + this.$emit('child-colse', '1') } } } @@ -216,10 +236,18 @@ img { border: 2px solid; border-image: radial-gradient(circle, rgba(255, 233, 124, 1), rgba(222, 144, 34, 1)) 2 2; } - +/deep/ .van-button { + border-radius: 12px; + width: 42%; +} /deep/ .van-button--danger { background: linear-gradient(to right, #f26e43, #ac0209) !important; /*设置按钮为渐变颜色*/ border: none !important; } +.close { + position: fixed; + top: 0; + right: 0; +} \ No newline at end of file diff --git a/src/views/ebiz/goodStart/PerformanceReport.vue b/src/views/ebiz/goodStart/PerformanceReport.vue index a8ac5052f..aee50c138 100644 --- a/src/views/ebiz/goodStart/PerformanceReport.vue +++ b/src/views/ebiz/goodStart/PerformanceReport.vue @@ -29,7 +29,7 @@ {{ levelNames[levelLength + index] }} - + lanC
diff --git a/src/views/ebiz/proposal/ProposalInfo.vue b/src/views/ebiz/proposal/ProposalInfo.vue index ccb980087..4a4433b14 100644 --- a/src/views/ebiz/proposal/ProposalInfo.vue +++ b/src/views/ebiz/proposal/ProposalInfo.vue @@ -4,7 +4,7 @@
-
{{mainRiskName}}
+
{{ mainRiskName }}
@@ -58,7 +58,9 @@
{{ riskItem.riskName }}
-
{{ riskItem.amt ? riskItem.amt : '--' }}
+
+ {{ riskItem.amt ? riskItem.amt : '--' }} +
{{ riskItem.insureName }}
{{ riskItem.payName }}
{{ riskItem.showPrem ? riskItem.showPrem : '--' }}
@@ -78,11 +80,13 @@
{{ riskItem.riskName }}
-
{{ riskItem.pensionAge}} 周岁
-
{{ riskItem.receivePensionWay == '0' ? '年领':'月领'}}
-
{{ riskItem.guaranteedYear}} 年
+
{{ riskItem.pensionAge }} 周岁
+
+ {{ riskItem.receivePensionWay == '0' ? '年领' : '月领' }} +
+
{{ riskItem.guaranteedYear }} 年
- {{ riskItem.amt}} + {{ riskItem.amt }}
{{ riskItem.amt | fillNumber }} @@ -91,7 +95,6 @@
-
@@ -167,7 +170,6 @@
-
@@ -196,7 +198,7 @@ v-for="(moneyItem, index) in pageShowInfo.showInsuredDTO.demoLabel" :key="index" > -
+
{{ moneyItem.contentLabel }}
@@ -239,15 +241,67 @@ :radios="pageShowInfo.showInsuredDTO.radios" :value.sync="pageShowInfo.showInsuredDTO.tap" > -
拖动按钮查看不同年龄的保单利益
+
拖动按钮查看不同年龄的保单利益
+ + +
+ 本利益演示基于公司的精算及其他假设,不代表公司的历史经营业绩,也不代表对公司未来经营业绩的预期,保单的红利分配是不确定的,红利水平是不保证的,在某些年度红利可能为零。 + +
+ +
+
+
责任免除
+
+
+ + 因下列情形之一导致被保险人身故或全残的,我们不承担给付保险金的责任:
+ 一、投保人对被保险人的故意杀害、故意伤害;
+ 二、被保险人故意犯罪或者抗拒依法采取的刑事强制措施;
+ 三、被保险人故意自伤,或自保险合同成立或者保险合同效力恢复之日起2年内自杀,但被保险人自杀时为无民事行为能力人的除外;
+ 四、被保险人服用、吸食或注射毒品;
+ 五、被保险人酒后驾驶、无合法有效驾驶证驾驶,或驾驶无合法有效行驶证的机动车;
+ 六、战争、军事冲突、暴乱或武装叛乱;
+ 七、核爆炸、核辐射或核污染。
+ 发生上述第一项情形导致被保险人身故的,保险合同终止,我们向被保险人的继承人(除投保人本人外)退还保险合同的现金价值。
+ 发生上述第一项情形导致被保险人全残的,保险合同终止,我们向被保险人退还保险合同的现金价值。
+ 发生上述其他情形导致被保险人身故或全残的,保险合同终止,我们向您退还保险合同的现金价值。 +
+
+
+
+ +
+
+
+ + +
+
+
犹豫期退保
+
+
+ 自您签收保险合同之日起,有15日的犹豫期。在此期间请您认真审视保险合同,如果您认为保险合同与您的需求不相符,您可以在此期间提出解除保险合同,我们将退还您所支付的全部保险费。
+ 您在犹豫期后解除保险合同的,自我们收到解除合同通知书之日起,保险合同终止。我们自收到解除合同通知书之日起30日内向您退还保险合同的现金价值。 + 您在犹豫期后解除合同可能会遭受一定损失。 +
+
+
+ +
+
+
+
温馨提示
-
- 本资料仅供客户理解产品条款所用,有关产品的说明、解释、承诺或保证,如与产品条款不一致,均以产品条款为准。 +
+ 本资料仅供客户理解产品条款所用,有关产品的说明、解释、承诺或保证,如与产品条款不一致,均以产品条款为准。
@@ -283,18 +337,19 @@
-
{{mainRiskName}}
+
{{ mainRiskName }}
-
尊敬的{{ pageShowInfo.appntDTO.name.substr(0, 1) }}{{ pageShowInfo.appntDTO.sex == '0' ? '先生' : '女士' }}
+
+ 尊敬的{{ pageShowInfo.appntDTO.name.substr(0, 1) }}{{ pageShowInfo.appntDTO.sex == '0' ? '先生' : '女士' }} +
-
- 敬呈 -
+
敬呈
@@ -326,7 +381,7 @@ import { import SelectRadio from '@/components/ebiz/SelectRadio' import { getDemo, toInsurance, getDemoByProposalNo, share, getSharingToken } from '@/api/ebiz/proposal/proposal.js' import { funcPermCheck } from '@/api/ebiz/common/common' -import { haveTap, getTapIndex, relevanceByInsure,isAllEqual } from './js/exhibitionMethod.js' +import { haveTap, getTapIndex, relevanceByInsure, isAllEqual } from './js/exhibitionMethod.js' import { formatRiskList } from '@/assets/js/utils/formatRiskList.js' import { weixinShare } from '@/assets/js/utils/wxShare.js' import { getAgentInfo } from '@/api/ebiz/my/my.js' @@ -348,7 +403,9 @@ export default { dutyShowType: '00', isFixed: false, // 粘性布局状态 productCheckStatus: true, //产品收展状态 - riskCheckStatus: true //责任收展状态 + riskCheckStatus: true, //责任收展状态 + hesitateCheckStatus: true, // 犹豫期退保 + dutyCheckStatus: true // 责任免除 }, // 页面显示详细数据 pageShowInfo: { @@ -385,9 +442,9 @@ export default { agent: {}, mainRiskCodes: [], time: 5, - proposalNo:'', + proposalNo: '', mainRiskName: '', - ispremshow: true, // 是否展示保额 + ispremshow: true // 是否展示保额 } }, filters: { @@ -417,8 +474,8 @@ export default { }, fillNumber(val) { // 小于10,在前面补0 - return Number(val*0.085).toFixed(2) - }, + return Number(val * 0.085).toFixed(2) + } }, mounted() { this.$jump({ @@ -453,7 +510,7 @@ export default { // init方法在微信端存储token,接口请求用此token,所以init方法前不要请求接口,会影响分享微信功能,接口会报token为空 this.init() //校验当前用户权限 - funcPermCheck({}).then(res => { + funcPermCheck({}).then((res) => { this.isCheck = res.result }) }, @@ -495,12 +552,12 @@ export default { checkInsure(insureId) { let that = this this.pageShowInfo.showInsuredDTO - this.pageShowInfo.insuredDTOs.map(item => { + this.pageShowInfo.insuredDTOs.map((item) => { if (item.insuredId == insureId) { // 建议书投保人/被保人姓名不必填, 填写姓名时展示姓名(落库),不填写姓名时展示性别+年龄,如:男30岁(不落库) - if(!item.name){ - let sex = item.sex == '0'?'男':'女' - item.name = sex + item.insuredAge+'岁' + if (!item.name) { + let sex = item.sex == '0' ? '男' : '女' + item.name = sex + item.insuredAge + '岁' } this.pageShowInfo.showInsuredDTO = item that.$forceUpdate() @@ -522,6 +579,12 @@ export default { testRiskCheck() { this.pageShowType.riskCheckStatus = !this.pageShowType.riskCheckStatus }, + hesitateCheck() { + this.pageShowType.hesitateCheckStatus = !this.pageShowType.hesitateCheckStatus + }, + dutyCheck() { + this.pageShowType.dutyCheckStatus = !this.pageShowType.dutyCheckStatus + }, checkShowDutyType(type) { this.pageShowType.dutyShowType = type }, @@ -533,21 +596,21 @@ export default { } } if (this.$route.query.proposalOrderNo) { - this.proposalNo = this.$route.query.proposalOrderNo; + this.proposalNo = this.$route.query.proposalOrderNo params.proposalInfoDTO.proposalNo = this.$route.query.proposalOrderNo - this.$CacheUtils.setLocItem('proposalNo',this.$route.query.proposalOrderNo) + this.$CacheUtils.setLocItem('proposalNo', this.$route.query.proposalOrderNo) } if (this.isWeixin) { //在微信端 params.proposalInfoDTO.proposalNo = this.$route.query.proposalOrderNo /*this.mainRiskCodes = JSON.parse(this.$route.query.mainRiskCodes)*/ - this.$CacheUtils.setLocItem('token',this.$route.query.token) + this.$CacheUtils.setLocItem('token', this.$route.query.token) let agentResult = await getAgentInfo({}) //调取代理人查询接口 if (agentResult.result == '0') { let { agent } = this let { name, phoneNo, certificateInfoList } = agentResult if (certificateInfoList != null && certificateInfoList != '' && certificateInfoList.length > 0) { - certificateInfoList.forEach(c => { + certificateInfoList.forEach((c) => { if (c.certificateType == '0') { agent.certificate = c.certificateNo } @@ -574,7 +637,7 @@ export default { this.agent.name = agentResult.name } params.proposalInfoDTO.proposalNo = this.$route.query.proposalOrderNo - getDemo(params).then(res => { + getDemo(params).then((res) => { this.formatLocal(res) }) } @@ -610,7 +673,7 @@ export default { } }, async sharePeople() { - console.log(this.pageShowInfo.insuredDTOs,'this.pageShowInfo.insuredDTOs') + console.log(this.pageShowInfo.insuredDTOs, 'this.pageShowInfo.insuredDTOs') let date = new Date() let month = date.getMonth() + 1 if (month <= 9) { @@ -618,45 +681,46 @@ export default { } let reqData = { mdType: 'm', - monthStr:date.getFullYear() + month + monthStr: date.getFullYear() + month } - let shareContent; + let shareContent let resData = await queryPersonal(reqData) // debugger //准会员话术改为普通人话术 - if(resData.content.length&&resData.content[0].slevel<3){ - resData.content[0].sgrade='00' + if (resData.content.length && resData.content[0].slevel < 3) { + resData.content[0].sgrade = '00' } - if(resData.content.length&&resData.content[0].glevel<3){ - resData.content[0].ggrade='00' + if (resData.content.length && resData.content[0].glevel < 3) { + resData.content[0].ggrade = '00' } - if (resData.content.length&&resData.content[0].slevel>0&&resData.content[0].sgrade&&resData.content[0].sgrade!='00') { + if (resData.content.length && resData.content[0].slevel > 0 && resData.content[0].sgrade && resData.content[0].sgrade != '00') { // if(resData.content[0].slevel<3){ // resData.content[0].sgrade='00' // } - let sgrade =this.memberConversion(resData.content[0].sgrade); - shareContent='国富双冠精英'+resData.content[0].slevel+'级'+sgrade+resData.content[0].name+'为您量身定制的保险产品,请查收'; - }else if (resData.content.length&&resData.content[0].glevel>0&&resData.content[0].ggrade&&resData.content[0].ggrade!='00') { + let sgrade = this.memberConversion(resData.content[0].sgrade) + shareContent = '国富双冠精英' + resData.content[0].slevel + '级' + sgrade + resData.content[0].name + '为您量身定制的保险产品,请查收' + } else if (resData.content.length && resData.content[0].glevel > 0 && resData.content[0].ggrade && resData.content[0].ggrade != '00') { // if(resData.content[0].glevel<3){ // resData.content[0].ggrade='00' // } - let ggrade =this.memberConversion(resData.content[0].ggrade); - shareContent='国富桂冠精英'+resData.content[0].glevel+'级'+ggrade+resData.content[0].name+'为您量身定制的保险产品,请查收'; + let ggrade = this.memberConversion(resData.content[0].ggrade) + shareContent = '国富桂冠精英' + resData.content[0].glevel + '级' + ggrade + resData.content[0].name + '为您量身定制的保险产品,请查收' } else { - shareContent = this.agent.name+'为您设计的专属保险计划书,请查阅!因为国富,所以民安!'; + shareContent = this.agent.name + '为您设计的专属保险计划书,请查阅!因为国富,所以民安!' } - console.log(shareContent,'shareContent') + console.log(shareContent, 'shareContent') let title let riskList = [] //所有险种 let riskCodeList = [] //所有险种code - this.pageShowInfo.insuredDTOs.map(item => { - item.mainRisk.map(item01 => { - if (item01.isMainRisk == '0') { //主险 + this.pageShowInfo.insuredDTOs.map((item) => { + item.mainRisk.map((item01) => { + if (item01.isMainRisk == '0') { + //主险 riskList.push(item01) } }) }) - riskList.map(item => { + riskList.map((item) => { riskCodeList.push(item.riskCode) }) let sameRisk = isAllEqual(riskCodeList) @@ -665,17 +729,17 @@ export default { // 2、有2个及以上主险组合,建议书名称显示“保险产品组合计划” // 二、有多个被保险人 // 都显示“家庭保障计划” - if(sameRisk){ - if(this.pageShowInfo.insuredDTOs.length > 1){ - title='家庭保障计划' - }else{ - title= riskList[0].riskName + if (sameRisk) { + if (this.pageShowInfo.insuredDTOs.length > 1) { + title = '家庭保障计划' + } else { + title = riskList[0].riskName } - }else{ - if(this.pageShowInfo.insuredDTOs.length > 1){ - title='家庭保障计划' - }else{ - title= '保险产品组合计划' + } else { + if (this.pageShowInfo.insuredDTOs.length > 1) { + title = '家庭保障计划' + } else { + title = '保险产品组合计划' } } let res = await getSharingToken({ shareType: 'proposal_demonstrate' }) @@ -685,7 +749,8 @@ export default { extra: { title: title, content: shareContent, - url: location.origin + '/#/proposal/proposalInfo?proposalOrderNo=' + encodeURI(this.$route.query.proposalOrderNo) + '&token=' + encodeURI(res.content), + url: + location.origin + '/#/proposal/proposalInfo?proposalOrderNo=' + encodeURI(this.$route.query.proposalOrderNo) + '&token=' + encodeURI(res.content), img: this.$assetsUrl + 'images/logo.png' } }) @@ -698,7 +763,7 @@ export default { radioChange(risk) { let that = this let key = risk.tap - risk.demoLabel.forEach(demo => { + risk.demoLabel.forEach((demo) => { let result = haveTap(demo.content, '_') if (result) { let index = getTapIndex(demo.content, '_') + 1 @@ -727,10 +792,10 @@ export default { this.pageShowInfo.insuredDTOs = res.content.orderDTO.insuredDTOs this.pageShowInfo.showInsuredDTO = this.pageShowInfo.insuredDTOs[0] let mainRiskNameList = [] - that.pageShowInfo.insuredDTOs.forEach(item => { - item.riskDTOLst.forEach(item01 => { + that.pageShowInfo.insuredDTOs.forEach((item) => { + item.riskDTOLst.forEach((item01) => { if (item01.isMainRisk == '0') { - if(item01.mainRiskCode == 'GFRS_M0080' || item01.mainRiskCode == 'GFRS_M0083' || item01.mainRiskCode == 'GFRS_M0085') { + if (item01.mainRiskCode == 'GFRS_M0080' || item01.mainRiskCode == 'GFRS_M0083' || item01.mainRiskCode == 'GFRS_M0085') { that.ispremshow = false } mainRiskNameList.push(item01.riskName) @@ -742,13 +807,13 @@ export default { // 2、有2个及以上主险组合,建议书名称显示“保险产品组合计划” // 二、有多个被保险人 // 都显示“家庭保障计划” - if(mainRiskNameList.length == 1){ + if (mainRiskNameList.length == 1) { if (this.pageShowInfo.insuredDTOs.length > 1) { that.mainRiskName = '家庭保障计划' } else { that.mainRiskName = mainRiskNameList[0] } - }else{ + } else { if (this.pageShowInfo.insuredDTOs.length > 1) { that.mainRiskName = '家庭保障计划' } else { @@ -758,16 +823,16 @@ export default { //投保人年龄 // this.pageShowInfo.appntDTO.age = getAge.getAge(this.pageShowInfo.appntDTO.birthdayLabel, new Date()) let { insuredLabelResult, insuredResult, insuredInfoResult } = res.content.calculusResDTO - orderDTO.insuredDTOs.forEach(v => { + orderDTO.insuredDTOs.forEach((v) => { //根据数据字典 获取当前值 v.age = getAge.getAge(v.birthdayLabel, new Date()) // 建议书投保人/被保人姓名不必填, 填写姓名时展示姓名(落库),不填写姓名时展示性别+年龄,如:男30岁(不落库) - if(!v.name){ - let sex = v.sex == '0'?'男':'女' - v.name = sex + v.insuredAge+'岁' + if (!v.name) { + let sex = v.sex == '0' ? '男' : '女' + v.name = sex + v.insuredAge + '岁' } v.riskDTOLstNew = [] - v.riskDTOLst.forEach(risk => { + v.riskDTOLst.forEach((risk) => { if (risk.isMainRisk == '0') { that.mainRiskCodes.push(risk.riskCode) } @@ -787,11 +852,11 @@ export default { risk.payName = risk.payEndYear + '年' } } else { - risk.payName = '交至' + risk.payEndYear + '周岁' + risk.payName = '交至' + risk.payEndYear + '周岁' } // todo责任显示处理 - if(risk.riskCode == 'GFRS_M0053' || risk.riskCode == 'GFRS_M0061'){ - v.riskDTOLstNew.push(risk) + if (risk.riskCode == 'GFRS_M0053' || risk.riskCode == 'GFRS_M0061') { + v.riskDTOLstNew.push(risk) } }) }) @@ -803,9 +868,9 @@ export default { this.insuredDTOs = relevanceByInsure(this.insuredDTOs, insuredLabelResult, insuredResult, insuredInfoResult) //进行数据关联 this.getWXTitle(this.insuredDTOs) //获取微信标题 // 建议书名称 - this.insuredDTOs.forEach(item => { + this.insuredDTOs.forEach((item) => { if (item.riskDTOLst && item.riskDTOLst.length > 0) { - item.riskDTOLst.forEach(ele => { + item.riskDTOLst.forEach((ele) => { this.chooseProductCodes.push(ele.riskCode) }) } @@ -815,7 +880,7 @@ export default { }, //获取微信分享的标题 getWXTitle(insuredDTOs) { - dataDictionary.riskType.forEach(dataRisk => { + dataDictionary.riskType.forEach((dataRisk) => { if (insuredDTOs[0].mainRisk[0].riskCode == dataRisk.code) { this.wxTitle = dataRisk.shortName + '计划书' } @@ -830,10 +895,10 @@ export default { let path = '/sale/insuredInfo?edit=1' if (this.mainRiskCodes) { if (this.mainRiskCodes.length === 2) { - let prd26 = this.mainRiskCodes.some(item => { + let prd26 = this.mainRiskCodes.some((item) => { return item === 'GFRS_M0026' }) - let prd17 = this.mainRiskCodes.some(item => { + let prd17 = this.mainRiskCodes.some((item) => { return item === 'GFRS_M0017' }) // 如果选择的产品不是GFRS_M0026&GFRS_M0017弹出提示 @@ -841,7 +906,12 @@ export default { return Toast.fail('暂不支持组合产品转投保') } } - if (this.mainRiskCodes[0] == 'GFRS_M0024' || this.mainRiskCodes[0] == 'GFRS_M0040' || this.mainRiskCodes[0] == 'GFRS_M0044'|| this.mainRiskCodes[0] == 'GFRS_M0051') { + if ( + this.mainRiskCodes[0] == 'GFRS_M0024' || + this.mainRiskCodes[0] == 'GFRS_M0040' || + this.mainRiskCodes[0] == 'GFRS_M0044' || + this.mainRiskCodes[0] == 'GFRS_M0051' + ) { let specilFlag = '1' path = `${path}&specilFlag=${specilFlag}` let flagPermission = await riskRules.getProductSellPermissionList(this.mainRiskCodes[0], this) @@ -857,7 +927,7 @@ export default { proposalNo: this.proposalNo } } - toInsurance(params).then(res => { + toInsurance(params).then((res) => { if (res.result == '0') { this.$CacheUtils.setLocItem('orderNo', res.content.orderNo) localStorage.chooseProductCodes = '' @@ -882,7 +952,7 @@ export default { this.$forceUpdate() //强制组件更新 解决值更改之后 滑块不滑动的问题 let index = String(value) if (demoLabel) { - demoLabel.forEach(label => { + demoLabel.forEach((label) => { label.value = demoValue[index][label.content] if (label.content == 'currentAge') { this.pageShowInfo.showInsuredDTO.checkAge = label.value @@ -922,7 +992,7 @@ export default { //点击滑块增加或者减少时调用 slideChange(risk) { let index = String(risk.sliderValue) - risk.demoLabel.forEach(label => { + risk.demoLabel.forEach((label) => { label.value = risk.demoValue[index][label.content] if (label.content == 'currentAge') { this.pageShowInfo.showInsuredDTO.checkAge = label.value @@ -944,14 +1014,14 @@ export default { }, //跳转到pdf 进入建议书后 根据建议书编码来查找相应的pdf async goPDF() { - if(this.$route.query.proposalOrderNo){ + if (this.$route.query.proposalOrderNo) { this.$router.push({ path: '/proposal/pdf', query: { - proposalOrderNo:this.$route.query.proposalOrderNo + proposalOrderNo: this.$route.query.proposalOrderNo } }) - }else{ + } else { this.$router.push({ path: '/proposal/pdf' }) } @@ -996,10 +1066,10 @@ export default { return values }, memberConversion(status) { - let text='' + let text = '' switch (status) { case '00': - text = '' //准会员不显示 + text = '' //准会员不显示 break case '01': text = '正式会员' @@ -1117,6 +1187,10 @@ export default { height: 60px; overflow: hidden; } + .hideInfo_hesitate { + height: 60px; + overflow: hidden; + } .insured_item { position: absolute; z-index: 98; @@ -1518,6 +1592,9 @@ export default { line-height: 20px; margin: 5px 0px; } +.div_height { + line-height: 24px; +} .van-button::before { position: absolute; top: 50%; diff --git a/src/views/ebiz/sale/Detail.vue b/src/views/ebiz/sale/Detail.vue index 50166be3b..347f0c27a 100644 --- a/src/views/ebiz/sale/Detail.vue +++ b/src/views/ebiz/sale/Detail.vue @@ -2,7 +2,7 @@
- + diff --git a/src/views/ebiz/sale/InsuredInfo.vue b/src/views/ebiz/sale/InsuredInfo.vue index a6ae62812..1cd16bc3c 100644 --- a/src/views/ebiz/sale/InsuredInfo.vue +++ b/src/views/ebiz/sale/InsuredInfo.vue @@ -993,6 +993,7 @@ }, //证件起始截止日期 onDateConfirm(val, type) { + console.log(val,type,); switch (type) { case '0': { @@ -1009,9 +1010,10 @@ let age = utilsAge.getAge(this.userInfo.birthday, new Date()) // 长期按钮是否禁用 this.effectiveDateTypeAble = age <= 45 - if(this.userInfo.birthday){ + if(this.userInfo.birthday && !this.userInfo.certiexpiredate){ this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,val) if(this.userInfo.certiexpiredate) { + this.userInfo.certiexpiredate= this.userInfo.certiexpiredate this.effectiveDateTypeAble = true this.userInfo.effectiveDateType = false } @@ -1030,9 +1032,9 @@ } //身份证证件类型的判断 if (this.userInfo.idType == '1') { - if(this.userInfo.birthday){ - this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val) - } + // if(this.userInfo.birthday){ + // this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val) + // } } } break @@ -1057,7 +1059,7 @@ if (this.userInfo.certificateValidate && !this.userInfo.certiexpiredate) { this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,this.userInfo.certificateValidate) } - if (this.userInfo.certiexpiredate && !this.userInfo.certificateValidate) { + if (this.userInfo.certiexpiredate && !this.userInfo.certificateValidate) { this.userInfo.certificateValidate = countCredentialValidity.getEndDate(this.userInfo.birthday,this.userInfo.certiexpiredate) } } diff --git a/src/views/ebiz/sale/InsuredPerson.vue b/src/views/ebiz/sale/InsuredPerson.vue index ab6dd1ae7..52bdda47d 100644 --- a/src/views/ebiz/sale/InsuredPerson.vue +++ b/src/views/ebiz/sale/InsuredPerson.vue @@ -1109,9 +1109,10 @@ let age = utilsAge.getAge(this.userInfo.birthday, new Date()) // 长期按钮是否禁用 this.effectiveDateTypeAble = age <= 45 - if(this.userInfo.birthday){ + if(this.userInfo.birthday && !this.userInfo.certiexpiredate){ this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,val) if(this.userInfo.certiexpiredate) { + this.userInfo.certiexpiredate= this.userInfo.certiexpiredate this.effectiveDateTypeAble = true this.userInfo.effectiveDateType = false } @@ -1142,9 +1143,9 @@ //获取年龄 let age = utilsAge.getAge(this.userInfo.birthday, new Date()) console.log(age) - if(this.userInfo.birthday){ - this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val) - } + // if(this.userInfo.birthday){ + // this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val) + // } } } break