mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-24 13:42:52 +08:00
Merge branch 'feature/GFRS-413_【0116】豁免险' into dev
This commit is contained in:
BIN
src/assets/images/share@3x.png
Normal file
BIN
src/assets/images/share@3x.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 466 B |
@@ -100,6 +100,12 @@ export default {
|
||||
return
|
||||
}
|
||||
|
||||
if (resultData.productInsuredDTO.validateAppntFlag == '0') {
|
||||
if (riskRules.lifeGradeLimitForBaby(resultData, this)) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
/********end 附加险选择限制 end******/
|
||||
|
||||
let calFactorLst = this.getFactorList(resultData)
|
||||
|
||||
@@ -123,7 +123,7 @@ export default {
|
||||
if (riskRules.lifeGradeLimit(resultData, this)) {
|
||||
return
|
||||
}
|
||||
if (resultData.productCode == 'GFRS_M0006') {
|
||||
if (resultData.productInsuredDTO.validateAppntFlag == '0') {
|
||||
if (riskRules.lifeGradeLimitForBaby(resultData, this)) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -26,12 +26,7 @@
|
||||
<div class="c-gray-darker fs14" slot="default">{{ appntDTO.name }}</div>
|
||||
</van-cell>
|
||||
<van-collapse v-model="activeNames">
|
||||
<van-collapse-item
|
||||
class="mt10"
|
||||
:name="insuredIndex + 1"
|
||||
v-for="(insured, insuredIndex) in insuredDTOs"
|
||||
:key="insuredIndex"
|
||||
>
|
||||
<van-collapse-item class="mt10" :name="insuredIndex + 1" v-for="(insured, insuredIndex) in insuredDTOs" :key="insuredIndex">
|
||||
<div class="flex justify-content-s c-gray-dark" slot="title">
|
||||
被保险人
|
||||
<span class="c-gray-darker fs14">{{ insured.name }}</span>
|
||||
@@ -46,10 +41,7 @@
|
||||
<van-col style=" border-top-right-radius: 6px" class="bg-green-dark white" span="8">年龄</van-col>
|
||||
|
||||
<van-col class="bg-green-base mt2 c-gray-darker" span="8">{{ insured.name }}</van-col>
|
||||
<van-col
|
||||
class="bg-green-base mt2 c-gray-darker"
|
||||
span="8"
|
||||
>{{ insured.sex == '0' ? '男' : '女' }}</van-col>
|
||||
<van-col class="bg-green-base mt2 c-gray-darker" span="8">{{ insured.sex == '0' ? '男' : '女' }}</van-col>
|
||||
<van-col class="bg-green-base mt2 c-gray-darker" span="8">{{ insured.age }}</van-col>
|
||||
</van-row>
|
||||
<div class="text-center">
|
||||
@@ -57,10 +49,7 @@
|
||||
<van-divider class="fs15" :style="{ color: '#E9332E', borderColor: '#E9332E' }">投保险种信息</van-divider>
|
||||
</div>
|
||||
|
||||
<div
|
||||
style=" border-top-right-radius: 6px;border-top-left-radius: 6px"
|
||||
class="flex text-center line-height table bg-green-dark white"
|
||||
>
|
||||
<div style=" border-top-right-radius: 6px;border-top-left-radius: 6px" class="flex text-center line-height table bg-green-dark white">
|
||||
<div class="flex justify-content-c align-items-c">投保险种</div>
|
||||
<div class="flex justify-content-c align-items-c">保额(元)</div>
|
||||
<div class="flex justify-content-c align-items-c">保险期间</div>
|
||||
@@ -70,29 +59,17 @@
|
||||
<div v-for="(main, mainIndex) in insured.mainRisk" :key="mainIndex">
|
||||
<div class="flex text-center bg-green-base mt2 c-gray-darker table">
|
||||
<div class="flex justify-content-c align-items-c">{{ main.riskName }}</div>
|
||||
<div
|
||||
class="flex justify-content-c align-items-c"
|
||||
>{{ main.amt ? amtFormat(main.amt) :'' }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ main.amt ? amtFormat(main.amt) : '' }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ main.insureName }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ main.payName }}</div>
|
||||
<div
|
||||
class="flex justify-content-c align-items-c"
|
||||
>{{ main.prem.toFixed(2) | moneyFormat }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ main.prem.toFixed(2) | moneyFormat }}</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex text-center bg-green-base mt2 c-gray-darker table"
|
||||
v-for="(addtion, addtionIndex) in main.addtion"
|
||||
:key="addtionIndex"
|
||||
>
|
||||
<div class="flex text-center bg-green-base mt2 c-gray-darker table" v-for="(addtion, addtionIndex) in main.addtion" :key="addtionIndex">
|
||||
<div class="flex justify-content-c align-items-c">{{ addtion.riskName }}</div>
|
||||
<div
|
||||
class="flex justify-content-c align-items-c"
|
||||
>{{ addtion.amt ? amtFormat(addtion.amt) : addtion.planCode ? addtion.planCodeLabel : '' }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ addtion.amt ? amtFormat(addtion.amt) : addtion.planCode ? addtion.planCodeLabel : '' }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ addtion.insureName }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ addtion.payName }}</div>
|
||||
<div
|
||||
class="flex justify-content-c align-items-c"
|
||||
>{{ addtion.prem.toFixed(2) | moneyFormat }}</div>
|
||||
<div class="flex justify-content-c align-items-c">{{ addtion.prem.toFixed(2) | moneyFormat }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
@@ -106,15 +83,8 @@
|
||||
</div>
|
||||
|
||||
<div class="mt15" v-for="risk in insured.riskDTOLst" :key="risk.insuanceId">
|
||||
<p
|
||||
style=" border-top-right-radius: 6px;border-top-left-radius: 6px"
|
||||
class="text-center line-height white bg-green-dark"
|
||||
>{{ risk.riskName }}</p>
|
||||
<table
|
||||
cellspacing="0"
|
||||
style="width: 100%;border-collapse:separate; border-spacing:0px 2px;"
|
||||
class="text-center c-gray-darker"
|
||||
>
|
||||
<p style=" border-top-right-radius: 6px;border-top-left-radius: 6px" class="text-center line-height white bg-green-dark">{{ risk.riskName }}</p>
|
||||
<table cellspacing="0" style="width: 100%;border-collapse:separate; border-spacing:0px 2px;" class="text-center c-gray-darker">
|
||||
<tbody>
|
||||
<tr class="bg-green-base mt2 h35">
|
||||
<td>首期保费(元)</td>
|
||||
@@ -130,59 +100,46 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="bg-green-base pt20 pl15 pr15" v-if='mainRiskCodes[0] == "GFRS_M0008"'>
|
||||
<div class="text-center fw500 c-gray-darker fs14">产品总利益</div>
|
||||
<!-- {{risk.demoLabel}} -->
|
||||
<div
|
||||
class="flex justify-content-s mt15"
|
||||
v-for="(demoLabel, demoIndex) in risk.demoLabel"
|
||||
:key="demoLabel.content"
|
||||
v-if="demoIndex < 3"
|
||||
>
|
||||
<span class="c-gray-darker fs14">{{ demoLabel.contentLabel }}</span>
|
||||
<span class="green fs14">{{ demoLabel.value }}</span>
|
||||
</div>
|
||||
<div
|
||||
class="flex justify-content-s mt15"
|
||||
v-for="(duty, dutyIndex) in dutyLst"
|
||||
:key="dutyIndex"
|
||||
>
|
||||
<span class="c-gray-darker fs14">{{ duty.dutyName }}</span>
|
||||
<span class="green fs14">{{ duty.amt }}</span>
|
||||
</div>
|
||||
<div class="flex justify-content-s align-items-c mt30 mb20">
|
||||
<img class="w20" @click="reduce(risk)" src="@/assets/images/lessen.png" />
|
||||
<van-slider
|
||||
class="w220"
|
||||
active-color="#E9332E"
|
||||
inactive-color="#fff"
|
||||
:min="1"
|
||||
:max="risk.policyYear"
|
||||
v-model="risk.sliderValue"
|
||||
@input="input(risk.sliderValue, risk.demoValue, risk.demoLabel)"
|
||||
></van-slider>
|
||||
<div class="bg-green-base pt20 pl15 pr15" v-if="mainRiskCodes[0] == 'GFRS_M0008'">
|
||||
<div class="text-center fw500 c-gray-darker fs14">产品总利益</div>
|
||||
<!-- {{risk.demoLabel}} -->
|
||||
<div class="flex justify-content-s mt15" v-for="(demoLabel, demoIndex) in risk.demoLabel" :key="demoLabel.content" v-if="demoIndex < 3">
|
||||
<span class="c-gray-darker fs14">{{ demoLabel.contentLabel }}</span>
|
||||
<span class="green fs14">{{ demoLabel.value }}</span>
|
||||
</div>
|
||||
<div class="flex justify-content-s mt15" v-for="(duty, dutyIndex) in dutyLst" :key="dutyIndex">
|
||||
<span class="c-gray-darker fs14">{{ duty.dutyName }}</span>
|
||||
<span class="green fs14">{{ duty.amt }}</span>
|
||||
</div>
|
||||
<div class="flex justify-content-s align-items-c mt30 mb20">
|
||||
<img class="w20" @click="reduce(risk)" src="@/assets/images/lessen.png" />
|
||||
<van-slider
|
||||
class="w220"
|
||||
active-color="#E9332E"
|
||||
inactive-color="#fff"
|
||||
:min="1"
|
||||
:max="risk.policyYear"
|
||||
v-model="risk.sliderValue"
|
||||
@input="input(risk.sliderValue, risk.demoValue, risk.demoLabel)"
|
||||
></van-slider>
|
||||
|
||||
<img class="w20" @click="exhibitionAdd(risk)" src="@/assets/images/add.png" />
|
||||
</div>
|
||||
<select-radio
|
||||
class="mb10"
|
||||
v-if="risk.tap"
|
||||
@radioChange="radioChange(risk)"
|
||||
:required="false"
|
||||
:radios="risk.radios"
|
||||
:value.sync="risk.tap"
|
||||
></select-radio>
|
||||
<img class="w20" @click="exhibitionAdd(risk)" src="@/assets/images/add.png" />
|
||||
</div>
|
||||
<select-radio
|
||||
class="mb10"
|
||||
v-if="risk.tap"
|
||||
@radioChange="radioChange(risk)"
|
||||
:required="false"
|
||||
:radios="risk.radios"
|
||||
:value.sync="risk.tap"
|
||||
></select-radio>
|
||||
|
||||
<div class="green fs12 text-center pb15">拖动按钮查看不同年龄的保单利益</div>
|
||||
<div class="green fs12 text-center pb15">拖动按钮查看不同年龄的保单利益</div>
|
||||
</div>
|
||||
<div class="bg-green-base pt20 pl15 pr15" v-else>
|
||||
<div class="text-center fw500 c-gray-darker fs14">产品总利益</div>
|
||||
|
||||
<div
|
||||
class="flex justify-content-s mt15"
|
||||
v-for="demoLabel in risk.demoLabel"
|
||||
:key="demoLabel.content"
|
||||
>
|
||||
<div class="flex justify-content-s mt15" v-for="demoLabel in risk.demoLabel" :key="demoLabel.content">
|
||||
<span class="c-gray-darker fs14">{{ demoLabel.contentLabel }}</span>
|
||||
<span class="green fs14">{{ demoLabel.value }}</span>
|
||||
</div>
|
||||
@@ -215,24 +172,12 @@
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
<div class="flex pt15 justify-content-s bg-white">
|
||||
<van-button
|
||||
class="ml20 mr10 fs17 h40 lh40"
|
||||
size="large"
|
||||
plain
|
||||
type="danger"
|
||||
@click="goToCompanyProfile"
|
||||
>公司介绍</van-button>
|
||||
<van-button
|
||||
class="ml10 mr20 fs17 h40 lh40"
|
||||
size="large"
|
||||
plain
|
||||
type="danger"
|
||||
@click="goPDF"
|
||||
>生成PDF</van-button>
|
||||
<van-button class="ml20 mr10 fs17 h40 lh40" size="large" plain type="danger" @click="goToCompanyProfile">公司介绍</van-button>
|
||||
<van-button class="ml10 mr20 fs17 h40 lh40" size="large" plain type="danger" @click="goPDF">生成PDF</van-button>
|
||||
</div>
|
||||
<div class="pt40 text-justify bg-white pr15 pl15 c-gray-base fs13 pb60">
|
||||
【温馨提示】本资料仅供客户理解产品条款所用,有关产品的说明、解释、承若、或保证,如与产品条款不一致,均以产品条款为准。
|
||||
</div>
|
||||
<div
|
||||
class="pt40 text-justify bg-white pr15 pl15 c-gray-base fs13 pb60"
|
||||
>【温馨提示】本资料仅供客户理解产品条款所用,有关产品的说明、解释、承若、或保证,如与产品条款不一致,均以产品条款为准。</div>
|
||||
<div v-if="!isWeixin" class="bottom-btn fs16">
|
||||
<van-button type="danger" @click="insure" size="large">转投保</van-button>
|
||||
</div>
|
||||
@@ -530,36 +475,49 @@ export default {
|
||||
},
|
||||
//跳转到pdf 进入建议书后 根据建议书编码来查找相应的pdf
|
||||
async goPDF() {
|
||||
let params = {
|
||||
proposalInfoDTO: {
|
||||
proposalNo: localStorage.orderNo
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/proposal/pdf'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/proposal/pdf'
|
||||
}
|
||||
}
|
||||
//在微信端 直接跳转
|
||||
if (this.isWeixin) {
|
||||
return this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/proposal/pdf'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/proposal/pdf'
|
||||
}
|
||||
})
|
||||
}
|
||||
let make = await makePdf(params)
|
||||
if (make.result == '0') {
|
||||
let pdfUrl = encodeURIComponent(config.imgDomain + '/returnDirectStream?imgPath=' + make.content)
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/pdfjs/web/viewer.html?file=' + pdfUrl,
|
||||
title: 'PDF预览'
|
||||
}
|
||||
})
|
||||
} else {
|
||||
Toast.fail(make.resultMessage)
|
||||
}
|
||||
})
|
||||
|
||||
// let params = {
|
||||
// proposalInfoDTO: {
|
||||
// proposalNo: localStorage.orderNo
|
||||
// }
|
||||
// }
|
||||
// //在微信端 直接跳转
|
||||
// if (this.isWeixin) {
|
||||
// return this.$jump({
|
||||
// flag: 'h5',
|
||||
// extra: {
|
||||
// url: location.origin + '/#/proposal/pdf'
|
||||
// },
|
||||
// routerInfo: {
|
||||
// path: '/proposal/pdf'
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// let make = await makePdf(params)
|
||||
// if (make.result == '0') {
|
||||
// let pdfUrl = encodeURIComponent(config.imgDomain + '/returnDirectStream?imgPath=' + make.content)
|
||||
// this.$jump({
|
||||
// flag: 'h5',
|
||||
// extra: {
|
||||
// url: location.origin + '/pdfjs/web/viewer.html?file=' + pdfUrl,
|
||||
// title: 'PDF预览'
|
||||
// },
|
||||
// routerInfo: {
|
||||
// path: '/proposal/pdf'
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// Toast.fail(make.resultMessage)
|
||||
// }
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
||||
@@ -7,33 +7,96 @@
|
||||
import { makePdf } from '@/api/ebiz/proposal/proposal.js'
|
||||
import { Toast } from 'vant'
|
||||
import config from '@/config'
|
||||
import dataDictionary from '@/assets/js/utils/data-dictionary' //使用数据字典中的险种类型
|
||||
import { weixinShare } from '@/assets/js/utils/wxShare.js'
|
||||
export default {
|
||||
data() {
|
||||
let isWeixin = this.$utils.device().isWeixin //判断环境
|
||||
return {
|
||||
pdfUrl: ''
|
||||
pdfUrl: '',
|
||||
isWeixin,
|
||||
title: ''
|
||||
}
|
||||
},
|
||||
components: {
|
||||
[Toast.name]: Toast
|
||||
},
|
||||
|
||||
created() {
|
||||
if (this.$route.query.checkRule == '1') {
|
||||
document.title = '体检规则'
|
||||
console.log(this.$assetsUrl + `images/underWritingRule.pdf`)
|
||||
this.pdfUrl = location.origin + '/pdfjs/web/viewer.html?file=' + this.$assetsUrl + `images/underWritingRule.pdf`
|
||||
} else {
|
||||
this.init()
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.init()
|
||||
let riskCode = localStorage.pdfShareCode
|
||||
dataDictionary.riskType.some(item => {
|
||||
if (item.code == riskCode) {
|
||||
this.title = item.shortName + '计划书pdf'
|
||||
return true
|
||||
}
|
||||
})
|
||||
// weixinShare({
|
||||
// title: this.title,
|
||||
// imgUrl: this.$assetsUrl + 'images/logo.png',
|
||||
// desc: '国富为您量身定制的保险产品,请查收'
|
||||
// })
|
||||
},
|
||||
methods: {
|
||||
async init() {
|
||||
let params = {
|
||||
proposalInfoDTO: {
|
||||
proposalNo: localStorage.orderNo
|
||||
}
|
||||
}
|
||||
let pdfUrl = ''
|
||||
let make = await makePdf(params)
|
||||
if (make.result == '0') {
|
||||
pdfUrl = encodeURIComponent(config.imgDomain + '/returnDirectStream?imgPath=' + make.content)
|
||||
if (this.$route.query.url) {
|
||||
document.title = this.$route.query.name
|
||||
let pdfUrl = this.$route.query.url
|
||||
this.pdfUrl = location.origin + '/pdfjs/web/viewer.html?file=' + pdfUrl
|
||||
} else {
|
||||
Toast.fail(make.resultMessage)
|
||||
this.$route.query.orderNo && (localStorage.orderNo = this.$route.query.orderNo)
|
||||
this.$route.query.token && (localStorage.token = this.$route.query.token)
|
||||
let params = {
|
||||
proposalInfoDTO: {
|
||||
// proposalNo: localStorage.orderNo
|
||||
proposalNo: localStorage.orderNo || '19122416281210179267'
|
||||
}
|
||||
}
|
||||
let pdfUrl = ''
|
||||
let make = await makePdf(params)
|
||||
if (make.result == '0') {
|
||||
pdfUrl = encodeURIComponent(config.imgDomain + '/returnDirectStream?imgPath=' + make.content)
|
||||
this.pdfUrl = location.origin + '/pdfjs/web/viewer.html?file=' + pdfUrl
|
||||
if (!this.isWeixin) {
|
||||
setTimeout(() => {
|
||||
this.filterBtn() // 初始化分享按钮
|
||||
window.appCallBack = this.appCallBack //app回调
|
||||
}, 1000)
|
||||
}
|
||||
} else {
|
||||
Toast.fail(make.resultMessage)
|
||||
}
|
||||
}
|
||||
},
|
||||
// 分享按钮
|
||||
filterBtn() {
|
||||
window.EWebBridge.webCallAppInJs('webview_right_button', {
|
||||
btns: [
|
||||
{
|
||||
img: this.$assetsUrl + 'images/share@3x.png'
|
||||
}
|
||||
]
|
||||
})
|
||||
},
|
||||
appCallBack(data) {
|
||||
if (data.trigger == 'right_button_click') {
|
||||
// eslint-disable-next-line no-undef
|
||||
EWebBridge.webCallAppInJs('bridge', {
|
||||
flag: 'share',
|
||||
extra: {
|
||||
title: this.title,
|
||||
content: '国富为您量身定制的保险产品,请查收',
|
||||
url: location.origin + '/#/proposal/pdf?orderNo=' + localStorage.orderNo + '&token=' + localStorage.token,
|
||||
img: this.$assetsUrl + 'images/logo.png'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user