mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-11 01:36:43 +08:00
Merge branch 'feature/GFRS-2015【待确定】开门红需求-电投改造' into dev
# Conflicts: # src/api/ebiz/sale/sale.js # src/views/ebiz/common/CalculatePremium.vue
This commit is contained in:
@@ -263,3 +263,21 @@ export function saveCustomerRid(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取订单活动信息
|
||||
export function getOrderActiveInfo(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/getActiveInfo', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取订单活动信息
|
||||
export function saveOrderActiveType(data) {
|
||||
return request({
|
||||
url: getUrl('/sale/order/saveActiveType', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -44,6 +44,10 @@
|
||||
font-size: $font-size-xll;
|
||||
}
|
||||
|
||||
.fw400 {
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
|
||||
.fw500 {
|
||||
font-weight: 500 !important;
|
||||
}
|
||||
|
||||
@@ -1,17 +1,28 @@
|
||||
<template>
|
||||
<div class="ml6 mr6 pt5 pb5">
|
||||
<div class="own_content">
|
||||
<ul class="index-bar">
|
||||
<li @click="changePage(Number(index) + 1)" v-for="(item, index) in pageTitle" :key="index" :class="item.tabClass" :id="item.tabClass">
|
||||
<div :class="[{ activeline: item.tabClass }, { 'bg-gray': !item.tabClass }, 'w15', 'h2', 'mr8']" v-if="index != 0"></div>
|
||||
<span>{{ item.pageNo }}.{{ item.pageItem }}</span>
|
||||
<div :class="[{ activeline: item.tabClass }, { 'bg-gray': !item.tabClass }, 'w15', 'h2', 'ml8']" v-if="index != 7"></div>
|
||||
<van-icon name="arrow" size="12" v-if="index != 7" />
|
||||
<!-- 选中 -->
|
||||
<div v-if="item.tabClass" class="flex justify-content-fs align-items-c">
|
||||
<div class="flex flex-direction-colunm align-items-c">
|
||||
<van-image :src="item.imgCheckedUrl" class="image_head" />
|
||||
<span class="fs12 mt12">{{ item.pageItem }}</span>
|
||||
</div>
|
||||
<van-image :src="doneUrl" v-if="index !== 7" class="image_done" />
|
||||
</div>
|
||||
<div v-if="!item.tabClass" class="flex justify-content-fs align-items-c">
|
||||
<div class="flex flex-direction-colunm align-items-c">
|
||||
<van-image :src="item.imgNoCheckedUrl" class="image_head" />
|
||||
<span class="fs12 mt12" style="color: #999999">{{ item.pageItem }}</span>
|
||||
</div>
|
||||
<van-image :src="doneNurl" v-if="index !== 7" class="image_done" />
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Icon } from 'vant'
|
||||
import { Icon, Image as VanImage } from 'vant'
|
||||
export default {
|
||||
name: 'IndexBar',
|
||||
props: {
|
||||
@@ -34,19 +45,78 @@ export default {
|
||||
}
|
||||
},
|
||||
components: {
|
||||
[Icon.name]: Icon
|
||||
[Icon.name]: Icon,
|
||||
[VanImage.name]: VanImage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
doneUrl: this.$assetsUrl + 'images/kmh/done.png',
|
||||
doneNurl: this.$assetsUrl + 'images/kmh/done_n.png',
|
||||
pageTitle: [
|
||||
{ pageNo: 1, pageItem: '投保人信息', urlStr: '/sale/insuredInfo', tabClass: '' },
|
||||
{ pageNo: 2, pageItem: '被保险人信息', urlStr: '/sale/insuredPerson', tabClass: '' },
|
||||
{ pageNo: 3, pageItem: '选择产品', urlStr: '/common/selectedProduct', tabClass: '' },
|
||||
{ pageNo: 4, pageItem: '受益人信息', urlStr: '/sale/beneficiary', tabClass: '' },
|
||||
{ pageNo: 5, pageItem: '告知信息', urlStr: '/sale/notifyingMessage', tabClass: '' },
|
||||
{ pageNo: 6, pageItem: '账户信息', urlStr: '/sale/accountInformation', tabClass: '' },
|
||||
{ pageNo: 7, pageItem: '附件上传', urlStr: '/sale/attachmentManagement', tabClass: '' },
|
||||
{ pageNo: 8, pageItem: '签名确认', urlStr: '/sale/signatureConfirmation', tabClass: '' }
|
||||
{
|
||||
pageNo: 1,
|
||||
pageItem: '投保人信息',
|
||||
urlStr: '/sale/insuredInfo',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/tbrxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/tbrxx_n.png'
|
||||
},
|
||||
{
|
||||
pageNo: 2,
|
||||
pageItem: '被保险人信息',
|
||||
urlStr: '/sale/insuredPerson',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/bbrxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/bbrxx_n.png'
|
||||
},
|
||||
{
|
||||
pageNo: 3,
|
||||
pageItem: '选择产品',
|
||||
urlStr: '/common/selectedProduct',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/xzcp.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/xzcp_n.png'
|
||||
},
|
||||
{
|
||||
pageNo: 4,
|
||||
pageItem: '受益人信息',
|
||||
urlStr: '/sale/beneficiary',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/syrxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/syrxx_n.png'
|
||||
},
|
||||
{
|
||||
pageNo: 5,
|
||||
pageItem: '告知信息',
|
||||
urlStr: '/sale/notifyingMessage',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/gzxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/gzxx_n.png'
|
||||
},
|
||||
{
|
||||
pageNo: 6,
|
||||
pageItem: '账户信息',
|
||||
urlStr: '/sale/accountInformation',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx_n.png'
|
||||
},
|
||||
{
|
||||
pageNo: 7,
|
||||
pageItem: '附件上传',
|
||||
urlStr: '/sale/attachmentManagement',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/fjsc.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/fjsc_n.png'
|
||||
},
|
||||
{
|
||||
pageNo: 8,
|
||||
pageItem: '签名确认',
|
||||
urlStr: '/sale/signatureConfirmation',
|
||||
tabClass: '',
|
||||
imgCheckedUrl: this.$assetsUrl + 'images/kmh/qmqr.png',
|
||||
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/qmqr_n.png'
|
||||
}
|
||||
],
|
||||
//localStorage.salePageFlag:控制导航是否可以直接跳转页面 1-投保人信息 2-被保人信息 3-选择产品 4-受益人信息 5-告知信息 6-账户信息 7-附件上传 8-签名确认
|
||||
salePageFlag: Number(localStorage.salePageFlag)
|
||||
@@ -147,8 +217,7 @@ export default {
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
white-space: nowrap;
|
||||
font-size: 15px;
|
||||
margin-top: 8px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.index-bar li {
|
||||
@@ -164,7 +233,7 @@ li {
|
||||
}
|
||||
.index-bar span,
|
||||
.index-bar van-icon {
|
||||
align-items: flex-center;
|
||||
align-items: center;
|
||||
}
|
||||
.active {
|
||||
color: #e9332e;
|
||||
@@ -172,4 +241,20 @@ li {
|
||||
.activeline {
|
||||
background: #e9332e;
|
||||
}
|
||||
.image_head {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.image_done {
|
||||
width: 8px;
|
||||
height: 14px;
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
.own_content {
|
||||
padding-top: 19px;
|
||||
padding-bottom: 15px;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -25,6 +25,7 @@ const productTip = () => import('@/views/ebiz/sale/productTip')
|
||||
const avoidDutyTip = () => import('@/views/ebiz/sale/AvoidDutyTip')
|
||||
const doubleRecordTip = () => import('@/views/ebiz/sale/DoubleRecordTip')
|
||||
const PayResultFail = () => import('@/views/ebiz/sale/PayResultFail')
|
||||
const apointValidDoc = () => import('@/views/ebiz/sale/apointValidDoc')
|
||||
let riskName = localStorage.riskName
|
||||
console.log('sale/riskName==', riskName)
|
||||
export default [
|
||||
@@ -161,6 +162,14 @@ export default [
|
||||
title: '免除保险人责任条款说明书'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/apointValidDoc',
|
||||
name: 'apointValidDoc',
|
||||
component: apointValidDoc,
|
||||
meta: {
|
||||
title: '免除保险人责任条款说明书'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/sale/doubleRecordTip',
|
||||
name: 'doubleRecordTip',
|
||||
|
||||
@@ -277,6 +277,13 @@
|
||||
<span style="font-weight:bold" v-else>保额(元):</span>
|
||||
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].showPrem | moneyFormat }}</span>
|
||||
</div>
|
||||
<div class="flex justify-content-fs pv10 border-bottom prem align-items-c" v-if="item.isMainRisk == 0 && activeType == 'KMH'">
|
||||
<span>指定保单生效日</span>
|
||||
<van-radio-group v-model="activeRadio" class="pl20">
|
||||
<van-radio name="1" icon-size="1rem"></van-radio>
|
||||
</van-radio-group>
|
||||
<span class="pl5">2021年1月1日</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-btn bg-white">
|
||||
<van-button type="danger" size="large" @click="nextStep" :disabled="nextStepFlag" v-no-more-click="1000">完成</van-button>
|
||||
@@ -359,6 +366,8 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeRadio: '1',
|
||||
activeType: localStorage.getItem('active_type'),
|
||||
chooseProducts: [],
|
||||
productIndex: '',
|
||||
calFactorIndex: '',
|
||||
|
||||
@@ -2,18 +2,16 @@
|
||||
<div class="main-risk-list-container pt10 redRadioCheckbox">
|
||||
<van-radio-group v-model="result">
|
||||
<van-cell-group>
|
||||
<van-cell v-for="(item, index) in list" clickable @click="result = item" :key="index">
|
||||
<van-cell v-for="(item, index) in list" clickable @click="result = item" :key="index" v-show="checkItemShow(item)">
|
||||
<p slot="default">
|
||||
<van-tag plain class="green fs12 mr10">{{ item.productType }}</van-tag>
|
||||
<span class="c-gray-dark fs14">{{ item.riskName }}</span>
|
||||
</p>
|
||||
<van-radio checked-color="red" slot="right-icon" :name="item" />
|
||||
</van-cell>
|
||||
<van-cell> </van-cell>
|
||||
<van-cell> </van-cell>
|
||||
</van-cell-group>
|
||||
</van-radio-group>
|
||||
|
||||
<div class="white_block"></div>
|
||||
<van-button class="bottom-btn" type="danger" @click="nextStep">完成</van-button>
|
||||
</div>
|
||||
</template>
|
||||
@@ -40,7 +38,8 @@ export default {
|
||||
result: '',
|
||||
delList: [],
|
||||
radioVal: '',
|
||||
isFrom: localStorage.isFrom
|
||||
isFrom: localStorage.isFrom,
|
||||
activeFlag: ''
|
||||
}
|
||||
},
|
||||
async mounted() {
|
||||
@@ -61,6 +60,8 @@ export default {
|
||||
this.specilFlag = '1'
|
||||
}
|
||||
// ------------------------专为桂企写死--end---------------//
|
||||
// 处理活动产品
|
||||
this.activeFlag = res.orderDTO.orderInfoDTO.activeType
|
||||
}
|
||||
resolve(this.getMainRiskList())
|
||||
},
|
||||
@@ -74,6 +75,20 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
checkItemShow(item) {
|
||||
if (this.activeFlag != 'KMH') {
|
||||
return true
|
||||
}
|
||||
let showFlag = false
|
||||
if (item.activeLst && item.activeLst.length > 0) {
|
||||
item.activeLst.forEach(subItem => {
|
||||
if (subItem == 'KMH') {
|
||||
showFlag = true
|
||||
}
|
||||
})
|
||||
}
|
||||
return showFlag
|
||||
},
|
||||
//获取主险列表
|
||||
async getMainRiskList() {
|
||||
let mainRiskCodes = localStorage.mainRiskCodes && JSON.parse(localStorage.mainRiskCodes)
|
||||
@@ -336,4 +351,9 @@ export default {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
<style lang="scss" scoped>
|
||||
.white_block {
|
||||
width: 100%;
|
||||
height: 11.73333vw;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -33,6 +33,36 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<van-dialog v-model="active_show" :show-confirm-button="false" class="dialog_class">
|
||||
<div class="flex justify-content-fe">
|
||||
<van-image :src="this.$assetsUrl + 'images/kmh/cancel.png'" class="fr mt15 mr15 icon_image" @click="active_show = false"></van-image>
|
||||
</div>
|
||||
<div class="pl20 pr20 mt30">
|
||||
<p class="fs16 black fw400">请选择:</p>
|
||||
<van-radio-group v-model="active_radio" style="align-items: center;">
|
||||
<van-radio name="1" class="radio_class ml60">
|
||||
<template #icon="props">
|
||||
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
|
||||
</template>
|
||||
<div class="flex justify-content-fs align-items-c pl5">
|
||||
<div class="fs16 fw400">开门红产品</div>
|
||||
</div>
|
||||
</van-radio>
|
||||
<van-radio name="2" class="radio_class ml60">
|
||||
<template #icon="props">
|
||||
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
|
||||
</template>
|
||||
<div class="flex justify-content-fs align-items-c pl5">
|
||||
<div class="fs16 fw400">普通产品</div>
|
||||
</div>
|
||||
</van-radio>
|
||||
</van-radio-group>
|
||||
<div class="flex justify-content-c bg-white mt20 mb40 align-items-c">
|
||||
<van-button type="danger" class="dialog-comfirm-button" @click="comfirmCheckActive" v-no-more-click="1000">确认</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-dialog>
|
||||
|
||||
<div>
|
||||
<van-submit-bar button-text="下一步" @submit="nextStep" :disabled="nextStepFlag">
|
||||
<div class="fs15 ml15 fwb" style="flex:1" slot="default">
|
||||
@@ -45,11 +75,12 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Tag, SubmitBar, Icon, Dialog } from 'vant'
|
||||
import { Tag, SubmitBar, Icon, Dialog, RadioGroup, Radio, Image as VanImage } from 'vant'
|
||||
import FieldPicker from '@/components/ebiz/FieldPicker'
|
||||
import { orderDetail, deleteOrderInfo } from '@/api/ebiz/common/common'
|
||||
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
|
||||
import { getDetail, deleteProposal } from '@/api/ebiz/proposal/proposal.js'
|
||||
import { getOrderActiveInfo, saveOrderActiveType } from '@/api/ebiz/sale/sale.js'
|
||||
import utilsAge from '@/assets/js/utils/age'
|
||||
import IndexBar from '@/components/ebiz/sale/IndexBar'
|
||||
|
||||
@@ -63,7 +94,11 @@ export default {
|
||||
isShow: true,
|
||||
appntDTO: {},
|
||||
isFrom: localStorage.isFrom,
|
||||
salePageFlag: '3'
|
||||
salePageFlag: '3',
|
||||
active_show: false,
|
||||
active_radio: '1',
|
||||
checkedUrl: this.$assetsUrl + 'images/kmh/kmhCheked.png',
|
||||
noCheckedUrl: this.$assetsUrl + 'images/kmh/kmhNoCheked.png'
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@@ -71,10 +106,15 @@ export default {
|
||||
[FieldPicker.name]: FieldPicker,
|
||||
[SubmitBar.name]: SubmitBar,
|
||||
[Icon.name]: Icon,
|
||||
[IndexBar.name]: IndexBar
|
||||
[IndexBar.name]: IndexBar,
|
||||
[RadioGroup.name]: RadioGroup,
|
||||
[Radio.name]: Radio,
|
||||
[VanImage.name]: VanImage
|
||||
},
|
||||
mounted() {
|
||||
if (localStorage.isFrom == 'sale') {
|
||||
// 清除活动标志
|
||||
localStorage.removeItem('active_type')
|
||||
setTimeout(() => {
|
||||
// eslint-disable-next-line no-undef
|
||||
EWebBridge.webCallAppInJs('webview_left_button', {
|
||||
@@ -339,7 +379,24 @@ export default {
|
||||
}
|
||||
},
|
||||
//添加产品
|
||||
addProduct() {
|
||||
async addProduct() {
|
||||
// 1、处理判断活动 1、电投流程 2、后端接口提供弹出判断
|
||||
if (localStorage.isFrom == 'sale') {
|
||||
let param = {
|
||||
activeType: 'KMH'
|
||||
}
|
||||
let resultData = await getOrderActiveInfo(param)
|
||||
if (resultData.result == 0) {
|
||||
if (resultData.content.activeFlag != '1') {
|
||||
this.active_show = true
|
||||
return
|
||||
}
|
||||
//正常后续跳转流程
|
||||
} else {
|
||||
this.$toast(resultData.resultMessage)
|
||||
return
|
||||
}
|
||||
}
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
@@ -350,6 +407,33 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
comfirmCheckActive() {
|
||||
let param = {
|
||||
orderDTO: {
|
||||
orderInfoDTO: {
|
||||
orderNo: localStorage.orderNo,
|
||||
activeType: this.active_radio == '1' ? 'KMH' : ''
|
||||
}
|
||||
}
|
||||
}
|
||||
saveOrderActiveType(param).then(res => {
|
||||
this.active_show = false
|
||||
localStorage.setItem('active_type', this.active_radio == '1' ? 'KMH' : '')
|
||||
if (res.result == 0) {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/common/mainRiskList'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/common/mainRiskList'
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
},
|
||||
showTipForDoubleRecord() {
|
||||
//判断投保人年龄是否大于等于60岁
|
||||
let showFlag = false
|
||||
@@ -385,6 +469,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import '@/assets/sass/variables.scss';
|
||||
.select-product-container {
|
||||
.border-dotted {
|
||||
border: 1px dashed #999;
|
||||
@@ -402,5 +487,28 @@ export default {
|
||||
font-weight: bold;
|
||||
font-size: 15px;
|
||||
}
|
||||
.radio_class {
|
||||
height: 60px;
|
||||
}
|
||||
.dialog-comfirm-button {
|
||||
width: 167px;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
vertical-align: center;
|
||||
}
|
||||
.icon_image {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
.radio_icon_image {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
.dialog_class {
|
||||
width: 290px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -336,6 +336,11 @@ export default {
|
||||
})
|
||||
} else {
|
||||
url = this.productCode == 'GFRS_M0003' || this.productCode == 'GFRS_M0015' || this.productCode == 'GFRS_M0017' ? 'productTip' : 'insuranceTip'
|
||||
that.appntSign.map(item => {
|
||||
if (item.documentCode == '8') {
|
||||
url = 'apointValidDoc'
|
||||
}
|
||||
})
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
|
||||
@@ -38,11 +38,11 @@
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-for="(item, index) in appntSign" :key="index">
|
||||
<p>{{ item.documentCode == '1' ? '需阅读' : '需签署' }}</p>
|
||||
<p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p>
|
||||
<p class="mb20">
|
||||
<span class="text">{{ item.documentName }}</span>
|
||||
<img :src="src" v-if="item.documentCode == '1' && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="item.documentCode !== '1' && item.documentStatus == '3'" />
|
||||
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="!(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '3'" />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -83,11 +83,11 @@
|
||||
</div>
|
||||
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
|
||||
<div v-for="(item, index) in insuredSign" :key="index">
|
||||
<p>{{ item.documentCode == '1' ? '需阅读' : '需签署' }}</p>
|
||||
<p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p>
|
||||
<p class="mb20">
|
||||
<span class="text">{{ item.documentName }}</span>
|
||||
<img :src="src" v-if="item.documentCode == '1' && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="item.documentCode !== '1' && item.documentStatus == '3'" />
|
||||
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="!(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '3'" />
|
||||
</p>
|
||||
</div>
|
||||
<p class="start" v-if="airSign != '1'">点击【开始】或【分享】,进行相关操作</p>
|
||||
@@ -131,11 +131,11 @@
|
||||
</div>
|
||||
<div v-else>
|
||||
<div v-for="(item, index) in appntSign" :key="index">
|
||||
<p>{{ item.documentCode == '1' ? '需阅读' : '需签署' }}</p>
|
||||
<p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p>
|
||||
<p class="mb20">
|
||||
<span class="text">{{ item.documentName }}</span>
|
||||
<img :src="src" v-if="item.documentCode == '1' && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="item.documentCode !== '1' && item.documentStatus == '3'" />
|
||||
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '3'" />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -165,11 +165,11 @@
|
||||
</div>
|
||||
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
|
||||
<div v-for="(item, index) in insuredSign" :key="index">
|
||||
<p>{{ item.documentCode == '1' ? '需阅读' : '需签署' }}</p>
|
||||
<p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p>
|
||||
<p class="mb20">
|
||||
<span class="text">{{ item.documentName }}</span>
|
||||
<img :src="src" v-if="item.documentCode == '1' && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="item.documentCode !== '1' && item.documentStatus == '3'" />
|
||||
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '1'" />
|
||||
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '3'" />
|
||||
</p>
|
||||
</div>
|
||||
<p class="start" v-if="airSign != '1'">点击【开始】或【分享】,进行相关操作</p>
|
||||
@@ -774,7 +774,7 @@ export default {
|
||||
} else {
|
||||
console.log('that.appntSign.length ==', that.appntSign.length, typeof that.appntSign.length)
|
||||
for (let i = 0; i < that.appntSign.length; i++) {
|
||||
if (that.appntSign[i].documentCode == '1' && that.appntSign[0].documentStatus == 0) {
|
||||
if ((that.appntSign[i].documentCode == '1' || that.appntSign[i].documentCode == '8') && that.appntSign[i].documentStatus == 0) {
|
||||
//1投保须知 未读
|
||||
path = that.appntSign[i].routePath
|
||||
break
|
||||
@@ -1215,23 +1215,26 @@ export default {
|
||||
addKey(item) {
|
||||
//ducumentCode 1投保须知 2投保单 3产品说明书 4提示书 6免除保险人责任条款说明书 7保险销售行为双录说明
|
||||
if (item.documentCode == '1') {
|
||||
item.key = 1
|
||||
item.key = 2
|
||||
item.routePath = 'insuranceInformation'
|
||||
} else if (item.documentCode == '2') {
|
||||
item.key = 6
|
||||
item.key = 7
|
||||
item.routePath = 'SignatureOfElectronic'
|
||||
} else if (item.documentCode == '3') {
|
||||
item.key = 2
|
||||
item.key = 3
|
||||
item.routePath = 'productTip'
|
||||
} else if (item.documentCode == '4') {
|
||||
item.key = 3
|
||||
item.key = 4
|
||||
item.routePath = 'InsuranceTip'
|
||||
} else if (item.documentCode == '6') {
|
||||
item.key = 4
|
||||
item.key = 5
|
||||
item.routePath = 'avoidDutyTip'
|
||||
} else if (item.documentCode == '7') {
|
||||
item.key = 5
|
||||
item.key = 6
|
||||
item.routePath = 'doubleRecordTip'
|
||||
} else if (item.documentCode == '8') {
|
||||
item.key = 1
|
||||
item.routePath = 'apointValidDoc'
|
||||
}
|
||||
},
|
||||
getSignInvalid() {
|
||||
|
||||
377
src/views/ebiz/sale/apointValidDoc.vue
Normal file
377
src/views/ebiz/sale/apointValidDoc.vue
Normal file
@@ -0,0 +1,377 @@
|
||||
<template>
|
||||
<div class="insuranceInformation-container pb50 redRadioCheckbox">
|
||||
<van-notice-bar :scrollable="false" v-if="!Time" class="notice">{{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}</van-notice-bar>
|
||||
<div class="bg-white flex justify-content-c flex-direction-colunm align-it<po>ems-center p20 fs14 mt20">
|
||||
<div>
|
||||
<h2 style="text-align:center" class="mb20">指定保单生效日说明</h2>
|
||||
<p style="text-indent:2rem;">
|
||||
尊敬的客户,您好!以下为指定保险合同生效日重要说明,请您务必仔细阅读和确认。
|
||||
</p>
|
||||
<p style="text-indent:2rem;">
|
||||
如您于2020年12月31日(包含当日)之前申请投保并交费成功、且国富人寿保险股份有限公司(以下简称国富人寿)收取首期保险费并签发保险单,保险合同于2021年1月1日零时起生效;您交费成功日或签发保单日如在2021年1月1日(包含当日)之后,保险合同于国富人寿收取首期保险费并签发保险单次日零时起生效。
|
||||
</p>
|
||||
<p style="text-indent:2rem;">
|
||||
国富人寿承担的保险责任从保险合同生效日零时开始。 签发保险单后, 国富人寿将电子保单发送至您的电子邮箱。
|
||||
</p>
|
||||
<p style="text-indent:2rem;">
|
||||
请您务必仔细阅读保险条款中的等待期、犹豫期、保险责任等各项重要内容和提示。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bg-white bottom-btn">
|
||||
<van-radio-group v-model="radio" class="pb10 pb20 pl30">
|
||||
<van-radio name="1" @click="click" class="fs14">
|
||||
<span>本人已详细阅读并同意上述指定保单生效日说明 </span>
|
||||
</van-radio>
|
||||
</van-radio-group>
|
||||
<van-button type="danger" size="large" :disabled="isDisable" @click="goNext" v-no-more-click="1000">我已阅读并知晓</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
|
||||
import { saveInformation } from '@/api/ebiz/sale/sale'
|
||||
// import config from '@/config'
|
||||
// import axios from 'axios'
|
||||
export default {
|
||||
data() {
|
||||
let isWeixin = this.$utils.device().isWeixin //判断环境
|
||||
return {
|
||||
// 投保人还是被保险人信息
|
||||
signVal: '',
|
||||
// 被保险人签名信息
|
||||
insuredSign: {},
|
||||
// 投保人签名信息
|
||||
appntSign: {},
|
||||
radio: '',
|
||||
// 倒计时时间
|
||||
number: '',
|
||||
// 定时器时间
|
||||
time: '10',
|
||||
// 定时器名称
|
||||
timer: null,
|
||||
isOver: false,
|
||||
// 判断验证码是否开始倒计时
|
||||
Time: true,
|
||||
// 按钮是否可以点击
|
||||
isDisable: true,
|
||||
// 是否在微信
|
||||
isWeixin,
|
||||
productCode: localStorage.productCode, //获取产品编号
|
||||
protocol: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
[RadioGroup.name]: RadioGroup,
|
||||
[Radio.name]: Radio,
|
||||
[Dialog.name]: Dialog,
|
||||
[NoticeBar.name]: NoticeBar
|
||||
},
|
||||
mounted() {
|
||||
let readingType = localStorage.getItem('readingProtocolType')
|
||||
if (readingType && readingType === '1') {
|
||||
this.protocol = true
|
||||
}
|
||||
let that = this
|
||||
// {{switchFlag.Time?pageVariable.msg:pageVariable.number}}
|
||||
that.timeOut()
|
||||
document.title = '指定保单生效日说明'
|
||||
// Notify({
|
||||
// type: 'warning',
|
||||
// message: `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上`,
|
||||
// duration: 10000,
|
||||
// background: '#999999',
|
||||
// className: 'notify'
|
||||
// })
|
||||
|
||||
document.body.style.backgroundColor = '#fff'
|
||||
that.signVal = window.localStorage.getItem('sign-val')
|
||||
if (JSON.parse(window.localStorage.getItem('sign-insured'))) {
|
||||
that.insuredSign = JSON.parse(window.localStorage.getItem('sign-insured'))
|
||||
}
|
||||
if (JSON.parse(window.localStorage.getItem('sign-appnt'))) {
|
||||
that.appntSign = JSON.parse(window.localStorage.getItem('sign-appnt'))
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
timeOut() {
|
||||
let that = this
|
||||
let time = that.time
|
||||
that.Time = false
|
||||
that.number = `${time}`
|
||||
let timer = setInterval(() => {
|
||||
time--
|
||||
if (time <= 0) {
|
||||
time = 0
|
||||
clearInterval(timer)
|
||||
|
||||
that.Time = true
|
||||
that.isOver = true
|
||||
// window.localStorage.setItem('step', '1')
|
||||
}
|
||||
that.number = `${time}`
|
||||
}, 1000)
|
||||
},
|
||||
// 点击阅读时
|
||||
click() {
|
||||
let that = this
|
||||
if (that.isOver == false) {
|
||||
Dialog.confirm({
|
||||
title: '提示',
|
||||
message: '该内容涉及您的重大权益,请您仔细阅读',
|
||||
showCancelButton: false
|
||||
}).then(() => {
|
||||
that.radio = ''
|
||||
})
|
||||
}
|
||||
},
|
||||
// 下一步
|
||||
goNext() {
|
||||
if (this.isWeixin) {
|
||||
console.log('````````````````````')
|
||||
console.log('进入微信')
|
||||
this.$toast.loading({
|
||||
duration: 0, // 持续展示 toast
|
||||
forbidClick: true, // 禁用背景点击
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
let that = this
|
||||
|
||||
if (that.signVal == '0' || that.signVal == '2') {
|
||||
that.appntSign.map(item => {
|
||||
if (item.documentCode == '8') {
|
||||
that.appntSign.signId = item.signId
|
||||
that.appntSign.documentCode = item.documentCode
|
||||
that.appntSign.documentType = item.documentType
|
||||
}
|
||||
})
|
||||
let data = {
|
||||
orderType: 'SIGN_ORDER',
|
||||
orderDTO: {
|
||||
orderInfoDTO: {
|
||||
orderNo: window.localStorage.getItem('orderNo')
|
||||
},
|
||||
ebizSignDTOS: [
|
||||
{
|
||||
signOrRead: 'read',
|
||||
signId: that.appntSign.signId,
|
||||
orderNo: window.localStorage.getItem('orderNo'),
|
||||
documentCode: that.appntSign.documentCode,
|
||||
documentStatus: '1',
|
||||
documentType: that.appntSign.documentType,
|
||||
signType: that.signVal
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
saveInformation(data).then(res => {
|
||||
// console.log(res)
|
||||
if (res.result == '0') {
|
||||
this.$toast.clear()
|
||||
window.localStorage.setItem('detailJump', '')
|
||||
let url = 'insuranceInformation'
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/sale/' + url
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/sale/' + url
|
||||
}
|
||||
})
|
||||
} else {
|
||||
that.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast.loading({
|
||||
duration: 0, // 持续展示 toast
|
||||
forbidClick: true, // 禁用背景点击
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
that.insuredSign.map(item => {
|
||||
if (item.documentCode == '8') {
|
||||
that.insuredSign.signId = item.signId
|
||||
that.insuredSign.documentCode = item.documentCode
|
||||
that.insuredSign.documentType = item.documentType
|
||||
}
|
||||
})
|
||||
let data = {
|
||||
orderType: 'SIGN_ORDER',
|
||||
orderDTO: {
|
||||
orderInfoDTO: {
|
||||
orderNo: window.localStorage.getItem('orderNo')
|
||||
},
|
||||
ebizSignDTOS: [
|
||||
{
|
||||
signOrRead: 'read',
|
||||
signId: that.insuredSign.signId,
|
||||
orderNo: window.localStorage.getItem('orderNo'),
|
||||
documentCode: that.insuredSign.documentCode,
|
||||
documentStatus: '1',
|
||||
documentType: that.insuredSign.documentType,
|
||||
signType: that.signVal
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
saveInformation(data).then(res => {
|
||||
if (res.result == '0') {
|
||||
this.$toast.clear()
|
||||
window.localStorage.setItem('detailJump', '')
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/sale/SignatureOfElectronic'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/sale/SignatureOfElectronic'
|
||||
}
|
||||
})
|
||||
} else {
|
||||
that.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
let that = this
|
||||
this.$toast.loading({
|
||||
duration: 0, // 持续展示 toast
|
||||
forbidClick: true, // 禁用背景点击
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
// console.log('that.appntSign.signId',that.appntSign,that.appntSign.signId,that.appntSign.documentCode,that.appntSign.documentType)
|
||||
if (that.signVal == '0' || that.signVal == '2') {
|
||||
that.appntSign.map(item => {
|
||||
if (item.documentCode == '8') {
|
||||
that.appntSign.signId = item.signId
|
||||
that.appntSign.documentCode = item.documentCode
|
||||
that.appntSign.documentType = item.documentType
|
||||
}
|
||||
})
|
||||
let data = {
|
||||
orderType: 'SIGN_ORDER',
|
||||
orderDTO: {
|
||||
orderInfoDTO: {
|
||||
orderNo: window.localStorage.getItem('orderNo')
|
||||
},
|
||||
ebizSignDTOS: [
|
||||
{
|
||||
signOrRead: 'read',
|
||||
signId: that.appntSign.signId,
|
||||
orderNo: window.localStorage.getItem('orderNo'),
|
||||
documentCode: that.appntSign.documentCode,
|
||||
documentStatus: '1',
|
||||
documentType: that.appntSign.documentType,
|
||||
signType: that.signVal
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
saveInformation(data).then(res => {
|
||||
if (res.result == '0') {
|
||||
this.$toast.clear()
|
||||
window.localStorage.setItem('detailJump', '')
|
||||
let url = 'insuranceInformation'
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/sale/' + url,
|
||||
forbidSwipeBack: '1'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/sale/' + url
|
||||
}
|
||||
})
|
||||
} else {
|
||||
that.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
that.insuredSign.map(item => {
|
||||
if (item.documentCode == '8') {
|
||||
that.insuredSign.signId = item.signId
|
||||
that.insuredSign.documentCode = item.documentCode
|
||||
that.insuredSign.documentType = item.documentType
|
||||
}
|
||||
})
|
||||
let data = {
|
||||
orderType: 'SIGN_ORDER',
|
||||
orderDTO: {
|
||||
orderInfoDTO: {
|
||||
orderNo: window.localStorage.getItem('orderNo')
|
||||
},
|
||||
ebizSignDTOS: [
|
||||
{
|
||||
signOrRead: 'read',
|
||||
signId: that.insuredSign.signId,
|
||||
orderNo: window.localStorage.getItem('orderNo'),
|
||||
documentCode: that.insuredSign.documentCode,
|
||||
documentStatus: '1',
|
||||
documentType: that.insuredSign.documentType,
|
||||
signType: that.signVal
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
saveInformation(data).then(res => {
|
||||
if (res.result == '0') {
|
||||
this.$toast.clear()
|
||||
window.localStorage.setItem('detailJump', '')
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/sale/SignatureOfElectronic',
|
||||
forbidSwipeBack: '1'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/sale/SignatureOfElectronic'
|
||||
}
|
||||
})
|
||||
} else {
|
||||
that.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
listenChange() {
|
||||
const { isOver, radio } = this
|
||||
return { isOver, radio }
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
listenChange(val) {
|
||||
let that = this
|
||||
// console.log('listenChange :', val)
|
||||
if (val.isOver == true && val.radio !== '') {
|
||||
that.isDisable = false
|
||||
} else {
|
||||
that.isDisable = true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
beforeRouteLeave(to, from, next) {
|
||||
document.body.style.backgroundColor = ''
|
||||
next()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
p {
|
||||
text-align: justify;
|
||||
}
|
||||
.notice {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
z-index: 20;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user