Compare commits

...

68 Commits

Author SHA1 Message Date
刘慧影
f25f1d214e fix:首页配置图缓存问题 2025-10-22 09:11:37 +08:00
hz
2a54039d4a feat: 隐藏被保人有无社保选项 2025-10-17 09:11:44 +08:00
hz
38398cf5f3 fix: 取消orderNoStr的显示内容 2025-10-13 13:48:14 +08:00
hz
ca50c3efff 修复告知信息错误 2025-10-11 17:26:34 +08:00
zhanglei
9e2812d5b3 针对自动核保通过待批量扣费的,
提示语改成:核保通过,待核心业务系统批量扣费。
2025-10-10 13:19:26 +08:00
hz
4ab1be1483 feat: 去除身高和体重的信息 2025-10-10 10:53:46 +08:00
hz
5141eba11b Reapply "feat: 被保人身高体重可以录入"
This reverts commit c9e7b962e3.
2025-10-10 10:49:10 +08:00
hz
c9e7b962e3 Revert "feat: 被保人身高体重可以录入"
This reverts commit 10bfe11813.
2025-10-10 10:44:19 +08:00
hz
10bfe11813 feat: 被保人身高体重可以录入 2025-10-09 11:48:20 +08:00
75fd1b747d fix: 告知项目某些环境下条目出错的问题
从告知项目下一步之后, 然后重新点击告知项目,下面条目会丢失一些东西
2025-09-26 11:14:50 +08:00
71e572b4ea fix: 修复点击生成投保单号时证件截止日期选项自动变更的问题 2025-09-26 10:40:16 +08:00
effba15c93 修正提交的信息参数 2025-09-25 17:33:54 +08:00
e99cf535b3 feat: 增加相应对象impartTypeNumber的枚举内容 2025-09-24 19:09:19 +08:00
ab92138982 feat: 按需隐藏相应的字段内容 2025-09-24 16:05:08 +08:00
e92c8cc095 fix: 修复单页 pdf 无法点击本人已阅读按钮 2025-09-24 14:32:19 +08:00
刘慧影
dd1ce78a4b fix:银保列表编辑跳转页面 2025-09-18 18:37:05 +08:00
刘慧影
f43135cdf2 fix: 签字页branchType 2025-09-09 09:29:57 +08:00
刘慧影
0537596d95 feat: 文件阅读下滑至底部完成阅读 2025-09-09 09:15:00 +08:00
liuhuiying
268d53128e fix: 投保人工作单位 2025-09-06 19:35:09 +08:00
liuhuiying
aa13d3c8e7 fix: 测试问题修复 2025-09-06 16:13:08 +08:00
liuhuiying
523e1c9c8f 投保人信息投保单号效验、生成投保单号调整 2025-08-04 21:44:12 +08:00
刘慧影
01af6bb9ac 非实时单核保提示语 2025-07-17 11:20:52 +08:00
zhanglei
7989e411ac 非实时单核保提示语 2025-07-16 13:35:32 +08:00
zhanglei
a5672152eb 非实时单核保提示语 2025-07-16 13:21:30 +08:00
liuhuiying
3591bce7a4 FM20250523024-银保非实时单金掌桂投保系统需求 2025-07-03 09:20:41 +08:00
liuhuiying
cdd5ac826a FM20250523024-银保非实时单金掌桂投保系统需求 2025-07-01 11:49:47 +08:00
liuhuiying
42b0ac995a FM20250523024-银保非实时单金掌桂投保系统需求 2025-07-01 11:24:40 +08:00
liuhuiying
787369053c FM20250523024-银保非实时单金掌桂投保系统需求 2025-06-30 13:39:45 +08:00
zhanglei
d6bbdae734 feature/【20250605】银保续期管理列表投保人被保险人展示调整 2025-06-05 13:34:29 +08:00
zhang.lei3
89aea09de2 feature/FCRS-949国富人寿鑫管家D款终身寿险(万能型)-中介渠道 2025-05-09 09:50:29 +08:00
zhang.lei3
7a81b4e6eb feature/FCRS-949国富人寿鑫管家D款终身寿险(万能型)-中介渠道 2025-05-09 09:30:59 +08:00
zhang.weiwei
d13ce27e3c hotfix-从路由获取token存储到LocalStorage时新增token是否为空判断 2025-04-30 23:00:01 +08:00
zhang.lei3
a1895b540c Merge branch 'feature/【20250429】富贵相伴养老年金保险&&富锦养老年金保险加被保人30天年龄校验' 2025-04-30 21:04:03 +08:00
zhang.lei3
5babd3d029 feature/【20250429】富贵相伴养老年金保险&&富锦养老年金保险加被保人30天年龄校验 2025-04-29 15:57:04 +08:00
zhang.lei3
89d4fb1871 feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 14:27:45 +08:00
zhang.lei3
f7982ac052 feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 11:07:20 +08:00
zhang.lei3
bde1de79ac feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 10:44:43 +08:00
zhang.lei3
3631f57ee2 feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 10:33:15 +08:00
zhang.lei3
c2014d9e4b feature/FCRS-918国富人寿富贵相伴养老年金保险-个险渠道 2025-04-17 15:32:21 +08:00
zhang.lei3
a0a9b5637e feature/FCRS-918国富人寿富贵相伴养老年金保险-个险渠道 2025-04-17 15:19:01 +08:00
zhang.lei3
dd11f4b4e0 feature/FCRS-918国富人寿富贵相伴养老年金保险-个险渠道 2025-04-17 14:33:49 +08:00
zhang.weiwei
f1f8c3ddae fix-出单详情按月份查询最后一天调整为31号 2025-04-02 10:43:35 +08:00
zhang.weiwei
71d2d67a2c fix-修复附加险试算问题 2025-03-19 19:06:56 +08:00
zhang.weiwei
0ca75379b1 Merge branch 'feature/【20250301】附加险D款' 2025-03-18 15:53:13 +08:00
zhang.weiwei
83e8130c54 Merge branch 'FCRS-901【前端】国富人寿附加豁免保险费重大疾病保险(D款)-个险渠道' 2025-03-18 15:53:06 +08:00
zhang.lei3
d9dec5980e Merge branch 'FCRS-901【前端】国富人寿附加豁免保险费重大疾病保险(D款)-个险渠道' into feature/【20250301】附加险D款 2025-03-13 16:07:31 +08:00
zhang.weiwei
5a42f90f94 feat-调整A0016附加险的试算规则 2025-03-13 11:36:47 +08:00
zhang.weiwei
8d3f3042a2 feat-调整附加豁免险保险期间和保证责任 2025-03-12 23:33:02 +08:00
zhang.weiwei
7cf378d0a2 feat-豁免险交费期间为主险的交费期间 -1 2025-03-11 22:26:15 +08:00
zhang.weiwei
ae870b8139 Merge branch 'feature/【20250224】密码输入框禁止录屏' 2025-02-28 17:05:49 +08:00
zhang.weiwei
549823d928 Merge branch 'feature/FCRS-844金掌桂投保人脸识别存档需求'
# Conflicts:
#	src/views/ebiz/proposal/ProposalInfo.vue
2025-02-28 17:05:39 +08:00
zhang.lei3
18926ff55e FCRS-901【前端】国富人寿附加豁免保险费重大疾病保险(D款)-个险渠道 2025-02-26 16:14:23 +08:00
zhang.weiwei
5d0e78fcde feat-密码输入框新增防截屏处理 2025-02-24 11:34:49 +08:00
zhang.weiwei
f67cf5bf19 fix-修复拨打电话未调用原生插件的问题 2025-02-19 23:20:18 +08:00
zhang.weiwei
228e992b99 fix-解决合并冲突问题 2025-02-06 12:17:50 +08:00
zhang.weiwei
6218c413c7 Merge branch 'feature/FCRS-844金掌桂投保人脸识别存档需求__' into feature/FCRS-844金掌桂投保人脸识别存档需求
# Conflicts:
#	src/views/ebiz/claims/SignatureConfirmation.vue
#	src/views/ebiz/insureAgain/SignatureConfirmation.vue
#	src/views/ebiz/sale/SignatureConfirmation.vue
2025-02-06 12:13:17 +08:00
zhang.weiwei
7054c35de0 feat-调用人脸识别插件新增 orderNo 入参 2025-02-06 11:54:29 +08:00
zhang.lei3
c7d5d1b7f5 face_auth给原生传orderNo 2025-01-15 10:23:30 +08:00
xuxingjun
e9ade69acd 入参赋值 2025-01-06 16:03:20 +08:00
xuxingjun
5b7ef08984 入参提示 2025-01-06 14:46:29 +08:00
xuxingjun
a06c9fb575 还原 2025-01-06 14:15:58 +08:00
xuxingjun
11fe456dfd 优化getRecognitionResult接口传参4 2025-01-02 17:48:41 +08:00
xuxingjun
ee0f68a183 优化getRecognitionResult接口传参3 2025-01-02 17:09:48 +08:00
xuxingjun
7089e16029 优化getRecognitionResult接口传参2 2025-01-02 16:11:57 +08:00
xuxingjun
b34f9b08ea 优化getRecognitionResult接口传参 2025-01-02 15:53:57 +08:00
xuxingjun
4fca606f94 去除微信环境判断2 2025-01-02 15:45:46 +08:00
xuxingjun
07f280fc3c 去除微信环境判断 2025-01-02 15:03:33 +08:00
xuxingjun
2bd46c8c82 getRecognitionResult 接口加个保单号入参 2024-12-24 14:24:55 +08:00
39 changed files with 2589 additions and 1682 deletions

3
.gitignore vendored
View File

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

View File

@@ -36,3 +36,12 @@ export function getSpecialAreaProList(data) {
data
})
}
// 首页底部图
export function getHomeBottomPic(data) {
return request({
url: getUrl('/app/code/getCodeValue', 1),
method: 'post',
data
})
}

View File

@@ -3947,6 +3947,35 @@ export default {
{
code: "GFRS_M0094__cashValue",
label: "元"
},
{
//养老年金开始领取年龄
code: 'pensionAge',
label: '岁'
},
{
code: 'AppntCriticalDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'AppntModerateOrMinorDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'AppntDeathOrTotalDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'InsuredCriticalDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'InsuredModerateOrMinorDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'InsuredDeathOrTotalDiseaseExemptionPremiumD',
label: '元'
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,

View File

@@ -16,7 +16,7 @@
<van-field
minlength="6"
class="pt5 mt10"
style="border-top:1px solid #eaeaea;border-bottom:1px solid #eaeaea"
style="border-top: 1px solid #eaeaea; border-bottom: 1px solid #eaeaea"
v-model="checkModel.pwd"
clearable
type="password"
@@ -207,7 +207,7 @@ export default {
operateCodeType: '0'
}
//获取验证码
getAuthCode(data).then(res => {
getAuthCode(data).then((res) => {
if (res.result == 0) {
this.checkModel.smsId = res.sessionId
this.checkModel.smsCode = null
@@ -225,6 +225,18 @@ export default {
}
})
}
},
watch: {
/**
* 监听弹窗显示隐藏
*/
'checkModel.show'(val) {
console.log('checkModel.show', val)
// 显示时禁止截屏,不显示时恢复截屏
EWebBridge.webCallAppInJs('enable_screen_capture', {
enable: !val
})
}
}
}
</script>

View File

@@ -127,7 +127,7 @@ export default {
num++
await this.getRecognitionUrl(val, num)
if (this.requestId && this.bizToken) {
await this.getRecognitionResult(this.requestId, this.bizToken)
await this.getRecognitionResult(this.requestId, this.bizToken, JSON.parse(localStorage['orderNo']))
} else {
return
}
@@ -155,9 +155,9 @@ export default {
)
})
},
getRecognitionResult(requestId, bizToken) {
getRecognitionResult(requestId, bizToken, orderNo) {
return new Promise((resolve, reject) => {
getRecognitionResult({ requestId, bizToken }).then(
getRecognitionResult({ requestId, bizToken, orderNo }).then(
res => {
console.log('getRecognitionResult', res)
if (res.result == '0') {

View File

@@ -52,10 +52,10 @@
<span>保单号</span><span>{{ item.contNo }}</span>
</p>
<p>
<span>保人</span><span>{{ item.insuredName }}</span>
<span>保人</span><span>{{ item.appntName }}</span>
</p>
<p>
<span>被保险人</span><span>{{ item.appntName }}</span>
<span>被保险人</span><span>{{ item.insuredName }}</span>
</p>
<p v-if="active == 3">
<span>转账银行</span><span>{{ item.bankName }}</span>

View File

@@ -2,17 +2,16 @@
<div class="login-container ph10">
<h3 class="text-center pv30">欢迎登录</h3>
<van-cell-group cl>
<van-field v-model="username" clearable label="用户名" placeholder="请输入用户名" left-icon="contact"/>
<van-field v-model="password" type="password" label="密码" placeholder="请输入密码" left-icon="bag-o"/>
<van-field v-model="username" clearable label="用户名" placeholder="请输入用户名" left-icon="contact" />
<van-field v-model="password" type="password" label="密码" placeholder="请输入密码" left-icon="bag-o" />
</van-cell-group>
<van-button type="info" size="large" class="mt30" @click="login" :loading="loading" loading-text="登录中...">登录
</van-button>
<van-button type="info" size="large" class="mt30" @click="login" :loading="loading" loading-text="登录中...">登录 </van-button>
</div>
</template>
<script>
import {CellGroup, Field} from 'vant'
import {loginTest} from '@/api/ebiz/my/my.js'
import { CellGroup, Field } from 'vant'
import { loginTest } from '@/api/ebiz/my/my.js'
export default {
name: 'login',
@@ -28,6 +27,14 @@ export default {
redirect: this.$route.query.redirect
}
},
mounted() {
setTimeout(() => {
EWebBridge.webCallAppInJs('enable_screen_capture', {
enable: false
})
}, 500)
},
methods: {
login() {
if (this.username == '' || this.password == '') {
@@ -35,30 +42,31 @@ export default {
return
}
this.loading = true
let that = this;
let that = this
let reqData = {
password: this.$MD5(that.password),
system: "agentApp",
graphCode: "",
graphId: "",
system: 'agentApp',
graphCode: '',
graphId: '',
name: this.username,
loginflag: "agentPassword",
loginflag: 'agentPassword'
}
loginTest(reqData).then(res => {
this.loading = false
if (res.result == 0) {
console.log(res)
this.$CacheUtils.setLocItem("token",res.token)
this.$router.push({ path: this.redirect || '/' })
}else {
this.$toast(res.resultMessage)
}
}) .catch(err => {
console.log(err)
this.loading = false
})
loginTest(reqData)
.then((res) => {
this.loading = false
if (res.result == 0) {
console.log(res)
this.$CacheUtils.setLocItem('token', res.token)
this.$router.push({ path: this.redirect || '/' })
} else {
this.$toast(res.resultMessage)
}
})
.catch((err) => {
console.log(err)
this.loading = false
})
}
}
}

View File

@@ -34,14 +34,12 @@
点击开始按钮进行相关操作<br /><span class="red">温馨提示请尽量使用正楷文字进行签名</span>
</div>
<div class="text-center mt20">
<van-button @click="faceAuth('0')" v-no-more-click="1000" :disabled="isAgentSubmit" type="danger" size="normal" style="width:30%">开始</van-button>
<van-button @click="faceAuth('0')" v-no-more-click="1000" :disabled="isAgentSubmit" type="danger" size="normal" style="width: 30%">开始</van-button>
</div>
</div>
<div class="ebizGuarantor">
<van-field readonly label-width="120px" label="担保人" v-model="ebizGuarantor.name"></van-field>
<p class="p15 line-height">
以下内容需要您按照顺序阅读并签字确认
</p>
<p class="p15 line-height">以下内容需要您按照顺序阅读并签字确认</p>
<div class="p15 line-height">
需签署
<ul>
@@ -63,9 +61,9 @@
</ul>
点击开始分享进行相关操作<br /><span class="red">温馨提示请尽量使用正楷文字进行签名</span>
</div>
<div v-if="!isInvalid" class="flex justify-content-a mb60 mt20">
<van-button v-if="!isWeixin" @click="share" v-no-more-click="1000" type="danger" size="normal" style="width:30%">分享</van-button>
<van-button @click="faceAuth('1')" v-no-more-click="1000" :disabled="isguranteeSubmit" type="danger" size="normal" style="width:30%">开始</van-button>
<div v-if="!isInvalid" class="flex justify-content-a mb60 mt20">
<van-button v-if="!isWeixin" @click="share" v-no-more-click="1000" type="danger" size="normal" style="width: 30%">分享</van-button>
<van-button @click="faceAuth('1')" v-no-more-click="1000" :disabled="isguranteeSubmit" type="danger" size="normal" style="width: 30%">开始</van-button>
</div>
<div v-else class="ml15">操作时间已失效请联系销售人员</div>
</div>
@@ -206,7 +204,9 @@ export default {
//初始化信息
async init() {
if (this.isWeixin) {
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}
@@ -238,8 +238,8 @@ export default {
loadingType: 'spinner',
message: '加载中……'
})
return new Promise(resolve => {
agreementQuery(data).then(res => {
return new Promise((resolve) => {
agreementQuery(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.agentInfo = res.content.ebizEnterCustomerDto
@@ -251,10 +251,10 @@ export default {
this.agentInfo.createdDate = this.agentInfo.createdDate.substring(0, 10)
this.agentSignList = filtSignList(this, this.signList).agentSignList
this.guaranteeSignList = filtSignList(this, this.signList).guaranteeSignList
this.isAgentSubmit = this.agentSignList.every(item => {
this.isAgentSubmit = this.agentSignList.every((item) => {
return item.signState == '1'
})
this.isguranteeSubmit = this.guaranteeSignList.every(item => {
this.isguranteeSubmit = this.guaranteeSignList.every((item) => {
return item.signState == '1'
})
resolve()
@@ -285,7 +285,7 @@ export default {
message: '加载中……'
})
let data = {}
getSignInvalid(data).then(res => {
getSignInvalid(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.signInvalid = res.content.sign
@@ -321,8 +321,8 @@ export default {
let data = {
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
@@ -338,7 +338,7 @@ export default {
if (code == '0') {
if (this.agentInfo.idType == '1') {
this.goUrl(code)
this.goUrl(code)
// 人脸识别次数小于3次
this.$toast.loading({
duration: 0, // 持续展示 toast
@@ -366,7 +366,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '2', //业务来源:1-电投2-入司3-理赔4-保全
number: this.agentInfo.idNo, //身份证号码
name: this.agentInfo.name //姓名
name: this.agentInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
})
// const authRes = await this.fakeFaceAuth(true)
console.log(authRes)
@@ -395,7 +396,7 @@ export default {
},
fakeFaceAuth(expect) {
console.log('模拟调用人脸识别')
return new Promise(function(resolve, reject) {
return new Promise(function (resolve, reject) {
setTimeout(() => {
console.log('模拟人脸识别完成')
if (expect) {
@@ -409,11 +410,11 @@ export default {
goUrl(code) {
let path = ''
if (code == '0') {
path = this.agentSignList.filter(v => {
path = this.agentSignList.filter((v) => {
return v.signState == '0'
})[0].path
} else if (code == '1') {
path = this.guaranteeSignList.filter(v => {
path = this.guaranteeSignList.filter((v) => {
return v.signState == '0'
})[0].path
}
@@ -437,7 +438,7 @@ export default {
loadingType: 'spinner',
message: '加载中……'
})
signAgreement(data).then(res => {
signAgreement(data).then((res) => {
console.log(res)
if (res.result == '0') {
this.$toast.clear()

View File

@@ -1,27 +1,24 @@
<template>
<div class='orderDetail-container'>
<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 class="orderDetail-container">
<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-if='item.type == 1 && !isWeixin'>
<p class='fw600 border-gb'>
<span>申请人</span><span class='ml60'>{{ allowanceApplyDTO.name }}</span>
<div v-if="item.type == 1 && !isWeixin">
<p class="fw600 border-gb">
<span>申请人</span><span class="ml60">{{ allowanceApplyDTO.name }}</span>
</p>
<p>点击签名按钮进行申请人签名</p>
<p class='border-gb'>
<p class="border-gb">
<span>申请人</span>
<van-button type='danger' color='#2E4591' class='ml5' size='small' @click='signFunc(item.type, item.id)'
:disabled='isSure' v-no-more-click='1000'>{{
item.signStatus == '0' ? '签名' : '已签名'
}}
<van-button type="danger" color="#2E4591" class="ml5" size="small" @click="signFunc(item.type, item.id)" :disabled="isSure" v-no-more-click="1000"
>{{ item.signStatus == '0' ? '签名' : '已签名' }}
</van-button>
<img class='w60 h40 v-middle ml10' v-if='item.signPath' :src="imgUrl + item.signPath.replace(/\+/g, '%2B')"
alt='' /><br />
<img class="w60 h40 v-middle ml10" v-if="item.signPath" :src="imgUrl + item.signPath.replace(/\+/g, '%2B')" alt="" /><br />
</p>
</div>
<div v-if='item.type == 2'>
<div v-if='isWeixin' class='bg-white mt10 fs14 tips'>
<div v-if="item.type == 2">
<div v-if="isWeixin" class="bg-white mt10 fs14 tips">
<p>
尊敬的
<span>{{ allowanceEnjoyDTO.name }}</span
@@ -29,83 +26,54 @@
</p>
<p>恭喜您获得国富人寿桂冠专属父母赡养津贴需要您点击签字按钮进行签字申请</p>
</div>
<p v-if='!isWeixin' class='fw600 border-gb'>
<span>享受人</span><span class='ml60'>{{ allowanceEnjoyDTO.name }}</span>
<p v-if="!isWeixin" class="fw600 border-gb">
<span>享受人</span><span class="ml60">{{ allowanceEnjoyDTO.name }}</span>
</p>
<p v-if='!isWeixin'>点击签名按钮进行享受人签名</p>
<p class='border-gb'>
<p v-if="!isWeixin">点击签名按钮进行享受人签名</p>
<p class="border-gb">
<span>享受人</span>
<van-button type='danger' color='#2E4591' class='ml5' size='small' @click='signFunc(item.type, item.id)'
:disabled='isSure' v-no-more-click='1000'>{{
item.signStatus == '0' ? '签名' : '已签名'
}}
<van-button type="danger" color="#2E4591" class="ml5" size="small" @click="signFunc(item.type, item.id)" :disabled="isSure" v-no-more-click="1000"
>{{ item.signStatus == '0' ? '签名' : '已签名' }}
</van-button>
<img class='w60 h40 v-middle ml10' v-if='item.signPath' :src="imgUrl + item.signPath.replace(/\+/g, '%2B')"
alt='' /><br />
<img class="w60 h40 v-middle ml10" v-if="item.signPath" :src="imgUrl + item.signPath.replace(/\+/g, '%2B')" alt="" /><br />
<!-- 享受人有分享功能 -->
<van-button
type='danger'
color='#2E4591'
class='ml65 mt10'
v-if='!isWeixin'
size='small'
type="danger"
color="#2E4591"
class="ml65 mt10"
v-if="!isWeixin"
size="small"
@click="share('0')"
:disabled='isSure'
v-no-more-click='1000'
>分享
</van-button
>
:disabled="isSure"
v-no-more-click="1000"
>分享
</van-button>
</p>
</div>
</div>
<van-button v-if='!isWeixin' type='danger' color='#2E4591' class='bottom-btn ffcb6b' @click='nextStep'
v-no-more-click='1000'>提交审批
</van-button>
<SignTure :SignShow='SignShow' :signInfo='allowanceEnjoyDTO' @close='SignClose'
@SignSuccessful='SignSuccessful'></SignTure>
<van-button v-if="!isWeixin" type="danger" color="#2E4591" class="bottom-btn ffcb6b" @click="nextStep" v-no-more-click="1000">提交审批 </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'>
<p class='p10 fs14'>为确保是您本人操作短信验证码已发送至您手机号{{ encyCustomerMobile }}请您输入验证码以完成后续投保操作</p>
<van-cell-group class='flex align-items-c pr5 mb15'>
<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'
:disabled='codeDisabled' v-no-more-click='2000'>{{
codeDisabled ? `${countDown}s后重新获取` : '获取验证码'
}}
<van-dialog v-model="show" title="提示" show-cancel-button @confirm="authConfirm(authCode)" @cancel="clearTimer">
<p class="p10 fs14">为确保是您本人操作短信验证码已发送至您手机号{{ encyCustomerMobile }}请您输入验证码以完成后续投保操作</p>
<van-cell-group class="flex align-items-c pr5 mb15">
<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" :disabled="codeDisabled" v-no-more-click="2000"
>{{ codeDisabled ? `${countDown}s后重新获取` : '获取验证码' }}
</van-button>
</van-cell-group>
</van-dialog>
</div>
</template>
<script>
import {
Toast,
CellGroup,
Field,
Dialog,
Collapse,
CollapseItem,
Cell,
Popup,
Divider,
RadioGroup,
Radio,
Tag
} from 'vant'
import { Toast, CellGroup, Field, Dialog, Collapse, CollapseItem, Cell, Popup, Divider, RadioGroup, Radio, Tag } from 'vant'
import { getAllowanceDetail, saveOrUpdateAllowanceUrl, approveInit } from '@/api/ebiz/allowance/allowance'
import SignTure from './component/SignTure'
import config from '@/config'
import { getWhitelist } from '@/api/ebiz/whitelist'
import { weixinShare } from '@/assets/js/utils/wxShare.js'
import { checkPhone } from '@/api/ebiz/customer/customer'
import {
getSignInvalid,
checkSignInvalid,
getAuthCode,
autchCodeCheck,
getRecognitionUrl,
getRecognitionResult
} from '@/api/ebiz/sale/sale'
import { getSignInvalid, checkSignInvalid, getAuthCode, autchCodeCheck, getRecognitionUrl, getRecognitionResult } from '@/api/ebiz/sale/sale'
import { getShareParam } from '@/api/ebiz/cardList/cardList.js'
import IndexBar from '@/components/ebiz/allowance/application/IndexBar'
@@ -183,7 +151,9 @@ export default {
// 初始化
async init() {
if (this.isWeixin) {
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
// let signInvalid = sessionStorage.getItem('signInvalid')
// let rs = await this.checkSignInvalid(signInvalid) // 微信分享验证校验值
// if (rs == '1') {
@@ -195,7 +165,11 @@ export default {
//获取腾讯人脸识别URL后重新跳回页面验证腾讯人脸识别结果成功的话调签字面板
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken'] && this.$route.query.faceAuthCountWeixin != undefined) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']))
this.getRecognitionResult(
JSON.parse(localStorage['faceAuthWeXin-requestId']),
JSON.parse(localStorage['faceAuthWeXin-bizToken']),
JSON.parse(localStorage['orderNo'])
)
}
this.faceAuthCount.enjoy = this.$route.query.faceAuthCountAppnt == undefined ? 0 : Number(this.$route.query.faceAuthCountAppnt)
this.faceAuthCount.weixin = this.$route.query.faceAuthCountWeixin == undefined ? 0 : Number(this.$route.query.faceAuthCountWeixin)
@@ -291,9 +265,9 @@ export default {
return str
},
//微信初始化--获取腾讯人脸识别结果接口
getRecognitionResult(requestId, bizToken) {
getRecognitionResult(requestId, bizToken, orderNo) {
return new Promise(() => {
getRecognitionResult({ requestId, bizToken }).then(
getRecognitionResult({ requestId, bizToken, orderNo }).then(
(res) => {
if (res.result == '0') {
this.recognizeResult = res.result
@@ -497,7 +471,8 @@ export default {
const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '5', //业务来源:1-电投2-入司3-理赔4-保全 5津贴
number: that.allowanceEnjoyDTO.idNo, //身份证号码
name: that.allowanceEnjoyDTO.name //姓名
name: that.allowanceEnjoyDTO.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
console.log(JSON.parse(data), 'APP人脸识别结果')
if (JSON.parse(data).state == '1') {
@@ -669,7 +644,7 @@ export default {
extra: {
title: `国富人寿桂冠专属父母赡养津贴申请`,
content: '点击去签字',
shareScene:0,// 0只分享好友1 只分享朋友圈 不传默认所有
shareScene: 0, // 0只分享好友1 只分享朋友圈 不传默认所有
url: location.origin + '/#/allowance/application/signatureConfirmation?allowanceNo=' + this.allowanceNo + '&token=' + res.content,
// '&relationToAppnt=' +
// JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
@@ -728,7 +703,7 @@ export default {
}
}
</script>
<style lang='scss'>
<style lang="scss">
#app {
.van-dialog__confirm,
.van-dialog__confirm:active {
@@ -736,7 +711,7 @@ export default {
}
}
</style>
<style lang='scss' scoped>
<style lang="scss" scoped>
.orderDetail-container {
background-color: #fff;
min-height: 100vh;

View File

@@ -834,8 +834,8 @@ export default {
let m = time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1
console.log(y, m)
this.monthValue = y + '-' + m
this.dialogForm.startDate = y + '-' + m + '-' + '01' // "2024-09-01",
this.dialogForm.endDate = y + '-' + m + '-' + '30'//"2024-09-30",
this.dialogForm.startDate = y + '-' + m + '-' + '01' // "2024-08-01",
this.dialogForm.endDate = y + '-' + m + '-' + '31'//"2024-08-31",
})
this.overlayShow = false
},

View File

@@ -23,7 +23,7 @@
<van-button
type="danger"
size="normal"
style="width: 157px;"
style="width: 157px"
plain
v-no-more-click="1000"
@click="share(3)"
@@ -34,7 +34,7 @@
<van-button
type="danger"
size="normal"
style="width: 157px;"
style="width: 157px"
plain
v-no-more-click="1000"
@click="start_ocr(3)"
@@ -132,7 +132,11 @@ export default {
}
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken']) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']))
this.getRecognitionResult(
JSON.parse(localStorage['faceAuthWeXin-requestId']),
JSON.parse(localStorage['faceAuthWeXin-bizToken']),
JSON.parse(localStorage['orderNo'])
)
}
},
methods: {
@@ -209,7 +213,9 @@ export default {
//从签名页调过来的标识
sessionStorage.setItem('airSign', this.$route.query.airSign)
}
localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
localStorage.setItem('token', this.$route.query.token)
}
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}
@@ -237,7 +243,7 @@ export default {
caseStatus: 'applying',
businessNo: localStorage.businessNo
}
progressDetail(data).then(res => {
progressDetail(data).then((res) => {
if (res.result == 0) {
console.log(res)
this.list = res.content
@@ -253,7 +259,7 @@ export default {
message: '加载中……'
})
let data = {}
getSignInvalid(data).then(res => {
getSignInvalid(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.signInvalid = res.content.sign
@@ -273,7 +279,7 @@ export default {
sign: signInvalid
}
return new Promise((resolve, reject) => {
checkSignInvalid(data).then(res => {
checkSignInvalid(data).then((res) => {
if (res.result == '0') {
that.$toast.clear()
let status = res.content.status
@@ -354,7 +360,8 @@ export default {
number: that.list.applyerCertiCode,
//姓名
name: that.list.applyerName,
businessSource: '3'
businessSource: '3',
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
})
// const authRes = await new Promise(resolve => {
// resolve(JSON.stringify({ state: '0' }))
@@ -380,7 +387,7 @@ export default {
let data = { realName: this.idcardData.idcardName, idno: this.idcardData.idcardNumber, redirectUrl: location.origin + '/#' + this.$route.fullPath }
console.log('获取URL请求参数', data)
getRecognitionUrl(data).then(
res => {
(res) => {
console.log('getRecognitionUrl', res)
if (res.result == '0') {
localStorage.setItem('faceAuthWeXin-requestId', JSON.stringify(res.content.requestId))
@@ -390,15 +397,15 @@ export default {
this.$toast(res.resultMessage)
}
},
error => {
(error) => {
console.log(error)
}
)
})
},
getRecognitionResult(requestId, bizToken) {
getRecognitionResult({ requestId, bizToken })
.then(res => {
getRecognitionResult(requestId, bizToken, orderNo) {
getRecognitionResult({ requestId, bizToken, orderNo })
.then((res) => {
console.log('getRecognitionResult', res)
if (res.result == '0') {
this.showRead()
@@ -406,7 +413,7 @@ export default {
this.$toast(res.resultMessage)
}
})
.catch(error => {
.catch((error) => {
console.log(error)
})
localStorage.setItem('faceAuthWeXin-requestId', '')
@@ -445,7 +452,7 @@ export default {
localStorage.setItem('successClaimNo', '')
let that = this
let data = { businessNo: localStorage.getItem('businessNo') }
submit(data).then(res => {
submit(data).then((res) => {
if (res.result == '0') {
localStorage.successClaimNo = res.content.claimNo
that.$jump({

View File

@@ -82,7 +82,8 @@ export default {
if (
currentMainRiskInfo.mainRiskPayEndYearFlag == 'Y' &&
currentMainRiskInfo.mainRiskPayEndYear == '1000' &&
(item.productCode == 'GFRS_A0007' || item.productCode == 'GFRS_A0009'|| item.productCode == 'GFRS_A0010'|| item.productCode == 'GFRS_A0013' || item.productCode == 'GFRS_A0014')
(item.productCode == 'GFRS_A0007' || item.productCode == 'GFRS_A0009'|| item.productCode == 'GFRS_A0010'|| item.productCode == 'GFRS_A0013' || item.productCode == 'GFRS_A0014'
|| item.productCode == 'GFRS_A0015' || item.productCode == 'GFRS_A0016')
) {
item.isHidden = 1
}

View File

@@ -348,7 +348,14 @@
</div>
<div
class="flex justify-content-s pv10 border-bottom prem"
v-if="item.productCode != 'GFRS_M0100' &&item.productCode != 'GFRS_M0080' && item.productCode != 'GFRS_M0083' && item.productCode != 'GFRS_M0098' && item.productCode != 'GFRS_M0085'"
v-if="
item.productCode != 'GFRS_M0100' &&
item.productCode != 'GFRS_M0080' &&
item.productCode != 'GFRS_M0083' &&
item.productCode != 'GFRS_M0098' &&
item.productCode != 'GFRS_M0103' &&
item.productCode != 'GFRS_M0085'
"
>
<!-- trialType 0-保额算保费1-保费算保额 -->
<!-- isTrial是否需存在特殊配置(规则) 0-是 1-否-->
@@ -392,20 +399,22 @@
<img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/approved' + item.status + '.png')" alt="" />
</div>
</div>
<div class="flex justify-content-s align-items-c fs12" v-for='item in riskAmntList'>
<div class="flex justify-content-s align-items-c fs12" v-for="item in riskAmntList">
<div>
<img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/coin.png')" alt="" />
<span class="v-middle">{{ item.accuRiskDesc }}</span>
<span class="v-middle">{{ item.accuRiskDesc }}</span>
</div>
<div>
<span class="w20 h20 p10 v-middle">{{item.accuRiskAmnt}}</span>
<!-- <img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/approved' + item.status + '.png')" alt="" />-->
<span class="w20 h20 p10 v-middle">{{ item.accuRiskAmnt }}</span>
<!-- <img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/approved' + item.status + '.png')" alt="" />-->
</div>
</div>
<div style="padding: 25px 0px 10px 10px; font-size: 10px; color: #999">
<p style="line-height: 20px"><span style="width: 40px; display: inline-block">说明:</span><br/>
1.绿色✔表示 未触发规则、红色×表示 触发规则;<br/>
2.已累计本次投保的风险保额;<br/>3.展示的风险保额为常见风险类别。</p>
<p style="line-height: 20px">
<span style="width: 40px; display: inline-block">说明:</span><br />
1.绿色✔表示 未触发规则、红色×表示 触发规则;<br />
2.已累计本次投保的风险保额;<br />3.展示的风险保额为常见风险类别。
</p>
</div>
</div>
</van-dialog>
@@ -609,7 +618,7 @@ export default {
richChildrenFlag: false,
isCrossChannel: '0', //是否交叉渠道 1-是 0-否
trialResultsShow: false, //核保试算结果
riskAmntList:[],//累计寿险风险保额(元)、累计重大疾病风险保额(元)、累计意外伤害风险保额(元)、意外住院津贴日额(元)、一般住院津贴日额(元)、特定疾病住院津贴日额(元)
riskAmntList: [], //累计寿险风险保额(元)、累计重大疾病风险保额(元)、累计意外伤害风险保额(元)、意外住院津贴日额(元)、一般住院津贴日额(元)、特定疾病住院津贴日额(元)
verifyResultList: [] //核保试算返回数据结构
}
},
@@ -832,14 +841,14 @@ export default {
this.isEnterAddtionRiskListFunc()
}
}
if (item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0085') {
if (item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103'|| item.mainRiskCode == 'GFRS_M0085') {
this.disabledShow = true
}
if(item.hasPredictTransferPrem == '1') {
if (item.hasPredictTransferPrem == '1') {
this.disabledShow = false
}
if ((item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0085') && this.isFrom == 'proposal') {
if ((item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103'|| item.mainRiskCode == 'GFRS_M0085') && this.isFrom == 'proposal') {
item.calFactorLst.forEach((i) => {
if (i.code == 'inputPrem') {
i.minPrem = 0.01
@@ -1042,7 +1051,9 @@ export default {
this.chooseProducts[productIndex].productCode === 'GFRS_A0009' ||
this.chooseProducts[productIndex].productCode === 'GFRS_A0014' ||
this.chooseProducts[productIndex].productCode === 'GFRS_A0013' ||
this.chooseProducts[productIndex].productCode === 'GFRS_A0010'
this.chooseProducts[productIndex].productCode === 'GFRS_A0010' ||
this.chooseProducts[productIndex].productCode === 'GFRS_A0015' ||
this.chooseProducts[productIndex].productCode === 'GFRS_A0016'
) {
setTimeout(() => {
this.getTrial()
@@ -1245,7 +1256,9 @@ export default {
item01.productCode != 'GFRS_A0010' &&
item01.productCode != 'GFRS_A0012' &&
item01.productCode != 'GFRS_A0013' &&
item01.productCode != 'GFRS_A0014'
item01.productCode != 'GFRS_A0014' &&
item01.productCode != 'GFRS_A0015' &&
item01.productCode != 'GFRS_A0016'
) {
chooseProductsNew.push(item01)
}
@@ -1559,7 +1572,9 @@ export default {
item.productCode != 'GFRS_A0010' &&
item.productCode != 'GFRS_A0012' &&
item.productCode != 'GFRS_A0013' &&
item.productCode != 'GFRS_A0014'
item.productCode != 'GFRS_A0014' &&
item.productCode != 'GFRS_A0015' &&
item.productCode != 'GFRS_A0016'
) {
list.push(item)
}
@@ -1741,10 +1756,10 @@ export default {
}
})
this.chooseProducts.forEach((item, index) => {
if (item.productCode == 'GFRS_A0010' || item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0013' || item.productCode == 'GFRS_A0014') {
if (item.productCode == 'GFRS_A0010' || item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0013' || item.productCode == 'GFRS_A0014' || item.productCode == 'GFRS_A0015' || item.productCode == 'GFRS_A0016') {
//(投保人)国富人寿附加豁免保险费重大疾病保险(B款
// 投被不同人:投保人豁免险单独搭配主险时,投保人豁免险,豁免主险保费,当投保人豁免险加两全(有长险附加险时),豁免主险保费加两全保费
if (item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0013') {
if (item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0013' || item.productCode == 'GFRS_A0015' || item.productCode == 'GFRS_A0016') {
if (this.saleInsuredPersonInfo.relationToAppnt != 1) {
//不同人
if (showPrem001) {
@@ -1814,10 +1829,11 @@ export default {
}
}
//2、豁免险跟主险联动豁免险缴费期间和保险期间同主险的缴费期间
//2、豁免险跟主险联动豁免险缴费期间和保险期间同主险的缴费期间 -1 (附加险D款时提出的需求)
let remitIndex = this.getRemitIndex()
//if (!remitIndex) return
for (let itemRemitIndex of remitIndex) {
console.log('mainRiskInfo---->', mainRiskInfo)
this.chooseProducts[itemRemitIndex].calFactorLst.forEach((item) => {
if (item.code == 'payIntv') {
for (let key in mainRiskInfo.payIntv) {
@@ -1827,13 +1843,13 @@ export default {
if (item.code == 'payEndYear') {
item.hasFlag = '1'
item.payEndYearFlag = 'Y'
item.payEndYear = Number(mainRiskInfo.payEndYear.payEndYear)
item.payEndYear = Number(mainRiskInfo.payEndYear.payEndYear) - 1
item.showContent = item.payEndYear + '年交'
}
if (item.code == 'insuYear') {
item.hasFlag = '1'
item.insuYearFlag = 'Y'
item.insuYear = Number(mainRiskInfo.payEndYear.payEndYear)
item.insuYear = Number(mainRiskInfo.payEndYear.payEndYear) - 1
item.showContent = item.insuYear + '年'
}
if (item.code == 'amt') {
@@ -1848,7 +1864,9 @@ export default {
this.chooseProducts[itemRemitIndex].productCode == 'GFRS_A0009' ||
this.chooseProducts[itemRemitIndex].productCode == 'GFRS_A0010' ||
this.chooseProducts[itemRemitIndex].productCode == 'GFRS_A0013' ||
this.chooseProducts[itemRemitIndex].productCode == 'GFRS_A0014'
this.chooseProducts[itemRemitIndex].productCode == 'GFRS_A0014' ||
this.chooseProducts[itemRemitIndex].productCode == 'GFRS_A0015' ||
this.chooseProducts[itemRemitIndex].productCode == 'GFRS_A0016'
) {
//此附加险的缴费期间=主险缴费期间;保险期间=主险保险期间
if (item.code == 'insuYear') {
@@ -1875,7 +1893,7 @@ export default {
})
this.chooseProducts[0].productTrialYearDTOS.forEach((item, index) => {
//因交费方式为一次性交清时,不会有豁免险,所以这里不判断一次性交清的情况
if (payEndYearVal == item.yearWay + '年交') {
if (payEndYearVal == Number(item.yearWay) - 1 + '年交') {
v.amt = item.displayAmount * item.moneyUnit
}
})
@@ -2164,14 +2182,14 @@ export default {
let thisproductInfo = JSON.parse(window.localStorage.getItem('chooseProducts'))
if (thisproductInfo && thisproductInfo.length != 0) {
thisproductInfo.forEach((item) => {
if (item.productCode == 'GFRS_M0083' || item.productCode == 'GFRS_M0098' || item.productCode == 'GFRS_M0085') {
if (item.productCode == 'GFRS_M0083' || item.productCode == 'GFRS_M0098' || item.productCode == 'GFRS_M0103'|| item.productCode == 'GFRS_M0085') {
productCode = item.productCode
hasPredictTransferPrem = item.hasPredictTransferPrem
}
})
}
if (this.isFrom != 'proposal') {
if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0085') {
if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103'|| productCode == 'GFRS_M0085') {
if (!that.policyNo) {
this.disabledShow = true
that.chooseProducts.forEach((item) => {
@@ -2195,7 +2213,7 @@ export default {
}
}
}
if(hasPredictTransferPrem == '1') {
if (hasPredictTransferPrem == '1') {
this.disabledShow = false
}
this.nextStepFlag = true
@@ -2372,6 +2390,14 @@ export default {
trialFlag = false
}
}
}else if (item.productCode == 'GFRS_M0101' || item.productCode == 'GFRS_M0102') {
// 当投保人年龄≥75周岁时需转人工核保。核心提示语投保人年龄≥75周岁。前端提示语为投保人年龄≥75周岁需进一步人工审核
let appntAge = this.saleInsuredInfo.age
if (appntAge>=75){
this.nextStepFlag = true
this.$toast('投保人年龄≥75周岁需进一步人工审核')
}
}
})
if (!trialFlag) {
@@ -2454,7 +2480,6 @@ export default {
dutyCode: dutyItem.duty,
dutyName: dutyItem.dutyName
})
}
})
trialInfo.duty = result
@@ -2949,7 +2974,7 @@ export default {
}
}
}
} else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0085') {
} else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103'|| productCode == 'GFRS_M0085') {
if (this.isFrom != 'proposal') {
if (!this.policyNo && defalutValue < 5) {
this.$toast('单独投保保费为大于等于50000元')
@@ -3133,7 +3158,7 @@ export default {
this.trialList[index].productCode == 'GFRS_M0057' ||
this.trialList[index].productCode == 'GFRS_M0086' ||
this.trialList[index].productCode == 'GFRS_M0092' ||
this.trialList[index].productCode == 'GFRS_M0096'
this.trialList[index].productCode == 'GFRS_M0096'
) {
riskItem['dutyLst'] = this.trialInfos[index].duty
}
@@ -3174,7 +3199,9 @@ export default {
item.productCode == 'GFRS_A0010' ||
item.productCode == 'GFRS_A0013' ||
item.productCode == 'GFRS_A0014' ||
item.productCode == 'GFRS_M0077'
item.productCode == 'GFRS_M0077' ||
item.productCode == 'GFRS_A0015' ||
item.productCode == 'GFRS_A0016'
) {
this.trialInfos[index].amt = this.trialList[index].duty[0].amt
}

View File

@@ -29,7 +29,7 @@
</div>
<div v-if="isFrom == 'sale' && isShow == false">
<div class="p15 pl8 fs14" style="margin-bottom: 20px;background: #fff;">
<van-radio-group v-model="isElecCont" class="flex" style="display: flex;align-items: center;">
<van-radio-group v-model="isElecCont" class="flex" style="display: flex;align-items: center;" :disabled="isElecContDisabled">
<label>
<i class="red pr5">*</i>
保单形式
@@ -125,7 +125,8 @@
<p style="color: #E9332E;">提示</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
<div style="line-height: 25px;">根据监管要求本单需要您配合对销售过程进行录音录像</div>
<div style="line-height: 25px;" v-if="branchType == '14'">一年期以上保险产品需按监管要求双录请及时双录</div>
<div style="line-height: 25px;" v-else>根据监管要求本单需要您配合对销售过程进行录音录像</div>
</div>
<div style="text-align: center;">
<van-button type="danger" block style="font-size: 14px;" @click="thisdoubledialogfunc">确定</van-button>
@@ -178,6 +179,8 @@
manageComCode:'',//代理人管理机构 52贵州 45广西
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
isElecCont: '', // 保单形式
isElecContDisabled: false, // 保单形式是否禁用
branchType:''
}
},
components: {
@@ -251,6 +254,12 @@
//如果是从导航栏点击进入
this.salePageFlag = localStorage.salePageFlag
}
if(window.localStorage.getItem('branchType')) {
this.branchType = window.localStorage.getItem('branchType')
} else if(this.$route.query.branchType){
window.localStorage.setItem('branchType', this.$route.query.branchType)
this.branchType = this.$route.query.branchType
}
// localStorage.orderNo = '19090510425500178912'
// localStorage.saleInsuredPersonInfo = JSON.stringify({
@@ -413,6 +422,11 @@
}
}
this.$toast.clear()
// 银保,保单形式,默认为电子+纸质,不可修改
if (this.$CacheUtils.getLocItem('branchType') == '14' && this.chooseProducts[0].mainRiskCode != 'GFRS_M0076' && this.chooseProducts[0].mainRiskCode != 'GFRS_M0077') {
this.isElecCont = '2'
this.isElecContDisabled = true
}
} else {
this.$toast(resultData.resultMessage)
}
@@ -823,7 +837,7 @@
}
if(this.manageComCode == '45') {
console.log(this.chooseProducts)
if(this.appntDTO.age >= 60) {
if(this.appntDTO.age >= 60 || this.branchType == '14') {
this.chooseProducts.map(item => {
if (item.insuYearFlag == 'A' || (item.insuYearFlag == 'Y' && item.insuYear != '1')) {
showFlag = true

View File

@@ -48,7 +48,7 @@ export default {
age = this.getSaleInsuredInfo().age
tips = '投保人年龄不适合此款险种,请选择其他险种!'
} else {
if(riskProductCode == 'GFRS_M0061'){
if(riskProductCode == 'GFRS_M0061' || riskProductCode == 'GFRS_M0102' || riskProductCode == 'GFRS_M0101'){
age = this.getSaleInsuredPersonInfo().birthday?utilsAge.getAge29(this.getSaleInsuredPersonInfo().birthday, new Date()):this.getSaleInsuredPersonInfo().insuredAge
}else{
age = this.getSaleInsuredPersonInfo().birthday?utilsAge.getAgeByValue(this.getSaleInsuredPersonInfo().birthday, new Date()):this.getSaleInsuredPersonInfo().insuredAge

View File

@@ -1,6 +1,6 @@
<template>
<div class="insure-again">
<div class="signature-content pb40">
<div class="insure-again">
<div class="signature-content pb40">
<div v-if="!isWeixin">
<ProgressBar :active.sync="active" />
</div>
@@ -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"
@@ -342,12 +342,12 @@ export default {
[CollapseItem.name]: CollapseItem,
[Dialog.name]: Dialog,
[Field.name]: Field,
ProgressBar
ProgressBar
},
methods: {
fakeFaceAuth(expect) {
console.log('模拟调用人脸识别')
return new Promise(function(resolve, reject) {
return new Promise(function (resolve, reject) {
setTimeout(() => {
console.log('模拟人脸识别完成')
if (expect) {
@@ -396,7 +396,9 @@ export default {
}
// this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
// window.localStorage.setItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
// window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
// window.localStorage.setItem('productCode', this.$route.query.productCode)
@@ -442,7 +444,11 @@ export default {
}
// localStorage['faceAuthWeXin-requestId'] localStorage['faceAuthWeXin-bizToken']--微信端人脸识别获取腾讯认证url接口获得认证相关参数
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken'] && this.$route.query.faceAuthCountWeixin != undefined) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']))
this.getRecognitionResult(
JSON.parse(localStorage['faceAuthWeXin-requestId']),
JSON.parse(localStorage['faceAuthWeXin-bizToken']),
JSON.parse(localStorage['orderNo'])
)
}
if (sessionStorage.shareCode == '1') {
@@ -509,7 +515,7 @@ export default {
}
// 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
@@ -578,7 +584,7 @@ export default {
operateCode: this.customerMobile,
system: 'agentApp',
operateCodeType: '0'
}).then(res => {
}).then((res) => {
console.log(res)
if (res.result == 0) {
this.sid = res.sessionId
@@ -746,12 +752,13 @@ export default {
this.$toast(res.resultMessage)
}
if (this.faceAuthCount.appnt < this.smsAuthNum) {
// eslint-disable-next-line no-undef
const authRes = await EWebBridge.webCallAppInJs('face_auth', {
// eslint-disable-next-line no-undef
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, //姓名
orderNo: CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
if (JSON.parse(data).state == '1') {
// 保存rid 数据
that.saveCustomerRidInfo('appnt_rid', 'B')
@@ -766,8 +773,8 @@ export default {
})
// todo 测试去掉人脸识别 start=====================
// 保存rid 数据
// that.saveCustomerRidInfo('appnt_rid', 'B')
// that.goUrl()
// that.saveCustomerRidInfo('appnt_rid', 'B')
// that.goUrl()
// todo 测试去掉人脸识别 end=====================
// const authRes = await this.fakeFaceAuth(true)
@@ -824,8 +831,9 @@ 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, //姓名
orderNo: CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
if (JSON.parse(data).state == '1') {
that.saveCustomerRidInfo('insured_rid', 'B')
that.insuredUrl()
@@ -981,19 +989,21 @@ export default {
}
})
} else {
console.log(location.origin +
'/#/insureAgain/signatureConfirmation?orderNo=' +
localStorage.orderNo +
'&token=' +
localStorage.token +
'&relationToAppnt=' +
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
'&shareCode=' +
code +
'&signInvalid=' +
this.signInvalid +
'&productCode=' +
localStorage.productCode)
console.log(
location.origin +
'/#/insureAgain/signatureConfirmation?orderNo=' +
localStorage.orderNo +
'&token=' +
localStorage.token +
'&relationToAppnt=' +
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
'&shareCode=' +
code +
'&signInvalid=' +
this.signInvalid +
'&productCode=' +
localStorage.productCode
)
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
@@ -1041,7 +1051,7 @@ export default {
}
}
// /insure/selfToHuman
underWrite(data).then(res => {
underWrite(data).then((res) => {
this.$toast.clear()
let that = this
if (res.result == '0') {
@@ -1144,12 +1154,12 @@ export default {
message: '加载中……'
})
let data = {
orderNo: CacheUtils.getLocItem('orderNo'),
orderNo: CacheUtils.getLocItem('orderNo'),
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)
@@ -1165,9 +1175,8 @@ export default {
!!res.orderDTO.productDTO.special.content &&
res.orderDTO.productDTO.special.content !== ''
) {
let content = res.orderDTO.productDTO.special.content
try {
const config = JSON.parse(content)
config.message = '&emsp;&emsp;' + config.message
@@ -1180,8 +1189,8 @@ export default {
confirmButtonText: '本人已阅读并同意上述特别约定内容',
messageAlign: 'left'
})
}
}
}
}
localStorage.setItem('lastOrderNo', data.orderNo)
localStorage.setItem('AppntidType', res.orderDTO.appntDTO.idType)
this.$toast.clear()
@@ -1219,7 +1228,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') {
@@ -1238,11 +1247,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'
@@ -1251,7 +1260,7 @@ export default {
that.appntSignStatus = item.documentStatus
}
})
that.insuredSign.map(item => {
that.insuredSign.map((item) => {
if (item.documentCode == '2') {
that.insuredSignStatus = item.documentStatus
}
@@ -1299,7 +1308,7 @@ export default {
message: '加载中……'
})
let data = {}
getSignInvalid(data).then(res => {
getSignInvalid(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.signInvalid = res.content.sign
@@ -1320,8 +1329,8 @@ export default {
let data = {
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
@@ -1385,7 +1394,7 @@ export default {
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))
@@ -1394,16 +1403,16 @@ export default {
this.$toast(res.resultMessage)
}
},
error => {
(error) => {
console.log(error)
}
)
})
},
getRecognitionResult(requestId, bizToken) {
getRecognitionResult(requestId, bizToken, orderNo) {
return new Promise(() => {
getRecognitionResult({ requestId, bizToken }).then(
res => {
getRecognitionResult({ requestId, bizToken, orderNo }).then(
(res) => {
if (res.result == '0') {
this.recognizeResult = res.result
} else {
@@ -1411,7 +1420,7 @@ export default {
}
this.sendimage(this.recognizeResult)
},
error => {
(error) => {
console.log(error)
}
)
@@ -1450,13 +1459,13 @@ export default {
}
}
// 保存rid 认证结果 不阻断流程
saveCustomerRid(param).then(res => {
saveCustomerRid(param).then((res) => {
console.log('saveCustomerRid', res)
})
}
},
created() {
setTimeout(() => {
setTimeout(() => {
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
@@ -1469,11 +1478,11 @@ export default {
// localStorage.setItem('salePageFlag', this.salePageFlag)
if (!this.$route.query.salePageFlag) {
CacheUtils.setLocItem('active', this.active)
}
}
let that = this
document.title = this.changeCard ? '修改银行卡号确认' : '签名确认'
// 初始化
that.init()
that.init()
if (window.localStorage.getItem('jumpFromSign') != '1' && window.localStorage.getItem('attachmentShow') == '0') {
Dialog.confirm({
title: '提示',
@@ -1487,7 +1496,7 @@ export default {
// 获取投被保险人是否同一个人
that.relationToAppnt = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt
}
},
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()

View File

@@ -30,7 +30,9 @@
<div v-if="active === 'uncommit'">
<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 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 v-if="active === 'commit'">
<van-button v-if="canRevoke[order.newOrderStatus]" class="ml10" size="small" round type="danger" @click="revokeOrder(order)">撤单</van-button>
@@ -45,88 +47,92 @@
<div class="mt20" v-if="errMessage != ''">{{ errMessage }}</div>
</div>
</van-pull-refresh>
<van-dialog
class="dialog-delete"
@confirm="checkCaptchaCode"
@cancel="cancelCaptchaCode"
:before-close="beforeClose"
confirm-button-color="#fff"
v-model="revokePanelShow"
title="短信验证"
show-cancel-button
>
<p class="captchaReceiver">投保人手机号: {{ captchaReceiver | phoneNumFilter }}</p>
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
<template #button>
<van-button :disabled="sendTime !== 0" v-no-more-click="1000" @click="getCaptchaCode" size="small" type="danger">{{
sendTime ? `${sendTime}s后获取` : '获取验证码'
}}</van-button>
</template>
</van-field>
</van-dialog>
</div>
<van-popup v-model="isAgreementShow" position="right" :style="{ height: '100vh', width: '100vw' }">
<ReadingAgreement :needTime="false">
<h3 class="p10" style="text-align: center">重新投保声明提示</h3>
<p style="text-indent: 28px">尊敬的{{ orderInfo.appntName }}{{ orderInfo.sex == 0 ? '先生' : '女士' }}</p>
<div class="p10 mb90" v-if="orderInfo.riskCode !== 'GFRS_A0008'">
<p style="text-indent: 28px">
您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{
orderInfo.policyNo
}}产品名称为{{ orderInfo.riskName }}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认
</p>
<p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p>
<p style="text-indent: 28px">
2.本次重新投保我们将按照{{ orderInfo.riskName }}费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
<p style="text-indent: 28px">3.若本次重新投保成功新保单免除等待期</p>
<p style="text-indent: 28px">
4.本次重新投保仅限于无其他补充告知的情况若您有其他补充告知您的条件不符合本次重新投保流程您可联系保单服务专员通过其他途径进行投保申请
</p>
<p style="text-indent: 28px">
5.若您于旧保单满期前申请重新投保且于旧保单满期前成功支付保险费则新保单在旧保单保险期满日对应日的次日零时生效旧保单在保险期满日24时终止若您于旧保单满期后重新投保申请且成功支付保险费则新保单于支付次日零时生效旧保单在保险期满日24时终止
</p>
<!-- <p style="text-indent: 28px">
6.若您未在旧保单满期后60天包含内申请重新投保则您的重新投保资格将被取消后续您可再次申请投保但新单不再与旧保单关联需重新计算等待期具体详情可咨询保单服务专员
</p> -->
</div>
<div class="p10 mb90" v-else>
<p style="text-indent: 28px">
您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{
orderInfo.policyNo
}}产品名称为{{ orderInfo.riskName }}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认
</p>
<p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p>
<p style="text-indent: 28px">
2.本次重新投保我们将按照{{ orderInfo.riskName }}费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
<p style="text-indent: 28px">3.若本次重新投保成功新保单免除等待期</p>
<p style="text-indent: 28px">
4.本次重新投保仅限于无其他补充告知的情况若您有其他补充告知您的条件不符合本重新投保申请您可联系保单服务专员通过其他途径进行投保申请
</p>
<p style="text-indent: 28px">
5.若您于旧保单满期前申请重新投保且于旧保单满期前成功支付保险费则新保单在旧保单保险期满日对应日的次日零时生效旧保单在保险期满日24时终止若您于旧保单满期后重新投保申请且成功支付保险费则新保单于支付次日零时生效旧保单在保险期满日24时终止
</p>
<!-- <p style="text-indent: 28px">
6.若您未在旧保单满期后60天包含内申请重新投保则您的重新投保资格将被取消后续您可再次申请投保但新单不再与旧保单关联需重新计算等待期具体详情可咨询保单服务专员
</p> -->
<p style="text-indent: 28px">
6.国富人寿附加住院医疗保险已停售您可选择投保同类产品国富人寿附加住院医疗保险B款我们将按照国富人寿附加住院医疗保险B款费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
</div>
<template #action>
<van-radio-group class="m10" v-model="radio">
<van-radio :name="false">
<span style="font-size: 14px">本人已阅读知晓本投保声明内容同意重新投保</span>
</van-radio>
</van-radio-group>
<div class="btns">
<van-button type="danger" :disabled="radio" block @click="nextStep">下一步</van-button>
</div>
<van-dialog
class="dialog-delete"
@confirm="checkCaptchaCode"
@cancel="cancelCaptchaCode"
:before-close="beforeClose"
confirm-button-color="#fff"
v-model="revokePanelShow"
title="短信验证"
show-cancel-button
>
<p class="captchaReceiver">投保人手机号: {{ captchaReceiver | phoneNumFilter }}</p>
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
<template #button>
<van-button :disabled="sendTime !== 0" v-no-more-click="1000" @click="getCaptchaCode" size="small" type="danger">{{
sendTime ? `${sendTime}s后获取` : '获取验证码'
}}</van-button>
</template>
</ReadingAgreement>
</van-popup>
</van-field>
</van-dialog>
</div>
<van-popup v-model="isAgreementShow" position="right" :style="{ height: '100vh', width: '100vw' }">
<ReadingAgreement :needTime="false">
<h3 class="p10" style="text-align: center">重新投保声明提示</h3>
<p style="text-indent: 28px">尊敬的{{ orderInfo.appntName }}{{ orderInfo.sex == 0 ? '先生' : '女士' }}</p>
<div class="p10 mb90" v-if="orderInfo.riskCode !== 'GFRS_A0008'">
<p style="text-indent: 28px">
您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{
orderInfo.policyNo
}}产品名称为{{
orderInfo.riskName
}}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认
</p>
<p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p>
<p style="text-indent: 28px">
2.本次重新投保我们将按照{{ orderInfo.riskName }}费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
<p style="text-indent: 28px">3.若本次重新投保成功新保单免除等待期</p>
<p style="text-indent: 28px">
4.本次重新投保仅限于无其他补充告知的情况若您有其他补充告知您的条件不符合本次重新投保流程您可联系保单服务专员通过其他途径进行投保申请
</p>
<p style="text-indent: 28px">
5.若您于旧保单满期前申请重新投保且于旧保单满期前成功支付保险费则新保单在旧保单保险期满日对应日的次日零时生效旧保单在保险期满日24时终止若您于旧保单满期后重新投保申请且成功支付保险费则新保单于支付次日零时生效旧保单在保险期满日24时终止
</p>
<!-- <p style="text-indent: 28px">
6.若您未在旧保单满期后60天包含内申请重新投保则您的重新投保资格将被取消后续您可再次申请投保但新单不再与旧保单关联需重新计算等待期具体详情可咨询保单服务专员
</p> -->
</div>
<div class="p10 mb90" v-else>
<p style="text-indent: 28px">
您好感谢您选择购买国富人寿保险股份有限公司以下简称我们保险产品您于{{ orderInfo.cvaliDate }}投保的旧保单{{
orderInfo.policyNo
}}产品名称为{{
orderInfo.riskName
}}即将到期或已到期到期日期详见保单为保护您的权益您可向我们提交重新投保申请以下是申请重新投保的注意事项和声明请您仔细阅读和确认
</p>
<p style="text-indent: 28px">1.{{ orderInfo.riskName }}保险期间为一年到期后需要您重新投保</p>
<p style="text-indent: 28px">
2.本次重新投保我们将按照{{ orderInfo.riskName }}费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
<p style="text-indent: 28px">3.若本次重新投保成功新保单免除等待期</p>
<p style="text-indent: 28px">
4.本次重新投保仅限于无其他补充告知的情况若您有其他补充告知您的条件不符合本重新投保申请您可联系保单服务专员通过其他途径进行投保申请
</p>
<p style="text-indent: 28px">
5.若您于旧保单满期前申请重新投保且于旧保单满期前成功支付保险费则新保单在旧保单保险期满日对应日的次日零时生效旧保单在保险期满日24时终止若您于旧保单满期后重新投保申请且成功支付保险费则新保单于支付次日零时生效旧保单在保险期满日24时终止
</p>
<!-- <p style="text-indent: 28px">
6.若您未在旧保单满期后60天包含内申请重新投保则您的重新投保资格将被取消后续您可再次申请投保但新单不再与旧保单关联需重新计算等待期具体详情可咨询保单服务专员
</p> -->
<p style="text-indent: 28px">
6.国富人寿附加住院医疗保险已停售您可选择投保同类产品国富人寿附加住院医疗保险B款我们将按照国富人寿附加住院医疗保险B款费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
</div>
<template #action>
<van-radio-group class="m10" v-model="radio">
<van-radio :name="false">
<span style="font-size: 14px">本人已阅读知晓本投保声明内容同意重新投保</span>
</van-radio>
</van-radio-group>
<div class="btns">
<van-button type="danger" :disabled="radio" block @click="nextStep">下一步</van-button>
</div>
</template>
</ReadingAgreement>
</van-popup>
</div>
</template>
@@ -180,15 +186,15 @@ export default {
isShow: false,
orderInfo: {},
canRevoke: {
'19': true,
19: true,
'02': true,
'48': true,
'49': true,
'55': true,
'58': true,
'46': true,
'50': true,
'51': true
48: true,
49: true,
55: true,
58: true,
46: true,
50: true,
51: true
},
revokePanelShow: false,
sms: '',
@@ -206,7 +212,12 @@ export default {
NewItems() {
var NewItems = []
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 (this.active === 'uncommit') {
if (
@@ -297,7 +308,7 @@ export default {
if (order.newOrderStatus == '02') {
this.goUrl(res, order)
return
}else {
} else {
this.orderInfo.sex = res.orderDTO.appntDTO.sex
if (res.orderDTO.appntDTO.idType == '1') {
// 白名单校验
@@ -316,7 +327,8 @@ export default {
window.EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: res.orderDTO.appntDTO.idNo, //身份证号码
name: res.orderDTO.appntDTO.name //姓名
name: res.orderDTO.appntDTO.name, //姓名,
orderNo: CacheUtils.getLocItem('orderNo') //订单号
}).then((data) => {
if (JSON.parse(data).state == '1') {
this.goUrl(res, order)
@@ -501,28 +513,28 @@ export default {
},
revokeOrder(order) {
this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '撤单后,数据将不可恢复,您确定要撤单吗?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.revokePanelShow = true
this.captchaReceiver = order.appntMobile
this.revokeOrderNo = order.newOrderNo
})
.confirm({
className: 'dialog-delete',
title: '提示',
message: '撤单后,数据将不可恢复,您确定要撤单吗?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.revokePanelShow = true
this.captchaReceiver = order.appntMobile
this.revokeOrderNo = order.newOrderNo
})
}
}
}
</script>
<style lang="scss" scoped>
.captchaReceiver {
margin-left: 1em;
padding-bottom: 1em;
border-bottom: 1px solid #eaeaea;
font-size: 14px;
}
.captchaReceiver {
margin-left: 1em;
padding-bottom: 1em;
border-bottom: 1px solid #eaeaea;
font-size: 14px;
}
</style>

View File

@@ -4,7 +4,7 @@
<p class="fs18 fwb">公司介绍</p>
<van-image width="100%" height="150" :src="img1" class="mt15" />
<p class="fs14 indent">
国富人寿保险股份有限公司是经中国银保监会批准于2018年6月成立的全国性寿险公司公司由广西投资集团唯品会吉安新年等8家知名企业共同出资创立注册资本金15亿元总部位于南宁市是广西壮族自治区首家寿险法人机构公司以因为国富所以民安为使命用心研发实惠产品用爱提供实在服务守护幸福美好生活
国富人寿保险股份有限公司是经中国银保监会批准于2018年6月成立的全国性寿险公司公司由广西投资集团唯品会吉安新年等8家知名企业共同出资创立注册资本金15亿元总部位于南宁市是广西壮族自治区首家寿险法人机构公司以因为国富所以民安为使命用心研发实惠产品用爱提供实在服务守护幸福美好生活
</p>
<!-- <p class="fs14 indent">
国富人寿将秉持老有所养病有所医红利共享国富民安的核心理念让更多的人过上有尊严的健康快乐的生活作为企业使命树立并践行简单专注诚信激情关爱领先的价值观专注于客户体验研发满足客户需求的产品为客户提供有温度的服务依法合规稳健经营立足广西深耕广西面向全国更好地回馈社会回报股东与时俱进超越自我
@@ -75,7 +75,9 @@ export default {
this.redisKey = this.$route.query.redisKey
if (this.redisKey) {
this.saveShareRecord('1')
localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
localStorage.setItem('token', this.$route.query.token)
}
} else {
this.getShareKey()
}
@@ -117,7 +119,7 @@ export default {
url: `${location.origin}/#/manpower/increaseStaffTools/CompanyIntroduction`
}
getShareKey(data)
.then(res => {
.then((res) => {
console.log(res)
if (res.result == 0) {
this.redisKey = res.content
@@ -125,7 +127,7 @@ export default {
this.$toast(res.resultMessage)
}
})
.catch(err => {
.catch((err) => {
console.log(err)
})
},

View File

@@ -1,6 +1,6 @@
<template>
<div>
<iframe :src="src + pdfUrl" style="width:100vw;height:100vh"></iframe>
<iframe :src="src + pdfUrl" style="width: 100vw; height: 100vh"></iframe>
</div>
</template>
@@ -38,7 +38,9 @@ export default {
this.redisKey = this.$route.query.redisKey
if (this.redisKey) {
this.saveShareRecord('1')
localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
localStorage.setItem('token', this.$route.query.token)
}
} else {
this.getShareKey()
}
@@ -83,7 +85,7 @@ export default {
url: `${location.origin}/pdfjs/web/viewer.html?file=${this.pdfUrl}`
}
getShareKey(data)
.then(res => {
.then((res) => {
console.log(res)
if (res.result == 0) {
this.redisKey = res.content
@@ -91,7 +93,7 @@ export default {
this.$toast(res.resultMessage)
}
})
.catch(err => {
.catch((err) => {
console.log(err)
})
},

View File

@@ -2,8 +2,8 @@
<div class="insured-info-container">
<van-field v-model="pwd" clearable required type="password" label="登陆密码" name="密码" placeholder="请输入登陆密码" />
<p style="color: #ff0000; font-size: 14px;" class="bg-white p10 pb0 mb0">温馨提示</p>
<p style="color: #ff0000; font-size: 14px;" class="bg-white pl10">停用账号将无法再次登陆使用请您谨慎操作</p>
<p style="color: #ff0000; font-size: 14px" class="bg-white p10 pb0 mb0">温馨提示</p>
<p style="color: #ff0000; font-size: 14px" class="bg-white pl10">停用账号将无法再次登陆使用请您谨慎操作</p>
<van-button type="danger" size="large" class="logout_button mt10" :disabled="!Boolean(pwd)" @click="logoutAgent">停用账户 </van-button>
@@ -41,6 +41,14 @@ export default {
}
},
mounted() {
setTimeout(() => {
EWebBridge.webCallAppInJs('enable_screen_capture', {
enable: false
})
}, 500)
},
methods: {
// 注销
logoutAgent() {
@@ -55,7 +63,7 @@ export default {
password: this.$MD5(this.pwd)
}
// 调用注销接口
logoutAgent(req).then(res => {
logoutAgent(req).then((res) => {
this.show = false
if (res.result == 0) {
this.$toast('用户注销成功')

View File

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

View File

@@ -48,7 +48,7 @@
</div>
<div v-else>
<template v-if="redirectUrl">
<iframe v-show="thirdUrlReady" style="width: 100vw; min-height: 100vh;" :src="redirectUrl" frameborder="0"></iframe>
<iframe v-show="thirdUrlReady" style="width: 100vw; min-height: 100vh" :src="redirectUrl" frameborder="0"></iframe>
</template>
<template v-if="detailImg">
<img id="detailImg" v-if="detailImg" :src="$assetsUrl + detailImg" />
@@ -151,7 +151,9 @@ export default {
},
async mounted() {
if (this.isWeixin) {
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
this.loginInfo.aname = decodeURI(this.$route.query.aname)
this.loginInfo.password = decodeURI(this.$route.query.password)
this.shareId = this.$route.query.shareId
@@ -162,7 +164,7 @@ export default {
},
methods: {
prevImg(i) {
let imgs = this.imgList.map(img => {
let imgs = this.imgList.map((img) => {
return this.$assetsUrl + img
})
ImagePreview(imgs, i)
@@ -259,7 +261,7 @@ export default {
//分享轨迹保存
saveShareTrack(data) {
return new Promise((resolve, reject) => {
saveShareTrack(data).then(res => {
saveShareTrack(data).then((res) => {
if (res.result == '0') {
resolve()
} else {

View File

@@ -2,7 +2,7 @@
<div ref="product" class="home-product-container pb20">
<!-- 非个险 -->
<template v-if="!isPersonalInsu">
<div class="home-product-content" v-if="branchType != '12'">
<div class="home-product-content" v-if="branchType != '12' && branchType != '14'">
<!-- 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 ml15 justify-content-s align-items-c" style="height: 30px;">
<h3 class="center-title fs15 pl10" style="border-left: 4px solid red;">知识社区</h3>
@@ -34,7 +34,7 @@
</div>
</div>
<div style="height: 10px;width: 100%;background-color: #f5f5f5;" />
<div class="home-product-content">
<div class="home-product-content" v-if="branchType != '14'">
<!-- 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 justify-content-s align-items-c">
<h3 class="center-title fs15 pl10 ml15" style="border-left: 4px solid red;">产品中心</h3>
@@ -113,8 +113,8 @@
</div>
</div>
<div style="height: 10px;width: 100%;background-color: #f5f5f5;" />
<div class="home-product-content">
<!-- 产品中心 -->
<div class="home-product-content" v-if="branchType != '14'">
<!-- 银保渠道不显示 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 justify-content-s align-items-c">
<img class="title-img" :src="productCenterImgUrl" />
<span class="more fs13 c-gray-base" @click="getMore"><span>查看更多</span><van-icon name="arrow"/></span>
@@ -131,6 +131,17 @@
</div>
</div>
</template>
<template>
<!-- 后台配置图 -->
<div class="home-product-content pt20">
<div class="pcenter-list mr20 mb10 ml15">
<div class="pcenter-item text-center">
<img :src="homeBottomPicUrl" style="width: 100%" alt=""/>
</div>
</div>
</div>
</template>
</div>
</template>
@@ -140,6 +151,7 @@ import performance from '@/assets/images/goodStart/performanceIcon.png'
import product from '@/assets/images/goodStart/product.png'
import { getAgentInfo } from '@/api/ebiz/my/my'
import { getCongratulationList } from '@/api/ebiz/congratulation/congratulation.js'
import { getHomeBottomPic } from '@/api/ebiz/product/product.js'
import dateUtil from '@/assets/js/utils/date-utils.js'
// import { orgShortNames } from '@/assets/js/utils/orgShortName'
import CacheUtils from '@/assets/js/utils/cacheUtils'
@@ -170,7 +182,8 @@ export default {
productCenterImgUrl: '', // 产品中心图片
productCenterKmhImgUrl: this.$assetsUrl + 'images/goodStart/productKmh.png', // 产品中心开门红图片
productCenterNormalImgUrl: this.$assetsUrl + 'images/goodStart/product.png', // 产品中心普通蓝色图片
personalInsu: ['1','N1','N2','N3','N5','T','S','JZG'] // 个险渠道编码及其他展示个险渠道类型的渠道编码
personalInsu: ['1','N1','N2','N3','N5','T','S','JZG'], // 个险渠道编码及其他展示个险渠道类型的渠道编码
homeBottomPicUrl: null
}
},
computed: {
@@ -193,6 +206,16 @@ export default {
}
},
methods: {
async getHomeBottomImg() {
const result = await getHomeBottomPic({ operateType: 'nonRealYB' })
if (result.result === '0' && result.content && result.content.length > 0) {
const timestamp = new Date().getTime()
const originalUrl = result.content[0].picUrl
this.homeBottomPicUrl = originalUrl.includes('?')
? `${originalUrl}&t=${timestamp}`
: `${originalUrl}?t=${timestamp}`
}
},
async getTableData() {
let currMonth = dateUtil.formatDate(new Date(), 'yyyy-MM-dd')
let data = await getCongratulationList({ date: currMonth, queryType: 'm', type: 'kmh' })
@@ -234,11 +257,14 @@ export default {
// 内外勤判断
this.isInner = /^N{1}/.test(result.branchType) || /^S/.test(result.branchType) || /^T/.test(result.branchType) || /^JZG/.test(result.branchType) // 判断是否内勤
this.branchType = result.branchType //6 网销渠道
this.isGoodStart = result.showTemplateKmh === 'KMH'? '1':'2' // 判断是否开门红 1-开门红 2-否
this.isPersonalInsu = this.personalInsu.indexOf(result.branchType) > -1 // 判断是否个险渠道
this.organizationImgUrl = this.isGoodStart =='1'?this.organizationKmhImgUrl:this.organizationNormalImgUrl
this.performanceImgUrl = this.isGoodStart =='1'?this.performanceKmhImgUrl:this.performanceNormalImgUrl
this.productCenterImgUrl = this.isGoodStart =='1'?this.productCenterKmhImgUrl:this.productCenterNormalImgUrl
this.isGoodStart = result.showTemplateKmh === 'KMH' ? '1' : '2' // 判断是否开门红 1-开门红 2-否
this.isPersonalInsu = this.personalInsu.indexOf(result.branchType) > -1 // 判断是否个险渠道
this.organizationImgUrl = this.isGoodStart == '1' ? this.organizationKmhImgUrl : this.organizationNormalImgUrl
this.performanceImgUrl = this.isGoodStart == '1' ? this.performanceKmhImgUrl : this.performanceNormalImgUrl
this.productCenterImgUrl = this.isGoodStart == '1' ? this.productCenterKmhImgUrl : this.productCenterNormalImgUrl
if (this.branchType == '14') {
this.getHomeBottomImg()
}
} else {
this.$toast(result.resultMessage)
}

View File

@@ -804,6 +804,7 @@ export default {
item01.mainRiskCode == 'GFRS_M0083' ||
item01.mainRiskCode == 'GFRS_M0085' ||
item01.mainRiskCode == 'GFRS_M0098' ||
item01.mainRiskCode == 'GFRS_M0103' ||
item01.mainRiskCode == 'GFRS_M0100'
) {
that.ispremshow = false

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -141,6 +141,7 @@
</div>
<van-field
v-model="userInfo.yearSalary"
v-if="Number(branchType) !== 14"
label="平均年收入(万元)"
name="平均年收入"
required
@@ -356,7 +357,8 @@ export default {
isInsured: false, //是投保人本人,
Insured: false, //投保人本人按钮是否置灰
idLimit: false, //证件起止日期是否只读
saleInsuredPersonInfo: JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')) //被保人信息
saleInsuredPersonInfo: JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')), //被保人信息
branchType:''
}
},
mounted() {
@@ -366,6 +368,9 @@ export default {
} else {
this.Insured = false
}
if(window.localStorage.getItem('branchType') || this.$route.query.branchType) {
this.branchType = window.localStorage.getItem('branchType')
}
},
methods: {
setCustomerMarriage(marriageCode) {
@@ -1319,6 +1324,13 @@ export default {
this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
}
}
if (idToData(val).age < 18) {
this.userInfo.marriageStatus = this.branchType == '14' ? '未婚' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? 2 : this.userInfo.marriage
}else{
this.userInfo.marriageStatus = this.branchType == '14' ? '' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? null : this.userInfo.marriage
}
//受益人证件类型如果是户口本时证件截止日期证件截止日期应为第16周岁的生日日期
// if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16){

View File

@@ -4,6 +4,7 @@
<!-- 保单信息 -->
<van-collapse-item title="投保单信息" name="1" class="pb10 pt10">
<van-cell-group>
<van-cell title="网点名称" :value="branchName" v-if="branchType == 14"/>
<van-cell title="投保单号" :value="OrderInfoDTO.orderNo" />
<van-cell title="投保日期" :value="OrderInfoDTO.appntDateLabel" />
<van-cell title="订单状态" :value="OrderInfoDTO.orderStatus | orderStatusFilter" />
@@ -114,6 +115,9 @@ import { getDetail } from '@/api/ebiz/sale/sale'
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
import dataDictionary from '@/assets/js/utils/data-dictionary'
import { getQuestionList } from '@/api/ebiz/questions'
import { getAgentInfo } from '@/api/ebiz/my/my'
import { getCheckModelAgentInfo } from '@/api/ebiz/common/common'
export default {
data() {
return {
@@ -132,17 +136,19 @@ export default {
contNo: '',
list: [],
reason: '',
problemList: []
problemList: [],
branchName: '',
}
},
created() {
this.getAgentInfo()
// 获取保单详情
this.getPolicyDetail()
},
mounted() {
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
}
}
},
components: {
[Collapse.name]: Collapse,
@@ -152,6 +158,19 @@ export default {
[Button.name]: Button
},
methods: {
async getAgentInfo() {
const result = await getAgentInfo({})
if (result.result == '0') {
this.branchType = result.branchType || window.localStorage.getItem('branchType')
if (this.branchType == '14') {
// 网点名称
const res = await getCheckModelAgentInfo({})
if (res.result == 0) {
this.branchName = res.comName
}
}
}
},
// 获取保单详情
async getPolicyDetail() {
let data = {

View File

@@ -12,6 +12,12 @@
<van-field v-model="projectDTO.personCode" label="录单人工号" name="录单人工号" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.leaderCode" label="出单人工号" name="出单人工号" readonly placeholder="请输入"/>
<!-- <van-field :value="projectDTO.departmentName" @click="toSelect('GBCKS')" readonly required label="部门/科室" name="部门/科室" right-icon="arrow" placeholder="请选择"/>-->
</van-cell-group>
<!-- 保单信息 -->
<van-cell-group :border="false" v-if="branchType == 14">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 mt10 pv12">保单信息</p>
<van-field v-model="insureInfo.branchName" label="网点名称" name="网点名称" readonly placeholder="请输入"/>
<van-field v-model="insureInfo.orderNo" label="投保单号" name="投保单号" readonly placeholder="请输入"/>
</van-cell-group>
<van-cell-group class="mt10">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">基本信息</p>
@@ -135,14 +141,18 @@
v-validate="'required|mobileLength11|mobileStartWith1|mobile'"
maxlength="11"
/>
<van-field
<div class="no-border">
<van-field
v-model="userInfo.email"
required
:required="Number(branchType)!==14"
label="电子邮箱"
name="电子邮箱"
placeholder="请输入"
v-validate="'required|email'"
v-validate="Number(branchType) !== 14 ? 'required|' : '' +'|email'"
clearable />
</div>
<p class="email-tip" v-if="branchType == '14'">用于接收电子保单及相关服务通知</p>
<van-field
v-model="userInfo.stature"
label="身高(cm)"
@@ -213,7 +223,7 @@
v-validate="'required'"
@click="toSelect('3')"
/> -->
<select-radio :radios="medicalRadio" v-validate="'required'" label="有无社保" name="有无社保" required :value.sync="userInfo.medical"></select-radio>
<select-radio v-if="Number(branchType)!==14" :radios="medicalRadio" v-validate="'required'" label="有无社保" name="有无社保" required :value.sync="userInfo.medical"></select-radio>
<van-field
:value="userInfo.taxResidentId | idToText('taxIdentity')"
readonly
@@ -251,6 +261,7 @@
placeholder="请选择"
v-validate="'required'"
@click="toSelect('8')"
v-if="branchType != '14'"
/>
<van-field
v-show="isShowOthenSalarySource"
@@ -280,6 +291,7 @@
v-validate="'required|onlyNumber'"
clearable
maxlength="5"
v-if="branchType != '14'"
>
<div slot="label" class="flex flex-wrap">
<span>负债金额</span>
@@ -320,7 +332,7 @@
v-validate="'required'"
@click="toSelect('9')"
/> -->
<select-radio required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync"></select-radio>
<select-radio required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync" v-if="branchType != '14'"></select-radio>
<SearchField
:isAsync="userInfo.isAsync == 1"
@workcompanys="workcompanys"
@@ -329,6 +341,7 @@
placeholder="无工作单位,请输入无"
v-validate="'required'"
name="工作单位"
v-if="branchType != '14'"
/>
<!-- <van-field
v-model="areaName"
@@ -401,7 +414,11 @@
<!-- <van-field v-model="userInfo.homeZip" required label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable /> -->
<!-- <van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="13" clearable /> -->
</van-cell-group>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">下一步</van-button>
<div class="bottom-btn flex">
<van-button color="#E9332E" plain v-no-more-click="1000" @click="generateInsureNo" v-if="branchType == '14'">生成投保单号</van-button>
<van-button type="danger" @click="nextStep" v-no-more-click="1000" class="flex1">下一步</van-button>
</div>
<!-- <van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">下一步</van-button> -->
<!-- 字段选择 -->
<van-popup v-model="popupShow" position="bottom"><van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" /></van-popup>
@@ -441,6 +458,52 @@
<van-button type="danger" block style="font-size: 14px;" @click="thisdoubledialogfunc">确定</van-button>
</div>
</van-dialog>
<van-dialog v-model="insureNoshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #e9332e">生成投保单号</p>
</div>
<div style="padding: 20px 15px 30px; font-size: 14px" v-if="!insureInfo.orderNo">
<div style="line-height: 25px">请您输入证件号码输入完成后系统将自动生成投保单号</div>
<van-field
:value="insuredDialogInfo.idType | idToText('insuredIdType')"
v-validate="'required'"
readonly
required
label="证件类型"
name="证件类型"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('dialogInsuredIdType')"
/>
<van-field
v-model="insuredDialogInfo.idNo"
maxlength="18"
required
label="证件号码"
v-validate="'required'"
name="证件号码"
placeholder="请输入投保人证件号码"
clearable
@blur="idNoVerification(insuredDialogInfo.idNo)"
>
</van-field>
</div>
<div style="padding: 20px 15px 30px; font-size: 14px" v-if="insureInfo.orderNo">
<div style="line-height: 25px">根据您输入的证件号码我们己为您生成投保单号</div>
<div style="line-height: 25px">{{ insureInfo.orderNo }}</div>
</div>
<div style="text-align: center; margin-bottom: 30px">
<van-button round type="danger" size="small" style="padding: 0px 35px; font-size: 14px;margin-right: 30px;" @click="insureBack()" v-if="!insureInfo.orderNo"
>退出</van-button
>
<van-button round type="danger" size="small" style="padding: 0px 35px; font-size: 14px" @click="insureConfirm()" v-if="!insureInfo.orderNo"
>确定</van-button
>
<van-button round type="danger" size="small" style="padding: 0px 35px; font-size: 14px" @click="insureNoCompleted()" v-if="insureInfo.orderNo"
>完成</van-button
>
</div>
</van-dialog>
</div>
</template>
<script>
@@ -465,6 +528,8 @@
import SearchField from '@/components/common/SearchField'
import riskRules from '@/views/ebiz/common/risk-rules'
import { gbcProjectDetail, getDepartmentByProjectNo } from '@/api/GBC/GBC'
import { getCheckModelAgentInfo } from '@/api/ebiz/common/common'
import { getAgentInfo } from '@/api/ebiz/my/my'
export default {
name: 'insuredInfo',
@@ -623,10 +688,19 @@
salePageFlag: '1',
userWorkcompanys: [], //单位数据
manageComCode:'',//代理人管理机构 52贵州 45广西
areaValue:'' //代理人管理机构--省级编号
areaValue:'', //代理人管理机构--省级编号
insureNoshow: false, // 生成保单弹窗
insureInfo: {
branchName: '',
orderNo: '',
},
insuredDialogInfo: {
idType:'',
idNo:'',
},
}
},
created() {
async created() {
this.specilFlag = this.$route.query.specilFlag
localStorage.removeItem('bankCardUrlPath')
localStorage.removeItem('bankCard')
@@ -636,7 +710,10 @@
localStorage.removeItem('imgfrontInsuredPath')
localStorage.removeItem('imgBackPath')
localStorage.removeItem('imgBackInsuredPath')
if(window.localStorage.getItem('branchType')){
localStorage.removeItem('branchType')
}
await this.getAgentInfo()
// document.body.style.backgroundColor = '#F5F5F5'
//如果是编辑/导航进来
// this.isElecCont = '0'
@@ -647,6 +724,8 @@
this.renovate = new Date().getTime()
//投保人信息返显
this.userInfo = res.orderDTO.appntDTO
// 保单信息-投保单号返显
this.insureInfo.orderNo = this.userInfo.orderNo || ''
this.setCustomerMarriage(res.orderDTO.appntDTO.marriage)
//是否长期
this.userInfo.effectiveDateType = res.orderDTO.appntDTO.effectiveDateType == 'false' ? false : true
@@ -704,6 +783,7 @@
}
},
async mounted() {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
@@ -737,6 +817,84 @@
}
},
methods: {
async getAgentInfo() {
const result = await getAgentInfo({})
if (result.result === '0') {
this.branchType = result.branchType
localStorage.setItem('branchType', this.branchType)
if(this.branchType == '14'){
this.userInfo.isAsync = this.branchType == '14' ? null : 0
// 网点名称
const userInfo = await getCheckModelAgentInfo({})
if(userInfo.result == 0) {
this.insureInfo.branchName = userInfo.comName
}
}
}
},
idNoVerification(val) {
if (this.insuredDialogInfo.idType == '1') {
if (!idNoCheck.isIdno(val)) {
this.insuredDialogInfo.idNo = ""
return this.$toast('您填写的证件号码有误')
}
}
},
generatePolicyNo(){
let params = {
orderType: 'ORDER_NO',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo,
isElecCont: this.isElecCont
},
appntDTO: {}
}
}
params.orderDTO.appntDTO.idType = this.insuredDialogInfo.idType
params.orderDTO.appntDTO.idNo = this.insuredDialogInfo.idNo
saveOrUpdateOrderInfo(params).then((res) => {
if (res.result == 0) {
this.insureInfo.orderNo = res.orderNo
this.insureNoshow = true
} else {
this.$toast(res.resultMessage)
}
})
},
// 生成保单号完成按钮
insureNoCompleted(){
this.insureNoshow = false
this.userInfo.idNo = this.insuredDialogInfo.idNo
this.getRelatedData(this.userInfo.idNo, 1)
},
// 生成保单号退出按钮
insureBack(){
this.insureNoshow = false
// 清空弹窗中的输入信息
this.insuredDialogInfo.idType = ''
this.insuredDialogInfo.idNo = ''
// 清空已生成的投保单号
this.insureInfo.orderNo = ''
},
// 生成保单号确认按钮
insureConfirm(){
if(!this.insuredDialogInfo.idNo) {
return this.$toast('请输入投保人证件号码!')
} else {
this.generatePolicyNo()
}
},
// 生成保单号
generateInsureNo(){
this.insuredDialogInfo.idType = this.userInfo.idType
this.insuredDialogInfo.idNo = this.userInfo.idNo
if (this.userInfo.idType && this.userInfo.idNo && !this.insureInfo.orderNo){
this.generatePolicyNo()
} else{
this.insureNoshow = true
}
},
getDepartmentByProjectNo(){
let params = {
@@ -903,6 +1061,8 @@
case 'GBCKS':
this.columns = this.departmentList
break
case 'dialogInsuredIdType':
this.columns = DataDictionary.insuredIdType
}
// if (pickerType == '1') {
@@ -989,6 +1149,9 @@
} else if (this.pickerType === 'GBCKS') {
this.projectDTO.departmentCode = value.id
this.projectDTO.departmentName = value.text
} else if (this.pickerType == 'dialogInsuredIdType') {
this.insuredDialogInfo.idNo = ''
this.insuredDialogInfo.idType = value.id
}
},
//证件起始截止日期
@@ -1053,7 +1216,7 @@
this.effectiveDateTypeAble = !(age > 45)
}
//年龄18周岁工作单位默认值为
if (age < 18) {
if (age < 18 && this.branchType != '14') {
this.userInfo.workcompany = this.userInfo.workcompany || '无'
}
if (this.userInfo.certificateValidate && !this.userInfo.certiexpiredate) {
@@ -1092,7 +1255,7 @@
}
this.userInfo.occupationCode = data.occupationCode //职业类别编码
this.userInfo.occupationName = data.occupationName //职业类别名称
this.userInfo.salarySource = data.salarySource //收入来源
this.userInfo.salarySource = this.branchType == '14' ? '' : data.salarySource //收入来源
this.userInfo.otherSalarySource = data.otherSalarySource // 其他收入来源
this.userInfo.lifeGrade = data.lifeGrade //寿险等级
this.userInfo.healthGrade = data.healthGrade //健康等级
@@ -1103,12 +1266,12 @@
this.userInfo.medical = data.socialSecurity //有无社保
this.userInfo.taxResidentId = data.residentStatus //税收居民身份
this.userInfo.averageAnnualIncome = data.averageYearlyIncome //平均年收入
this.userInfo.workcompany = this.specilFlag == '1' ? '' : data.workUnits //工作单位
this.userInfo.workcompany = this.branchType == '14' ? '' : this.specilFlag == '1' ? '' : data.workUnits //工作单位
// this.userInfo.jobStatus = data.jobStatus //工作情况
this.setCustomerMarriage(data.marryStatus)
// this.userInfo.familyAnnualIncome = data.familyAnnualIncome //家庭年收入
this.userInfo.email = data.email //电子邮箱
this.userInfo.liabilitiesMoney = data.liabilitiesMoney //负债金额
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : data.liabilitiesMoney //负债金额
// this.userInfo.companyProvince = data.companyProvince //单位省
// this.userInfo.companyCity = data.companyCity //单位市
// this.userInfo.companyArea = data.companyArea //单位区
@@ -1159,6 +1322,9 @@
// }
// .then(valid => {
if (true === valid) {
if(this.branchType == "14" &&!this.insureInfo.orderNo){
return this.$toast('投保单号不能为空,请先生成投保单号~')
}
localStorage.chooseProductCodesNew = localStorage.chooseProductCodes
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
@@ -1307,11 +1473,11 @@
// this.userInfo.occupationCode == '8000001'
// ) {
// }
if (!this.userInfo.workcompany) {
if (!this.userInfo.workcompany && this.branchType != '14') {
this.userInfo.workcompany = '无'
}
if (this.userInfo.salarySource == '4') {
if (this.userInfo.salarySource == '4' && this.branchType != '14') {
if (!this.userInfo.otherSalarySource) {
return this.$toast('请输入其它收入来源')
}
@@ -1389,7 +1555,7 @@
return this.$toast('亲,国籍为外籍,证件类型必须为护照或外国人永久居留身份证投保')
}
}
if (this.userInfo.isAsync == 1) {
if (this.userInfo.isAsync == 1 && this.branchType != '14') {
if (
!this.userWorkcompanys.some((item) => {
return item.asscompanies == this.userInfo.workcompany
@@ -1451,10 +1617,13 @@
orderType: 'APPNT_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo,
orderNo: this.$route.query.orderNo ? this.$route.query.orderNo : this.branchType=="14" && this.insureInfo.orderNo ? this.insureInfo.orderNo : null,
isElecCont: this.isElecCont
},
appntDTO: {}
appntDTO: {},
userModel: {
branchType: this.branchType
}
}
}
this.thismystr = ''
@@ -1512,10 +1681,10 @@
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo,
url: location.origin + `/#/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo + '&branchType=' + this.branchType,
},
routerInfo: {
path: `/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo,
path: `/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo + '&branchType=' + this.branchType,
},
})
},
@@ -1611,7 +1780,7 @@
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
//年龄小于18周岁工作单位默认值为
if (idToData(val).age < 18) {
if (idToData(val).age < 18 && this.branchType != '14') {
this.userInfo.workcompany = this.userInfo.workcompany || '无'
}
if (idToData(val).age > 45) {
@@ -1658,4 +1827,16 @@
margin-top: 45px;line-height: 24px;text-indent: 2em;letter-spacing: 1px;padding: 2px 10px;
}
}
.no-border {
/deep/.van-cell {
border-bottom: none;
}
}
.email-tip {
color: #999;
margin: 0 0 10px 20px;
padding: 5px 0 10px 85px;
border-bottom: 1px solid #eee;
font-size: 14px;
}
</style>

View File

@@ -169,24 +169,26 @@
:readonly="isAppnt"
/> -->
<van-field
v-if="Number(branchType)!==14"
v-model="userInfo.stature"
label="身高(cm)"
name="身高"
required
placeholder="请输入单位cm"
v-validate="'required|onlyNumber|stature'"
v-validate="Number(branchType)!==14? '' :'required|' + 'onlyNumber|stature'"
clearable
maxlength="5"
:readonly="isAppnt"
@blur="checkStature(userInfo.stature)"
/>
<van-field
v-if="Number(branchType)!==14"
v-model="userInfo.avoirdupois"
label="体重(kg)"
name="体重"
required
placeholder="请输入单位kg"
v-validate="'required|onlyNumber'"
v-validate="Number(branchType)!==14? '' :'required|' +'required|onlyNumber'"
clearable
:readonly="isAppnt"
@blur="checkAvoirdupois(userInfo.avoirdupois)"
@@ -230,6 +232,7 @@
@click="toSelect('3')"
/> -->
<select-radio
v-if="Number(branchType) !== 14"
:radios="medicalRadio"
label="有无社保"
name="有无社保"
@@ -275,6 +278,7 @@
placeholder="请选择"
v-validate="'required'"
@click="toSelect('9')"
v-if="branchType != '14'"
/>
<van-field
v-show="isShowOthenSalarySource"
@@ -306,6 +310,7 @@
clearable
maxlength="5"
:readonly="isAppnt"
v-if="branchType != '14'"
>
<div slot="label" class="flex flex-wrap"><span>负债金额</span><span>万元</span></div>
</van-field>
@@ -331,7 +336,7 @@
clearable
:readonly="isAppnt"
/> -->
<select-radio v-if="userInfo.relationToAppnt != 1" required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync"></select-radio>
<select-radio v-if="userInfo.relationToAppnt != 1 && Number(branchType) !== 14" required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync"></select-radio>
<SearchField
v-model="userInfo.workcompany"
@workcompanys="workcompanys"
@@ -340,6 +345,7 @@
placeholder="无工作单位,请输入无"
v-validate="'required'"
name="工作单位"
v-if="Number(branchType) !== 14 && userInfo.relationToAppnt != 1"
/>
<!-- <van-field
v-model="areaName"
@@ -646,11 +652,18 @@
userWorkcompanys:[],//单位数据
manageComCode:'',//代理人管理机构 52贵州 45广西
areaValue:'', //代理人管理机构--省级编号
renovate:''//是否展示风险测评
renovate:'',//是否展示风险测评
branchType:'',
}
},
created() {
this.specilFlag = this.$route.query.specilFlag
if(window.localStorage.getItem('branchType')) {
this.branchType = window.localStorage.getItem('branchType')
} else if(this.$route.query.branchType){
window.localStorage.setItem('branchType', this.$route.query.branchType)
this.branchType = this.$route.query.branchType
}
//如果是编辑/导航进来
// if (this.$route.query.edit) {
const orderNo = this.$route.query.orderNo
@@ -1168,10 +1181,10 @@
this.effectiveDateTypeAble = age <= 45
} else {
if (age < 16) {
this.userInfo.salarySource = 4
this.userInfo.salarySource = this.branchType == '14' ? null : 4
this.userInfo.otherSalarySource = '无'
this.userInfo.averageAnnualIncome = '0'
this.userInfo.liabilitiesMoney = '0'
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : '0'
}
}
if (this.userInfo.certificateValidate && !this.userInfo.certiexpiredate) {
@@ -1281,7 +1294,7 @@
}
this.userInfo.occupationCode = data.occupationCode //职业类别编码
this.userInfo.occupationName = data.occupationName //职业类别名称
this.userInfo.salarySource = data.salarySource //收入来源
this.userInfo.salarySource = this.branchType == '14' ? null : data.salarySource //收入来源
this.userInfo.otherSalarySource = data.otherSalarySource // 其他收入来源
this.userInfo.lifeGrade = data.lifeGrade //寿险等级
this.userInfo.healthGrade = data.healthGrade //健康等级
@@ -1297,7 +1310,7 @@
this.setCustomerMarriage(data.marryStatus)
// this.userInfo.familyAnnualIncome = data.familyAnnualIncome //家庭年收入
// this.userInfo.email = data.email //电子邮箱
this.userInfo.liabilitiesMoney = data.liabilitiesMoney //负债金额
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : data.liabilitiesMoney //负债金额
// this.userInfo.companyProvince = data.companyProvince //单位省
// this.userInfo.companyCity = data.companyCity //单位市
// this.userInfo.companyArea = data.companyArea //单位区
@@ -1642,7 +1655,7 @@
return this.$toast('0-7岁未成年人须由其父母投保请确定')
}
if (this.userInfo.salarySource == '4') {
if (this.userInfo.salarySource == '4' && this.branchType != '14') {
if (!this.userInfo.otherSalarySource) {
return this.$toast('请输入其它收入来源')
}
@@ -1780,6 +1793,9 @@
orderNo: this.$route.query.orderNo,
},
appntDTO: {},
userModel: {
branchType: this.branchType
}
},
}
if (this.userInfo.mediaDTOS == '') {
@@ -1988,13 +2004,18 @@
//年龄小于18周岁工作单位默认值为
if (idToData(val).age < 18) {
this.userInfo.workcompany = this.userInfo.workcompany || ''
this.userInfo.marriageStatus = this.branchType == '14' ? '未婚' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? 2 : this.userInfo.marriage
} else {
this.userInfo.marriageStatus = this.branchType == '14' ? '' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? null : this.userInfo.marriage
}
if (!from) {
if (idToData(val).age < 16) {
this.userInfo.salarySource = 4
this.userInfo.salarySource = this.branchType == '14' ? null : 4
this.userInfo.otherSalarySource = ''
this.userInfo.averageAnnualIncome = '0'
this.userInfo.liabilitiesMoney = '0'
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : '0'
} else {
this.userInfo.salarySource = ''
this.userInfo.averageAnnualIncome = ''

View File

@@ -55,14 +55,14 @@
<span class="c-gray-darker fwb">首期总保费</span>
<span class="yellow fwb">{{ order.firstPrem == 0 ? '0.00' : order.firstPrem | moneyFormat }}</span>
</div>
<div class="pt15" v-if="active == 'commit' || active == 'waitUnderwritten'" style="border-top:1px solid #dadada">
<div class="pt15" style="border-top:1px solid #dadada">
<div>
<div class="w80 inline-b">
<van-tag plain color="#999999">投保单号</van-tag>
</div>
<span class="fs14 c-gray-dark">{{ order.orderInfoDTO.orderNo }}</span>
</div>
<div class="mt10">
<div class="mt10" v-if="active == 'commit' || active == 'waitUnderwritten'" >
<div class="w80 inline-b">
<van-tag plain color="#999999">状态</van-tag>
</div>
@@ -70,7 +70,12 @@
</div>
</div>
<div v-if="!!order.orderInfoDTO.doubleFlag && order.orderInfoDTO.doubleFlag == '0'" class="fs12 mt15">
温馨提示本投保单满足双录条件需要双录质检通过后才能承保
<div v-if="branchType =='14' && order.insuredDTOs[0].riskDTOLst[0].insuYear > 1">
温馨提示一年期以上保险产品需按监管要求双录请及时双录
</div>
<div v-else>
温馨提示本投保单满足双录条件需要双录质检通过后才能承保
</div>
</div>
<div class="text-right mt15 ">
@@ -142,6 +147,7 @@ import { funcPermCheck } from '@/api/ebiz/common/common'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到用户等级
import CheckAgent from '@/components/common/CheckAgent'
import { getAgentInfo } from '@/api/ebiz/my/my'
export default {
name: 'saleList',
@@ -202,7 +208,15 @@ export default {
captchaTimer: null,
captchaReceiver: '',
revokeOrderNo: '',
captchaMaped: false
captchaMaped: false,
branchType: ''
}
},
created() {
if(this.$CacheUtils.getLocItem('branchType')) {
this.branchType = this.$CacheUtils.getLocItem('branchType')
}else{
this.getAgentInfo()
}
},
mounted() {
@@ -218,6 +232,14 @@ export default {
})
},
methods: {
async getAgentInfo() {
const result = await getAgentInfo({})
if (result.result === '0') {
this.branchType = result.branchType
localStorage.setItem('branchType', this.branchType)
this.$CacheUtils.setLocItem('branchType', this.branchType)
}
},
beforeClose(action, done) {
this.captchaMaped ? done() : done(false)
},
@@ -347,7 +369,7 @@ export default {
url = '/sale/AttachmentManagement?orderNo=' + order.orderInfoDTO.orderNo
break
case '49': //影像上传页填写成功,跳到银行卡号确认页
url = '/sale/SignatureConfirmation?orderNo=' + order.orderInfoDTO.orderNo
url = '/sale/SignatureConfirmation?orderNo=' + order.orderInfoDTO.orderNo + '&branchType=' + this.branchType
break
}
this.$jump({
@@ -472,15 +494,15 @@ export default {
localStorage.isFrom = 'sale'
localStorage.removeItem('changeCard')
if(orderStatus == '01'){ //已签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '43'){//未签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '35'){//投保人保存成功, 跳到被保险人页面
url = '/sale/insuredPerson?edit=1&orderNo='+orderNo
url = '/sale/insuredPerson?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '36'){//被保险人保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
url = '/common/selectedProduct?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
if(order.orderInfoDTO.activeType == 'KMH') {
let params = {
@@ -512,7 +534,7 @@ export default {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
}
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
url = '/common/selectedProduct?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--
if( order.riskEvaluationDTO.isShowEvaluationPoint != '1'){
if(order.universalRiskNotifyDTO && order.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint == '1'){
@@ -523,7 +545,11 @@ export default {
}else {
url = '/sale/answerPage?edit=1&orderNo='+orderNo
}
}else if(orderStatus == ''){//跳到投保人
} else if(orderStatus == '' || (orderStatus == '66' && this.branchType == '14')){
/*
*跳到投保人
*银保渠道特殊情况66投保人信息填写不完整
*/
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo
}else if(orderStatus == '44'){//建议书转投保, 跳到投保人
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo

View File

@@ -183,7 +183,11 @@ export default {
'10': '投保人财务告知',
'9': '被保险人健康告知',
'11': '被保险人财务告知',
'13': '被保险人健康告知'
'13': '被保险人健康告知',
'14': '被保险人职业告知',
'15': '被保险人职业告知',
'16': '被保险人职业告知',
'17': '被保险人职业告知',
},
salePageFlag: '5',
// 是否特定医疗险
@@ -208,20 +212,34 @@ export default {
this.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
//如果返回参数存在曾经提交的告知信息,获取曾经提交的告知信息
let insuredFinanceImpartDTO = res.orderDTO.appntDTO.financeImpartDTO //投保人财务告知集合
// 银保非实时才会存在这个字段
let insuredJobImpartDTO = res.orderDTO.appntDTO.jobImpartDTO ? res.orderDTO.appntDTO.jobImpartDTO : {impartItemDTOS: false} //投保人健康告知集合
// 银保非实时才会存在这个字段
let insuredPersonJobImpartDTO = res.orderDTO.insuredDTOs[0].jobImpartDTO ?res.orderDTO.insuredDTOs[0].jobImpartDTO : {impartItemDTOS: false}
let insuredImpartDTO = res.orderDTO.appntDTO.impartDTO //投保人健康告知集合
let insuredPersionFinanceImpartDTO = res.orderDTO.insuredDTOs[0].financeImpartDTO //被保人财务告知集合
let insuredPersionImpartDTO = res.orderDTO.insuredDTOs[0].impartDTO //被保人健康告知集合
if (
insuredFinanceImpartDTO.impartItemDTOS ||
insuredImpartDTO.impartItemDTOS ||
insuredPersionFinanceImpartDTO.impartItemDTOS ||
insuredPersionImpartDTO.impartItemDTOS
insuredPersionImpartDTO.impartItemDTOS||
insuredJobImpartDTO.impartItemDTOS||
insuredPersonJobImpartDTO.impartItemDTOS
) {
if (insuredFinanceImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredFinanceImpartDTO.impartItemDTOS, impartType: insuredFinanceImpartDTO.impartType })
} else if (insuredPersionFinanceImpartDTO.impartItemDTOS && this.relationToAppnt == '1') {
this.impartDTOS.push({ impartItemDTOS: insuredPersionFinanceImpartDTO.impartItemDTOS, impartType: insuredPersionFinanceImpartDTO.impartType })
}
if (insuredJobImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredJobImpartDTO.impartItemDTOS, impartType: insuredJobImpartDTO.impartType })
} else if (insuredPersonJobImpartDTO.impartItemDTOS && this.relationToAppnt == '1') {
this.impartDTOS.push({ impartItemDTOS: insuredPersonJobImpartDTO.impartItemDTOS, impartType: insuredPersonJobImpartDTO.impartType })
}
if (insuredImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredImpartDTO.impartItemDTOS, impartType: insuredImpartDTO.impartType })
} else if (insuredPersionImpartDTO.impartItemDTOS && this.relationToAppnt == '1') {
@@ -230,6 +248,9 @@ export default {
if (this.relationToAppnt != '1') {
if (insuredPersionFinanceImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredPersionFinanceImpartDTO.impartItemDTOS, impartType: insuredPersionFinanceImpartDTO.impartType })
}
if (insuredPersonJobImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredPersonJobImpartDTO.impartItemDTOS, impartType: insuredPersonJobImpartDTO.impartType })
}
if (insuredPersionImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredPersionImpartDTO.impartItemDTOS, impartType: insuredPersionImpartDTO.impartType })
@@ -258,6 +279,7 @@ export default {
// 获取告知消息
this.information()
}
//投被同人取到年纪和性别去判断是是否显示内容
this.saleInsuredAge = utilsAge.getAge(this.saleInsuredInfo.birthday, new Date())
this.saleInsuredSex = this.saleInsuredInfo.sex
@@ -599,6 +621,8 @@ export default {
let objInsured = {}
let financeImpartDTO = {}
let financeImpart = {}
let jobImpartDTO = {} //
let jobImpart = {} //
// let arr = []
that.impartDTOS.map(item => {
// 投保人健康告知
@@ -647,6 +671,18 @@ export default {
})
objInsured = item
return objInsured
}else if ([14,15,16,17].includes(Number(item.impartType))){
item.impartItemDTOS.map(i => {
delete i.isSelect
delete i.show
})
return jobImpart = item
}else if ([18,19,20,21].includes(Number(item.impartType))){
item.impartItemDTOS.map(i => {
delete i.isSelect
delete i.show
})
return jobImpartDTO = item
}
})
@@ -769,7 +805,54 @@ export default {
}
})
}
else {
else if(financeImpart == {}){
let data = {
orderType: 'IMPART_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo,
productCode: JSON.parse(localStorage.mainRiskCodes)[0]
},
// 投保人
appntDTO: {
impartDTO: obj,
jobImpartDTO: jobImpartDTO
},
// 被保险人
insuredDTOs: [{ impartDTO: objInsured }]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
localStorage.removeItem('changeCard')
if(this.isUniversalRiskNotifyShowPoint == '1'){
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/universalRiskNotifyingMessage?orderNo=' + this.$route.query.orderNo,
},
routerInfo: {
path: '/sale/universalRiskNotifyingMessage?orderNo=' + this.$route.query.orderNo
}
})
}else{
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation',
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
}
} else {
this.$toast(res.resultMessage)
}
})
}
else {
let data = {
orderType: 'IMPART_ORDER',
orderDTO: {
@@ -781,10 +864,11 @@ export default {
// 投保人
appntDTO: {
impartDTO: obj,
financeImpartDTO: financeImpartDTO
financeImpartDTO: financeImpartDTO,
jobImpartDTO: jobImpartDTO
},
// 被保险人
insuredDTOs: [{ impartDTO: objInsured, financeImpartDTO: financeImpart }]
insuredDTOs: [{ impartDTO: objInsured, financeImpartDTO: financeImpart,jobImpartDTO: jobImpart }]
}
}
saveInformation(data).then(res => {

View File

@@ -24,7 +24,11 @@
</div>
<div v-else-if="uwResult == '53'">
<img :src="srcPending" class="mb40 mt20" />
<p class="title">待核心业务系统批量扣费</p>
<p class="title">核保通过待核心业务系统批量扣费</p>
</div>
<div v-else-if="uwResult == '65'">
<img :src="srcPending" class="mb40 mt20" />
<p class="title">银保非实时单提交再次核保</p>
</div>
<div v-else>
<img :src="srcPending" class="mb40 mt20" />
@@ -38,9 +42,9 @@
</van-cell-group>
<div class="bg-white p10 pb150">
<div class="text-left ml20 mt20" v-if="uwResult == '46' || uwResult == '07'">
<div class="text-left ml20 mt20" v-if="uwResult == '46' || uwResult == '07'|| uwResult == '65'">
<div class="fs14" v-html="`原因:${resultMessage}`"></div>
<div class="fs14" v-html="`${orderNoStr}`"></div>
<!-- <div class="fs14" v-html="`${orderNoStr}`"></div>-->
</div>
</div>
</div>
@@ -98,6 +102,7 @@ export default {
}
that.uwResult = window.localStorage.getItem('uwResult')
that.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
that.resultMessage = that.resultMessage || that.underWriteData.message || ''
console.log('resultMessage: ', window.localStorage.getItem('resultMessage'))
},
methods: {

File diff suppressed because it is too large Load Diff

View File

@@ -47,16 +47,17 @@
v-if="isShow"
type="danger"
size="normal"
class="w150"
class="w150"
plain
v-no-more-click="1000"
:disabled="appntSign.signStatus == '1'"
@click="share(insured.length == '0' ? '2' : '0')"
>分享</van-button>
>分享</van-button
>
<van-button
type="danger"
size="normal"
class="w150"
class="w150"
plain
:disabled="appntSign.signStatus == '1'"
v-no-more-click="1000"
@@ -96,17 +97,18 @@
v-if="isShow"
type="danger"
size="normal"
class="w150"
class="w150"
:disabled="insuredSign.signStatus == '1'"
@click="share('1')"
plain
v-no-more-click="1000"
>分享</van-button>
>分享</van-button
>
<van-button
type="danger"
size="normal"
plain
class="w150"
class="w150"
:disabled="insuredSign.signStatus == '1'"
@click="start_ocr('1')"
v-no-more-click="1000"
@@ -119,7 +121,7 @@
</div>
</div>
<div v-else>
<!-- 在微信 -->
<!-- 在微信 -->
<div v-if="shareCode != '1'" class="mt10">
<van-collapse v-model="activeNames">
<van-collapse-item name="1">
@@ -158,7 +160,7 @@
<van-button
type="danger"
size="normal"
style="width: 157px;"
style="width: 157px"
plain
:disabled="appntSign.signStatus == '1'"
v-no-more-click="1000"
@@ -210,7 +212,7 @@
type="danger"
size="normal"
plain
style="width: 157px;"
style="width: 157px"
:disabled="insuredSign.signStatus == '1'"
@click="start_ocr('1')"
v-no-more-click="1000"
@@ -306,17 +308,17 @@ export default {
methods: {
// 初始化
async init() {
if (this.isWeixin) {
if (this.$route.query.airSign) {
sessionStorage.setItem('airSign', this.$route.query.airSign)
}
this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
this.$CacheUtils.setLocItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
@@ -337,7 +339,7 @@ export default {
this.shareCode = sessionStorage.getItem('shareCode')
this.relationToAppnt = this.$route.query.relationToAppnt
this.isShow = false
await this.getOrderDetail()
await this.getOrderDetail()
if (this.shareCode == '1') {
this.tipsName = this.saleInsuredPersonInfo.name
} else {
@@ -475,13 +477,14 @@ export default {
// 原人脸识别
EWebBridge.webCallAppInJs('face_auth', {
number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名
name: that.saleInsuredInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
// })
// 跳过人脸识别
// new Promise(resolve => {
// console.log('--跳过人脸识别--返回识别成功')
// resolve(JSON.stringify({ state: '1' }))
}).then(data => {
}).then((data) => {
if (JSON.parse(data).state == '1') {
if (that.appntSign.readStatus == '0') {
console.log('--跳过人脸识别--返回识别成功zzzzzzzzzz')
@@ -537,12 +540,13 @@ export default {
// 跳过人脸识别
EWebBridge.webCallAppInJs('face_auth', {
number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名
name: that.saleInsuredInfo.name, //姓名
orderNo: this.$CacheUtils.getLocItem('orderNo') //订单号
// })
// new Promise(resolve => {
// console.log('--跳过人脸识别--返回识别成功')
// resolve(JSON.stringify({ state: '1' }))
}).then(data => {
}).then((data) => {
if (JSON.parse(data).state == '1') {
if (that.insuredSign.readStatus == '0') {
this.$jump({
@@ -657,7 +661,7 @@ export default {
}
}
// /insure/selfToHuman
underWrite(data).then(res => {
underWrite(data).then((res) => {
this.$toast.clear()
let that = this
if (res.result == '0') {
@@ -747,7 +751,7 @@ export default {
let data = {
orderNo: window.localStorage.getItem('orderNo')
}
getOrderDetail(data).then(res => {
getOrderDetail(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.$utils.intLocalStorage(res)
@@ -767,7 +771,7 @@ export default {
that.appnt = res.orderDTO.appntDTO
that.date = res.orderDTO.orderInfoDTO.appntDateLabel
res.orderDTO.signDTOS.map(item => {
res.orderDTO.signDTOS.map((item) => {
if (item.signType == '0') {
that.appntSign = item
} else if (item.signType == '1') {
@@ -791,7 +795,7 @@ export default {
message: '加载中……'
})
let data = {}
getSignInvalid(data).then(res => {
getSignInvalid(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
this.signInvalid = res.content.sign
@@ -813,7 +817,7 @@ export default {
sign: signInvalid
}
return new Promise((resolve, reject) => {
checkSignInvalid(data).then(res => {
checkSignInvalid(data).then((res) => {
if (res.result == '0') {
that.$toast.clear()
let status = res.content.status

View File

@@ -8,15 +8,21 @@
<van-icon v-if="index != fileList.length - 1" name="arrow" style="margin: 0px 5px;"/>
</p>
</div>
<van-notice-bar :scrollable='false' v-if='!Time' class='notice'>
<!-- 普通渠道的读秒提示 -->
<van-notice-bar :scrollable='false' v-if='branchType != "14" && !Time' class='notice'>
{{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}
</van-notice-bar>
<div id="pdf" style="overflow: scroll;background: #eee;" :style="[{height:isPreview ? '100vh' : '75vh'}]">
<div id="pdf" style="overflow: scroll;background: #eee;" :style="[{height:isPreview ? '100vh' : '75vh'}]" @scroll="handleScroll">
<div id="pdfH5ID"></div>
<div ref="activeButtonEle"></div>
<!-- 银保渠道右侧标注提示 -->
<div v-if='branchType == "14" && !isScrollToBottom' class='scroll-tip'>
请下滑至底部完成阅读
</div>
</div>
<div style="height: 20vh;" v-if="!isPreview">
<van-radio-group v-model='radio' class='pb10 pt10 pl10 fs20'>
<van-radio name='1' @click='click'>
<van-radio name='1' @click='click' :disabled="branchType == '14' && !isScrollToBottom">
本人确认已阅读<span>{{documentName}}</span>
</van-radio>
</van-radio-group>
@@ -63,6 +69,11 @@
chaoluButtonDisabled: true,
chaoluStatus: false,
productType: '',
branchType: '',
// 银保渠道滚动检测相关
isScrollToBottom: false,
scrollTimer: null,
pdfStatus: void 0
}
},
components: {
@@ -72,13 +83,22 @@
[NoticeBar.name]: NoticeBar
},
created(){
if(window.localStorage.getItem('branchType')) {
this.branchType = window.localStorage.getItem('branchType')
} else if(this.$route.query.branchType){
window.localStorage.setItem('branchType', this.$route.query.branchType)
this.branchType = this.$route.query.branchType
}
if(this.$route.query.currentIndex){
this.Time = true
this.isPreview = true
} else if(window.sessionStorage.getItem('signH5Img')){
this.Time = true
} else {
this.timeOut()
// 银保渠道不需要读秒
if(this.branchType != '14') {
this.timeOut()
}
}
setTimeout(() => {
// eslint-disable-next-line no-undef
@@ -113,6 +133,31 @@
},
methods: {
// 处理滚动事件
handleScroll(event) {
if (this.branchType != '14') return
// 防抖处理
if (this.scrollTimer) {
clearTimeout(this.scrollTimer)
}
this.scrollTimer = setTimeout(() => {
const element = event.target
const scrollTop = element.scrollTop
const scrollHeight = element.scrollHeight
const clientHeight = element.clientHeight
// 判断是否滚动到底部
if (scrollTop + clientHeight >= scrollHeight - 5) {
this.isScrollToBottom = true
// 滚动到底部后,自动设置阅读完成状态
if (!this.isOver) {
this.isOver = true
this.Time = true
}
} else {
this.isScrollToBottom = false
}
}, 100)
},
getOrderDetail(){
if(this.$route.query.currentIndex) {
this.current = Number(this.$route.query.currentIndex)
@@ -144,15 +189,37 @@
// 点击阅读时
click() {
let that = this
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
// 银保渠道
if (this.branchType == '14') {
if (!this.isScrollToBottom) {
Dialog.confirm({
title: '提示',
message: '请下滑至底部完成阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
return
}
} else {
// 普通渠道的原有逻辑
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
} else {
if(this.fileList[this.current - 1].documentCode == '2'){
that.chaoluButtonDisabled = false
}
}
}
// 银保渠道滚动到底部后的处理
if (this.branchType == '14' && this.isScrollToBottom) {
if(this.fileList[this.current - 1].documentCode == '2'){
that.chaoluButtonDisabled = false
}
@@ -257,19 +324,42 @@
},
changeFile(readStatus){
this.documentName = this.fileList[this.current - 1].documentName
if(readStatus){
this.radio = '1'
this.isOver = true
this.Time = true
} else if(window.sessionStorage.getItem('signH5Img')) {
this.radio = '1'
this.isOver = true
this.chaoluButtonDisabled = false
// 银保渠道
if (this.branchType == '14') {
this.isScrollToBottom = false
if(readStatus){
this.radio = '1'
this.isOver = true
this.Time = true
this.isScrollToBottom = true
} else if(window.sessionStorage.getItem('signH5Img')) {
this.radio = '1'
this.isOver = true
this.chaoluButtonDisabled = false
this.isScrollToBottom = true
} else {
this.radio = ''
this.isOver = false
this.Time = true
this.isScrollToBottom = false
}
} else {
this.radio = ''
this.isOver = false
this.timeOut()
// 其他渠道
if(readStatus){
this.radio = '1'
this.isOver = true
this.Time = true
} else if(window.sessionStorage.getItem('signH5Img')) {
this.radio = '1'
this.isOver = true
this.chaoluButtonDisabled = false
} else {
this.radio = ''
this.isOver = false
this.timeOut()
}
}
let thispdfurl = ''
if(this.fileList[this.current - 1].originalUrl && (this.fileList[this.current - 1].originalUrl.indexOf('https://') != -1 || this.fileList[this.current - 1].originalUrl.indexOf('http://') != -1)) {
thispdfurl = this.fileList[this.current - 1].originalUrl
@@ -280,7 +370,8 @@
pdfurl: thispdfurl,
lazy:false,
scale:1
}).on("complete", function (status, msg, time) { //监听完成事件
}).on("complete", (status, msg, time)=> { //监听完成事件
this.pdfStatus = status
console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
})
},
@@ -361,8 +452,8 @@
},
computed: {
listenChange() {
const { isOver, radio } = this
return { isOver, radio }
const { isOver, radio, isScrollToBottom } = this
return { isOver, radio, isScrollToBottom }
}
},
beforeRouteLeave(to, from, next) {
@@ -372,17 +463,40 @@
window.sessionStorage.removeItem('signH5Val')
window.sessionStorage.removeItem('signInfo')
}
// 清理定时器
if (this.scrollTimer) {
clearTimeout(this.scrollTimer)
}
next()
},
watch: {
listenChange(val) {
let that = this
if (val.isOver == true && val.radio != '') {
that.isDisabledComplite = false
// 银保渠道
if (this.branchType == '14') {
if (val.isScrollToBottom == true && val.radio != '') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
} else {
that.isDisabledComplite = true
// 其他渠道
if (val.isOver == true && val.radio != '') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
}
}
},
pdfStatus() {
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting) this.isScrollToBottom = true
observer.unobserve(entry.target)
})
})
observer.observe(this.$refs.activeButtonEle)
}
}
}
</script>
@@ -422,4 +536,90 @@
padding: 10px 20px;
}
}
</style>
/* 银保渠道右侧标注样式 - 统一红色主题 */
.scroll-tip {
position: fixed;
right: 15px;
top: 50%;
transform: translateY(-50%);
// background: linear-gradient(135deg, #E9332E 0%, #ff4757 100%);
color: white;
padding: 10px;
border-radius: 12px;
font-size: 13px;
font-weight: 500;
z-index: 1000;
width: 20px;
text-align: center;
line-height: 1.3;
background-color: #fffbe8;
// box-shadow: 0 4px 20px #f4da58;
// border: 1px solid rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
// animation: slideInRight 0.5s ease-out, pulse 2s ease-in-out infinite 0.5s;
cursor: pointer;
transition: all 0.3s ease;
color: #ed6a0c;
/* 添加向下箭头图标 */
&::after {
content: '↓';
display: block;
font-size: 16px;
margin-top: 4px;
animation: bounce 1.5s ease-in-out infinite;
}
&:hover {
transform: translateY(-50%) scale(1.05);
// box-shadow: 0 6px 25px rgba(233, 51, 46, 0.6);
}
}
/* 滑入动画 */
@keyframes slideInRight {
0% {
opacity: 0;
transform: translateY(-50%) translateX(100px);
}
100% {
opacity: 1;
transform: translateY(-50%) translateX(0);
}
}
/* 脉冲动画 - 红色主题 */
@keyframes pulse {
// 0%, 100% {
// box-shadow: 0 4px 20px rgba(233, 51, 46, 0.4);
// }
// 50% {
// box-shadow: 0 6px 25px rgba(233, 51, 46, 0.7);
// }
}
/* 箭头弹跳动画 */
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-3px);
}
60% {
transform: translateY(-2px);
}
}
/* 银保渠道禁用状态的样式 */
/deep/ .van-radio--disabled {
.van-radio__icon {
background-color: #f2f3f5;
border-color: #dcdee0;
}
.van-radio__label {
color: #c8c9cc;
}
}
</style>

View File

@@ -15,10 +15,15 @@
<van-field maxlength="6" placeholder="请输入短信验证码" v-model="authCode" clearable label-width="0" />
<van-button type="danger" plain size="small" class="w160 p0" @click="getAuthCode" :disabled="codeDisabled" v-no-more-click="2000">{{
codeDisabled ? `${countDown}s后重新获取` : '获取验证码'
}}</van-button>
}}</van-button>
</van-cell-group>
</van-dialog>
<UploadImageFile :typeface="idcardData.typeface && (faceAuthCount.weixin < smsAuthNum)" :realName="idcardData.idcardName" :idno="idcardData.idcardNumber" @sendimage="sendimage">
<UploadImageFile
:typeface="idcardData.typeface && faceAuthCount.weixin < smsAuthNum"
:realName="idcardData.idcardName"
:idno="idcardData.idcardNumber"
@sendimage="sendimage"
>
</UploadImageFile>
<div class="p60">
<van-button type="danger" @click="uploadComparison" size="large">上传照片与证件照对比</van-button>
@@ -82,7 +87,9 @@ export default {
created() {
if (this.isWeixin) {
this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
window.localStorage.setItem('policyNo', this.$route.query.policyNo)
this.idcardData.idcardName = JSON.parse(this.$route.query.saleInsuredInfo).name
this.idcardData.idcardNumber = JSON.parse(this.$route.query.saleInsuredInfo).idNo
@@ -120,7 +127,7 @@ export default {
operateCode: this.customerMobile,
system: 'agentApp',
operateCodeType: '0'
}).then(res => {
}).then((res) => {
console.log(res)
if (res.result == 0) {
this.sid = res.sessionId
@@ -178,7 +185,7 @@ export default {
this.authCode = null
// 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
@@ -203,7 +210,7 @@ export default {
if (e) {
that.disabled = false
} else {
this.faceAuthCount.weixin++;
this.faceAuthCount.weixin++
if (this.faceAuthCount.weixin >= this.smsAuthNum) {
this.realPeopelCheck()
}
@@ -219,7 +226,7 @@ export default {
},
//根据数据字典 将后端返回的数据渲染到页面中
filterData(dictionary, key, pageData) {
dictionary.forEach(item => {
dictionary.forEach((item) => {
if (pageData[key] == item.id) {
pageData[key + 'Text'] = item.text //渲染页面使用的字段
}
@@ -231,7 +238,7 @@ export default {
let data = {
policyNo: this.$route.query.policyNo
}
getPolicyDetail(data).then(res => {
getPolicyDetail(data).then((res) => {
if (res.result == '0') {
let appntDTO = res.content.appntDTO
let orderInfoDTO = res.content.orderInfoDTO
@@ -249,8 +256,8 @@ export default {
this.filterData(dataDictionary.idType, 'idType', appntDTO)
that.appntDTO = appntDTO
// 被保险人信息
res.content.insuredDTOs.map(insured => {
insured.riskDTOLst.map(risk => {
res.content.insuredDTOs.map((insured) => {
insured.riskDTOLst.map((risk) => {
Number(risk.payIntv)
switch (risk.payIntv) {
case -1:
@@ -287,7 +294,7 @@ export default {
this.filterData(dataDictionary.sex, 'sex', insured)
this.filterData(dataDictionary.idType, 'idType', insured)
this.filterData(dataDictionary.relationToAppnt, 'relation', insured)
insured.bnfDTOs.map(bnf => {
insured.bnfDTOs.map((bnf) => {
this.filterData(dataDictionary.bnfType, 'bnfType', bnf)
this.filterData(dataDictionary.sex, 'sex', bnf)
this.filterData(dataDictionary.idType, 'idType', bnf)
@@ -307,7 +314,7 @@ export default {
let params = {
contNo: this.$route.query.policyNo
}
getReceiptSign(params).then(res => {
getReceiptSign(params).then((res) => {
if (res.result == '0') {
console.log('res', res)
this.$toast.clear()

View File

@@ -26,7 +26,7 @@
import { Field, CellGroup, Popup, Picker, Checkbox, Area } from 'vant'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import { getAuthCode } from '@/api/ebiz/sale/sale'
import {AESEncrypt,AESDecrypt} from '@/assets/js/utils/cryptoJsUtil'
import { AESEncrypt, AESDecrypt } from '@/assets/js/utils/cryptoJsUtil'
export default {
name: 'logoutAgent',
components: {
@@ -53,19 +53,24 @@ export default {
}
},
async mounted() {
setTimeout(() => {
EWebBridge.webCallAppInJs('enable_screen_capture', {
enable: false
})
}, 500)
// 获取代理人信息
this.$CacheUtils.setLocItem('cacheTest', JSON.stringify(this.logoutDTO))
console.log(this.$CacheUtils.getLocItem('cacheTest'))
this.$CacheUtils.setSessionItem('cacheTest1', 'nsjdfi')
console.log(this.$CacheUtils.getSessionItem('cacheTest1'))
const res = await getAgentInfo({ '89': '890' })
const res = await getAgentInfo({ 89: '890' })
console.log(res)
if (res.result == 0) {
this.branchType = /^N{1}/.test(res.branchType) ? '1' : '0' //res.branchType 以N打头的是内勤 其他是外勤
if (this.branchType == '0') {
this.logoutDTO.mobile = res.phoneNo
this.codeDisabled = false
} else {
}
} else {
return this.$toast(res.resultMessage)
@@ -96,7 +101,7 @@ export default {
operateCodeType: '0'
}
//获取验证码
getAuthCode(data).then(res => {
getAuthCode(data).then((res) => {
//倒计时
this.timeId = setInterval(() => {
this.countDown--