Files
ebiz-h5/src/views/ebiz/sale/apointValidDoc.vue
2023-12-11 10:55:15 +08:00

433 lines
17 KiB
Vue
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.
<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 v-if="activeType=='KMH'" style="text-align:center" class="mb20">指定保单生效日说明</h2> -->
<!-- <h2 v-if="activeType=='SQY'" style="text-align:center" class="mb20">指定保险合同生效日说明</h2> -->
<h2 style="text-align:center" class="mb20">预录投保单承保生效说明</h2>
<p style="text-indent:2rem;" :class="[activeType=='SQY' ? 'fontb' : '']">
尊敬的客户您好以下为预录投保单承保生效重要说明请您务必仔细阅读和确认
</p>
<p style="text-indent:2rem;">
<!-- 如您于{{ activeType=='KMH' ? '2020年12月31日':activeType=='SQY'? '2021年5月31日':'' }}(包含当日之前申请投保并交费成功且国富人寿保险股份有限公司以下简称国富人寿
收取首期保险费并签发保险单保险合同于{{ activeType=='KMH' ? '2021年1月1日':activeType=='SQY'? '2021年6月1日':'' }}零时起生效您交费成功日或签发保单日如在{{ activeType=='KMH' ?
'2021年1月1日':activeType=='SQY'? '2021年6月1日':'' }}包含当日之后保险合同于国富人寿收取首期保险费并签发保险单次日零时起生效 -->
<!-- 如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日之前申请投保并交费成功且国富人寿保险股份有限公司以下简称国富人寿收取首期保险费并签发保险单保险合同于
<span>{{ cvalidateStrToFormat }}</span>零时起生效您交费成功日或签发保单日如在<span>{{ cvalidateStrToFormat }}</span>
包含当日之后保险合同于国富人寿收取首期保险费并签发保险单次日零时起生效 -->
<!-- 如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前申请投保且支付保险费经国富人寿保险股份有限公司以下简称国富人寿同意并签发保单-->
<!-- <span>{{ cvalidateStrOneDayOff }}</span>(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效{{ cvalidateStrToFormat }}(包含当日后签发保单-->
<!-- 保险合同自签发保险单次日零时起生效国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额-->
本次投保为预录投保申请国富人寿保险股份有限公司以下简称国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额如您于{{ cvalidateStrOneDayOff }}(包含当日前提交投保申请且完成转账支付经国富人寿同意于{{ cvalidateStrOneDayOff }}(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效如您于{{ cvalidateStrOneDayOff }}(包含当日前提交投保申请{{ cvalidateStrToFormat }}(包含当日完成转账支付经国富人寿同意于{{ cvalidateStrToFormat }}(包含当日后签发保单保险合同自签发保险单次日零时起生效
</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, getOrderDetail } from '@/api/ebiz/sale/sale'
import utils from '@/assets/js/utils/date-utils'
// 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,
activeType: '',
isFrom:'',
cvalidateStr:'', //活动生效日
cvalidateStrToFormat:'',//活动生效日--格式化年月日
cvalidateStrOneDayOff:''//活动生效日--格式化年月日并减少一天
}
},
// computed: {
// cvalidateStrToFormat() {
// console.log(this.cvalidateStr,'computed')
// return utils.formatDate(new Date('2021-07-01'), 'yyyy年MM月dd日')
// },
// cvalidateStrOneDayOff() {
// console.log(this.cvalidateStr,'computed1')
// let date = new Date(this.cvalidateStr)
// let dateTime
// dateTime=date.setDate(date.getDate()-1);
// dateTime=utils.formatDate(new Date(dateTime), 'yyyy年MM月dd日');
// return dateTime
// }
// },
components: {
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
created() {
this.init()
},
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 = '预录投保单承保生效说明'
that.activeType = window.localStorage.getItem('activeType')
// 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: {
async init(){
this.isFrom = window.localStorage.isFrom
const orderNo = this.$route.query.orderNo
let detailPromise = this.isFrom === 'proposal' ? localStorage.proposalMedical : await getOrderDetail({ orderNo })
if(this.isFrom != 'proposal'){
//活动生效日期
this.cvalidateStr = detailPromise.orderDTO.orderInfoDTO.cvaliDate
}
this.cvalidateStrToFormat = utils.formatDate(new Date(this.cvalidateStr), 'yyyy年MM月dd日')
let date = new Date(this.cvalidateStr)
let dateTime
dateTime=date.setDate(date.getDate()-1);
this.cvalidateStrOneDayOff = utils.formatDate(new Date(dateTime), 'yyyy年MM月dd日');
},
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: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: that.$route.query.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 + '?orderNo=' + that.$route.query.orderNo,
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
}
})
} 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: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: that.$route.query.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' + '?orderNo=' + that.$route.query.orderNo,
},
routerInfo: {
path: '/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
}
})
} 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: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: that.$route.query.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 + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo
}
})
} 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: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: that.$route.query.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' + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
}
})
} 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;
}
.fontb{
font-weight: bolder;
}
</style>