'签字前的防范视频'

This commit is contained in:
proudlx
2021-04-20 16:56:31 +08:00
parent ed009b9e4b
commit 921aef3e89
3 changed files with 132 additions and 118 deletions

View File

@@ -5,8 +5,8 @@ module.exports = {
},
extends: ['plugin:vue/essential', '@vue/prettier'],
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-console': process.env.NODE_ENV === 'production' ? 'off' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'off' : 'off',
'prettier/prettier': 'off'
},
parserOptions: {

Binary file not shown.

View File

@@ -144,7 +144,7 @@
<van-button
type="danger"
size="normal"
style="width: 157px;"
style="width: 157px"
plain
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000"
@@ -178,7 +178,7 @@
type="danger"
size="normal"
plain
style="width: 157px;"
style="width: 157px"
:disabled="insuredSignStatus == '3'"
@click="start_ocr('1')"
v-no-more-click="1000"
@@ -217,6 +217,12 @@
</div>
</div>
</div>
<van-popup v-model="videoShow" position="bottom" closeable style="height: 100vh">
<video controls style="width: 100%; max-height: calc(100vh - 60px)" src="/app/video/rlsb.mp4"></video>
<div class="bottom-btn bg-white">
<van-button type="danger" size="large" @click="goUrl" v-no-more-click="1000">下一步</van-button>
</div>
</van-popup>
<!-- 短信验证 -->
<van-dialog v-model="show" title="提示" show-cancel-button @confirm="authConfirm(authCode)" @cancel="clearTimer">
<p class="p10 fs14">为确保是您本人操作短信验证码已发送至您手机号{{ encyCustomerMobile }}请您输入验证码以完成后续投保操作</p>
@@ -249,7 +255,7 @@ import {
autchCodeCheck,
getRecognitionUrl,
getRecognitionResult,
saveCustomerRid
saveCustomerRid,
} from '@/api/ebiz/sale/sale'
import { checkPhone } from '@/api/ebiz/customer/customer'
import { weixinShare } from '@/assets/js/utils/wxShare.js'
@@ -261,6 +267,8 @@ export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isVideo:false,//是否已阅读视频
videoShow: false, //防误导视频
show: false, // 获取短信验证码
codeDisabled: false, // 获取验证码按钮是否禁用
timeId: null, // 计时器ID
@@ -274,7 +282,7 @@ export default {
faceAuthCount: {
appnt: 0,
insured: 0,
weixin: 0
weixin: 0,
},
customerMobile: '',
//保险产品名称
@@ -323,7 +331,7 @@ export default {
realName: '',
idno: '',
redirectUrl: '',
businessSource: '1' //微信端人脸识别业务来源:1-电投2-入司3-理赔4-保全
businessSource: '1', //微信端人脸识别业务来源:1-电投2-入司3-理赔4-保全
},
// idcardData: {
// typeface: false,
@@ -338,14 +346,14 @@ export default {
recognizeMessage: '', //微信端-人脸识别失败原因
realPeopleRidInfo: {
appntRidFlag: null,
insureRidFlag: null
}
insureRidFlag: null,
},
}
},
methods: {
fakeFaceAuth(expect) {
console.log('模拟调用人脸识别')
return new Promise(function(resolve, reject) {
return new Promise(function (resolve, reject) {
setTimeout(() => {
console.log('模拟人脸识别完成')
if (expect) {
@@ -364,7 +372,7 @@ export default {
title: '提示',
message: '退出流程可能会丢失部分数据,是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
confirmButtonColor: '#FFFFFF',
})
.then(() => {
this.$jump({
@@ -372,12 +380,12 @@ export default {
extra: {
title: '电子投保单列表',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/list`
url: location.origin + `/#/sale/list`,
},
routerInfo: {
path: `/sale/list`,
type: '1'
}
type: '1',
},
})
})
.catch(() => {
@@ -456,7 +464,7 @@ export default {
weixinShare({
title: '国富人寿计划书',
imgUrl: 'http://47.96.143.111:8000/app/images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
desc: '国富为您量身定制的保险产品,请查收',
})
// let params = {
// orderNo: ''
@@ -480,7 +488,7 @@ export default {
// 禁用背景点击s
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
message: '加载中……',
})
let data = {}
this.authCode = null
@@ -490,7 +498,7 @@ export default {
name: appntData.name,
idType: appntData.idType,
idNo: appntData.idNo,
mobile: appntData.mobile
mobile: appntData.mobile,
}
this.customerMobile = appntData.mobile
this.encyCustomerMobile = this.customerMobile.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2')
@@ -500,14 +508,14 @@ export default {
name: insuredData.name,
idType: insuredData.idType,
idNo: insuredData.idNo,
mobile: insuredData.mobile
mobile: insuredData.mobile,
}
this.customerMobile = insuredData.mobile
this.encyCustomerMobile = this.customerMobile.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2')
}
// eslint-disable-next-line no-unused-vars
return new Promise((resolve, reject) => {
checkPhone(data).then(res => {
checkPhone(data).then((res) => {
if (res.result == '0') {
console.log(res)
this.show = true
@@ -515,7 +523,7 @@ export default {
Dialog.confirm({
title: '提示',
message: '抱歉,您预留的手机号非您本人的手机号,请进行线下投保!',
showCancelButton: false
showCancelButton: false,
})
}
})
@@ -529,7 +537,7 @@ export default {
// 禁用背景点击s
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
message: '加载中……',
})
let data = {}
if ('appnt' == type) {
@@ -538,7 +546,7 @@ export default {
name: appntData.name,
idType: appntData.idType,
idNo: appntData.idNo,
mobile: appntData.mobile
mobile: appntData.mobile,
}
} else if ('insured' == type) {
let insuredData = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
@@ -546,7 +554,7 @@ export default {
name: insuredData.name,
idType: insuredData.idType,
idNo: insuredData.idNo,
mobile: insuredData.mobile
mobile: insuredData.mobile,
}
}
let res = await checkPhone(data)
@@ -575,8 +583,8 @@ export default {
type: 'H5',
operateCode: this.customerMobile,
system: 'agentApp',
operateCodeType: '0'
}).then(res => {
operateCodeType: '0',
}).then((res) => {
console.log(res)
if (res.result == 0) {
this.sid = res.sessionId
@@ -601,7 +609,7 @@ export default {
}
let res = await autchCodeCheck({
smsId: this.sid,
code: this.authCode
code: this.authCode,
})
if (res.result == 0) {
if ('appnt' == this.operaFlag) {
@@ -635,7 +643,7 @@ export default {
const res = await getWhitelist({
idNo: this.saleInsuredInfo.idNo,
name: this.saleInsuredInfo.name,
whiteType: 'sale_face_show'
whiteType: 'sale_face_show',
})
if (res.result === '0') {
// 在白名单内
@@ -679,7 +687,7 @@ export default {
const res = await getWhitelist({
idNo: this.saleInsuredPersonInfo.idNo,
name: this.saleInsuredPersonInfo.name,
whiteType: 'sale_face_show'
whiteType: 'sale_face_show',
})
if (res.result === '0') {
// 用户在白名单内
@@ -722,7 +730,7 @@ export default {
const res = await getWhitelist({
idNo: this.saleInsuredInfo.idNo,
name: this.saleInsuredInfo.name,
whiteType: 'sale_face_show'
whiteType: 'sale_face_show',
})
if (res.result === '0') {
// 在白名单内
@@ -747,8 +755,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名
}).then(data => {
name: that.saleInsuredInfo.name, //姓名
}).then((data) => {
if (JSON.parse(data).state == '1') {
// 保存rid 数据
that.saveCustomerRidInfo('appnt_rid', 'B')
@@ -786,7 +794,7 @@ export default {
const res = await getWhitelist({
idNo: this.saleInsuredPersonInfo.idNo,
name: this.saleInsuredPersonInfo.name,
whiteType: 'sale_face_show'
whiteType: 'sale_face_show',
})
if (res.result === '0') {
@@ -815,8 +823,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredPersonInfo.idNo, //身份证号码
name: that.saleInsuredPersonInfo.name //姓名
}).then(data => {
name: that.saleInsuredPersonInfo.name, //姓名
}).then((data) => {
if (JSON.parse(data).state == '1') {
that.saveCustomerRidInfo('insured_rid', 'B')
that.insuredUrl()
@@ -848,26 +856,30 @@ export default {
}
},
goUrl() {
let that = this
let path = ''
console.log('that.appntSign 1 ==', that.appntSign)
if (that.changeCard) {
path = 'insuranceInformation'
if (!this.isVideo) {
this.videoShow = true;
this.isVideo = true;
} else {
console.log('that.appntSign.length ==', that.appntSign.length, typeof that.appntSign.length)
for (let i = 0; i < that.appntSign.length; i++) {
if ((that.appntSign[i].documentCode == '1' || that.appntSign[i].documentCode == '8') && that.appntSign[i].documentStatus == 0) {
//1投保须知 未读
path = that.appntSign[i].routePath
break
} else {
if (that.appntSign[i].documentStatus == 2) {
let that = this
let path = ''
console.log('that.appntSign 1 ==', that.appntSign)
if (that.changeCard) {
path = 'insuranceInformation'
} else {
console.log('that.appntSign.length ==', that.appntSign.length, typeof that.appntSign.length)
for (let i = 0; i < that.appntSign.length; i++) {
if ((that.appntSign[i].documentCode == '1' || that.appntSign[i].documentCode == '8') && that.appntSign[i].documentStatus == 0) {
//1投保须知 未读
path = that.appntSign[i].routePath
break
} else {
if (that.appntSign[i].documentStatus == 2) {
path = that.appntSign[i].routePath
break
}
}
}
}
/* if (localStorage.productCode == 'GFRS_M0003' || localStorage.productCode == 'GFRS_M0015' || this.productCode == 'GFRS_M0017') {
/* if (localStorage.productCode == 'GFRS_M0003' || localStorage.productCode == 'GFRS_M0015' || this.productCode == 'GFRS_M0017') {
if (that.appntSign[0].documentStatus == 0) {
path = 'insuranceInformation'
} else if (that.appntSign[1].documentStatus == 2) {
@@ -886,18 +898,20 @@ export default {
path = 'SignatureOfElectronic'
}
}*/
}
console.log('跳转页面path', path)
if (path)
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + path,
},
routerInfo: {
path: '/sale/' + path,
},
})
}
console.log('跳转页面path', path)
if (path)
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + path
},
routerInfo: {
path: '/sale/' + path
}
})
},
insuredUrl() {
let that = this
@@ -910,11 +924,11 @@ export default {
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + path
url: location.origin + '/#/sale/' + path,
},
routerInfo: {
path: '/sale/' + path
}
path: '/sale/' + path,
},
})
},
toTest() {},
@@ -968,8 +982,8 @@ export default {
'&productCode=' +
localStorage.productCode +
'&changeCard=0',
img: this.$assetsUrl + 'images/logo.png'
}
img: this.$assetsUrl + 'images/logo.png',
},
})
} else {
// eslint-disable-next-line no-undef
@@ -992,8 +1006,8 @@ export default {
this.signInvalid +
'&productCode=' +
localStorage.productCode,
img: this.$assetsUrl + 'images/logo.png'
}
img: this.$assetsUrl + 'images/logo.png',
},
})
}
},
@@ -1007,19 +1021,19 @@ export default {
loadingType: 'spinner',
message: '加载中……'
message: '加载中……',
})
let data = {
platform: 'app',
type: '1',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
}
}
orderNo: window.localStorage.getItem('orderNo'),
},
},
}
// /insure/selfToHuman
underWrite(data).then(res => {
underWrite(data).then((res) => {
this.$toast.clear()
let that = this
if (res.result == '0') {
@@ -1030,11 +1044,11 @@ export default {
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent'
url: location.origin + '/#/sale/payMent',
},
routerInfo: {
path: '/sale/payMent'
}
path: '/sale/payMent',
},
})
} else if (res.uwResult == '07') {
// 核保失败
@@ -1044,11 +1058,11 @@ export default {
flag: 'h5',
extra: {
url: location.origin + '/#/sale/result',
backToFirst: '1'
backToFirst: '1',
},
routerInfo: {
path: '/sale/result'
}
path: '/sale/result',
},
})
} else if (res.uwResult == '46') {
// 转人核
@@ -1058,11 +1072,11 @@ export default {
flag: 'h5',
extra: {
url: location.origin + '/#/sale/result',
backToFirst: '1'
backToFirst: '1',
},
routerInfo: {
path: '/sale/result'
}
path: '/sale/result',
},
})
} else if (res.uwResult == '47') {
// 核心系统繁忙,请稍后重试
@@ -1071,11 +1085,11 @@ export default {
flag: 'h5',
extra: {
url: location.origin + '/#/sale/result',
backToFirst: '1'
backToFirst: '1',
},
routerInfo: {
path: '/sale/result'
}
path: '/sale/result',
},
})
} else {
//其他-系统繁忙,请稍后重试
@@ -1084,11 +1098,11 @@ export default {
flag: 'h5',
extra: {
url: location.origin + '/#/sale/result',
backToFirst: '1'
backToFirst: '1',
},
routerInfo: {
path: '/sale/result'
}
path: '/sale/result',
},
})
}
} else {
@@ -1103,11 +1117,11 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent'
url: location.origin + '/#/sale/payMent',
},
routerInfo: {
path: '/sale/payMent'
}
path: '/sale/payMent',
},
})
},
// 获取消息和阅读状态
@@ -1119,15 +1133,15 @@ export default {
// 禁用背景点击s
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
message: '加载中……',
})
let data = {
orderNo: window.localStorage.getItem('orderNo'),
getOtherType: 'RID'
getOtherType: 'RID',
}
localStorage.setItem('riskName', '')
return new Promise(resolve => {
getOrderDetail(data).then(res => {
return new Promise((resolve) => {
getOrderDetail(data).then((res) => {
if (res.result == '0') {
if (res.orderDTO && res.orderDTO.prtType) {
localStorage.setItem('readingProtocolType', res.orderDTO.prtType)
@@ -1172,7 +1186,7 @@ export default {
Dialog({
message: message.split('\\n').join('\n&emsp;&emsp;'),
confirmButtonText: '本人已阅读并同意上述特别约定内容',
messageAlign: 'left'
messageAlign: 'left',
})
}
// const message = '&emsp;&emsp;' + res.orderDTO.productDTO.special.content
@@ -1240,7 +1254,7 @@ export default {
}
that.appnt = res.orderDTO.appntDTO
that.date = res.orderDTO.orderInfoDTO.appntDateLabel
res.orderDTO.ebizSignDTOS.map(item => {
res.orderDTO.ebizSignDTOS.map((item) => {
if (item.signType == '0' || item.signType == '2') {
if (!localStorage.changeCard) {
if (item.documentCode != '5') {
@@ -1259,11 +1273,11 @@ export default {
})
if (!that.changeCard) {
//将投保人数组排序
that.appntSign.sort(function(a, b) {
that.appntSign.sort(function (a, b) {
return a.key - b.key
})
//获取投保和被保险人电子投保单签字状态
that.appntSign.map(item => {
that.appntSign.map((item) => {
// 判断是否双录
if (item.documentCode == '6') {
localStorage.doubleRecordFlag = '1'
@@ -1272,7 +1286,7 @@ export default {
that.appntSignStatus = item.documentStatus
}
})
that.insuredSign.map(item => {
that.insuredSign.map((item) => {
if (item.documentCode == '2') {
that.insuredSignStatus = item.documentStatus
}
@@ -1317,10 +1331,10 @@ export default {
loadingType: 'spinner',
message: '加载中……'
message: '加载中……',
})
let data = {}
getSignInvalid(data).then(res => {
getSignInvalid(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.signInvalid = res.content.sign
@@ -1336,13 +1350,13 @@ export default {
loadingType: 'spinner',
message: '加载中……'
message: '加载中……',
})
let data = {
sign: signInvalid
sign: signInvalid,
}
return new Promise(resolve => {
checkSignInvalid(data).then(res => {
return new Promise((resolve) => {
checkSignInvalid(data).then((res) => {
if (res.result == '0') {
that.$toast.clear()
let status = res.content.status
@@ -1403,10 +1417,10 @@ export default {
realName: this.idcardData.realName,
idno: this.idcardData.idno,
redirectUrl: this.idcardData.redirectUrl,
businessSource: this.idcardData.businessSource
businessSource: this.idcardData.businessSource,
}
getRecognitionUrl(data).then(
res => {
(res) => {
if (res.result == '0') {
localStorage.setItem('faceAuthWeXin-requestId', JSON.stringify(res.content.requestId))
localStorage.setItem('faceAuthWeXin-bizToken', JSON.stringify(res.content.bizToken))
@@ -1415,7 +1429,7 @@ export default {
this.$toast(res.resultMessage)
}
},
error => {
(error) => {
console.log(error)
}
)
@@ -1424,7 +1438,7 @@ export default {
getRecognitionResult(requestId, bizToken) {
return new Promise(() => {
getRecognitionResult({ requestId, bizToken }).then(
res => {
(res) => {
if (res.result == '0') {
this.recognizeResult = res.result
} else {
@@ -1432,7 +1446,7 @@ export default {
}
this.sendimage(this.recognizeResult)
},
error => {
(error) => {
console.log(error)
}
)
@@ -1455,7 +1469,7 @@ export default {
ridType: ridType,
ridDate: Formatter.formatDate(new Date(), 'yyyy-MM-dd'),
ridPhone: this.appnt.mobile,
orderNo: this.orderInfo.orderNo
orderNo: this.orderInfo.orderNo,
}
} else if (type == 'insured_rid') {
param = {
@@ -1467,21 +1481,21 @@ export default {
ridType: ridType,
ridDate: Formatter.formatDate(new Date(), 'yyyy-MM-dd'),
ridPhone: this.insured[0].mobile,
orderNo: this.orderInfo.orderNo
orderNo: this.orderInfo.orderNo,
}
}
// 保存rid 认证结果 不阻断流程
saveCustomerRid(param).then(res => {
saveCustomerRid(param).then((res) => {
console.log('saveCustomerRid', res)
})
}
},
},
created() {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
intercept: '1', //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
@@ -1498,7 +1512,7 @@ export default {
Dialog.confirm({
title: '提示',
message: '当前投保单件需进行双录,请手动切换至双录系统,进行双录操作,完成后进行后续操作',
showCancelButton: false
showCancelButton: false,
}).then(() => {
// 获取投被保险人是否同一个人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
@@ -1515,12 +1529,12 @@ export default {
[CollapseItem.name]: CollapseItem,
[Dialog.name]: Dialog,
[Field.name]: Field,
[IndexBar.name]: IndexBar
[IndexBar.name]: IndexBar,
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
},
}
</script>