GFRS-2759【前端】开发柳州需求投保风险提示书的页面--提交人:张齐

This commit is contained in:
zhangqi1
2021-10-14 14:07:19 +08:00
committed by liyuetong
parent e11132a3bb
commit ae90b576e0
4 changed files with 645 additions and 218 deletions

View File

@@ -1,6 +1,7 @@
import request from '@/assets/js/utils/request' import request from '@/assets/js/utils/request'
import request1 from '@/assets/js/utils/request1' import request1 from '@/assets/js/utils/request1'
import getUrl from '@/assets/js/utils/get-url' import getUrl from '@/assets/js/utils/get-url'
// 保费计算 // 保费计算
export function saveOrUpdateOrderInfo(data) { export function saveOrUpdateOrderInfo(data) {
return request({ return request({
@@ -9,6 +10,7 @@ export function saveOrUpdateOrderInfo(data) {
data data
}) })
} }
//人核转线上支付判断是否可进行支付操作 //人核转线上支付判断是否可进行支付操作
export function payFlag(data) { export function payFlag(data) {
return request({ return request({
@@ -17,6 +19,7 @@ export function payFlag(data) {
data data
}) })
} }
// 订单列表 // 订单列表
export function orderList(data) { export function orderList(data) {
return request({ return request({
@@ -25,6 +28,7 @@ export function orderList(data) {
data data
}) })
} }
// 订单删除 // 订单删除
export function deleteOrderInfo(data) { export function deleteOrderInfo(data) {
return request({ return request({
@@ -60,6 +64,7 @@ export function getOrderDetail(data) {
data data
}) })
} }
export function getOrderDetail1(data) { export function getOrderDetail1(data) {
return request({ return request({
url: getUrl('/sale/order/orderDetail', 1), url: getUrl('/sale/order/orderDetail', 1),
@@ -67,6 +72,7 @@ export function getOrderDetail1(data) {
data data
}) })
} }
// 获取验证码 // 获取验证码
export function getAuthCode(data) { export function getAuthCode(data) {
return request({ return request({
@@ -75,6 +81,7 @@ export function getAuthCode(data) {
data data
}) })
} }
// 验证验证码 // 验证验证码
export function autchCodeCheck(data) { export function autchCodeCheck(data) {
return request({ return request({
@@ -83,6 +90,7 @@ export function autchCodeCheck(data) {
data data
}) })
} }
// 上传图片 // 上传图片
export function uploadImg(data) { export function uploadImg(data) {
return request1({ return request1({
@@ -91,6 +99,7 @@ export function uploadImg(data) {
data data
}) })
} }
/* /*
// 人脸识别 // 人脸识别
export function recognition(data) { export function recognition(data) {
@@ -281,6 +290,7 @@ export function saveOrderActiveType(data) {
data data
}) })
} }
// 移动端活动列表 // 移动端活动列表
export function getActivityList(data) { export function getActivityList(data) {
return request({ return request({
@@ -298,4 +308,13 @@ export function IDCardOCR(data) {
method: 'post', method: 'post',
data data
}) })
}
// 获取柳州分红万能投连型产品编码集合
export function getUniversalCodeLst(data) {
return request({
url: getUrl('/sale/product/getUniversalCodeLst', 1),
method: 'post',
data
})
} }

View File

@@ -5,50 +5,50 @@
<div class='m20 question-option'> <div class='m20 question-option'>
<span class='question'>1.请问投保时投保单/电子投保确认单上是您和被保险人(或被保险人的监护人)的亲笔签名吗?</span> <span class='question'>1.请问投保时投保单/电子投保确认单上是您和被保险人(或被保险人的监护人)的亲笔签名吗?</span>
<van-radio-group class='mt10' v-model='radio1' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio1' direction='horizontal' :disabled='isSign'>
<van-radio :name=1></van-radio> <van-radio name='1'></van-radio>
<van-radio :name=0></van-radio> <van-radio name='0'></van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option'> <div class='m20 question-option'>
<span class='question'>2.您对保险单的保险期间保多久保险金额保多少保险费交多少交费方式交多久是否了解</span> <span class='question'>2.您对保险单的保险期间保多久保险金额保多少保险费交多少交费方式交多久是否了解</span>
<van-radio-group class='mt10' v-model='radio2' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio2' direction='horizontal' :disabled='isSign'>
<van-radio :name=1>了解</van-radio> <van-radio name='1'>了解</van-radio>
<van-radio :name=0>不清楚</van-radio> <van-radio name='0'>不清楚</van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option'> <div class='m20 question-option'>
<span class='question'>3.您对保险单的保险责任保什么和责任免除什么情况是不赔的是否了解</span> <span class='question'>3.您对保险单的保险责任保什么和责任免除什么情况是不赔的是否了解</span>
<van-radio-group class='mt10' v-model='radio3' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio3' direction='horizontal' :disabled='isSign'>
<van-radio :name=1>了解</van-radio> <van-radio name='1'>了解</van-radio>
<van-radio :name=0>不清楚</van-radio> <van-radio name='0'>不清楚</van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option'> <div class='m20 question-option'>
<span class='question'>4.业务人员在销售过程中是否存在向您返还佣金或其他诱导投保的行为</span> <span class='question'>4.业务人员在销售过程中是否存在向您返还佣金或其他诱导投保的行为</span>
<van-radio-group class='mt10' v-model='radio4' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio4' direction='horizontal' :disabled='isSign'>
<van-radio :name=0></van-radio> <van-radio name='0'></van-radio>
<van-radio :name=1></van-radio> <van-radio name='1'></van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option'> <div class='m20 question-option'>
<span class='question'>5.从签收保险单次日起有10-15天的犹豫期犹豫期内申请撤销保险单可退还所交保险费您是否了解</span> <span class='question'>5.从签收保险单次日起有10-15天的犹豫期犹豫期内申请撤销保险单可退还所交保险费您是否了解</span>
<van-radio-group class='mt10' v-model='radio5' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio5' direction='horizontal' :disabled='isSign'>
<van-radio :name=1>了解</van-radio> <van-radio name='1'>了解</van-radio>
<van-radio :name=0>不清楚</van-radio> <van-radio name='0'>不清楚</van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option'> <div class='m20 question-option'>
<span class='question'>6.犹豫期后退保可能会有一定损失保险单的现金价值就是退保金额您是否了解</span> <span class='question'>6.犹豫期后退保可能会有一定损失保险单的现金价值就是退保金额您是否了解</span>
<van-radio-group class='mt10' v-model='radio6' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio6' direction='horizontal' :disabled='isSign'>
<van-radio :name=1></van-radio> <van-radio name='1'></van-radio>
<van-radio :name=0></van-radio> <van-radio name='0'></van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option'> <div class='m20 question-option'>
<span class='question'>7.投保时故意未履行如实告知义务将面临拒赔的风险并不退还保险费请问您是否已如实告知健康状况既往病史和投保信息等情况</span> <span class='question'>7.投保时故意未履行如实告知义务将面临拒赔的风险并不退还保险费请问您是否已如实告知健康状况既往病史和投保信息等情况</span>
<van-radio-group class='mt10' v-model='radio7' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio7' direction='horizontal' :disabled='isSign'>
<van-radio :name=1></van-radio> <van-radio name='1'></van-radio>
<van-radio :name=0></van-radio> <van-radio name='0'></van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
@@ -61,22 +61,22 @@
请问您是否了解 请问您是否了解
</span> </span>
<van-radio-group class='mt10' v-model='radio8' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio8' direction='horizontal' :disabled='isSign'>
<van-radio :name=1>了解</van-radio> <van-radio name='1'>了解</van-radio>
<van-radio :name=0>不清楚</van-radio> <van-radio name='0'>不清楚</van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option' v-if='flag'> <div class='m20 question-option' v-if='flag'>
<span class='question'>9.业务人员是否向您承诺或保证过分红收益/超过最低保证利率的收益/投资回报</span> <span class='question'>9.业务人员是否向您承诺或保证过分红收益/超过最低保证利率的收益/投资回报</span>
<van-radio-group class='mt10' v-model='radio9' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio9' direction='horizontal' :disabled='isSign'>
<van-radio :name=0></van-radio> <van-radio name='0'></van-radio>
<van-radio :name=1></van-radio> <van-radio name='1'></van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
<div class='m20 question-option' v-if='flag'> <div class='m20 question-option' v-if='flag'>
<span class='question'>10.您投保的是一款保险产品不能等同于银行的存款和理财产品您是否了解</span> <span class='question'>10.您投保的是一款保险产品不能等同于银行的存款和理财产品您是否了解</span>
<van-radio-group class='mt10' v-model='radio10' direction='horizontal' :disabled='isSign'> <van-radio-group class='mt10' v-model='radio10' direction='horizontal' :disabled='isSign'>
<van-radio :name=1>了解</van-radio> <van-radio name='1'>了解</van-radio>
<van-radio :name=0>不清楚</van-radio> <van-radio name='0'>不清楚</van-radio>
</van-radio-group> </van-radio-group>
</div> </div>
@@ -106,13 +106,13 @@
<div class='bg-white bottom-btn'> <div class='bg-white bottom-btn'>
<div class='p15 pl40 flex align-items-c'> <div class='p15 pl40 flex align-items-c'>
<span class='mr10'>本人签名 :</span> <span class='mr10'>本人签名 :</span>
<div> <div v-if="signVal == '0' || signVal == '2'">
<van-button type='danger' size='small' @click="sign('0')" v-no-more-click='1000'> <van-button type='danger' size='small' @click='sign()' v-no-more-click='1000'>
{{ appntSign.documentStatus == '2' ? '签名' : '已签名' }} {{ appntSign.documentStatus == '2' ? '签名' : '已签名' }}
</van-button> </van-button>
</div> </div>
</div> </div>
<van-button type='danger' size='large' :disabled='!isSign' v-no-more-click='1000'>完成</van-button> <van-button type='danger' size='large' :disabled='isDisabledComplite' v-no-more-click='1000'>完成</van-button>
</div> </div>
</div> </div>
</template> </template>
@@ -120,6 +120,7 @@
<script> <script>
import { RadioGroup, Radio } from 'vant' import { RadioGroup, Radio } from 'vant'
import utils from '@/assets/js/utils/date-utils' import utils from '@/assets/js/utils/date-utils'
import { saveInformation, getOrderDetail, getUniversalCodeLst } from '@/api/ebiz/sale/sale'
export default { export default {
name: 'InsuranceRiskReminder', name: 'InsuranceRiskReminder',
@@ -141,44 +142,393 @@ export default {
radio8: '', // 第8题的选中项 radio8: '', // 第8题的选中项
radio9: '', // 第9题的选中项 radio9: '', // 第9题的选中项
radio10: '', // 第10题的选中项 radio10: '', // 第10题的选中项
signVal: '', // 投保人还是被保险人信息
saleInsuredInfo: {},// 存储local带来的投保人信息对象 saleInsuredInfo: {},// 存储local带来的投保人信息对象
productCode: localStorage.productCode, // 从缓存中获取险种产品编号 productCode: localStorage.productCode, // 从缓存中获取险种产品编号
flag: '', // 根据险种编号判断页面是否展示8-10题的标识因为选择投保'分红/万能/投资连结保险'页面需要展示1-10题, flag: '', // 根据险种编号判断页面是否展示8-10题的标识因为选择投保'分红/万能/投资连结保险'页面需要展示1-10题,
appntSign: {},// 投保人签名信息
idType: '', // 证件类型 idType: '', // 证件类型
idNo: '', // 证件号码 idNo: '', // 证件号码
orderNo: localStorage.lastOrderNo, // 从缓存中获取投保单号 orderNo: localStorage.lastOrderNo, // 从缓存中获取投保单号
fillDate: utils.formatDate(new Date(), 'yyyy年MM月dd日'), // 获取当前日期 fillDate: utils.formatDate(new Date(), 'yyyy年MM月dd日'), // 获取当前日期
isSign: false // 是否签名了 appntSign: {}, // 投保人签名信息
tipsPolicyUrl: '',
isSign: false, // 是否签名了
base64: '', // sign加密码
isDisabledComplite: true // 是否可以点击
} }
}, },
created() { created() {
if (!this.isWeixin) {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
}
// 调用初始化方法 // 调用初始化方法
this.init() this.init()
}, },
methods: { methods: {
/**
* @Description: 页面左上角原生方法
* @author:zhangqi
* @Date:2021-10-12
*/
appCallBack(data) {
if (data.trigger == 'left_button_click') {
return this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '退出流程可能会丢失部分数据,是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
title: '电子投保单列表',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/list`
},
routerInfo: {
path: `/sale/list`,
type: '1'
}
})
})
.catch(() => {
return
})
}
},
/** /**
* @Description: 初始化方法 * @Description: 初始化方法
* @author:zhangqi * @author:zhangqi
* @Date:2021-10-12 * @Date:2021-10-12
*/ */
init() { init() {
// 获取投保人的缓存数据,并赋值给变量 // 从缓存中获取数据,并赋值给变量
this.signVal = window.localStorage.getItem('sign-val')
// 从缓存中获取投保人的数据,并赋值给变量
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')) this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
// 获取证件类型 // 获取证件类型
this.idType = this.saleInsuredInfo.idType this.idType = this.saleInsuredInfo.idType
// 获取证件号码 // 获取证件号码
this.idNo = this.saleInsuredInfo.idNo this.idNo = this.saleInsuredInfo.idNo
// 判断当前的险种类型编号, // 调用获取柳州分红万能投连型产品编码集合的方法
// 如果选择投保'非分红/万能/投资连结保险'只需填写1-7题页面仅展示1-7题 this.getUniversalCodeLstFunc()
// 如果选择投保'分红/万能/投资连结保险'需填写1-10题,页面展示1-10题 // 调用查询详情数据的方法
// GFRS_M0015 与 GFRS_M0017 是两款万能险的险种产品编号 this.getOrderDetail()
if (this.productCode === 'GFRS_M0015' || this.productCode === 'GFRS_M0017') { },
// 设置页面展示1-10题
this.flag = true /**
* @Description: 获取柳州分红万能投连型产品编码集合的方法
* @author:zhangqi
* @Date:2021-10-14
*/
getUniversalCodeLstFunc() {
// 重置清空根据险种编号判断页面是否展示8-10题的标识的变量防止数据缓存
this.flag = ''
getUniversalCodeLst({ 'platform': 'app' }).then(res => {
if (res.result == '0') {
// 循环数据,判断数据集合中是否存在'分红/万能/投资连结保险'等产品的险种编号
// 如果选择投保'非分红/万能/投资连结保险'只需填写1-7题页面仅展示1-7题
// 如果选择投保'分红/万能/投资连结保险'需填写1-10题,页面展示1-10题
// GFRS_M0015 与 GFRS_M0017 是两款万能险的险种产品编号
this.flag = res.content.some(item => {
return item === this.productCode
})
}
})
},
/**
* @Description: 查询详情数据的方法
* @author:zhangqi
* @Date:2021-10-13
*/
getOrderDetail() {
let that = this
let data = {
orderNo: window.localStorage.getItem('orderNo')
}
return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => {
if (res.result == '0') {
res.orderDTO.ebizSignDTOS.map(item => {
if (item.documentCode == '11') {
if (item.signType == '0' || item.signType == '2') {
that.appntSign = item
that.tipsPolicyUrl = item.policyUrl
}
}
})
if (that.isWeixin) {
if (res.orderDTO.ebizSignDTOS.length > 1) {
if (that.appntSign.documentStatus == '3') {
that.isDisabledComplite = false
}
}
}
resolve('success')
}
})
})
},
/**
* @Description: 点击‘签名’时,触发的方法
* @author:zhangqi
* @Date:2021-10-12
*/
sign(val) {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
// 判断当有题目未作答时,要进行提示
if (this.radio1 === '') {
this.$toast('第1题未作答')
return
} else if (this.radio2 === '') {
this.$toast('第2题未作答')
return
} else if (this.radio3 === '') {
this.$toast('第3题未作答')
return
} else if (this.radio4 === '') {
this.$toast('第4题未作答')
return
} else if (this.radio5 === '') {
this.$toast('第5题未作答')
return
} else if (this.radio6 === '') {
this.$toast('第6题未作答')
return
} else if (this.radio7 === '') {
this.$toast('第7题未作答')
return
} else if (this.flag) {
// 当前的险种产品类型如果是'分红/万能/投资连结保险'则需要对8-10题进行校验
if (this.radio8 === '') {
this.$toast('第8题未作答')
return
} else if (this.radio9 === '') {
this.$toast('第9题未作答')
return
} else if (this.radio10 === '') {
this.$toast('第10题未作答')
return
}
}
// 判断已作答的题目选择的答案是否是正确选项,如果不是正确选项要进行提示
if (this.radio1 !== '1') {
this.$toast('您的第1题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio2 !== '1') {
this.$toast('您的第2题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio3 !== '1') {
this.$toast('您的第3题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio4 !== '1') {
this.$toast('您的第4题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio5 !== '1') {
this.$toast('您的第5题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio6 !== '1') {
this.$toast('您的第6题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio7 !== '1') {
this.$toast('您的第7题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.flag) {
// 当前的险种产品类型如果是'分红/万能/投资连结保险'则需要对8-10题进行校验
if (this.radio8 !== '1') {
this.$toast('您的第8题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio9 !== '1') {
this.$toast('您的第9题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
} else if (this.radio10 !== '1') {
this.$toast('您的第10题回答不符合投保要求请您了解相关投保风险后再进行投保')
return
}
}
if (this.isWeixin) {
this.toAirSign('0', '签字日期', '-150', '2')
} else { } else {
// 设置页面不需要展示1-10题仅展示1-7题即可 EWebBridge.webCallAppInJs('ca_sign', {
this.flag = false number: that.saleInsuredInfo.idNo, // 身份证号码
name: that.saleInsuredInfo.name, // 姓名
type: that.saleInsuredInfo.idType, // 证件类型
keyword: '签字日期',
pageNo: '1',
index: '1',
offset: '-150',
pos: '3',
signatureWidth: this.$utils.signParams().signatureWidth,
signatureHeight: this.$utils.signParams().signatureHeight
}).then(data => {
this.$toast.clear()
if (JSON.parse(data).state == '1') {
// 将签名数据进行加密,并赋值给变量
that.base64 = decodeURI(JSON.parse(data).sign)
// 设置签名状态
that.appntSign.documentStatus = '3'
that.isSign = true
that.isDisabledComplite = false
}
})
}
},
toAirSign(status, keyword, offset, originStatus) {
localStorage.setItem(
'signInfo',
JSON.stringify({
originStatus: originStatus,
idNo: this.saleInsuredInfo.idNo,
name: this.saleInsuredInfo.name,
type: this.saleInsuredInfo.idType,
keyword: keyword,
status: status,
offset: offset,
originUrl: location.href
})
)
window.location.href = this.$mainUrl + '/sign/index.html'
},
/**
* @Description: 点击页面底部‘完成’按钮时,触发的方法
* @author:zhangqi
* @Date:2021-10-13
*/
goNext() {
if (this.isWeixin) {
console.log('````````````````````')
console.log('进入微信')
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击ase
loadingType: 'spinner',
message: '加载中……'
})
let that = this
if (that.signVal == '0' || that.signVal == '2') {
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
},
ebizSignDTOS: [
{
signOrRead: 'tip',
signId: that.appntSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
documentCode: that.appntSign.documentCode,
documentStatus: '3',
documentType: that.appntSign.documentType,
signType: that.signVal,
baseEncryp: that.base64,
tipsPolicyUrl: that.tipsPolicyUrl
}
]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
sessionStorage.twowxSigned = false
let doubleRecordFlag = localStorage.doubleRecordFlag
let routeUrl = '/sale/signatureOfElectronic'
if (doubleRecordFlag == '1') {
// 跳转双录签署文件
routeUrl = '/sale/avoidDutyTip'
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#' + routeUrl
},
routerInfo: {
path: routeUrl
}
})
} else {
that.$toast(res.resultMessage)
}
})
}
} else {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
if (that.signVal == '0' || that.signVal == '2') {
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
},
ebizSignDTOS: [
{
signOrRead: 'tip',
signId: that.appntSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
documentCode: that.appntSign.documentCode,
documentStatus: '3',
documentType: that.appntSign.documentType,
signType: that.signVal,
baseEncryp: that.base64,
tipsPolicyUrl: that.tipsPolicyUrl
}
]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
sessionStorage.twowxSigned = false
let doubleRecordFlag = localStorage.doubleRecordFlag
let routeUrl = '/sale/signatureOfElectronic'
if (doubleRecordFlag == '1') {
// 跳转双录签署文件
routeUrl = '/sale/avoidDutyTip'
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#' + routeUrl,
forbidSwipeBack: '1'
},
routerInfo: {
path: routeUrl
}
})
} else {
that.$toast(res.resultMessage)
}
})
}
} }
} }
} }

View File

@@ -1,24 +1,29 @@
<template> <template>
<div class="insuranceInformation-container pb50 redRadioCheckbox"> <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> <van-notice-bar :scrollable='false' v-if='!Time' class='notice'>
<iframe :src="src + pdfUrl" class="iframe"></iframe> {{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}
</van-notice-bar>
<iframe :src='src + pdfUrl' class='iframe'></iframe>
<van-radio-group v-model="radio" class="pb10 pt20 pl30 fs14"> <van-radio-group v-model='radio' class='pb10 pt20 pl30 fs14'>
<van-radio name="1" @click="click"> <van-radio name='1' @click='click'>
本人确认已阅读 本人确认已阅读
<span>人身保险投保提示书</span> <span>人身保险投保提示书</span>
</van-radio> </van-radio>
</van-radio-group> </van-radio-group>
<div class="pt30 pl30 flex align-items-c"> <div class='pt30 pl30 flex align-items-c'>
<span class="mr10">投保人签名 :</span> <span class='mr10'>投保人签名 :</span>
<div v-if="signVal == '0' || signVal == '2'"> <div v-if="signVal == '0' || signVal == '2'">
<van-button type="danger" size="small" :disabled="signVal == '1' ? true : isDisable" @click="sign('0')" v-no-more-click="1000">{{ <van-button type='danger' size='small' :disabled="signVal == '1' ? true : isDisable" @click="sign('0')"
appntSign.documentStatus == '2' ? '签名' : '已签名' v-no-more-click='1000'>{{
}}</van-button> appntSign.documentStatus == '2' ? '签名' : '已签名'
}}
</van-button>
</div> </div>
</div> </div>
<div class="bg-white bottom-btn"> <div class='bg-white bottom-btn'>
<van-button type="danger" size="large" :disabled="isDisabledComplite" @click="goNext" v-no-more-click="1000">下一步</van-button> <van-button type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>下一步
</van-button>
</div> </div>
</div> </div>
</template> </template>
@@ -66,7 +71,8 @@ export default {
detailJump: '', detailJump: '',
pdfUrl: '', pdfUrl: '',
src: location.origin + '/pdfjs/web/viewer.html?file=', src: location.origin + '/pdfjs/web/viewer.html?file=',
tipsPolicyUrl: '' tipsPolicyUrl: '',
flagLiuZhou: '' // 当前代理人是否属于柳州代理人的标志,此变量的值为'true'或'false'
} }
}, },
components: { components: {
@@ -211,6 +217,14 @@ export default {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => { getOrderDetail(data).then(res => {
if (res.result == '0') { if (res.result == '0') {
// 截取代理人机构号的前六位,用于去判断是否属于柳州代理人
let str = res.orderDTO.recmdDTO.managerOrg.substr(0, 6)
// 如果属于
if (str === '864502') {
that.flagLiuZhou = true
} else {
that.flagLiuZhou = false
}
res.orderDTO.ebizSignDTOS.map(item => { res.orderDTO.ebizSignDTOS.map(item => {
if (item.documentCode == '4') { if (item.documentCode == '4') {
if (item.signType == '0' || item.signType == '2') { if (item.signType == '0' || item.signType == '2') {
@@ -449,11 +463,16 @@ export default {
// axios.get(url).then(res => { // axios.get(url).then(res => {
// console.log(res) // console.log(res)
// }) // })
let doubleRecordFlag = localStorage.doubleRecordFlag let routeUrl = ''
let routeUrl = '/sale/signatureOfElectronic' if (this.flagLiuZhou) {
if (doubleRecordFlag == '1') { routeUrl = '/sale/InsuranceRiskReminder'
// 跳转双录签署文件 } else {
routeUrl = '/sale/avoidDutyTip' let doubleRecordFlag = localStorage.doubleRecordFlag
routeUrl = '/sale/signatureOfElectronic'
if (doubleRecordFlag == '1') {
// 跳转双录签署文件
routeUrl = '/sale/avoidDutyTip'
}
} }
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
@@ -514,11 +533,16 @@ export default {
// axios.get(url).then(res => { // axios.get(url).then(res => {
// console.log(res) // console.log(res)
// }) // })
let doubleRecordFlag = localStorage.doubleRecordFlag let routeUrl = ''
let routeUrl = '/sale/signatureOfElectronic' if (this.flagLiuZhou) {
if (doubleRecordFlag == '1') { routeUrl = '/sale/InsuranceRiskReminder'
// 跳转双录签署文件 } else {
routeUrl = '/sale/avoidDutyTip' let doubleRecordFlag = localStorage.doubleRecordFlag
routeUrl = '/sale/signatureOfElectronic'
if (doubleRecordFlag == '1') {
// 跳转双录签署文件
routeUrl = '/sale/avoidDutyTip'
}
} }
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
@@ -587,17 +611,19 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang='scss' scoped>
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.notice { .notice {
width: 100%; width: 100%;
position: fixed; position: fixed;
top: 0; top: 0;
z-index: 20; z-index: 20;
} }
.iframe { .iframe {
width: 100vw; width: 100vw;
height: 70vh; height: 70vh;

View File

@@ -1,10 +1,10 @@
<template> <template>
<div class="signature-container"> <div class='signature-container'>
<div class="signature-content pb40"> <div class='signature-content pb40'>
<div v-if="!isWeixin"> <div v-if='!isWeixin'>
<index-bar></index-bar> <index-bar></index-bar>
</div> </div>
<div v-if="isWeixin" class="bg-white mt10 p20 fs14 tips"> <div v-if='isWeixin' class='bg-white mt10 p20 fs14 tips'>
<p> <p>
尊敬的 尊敬的
<span>{{ tipsName }}</span <span>{{ tipsName }}</span
@@ -12,235 +12,258 @@
</p> </p>
<p>该保单由国富人寿保险股份有限公司进行承保具体确认信息如下</p> <p>该保单由国富人寿保险股份有限公司进行承保具体确认信息如下</p>
</div> </div>
<van-cell-group class="mt10"> <van-cell-group class='mt10'>
<van-cell title="销售人员工号" :value="recmd.agentCode" /> <van-cell title='销售人员工号' :value='recmd.agentCode' />
<van-cell title="销售人员姓名" :value="recmd.name" /> <van-cell title='销售人员姓名' :value='recmd.name' />
<van-cell title="投保单号" :value="orderInfo.orderNo" @click="toTest"></van-cell> <van-cell title='投保单号' :value='orderInfo.orderNo' @click='toTest'></van-cell>
<van-cell title="投保日期" :value="date" /> <van-cell title='投保日期' :value='date' />
<van-cell title="保费合计(元)" :value="orderInfo.orderAmount == undefined ? '' : orderInfo.orderAmount | moneyFormat" /> <van-cell title='保费合计(元)'
:value="orderInfo.orderAmount == undefined ? '' : orderInfo.orderAmount | moneyFormat" />
</van-cell-group> </van-cell-group>
<div v-if="!isWeixin"> <div v-if='!isWeixin'>
<!-- 不再微信 --> <!-- 不再微信 -->
<van-collapse v-model="activeNames" class="mt10"> <van-collapse v-model='activeNames' class='mt10'>
<van-collapse-item name="1"> <van-collapse-item name='1'>
<div slot="title"> <div slot='title'>
投保人 投保人
<span class="ml20">{{ appnt.name }}</span> <span class='ml20'>{{ appnt.name }}</span>
</div> </div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p> <p class='mb20'>以下内容需要您按照顺序阅读并签字确认:</p>
<div v-if="changeCard"> <div v-if='changeCard'>
<p>需阅读</p> <p>需阅读</p>
<p class="mb20"> <p class='mb20'>
<span class="text">{{ appntSign.documentName }}</span> <span class='text'>{{ appntSign.documentName }}</span>
<img :src="src" v-if="appntSign.documentStatus == '1'" /> <img :src='src' v-if="appntSign.documentStatus == '1'" />
</p> </p>
</div> </div>
<div v-else> <div v-else>
<div v-for="(item, index) in appntSign" :key="index"> <div v-for='(item, index) in appntSign' :key='index'>
<p>{{ item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9' ? '需阅读' : '需签署' }}</p> <p>{{ item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9' ? '需阅读' : '需签署'
<p class="mb20"> }}</p>
<span class="text">{{ item.documentName }}</span> <p class='mb20'>
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '1'" /> <span class='text'>{{ item.documentName }}</span>
<img :src="src" v-if="!(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '3'" /> <img :src='src'
v-if="(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '1'" />
<img :src='src'
v-if="!(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '3'" />
</p> </p>
</div> </div>
</div> </div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p> <p class='start' v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20"> <div v-if='!isInvalid' class='flex justify-content-a mt20'>
<van-button <van-button
v-if="isShow" v-if='isShow'
type="danger" type='danger'
size="normal" size='normal'
class="w150" class='w150'
plain plain
v-no-more-click="1000" v-no-more-click='1000'
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
@click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')" @click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>分享</van-button >分享
</van-button
> >
<van-button <van-button
type="danger" type='danger'
size="normal" size='normal'
class="w150" class='w150'
plain plain
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000" v-no-more-click='1000'
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button >开始
</van-button
> >
</div> </div>
<div class="text" v-else>操作时间已失效请联系销售人员</div> <div class='text' v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item> </van-collapse-item>
</van-collapse> </van-collapse>
<div v-if="relationToAppnt != '1' && !changeCard" class="mt10"> <div v-if="relationToAppnt != '1' && !changeCard" class='mt10'>
<van-collapse v-model="activeNames" v-for="(item, index) in insured" :key="index"> <van-collapse v-model='activeNames' v-for='(item, index) in insured' :key='index'>
<van-collapse-item :name="index + 2"> <van-collapse-item :name='index + 2'>
<div slot="title"> <div slot='title'>
被保险人 被保险人
<span class="ml20">{{ item.name }}</span> <span class='ml20'>{{ item.name }}</span>
</div> </div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p> <p class='mb20'>以下内容需要您按照顺序阅读并签字确认:</p>
<div v-for="(item, index) in insuredSign" :key="index"> <div v-for='(item, index) in insuredSign' :key='index'>
<p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p> <p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p>
<p class="mb20"> <p class='mb20'>
<span class="text">{{ item.documentName }}</span> <span class='text'>{{ item.documentName }}</span>
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '1'" /> <img :src='src'
<img :src="src" v-if="!(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '3'" /> 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> </p>
</div> </div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p> <p class='start' v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20"> <div v-if='!isInvalid' class='flex justify-content-a mt20'>
<van-button <van-button
v-if="isShow" v-if='isShow'
type="danger" type='danger'
size="normal" size='normal'
class="w150" class='w150'
:disabled="insuredSignStatus == '3'" :disabled="insuredSignStatus == '3'"
@click="share('1')" @click="share('1')"
plain plain
v-no-more-click="1000" v-no-more-click='1000'
>分享</van-button >分享
</van-button
> >
<van-button type="danger" size="normal" plain class="w150" :disabled="insuredSignStatus == '3'" @click="start_ocr('1')" v-no-more-click="1000" <van-button type='danger' size='normal' plain class='w150' :disabled="insuredSignStatus == '3'"
>开始</van-button @click="start_ocr('1')" v-no-more-click='1000'
>开始
</van-button
> >
</div> </div>
<div class="text" v-else>操作时间已失效请联系销售人员</div> <div class='text' v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item> </van-collapse-item>
</van-collapse> </van-collapse>
</div> </div>
</div> </div>
<div v-else> <div v-else>
<!-- 在微信 --> <!-- 在微信 -->
<div v-if="shareCode != '1'" class="mt10"> <div v-if="shareCode != '1'" class='mt10'>
<van-collapse v-model="activeNames"> <van-collapse v-model='activeNames'>
<van-collapse-item name="1"> <van-collapse-item name='1'>
<div slot="title"> <div slot='title'>
投保人 投保人
<span class="ml20">{{ appnt.name }}</span> <span class='ml20'>{{ appnt.name }}</span>
</div> </div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p> <p class='mb20'>以下内容需要您按照顺序阅读并签字确认:</p>
<div v-if="changeCard"> <div v-if='changeCard'>
<p>需阅读</p> <p>需阅读</p>
<p class="mb20"> <p class='mb20'>
<span class="text">{{ appntSign.documentName }}</span> <span class='text'>{{ appntSign.documentName }}</span>
<img :src="src" v-if="appntSign.documentStatus == '1'" /> <img :src='src' v-if="appntSign.documentStatus == '1'" />
</p> </p>
</div> </div>
<div v-else> <div v-else>
<div v-for="(item, index) in appntSign" :key="index"> <div v-for='(item, index) in appntSign' :key='index'>
<p>{{ item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9'? '需阅读' : '需签署' }}</p> <p>{{ item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9' ? '需阅读' : '需签署'
<p class="mb20"> }}</p>
<span class="text">{{ item.documentName }}</span> <p class='mb20'>
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '1'" /> <span class='text'>{{ item.documentName }}</span>
<img :src="src" v-if="!(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '3'" /> <img :src='src'
v-if="(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '1'" />
<img :src='src'
v-if="!(item.documentCode == '1' || item.documentCode == '8' || item.documentCode == '9') && item.documentStatus == '3'" />
</p> </p>
</div> </div>
</div> </div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p> <p class='start' v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20"> <div v-if='!isInvalid' class='flex justify-content-a mt20'>
<van-button <van-button
type="danger" type='danger'
size="normal" size='normal'
style="width: 157px" style='width: 157px'
plain plain
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000" v-no-more-click='1000'
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button >开始
</van-button
> >
</div> </div>
<div class="text" v-else>操作时间已失效请联系销售人员</div> <div class='text' v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item> </van-collapse-item>
</van-collapse> </van-collapse>
</div> </div>
<div v-else class="mt10"> <div v-else class='mt10'>
<van-collapse v-model="activeNames" v-for="(item, index) in insured" :key="index"> <van-collapse v-model='activeNames' v-for='(item, index) in insured' :key='index'>
<van-collapse-item :name="index + 2"> <van-collapse-item :name='index + 2'>
<div slot="title"> <div slot='title'>
被保险人 被保险人
<span class="ml20">{{ item.name }}</span> <span class='ml20'>{{ item.name }}</span>
</div> </div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p> <p class='mb20'>以下内容需要您按照顺序阅读并签字确认:</p>
<div v-for="(item, index) in insuredSign" :key="index"> <div v-for='(item, index) in insuredSign' :key='index'>
<p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p> <p>{{ item.documentCode == '1' || item.documentCode == '8' ? '需阅读' : '需签署' }}</p>
<p class="mb20"> <p class='mb20'>
<span class="text">{{ item.documentName }}</span> <span class='text'>{{ item.documentName }}</span>
<img :src="src" v-if="(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '1'" /> <img :src='src'
<img :src="src" v-if="!(item.documentCode == '1' || item.documentCode == '8') && item.documentStatus == '3'" /> 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> </p>
</div> </div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p> <p class='start' v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20"> <div v-if='!isInvalid' class='flex justify-content-a mt20'>
<van-button <van-button
type="danger" type='danger'
size="normal" size='normal'
plain plain
style="width: 157px" style='width: 157px'
:disabled="insuredSignStatus == '3'" :disabled="insuredSignStatus == '3'"
@click="start_ocr('1')" @click="start_ocr('1')"
v-no-more-click="1000" v-no-more-click='1000'
>开始</van-button >开始
</van-button
> >
</div> </div>
<div class="text" v-else>操作时间已失效请联系销售人员</div> <div class='text' v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item> </van-collapse-item>
</van-collapse> </van-collapse>
</div> </div>
</div> </div>
</div> </div>
<div v-if="!isWeixin"> <div v-if='!isWeixin'>
<div v-if="changeCard"> <div v-if='changeCard'>
<div class="bottom-btn bg-white" v-if="appntSign.documentStatus == '1'"> <div class='bottom-btn bg-white' v-if="appntSign.documentStatus == '1'">
<van-button <van-button
type="danger" type='danger'
v-if="relationToAppnt == '1' ? true : appntSign.documentStatus == '1' ? true : false" v-if="relationToAppnt == '1' ? true : appntSign.documentStatus == '1' ? true : false"
size="large" size='large'
@click="rePayMent" @click='rePayMent'
v-no-more-click="1000" v-no-more-click='1000'
>支付</van-button >支付
</van-button
> >
</div> </div>
</div> </div>
<div v-else> <div v-else>
<div class="bottom-btn bg-white" v-if="appntSignStatus == '3'"> <div class='bottom-btn bg-white' v-if="appntSignStatus == '3'">
<van-button <van-button
type="danger" type='danger'
v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false" v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false"
size="large" size='large'
@click="next" @click='next'
v-no-more-click="1000" v-no-more-click='1000'
>提交</van-button >提交
</van-button
> >
</div> </div>
</div> </div>
</div> </div>
<van-popup v-model="videoShow" position="bottom" style="height: 100vh; background: #666"> <van-popup v-model='videoShow' position='bottom' style='height: 100vh; background: #666'>
<!-- <video controls style="width: 100%; max-height: calc(100vh - 60px)" src="/app/video/rlsb.mp4"></video> --> <!-- <video controls style="width: 100%; max-height: calc(100vh - 60px)" src="/app/video/rlsb.mp4"></video> -->
<div class="" v-if="videoShow" style="height: calc(100vh - 60px); display: flex; align-items: center; flex-flow: column; justify-content: center"> <div class='' v-if='videoShow'
style='height: calc(100vh - 60px); display: flex; align-items: center; flex-flow: column; justify-content: center'>
<!-- <van-notice-bar :scrollable="false" class="notice" style="width: 100%">为维护您的合法权益请您务必观看防范销售误导视频</van-notice-bar> --> <!-- <van-notice-bar :scrollable="false" class="notice" style="width: 100%">为维护您的合法权益请您务必观看防范销售误导视频</van-notice-bar> -->
<video <video
controls controls
style="width: 100%; max-height: calc(100vh - 60px)" style='width: 100%; max-height: calc(100vh - 60px)'
:src="'https://gf-dev-202005-1254138932.cos.ap-shanghai-fsi.myqcloud.com/gfapp/pub01/2021/04/28/guofulive.MP4'" :src="'https://gf-dev-202005-1254138932.cos.ap-shanghai-fsi.myqcloud.com/gfapp/pub01/2021/04/28/guofulive.MP4'"
ref="vid" ref='vid'
@timeupdate="timeupdate" @timeupdate='timeupdate'
></video> ></video>
</div> </div>
<div class="bottom-btn bg-white"> <div class='bottom-btn bg-white'>
<van-button type="danger" size="large" @click="isVideoUrlClick()" v-no-more-click="1000">下一步</van-button> <van-button type='danger' size='large' @click='isVideoUrlClick()' v-no-more-click='1000'>下一步</van-button>
</div> </div>
</van-popup> </van-popup>
<!-- 短信验证 --> <!-- 短信验证 -->
<van-dialog v-model="show" title="提示" show-cancel-button @confirm="authConfirm(authCode)" @cancel="clearTimer"> <van-dialog v-model='show' title='提示' show-cancel-button @confirm='authConfirm(authCode)' @cancel='clearTimer'>
<p class="p10 fs14">为确保是您本人操作短信验证码已发送至您手机号{{ encyCustomerMobile }}请您输入验证码以完成后续投保操作</p> <p class='p10 fs14'>为确保是您本人操作短信验证码已发送至您手机号{{ encyCustomerMobile }}请您输入验证码以完成后续投保操作</p>
<van-cell-group class="flex align-items-c pr5 mb15"> <van-cell-group class='flex align-items-c pr5 mb15'>
<van-field maxlength="6" placeholder="请输入短信验证码" v-model="authCode" clearable label-width="0" /> <van-field maxlength='6' placeholder='请输入短信验证码' v-model='authCode' clearable label-width='0' />
<van-button type="danger" plain size="small" class="w160 p0" @click="getAuthCode" :disabled="codeDisabled" v-no-more-click="2000">{{ <van-button type='danger' plain size='small' class='w160 p0' @click='getAuthCode' :disabled='codeDisabled'
codeDisabled ? `${countDown}s后重新获取` : '获取验证码' v-no-more-click='2000'>{{
}}</van-button> codeDisabled ? `${countDown}s后重新获取` : '获取验证码'
}}
</van-button>
</van-cell-group> </van-cell-group>
</van-dialog> </van-dialog>
<!-- <UploadImageFile <!-- <UploadImageFile
@@ -373,7 +396,7 @@ export default {
}, },
fakeFaceAuth(expect) { fakeFaceAuth(expect) {
console.log('模拟调用人脸识别') console.log('模拟调用人脸识别')
return new Promise(function (resolve, reject) { return new Promise(function(resolve, reject) {
setTimeout(() => { setTimeout(() => {
console.log('模拟人脸识别完成') console.log('模拟人脸识别完成')
if (expect) { if (expect) {
@@ -434,7 +457,8 @@ export default {
confirmButtonColor: '#ee0a24', confirmButtonColor: '#ee0a24',
confirmButtonText: '确认' confirmButtonText: '确认'
}) })
.then(() => {}) .then(() => {
})
} else { } else {
this.isVideoNext = !this.isVideoNext this.isVideoNext = !this.isVideoNext
this.isVideoUrl == 'goUrl' ? this.goUrl() : this.insuredUrl() this.isVideoUrl == 'goUrl' ? this.goUrl() : this.insuredUrl()
@@ -1130,7 +1154,8 @@ export default {
// }) // })
// } // }
}, },
toTest() {}, toTest() {
},
// 微信分享 // 微信分享
share(code) { share(code) {
let shareName = '' let shareName = ''
@@ -1142,22 +1167,22 @@ export default {
console.log('`````````````测试安卓url`````````````````') console.log('`````````````测试安卓url`````````````````')
console.log( console.log(
location.origin + location.origin +
'/#/sale/signatureConfirmation?orderNo=' + '/#/sale/signatureConfirmation?orderNo=' +
localStorage.orderNo + localStorage.orderNo +
'&token=' + '&token=' +
localStorage.token + localStorage.token +
'&saleInsuredInfo=' + '&saleInsuredInfo=' +
this.$CacheUtils.getLocItem('saleInsuredInfo') + this.$CacheUtils.getLocItem('saleInsuredInfo') +
'&saleInsuredPersonInfo=' + '&saleInsuredPersonInfo=' +
this.$CacheUtils.getLocItem('saleInsuredPersonInfo') + this.$CacheUtils.getLocItem('saleInsuredPersonInfo') +
'&relationToAppnt=' + '&relationToAppnt=' +
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt + JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
'&shareCode=' + '&shareCode=' +
code + code +
'&signInvalid=' + '&signInvalid=' +
this.signInvalid + this.signInvalid +
'&productCode=' + '&productCode=' +
localStorage.productCode localStorage.productCode
) )
if (this.changeCard) { if (this.changeCard) {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
@@ -1345,7 +1370,7 @@ export default {
if (res.orderDTO && res.orderDTO.prtType) { if (res.orderDTO && res.orderDTO.prtType) {
localStorage.setItem('readingProtocolType', res.orderDTO.prtType) localStorage.setItem('readingProtocolType', res.orderDTO.prtType)
} }
let riskDTOLst = res.orderDTO.insuredDTOs[0].riskDTOLst[0]; let riskDTOLst = res.orderDTO.insuredDTOs[0].riskDTOLst[0]
// 判断是否为长期险 // 判断是否为长期险
if ((riskDTOLst.insuYearFlag == 'Y' && riskDTOLst.insuYear > 1) || riskDTOLst.insuYearFlag == 'A') { if ((riskDTOLst.insuYearFlag == 'Y' && riskDTOLst.insuYear > 1) || riskDTOLst.insuYearFlag == 'A') {
this.isInsuYearFlag = true this.isInsuYearFlag = true
@@ -1448,7 +1473,7 @@ export default {
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[0].riskName riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[0].riskName
} }
if (that.orderInfo && that.orderInfo.activeType) { if (that.orderInfo && that.orderInfo.activeType) {
that.$CacheUtils.setLocItem('activeType',that.orderInfo.activeType) that.$CacheUtils.setLocItem('activeType', that.orderInfo.activeType)
} }
localStorage.setItem('productCode', productCode) localStorage.setItem('productCode', productCode)
this.riskName = riskName this.riskName = riskName
@@ -1480,7 +1505,7 @@ export default {
}) })
if (!that.changeCard) { if (!that.changeCard) {
//将投保人数组排序 //将投保人数组排序
that.appntSign.sort(function (a, b) { that.appntSign.sort(function(a, b) {
return a.key - b.key return a.key - b.key
}) })
//获取投保和被保险人电子投保单签字状态 //获取投保和被保险人电子投保单签字状态
@@ -1511,7 +1536,7 @@ export default {
item.key = 2 item.key = 2
item.routePath = 'insuranceInformation' item.routePath = 'insuranceInformation'
} else if (item.documentCode == '2') { } else if (item.documentCode == '2') {
item.key = 8 item.key = 9
item.routePath = 'SignatureOfElectronic' item.routePath = 'SignatureOfElectronic'
} else if (item.documentCode == '3') { } else if (item.documentCode == '3') {
item.key = 4 item.key = 4
@@ -1520,10 +1545,10 @@ export default {
item.key = 5 item.key = 5
item.routePath = 'InsuranceTip' item.routePath = 'InsuranceTip'
} else if (item.documentCode == '6') { } else if (item.documentCode == '6') {
item.key = 6 item.key = 7
item.routePath = 'avoidDutyTip' item.routePath = 'avoidDutyTip'
} else if (item.documentCode == '7') { } else if (item.documentCode == '7') {
item.key = 7 item.key = 8
item.routePath = 'doubleRecordTip' item.routePath = 'doubleRecordTip'
} else if (item.documentCode == '8') { } else if (item.documentCode == '8') {
item.key = 1 item.key = 1
@@ -1531,6 +1556,9 @@ export default {
} else if (item.documentCode == '9') { } else if (item.documentCode == '9') {
item.key = 3 item.key = 3
item.routePath = 'shortPeriodProduct' item.routePath = 'shortPeriodProduct'
} else if (item.documentCode == '11') {
item.key = 6
item.routePath = 'InsuranceRiskReminder'
} }
}, },
getSignInvalid() { getSignInvalid() {
@@ -1749,17 +1777,21 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang='scss' scoped>
@import '@/assets/sass/variables.scss'; @import '@/assets/sass/variables.scss';
.text { .text {
color: #4a90e2; color: #4a90e2;
} }
.start { .start {
color: #4fc6b3; color: #4fc6b3;
} }
.tips { .tips {
line-height: 30px; line-height: 30px;
} }
.tips { .tips {
line-height: 30px; line-height: 30px;
} }