feat-调用人脸识别插件新增 orderNo 入参

This commit is contained in:
zhang.weiwei
2025-02-06 11:54:29 +08:00
parent 16a1ed80ad
commit 7054c35de0
11 changed files with 809 additions and 668 deletions

1
.gitignore vendored
View File

@@ -4,3 +4,4 @@ dist
.eslintrc.js .eslintrc.js
.prettierrc .prettierrc
.idea .idea
.history

View File

@@ -39,9 +39,7 @@
</div> </div>
<div class="ebizGuarantor"> <div class="ebizGuarantor">
<van-field readonly label-width="120px" label="担保人" v-model="ebizGuarantor.name"></van-field> <van-field readonly label-width="120px" label="担保人" v-model="ebizGuarantor.name"></van-field>
<p class="p15 line-height"> <p class="p15 line-height">以下内容需要您按照顺序阅读并签字确认</p>
以下内容需要您按照顺序阅读并签字确认
</p>
<div class="p15 line-height"> <div class="p15 line-height">
需签署 需签署
<ul> <ul>
@@ -238,8 +236,8 @@ export default {
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) })
return new Promise(resolve => { return new Promise((resolve) => {
agreementQuery(data).then(res => { agreementQuery(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
this.agentInfo = res.content.ebizEnterCustomerDto this.agentInfo = res.content.ebizEnterCustomerDto
@@ -251,10 +249,10 @@ export default {
this.agentInfo.createdDate = this.agentInfo.createdDate.substring(0, 10) this.agentInfo.createdDate = this.agentInfo.createdDate.substring(0, 10)
this.agentSignList = filtSignList(this, this.signList).agentSignList this.agentSignList = filtSignList(this, this.signList).agentSignList
this.guaranteeSignList = filtSignList(this, this.signList).guaranteeSignList this.guaranteeSignList = filtSignList(this, this.signList).guaranteeSignList
this.isAgentSubmit = this.agentSignList.every(item => { this.isAgentSubmit = this.agentSignList.every((item) => {
return item.signState == '1' return item.signState == '1'
}) })
this.isguranteeSubmit = this.guaranteeSignList.every(item => { this.isguranteeSubmit = this.guaranteeSignList.every((item) => {
return item.signState == '1' return item.signState == '1'
}) })
resolve() resolve()
@@ -285,7 +283,7 @@ export default {
message: '加载中……' message: '加载中……'
}) })
let data = {} let data = {}
getSignInvalid(data).then(res => { getSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
this.signInvalid = res.content.sign this.signInvalid = res.content.sign
@@ -321,8 +319,8 @@ export default {
let data = { let data = {
sign: signInvalid sign: signInvalid
} }
return new Promise(resolve => { return new Promise((resolve) => {
checkSignInvalid(data).then(res => { checkSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
that.$toast.clear() that.$toast.clear()
let status = res.content.status let status = res.content.status
@@ -366,7 +364,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', { const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '2', //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '2', //业务来源:1-电投2-入司3-理赔4-保全
number: this.agentInfo.idNo, //身份证号码 number: this.agentInfo.idNo, //身份证号码
name: this.agentInfo.name //姓名 name: this.agentInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}) })
// const authRes = await this.fakeFaceAuth(true) // const authRes = await this.fakeFaceAuth(true)
console.log(authRes) console.log(authRes)
@@ -409,11 +408,11 @@ export default {
goUrl(code) { goUrl(code) {
let path = '' let path = ''
if (code == '0') { if (code == '0') {
path = this.agentSignList.filter(v => { path = this.agentSignList.filter((v) => {
return v.signState == '0' return v.signState == '0'
})[0].path })[0].path
} else if (code == '1') { } else if (code == '1') {
path = this.guaranteeSignList.filter(v => { path = this.guaranteeSignList.filter((v) => {
return v.signState == '0' return v.signState == '0'
})[0].path })[0].path
} }
@@ -437,7 +436,7 @@ export default {
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) })
signAgreement(data).then(res => { signAgreement(data).then((res) => {
console.log(res) console.log(res)
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()

View File

@@ -1,27 +1,24 @@
<template> <template>
<div class='orderDetail-container'> <div class="orderDetail-container">
<index-bar :allowance-no='$route.query.allowanceNo' :reapply-no='$route.query.reapply' v-if='!isWeixin'></index-bar> <index-bar :allowance-no="$route.query.allowanceNo" :reapply-no="$route.query.reapply" v-if="!isWeixin"></index-bar>
<div v-for='(item, index) in allowanceSignDTOLst' :key='index'> <div v-for="(item, index) in allowanceSignDTOLst" :key="index">
<!-- 申请人 --> <!-- 申请人 -->
<div v-if='item.type == 1 && !isWeixin'> <div v-if="item.type == 1 && !isWeixin">
<p class='fw600 border-gb'> <p class="fw600 border-gb">
<span>申请人</span><span class='ml60'>{{ allowanceApplyDTO.name }}</span> <span>申请人</span><span class="ml60">{{ allowanceApplyDTO.name }}</span>
</p> </p>
<p>点击签名按钮进行申请人签名</p> <p>点击签名按钮进行申请人签名</p>
<p class='border-gb'> <p class="border-gb">
<span>申请人</span> <span>申请人</span>
<van-button type='danger' color='#2E4591' class='ml5' size='small' @click='signFunc(item.type, item.id)' <van-button type="danger" color="#2E4591" class="ml5" size="small" @click="signFunc(item.type, item.id)" :disabled="isSure" v-no-more-click="1000"
:disabled='isSure' v-no-more-click='1000'>{{ >{{ item.signStatus == '0' ? '签名' : '已签名' }}
item.signStatus == '0' ? '签名' : '已签名'
}}
</van-button> </van-button>
<img class='w60 h40 v-middle ml10' v-if='item.signPath' :src="imgUrl + item.signPath.replace(/\+/g, '%2B')" <img class="w60 h40 v-middle ml10" v-if="item.signPath" :src="imgUrl + item.signPath.replace(/\+/g, '%2B')" alt="" /><br />
alt='' /><br />
</p> </p>
</div> </div>
<div v-if='item.type == 2'> <div v-if="item.type == 2">
<div v-if='isWeixin' class='bg-white mt10 fs14 tips'> <div v-if="isWeixin" class="bg-white mt10 fs14 tips">
<p> <p>
尊敬的 尊敬的
<span>{{ allowanceEnjoyDTO.name }}</span <span>{{ allowanceEnjoyDTO.name }}</span
@@ -29,83 +26,54 @@
</p> </p>
<p>恭喜您获得国富人寿桂冠专属父母赡养津贴需要您点击签字按钮进行签字申请</p> <p>恭喜您获得国富人寿桂冠专属父母赡养津贴需要您点击签字按钮进行签字申请</p>
</div> </div>
<p v-if='!isWeixin' class='fw600 border-gb'> <p v-if="!isWeixin" class="fw600 border-gb">
<span>享受人</span><span class='ml60'>{{ allowanceEnjoyDTO.name }}</span> <span>享受人</span><span class="ml60">{{ allowanceEnjoyDTO.name }}</span>
</p> </p>
<p v-if='!isWeixin'>点击签名按钮进行享受人签名</p> <p v-if="!isWeixin">点击签名按钮进行享受人签名</p>
<p class='border-gb'> <p class="border-gb">
<span>享受人</span> <span>享受人</span>
<van-button type='danger' color='#2E4591' class='ml5' size='small' @click='signFunc(item.type, item.id)' <van-button type="danger" color="#2E4591" class="ml5" size="small" @click="signFunc(item.type, item.id)" :disabled="isSure" v-no-more-click="1000"
:disabled='isSure' v-no-more-click='1000'>{{ >{{ item.signStatus == '0' ? '签名' : '已签名' }}
item.signStatus == '0' ? '签名' : '已签名'
}}
</van-button> </van-button>
<img class='w60 h40 v-middle ml10' v-if='item.signPath' :src="imgUrl + item.signPath.replace(/\+/g, '%2B')" <img class="w60 h40 v-middle ml10" v-if="item.signPath" :src="imgUrl + item.signPath.replace(/\+/g, '%2B')" alt="" /><br />
alt='' /><br />
<!-- 享受人有分享功能 --> <!-- 享受人有分享功能 -->
<van-button <van-button
type='danger' type="danger"
color='#2E4591' color="#2E4591"
class='ml65 mt10' class="ml65 mt10"
v-if='!isWeixin' v-if="!isWeixin"
size='small' size="small"
@click="share('0')" @click="share('0')"
:disabled='isSure' :disabled="isSure"
v-no-more-click='1000' v-no-more-click="1000"
>分享 >分享
</van-button </van-button>
>
</p> </p>
</div> </div>
</div> </div>
<van-button v-if='!isWeixin' type='danger' color='#2E4591' class='bottom-btn ffcb6b' @click='nextStep' <van-button v-if="!isWeixin" type="danger" color="#2E4591" class="bottom-btn ffcb6b" @click="nextStep" v-no-more-click="1000">提交审批 </van-button>
v-no-more-click='1000'>提交审批 <SignTure :SignShow="SignShow" :signInfo="allowanceEnjoyDTO" @close="SignClose" @SignSuccessful="SignSuccessful"></SignTure>
</van-button>
<SignTure :SignShow='SignShow' :signInfo='allowanceEnjoyDTO' @close='SignClose'
@SignSuccessful='SignSuccessful'></SignTure>
<!-- 短信验证 --> <!-- 短信验证 -->
<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' color='#2E4591' plain size='small' class='w160 p0' @click='getAuthCode' <van-button type="danger" color="#2E4591" plain size="small" class="w160 p0" @click="getAuthCode" :disabled="codeDisabled" v-no-more-click="2000"
:disabled='codeDisabled' v-no-more-click='2000'>{{ >{{ codeDisabled ? `${countDown}s后重新获取` : '获取验证码' }}
codeDisabled ? `${countDown}s后重新获取` : '获取验证码'
}}
</van-button> </van-button>
</van-cell-group> </van-cell-group>
</van-dialog> </van-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import { Toast, CellGroup, Field, Dialog, Collapse, CollapseItem, Cell, Popup, Divider, RadioGroup, Radio, Tag } from 'vant'
Toast,
CellGroup,
Field,
Dialog,
Collapse,
CollapseItem,
Cell,
Popup,
Divider,
RadioGroup,
Radio,
Tag
} from 'vant'
import { getAllowanceDetail, saveOrUpdateAllowanceUrl, approveInit } from '@/api/ebiz/allowance/allowance' import { getAllowanceDetail, saveOrUpdateAllowanceUrl, approveInit } from '@/api/ebiz/allowance/allowance'
import SignTure from './component/SignTure' import SignTure from './component/SignTure'
import config from '@/config' import config from '@/config'
import { getWhitelist } from '@/api/ebiz/whitelist' import { getWhitelist } from '@/api/ebiz/whitelist'
import { weixinShare } from '@/assets/js/utils/wxShare.js' import { weixinShare } from '@/assets/js/utils/wxShare.js'
import { checkPhone } from '@/api/ebiz/customer/customer' import { checkPhone } from '@/api/ebiz/customer/customer'
import { import { getSignInvalid, checkSignInvalid, getAuthCode, autchCodeCheck, getRecognitionUrl, getRecognitionResult } from '@/api/ebiz/sale/sale'
getSignInvalid,
checkSignInvalid,
getAuthCode,
autchCodeCheck,
getRecognitionUrl,
getRecognitionResult
} from '@/api/ebiz/sale/sale'
import { getShareParam } from '@/api/ebiz/cardList/cardList.js' import { getShareParam } from '@/api/ebiz/cardList/cardList.js'
import IndexBar from '@/components/ebiz/allowance/application/IndexBar' import IndexBar from '@/components/ebiz/allowance/application/IndexBar'
@@ -497,7 +465,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', { const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '5', //业务来源:1-电投2-入司3-理赔4-保全 5津贴 businessSource: '5', //业务来源:1-电投2-入司3-理赔4-保全 5津贴
number: that.allowanceEnjoyDTO.idNo, //身份证号码 number: that.allowanceEnjoyDTO.idNo, //身份证号码
name: that.allowanceEnjoyDTO.name //姓名 name: that.allowanceEnjoyDTO.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => { }).then((data) => {
console.log(JSON.parse(data), 'APP人脸识别结果') console.log(JSON.parse(data), 'APP人脸识别结果')
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
@@ -728,7 +697,7 @@ export default {
} }
} }
</script> </script>
<style lang='scss'> <style lang="scss">
#app { #app {
.van-dialog__confirm, .van-dialog__confirm,
.van-dialog__confirm:active { .van-dialog__confirm:active {
@@ -736,7 +705,7 @@ export default {
} }
} }
</style> </style>
<style lang='scss' scoped> <style lang="scss" scoped>
.orderDetail-container { .orderDetail-container {
background-color: #fff; background-color: #fff;
min-height: 100vh; min-height: 100vh;

View File

@@ -23,7 +23,7 @@
<van-button <van-button
type="danger" type="danger"
size="normal" size="normal"
style="width: 157px;" style="width: 157px"
plain plain
v-no-more-click="1000" v-no-more-click="1000"
@click="share(3)" @click="share(3)"
@@ -34,7 +34,7 @@
<van-button <van-button
type="danger" type="danger"
size="normal" size="normal"
style="width: 157px;" style="width: 157px"
plain plain
v-no-more-click="1000" v-no-more-click="1000"
@click="start_ocr(3)" @click="start_ocr(3)"
@@ -237,7 +237,7 @@ export default {
caseStatus: 'applying', caseStatus: 'applying',
businessNo: localStorage.businessNo businessNo: localStorage.businessNo
} }
progressDetail(data).then(res => { progressDetail(data).then((res) => {
if (res.result == 0) { if (res.result == 0) {
console.log(res) console.log(res)
this.list = res.content this.list = res.content
@@ -253,7 +253,7 @@ export default {
message: '加载中……' message: '加载中……'
}) })
let data = {} let data = {}
getSignInvalid(data).then(res => { getSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
this.signInvalid = res.content.sign this.signInvalid = res.content.sign
@@ -273,7 +273,7 @@ export default {
sign: signInvalid sign: signInvalid
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
checkSignInvalid(data).then(res => { checkSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
that.$toast.clear() that.$toast.clear()
let status = res.content.status let status = res.content.status
@@ -354,7 +354,8 @@ export default {
number: that.list.applyerCertiCode, number: that.list.applyerCertiCode,
//姓名 //姓名
name: that.list.applyerName, name: that.list.applyerName,
businessSource: '3' businessSource: '3',
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}) })
// const authRes = await new Promise(resolve => { // const authRes = await new Promise(resolve => {
// resolve(JSON.stringify({ state: '0' })) // resolve(JSON.stringify({ state: '0' }))
@@ -380,7 +381,7 @@ export default {
let data = { realName: this.idcardData.idcardName, idno: this.idcardData.idcardNumber, redirectUrl: location.origin + '/#' + this.$route.fullPath } let data = { realName: this.idcardData.idcardName, idno: this.idcardData.idcardNumber, redirectUrl: location.origin + '/#' + this.$route.fullPath }
console.log('获取URL请求参数', data) console.log('获取URL请求参数', data)
getRecognitionUrl(data).then( getRecognitionUrl(data).then(
res => { (res) => {
console.log('getRecognitionUrl', res) console.log('getRecognitionUrl', res)
if (res.result == '0') { if (res.result == '0') {
localStorage.setItem('faceAuthWeXin-requestId', JSON.stringify(res.content.requestId)) localStorage.setItem('faceAuthWeXin-requestId', JSON.stringify(res.content.requestId))
@@ -390,7 +391,7 @@ export default {
this.$toast(res.resultMessage) this.$toast(res.resultMessage)
} }
}, },
error => { (error) => {
console.log(error) console.log(error)
} }
) )
@@ -398,7 +399,7 @@ export default {
}, },
getRecognitionResult(requestId, bizToken) { getRecognitionResult(requestId, bizToken) {
getRecognitionResult({ requestId, bizToken }) getRecognitionResult({ requestId, bizToken })
.then(res => { .then((res) => {
console.log('getRecognitionResult', res) console.log('getRecognitionResult', res)
if (res.result == '0') { if (res.result == '0') {
this.showRead() this.showRead()
@@ -406,7 +407,7 @@ export default {
this.$toast(res.resultMessage) this.$toast(res.resultMessage)
} }
}) })
.catch(error => { .catch((error) => {
console.log(error) console.log(error)
}) })
localStorage.setItem('faceAuthWeXin-requestId', '') localStorage.setItem('faceAuthWeXin-requestId', '')
@@ -445,7 +446,7 @@ export default {
localStorage.setItem('successClaimNo', '') localStorage.setItem('successClaimNo', '')
let that = this let that = this
let data = { businessNo: localStorage.getItem('businessNo') } let data = { businessNo: localStorage.getItem('businessNo') }
submit(data).then(res => { submit(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
localStorage.successClaimNo = res.content.claimNo localStorage.successClaimNo = res.content.claimNo
that.$jump({ that.$jump({

View File

@@ -144,7 +144,7 @@
<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"
@@ -178,7 +178,7 @@
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"
@@ -509,7 +509,7 @@ export default {
} }
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
checkPhone(data).then(res => { checkPhone(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
console.log(res) console.log(res)
this.show = true this.show = true
@@ -578,7 +578,7 @@ export default {
operateCode: this.customerMobile, operateCode: this.customerMobile,
system: 'agentApp', system: 'agentApp',
operateCodeType: '0' operateCodeType: '0'
}).then(res => { }).then((res) => {
console.log(res) console.log(res)
if (res.result == 0) { if (res.result == 0) {
this.sid = res.sessionId this.sid = res.sessionId
@@ -750,8 +750,9 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', { const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredInfo.idNo, //身份证号码 number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名 name: that.saleInsuredInfo.name, //姓名
}).then(data => { orderNo: CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
// 保存rid 数据 // 保存rid 数据
that.saveCustomerRidInfo('appnt_rid', 'B') that.saveCustomerRidInfo('appnt_rid', 'B')
@@ -824,8 +825,9 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', { const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredPersonInfo.idNo, //身份证号码 number: that.saleInsuredPersonInfo.idNo, //身份证号码
name: that.saleInsuredPersonInfo.name //姓名 name: that.saleInsuredPersonInfo.name, //姓名
}).then(data => { orderNo: CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
that.saveCustomerRidInfo('insured_rid', 'B') that.saveCustomerRidInfo('insured_rid', 'B')
that.insuredUrl() that.insuredUrl()
@@ -981,7 +983,8 @@ export default {
} }
}) })
} else { } else {
console.log(location.origin + console.log(
location.origin +
'/#/insureAgain/signatureConfirmation?orderNo=' + '/#/insureAgain/signatureConfirmation?orderNo=' +
localStorage.orderNo + localStorage.orderNo +
'&token=' + '&token=' +
@@ -993,7 +996,8 @@ export default {
'&signInvalid=' + '&signInvalid=' +
this.signInvalid + this.signInvalid +
'&productCode=' + '&productCode=' +
localStorage.productCode) localStorage.productCode
)
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', { EWebBridge.webCallAppInJs('bridge', {
flag: 'share', flag: 'share',
@@ -1041,7 +1045,7 @@ export default {
} }
} }
// /insure/selfToHuman // /insure/selfToHuman
underWrite(data).then(res => { underWrite(data).then((res) => {
this.$toast.clear() this.$toast.clear()
let that = this let that = this
if (res.result == '0') { if (res.result == '0') {
@@ -1148,8 +1152,8 @@ export default {
getOtherType: 'RID' getOtherType: 'RID'
} }
localStorage.setItem('riskName', '') localStorage.setItem('riskName', '')
return new Promise(resolve => { return new Promise((resolve) => {
getOrderDetail(data).then(res => { getOrderDetail(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
if (res.orderDTO && res.orderDTO.prtType) { if (res.orderDTO && res.orderDTO.prtType) {
localStorage.setItem('readingProtocolType', res.orderDTO.prtType) localStorage.setItem('readingProtocolType', res.orderDTO.prtType)
@@ -1165,7 +1169,6 @@ export default {
!!res.orderDTO.productDTO.special.content && !!res.orderDTO.productDTO.special.content &&
res.orderDTO.productDTO.special.content !== '' res.orderDTO.productDTO.special.content !== ''
) { ) {
let content = res.orderDTO.productDTO.special.content let content = res.orderDTO.productDTO.special.content
try { try {
@@ -1219,7 +1222,7 @@ export default {
} }
that.appnt = res.orderDTO.appntDTO that.appnt = res.orderDTO.appntDTO
that.date = res.orderDTO.orderInfoDTO.appntDateLabel that.date = res.orderDTO.orderInfoDTO.appntDateLabel
res.orderDTO.ebizSignDTOS.map(item => { res.orderDTO.ebizSignDTOS.map((item) => {
if (item.signType == '0' || item.signType == '2') { if (item.signType == '0' || item.signType == '2') {
if (!localStorage.changeCard) { if (!localStorage.changeCard) {
if (item.documentCode != '5') { if (item.documentCode != '5') {
@@ -1242,7 +1245,7 @@ export default {
return a.key - b.key return a.key - b.key
}) })
//获取投保和被保险人电子投保单签字状态 //获取投保和被保险人电子投保单签字状态
that.appntSign.map(item => { that.appntSign.map((item) => {
// 判断是否双录 // 判断是否双录
if (item.documentCode == '6') { if (item.documentCode == '6') {
localStorage.doubleRecordFlag = '1' localStorage.doubleRecordFlag = '1'
@@ -1251,7 +1254,7 @@ export default {
that.appntSignStatus = item.documentStatus that.appntSignStatus = item.documentStatus
} }
}) })
that.insuredSign.map(item => { that.insuredSign.map((item) => {
if (item.documentCode == '2') { if (item.documentCode == '2') {
that.insuredSignStatus = item.documentStatus that.insuredSignStatus = item.documentStatus
} }
@@ -1299,7 +1302,7 @@ export default {
message: '加载中……' message: '加载中……'
}) })
let data = {} let data = {}
getSignInvalid(data).then(res => { getSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
this.signInvalid = res.content.sign this.signInvalid = res.content.sign
@@ -1320,8 +1323,8 @@ export default {
let data = { let data = {
sign: signInvalid sign: signInvalid
} }
return new Promise(resolve => { return new Promise((resolve) => {
checkSignInvalid(data).then(res => { checkSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
that.$toast.clear() that.$toast.clear()
let status = res.content.status let status = res.content.status
@@ -1385,7 +1388,7 @@ export default {
businessSource: this.idcardData.businessSource businessSource: this.idcardData.businessSource
} }
getRecognitionUrl(data).then( getRecognitionUrl(data).then(
res => { (res) => {
if (res.result == '0') { if (res.result == '0') {
localStorage.setItem('faceAuthWeXin-requestId', JSON.stringify(res.content.requestId)) localStorage.setItem('faceAuthWeXin-requestId', JSON.stringify(res.content.requestId))
localStorage.setItem('faceAuthWeXin-bizToken', JSON.stringify(res.content.bizToken)) localStorage.setItem('faceAuthWeXin-bizToken', JSON.stringify(res.content.bizToken))
@@ -1394,7 +1397,7 @@ export default {
this.$toast(res.resultMessage) this.$toast(res.resultMessage)
} }
}, },
error => { (error) => {
console.log(error) console.log(error)
} }
) )
@@ -1403,7 +1406,7 @@ export default {
getRecognitionResult(requestId, bizToken) { getRecognitionResult(requestId, bizToken) {
return new Promise(() => { return new Promise(() => {
getRecognitionResult({ requestId, bizToken }).then( getRecognitionResult({ requestId, bizToken }).then(
res => { (res) => {
if (res.result == '0') { if (res.result == '0') {
this.recognizeResult = res.result this.recognizeResult = res.result
} else { } else {
@@ -1411,7 +1414,7 @@ export default {
} }
this.sendimage(this.recognizeResult) this.sendimage(this.recognizeResult)
}, },
error => { (error) => {
console.log(error) console.log(error)
} }
) )
@@ -1450,7 +1453,7 @@ export default {
} }
} }
// 保存rid 认证结果 不阻断流程 // 保存rid 认证结果 不阻断流程
saveCustomerRid(param).then(res => { saveCustomerRid(param).then((res) => {
console.log('saveCustomerRid', res) console.log('saveCustomerRid', res)
}) })
} }

View File

@@ -30,7 +30,9 @@
<div v-if="active === 'uncommit'"> <div v-if="active === 'uncommit'">
<van-button size="small" round type="danger" @click="uncommitInsureDetail(order)" plain>查看详情</van-button> <van-button size="small" round type="danger" @click="uncommitInsureDetail(order)" plain>查看详情</van-button>
<van-button v-if="canRevoke[order.newOrderStatus]" class="ml10" size="small" round type="danger" @click="revokeOrder(order)">撤单</van-button> <van-button v-if="canRevoke[order.newOrderStatus]" class="ml10" size="small" round type="danger" @click="revokeOrder(order)">撤单</van-button>
<van-button class="ml10" size="small" round type="danger" @click="insureAgain(order)">{{ order.newOrderStatus == '02'?'待支付':'重新投保'}}</van-button> <van-button class="ml10" size="small" round type="danger" @click="insureAgain(order)">{{
order.newOrderStatus == '02' ? '待支付' : '重新投保'
}}</van-button>
</div> </div>
<div v-if="active === 'commit'"> <div v-if="active === 'commit'">
<van-button v-if="canRevoke[order.newOrderStatus]" class="ml10" size="small" round type="danger" @click="revokeOrder(order)">撤单</van-button> <van-button v-if="canRevoke[order.newOrderStatus]" class="ml10" size="small" round type="danger" @click="revokeOrder(order)">撤单</van-button>
@@ -74,7 +76,9 @@
<p style="text-indent: 28px"> <p style="text-indent: 28px">
您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{ 您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{
orderInfo.policyNo orderInfo.policyNo
}}产品名称为{{ orderInfo.riskName }}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认 }}产品名称为{{
orderInfo.riskName
}}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认
</p> </p>
<p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p> <p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p>
<p style="text-indent: 28px"> <p style="text-indent: 28px">
@@ -95,7 +99,9 @@
<p style="text-indent: 28px"> <p style="text-indent: 28px">
您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{ 您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{
orderInfo.policyNo orderInfo.policyNo
}}产品名称为{{ orderInfo.riskName }}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认 }}产品名称为{{
orderInfo.riskName
}}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认
</p> </p>
<p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p> <p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p>
<p style="text-indent: 28px"> <p style="text-indent: 28px">
@@ -180,15 +186,15 @@ export default {
isShow: false, isShow: false,
orderInfo: {}, orderInfo: {},
canRevoke: { canRevoke: {
'19': true, 19: true,
'02': true, '02': true,
'48': true, 48: true,
'49': true, 49: true,
'55': true, 55: true,
'58': true, 58: true,
'46': true, 46: true,
'50': true, 50: true,
'51': true 51: true
}, },
revokePanelShow: false, revokePanelShow: false,
sms: '', sms: '',
@@ -206,7 +212,12 @@ export default {
NewItems() { NewItems() {
var NewItems = [] var NewItems = []
this.policyListDTOList.map((item) => { this.policyListDTOList.map((item) => {
if (item.riskName.search(this.searchName) != -1 || item.policyNo.search(this.searchName) != -1 || item.appntName.search(this.searchName) != -1 || item.insuredName.search(this.searchName) != -1) { if (
item.riskName.search(this.searchName) != -1 ||
item.policyNo.search(this.searchName) != -1 ||
item.appntName.search(this.searchName) != -1 ||
item.insuredName.search(this.searchName) != -1
) {
if (item.reInsuranceState != null && item.reInsuranceState != '') { if (item.reInsuranceState != null && item.reInsuranceState != '') {
if (this.active === 'uncommit') { if (this.active === 'uncommit') {
if ( if (
@@ -316,7 +327,8 @@ export default {
window.EWebBridge.webCallAppInJs('face_auth', { window.EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: res.orderDTO.appntDTO.idNo, //身份证号码 number: res.orderDTO.appntDTO.idNo, //身份证号码
name: res.orderDTO.appntDTO.name //姓名 name: res.orderDTO.appntDTO.name, //姓名,
orderNo: CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => { }).then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
this.goUrl(res, order) this.goUrl(res, order)

View File

@@ -177,7 +177,8 @@ export default {
this.toFace({ this.toFace({
number: this.customerInfo.idNo, //身份证号码 number: this.customerInfo.idNo, //身份证号码
name: this.customerInfo.customerName, //姓名 name: this.customerInfo.customerName, //姓名
businessSource: '4' //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '4', //业务来源:1-电投2-入司3-理赔4-保全
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}) })
} }
} else if (this.entry == 'BC') { } else if (this.entry == 'BC') {
@@ -193,7 +194,8 @@ export default {
this.toFace({ this.toFace({
number: this.policy.insuredInfo.idNo, //身份证号码 number: this.policy.insuredInfo.idNo, //身份证号码
name: this.policy.insuredInfo.insuredName, //姓名 name: this.policy.insuredInfo.insuredName, //姓名
businessSource: '4' //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '4', //业务来源:1-电投2-入司3-理赔4-保全
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}) })
} }
} else { } else {
@@ -204,7 +206,8 @@ export default {
this.toFace({ this.toFace({
number: this.policy.appntInfo.idNo, //身份证号码 number: this.policy.appntInfo.idNo, //身份证号码
name: this.policy.appntInfo.appntName, //姓名 name: this.policy.appntInfo.appntName, //姓名
businessSource: '4' //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '4', //业务来源:1-电投2-入司3-理赔4-保全
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}) })
} }
} }
@@ -244,7 +247,7 @@ export default {
// console.log('--跳过人脸识别--返回识别成功') // console.log('--跳过人脸识别--返回识别成功')
// resolve(JSON.stringify({ state: '0' })) // resolve(JSON.stringify({ state: '0' }))
// }) // })
.then(data => { .then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
this.jumpNextPage(this.path) this.jumpNextPage(this.path)
} else { } else {

View File

@@ -180,7 +180,7 @@ export default {
operateCode: this.customerMobile, operateCode: this.customerMobile,
system: 'agentApp', system: 'agentApp',
operateCodeType: '0' operateCodeType: '0'
}).then(res => { }).then((res) => {
console.log(res) console.log(res)
if (res.result == 0) { if (res.result == 0) {
this.sid = res.sessionId this.sid = res.sessionId
@@ -238,7 +238,7 @@ export default {
this.authCode = null this.authCode = null
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
checkPhone(data).then(res => { checkPhone(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
console.log(res) console.log(res)
this.show = true this.show = true
@@ -260,7 +260,7 @@ export default {
// policyNo: '809920190000597308' // policyNo: '809920190000597308'
} }
getPolicyDetail(data).then(res => { getPolicyDetail(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
let appntDTO = res.content.appntDTO let appntDTO = res.content.appntDTO
let orderInfoDTO = res.content.orderInfoDTO let orderInfoDTO = res.content.orderInfoDTO
@@ -282,8 +282,8 @@ export default {
that.appntDTO = appntDTO that.appntDTO = appntDTO
this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(appntDTO)) this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(appntDTO))
// 被保险人信息 // 被保险人信息
res.content.insuredDTOs.map(insured => { res.content.insuredDTOs.map((insured) => {
insured.riskDTOLst.map(risk => { insured.riskDTOLst.map((risk) => {
Number(risk.payIntv) Number(risk.payIntv)
switch (risk.payIntv) { switch (risk.payIntv) {
case -1: case -1:
@@ -320,7 +320,7 @@ export default {
this.filterData(dataDictionary.sex, 'sex', insured) this.filterData(dataDictionary.sex, 'sex', insured)
this.filterData(dataDictionary.idType, 'idType', insured) this.filterData(dataDictionary.idType, 'idType', insured)
this.filterData(dataDictionary.relationToAppnt, 'relation', insured) this.filterData(dataDictionary.relationToAppnt, 'relation', insured)
insured.bnfDTOs.map(bnf => { insured.bnfDTOs.map((bnf) => {
this.filterData(dataDictionary.bnfType, 'bnfType', bnf) this.filterData(dataDictionary.bnfType, 'bnfType', bnf)
this.filterData(dataDictionary.sex, 'sex', bnf) this.filterData(dataDictionary.sex, 'sex', bnf)
this.filterData(dataDictionary.idType, 'idType', bnf) this.filterData(dataDictionary.idType, 'idType', bnf)
@@ -337,7 +337,7 @@ export default {
}, },
//根据数据字典 将后端返回的数据渲染到页面中 //根据数据字典 将后端返回的数据渲染到页面中
filterData(dictionary, key, pageData) { filterData(dictionary, key, pageData) {
dictionary.forEach(item => { dictionary.forEach((item) => {
if (pageData[key] == item.id) { if (pageData[key] == item.id) {
pageData[key + 'Text'] = item.text //渲染页面使用的字段 pageData[key + 'Text'] = item.text //渲染页面使用的字段
} }
@@ -351,8 +351,9 @@ export default {
//证件类型为身份证时,进行人脸识别 //证件类型为身份证时,进行人脸识别
EWebBridge.webCallAppInJs('face_auth', { EWebBridge.webCallAppInJs('face_auth', {
number: this.appntDTO.idNo, //身份证号码 number: this.appntDTO.idNo, //身份证号码
name: this.appntDTO.name //姓名 name: this.appntDTO.name, //姓名
}).then(data => { orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
this.$toast.loading({ this.$toast.loading({
duration: 0, // 持续展示 toast duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击 forbidClick: true, // 禁用背景点击
@@ -380,7 +381,7 @@ export default {
let params = { let params = {
contNo: window.localStorage.getItem('policyNo') contNo: window.localStorage.getItem('policyNo')
} }
getReceiptSign(params).then(res => { getReceiptSign(params).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
window.localStorage.setItem('insurance-policyUrl', res.signUrl) window.localStorage.setItem('insurance-policyUrl', res.signUrl)

View File

@@ -179,7 +179,7 @@ export default {
operateCode: this.customerMobile, operateCode: this.customerMobile,
system: 'agentApp', system: 'agentApp',
operateCodeType: '0' operateCodeType: '0'
}).then(res => { }).then((res) => {
console.log(res) console.log(res)
if (res.result == 0) { if (res.result == 0) {
this.sid = res.sessionId this.sid = res.sessionId
@@ -237,7 +237,7 @@ export default {
this.authCode = null this.authCode = null
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
checkPhone(data).then(res => { checkPhone(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
console.log(res) console.log(res)
this.show = true this.show = true
@@ -259,7 +259,7 @@ export default {
// policyNo: '809920190000597308' // policyNo: '809920190000597308'
} }
getPolicyDetail(data).then(res => { getPolicyDetail(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
let appntDTO = res.content.appntDTO let appntDTO = res.content.appntDTO
let orderInfoDTO = res.content.orderInfoDTO let orderInfoDTO = res.content.orderInfoDTO
@@ -281,8 +281,8 @@ export default {
that.appntDTO = appntDTO that.appntDTO = appntDTO
this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(appntDTO)) this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(appntDTO))
// 被保险人信息 // 被保险人信息
res.content.insuredDTOs.map(insured => { res.content.insuredDTOs.map((insured) => {
insured.riskDTOLst.map(risk => { insured.riskDTOLst.map((risk) => {
Number(risk.payIntv) Number(risk.payIntv)
switch (risk.payIntv) { switch (risk.payIntv) {
case -1: case -1:
@@ -319,7 +319,7 @@ export default {
this.filterData(dataDictionary.sex, 'sex', insured) this.filterData(dataDictionary.sex, 'sex', insured)
this.filterData(dataDictionary.idType, 'idType', insured) this.filterData(dataDictionary.idType, 'idType', insured)
this.filterData(dataDictionary.relationToAppnt, 'relation', insured) this.filterData(dataDictionary.relationToAppnt, 'relation', insured)
insured.bnfDTOs.map(bnf => { insured.bnfDTOs.map((bnf) => {
this.filterData(dataDictionary.bnfType, 'bnfType', bnf) this.filterData(dataDictionary.bnfType, 'bnfType', bnf)
this.filterData(dataDictionary.sex, 'sex', bnf) this.filterData(dataDictionary.sex, 'sex', bnf)
this.filterData(dataDictionary.idType, 'idType', bnf) this.filterData(dataDictionary.idType, 'idType', bnf)
@@ -336,7 +336,7 @@ export default {
}, },
//根据数据字典 将后端返回的数据渲染到页面中 //根据数据字典 将后端返回的数据渲染到页面中
filterData(dictionary, key, pageData) { filterData(dictionary, key, pageData) {
dictionary.forEach(item => { dictionary.forEach((item) => {
if (pageData[key] == item.id) { if (pageData[key] == item.id) {
pageData[key + 'Text'] = item.text //渲染页面使用的字段 pageData[key + 'Text'] = item.text //渲染页面使用的字段
} }
@@ -350,8 +350,9 @@ export default {
//证件类型为身份证时,进行人脸识别 //证件类型为身份证时,进行人脸识别
EWebBridge.webCallAppInJs('face_auth', { EWebBridge.webCallAppInJs('face_auth', {
number: this.appntDTO.idNo, //身份证号码 number: this.appntDTO.idNo, //身份证号码
name: this.appntDTO.name //姓名 name: this.appntDTO.name, //姓名
}).then(data => { orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
this.$toast.loading({ this.$toast.loading({
duration: 0, // 持续展示 toast duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击 forbidClick: true, // 禁用背景点击
@@ -379,7 +380,7 @@ export default {
let params = { let params = {
contNo: window.localStorage.getItem('policyNo') contNo: window.localStorage.getItem('policyNo')
} }
getReceiptSign(params).then(res => { getReceiptSign(params).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
window.localStorage.setItem('insurance-policyUrl', res.signUrl) window.localStorage.setItem('insurance-policyUrl', res.signUrl)

View File

@@ -34,42 +34,64 @@
代理人 代理人
<span class="ml20">{{ recmd.name }}</span> <span class="ml20">{{ recmd.name }}</span>
</div> </div>
<p class="mb20" style="color: #323233;">以下内容需要您按照顺序阅读并签字确认:</p> <p class="mb20" style="color: #323233">以下内容需要您按照顺序阅读并签字确认:</p>
<div v-if="changeCard"> <div v-if="changeCard">
<p style="display: flex;align-items: center;justify-content: space-between;" class="fs20"> <p style="display: flex; align-items: center; justify-content: space-between" class="fs20">
<span style="color: #323233;">需阅读</span> <span style="color: #323233">需阅读</span>
<span style="display: flex;align-items: center;"> <span style="display: flex; align-items: center">
<img v-if="agentSign.documentStatus == '1' || agentSign.documentStatus == '3'" style="width: 16px;" :src="src"/> <img v-if="agentSign.documentStatus == '1' || agentSign.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="agentSign.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;">已阅读</span> <span v-if="agentSign.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf">已阅读</span>
<span v-if="agentSign.documentStatus == '3'" style="margin-left: 15px;color: #03ceaf;">签署完成</span> <span v-if="agentSign.documentStatus == '3'" style="margin-left: 15px; color: #03ceaf">签署完成</span>
</span> </span>
</p> </p>
<p class="mb20 fs20"> <p class="mb20 fs20">
<span class="text" style="color:red;opacity: 0.7;">{{ agentSign.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ agentSign.documentName }}</span>
</p> </p>
</div> </div>
<div v-else> <div v-else>
<div v-for="(item, index) in agentSign" :key="index"> <div v-for="(item, index) in agentSign" :key="index">
<p style="display: flex;align-items: center;justify-content: space-between;" class="fs20"> <p style="display: flex; align-items: center; justify-content: space-between" class="fs20">
<span style="color: #323233;">{{ item.documentCode == '1' || item.documentCode == '3' || item.documentCode == '8' || item.documentCode == '9' || item.documentCode == '12' || item.documentCode == '13' || item.documentCode == '14' ? '需阅读' : '需阅读并签署' }}</span> <span style="color: #323233">{{
<span style="display: flex;align-items: center;"> item.documentCode == '1' ||
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px;" :src="src"/> item.documentCode == '3' ||
<span v-if="item.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;">已阅读</span> item.documentCode == '8' ||
<span v-if="item.documentStatus == '3'" style="margin-left: 15px;color: #03ceaf;">签署完成</span> item.documentCode == '9' ||
item.documentCode == '12' ||
item.documentCode == '13' ||
item.documentCode == '14'
? '需阅读'
: '需阅读并签署'
}}</span>
<span style="display: flex; align-items: center">
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="item.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf">已阅读</span>
<span v-if="item.documentStatus == '3'" style="margin-left: 15px; color: #03ceaf">签署完成</span>
</span> </span>
</p> </p>
<p class="mb20 fs20" @click="gosomefile(item, index, '3')"> <p class="mb20 fs20" @click="gosomefile(item, index, '3')">
<span class="text" style="color:red;opacity: 0.7;">{{ item.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ item.documentName }}</span>
</p> </p>
</div> </div>
</div> </div>
<p v-if="signMap.agentSign" style="display: flex;align-items: center;border-top: 1px solid #eee;margin-bottom: 15px;padding-top: 10px;" class="fs20"> <p
<span style="color: #323233;">代理人签名</span> v-if="signMap.agentSign"
<img :src="signImgUrl + signMap.agentSign" style="height: 50px;margin-left: 20px;width: auto;"/> style="display: flex; align-items: center; border-top: 1px solid #eee; margin-bottom: 15px; padding-top: 10px"
class="fs20"
>
<span style="color: #323233">代理人签名</span>
<img :src="signImgUrl + signMap.agentSign" style="height: 50px; margin-left: 20px; width: auto" />
</p> </p>
<p class="fs20" style="color: #323233;" v-if="airSign != '1'">点击立即阅读签名按钮进行相关操作</p> <p class="fs20" style="color: #323233" v-if="airSign != '1'">点击立即阅读签名按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20"> <div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20">
<van-button type="danger" size="normal" class="w130 fs16" style="height:40px;display: flex;justify-content: center;align-items: center;" round v-no-more-click="1000" @click="start_agent('3')"> <van-button
type="danger"
size="normal"
class="w130 fs16"
style="height: 40px; display: flex; justify-content: center; align-items: center"
round
v-no-more-click="1000"
@click="start_agent('3')"
>
{{ agentSignStatus == '3' ? '面对面重签' : '立即阅读签名' }} {{ agentSignStatus == '3' ? '面对面重签' : '立即阅读签名' }}
</van-button> </van-button>
</div> </div>
@@ -83,49 +105,80 @@
投保人 投保人
<span class="ml20">{{ appnt.name }}</span> <span class="ml20">{{ appnt.name }}</span>
</div> </div>
<p class="mb20 fs20" style="color: #323233;">以下内容需要您按照顺序阅读并签字确认:</p> <p class="mb20 fs20" style="color: #323233">以下内容需要您按照顺序阅读并签字确认:</p>
<div v-if="changeCard"> <div v-if="changeCard">
<div v-for="(item, index) in appntSign" :key="index"> <div v-for="(item, index) in appntSign" :key="index">
<p style="display: flex;align-items: center;justify-content: space-between;" class="fs20"> <p style="display: flex; align-items: center; justify-content: space-between" class="fs20">
<span style="color: #323233;">需阅读</span> <span style="color: #323233">需阅读</span>
<span style="display: flex;align-items: center;"> <span style="display: flex; align-items: center">
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px;" :src="src"/> <img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="item.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;" class="fs20">已阅读</span> <span v-if="item.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf" class="fs20">已阅读</span>
</span> </span>
</p> </p>
<p class="mb20 fs20" @click="gosomefile(item, index, saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"> <p class="mb20 fs20" @click="gosomefile(item, index, saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
<span class="text" style="color:red;opacity: 0.7;">{{ item.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ item.documentName }}</span>
</p> </p>
</div> </div>
</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 style="display: flex;align-items: center;justify-content: space-between;" class="fs20"> <p style="display: flex; align-items: center; justify-content: space-between" class="fs20">
<span style="color: #323233;">{{ item.documentCode == '1' || item.documentCode == '3' || item.documentCode == '8' || item.documentCode == '9' || item.documentCode == '12' || item.documentCode == '13' || item.documentCode == '14' ? '需阅读' : '需阅读并签署' }}</span> <span style="color: #323233">{{
<span style="display: flex;align-items: center;"> item.documentCode == '1' ||
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px;" :src="src"/> item.documentCode == '3' ||
<span v-if="item.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;" class="fs20">已阅读</span> item.documentCode == '8' ||
<span v-if="item.documentStatus == '3'" style="margin-left: 15px;color: #03ceaf;">签署完成</span> item.documentCode == '9' ||
item.documentCode == '12' ||
item.documentCode == '13' ||
item.documentCode == '14'
? '需阅读'
: '需阅读并签署'
}}</span>
<span style="display: flex; align-items: center">
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="item.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf" class="fs20">已阅读</span>
<span v-if="item.documentStatus == '3'" style="margin-left: 15px; color: #03ceaf">签署完成</span>
</span> </span>
</p> </p>
<p class="mb20 fs20" @click="gosomefile(item, index, saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"> <p class="mb20 fs20" @click="gosomefile(item, index, saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
<span class="text" style="color:red;opacity: 0.7;">{{ item.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ item.documentName }}</span>
</p> </p>
</div> </div>
</div> </div>
<p v-if="signMap.appntSign && !changeCard" style="display: flex;align-items: center;border-top: 1px solid #eee;margin-bottom: 15px;padding-top: 10px;" class="fs20"> <p
<span style="color: #323233;">投保人签名</span> v-if="signMap.appntSign && !changeCard"
<img :src="signImgUrl + signMap.appntSign" style="height: 50px;margin-left: 20px;width: auto;"/> style="display: flex; align-items: center; border-top: 1px solid #eee; margin-bottom: 15px; padding-top: 10px"
class="fs20"
>
<span style="color: #323233">投保人签名</span>
<img :src="signImgUrl + signMap.appntSign" style="height: 50px; margin-left: 20px; width: auto" />
</p> </p>
<p class="fs20" style="color: #323233;" v-if="airSign != '1' && appntSignStatus != '3'">点击分享签名立即阅读签名按钮进行相关操作</p> <p class="fs20" style="color: #323233" v-if="airSign != '1' && appntSignStatus != '3'">点击分享签名立即阅读签名按钮进行相关操作</p>
<p class="fs20" style="color: #323233;" v-if="airSign != '1' && appntSignStatus == '3'">点击分享重签面对面重签按钮进行相关操作</p> <p class="fs20" style="color: #323233" v-if="airSign != '1' && appntSignStatus == '3'">点击分享重签面对面重签按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20"> <div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20">
<van-button v-if="isShow" type="danger" size="normal" class="w150 fs16" style="height:40px;display: flex;align-items: center;justify-content: center;" round v-no-more-click="1000" @click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"> <van-button
v-if="isShow"
type="danger"
size="normal"
class="w150 fs16"
style="height: 40px; display: flex; align-items: center; justify-content: center"
round
v-no-more-click="1000"
@click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>
{{ appntSignStatus == '3' ? '分享重签' : '分享签名' }} {{ appntSignStatus == '3' ? '分享重签' : '分享签名' }}
</van-button> </van-button>
<!-- 前端测试 --> <!-- 前端测试 -->
<van-button type="danger" size="normal" class="w150 fs16" style="height:40px;display: flex;align-items: center;justify-content: center;" round v-no-more-click="1000" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"> <van-button
type="danger"
size="normal"
class="w150 fs16"
style="height: 40px; display: flex; align-items: center; justify-content: center"
round
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>
{{ appntSignStatus == '3' ? '面对面重签' : '立即阅读签名' }} {{ appntSignStatus == '3' ? '面对面重签' : '立即阅读签名' }}
</van-button> </van-button>
</div> </div>
@@ -140,32 +193,63 @@
被保险人 被保险人
<span class="ml20">{{ item.name }}</span> <span class="ml20">{{ item.name }}</span>
</div> </div>
<p class="mb20 fs20" style="color: #323233;">以下内容需要您按照顺序阅读并签字确认:</p> <p class="mb20 fs20" style="color: #323233">以下内容需要您按照顺序阅读并签字确认:</p>
<div v-for="(item, index) in insuredSign" :key="index"> <div v-for="(item, index) in insuredSign" :key="index">
<p style="display: flex;align-items: center;justify-content: space-between;" class="fs20"> <p style="display: flex; align-items: center; justify-content: space-between" class="fs20">
<span style="color: #323233;">{{ item.documentCode == '1' || item.documentCode == '3' || item.documentCode == '8' || item.documentCode == '9' || item.documentCode == '12' || item.documentCode == '13' || item.documentCode == '14' ? '需阅读' : '需阅读并签署' }}</span> <span style="color: #323233">{{
<span style="display: flex;align-items: center;"> item.documentCode == '1' ||
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px;" :src="src"/> item.documentCode == '3' ||
<span v-if="item.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;">已阅读</span> item.documentCode == '8' ||
<span v-if="item.documentStatus == '3'" style="margin-left: 15px;color: #03ceaf;">签署完成</span> item.documentCode == '9' ||
item.documentCode == '12' ||
item.documentCode == '13' ||
item.documentCode == '14'
? '需阅读'
: '需阅读并签署'
}}</span>
<span style="display: flex; align-items: center">
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="item.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf">已阅读</span>
<span v-if="item.documentStatus == '3'" style="margin-left: 15px; color: #03ceaf">签署完成</span>
</span> </span>
</p> </p>
<p class="mb20 fs20" @click="gosomefile(item, index, '1')"> <p class="mb20 fs20" @click="gosomefile(item, index, '1')">
<span class="text" style="color:red;opacity: 0.7;">{{ item.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ item.documentName }}</span>
</p> </p>
</div> </div>
<p v-if="signMap.insuredSign" style="display: flex;align-items: center;border-top: 1px solid #eee;margin-bottom: 15px;padding-top: 10px;" class="fs20"> <p
<span v-if="insuredAge >= 18" style="color: #323233;">被保险人签名</span> v-if="signMap.insuredSign"
<span v-if="insuredAge < 18" style="color: #323233;">被保险人/监护人签名</span> style="display: flex; align-items: center; border-top: 1px solid #eee; margin-bottom: 15px; padding-top: 10px"
<img :src="signImgUrl + signMap.insuredSign" style="height: 50px;margin-left: 20px;width: auto;"/> class="fs20"
>
<span v-if="insuredAge >= 18" style="color: #323233">被保险人签名</span>
<span v-if="insuredAge < 18" style="color: #323233">被保险人/监护人签名</span>
<img :src="signImgUrl + signMap.insuredSign" style="height: 50px; margin-left: 20px; width: auto" />
</p> </p>
<p class="fs20" style="color: #323233;" v-if="airSign != '1' && insuredSignStatus != '3'">点击分享签名立即阅读签名按钮进行相关操作</p> <p class="fs20" style="color: #323233" v-if="airSign != '1' && insuredSignStatus != '3'">点击分享签名立即阅读签名按钮进行相关操作</p>
<p class="fs20" style="color: #323233;" v-if="airSign != '1' && insuredSignStatus == '3'">点击分享重签面对面重签按钮进行相关操作</p> <p class="fs20" style="color: #323233" v-if="airSign != '1' && insuredSignStatus == '3'">点击分享重签面对面重签按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20"> <div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20">
<van-button v-if="isShow" type="danger" size="normal" class="w150 fs16" style="height:40px;display: flex;align-items: center;justify-content: center;" @click="share('1')" round v-no-more-click="1000"> <van-button
v-if="isShow"
type="danger"
size="normal"
class="w150 fs16"
style="height: 40px; display: flex; align-items: center; justify-content: center"
@click="share('1')"
round
v-no-more-click="1000"
>
{{ insuredSignStatus == '3' ? '分享重签' : '分享签名' }} {{ insuredSignStatus == '3' ? '分享重签' : '分享签名' }}
</van-button> </van-button>
<van-button type="danger" size="normal" round class="w150 fs16" style="height:40px;display: flex;justify-content: center;align-items: center;" @click="start_ocr('1')" v-no-more-click="1000"> <van-button
type="danger"
size="normal"
round
class="w150 fs16"
style="height: 40px; display: flex; justify-content: center; align-items: center"
@click="start_ocr('1')"
v-no-more-click="1000"
>
{{ insuredSignStatus == '3' ? '面对面重签' : '立即阅读签名' }} {{ insuredSignStatus == '3' ? '面对面重签' : '立即阅读签名' }}
</van-button> </van-button>
</div> </div>
@@ -183,43 +267,66 @@
投保人 投保人
<span class="ml20">{{ appnt.name }}</span> <span class="ml20">{{ appnt.name }}</span>
</div> </div>
<p class="mb20 fs20" style="color: #323233;">以下内容需要您按照顺序阅读并签字确认:</p> <p class="mb20 fs20" style="color: #323233">以下内容需要您按照顺序阅读并签字确认:</p>
<div v-if="changeCard" class="fs20"> <div v-if="changeCard" class="fs20">
<p style="color: #323233;">需阅读</p> <p style="color: #323233">需阅读</p>
<p style="display: flex;align-items: center;justify-content: space-between;"> <p style="display: flex; align-items: center; justify-content: space-between">
<span>需阅读</span> <span>需阅读</span>
<span style="display: flex;align-items: center;"> <span style="display: flex; align-items: center">
<img v-if="agentSign.documentStatus == '1' || agentSign.documentStatus == '3'" style="width: 16px;" :src="src"/> <img v-if="agentSign.documentStatus == '1' || agentSign.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="agentSign.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;">已阅读</span> <span v-if="agentSign.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf">已阅读</span>
<span v-if="agentSign.documentStatus == '3'" style="margin-left: 15px;color: #03ceaf;">签署完成</span> <span v-if="agentSign.documentStatus == '3'" style="margin-left: 15px; color: #03ceaf">签署完成</span>
</span> </span>
</p> </p>
<p class="mb20 fs20"> <p class="mb20 fs20">
<span class="text" style="color:red;opacity: 0.7;">{{ agentSign.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ agentSign.documentName }}</span>
</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 style="display: flex;align-items: center;justify-content: space-between;" class="fs20"> <p style="display: flex; align-items: center; justify-content: space-between" class="fs20">
<span style="color: #323233;">{{ item.documentCode == '1' || item.documentCode == '3' || item.documentCode == '8' || item.documentCode == '9' || item.documentCode == '12' || item.documentCode == '13' || item.documentCode == '14' ? '需阅读' : '需阅读并签署' }}</span> <span style="color: #323233">{{
<span style="display: flex;align-items: center;"> item.documentCode == '1' ||
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px;" :src="src"/> item.documentCode == '3' ||
<span v-if="item.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;">已阅读</span> item.documentCode == '8' ||
<span v-if="item.documentStatus == '3'" style="margin-left: 15px;color: #03ceaf;">签署完成</span> item.documentCode == '9' ||
item.documentCode == '12' ||
item.documentCode == '13' ||
item.documentCode == '14'
? '需阅读'
: '需阅读并签署'
}}</span>
<span style="display: flex; align-items: center">
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="item.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf">已阅读</span>
<span v-if="item.documentStatus == '3'" style="margin-left: 15px; color: #03ceaf">签署完成</span>
</span> </span>
</p> </p>
<p class="mb20 fs20" @click="gosomefile(item, index, saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"> <p class="mb20 fs20" @click="gosomefile(item, index, saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
<span class="text" style="color:red;opacity: 0.7;">{{ item.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ item.documentName }}</span>
</p> </p>
</div> </div>
</div> </div>
<p v-if="signMap.appntSign" style="display: flex;align-items: center;border-top: 1px solid #eee;margin-bottom: 15px;padding-top: 10px;" class="fs20"> <p
<span style="color: #323233;">投保人签名</span> v-if="signMap.appntSign"
<img :src="signImgUrl + signMap.appntSign" style="height: 50px;margin-left: 20px;width: auto;"/> style="display: flex; align-items: center; border-top: 1px solid #eee; margin-bottom: 15px; padding-top: 10px"
class="fs20"
>
<span style="color: #323233">投保人签名</span>
<img :src="signImgUrl + signMap.appntSign" style="height: 50px; margin-left: 20px; width: auto" />
</p> </p>
<p class="fs20" style="color: #323233;" v-if="airSign != '1'">点击立即阅读签名按钮进行相关操作</p> <p class="fs20" style="color: #323233" v-if="airSign != '1'">点击立即阅读签名按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20"> <div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20">
<van-button type="danger" size="normal" class="w130 fs16" style="height:40px;display: flex;align-items: center;justify-content: center;" round :disabled="appntSignStatus == '3' && isFirstCome != 1" v-no-more-click="1000" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"> <van-button
type="danger"
size="normal"
class="w130 fs16"
style="height: 40px; display: flex; align-items: center; justify-content: center"
round
:disabled="appntSignStatus == '3' && isFirstCome != 1"
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>
立即阅读签名 立即阅读签名
</van-button> </van-button>
</div> </div>
@@ -234,27 +341,50 @@
被保险人 被保险人
<span class="ml20">{{ item.name }}</span> <span class="ml20">{{ item.name }}</span>
</div> </div>
<p class="mb20 fs20" style="color: #323233;">以下内容需要您按照顺序阅读并签字确认:</p> <p class="mb20 fs20" style="color: #323233">以下内容需要您按照顺序阅读并签字确认:</p>
<div v-for="(item, index) in insuredSign" :key="index"> <div v-for="(item, index) in insuredSign" :key="index">
<p style="display: flex;align-items: center;justify-content: space-between;" class="fs20"> <p style="display: flex; align-items: center; justify-content: space-between" class="fs20">
<span style="color: #323233;">{{ item.documentCode == '1' || item.documentCode == '3' || item.documentCode == '8' || item.documentCode == '9' || item.documentCode == '12' || item.documentCode == '13' || item.documentCode == '14' ? '需阅读' : '需阅读并签署' }}</span> <span style="color: #323233">{{
<span style="display: flex;align-items: center;"> item.documentCode == '1' ||
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px;" :src="src"/> item.documentCode == '3' ||
<span v-if="item.documentStatus == '1'" style="margin-left: 15px;color: #03ceaf;">已阅读</span> item.documentCode == '8' ||
<span v-if="item.documentStatus == '3'" style="margin-left: 15px;color: #03ceaf;">签署完成</span> item.documentCode == '9' ||
item.documentCode == '12' ||
item.documentCode == '13' ||
item.documentCode == '14'
? '需阅读'
: '需阅读并签署'
}}</span>
<span style="display: flex; align-items: center">
<img v-if="item.documentStatus == '1' || item.documentStatus == '3'" style="width: 16px" :src="src" />
<span v-if="item.documentStatus == '1'" style="margin-left: 15px; color: #03ceaf">已阅读</span>
<span v-if="item.documentStatus == '3'" style="margin-left: 15px; color: #03ceaf">签署完成</span>
</span> </span>
</p> </p>
<p class="mb20 fs20" @click="gosomefile(item, index, '1')"> <p class="mb20 fs20" @click="gosomefile(item, index, '1')">
<span class="text" style="color:red;opacity: 0.7;">{{ item.documentName }}</span> <span class="text" style="color: red; opacity: 0.7">{{ item.documentName }}</span>
</p> </p>
</div> </div>
<p v-if="signMap.insuredSign" style="display: flex;align-items: center;border-top: 1px solid #eee;margin-bottom: 15px;padding-top: 10px;" class="fs20"> <p
<span style="color: #323233;">被保人签名</span> v-if="signMap.insuredSign"
<img :src="signImgUrl + signMap.insuredSign" style="height: 50px;margin-left: 20px;width: auto;"/> style="display: flex; align-items: center; border-top: 1px solid #eee; margin-bottom: 15px; padding-top: 10px"
class="fs20"
>
<span style="color: #323233">被保人签名</span>
<img :src="signImgUrl + signMap.insuredSign" style="height: 50px; margin-left: 20px; width: auto" />
</p> </p>
<p class="fs20" style="color: #323233;" v-if="airSign != '1'">点击立即阅读签名按钮进行相关操作</p> <p class="fs20" style="color: #323233" v-if="airSign != '1'">点击立即阅读签名按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20"> <div v-if="!isInvalid" class="flex justify-content-a mt20 mb20 fs20">
<van-button type="danger" size="normal" round class="w130 fs16" style="height:40px;display: flex;align-items: center;justify-content: center;" :disabled="insuredSignStatus == '3' && isFirstCome != 1" @click="start_ocr('1')" v-no-more-click="1000"> <van-button
type="danger"
size="normal"
round
class="w130 fs16"
style="height: 40px; display: flex; align-items: center; justify-content: center"
:disabled="insuredSignStatus == '3' && isFirstCome != 1"
@click="start_ocr('1')"
v-no-more-click="1000"
>
立即阅读签名 立即阅读签名
</van-button> </van-button>
</div> </div>
@@ -267,7 +397,14 @@
<div v-if="!isWeixin"> <div v-if="!isWeixin">
<div v-if="changeCard && activeType != 'KMH'"> <div v-if="changeCard && activeType != 'KMH'">
<div class="bottom-btn bg-white" v-if="appntSign[0].documentStatus == '1'"> <div class="bottom-btn bg-white" v-if="appntSign[0].documentStatus == '1'">
<van-button class="fs16" type="danger" v-if="relationToAppnt == '1' ? true : appntSign[0].documentStatus == '1' ? true : false" size="large" @click="rePayMent" v-no-more-click="1000"> <van-button
class="fs16"
type="danger"
v-if="relationToAppnt == '1' ? true : appntSign[0].documentStatus == '1' ? true : false"
size="large"
@click="rePayMent"
v-no-more-click="1000"
>
支付 支付
</van-button> </van-button>
</div> </div>
@@ -275,7 +412,14 @@
<div v-else> <div v-else>
<!--判断代理人自保件承诺书是否签名 或者不是自保件 投保人是否都签名--> <!--判断代理人自保件承诺书是否签名 或者不是自保件 投保人是否都签名-->
<div class="bottom-btn bg-white" v-if="(agentSignStatus == '3' && appntSignStatus == '3') || (agentSignStatus == '' && appntSignStatus == '3')"> <div class="bottom-btn bg-white" v-if="(agentSignStatus == '3' && appntSignStatus == '3') || (agentSignStatus == '' && appntSignStatus == '3')">
<van-button class="fs16" type="danger" v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false" size="large" @click="next" v-no-more-click="1000"> <van-button
class="fs16"
type="danger"
v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false"
size="large"
@click="next"
v-no-more-click="1000"
>
提交 提交
</van-button> </van-button>
</div> </div>
@@ -285,13 +429,16 @@
<!-- <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 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>
<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 type="danger" size="large" @click="isVideoUrlClick()" v-no-more-click="1000"> 下一步 </van-button>
下一步
</van-button>
</div> </div>
</van-popup> </van-popup>
<!-- 短信验证 --> <!-- 短信验证 -->
@@ -423,7 +570,7 @@ export default {
isFirstCome: 0, isFirstCome: 0,
cvalidateStr: '', cvalidateStr: '',
activeType: '', activeType: '',
insuredAge:'', insuredAge: ''
} }
}, },
async created() { async created() {
@@ -767,7 +914,19 @@ export default {
// 人脸识别 // 人脸识别
async start_ocr(val) { async start_ocr(val) {
if (this.isWeixin) { if (this.isWeixin) {
let shareUrl = '?orderNo=' + this.$route.query.orderNo + '&token=' + localStorage.token + '&relationToAppnt=' + this.$route.query.relationToAppnt + '&shareCode=' + this.$route.query.shareCode + '&signInvalid=' + this.signInvalid + '&productCode=' + this.$route.query.productCode let shareUrl =
'?orderNo=' +
this.$route.query.orderNo +
'&token=' +
localStorage.token +
'&relationToAppnt=' +
this.$route.query.relationToAppnt +
'&shareCode=' +
this.$route.query.shareCode +
'&signInvalid=' +
this.signInvalid +
'&productCode=' +
this.$route.query.productCode
window.sessionStorage.setItem('shareUrl', shareUrl) window.sessionStorage.setItem('shareUrl', shareUrl)
} }
// val 0投保人 1被保险人 2本人 // val 0投保人 1被保险人 2本人
@@ -832,9 +991,7 @@ export default {
} else { } else {
thismyage = thismysaleInsuredPersonInfo.insuredAge thismyage = thismysaleInsuredPersonInfo.insuredAge
} }
if ( if (JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idType != '1' || thismyage < '18') {
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idType != '1' || thismyage < '18'
) {
that.goUrl() that.goUrl()
} else { } else {
// 白名单校验 // 白名单校验
@@ -917,7 +1074,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', { const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredInfo.idNo, //身份证号码 number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名 name: that.saleInsuredInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => { }).then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
// 保存rid 数据 // 保存rid 数据
@@ -981,7 +1139,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', { const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全 businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredPersonInfo.idNo, //身份证号码 number: that.saleInsuredPersonInfo.idNo, //身份证号码
name: that.saleInsuredPersonInfo.name //姓名 name: that.saleInsuredPersonInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => { }).then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
that.saveCustomerRidInfo('insured_rid', 'B') that.saveCustomerRidInfo('insured_rid', 'B')
@@ -1008,7 +1167,7 @@ export default {
if (that.agentSignStatus == '3') { if (that.agentSignStatus == '3') {
let thisAgentSign = JSON.parse(JSON.stringify(that.agentSign)) let thisAgentSign = JSON.parse(JSON.stringify(that.agentSign))
if (thisAgentSign && thisAgentSign.length != 0) { if (thisAgentSign && thisAgentSign.length != 0) {
thisAgentSign.forEach(item => { thisAgentSign.forEach((item) => {
if (item.documentType == '1') { if (item.documentType == '1') {
item.documentStatus = '2' item.documentStatus = '2'
} else { } else {
@@ -1020,12 +1179,11 @@ export default {
} else { } else {
window.localStorage.setItem('agentSignFile', JSON.stringify(that.agentSign)) window.localStorage.setItem('agentSignFile', JSON.stringify(that.agentSign))
} }
} } else if (window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2') {
else if(window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2') {
if (that.appntSignStatus == '3') { if (that.appntSignStatus == '3') {
let thisAppntSign = JSON.parse(JSON.stringify(that.appntSign)) let thisAppntSign = JSON.parse(JSON.stringify(that.appntSign))
if (thisAppntSign && thisAppntSign.length != 0) { if (thisAppntSign && thisAppntSign.length != 0) {
thisAppntSign.forEach(item => { thisAppntSign.forEach((item) => {
if (item.documentType == '1') { if (item.documentType == '1') {
item.documentStatus = '2' item.documentStatus = '2'
} else { } else {
@@ -1037,12 +1195,11 @@ export default {
} else { } else {
window.localStorage.setItem('appntSignFile', JSON.stringify(that.appntSign)) window.localStorage.setItem('appntSignFile', JSON.stringify(that.appntSign))
} }
} } else {
else {
if (that.insuredSignStatus == '3') { if (that.insuredSignStatus == '3') {
let thisInsuredSign = JSON.parse(JSON.stringify(that.insuredSign)) let thisInsuredSign = JSON.parse(JSON.stringify(that.insuredSign))
if (thisInsuredSign && thisInsuredSign.length != 0) { if (thisInsuredSign && thisInsuredSign.length != 0) {
thisInsuredSign.forEach(item => { thisInsuredSign.forEach((item) => {
if (item.documentType == '1') { if (item.documentType == '1') {
item.documentStatus = '2' item.documentStatus = '2'
} else { } else {
@@ -1081,13 +1238,11 @@ export default {
this.videoShow = true this.videoShow = true
this.isVideo = true this.isVideo = true
this.isVideoUrl = 'goUrl' this.isVideoUrl = 'goUrl'
} } else {
else {
if (window.localStorage.getItem('sign-val') == '3') { if (window.localStorage.getItem('sign-val') == '3') {
if (that.agentSignStatus == '3') { if (that.agentSignStatus == '3') {
path = that.agentSign[0].routePath path = that.agentSign[0].routePath
} } else {
else {
if (that.agentSign[that.agentSign.length - 1].documentStatus == 1) { if (that.agentSign[that.agentSign.length - 1].documentStatus == 1) {
path = 'signDocuments' path = 'signDocuments'
} else { } else {
@@ -1102,12 +1257,10 @@ export default {
} }
} }
} }
} } else if (window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2') {
else if(window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2') {
if (that.appntSignStatus == '3') { if (that.appntSignStatus == '3') {
path = that.appntSign[0].routePath path = that.appntSign[0].routePath
} } else {
else {
if (that.appntSign[that.appntSign.length - 1].documentStatus == 1) { if (that.appntSign[that.appntSign.length - 1].documentStatus == 1) {
path = 'signDocuments' path = 'signDocuments'
} else { } else {
@@ -1122,12 +1275,10 @@ export default {
} }
} }
} }
} } else if (window.localStorage.getItem('sign-val') == '1') {
else if(window.localStorage.getItem('sign-val') == '1') {
if (that.insuredSignStatus == '3') { if (that.insuredSignStatus == '3') {
path = that.insuredSign[0].routePath path = that.insuredSign[0].routePath
} } else {
else {
for (let i = 0; i < that.insuredSign.length; i++) { for (let i = 0; i < that.insuredSign.length; i++) {
if (that.insuredSign[i].documentStatus == 0 || that.insuredSign[i].documentStatus == 2) { if (that.insuredSign[i].documentStatus == 0 || that.insuredSign[i].documentStatus == 2) {
path = that.insuredSign[i].routePath path = that.insuredSign[i].routePath
@@ -1140,7 +1291,6 @@ export default {
} }
} }
if (path) { if (path) {
that.$jump({ that.$jump({
flag: 'h5', flag: 'h5',
@@ -1154,13 +1304,11 @@ export default {
} }
} }
}) })
} } else {
else {
if (window.localStorage.getItem('sign-val') == '3') { if (window.localStorage.getItem('sign-val') == '3') {
if (that.agentSignStatus == '3') { if (that.agentSignStatus == '3') {
path = that.agentSign[0].routePath path = that.agentSign[0].routePath
} } else {
else {
if (that.agentSign[that.agentSign.length - 1].documentStatus == 1) { if (that.agentSign[that.agentSign.length - 1].documentStatus == 1) {
path = 'signDocuments' path = 'signDocuments'
} else { } else {
@@ -1175,12 +1323,10 @@ export default {
} }
} }
} }
} } else if (window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2') {
else if(window.localStorage.getItem('sign-val') == '0' || window.localStorage.getItem('sign-val') == '2') {
if (that.appntSignStatus == '3') { if (that.appntSignStatus == '3') {
path = that.appntSign[0].routePath path = that.appntSign[0].routePath
} } else {
else {
if (that.appntSign[that.appntSign.length - 1].documentStatus == 1) { if (that.appntSign[that.appntSign.length - 1].documentStatus == 1) {
path = 'signDocuments' path = 'signDocuments'
} else { } else {
@@ -1195,12 +1341,10 @@ export default {
} }
} }
} }
} } else if (window.localStorage.getItem('sign-val') == '1') {
else if(window.localStorage.getItem('sign-val') == '1') {
if (that.insuredSignStatus == '3') { if (that.insuredSignStatus == '3') {
path = that.insuredSign[0].routePath path = that.insuredSign[0].routePath
} } else {
else {
for (let i = 0; i < that.insuredSign.length; i++) { for (let i = 0; i < that.insuredSign.length; i++) {
if (that.insuredSign[i].documentStatus == 0 || that.insuredSign[i].documentStatus == 2) { if (that.insuredSign[i].documentStatus == 0 || that.insuredSign[i].documentStatus == 2) {
path = that.insuredSign[i].routePath path = that.insuredSign[i].routePath
@@ -1233,8 +1377,7 @@ export default {
shareName = '被保险人' shareName = '被保险人'
} else if (code == '3') { } else if (code == '3') {
shareName = '代理人' shareName = '代理人'
} } else {
else {
shareName = '投保人' shareName = '投保人'
} }
if (this.changeCard) { if (this.changeCard) {
@@ -1282,7 +1425,8 @@ export default {
'&signInvalid=' + '&signInvalid=' +
this.signInvalid + this.signInvalid +
'&productCode=' + '&productCode=' +
localStorage.productCode+'&isFirstCome=1', localStorage.productCode +
'&isFirstCome=1',
img: this.$assetsUrl + 'images/logo.png' img: this.$assetsUrl + 'images/logo.png'
} }
}) })
@@ -1454,22 +1598,27 @@ 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 documentCodeType = res.orderDTO.ebizSignDTOS.filter(item=>item.documentCode == '14').length>0 let documentCodeType = res.orderDTO.ebizSignDTOS.filter((item) => item.documentCode == '14').length > 0
localStorage.setItem('documentCodeType', documentCodeType) localStorage.setItem('documentCodeType', documentCodeType)
let riskDTOLst = res.orderDTO.insuredDTOs[0].riskDTOLst[0] let riskDTOLst = res.orderDTO.insuredDTOs[0].riskDTOLst[0]
this.riskInfo = res.orderDTO.insuredDTOs[0].riskDTOLst[0] this.riskInfo = 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.$CacheUtils.setLocItem('isLongInsuranceFlag', "Y"); this.$CacheUtils.setLocItem('isLongInsuranceFlag', 'Y')
this.isInsuYearFlag = true this.isInsuYearFlag = true
} else { } else {
this.$CacheUtils.setLocItem('isLongInsuranceFlag', "N"); this.$CacheUtils.setLocItem('isLongInsuranceFlag', 'N')
} }
//弹框展示是否有社保、赔付比例和免赔额信息 //弹框展示是否有社保、赔付比例和免赔额信息
const isMedical = res.orderDTO.insuredDTOs[0].medical === '0' const isMedical = res.orderDTO.insuredDTOs[0].medical === '0'
const mainRiskCode = res.orderDTO.insuredDTOs[0].riskDTOLst[0].mainRiskCode const mainRiskCode = res.orderDTO.insuredDTOs[0].riskDTOLst[0].mainRiskCode
const isShowDialog = mainRiskCode === 'GFRS_M0016' const isShowDialog = mainRiskCode === 'GFRS_M0016'
if (!!res.orderDTO.productDTO && !!res.orderDTO.productDTO.special && !!res.orderDTO.productDTO.special.content && res.orderDTO.productDTO.special.content !== '') { if (
!!res.orderDTO.productDTO &&
!!res.orderDTO.productDTO.special &&
!!res.orderDTO.productDTO.special.content &&
res.orderDTO.productDTO.special.content !== ''
) {
let content = res.orderDTO.productDTO.special.content let content = res.orderDTO.productDTO.special.content
try { try {
const config = JSON.parse(content) const config = JSON.parse(content)
@@ -1850,7 +1999,7 @@ export default {
} }
}) })
} }
}, }
}, },
components: { components: {
[Cell.name]: Cell, [Cell.name]: Cell,

View File

@@ -52,7 +52,8 @@
v-no-more-click="1000" v-no-more-click="1000"
:disabled="appntSign.signStatus == '1'" :disabled="appntSign.signStatus == '1'"
@click="share(insured.length == '0' ? '2' : '0')" @click="share(insured.length == '0' ? '2' : '0')"
>分享</van-button> >分享</van-button
>
<van-button <van-button
type="danger" type="danger"
size="normal" size="normal"
@@ -101,7 +102,8 @@
@click="share('1')" @click="share('1')"
plain plain
v-no-more-click="1000" v-no-more-click="1000"
>分享</van-button> >分享</van-button
>
<van-button <van-button
type="danger" type="danger"
size="normal" size="normal"
@@ -158,7 +160,7 @@
<van-button <van-button
type="danger" type="danger"
size="normal" size="normal"
style="width: 157px;" style="width: 157px"
plain plain
:disabled="appntSign.signStatus == '1'" :disabled="appntSign.signStatus == '1'"
v-no-more-click="1000" v-no-more-click="1000"
@@ -210,7 +212,7 @@
type="danger" type="danger"
size="normal" size="normal"
plain plain
style="width: 157px;" style="width: 157px"
:disabled="insuredSign.signStatus == '1'" :disabled="insuredSign.signStatus == '1'"
@click="start_ocr('1')" @click="start_ocr('1')"
v-no-more-click="1000" v-no-more-click="1000"
@@ -306,8 +308,6 @@ export default {
methods: { methods: {
// 初始化 // 初始化
async init() { async init() {
if (this.isWeixin) { if (this.isWeixin) {
if (this.$route.query.airSign) { if (this.$route.query.airSign) {
sessionStorage.setItem('airSign', this.$route.query.airSign) sessionStorage.setItem('airSign', this.$route.query.airSign)
@@ -475,13 +475,14 @@ export default {
// 原人脸识别 // 原人脸识别
EWebBridge.webCallAppInJs('face_auth', { EWebBridge.webCallAppInJs('face_auth', {
number: that.saleInsuredInfo.idNo, //身份证号码 number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名 name: that.saleInsuredInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
// }) // })
// 跳过人脸识别 // 跳过人脸识别
// new Promise(resolve => { // new Promise(resolve => {
// console.log('--跳过人脸识别--返回识别成功') // console.log('--跳过人脸识别--返回识别成功')
// resolve(JSON.stringify({ state: '1' })) // resolve(JSON.stringify({ state: '1' }))
}).then(data => { }).then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
if (that.appntSign.readStatus == '0') { if (that.appntSign.readStatus == '0') {
console.log('--跳过人脸识别--返回识别成功zzzzzzzzzz') console.log('--跳过人脸识别--返回识别成功zzzzzzzzzz')
@@ -537,12 +538,13 @@ export default {
// 跳过人脸识别 // 跳过人脸识别
EWebBridge.webCallAppInJs('face_auth', { EWebBridge.webCallAppInJs('face_auth', {
number: that.saleInsuredInfo.idNo, //身份证号码 number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名 name: that.saleInsuredInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
// }) // })
// new Promise(resolve => { // new Promise(resolve => {
// console.log('--跳过人脸识别--返回识别成功') // console.log('--跳过人脸识别--返回识别成功')
// resolve(JSON.stringify({ state: '1' })) // resolve(JSON.stringify({ state: '1' }))
}).then(data => { }).then((data) => {
if (JSON.parse(data).state == '1') { if (JSON.parse(data).state == '1') {
if (that.insuredSign.readStatus == '0') { if (that.insuredSign.readStatus == '0') {
this.$jump({ this.$jump({
@@ -657,7 +659,7 @@ export default {
} }
} }
// /insure/selfToHuman // /insure/selfToHuman
underWrite(data).then(res => { underWrite(data).then((res) => {
this.$toast.clear() this.$toast.clear()
let that = this let that = this
if (res.result == '0') { if (res.result == '0') {
@@ -747,7 +749,7 @@ export default {
let data = { let data = {
orderNo: window.localStorage.getItem('orderNo') orderNo: window.localStorage.getItem('orderNo')
} }
getOrderDetail(data).then(res => { getOrderDetail(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
this.$utils.intLocalStorage(res) this.$utils.intLocalStorage(res)
@@ -767,7 +769,7 @@ export default {
that.appnt = res.orderDTO.appntDTO that.appnt = res.orderDTO.appntDTO
that.date = res.orderDTO.orderInfoDTO.appntDateLabel that.date = res.orderDTO.orderInfoDTO.appntDateLabel
res.orderDTO.signDTOS.map(item => { res.orderDTO.signDTOS.map((item) => {
if (item.signType == '0') { if (item.signType == '0') {
that.appntSign = item that.appntSign = item
} else if (item.signType == '1') { } else if (item.signType == '1') {
@@ -791,7 +793,7 @@ export default {
message: '加载中……' message: '加载中……'
}) })
let data = {} let data = {}
getSignInvalid(data).then(res => { getSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
this.signInvalid = res.content.sign this.signInvalid = res.content.sign
@@ -813,7 +815,7 @@ export default {
sign: signInvalid sign: signInvalid
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
checkSignInvalid(data).then(res => { checkSignInvalid(data).then((res) => {
if (res.result == '0') { if (res.result == '0') {
that.$toast.clear() that.$toast.clear()
let status = res.content.status let status = res.content.status