Compare commits

..

3 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
a1b4a15d69 签字确认页面增加订单号信息缺失,跳转订单系统重新获取 代码逻辑 2023-08-02 18:00:04 +08:00
liu.xiaofeng@ebiz-digits.com
378d944d23 获取订单详情接口增加异常提示 卡单流程的订单编辑功能本地存储orderNo信息 2023-08-02 15:13:27 +08:00
liu.xiaofeng@ebiz-digits.com
05d472e0cf 分享链接订单详情查询逻辑修改 2023-08-02 15:11:46 +08:00
7 changed files with 341 additions and 626 deletions

View File

@@ -329,6 +329,7 @@ export default {
let orderStatus = order.orderStatus
console.log(order.orderStatus,'fdkfa')
let cardOrderNo = order.orderNo
localStorage.setItem('orderNo', JSON.stringify(cardOrderNo))
let url
if(orderStatus == '59'){
url =`/cardList/GroupAppntInfo?cardOrderNo=${cardOrderNo}&editOrder=1`

View File

@@ -79,8 +79,7 @@ export default {
riskDTO: {},
productDate: '',
orderInfoDTO:{},
isGroupCard:'',
mainRiskCode: ''
isGroupCard:''
// isLessEighteen: true // 被保人手机号和邮箱默认展示
}
},
@@ -102,11 +101,6 @@ export default {
this.orderInfoDTO = res.orderDTO.orderInfoDTO
this.insuredInfo = res.orderDTO.insuredDTOs
this.insuredInfo.forEach(item => {
item.riskDTOLst.forEach(ii=>{
if(ii.isMainRisk == '0'){
this.mainRiskCode = ii.mainRiskCode
}
})
item.homeName = getAreaName([{ code: item.homeProvince }, { code: item.homeCity }, { code: item.homeArea }])
})
// this.riskDTO = res.orderDTO.insuredDTOs[0].riskDTOLst[0]
@@ -138,27 +132,13 @@ export default {
},
methods: {
nextStep() {
if(this.mainRiskCode == 'GFRS_M0058'){
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
confirmButtonText: '确认',
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`,
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/cardList/SignatureConfirmation?isGroupCard=`+this.isGroupCard
},
routerInfo: {
path: `/cardList/SignatureConfirmation?isGroupCard=`+this.isGroupCard
}
})
})
.catch(() => {
})
}else{
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
confirmButtonText: '确认',
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`,
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
@@ -168,7 +148,9 @@ export default {
path: `/cardList/SignatureConfirmation?isGroupCard=`+this.isGroupCard
}
})
}
})
.catch(() => {
})
}
}
}

View File

@@ -290,7 +290,6 @@ export default {
accBankProvince: '',
accBankCity: '',
areaStr: '',
mainRiskCode: '',
isGroupCard:'' //1 团险标识
}
},
@@ -311,13 +310,17 @@ export default {
this.bankListName = orderDetail.orderAccountDTO.bankName
this.orderStatus = orderDetail.orderInfoDTO.orderStatus
localStorage.orderNo = orderDetail.orderInfoDTO.orderNo
orderDetail.insuredDTOs.forEach(item=>{
item.riskDTOLst.forEach(ii=>{
if(ii.isMainRisk == '0'){
this.mainRiskCode = ii.mainRiskCode
}
})
})
// this.radio = '3'
// this.isLoading = true
// this.$toast.loading({
// duration: 0, // 持续展示 toast
// forbidClick: true, // 禁用背景点击
// loadingType: 'spinner',
// message: '加载中……'
// })
// setTimeout(() => {
// this.pay()
// }, 500)
} else {
document.title = '支付分享'
// 再次支付 调详情 获取信息
@@ -510,13 +513,6 @@ export default {
getOrderDetail({ orderNo: window.localStorage.getItem('orderNo') }).then(res => {
if (res.result == '0') {
this.insuredDTOs = res.orderDTO.insuredDTOs
res.orderDTO.insuredDTOs.forEach(item=>{
item.riskDTOLst.forEach(ii=>{
if(ii.isMainRisk == '0'){
this.mainRiskCode = ii.mainRiskCode
}
})
})
this.orderStatus = res.orderDTO.orderInfoDTO.orderStatus
try {
if (this.noEdit) {
@@ -748,40 +744,6 @@ export default {
let res = await saveOrUpdateAccount(data)
this.$toast.clear()
if (res.result == '0') {
if(this.mainRiskCode == 'GFRS_M0058'){
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
confirmButtonText: '确认',
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`,
})
.then(() => {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.acceptInsurance()
})
.catch(() => {
})
}else{
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.acceptInsurance()
}
} else {
this.$toast(res.resultMessage)
this.isLoading = false
}
} else {
if(this.mainRiskCode == 'GFRS_M0058'){
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
@@ -799,7 +761,32 @@ export default {
})
.catch(() => {
})
}else{
} else {
this.$toast(res.resultMessage)
this.isLoading = false
}
// })
} else {
// if (!flag) {
// let rs = await this.underWrite()
// if (rs.result != '0') {
// this.$toast.clear()
// return this.$toast(rs.resultMessage)
// }
// if (rs.uwResult != '02') {
// return this.$toast(rs.message)
// }
// }
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
confirmButtonText: '确认',
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`,
})
.then(() => {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
@@ -807,8 +794,9 @@ export default {
message: '加载中……'
})
this.acceptInsurance()
}
})
.catch(() => {
})
}
},
// 选择微信支付校验身份证类型

View File

@@ -4,12 +4,11 @@
</div>
</template>
<script>
import { makePdf, share, getDemo } from '@/api/ebiz/proposal/proposal.js'
import { makePdf, share } 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'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import { queryPersonal } from '@/api/ebiz/laurelClub/laurelClub'
export default {
data() {
@@ -17,8 +16,7 @@ export default {
return {
pdfUrl: '',
isWeixin,
title: '',
agent:{}
title: ''
}
},
components: {
@@ -33,7 +31,7 @@ export default {
this.init()
}
},
async mounted() {
mounted() {
let riskCode = localStorage.pdfShareCode
dataDictionary.riskType.some(item => {
if (item.code == riskCode) {
@@ -41,78 +39,10 @@ export default {
return true
}
})
if(this.$route.query.proposalOrderNo){
let params = {
proposalInfoDTO: {
proposalNo: this.$route.query.proposalOrderNo
}
}
let res = await getDemo(params)
if(res.result == 0){
let mainRiskNameList = []
res.content.orderDTO.insuredDTOs.forEach(item => {
item.riskDTOLst.forEach(item01 => {
if (item01.isMainRisk == '0') {
mainRiskNameList.push(item01.riskName)
}
})
})
// 一、单个被保险人
// 1、1个主险含附加险的情况直接显示“主险产品名称”
// 2、有2个及以上主险组合建议书名称显示“保险产品组合计划”
// 二、有多个被保险人
// 都显示“家庭保障计划”
if(mainRiskNameList.length == 1){
if (res.content.orderDTO.insuredDTOs.length > 1) {
this.title = '家庭保障计划'
} else {
this.title = mainRiskNameList[0]
}
}else{
if (res.content.orderDTO.insuredDTOs.length > 1) {
this.title = '家庭保障计划'
} else {
this.title = '保险产品组合计划'
}
}
}
}
let agentResult = await getAgentInfo({}) //调取代理人查询接口
if (agentResult.result == '0'){
let { agent } = this
let { name } = agentResult
agent.name = name
}
let date = new Date()
let month = date.getMonth() + 1
if (month <= 9) {
month = '0' + month
}
let reqData = {
mdType: 'm',
monthStr:date.getFullYear() + month
}
let shareContent;
let resData = await queryPersonal(reqData)
if (resData.content.length&&resData.content[0].glevel>0&&resData.content[0].ggrade) {
if(resData.content[0].glevel<3){
resData.content[0].ggrade='00'
}
}
if (resData.content.length&&resData.content[0].slevel>0&&resData.content[0].sgrade&&resData.content[0].sgrade!='00') {
let sgrade =this.memberConversion(resData.content[0].sgrade);
shareContent='国富双冠精英'+resData.content[0].slevel+'级'+sgrade+resData.content[0].name+'为您量身定制的保险产品,请查收';
}else if (resData.content.length&&resData.content[0].glevel>0&&resData.content[0].ggrade&&resData.content[0].ggrade!='00') {
let ggrade =this.memberConversion(resData.content[0].ggrade);
shareContent='国富桂冠精英'+resData.content[0].glevel+'级'+ggrade+resData.content[0].name+'为您量身定制的保险产品,请查收';
} else {
shareContent = this.agent.name+'为您设计的专属保险计划书,请查阅!因为国富,所以民安!';
}
weixinShare({
title: this.title,
imgUrl: this.$assetsUrl + 'images/logo.png',
desc: shareContent
desc: '国富为您量身定制的保险产品,请查收'
})
//重置左上角按钮,变成返回
window.EWebBridge.webCallAppInJs("webview_left_button",{
@@ -179,15 +109,10 @@ export default {
if(resData.content[0].glevel<3){
resData.content[0].ggrade='00'
}
}
if (resData.content.length&&resData.content[0].slevel>0&&resData.content[0].sgrade&&resData.content[0].sgrade!='00') {
let sgrade =this.memberConversion(resData.content[0].sgrade);
shareContent='国富双冠精英'+resData.content[0].slevel+'级'+sgrade+resData.content[0].name+'为您量身定制的保险产品,请查收';
}else if (resData.content.length&&resData.content[0].glevel>0&&resData.content[0].ggrade&&resData.content[0].ggrade!='00') {
let ggrade =this.memberConversion(resData.content[0].ggrade);
shareContent='国富桂冠精英'+resData.content[0].glevel+'级'+ggrade+resData.content[0].name+'为您量身定制的保险产品请查收';
shareContent='国富桂冠人力'+resData.content[0].glevel+''+ggrade+resData.content[0].name+'为您量身定制的保险产品请查收';
} else {
shareContent = this.agent.name+'为您设计的专属保险计划书,请查阅!因为国富,所以民安!';
shareContent='国富为您量身定制的保险产品,请查收';
}
if (data.trigger == 'right_button_click') {
// eslint-disable-next-line no-undef

View File

@@ -4,7 +4,7 @@
<div>
<div class="mb50">
<img class="w178 h41 div_1" src="@/assets/images/proposal/proposal_logo.png" />
<div class="white fw500 fs18 div_2">{{mainRiskName}}</div>
<div class="white fw500 fs18 div_2">家庭保障计划</div>
<van-sticky @scroll="testSticky">
<div class="pl15 pt15 flex justify-content-fs align-items-c sticky_div" :class="pageShowType.isFixed ? 'divbg_1' : 'divbg_2'">
<div class="mr9 title_item" v-for="(item, index) in pageShowInfo.insuredDTOs" :key="index" @click="checkInsure(item.insuredId)">
@@ -283,7 +283,7 @@
</div>
<div class="div_02">
<div class="text-center div_021">
<div class="text-center div_022">{{mainRiskName}}</div>
<div class="text-center div_022">家庭保障计划</div>
<!-- 如果没有姓名的话根据性别展示男士或女士 -->
<div class="text-center div_023">尊敬的<span v-if="pageShowInfo.appntDTO.name">{{ pageShowInfo.appntDTO.name.substr(0, 1) }}</span>{{ pageShowInfo.appntDTO.sex == '0' ? '先生' : '女士' }}</div>
</div>
@@ -386,7 +386,6 @@ export default {
mainRiskCodes: [],
time: 5,
proposalNo:'',
mainRiskName: ''
}
},
filters: {
@@ -449,7 +448,6 @@ export default {
})
}, 1000)
window['appCallBack'] = this.appCallBack*/
// init方法在微信端存储token接口请求用此token所以init方法前不要请求接口会影响分享微信功能接口会报token为空
this.init()
//校验当前用户权限
funcPermCheck({}).then(res => {
@@ -609,7 +607,7 @@ export default {
}
},
async sharePeople() {
console.log(this.pageShowInfo.insuredDTOs,'this.pageShowInfo.insuredDTOs')
console.log(this.agent,'this.agent.name')
let date = new Date()
let month = date.getMonth() + 1
if (month <= 9) {
@@ -621,34 +619,25 @@ export default {
}
let shareContent;
let resData = await queryPersonal(reqData)
// debugger
//准会员话术改为普通人话术
if(resData.content.length&&resData.content[0].slevel<3){
resData.content[0].sgrade='00'
}
if(resData.content.length&&resData.content[0].glevel<3){
resData.content[0].ggrade='00'
}
if (resData.content.length&&resData.content[0].slevel>0&&resData.content[0].sgrade&&resData.content[0].sgrade!='00') {
// if(resData.content[0].slevel<3){
// resData.content[0].sgrade='00'
// }
if(resData.content[0].slevel<3){
resData.content[0].sgrade='00'
}
let sgrade =this.memberConversion(resData.content[0].sgrade);
shareContent='国富双冠精英'+resData.content[0].slevel+''+sgrade+resData.content[0].name+'为您量身定制的保险产品请查收';
}else if (resData.content.length&&resData.content[0].glevel>0&&resData.content[0].ggrade&&resData.content[0].ggrade!='00') {
// if(resData.content[0].glevel<3){
// resData.content[0].ggrade='00'
// }
}else if (resData.content.length&&resData.content[0].glevel>0&&resData.content[0].ggrade&&!resData.content[0].sgrade&&resData.content[0].sgrade!='00') {
if(resData.content[0].glevel<3){
resData.content[0].ggrade='00'
}
let ggrade =this.memberConversion(resData.content[0].ggrade);
shareContent='国富桂冠精英'+resData.content[0].glevel+''+ggrade+resData.content[0].name+'为您量身定制的保险产品请查收';
} else {
shareContent = this.agent.name+'为您设计的专属保险计划书,请查阅!因为国富,所以民安!';
shareContent = this.agent.name+'为您设计的专属保险计划书请查阅因为国富所以民安';
}
console.log(shareContent,'shareContent')
let title
let riskList = [] //所有险种
let riskCodeList = [] //所有险种code
this.pageShowInfo.insuredDTOs.map(item => {
this.pageShowInfo.insuredDTOs.map(item => {
item.mainRisk.map(item01 => {
if (item01.isMainRisk == '0') { //主险
riskList.push(item01)
@@ -659,23 +648,11 @@ export default {
riskCodeList.push(item.riskCode)
})
let sameRisk = isAllEqual(riskCodeList)
// 一、单个被保险人
// 1、1个主险含附加险的情况直接显示“主险产品名称”
// 2、有2个及以上主险组合建议书名称显示“保险产品组合计划”
// 二、有多个被保险人
// 都显示“家庭保障计划”
// 以主险为单位,一个主险,显示主险名称。 多个主险,显示“家庭综合保障计划”,跟被保人人数无关
if(sameRisk){
if(this.pageShowInfo.insuredDTOs.length > 1){
title='家庭保障计划'
}else{
title= riskList[0].riskName
}
title= riskList[0].riskName
}else{
if(this.pageShowInfo.insuredDTOs.length > 1){
title='家庭保障计划'
}else{
title= '保险产品组合计划'
}
title='家庭综合保障计划'
}
let res = await getSharingToken({ shareType: 'proposal_demonstrate' })
if (res.result == '0') {
@@ -725,32 +702,6 @@ export default {
this.pageShowInfo.appntDTO = res.content.orderDTO.appntDTO
this.pageShowInfo.insuredDTOs = res.content.orderDTO.insuredDTOs
this.pageShowInfo.showInsuredDTO = this.pageShowInfo.insuredDTOs[0]
let mainRiskNameList = []
that.pageShowInfo.insuredDTOs.forEach(item => {
item.riskDTOLst.forEach(item01 => {
if (item01.isMainRisk == '0') {
mainRiskNameList.push(item01.riskName)
}
})
})
// 一、单个被保险人
// 1、1个主险含附加险的情况直接显示“主险产品名称”
// 2、有2个及以上主险组合建议书名称显示“保险产品组合计划”
// 二、有多个被保险人
// 都显示“家庭保障计划”
if(mainRiskNameList.length == 1){
if (this.pageShowInfo.insuredDTOs.length > 1) {
that.mainRiskName = '家庭保障计划'
} else {
that.mainRiskName = mainRiskNameList[0]
}
}else{
if (this.pageShowInfo.insuredDTOs.length > 1) {
that.mainRiskName = '家庭保障计划'
} else {
that.mainRiskName = '保险产品组合计划'
}
}
//投保人年龄
// this.pageShowInfo.appntDTO.age = getAge.getAge(this.pageShowInfo.appntDTO.birthdayLabel, new Date())
let { insuredLabelResult, insuredResult, insuredInfoResult } = res.content.calculusResDTO
@@ -940,17 +891,7 @@ export default {
},
//跳转到pdf 进入建议书后 根据建议书编码来查找相应的pdf
async goPDF() {
if(this.$route.query.proposalOrderNo){
this.$router.push({
path: '/proposal/pdf',
query: {
proposalOrderNo:this.$route.query.proposalOrderNo
}
})
}else{
this.$router.push({ path: '/proposal/pdf' })
}
this.$router.push({ path: '/proposal/pdf' })
// this.$jump({
// flag: 'h5',
// extra: {

View File

@@ -13,16 +13,7 @@
</van-tabs>
</van-sticky>
<van-list
v-model="loading"
:immediate-check="false"
:finished="finished"
:finished-text="finishedText"
error-text="请求失败点击重新加载"
:error.sync="error"
@load="loadMore"
class="pb45"
>
<van-list v-model="loading" :immediate-check="false" :finished="finished" :finished-text="finishedText" error-text="请求失败,点击重新加载" :error.sync="error" @load="loadMore" class="pb45">
<div v-if="isSuccess">
<div v-if="saleList.length > 0">
<div v-for="(order, index) in saleList" :key="index">
@@ -83,57 +74,38 @@
</div>
<div class="text-right mt15 ">
<van-button v-if="active == 'uncommit'" round @click="goDetail(order)" size="small" class="mr5" type="danger" v-no-more-click="1000"
>编辑</van-button
>
<van-button
v-if="active == 'uncommit'"
plain
round
@click.stop="del(order, index)"
size="small"
class="mr5"
type="danger"
v-no-more-click="1000"
>删除</van-button
>
<van-button
@click="againPay(order)"
v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '19'"
size="small"
class="mr5"
type="danger"
round
>重新支付</van-button
>
<van-button
@click="changeCard(order)"
v-if="(active == 'commit' && order.orderInfoDTO.orderStatus == '48') || (active == 'commit' && order.orderInfoDTO.orderStatus == '49')"
size="small"
class="mr5"
type="danger"
round
>修改卡号</van-button
>
<van-button v-if="active == 'uncommit'" round @click="goDetail(order)" size="small" class="mr5" type="danger" v-no-more-click="1000">
编辑
</van-button>
<van-button v-if="active == 'uncommit'" plain round @click.stop="del(order, index)" size="small" class="mr5" type="danger" v-no-more-click="1000">
删除
</van-button>
<van-button @click="againPay(order)" v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '19'" size="small" class="mr5" type="danger" round>
重新支付
</van-button>
<van-button @click="changeCard(order)" v-if="(active == 'commit' && order.orderInfoDTO.orderStatus == '48') || (active == 'commit' && order.orderInfoDTO.orderStatus == '49')" size="small" class="mr5" type="danger" round>
修改卡号
</van-button>
<template v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '55'">
<van-button @click="changeCard(order)" size="small" class="mr5" type="danger" round>修改卡号</van-button>
<van-button @click="againPay(order)" size="small" class="mr5" type="danger" round>重新支付</van-button>
<van-button @click="changeCard(order)" size="small" class="mr5" type="danger" round>
修改卡号
</van-button>
<van-button @click="againPay(order)" size="small" class="mr5" type="danger" round>
重新支付
</van-button>
</template>
<template v-if="active == 'commit' && (order.orderInfoDTO.orderStatus == '02' || order.orderInfoDTO.orderStatus == '58')">
<van-button @click="goPay(order)" size="small" class="mr5" type="danger" round>去支付</van-button>
<van-button @click="goPay(order)" size="small" class="mr5" type="danger" round>
去支付
</van-button>
</template>
<!-- doubleFlag 1- 0-doubleFlag为0双录时canRevokeDouble加 orderStatus 16 -->
<van-button
@click="revokeOrder(order)"
v-if="active == 'commit' && ((canRevoke[order.orderInfoDTO.orderStatus] && (order.orderInfoDTO.doubleFlag == '1' || order.orderInfoDTO.doubleFlag == null || order.orderInfoDTO.doubleFlag == ''))
|| (canRevokeDouble[order.orderInfoDTO.orderStatus] && order.orderInfoDTO.doubleFlag == '0'))"
size="small"
class="mr5"
type="danger"
round
>撤单</van-button
>
<van-button @click="seePolicy(order)" v-if="active == 'commit'" size="small" type="danger" round>查看投保单</van-button>
<van-button @click="revokeOrder(order)" v-if="active == 'commit' && ((canRevoke[order.orderInfoDTO.orderStatus] && (order.orderInfoDTO.doubleFlag == '1' || order.orderInfoDTO.doubleFlag == null || order.orderInfoDTO.doubleFlag == ''))|| (canRevokeDouble[order.orderInfoDTO.orderStatus] && order.orderInfoDTO.doubleFlag == '0'))" size="small" class="mr5" type="danger" round>
撤单
</van-button>
<van-button @click="seePolicy(order)" v-if="active == 'commit'" size="small" type="danger" round>
查看投保单
</van-button>
</div>
</div>
</div>
@@ -147,16 +119,7 @@
</van-list>
<van-button type="danger" class="bottom-btn" @click="add" v-no-more-click="1000">点我新增</van-button>
<van-dialog
class="dialog-delete"
@confirm="checkCaptchaCode"
@cancel="cancelCaptchaCode"
:before-close="beforeClose"
confirm-button-color="#fff"
v-model="revokePanelShow"
title="短信验证"
show-cancel-button
>
<van-dialog class="dialog-delete" @confirm="checkCaptchaCode" @cancel="cancelCaptchaCode" :before-close="beforeClose" confirm-button-color="#fff" v-model="revokePanelShow" title="短信验证" show-cancel-button>
<p class="captchaReceiver">投保人手机号: {{ captchaReceiver | phoneNumFilter }}</p>
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
<template #button>
@@ -538,44 +501,6 @@ export default {
}else if(orderStatus == '63'){//风险测评保存成功, 跳到账户信息--
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
// switch (orderStatus) {
// case '01': //已签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '43': //未签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '35': //投保人保存成功, 跳到被保险人页面--
// url = '/sale/insuredPerson?edit=1'
// break
// case '36': //被保险人保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '37': //受益人保存成功, 跳到告知信息--
// url = '/sale/NotifyingMessage?edit=1'
// break
// case '38': //账户信息保存成功, 跳到附件管理--
// url = '/sale/AttachmentManagement?edit=1'
// break
// case '39': //险种信息保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '40': //告知信息保存成功, 跳到风险测评--
// url = '/sale/answerPage?edit=1'
// break
// case '': //跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '44': //建议书转投保, 跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '62': //风险测评保存成功, 跳到账户信息--
// // url = '/sale/AccountInformation?edit=1'
// url = '/sale/answerSuccess?edit=1'
// break
// default:
// break
// }
this.$jump({
flag: 'h5',
extra: {

View File

@@ -7,8 +7,8 @@
<div v-if="isWeixin" class="bg-white mt10 p20 fs14 tips">
<p>
尊敬的
<span>{{ tipsName }}</span
>先生/女士您好
<span>{{ tipsName }}</span>
先生/女士您好
</p>
<p>该保单由国富人寿保险股份有限公司进行承保具体确认信息如下</p>
</div>
@@ -47,16 +47,9 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
type="danger"
size="normal"
class="w150"
plain
:disabled="changeCard ? agentSign.documentStatus == '1' : agentSignStatus == '3'"
v-no-more-click="1000"
@click="start_agent('3')"
>开始</van-button
>
<van-button type="danger" size="normal" class="w150" plain :disabled="changeCard ? agentSign.documentStatus == '1' : agentSignStatus == '3'" v-no-more-click="1000" @click="start_agent('3')">
开始
</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -89,28 +82,13 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
v-if="isShow"
type="danger"
size="normal"
class="w150"
plain
v-no-more-click="1000"
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
@click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>分享</van-button
>
<van-button v-if="isShow" type="danger" size="normal" class="w150" plain v-no-more-click="1000" :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" @click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
分享
</van-button>
<!-- 前端测试 -->
<van-button
type="danger"
size="normal"
class="w150"
plain
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
>
<van-button type="danger" size="normal" class="w150" plain :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" v-no-more-click="1000" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
开始
</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -134,20 +112,12 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
v-if="isShow"
type="danger"
size="normal"
class="w150"
:disabled="insuredSignStatus == '3'"
@click="share('1')"
plain
v-no-more-click="1000"
>分享</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
>
<van-button v-if="isShow" type="danger" size="normal" class="w150" :disabled="insuredSignStatus == '3'" @click="share('1')" plain v-no-more-click="1000">
分享
</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>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -183,16 +153,9 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
type="danger"
size="normal"
style="width: 157px"
plain
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
>
<van-button type="danger" size="normal" style="width: 157px" plain :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" v-no-more-click="1000" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
开始
</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -216,16 +179,9 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
type="danger"
size="normal"
plain
style="width: 157px"
:disabled="insuredSignStatus == '3'"
@click="start_ocr('1')"
v-no-more-click="1000"
>开始</van-button
>
<van-button type="danger" size="normal" plain style="width: 157px" :disabled="insuredSignStatus == '3'" @click="start_ocr('1')" v-no-more-click="1000">
开始
</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -236,27 +192,17 @@
<div v-if="!isWeixin">
<div v-if="changeCard">
<div class="bottom-btn bg-white" v-if="appntSign.documentStatus == '1'">
<van-button
type="danger"
v-if="relationToAppnt == '1' ? true : appntSign.documentStatus == '1' ? true : false"
size="large"
@click="rePayMent"
v-no-more-click="1000"
>支付</van-button
>
<van-button type="danger" v-if="relationToAppnt == '1' ? true : appntSign.documentStatus == '1' ? true : false" size="large" @click="rePayMent" v-no-more-click="1000">
支付
</van-button>
</div>
</div>
<div v-else>
<!--判断代理人自保件承诺书是否签名 或者不是自保件 投保人是否都签名-->
<div class="bottom-btn bg-white" v-if="(agentSignStatus == '3'&& appntSignStatus == '3')||(agentSignStatus == ''&& appntSignStatus == '3')">
<van-button
type="danger"
v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false"
size="large"
@click="next"
v-no-more-click="1000"
>提交</van-button
>
<van-button type="danger" v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false" size="large" @click="next" v-no-more-click="1000">
提交
</van-button>
</div>
</div>
</div>
@@ -264,13 +210,7 @@
<!-- <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">
<!-- <van-notice-bar :scrollable="false" class="notice" style="width: 100%">为维护您的合法权益请您务必观看防范销售误导视频</van-notice-bar> -->
<video
controls
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'"
ref="vid"
@timeupdate="timeupdate"
></video>
<video controls 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'" ref="vid" @timeupdate="timeupdate"></video>
</div>
<div class="bottom-btn bg-white">
<van-button type="danger" size="large" @click="isVideoUrlClick()" v-no-more-click="1000">下一步</van-button>
@@ -286,18 +226,10 @@
}}</van-button>
</van-cell-group>
</van-dialog>
<!-- <UploadImageFile
:typeface="idcardData.typeface && faceAuthCount.weixin < smsAuthNum"
:realName="idcardData.idcardName"
:idno="idcardData.idcardNumber"
@sendimage="sendimage"
>
</UploadImageFile> -->
</div>
</template>
<script>
// import UploadImageFile from '@/components/ebiz/sale/UploadImageFile'
import { Field, Cell, CellGroup, Collapse, CollapseItem, Dialog, NoticeBar } from 'vant'
import {
underWrite,
@@ -412,122 +344,120 @@ export default {
}
},
methods: {
timeupdate() {
console.log(this.$refs['vid'].paused)
if (!this.$refs['vid'].paused) {
this.isVideoNext = true
}
},
fakeFaceAuth(expect) {
console.log('模拟调用人脸识别')
return new Promise(function (resolve, reject) {
setTimeout(() => {
console.log('模拟人脸识别完成')
if (expect) {
resolve({ state: '0' })
} else {
reject({ state: '0' })
}
}, 2000)
})
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
if (this.videoShow) {
this.$jump({
flag: 'navigation',
extra: {
title: '签名确认',
hiddenRight: '1'
}
})
return (this.videoShow = false)
timeupdate() {
console.log(this.$refs['vid'].paused)
if (!this.$refs['vid'].paused) {
this.isVideoNext = true
}
return this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '退出流程可能会丢失部分数据,是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
},
fakeFaceAuth(expect) {
console.log('模拟调用人脸识别')
return new Promise(function (resolve, reject) {
setTimeout(() => {
console.log('模拟人脸识别完成')
if (expect) {
resolve({ state: '0' })
} else {
reject({ state: '0' })
}
}, 2000)
})
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
if (this.videoShow) {
this.$jump({
flag: 'h5',
flag: 'navigation',
extra: {
title: '电子投保单列表',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/list`
},
routerInfo: {
path: `/sale/list`,
type: '1'
title: '签名确认',
hiddenRight: '1'
}
})
})
.catch(() => {
return
})
}
},
isVideoUrlClick() {
console.log(this.isVideoUrl)
if (!this.isVideoNext) {
this.$dialog
.alert({
className: 'dialog-alert',
title: '提示',
message: '为维护您的合法权益,请您务必认真观看防范销售误导视频。',
confirmButtonColor: '#ee0a24',
confirmButtonText: '确认'
})
.then(() => {})
} else {
this.isVideoNext = !this.isVideoNext
this.isVideoUrl == 'goUrl' ? this.goUrl() : this.insuredUrl()
}
},
// 初始化
async init() {
localStorage.doubleRecordFlag = '0' //0不是双录单 1是双录单
if (this.isWeixin) {
if (this.$route.query.airSign) {
sessionStorage.setItem('airSign', this.$route.query.airSign)
return (this.videoShow = false)
}
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
})
}
// this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
// window.localStorage.setItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
// window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
// window.localStorage.setItem('productCode', this.$route.query.productCode)
if (this.$route.query.changeCard == '0') {
localStorage.setItem('changeCard', true)
},
isVideoUrlClick() {
console.log(this.isVideoUrl)
if (!this.isVideoNext) {
this.$dialog
.alert({
className: 'dialog-alert',
title: '提示',
message: '为维护您的合法权益,请您务必认真观看防范销售误导视频。',
confirmButtonColor: '#ee0a24',
confirmButtonText: '确认'
})
.then(() => {})
} else {
localStorage.removeItem('changeCard')
this.isVideoNext = !this.isVideoNext
this.isVideoUrl == 'goUrl' ? this.goUrl() : this.insuredUrl()
}
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}
if (this.$route.query.shareCode) {
sessionStorage.setItem('shareCode', this.$route.query.shareCode)
}
let signInvalid = sessionStorage.getItem('signInvalid')
let rs = await this.checkSignInvalid(signInvalid)
console.log('````````````')
console.log('rs: ' + rs)
if (rs == '1') {
this.isInvalid = false
} else {
this.isInvalid = true
}
this.airSign = sessionStorage.getItem('airSign')
this.shareCode = sessionStorage.getItem('shareCode')
this.changeCard = localStorage.getItem('changeCard')
this.relationToAppnt = this.$route.query.relationToAppnt
this.isShow = false
await this.getOrderDetail()
console.log('初始化this.appntSign ==', this.appntSign)
},
// 初始化
async init() {
localStorage.doubleRecordFlag = '0' //0不是双录单 1是双录单
if (this.isWeixin) {
if (this.$route.query.airSign) {
sessionStorage.setItem('airSign', this.$route.query.airSign)
}
// this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
// window.localStorage.setItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
// window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
// window.localStorage.setItem('productCode', this.$route.query.productCode)
if (this.$route.query.changeCard == '0') {
localStorage.setItem('changeCard', true)
} else {
localStorage.removeItem('changeCard')
}
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}
if (this.$route.query.shareCode) {
sessionStorage.setItem('shareCode', this.$route.query.shareCode)
}
let signInvalid = sessionStorage.getItem('signInvalid')
let rs = await this.checkSignInvalid(signInvalid)
console.log('````````````')
console.log('rs: ' + rs)
if (rs == '1') {
this.isInvalid = false
} else {
this.isInvalid = true
}
this.airSign = sessionStorage.getItem('airSign')
this.shareCode = sessionStorage.getItem('shareCode')
this.changeCard = localStorage.getItem('changeCard')
this.relationToAppnt = this.$route.query.relationToAppnt
this.isShow = false
await this.getOrderDetail()
if (
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '0') ||
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '2')
@@ -1416,6 +1346,19 @@ export default {
},
// 获取消息和阅读状态
getOrderDetail() {
if(!this.$route.query.orderNo || this.$route.query.orderNo == 'undefined'){
Dialog.confirm({
title: '提示',
message: '订单号信息缺失,跳转订单系统重新获取',
showCancelButton: false
}).then(() => {
this.$router.push({
path:'/sale/list'
})
})
return false
}
let that = this
this.$toast.loading({
// 持续展示 toast
@@ -1627,89 +1570,99 @@ export default {
})
}
resolve('success')
}
} else {
Dialog.confirm({
title: '提示',
message: res.resultMessage,
showCancelButton: false
}).then(() => {
this.$router.push({
path:'/sale/list'
})
})
}
})
})
},
//自定义key值排序用
addKey(item) {
//ducumentCode 1投保须知 2投保单 3产品说明书 4提示书 6免除保险人责任条款说明书 7保险销售行为双录说明
// 8指定保单生效日 9短期险投保须知 10国富人寿自保件承诺书 11柳州保险行业寿险投保风险提示书 12个人信息使用授权
// documentStatus: 文档状态 0 未读 1 已读 2 未签名 3 已签名
// documentType: 文档类型 0 阅读文档 1 签名文档
// signType: 签名类型 0 投保人 1 被保人 2 本人
if (item.documentCode == '1') {
item.key = 2
// item.key = 4
item.routePath = 'insuranceInformation'
} else if (item.documentCode == '2') {
// item.key = 9
item.key = 11
item.routePath = 'SignatureOfElectronic'
} else if (item.documentCode == '3') {
// item.key = 4
item.key = 6
item.routePath = 'productTip'
} else if (item.documentCode == '4') {
// item.key = 5
item.key = 7
item.routePath = 'InsuranceTip'
} else if (item.documentCode == '6') {
// item.key = 7
item.key = 9
item.routePath = 'avoidDutyTip'
} else if (item.documentCode == '7') {
// item.key = 8
item.key = 10
item.routePath = 'doubleRecordTip'
} else if (item.documentCode == '8') {
item.key = 1
item.routePath = 'apointValidDoc'
} else if (item.documentCode == '9') {
// item.key = 3
item.key = 5
item.routePath = 'shortPeriodProduct'
}else if (item.documentCode == '10') {
item.key = 1
item.routePath = 'commitmentSelfProtect'
} else if (item.documentCode == '11') {
// item.key = 6
item.key = 8
item.routePath = 'InsuranceRiskReminder'
} else if (item.documentCode == '12') {
// item.key = 10
item.key = 12
item.routePath = 'PersonalInformation'
} else if (item.documentCode == '13') {
// item.key = 2
item.key = 4
item.routePath = 'insuranceClauses'
}else if (item.documentCode == '14') {//风险评估pdf
item.key = 3
item.routePath = 'AnswerTip'
} else if (item.documentCode == '15') {
item.key = 7.1
item.routePath = 'universalRiskNotifyingMessageTip'
}
},
getSignInvalid() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {}
getSignInvalid(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.signInvalid = res.content.sign
}
})
//自定义key值排序用
addKey(item) {
//ducumentCode 1投保须知 2投保单 3产品说明书 4提示书 6免除保险人责任条款说明书 7保险销售行为双录说明
// 8指定保单生效日 9短期险投保须知 10国富人寿自保件承诺书 11柳州保险行业寿险投保风险提示书 12个人信息使用授权
// documentStatus: 文档状态 0 未读 1 已读 2 未签名 3 已签名
// documentType: 文档类型 0 阅读文档 1 签名文档
// signType: 签名类型 0 投保人 1 被保人 2 本人
if (item.documentCode == '1') {
item.key = 2
// item.key = 4
item.routePath = 'insuranceInformation'
} else if (item.documentCode == '2') {
// item.key = 9
item.key = 11
item.routePath = 'SignatureOfElectronic'
} else if (item.documentCode == '3') {
// item.key = 4
item.key = 6
item.routePath = 'productTip'
} else if (item.documentCode == '4') {
// item.key = 5
item.key = 7
item.routePath = 'InsuranceTip'
} else if (item.documentCode == '6') {
// item.key = 7
item.key = 9
item.routePath = 'avoidDutyTip'
} else if (item.documentCode == '7') {
// item.key = 8
item.key = 10
item.routePath = 'doubleRecordTip'
} else if (item.documentCode == '8') {
item.key = 1
item.routePath = 'apointValidDoc'
} else if (item.documentCode == '9') {
// item.key = 3
item.key = 5
item.routePath = 'shortPeriodProduct'
}else if (item.documentCode == '10') {
item.key = 1
item.routePath = 'commitmentSelfProtect'
} else if (item.documentCode == '11') {
// item.key = 6
item.key = 8
item.routePath = 'InsuranceRiskReminder'
} else if (item.documentCode == '12') {
// item.key = 10
item.key = 12
item.routePath = 'PersonalInformation'
} else if (item.documentCode == '13') {
// item.key = 2
item.key = 4
item.routePath = 'insuranceClauses'
}else if (item.documentCode == '14') {//风险评估pdf
item.key = 3
item.routePath = 'AnswerTip'
} else if (item.documentCode == '15') {
item.key = 7.1
item.routePath = 'universalRiskNotifyingMessageTip'
}
},
getSignInvalid() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {}
getSignInvalid(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.signInvalid = res.content.sign
}
})
},
async checkSignInvalid(signInvalid) {
let that = this
this.$toast.loading({