Compare commits

...

28 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
12 changed files with 704 additions and 100 deletions

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

@@ -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

@@ -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

@@ -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: {

View File

@@ -570,10 +570,17 @@ export default {
isFirstCome: 0,
cvalidateStr: '',
activeType: '',
insuredAge: ''
insuredAge: '',
branchType: ''
}
},
async 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
}
console.log('保单号', localStorage.getItem('orderNo'))
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)

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>