Compare commits

...

70 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
4a2a41f31e 开门红专区改了一月专区 2023-12-08 23:24:58 +08:00
liu.xiaofeng@ebiz-digits.com
f4ae03c78c 选择开门红产品页面图片更换 2023-12-08 22:45:44 +08:00
liu.xiaofeng@ebiz-digits.com
e572bae4ff 更换页面标题 2023-12-08 22:36:50 +08:00
liu.xiaofeng@ebiz-digits.com
532592851f 开门红专区标题修改为一月专区 2023-12-08 20:38:42 +08:00
liu.xiaofeng@ebiz-digits.com
ffab856a30 更换开门红图片 2023-12-08 20:26:00 +08:00
liu.xiaofeng@ebiz-digits.com
44607614ca 健康险续保测试问题修复6 2023-12-06 21:26:55 +08:00
liu.xiaofeng@ebiz-digits.com
bd071eadef 健康险续保测试问题修复5 2023-12-06 21:26:52 +08:00
liu.xiaofeng@ebiz-digits.com
f440cee91a 健康险续保测试问题修复4 2023-12-06 21:26:49 +08:00
liu.xiaofeng@ebiz-digits.com
ae3847fec6 健康险续保测试问题修复3 2023-12-06 21:26:45 +08:00
liu.xiaofeng@ebiz-digits.com
84a2036eba 健康险续保测试问题修复2 2023-12-06 21:26:42 +08:00
liu.xiaofeng@ebiz-digits.com
1328f504f7 健康险续保测试问题修复1 2023-12-06 21:26:39 +08:00
liu.xiaofeng@ebiz-digits.com
fa199309a8 健康险续保测试问题修复 2023-12-06 21:26:35 +08:00
liu.xiaofeng@ebiz-digits.com
2097fab789 健康险续保营业部经理可以编辑未续报原因 2023-12-06 21:26:33 +08:00
liu.xiaofeng@ebiz-digits.com
8808228c81 由列表页面跳转详情页面路由传参由原来的固定调整为动态的值 2023-12-06 21:26:29 +08:00
liu.xiaofeng@ebiz-digits.com
a399ce7a1b 健康险续保搜索栏操作逻辑修改2 2023-12-06 21:26:25 +08:00
liu.xiaofeng@ebiz-digits.com
76d944b07b 健康险续保搜索栏操作逻辑修改1 2023-12-06 21:26:22 +08:00
liu.xiaofeng@ebiz-digits.com
03ffd1106d 健康险续保搜索栏操作逻辑修改 2023-12-06 21:26:19 +08:00
liu.xiaofeng@ebiz-digits.com
d2523b2deb 健康险续保列表页面搜索框功能修改并新增模糊搜索营业部经理下的代理人列表数据 2023-12-06 21:26:16 +08:00
liu.xiaofeng@ebiz-digits.com
002d0a0be4 选择服务经理的弹窗数据展示效果调整为两个字段展示并做切换效果 2023-12-06 21:26:12 +08:00
liu.xiaofeng@ebiz-digits.com
8c969e235e 营业部经理增加选择按钮并添加下拉弹窗 2023-12-06 21:26:09 +08:00
liu.xiaofeng@ebiz-digits.com
8ec51b01c8 区分营业部经理和服务经理的数据显示 2023-12-06 21:26:06 +08:00
liu.xiaofeng@ebiz-digits.com
7f9130542b 自动计算健康险续保选择月份的第一天和最后一天的日期 2023-12-06 21:26:03 +08:00
liu.xiaofeng@ebiz-digits.com
946d3b80c1 对接健康险续保得接口并调整相关字段展示1 2023-12-06 21:25:58 +08:00
liu.xiaofeng@ebiz-digits.com
18f42946ff 对接健康险续保得接口并调整相关字段展示 2023-12-06 21:25:55 +08:00
liu.xiaofeng@ebiz-digits.com
2ddde67c40 增加健康险清单和健康险详情接口 2023-12-06 21:25:50 +08:00
liu.xiaofeng@ebiz-digits.com
dbdb41fecd 健康险续保列表接口对接 2023-12-06 21:25:45 +08:00
liu.xiaofeng@ebiz-digits.com
d96ae3f51f 续保列表与详情页面效果细节调整 2023-12-06 21:25:40 +08:00
liu.xiaofeng@ebiz-digits.com
965d5b0abf xubao 2023-12-06 21:25:35 +08:00
liu.xiaofeng@ebiz-digits.com
1a090b7073 修改订单状态58为待支付 2023-11-30 22:11:40 +08:00
liu.xiaofeng@ebiz-digits.com
87fa47d4d8 银行卡签约提示语修改 2023-11-30 16:08:41 +08:00
liu.xiaofeng@ebiz-digits.com
7117a75f68 订单列表点击编辑按钮如果是开门红产品先做银行卡授权校验 2023-11-30 16:08:37 +08:00
liu.xiaofeng@ebiz-digits.com
b1f499ec33 投保须知内容修改 2023-11-30 16:08:21 +08:00
liu.xiaofeng@ebiz-digits.com
d4e8ede6c9 银行卡签约逻辑修改 2023-11-30 16:06:25 +08:00
liu.xiaofeng@ebiz-digits.com
0f8e1da734 银行卡签约逻辑修改1 2023-11-30 16:06:22 +08:00
liu.xiaofeng@ebiz-digits.com
13a28192fe 银行卡签约逻辑修改 2023-11-30 16:06:19 +08:00
liu.xiaofeng@ebiz-digits.com
1497601e0b 核保结果页面增加状态为53的核心批扣展示内容 2023-11-30 16:06:15 +08:00
liu.xiaofeng@ebiz-digits.com
d93a7baddd 保险合同指定生效日说明文件修改内容 2023-11-30 16:06:12 +08:00
liu.xiaofeng@ebiz-digits.com
2ce429bb8e 上传银行卡信息页面弹窗去掉返回按钮 2023-11-30 16:06:09 +08:00
liu.xiaofeng@ebiz-digits.com
d4b0a1b320 银行卡签约修改提示语 2023-11-30 16:05:51 +08:00
liu.xiaofeng@ebiz-digits.com
ee71565425 银行卡签约失败给出签约失败具体提示语 2023-11-30 16:05:46 +08:00
liu.xiaofeng@ebiz-digits.com
9862f67c21 签约字段先后顺序判断 2023-11-30 16:05:42 +08:00
liu.xiaofeng@ebiz-digits.com
03ce9bea5e 签字确认页面去掉支付按钮 2023-11-30 16:05:37 +08:00
liu.xiaofeng@ebiz-digits.com
d0cabb30f7 上传银行卡信息页面点击保存区分开门红产品与普通产品的业务逻辑 2023-11-30 16:05:33 +08:00
liu.xiaofeng@ebiz-digits.com
ba5f2dbe32 上传银行卡信息页面隐藏短信验证码 2023-11-30 16:05:28 +08:00
liu.xiaofeng@ebiz-digits.com
1d578730cb 调整个险渠道电投产品的保单支付流程 2023-11-30 16:05:24 +08:00
liu.xiaofeng@ebiz-digits.com
293066c4ad 支付流程调整—转核心批量扣款 2023-11-30 16:05:19 +08:00
liu.xiaofeng@ebiz-digits.com
92b5cf3224 在“选择产品”页面,点击【开门产品】按钮后选择产品进行试算,在“签名确认”页面展示【指定保单生效日】字段
增加“指定保险合同生效日说明”阅读确认文档
2023-11-30 16:05:13 +08:00
liu.xiaofeng@ebiz-digits.com
2189c0df53 调整选择产品开门红弹窗产品类型内容展示样式居中 2023-11-30 16:05:09 +08:00
liu.xiaofeng@ebiz-digits.com
3a05f63cb6 指定生效日说明文件参数传递修改 2023-11-30 16:05:04 +08:00
liu.xiaofeng@ebiz-digits.com
84ac42765c 指定生效日说明文件参数传递修改 2023-11-30 16:04:59 +08:00
liu.xiaofeng@ebiz-digits.com
4cc7703dc9 调整贵州地图显示页面右下角显示的图标大小 2023-11-30 16:04:43 +08:00
liu.xiaofeng@ebiz-digits.com
fd7bc64fa7 调整地图页面显示的图标大小 2023-11-30 16:04:38 +08:00
liu.xiaofeng@ebiz-digits.com
4a88d16d8d 选择产品页面更换多个图片 贵州地图轮播图页面更换图标 2023-11-30 16:04:35 +08:00
liu.xiaofeng@ebiz-digits.com
49b0f807cb 更换开门红菜单页面背景图 2023-11-30 16:04:32 +08:00
liu.xiaofeng@ebiz-digits.com
9c2440c6bc 开门红业绩查询排名字段调整 2023-11-30 16:04:28 +08:00
liu.xiaofeng@ebiz-digits.com
00459a0f35 投保须知内容修改 2023-11-29 14:31:49 +08:00
liu.xiaofeng@ebiz-digits.com
13acc3a0f5 国富人寿鑫管家B款终身寿险(万能型)产品利益演示页面动态利率按钮调整 2023-11-28 15:30:05 +08:00
liu.xiaofeng@ebiz-digits.com
5493d99c15 建议书保费试算页面鑫管家B款终身寿险(万能型)改动保额不调用试算接口 2023-11-28 15:30:01 +08:00
liu.xiaofeng@ebiz-digits.com
f19f7eb2b6 自动获取试算接口信息并隐藏保费试算页面显示的保额字段 计划书利益演算页面隐藏保额相关字段 2023-11-28 15:29:58 +08:00
liu.xiaofeng@ebiz-digits.com
89bb1b1f40 投保那显示的字段里,也修改一下:单独投保保费为5万元
如果输入关联保单,自动跳为100元
不给更改
2023-11-28 15:29:53 +08:00
liu.xiaofeng@ebiz-digits.com
c2726abf93 鑫管家B款终身寿险(万能型)清空关联的保单时 重置保费默认值1 2023-11-28 15:29:49 +08:00
liu.xiaofeng@ebiz-digits.com
8346e6f284 鑫管家B款终身寿险(万能型)清空关联的保单时 重置保费默认值 2023-11-28 15:29:45 +08:00
liu.xiaofeng@ebiz-digits.com
b2cac7eb1b 单独投保,保费为大于等于50000元 2023-11-28 15:29:41 +08:00
liu.xiaofeng@ebiz-digits.com
4aa877446d 单独投保,保费为大于等于50000元 2023-11-28 15:29:36 +08:00
liu.xiaofeng@ebiz-digits.com
a348d5734a 单独投保,保费为大于等于50000元 2023-11-28 15:29:32 +08:00
liu.xiaofeng@ebiz-digits.com
216923e5c3 国富人寿鑫管家B款终身寿险(万能型)增加抄录 2023-11-28 15:29:26 +08:00
liu.xiaofeng@ebiz-digits.com
ba551a7b59 银保-国富人寿年年丰C款两全保险(分红型)产品定义系统需求增加抄录 2023-11-23 14:31:01 +08:00
liu.xiaofeng@ebiz-digits.com
eaaf8fa485 将被保人文件数组排序 2023-11-23 13:57:56 +08:00
liu.xiaofeng@ebiz-digits.com
a82a7c8d64 添加受益人页面四要素校验通过后再把受益人信息添加刀受益人集合里 2023-11-23 13:57:38 +08:00
liu.xiaofeng@ebiz-digits.com
70d2f6da7f 添加受益人增加四要素校验接口 2023-11-23 13:57:35 +08:00
32 changed files with 1593 additions and 770 deletions

View File

@@ -0,0 +1,34 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
export function healthgetRenewalList(data) {
return request({
url: getUrl('/sale/health/getRenewalList', 1),
method: 'post',
data
})
}
export function healthgetRenewalListDetail(data) {
return request({
url: getUrl('/sale/health/getRenewalListDetail', 1),
method: 'post',
data
})
}
export function reasonForNonRenewalSubmitted(data) {
return request({
url: getUrl('/sale/health/reasonForNonRenewalSubmitted', 1),
method: 'post',
data
})
}
export function getAgentManager(data) {
return request({
url: getUrl('/sale/health/getAgentManager', 1),
method: 'post',
data
})
}

View File

@@ -362,4 +362,13 @@ export function getDoubleRecordProductLst(data) {
method: 'post',
data
})
}
}
// 指定受益人身份四要素
export function checkAppointBnf(data) {
return request({
url: getUrl('/sale/bnfCheck/checkAppointBnf ', 1),
method: 'post',
data
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 579 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -1977,7 +1977,7 @@ export default {
},
{
id: '58',
text: '转人核支付'
text: '支付'
},
{
id: '59',

View File

@@ -29,29 +29,29 @@ function getSearchString (key) {
}
return obj[key]
}
let apiVersion = 'v2'
var ua = window.navigator.userAgent.toLowerCase()
//通过正则表达式匹配ua中是否含有MicroMessenger字符串, 在微信
if (localStorage.getItem('apiVersion')) {
apiVersion = localStorage.getItem('apiVersion')
} else {
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
//report/reportList数据报表页面在浏览器可以打开了但在微信或企业微信中打开不了,接口请求不需要token
if (window.location.href.indexOf('apiVersion') > 0) {
apiVersion = getSearchString('apiVersion') == 'V3' ? 'v3' : 'v2';//url中apiVersion没有时为v2
} else {
apiVersion = 'v3'
}
} else {
// 在app
if (navigator.userAgent.indexOf('JZG_') > 0) {
apiVersion = navigator.userAgent.split('JZG_')[1].split('/')[0].split('_')[1] == 'V3' ? 'v3' : 'v2'
}
}
window.localStorage.setItem('apiVersion', apiVersion)
}
// 可以多个接口域名,按需添加
console.log('环境:', process.env.VUE_APP_FLAG)
let apiVersion = 'v1'
// var ua = window.navigator.userAgent.toLowerCase()
// //通过正则表达式匹配ua中是否含有MicroMessenger字符串, 在微信
// if (localStorage.getItem('apiVersion')) {
// apiVersion = localStorage.getItem('apiVersion')
// } else {
// if (ua.match(/MicroMessenger/i) == 'micromessenger') {
// //report/reportList数据报表页面在浏览器可以打开了但在微信或企业微信中打开不了,接口请求不需要token
// if (window.location.href.indexOf('apiVersion') > 0) {
// apiVersion = getSearchString('apiVersion') == 'V3' ? 'v3' : 'v2';//url中apiVersion没有时为v2
// } else {
// apiVersion = 'v3'
// }
// } else {
// // 在app
// if (navigator.userAgent.indexOf('JZG_') > 0) {
// apiVersion = navigator.userAgent.split('JZG_')[1].split('/')[0].split('_')[1] == 'V3' ? 'v3' : 'v2'
// }
// }
// window.localStorage.setItem('apiVersion', apiVersion)
// }
// // 可以多个接口域名,按需添加
// console.log('环境:', process.env.VUE_APP_FLAG)
switch (process.env.VUE_APP_FLAG) {
case 'dev':
apiDomain = 'https://iagentsales-test2.e-guofu.com:5200/api/' + apiVersion // 国富api ///api/v1

View File

@@ -23,7 +23,7 @@ export default [
name: 'Prefecture',
component: PerformanceReport,
meta: {
title: '开门红业绩查询'
title: '一月业绩查询'
}
},
{
@@ -31,7 +31,7 @@ export default [
name: 'Prefecture',
component: Prefecture,
meta: {
title: '开门红专区'
title: '一月专区'
}
},
{
@@ -53,7 +53,7 @@ export default [
name: 'GoodStartScheme',
component: GoodStartScheme,
meta: {
title: '开门红方案'
title: '一月方案'
}
},
{
@@ -61,7 +61,7 @@ export default [
name: 'businessMap',
component: businessMap,
meta: {
title: '开门红业务地图'
title: '一月业务地图'
}
},
{
@@ -77,7 +77,7 @@ export default [
name: 'newsPaper',
component: newsPaper,
meta: {
title: '开门红实时贺报'
title: '一月实时贺报'
}
}
]

View File

@@ -0,0 +1,23 @@
//健康险续保 定义相关组件
const healthInsuranceRenewalList = () => import('@/views/ebiz/healthInsuranceRenewal/list')
const healthInsuranceRenewalDetail = () => import('@/views/ebiz/healthInsuranceRenewal/detail')
export default [
{
path: '/healthInsuranceRenewal/list',
name: 'healthInsuranceRenewalList',
component: healthInsuranceRenewalList,
meta: {
title: '健康险续保清单',
index: 1
}
},
{
path: '/healthInsuranceRenewal/detail',
name: 'healthInsuranceRenewalDetail',
component: healthInsuranceRenewalDetail,
meta: {
title: '保单详情',
index: 1
}
}
]

View File

@@ -49,6 +49,8 @@ import allowance from './allowance'
import cooperativeUnit from './cooperativeUnit'
// YB_APP
import YB_APP from '../YB_APP/index'
//健康险续保
import healthInsuranceRenewal from './healthInsuranceRenewal'
export default [
...proposal,
...sale,
@@ -86,5 +88,6 @@ export default [
...laurelClub,
...allowance,
...cooperativeUnit,
...YB_APP
...YB_APP,
...healthInsuranceRenewal
] //根据需要进行删减

View File

@@ -37,6 +37,7 @@
:show-plus="false"
:show-minus="false"
class="ml30"
:disabled="item.productCode == 'GFRS_M0083' && isFrom != 'proposal'"
@change="
stepperChange(
item.calFactorLst[riskFactorIndex].displayAmount,
@@ -319,7 +320,7 @@
placeholder="请录入保单号或者投保单号,如果关联多个保单,请用\隔开"
/>
</div>
<div class="flex justify-content-s pv10 border-bottom prem" v-if="item.productCode != 'GFRS_M0080'">
<div class="flex justify-content-s pv10 border-bottom prem" v-if="item.productCode != 'GFRS_M0080' && item.productCode != 'GFRS_M0083'">
<!-- trialType 0-保额算保费1-保费算保额 -->
<!-- isTrial是否需存在特殊配置(规则) 0-是 1-否-->
<span
@@ -332,13 +333,13 @@
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].showPrem | moneyFormat }}</span>
</div>
</div>
<div class="flex justify-content-fs pv10 ph15 bg-white border-bottom prem align-items-c" v-if="cvalidateFlag && cvalidateStr != '2021-12-31'">
<span>指定保单生效日</span>
<van-radio-group v-model="activeRadio" class="pl20">
<van-radio name="1" icon-size="1rem"></van-radio>
</van-radio-group>
<span class="pl5">{{ cvalidateStr }}</span>
</div>
<!-- <div class="flex justify-content-fs pv10 ph15 bg-white border-bottom prem align-items-c" v-if="cvalidateFlag && cvalidateStr != '2021-12-31'">-->
<!-- <span>指定保单生效日</span>-->
<!-- <van-radio-group v-model="activeRadio" class="pl20">-->
<!-- <van-radio name="1" icon-size="1rem"></van-radio>-->
<!-- </van-radio-group>-->
<!-- <span class="pl5">{{ cvalidateStr }}</span>-->
<!-- </div>-->
<div class="bottom-btn bg-white flex" v-if="isFrom == 'proposal'">
<van-button type="danger" size="large" @click="nextStep" :disabled="nextStepFlag" v-no-more-click="1000">完成</van-button>
</div>
@@ -788,6 +789,16 @@
this.isEnterAddtionRiskListFunc()
}
}
if (item.mainRiskCode == 'GFRS_M0083' && this.isFrom == 'proposal') {
item.calFactorLst.forEach((i) => {
if (i.code == "inputPrem") {
i.minPrem = 0.01
i.displayAmount = 0.01
i.defaultValue = 0.01
}
})
}
console.log(item,'123231321321')
let payEndYearVal
//初始化时交费期间为一次性交清时,在就是中介渠道, 附加险GFRS_A0007GFRS_A0009GFRS_A0010去掉后附加险list就为空--隐藏icon
item.calFactorLst.map((i) => {
@@ -2004,6 +2015,38 @@
//试算
async getTrial() {
let that = this
let productCode = ''
let thisproductInfo = JSON.parse(window.localStorage.getItem('chooseProducts'))
if(thisproductInfo && thisproductInfo.length != 0) {
thisproductInfo.forEach(item => {
if(item.productCode == 'GFRS_M0083') {
productCode = item.productCode
}
})
}
if(this.isFrom != 'proposal'){
if(productCode == 'GFRS_M0083'){
if(!that.policyNo){
that.chooseProducts.forEach(item=>{
item.calFactorLst.forEach(ii=>{
if(ii.type == 1) {
ii.minPrem = 5
ii.displayAmount = 5
}
})
})
} else {
that.chooseProducts.forEach(item=>{
item.calFactorLst.forEach(ii=>{
if(ii.type == 1) {
ii.minPrem = 0.01
ii.displayAmount = 0.01
}
})
})
}
}
}
this.nextStepFlag = true
this.$toast.clear()
this.$toast.loading({
@@ -2656,6 +2699,22 @@
}
}
}
else if (productCode == 'GFRS_M0083') {
if(this.isFrom != 'proposal'){
if(!this.policyNo && defalutValue < 5) {
this.$toast('单独投保保费为大于等于50000元')
currentEle['minPrem'] = 5
} else if(this.policyNo && defalutValue < 0.01) {
this.$toast('与其他主险关联投保时保费要求保费大于等于100元')
currentEle['minPrem'] = 0.01
}
} else {
if(defalutValue < 0.01){
currentEle['minPrem'] = 0.01
this.$toast('保费最小100元')
}
}
}
else if (this.isTrial === '0' && this.chooseProducts[productIndex].isMainRisk == '0') {
if (Number(defalutValue) < Number(min)) {
if (riskFactor.yearWay == "一次性交清") {

View File

@@ -40,7 +40,7 @@
<img class="icon_title_image" src="@/assets/images/kmh/title_bg.png" />
</div> -->
<van-radio-group v-model="active_radio" style="align-items: center;padding-top: 140px">
<van-radio name="1" class="radio_class ml50">
<van-radio name="1" class="radio_class" style="display: flex;justify-content: center;">
<template #icon="props">
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
</template>
@@ -48,7 +48,7 @@
<img class="icon_select_image" src="@/assets/images/kmh/kmh_pro.png" />
</div>
</van-radio>
<van-radio name="0" class="radio_class ml50">
<van-radio name="0" class="radio_class" style="display: flex;justify-content: center;">
<template #icon="props">
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
</template>

View File

@@ -14,7 +14,7 @@
<th>承保标保</th>
</tr>
<tr v-for="(item, index) in showData.topList" :key="item.code">
<td>{{ index + 1 }}</td>
<td>{{ item.rank }}</td>
<td>{{ item.name }}</td>
<td class="company">{{ item.comName }}</td>
<td>{{ item.ysbb }}</td>
@@ -32,7 +32,7 @@
<th>承保标保</th>
</tr>
<tr v-for="(item, index) in showData.topList" :key="item.code" :class="{ top3: index <= 2 }">
<td>{{ index + 1 }}</td>
<td>{{ item.rank }}</td>
<td>{{ item.name }}</td>
<td class="company">{{ item.comName }}</td>
<td>{{ item.ysbb }}</td>

View File

@@ -156,12 +156,12 @@ export default {
height: 15px;
}
.m-tuli {
width: 48px;
height: 36px;
width: 38px;
height: 72px;
}
.m-tubiao {
width: 64px;
height: 32px;
width: 36px;
height: 54px;
}
.minfs {
font-size: 1.6vw !important;

View File

@@ -36,7 +36,7 @@ export default {
const res =await getServiceConfig({})
if (res.sections) {
res.sections.forEach(e=>{
if(e.name.indexOf('开门红专区')!=-1){
if(e.name.indexOf('一月专区')!=-1){
this.menuList =e.items;
}
})

View File

@@ -0,0 +1,178 @@
<template>
<div class="detail-container pb50">
<van-cell title="客户名称" :value="dataInfo.name" />
<van-cell title="地址" :value="dataInfo.address" />
<van-cell title="联系人姓名" :value="dataInfo.contactName" />
<van-cell title="联系电话" :value="dataInfo.contactPhone" />
<van-cell title="原保单号" v-if="this.$route.query.renewalFlag == '0'" :value="dataInfo.contNo" />
<van-cell title="保单号" v-if="this.$route.query.renewalFlag == '1' && agentType == '服务经理'" :value="dataInfo.contNo" />
<van-cell title="新保单号" v-if="this.$route.query.renewalFlag == '1' && agentType == '营业部经理'" :value="dataInfo.contNo" />
<div v-if="this.$route.query.renewalFlag == '0'">
<div v-for="item in dataInfo.oldRiskMessageDTOList">
<van-cell title="原保单险种名称" :value="item.riskName" />
<van-cell title="原保单保费" :value="item.prem+'元'" class="lastvancell"/>
</div>
</div>
<van-cell title="保单保费" v-if="this.$route.query.renewalFlag == '1'" :value="dataInfo.prem+'元'" />
<van-cell title="代理人" v-if="agentType == '服务经理'" :value="dataInfo.agentCustomerManagerName" />
<van-cell title="代理人工号" v-if="agentType == '服务经理'" :value="dataInfo.agentCustomerManagertCode" />
<van-cell title="客户经理" v-if="agentType == '营业部经理'" :value="dataInfo.agentCustomerManagerName" />
<van-cell title="客户经理工号" v-if="agentType == '营业部经理'" :value="dataInfo.agentCustomerManagertCode" />
<van-collapse v-if="this.$route.query.renewalFlag == '0'" v-model="activeName1">
<van-collapse-item name="1">
<template #title>
<div style="display: flex;width: 100%;justify-content: space-between">
<span style="width: 33%;">续保意见</span>
<p style="display: inline-block;width: 65%;overflow:hidden;text-overflow: ellipsis;color: #969799;white-space: nowrap;">{{dataInfo.renewalOpinions}}</p></div>
</template>
<div>{{dataInfo.renewalOpinions}}</div>
</van-collapse-item>
</van-collapse>
<van-collapse v-if="this.$route.query.renewalFlag == '0'" v-model="activeName2">
<van-collapse-item name="1">
<template #title>
<div style="display: flex;width: 100%;justify-content: space-between">
<span style="width: 33%;">未续保原因</span>
<p style="display: inline-block;width: 44%;overflow:hidden;text-overflow: ellipsis;color: #969799;white-space: nowrap;">{{dataInfo.reason}}</p>
<van-button type="danger" round size="mini" @click.stop="dialogshow = true" style="margin-right: 10px;">编辑</van-button>
</div>
</template>
<div>{{dataInfo.reason}}</div>
</van-collapse-item>
</van-collapse>
<van-dialog v-model="dialogshow" title="未续保原因" show-cancel-button @confirm="dialogConfirm" @cancel="dialogCancel">
<div style="border: 1px solid #eee;margin: 0px 15px 5px 15px;" class="dialogtextarea">
<van-field v-model="message" rows="3" autosize label="留言" type="textarea" maxlength="200" placeholder="请输入" show-word-limit/>
</div>
</van-dialog>
</div>
</template>
<script>
import { Collapse, CollapseItem, Cell} from 'vant'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import { healthgetRenewalListDetail, reasonForNonRenewalSubmitted } from '@/api/ebiz/healthInsuranceRenewal/healthInsuranceRenewal'
export default {
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[Cell.name]: Cell
},
data() {
return {
agentType: '',
dataInfo:{},
activeName1:[],
activeName2:[],
dialogshow: false,
message:''
}
},
created() {
},
mounted() {
this.getAgentInfo()
},
methods:{
getAgentInfo(){
let params = {
}
getAgentInfo(params).then(res=>{
if (res.result == 0) {
if(res.agentGrade == 'G200' || res.agentGrade == 'G201' || res.agentGrade == 'G202' || res.agentGrade == 'G202' || res.agentGrade == 'G204'){
this.agentType = '营业部经理'
} else {
this.agentType = '服务经理'
}
this.healthgetRenewalListDetail()
} else {
this.$toast(res.resultMessage)
}
})
},
healthgetRenewalListDetail(){
let params = {
"renewalFlag":this.$route.query.renewalFlag,
"agentCode":this.$route.query.agentCode,
"cvaliStartDate":this.$route.query.cvaliStartDate,
"cvaliEndDate":this.$route.query.cvaliEndDate,
"grpContNo": this.$route.query.grpContNo
}
healthgetRenewalListDetail(params).then(res=>{
if(res.result == 0){
if(this.$route.query.renewalFlag == '0'){
this.dataInfo = res.getUnRenewaLlistDetailDTO
}
if(this.$route.query.renewalFlag == '1'){
this.dataInfo = res.getRenewaLlistDetailDTO
}
} else {
this.$toast(res.resultMessage)
}
})
},
dialogConfirm(){
let params = {
"grpContNo": this.$route.query.grpContNo, //团保单号,续保清单给扔过
"xbReason":this.message,
"submitter": this.$route.query.agentCode
}
reasonForNonRenewalSubmitted(params).then(res=>{
if(res.result == 0){
this.$toast('提交成功')
this.dataInfo.reason = this.message
this.message = ''
}else{
this.$toast(res.resultMessage)
}
})
},
dialogCancel(){
this.message = ''
this.dialogshow = false
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-cell__title{
flex:1;
}
/deep/ .van-cell__value{
flex:2;
}
/deep/ .van-cell__value {
text-align: left !important;
}
/deep/ .van-collapse-item__content{
word-break: break-word;
}
/deep/ .van-collapse-item{
width: 100%;
.van-cell__title{
width: calc(100% - 30px;);
}
}
.dialogtextarea{
/deep/ .van-cell__title{
display: none;
}
}
.lastvancell::after {
border-bottom: 1px solid #dadada;
}
.lastvancell::after {
position: absolute;
box-sizing: border-box;
content: ' ';
pointer-events: none;
right: 0;
bottom: 0;
left: 4.26667vw;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
</style>

View File

@@ -0,0 +1,259 @@
<template>
<div class="sale-list-container pb50">
<div class="topsearch" style="display: flex;background:#fff;align-items: center;">
<div v-if="agentType == '营业部经理'" style="width: 50%;padding: 10px 5px;">
<van-field @click="openchooseagent" v-model="searchName" disabled style="background: #f7f8fa;padding:5px 10px;" label="业务员" right-icon="arrow" placeholder="请选择"/>
</div>
<div style="width: 50%;padding: 10px 5px;">
<van-field @click="openshowDataPicker" v-model="showChooseDate" disabled style="background: #f7f8fa;padding:5px 10px;" label="日期" right-icon="arrow" placeholder="请选择"/>
</div>
</div>
<van-sticky>
<van-tabs :line-width="45" v-model="active" @change="tabChange" sticky>
<van-tab name="0" title="未续保"></van-tab>
<van-tab name="1" title="已续保"></van-tab>
</van-tabs>
</van-sticky>
<van-list
v-model="loading"
:immediate-check="false"
:finished="finished"
:finished-text="finishedText"
error-text="请求失败点击重新加载"
:error.sync="error"
@load="getOrderList"
class="pb45">
<div v-if="listData.length > 0">
<div v-for="(item, index) in listData" :key="index">
<div style="background: #fff;margin: 15px;border-radius: 5px;padding: 15px;">
<div style="line-height: 35px;"><span style="width: 40%;display: inline-block;">客户名称</span><span style="width: 60%;display: inline-block;">{{item.name}}</span></div>
<div style="line-height: 35px;"><span style="width: 40%;display: inline-block;">保单号</span><span style="width: 60%;display: inline-block;">{{item.contNo}}</span></div>
<div style="line-height: 35px;"><span style="width: 40%;display: inline-block;">保单终止时间</span><span style="width: 60%;display: inline-block;">{{item.endDate}}</span></div>
<div style="line-height: 35px;" v-if="item.continueFlag == '0'"><span style="width: 40%;display: inline-block;">是否续保</span><span style="width: 60%;display: inline-block;color: #d9001b;">未续保</span></div>
<div style="line-height: 35px;" v-if="item.continueFlag == '1'"><span style="width: 40%;display: inline-block;">是否续保</span><span style="width: 60%;display: inline-block;">已续保</span></div>
<div style="line-height: 35px;" v-if="agentType == '营业部经理'"><span style="width: 40%;display: inline-block;">服务经理</span><span style="width: 60%;display: inline-block;">{{item.agentManager}}</span></div>
<div style="line-height: 35px;display: flex;justify-content: flex-end;"><van-button round @click="goDetail(item)" size="small" style="height: 26px;line-height: 26px;" class="mr5" type="danger" v-no-more-click="1000">详情</van-button></div>
</div>
</div>
</div>
<div v-else class="text-center">
<img class="mt40" src="@/assets/images/pic_page-non.png" />
<div class="fs17 mt40">暂无数据</div>
</div>
</van-list>
<van-popup v-model="showDataPicker" position="bottom">
<van-datetime-picker type="year-month" v-model="currentDate" title="选择年月" :formatter="formatter" @confirm="onConfirmDate" @cancel="showDataPicker = false" :min-date="minDate" :max-date="maxDate"/>
</van-popup>
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
</van-popup>
</div>
</template>
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Field, Icon } from 'vant'
import { healthgetRenewalList, getAgentManager } from '@/api/ebiz/healthInsuranceRenewal/healthInsuranceRenewal'
export default {
name: 'saleList',
components: {
[Field.name]: Field,
[Search.name]: Search,
[Tabs.name]: Tabs,
[Tab.name]: Tab,
[List.name]: List,
[Tag.name]: Tag,
[Sticky.name]: Sticky,
[Icon.name]: Icon,
},
data() {
return {
agentType: '',
searchName: '',
agentCode: '',
active: '0',
listData: [],
loading: false,
finished: false,
total: '',
currentPage: 1,
error: false,
finishedText: '',
pageSize: 5,
showDataPicker:false,
minDate: new Date(2000, 0),
maxDate: new Date(2100, 12),
cvaliStartDate: '',
currentDate: '',
showChooseDate: '',
cvaliEndDate: '',
oldOptionsData:[],
columns: [],
popupShow: false,
}
},
mounted() {
this.initDate()
this.getAgentManager()
},
methods: {
openchooseagent(){
this.popupShow = true
},
onConfirm(val){
let thisIndex = val.indexOf(' ')
this.agentCode = val.slice(0, thisIndex)
this.searchName = val.slice(thisIndex).trim()
this.popupShow = false
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
getAgentManager() {
let params = {
agentCode: 'G0000011'
}
getAgentManager(params).then(res=>{
if(res.result == '0') {
if(res.content.agentManagerFlag == '1') {
this.agentType = '营业部经理'
} else {
this.agentType = '服务经理'
}
if(res.content.getAgentListResDTOList && res.content.getAgentListResDTOList.length != 0){
res.content.getAgentListResDTOList.forEach(item => {
this.columns.push(item.agentCode + ' ' + item.name)
})
}
this.getOrderList()
} else {
this.$toast(res.resultMessage)
}
})
},
//列表查询
getOrderList() {
let params = {
renewalFlag: this.active,
agentCode: this.agentCode,
cvaliStartDate: this.cvaliStartDate,
cvaliEndDate: this.cvaliEndDate,
}
healthgetRenewalList(params).then(res => {
if (res.result == '0') {
if(this.active == '0'){
if(res.unRenewalInformationDTOList && res.unRenewalInformationDTOList.length != 0){
this.listData = res.unRenewalInformationDTOList
}
}
if(this.active == '1'){
if(res.informationDTOList && res.informationDTOList.length != 0){
this.listData = res.informationDTOList
}
}
;[this.loading, this.finished] = [false, true]
} else {
;[this.loading, this.finished] = [false, true]
this.$toast(res.resultMessage)
}
})
},
//切换
tabChange(name) {
this.currentPage = 1
this.active = name
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
//搜索
searchList() {
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
//投保单详情
goDetail(item) {
this.$router.push({
path: '/healthInsuranceRenewal/detail',
query: {
grpContNo: item.grpContNo,
renewalFlag: this.active,
agentCode: this.agentCode,
cvaliStartDate: this.cvaliStartDate,
cvaliEndDate: this.cvaliEndDate,
}
})
},
initDate(){
let thisDate = new Date()
let thisYear = thisDate.getFullYear()
let thisMonth = thisDate.getMonth()+1
if(thisMonth < 10){
thisMonth = '0'+thisMonth
}
this.currentDate = thisYear + '-' + thisMonth
this.showChooseDate = thisYear + '-' + thisMonth
let date = new Date(this.currentDate);
date.setDate(1);
let firstDay1 = date.toLocaleDateString();
this.cvaliStartDate = firstDay1.replaceAll('/','-')
date.setMonth(date.getMonth() + 1);
date.setDate(0);
let lastDay1 = date.toLocaleDateString();
this.cvaliEndDate = lastDay1.replaceAll('/','-')
},
//打开日期选择
openshowDataPicker(){
this.currentDate = new Date()
this.showDataPicker = true
},
//日期选择
onConfirmDate(value){
let thisDate = new Date(value)
let thisYear = thisDate.getFullYear()
let thisMonth = thisDate.getMonth()+1
if(thisMonth < 10){
thisMonth = '0'+thisMonth
}
this.currentDate = thisYear + '-' + thisMonth
this.showChooseDate = thisYear + '-' + thisMonth
console.log(this.currentDate)
let date = new Date(this.currentDate);
date.setDate(1);
let firstDay1 = date.toLocaleDateString();
this.cvaliStartDate = firstDay1.replaceAll('/','-')
date.setMonth(date.getMonth() + 1);
date.setDate(0);
let lastDay1 = date.toLocaleDateString();
this.cvaliEndDate = lastDay1.replaceAll('/','-')
this.showDataPicker = false
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
formatter(type, val) {
if (type === 'year') {
return `${val}`;
} else if (type === 'month') {
return `${val}`;
}
return val;
},
}
}
</script>
<style lang="scss" scoped>
.topsearch{
/deep/ .van-field__label{
width: 50px;
}
}
</style>

View File

@@ -51,14 +51,14 @@
<div class="fs12 div_4">
<div class="risk_head flex text-center line-height table fs12 bg_DBEFFE">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">投保险种</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080'">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080' && mainRiskCodes[0] != 'GFRS_M0083'">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">保险期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">交费期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">首年保费()</div>
</div>
<div class="risk_body flex text-center table bg_f7fbff" v-for="(riskItem, index) in pageShowInfo.showInsuredDTO.riskDTOLst" :key="index">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">{{ riskItem.riskName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080'">{{ riskItem.amt ? riskItem.amt : '--' }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080' && mainRiskCodes[0] != 'GFRS_M0083'">{{ riskItem.amt ? riskItem.amt : '--' }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.insureName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.payName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.showPrem ? riskItem.showPrem : '--' }}</div>

View File

@@ -150,16 +150,30 @@ export function relevanceByInsure(insured, insuredLabelResult, insuredResult, in
let defaulValue = 'M' //档位默认值
let radios = []
if(currentInsuredInfo.L){
radios.push({
label: '低档' + currentInsuredInfo.L,
value: 'L'
})
if(risk.mainRiskCode == 'GFRS_M0083') {
radios.push({
label: '保证' + currentInsuredInfo.L,
value: 'L'
})
} else {
radios.push({
label: '低档' + currentInsuredInfo.L,
value: 'L'
})
}
}
if(currentInsuredInfo.M){
radios.push({
label: '中档' + currentInsuredInfo.M,
value: 'M'
})
if(risk.mainRiskCode == 'GFRS_M0083') {
radios.push({
label: '演示' + currentInsuredInfo.M,
value: 'M'
})
} else {
radios.push({
label: '中档' + currentInsuredInfo.M,
value: 'M'
})
}
}
if(currentInsuredInfo.H){
radios.push({

View File

@@ -46,7 +46,7 @@
<van-field required v-model="appntDTO.mobile" clearable label="投保人手机号" name="投保人手机号" placeholder="请输入"
v-validate="'required|mobileLength11|mobileStartWith1|mobile'" maxlength="11" readonly />
</van-cell-group>
<van-cell-group class="pl20 fs14">
<van-cell-group class="pl20 fs14" v-if="orderInfoDTO.activeType != 'KMH'">
<van-field v-if="orderInfoDTO.validateCustomerFlag !== '0'" v-model="authCode" center clearable label name="短信验证码"
v-validate="'required'" placeholder="请输入短信验证码" maxlength="6">
<van-button slot="button" size="small" type="danger" @click="getCode" :disabled="codeDisabled"
@@ -62,44 +62,6 @@
<van-button type="danger" size="large" @click="next" :disabled="isDisabled" v-no-more-click="1000">下一步</van-button>
</div>
</div>
<!-- <div v-if="radio != '0' && relationToAppnt != '1'">
<van-cell-group class="pl20">
<van-field v-model="bank" label="开户银行" placeholder="请选择" required @click="focus" readonly v-validate="'required'" data-vv-name="开户银行" />
</van-cell-group>
<van-cell-group class="pl20 flex align-items-c">
<van-field
v-model="bankId"
label="银行卡号"
maxlength="19"
placeholder="请输入"
required
v-validate="'required|bankCard'"
clearable
data-vv-name="银行卡号"
/>
<van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('1')" v-no-more-click="1000">银行卡扫描</van-button>
</van-cell-group>
<van-cell-group class="flex align-items-c">
<van-switch-cell v-model="checked" title="是否自动垫交" active-color="#E9332E" inactive-color="#fff" class="ml15 pr30" />
<van-icon
name="question-o"
class="vanIcon"
@click="
$toast({
message:
'保费自动垫交是当投保人没有按时交纳续期保险费,而保单当时已经具有足够的现金价值时,保险公司以现金价值自动垫交保险费,从而使保单继续有效。相当于投保人向保险公司贷款交纳保费,是保险公司提供给客户的一项选择权益,其目的是为了尽可能地减少客户因非故意的失误导致保单失效,使其利益受损。',
duration: 10000
})
"
/>
</van-cell-group>
<div class="fs12 mt10 ml20 w250 h15">
<span>温馨提示该账户将用于首期续期保费缴费</span>
</div>
<div class="bg-white bottom-btn">
<van-button type="danger" size="large" @click="next" :disabled="isDisabled" v-no-more-click="1000">下一步</van-button>
</div>
</div> -->
</div>
<!-- 银行卡扫描 -->
<BankCardScan :scanShow="isScan" :clear="isClear" @getScanInfo="getBankCardInfo"></BankCardScan>
@@ -123,12 +85,18 @@
</template>
</van-field>
</van-dialog>
<van-dialog class="bankCardContract" v-model="bankCardContractShow" title="提示" show-cancel-button @confirm="authConfirm" @cancel="checkModelCancel">
<p class="p10 fs14">尊敬的客户您好您的银行卡账户未进行续期签约为确保是您本人操作短信验证码已发送至您的手机号{{ appntDTO.mobile }}请您输入验证码完成签约流程~</p>
<van-cell-group class="flex align-items-c" style="margin: 10px;">
<van-field maxlength="6" placeholder="请输入短信验证码" v-model="verfyCode" clearable label-width="0" />
</van-cell-group>
</van-dialog>
</div>
</template>
<script>
import { Cell, CellGroup, Field, RadioGroup, Radio, Popup, List, Switch, Toast, SwitchCell, Icon, Area,Dialog } from 'vant'
import { saveInformation, getOrderDetail, checkCard, getAuthCode, autchCodeCheck } from '@/api/ebiz/sale/sale'
import { saveInformation, getOrderDetail, checkCard, getAuthCode, autchCodeCheck, getBankCardSignState, signConfirm } from '@/api/ebiz/sale/sale'
import utilsAge from '@/assets/js/utils/age'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
import IndexBar from '@/components/ebiz/sale/IndexBar'
@@ -202,6 +170,9 @@ export default {
areaStr: '',
orderInfoDTO: '',
renovate:'',
bankCardContractShow: false,
rdSeq:'',
verfyCode: '',
}
},
methods: {
@@ -574,22 +545,29 @@ export default {
}
}
}
if (this.orderInfoDTO.validateCustomerFlag !== '0') {
data.orderDTO.smsCodeDTO = { smsId: this.sessionId, code: this.authCode }
if(this.orderInfoDTO.activeType != 'KMH') {
if (this.orderInfoDTO.validateCustomerFlag !== '0') {
data.orderDTO.smsCodeDTO = { smsId: this.sessionId, code: this.authCode }
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.orderInfoDTO.validateCustomerFlag = '0';
window.localStorage.setItem('accountInformationRadio', this.radio)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
if(this.orderInfoDTO.activeType != 'KMH') {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
} else {
this.getBankCardSignState()
}
} else {
this.$toast(res.resultMessage)
}
@@ -598,6 +576,162 @@ export default {
this.$toast(this.errors.all()[0])
}
},
getBankCardSignState(){
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……',
})
let params = {
orderNo: this.$route.query.orderNo
}
getBankCardSignState(params).then(res => {
this.$toast.clear()
let checkRes = res.content
if (checkRes.result == '0') {
this.$toast.clear()
if (checkRes.needSign == '0' || checkRes.needSign == null) {
if(checkRes.signState == '0' || checkRes.signState == '2'){
// 不需签约或已签约,不做处理
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
}
}
else if (checkRes.needSign == '3') {
if(checkRes.signState == '0') {
this.$toast('该银行卡金掌桂暂不支持续期签约!')
}
}
else if (checkRes.needSign == '1'){
if (checkRes.signConfirmType == '2'){
this.bankCardContractShow = true
this.rdSeq = checkRes.rdSeq
}else if (checkRes.signConfirmType == '3'){
Dialog.alert({
message: '银行已发送短信至手机号'+ this.appntDTO.mobile +',按照短信提示完成短信回复签约,再次通过金掌桂完成后续流程。',
confirmButtonColor: '#ff5e50',
}).then(() => {})
} else if(checkRes.signConfirmType == '4') {
// this.$toast('招商银行卡请至官微续期签约~')
Dialog.alert({
message: '招商银行卡请至官微续期签约~',
confirmButtonColor: '#ff5e50',
}).then(() => {})
} else if(checkRes.signConfirmType == '5') {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
} else if (checkRes.signState == '3') {
// 签约失败
const info = '您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => {});
} else if (checkRes.signState == '4') {
const info = '银行卡已在签约中,请稍后~'
Dialog.alert({
message: info,
className: 'reConfirm leftConfirm',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => {})
// }
}
}
else {
this.$toast(checkRes.resultMessage)
}
}else{
const info = '您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => { });
}
})
},
authConfirm(){
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {
rdSeq:this.rdSeq,
verfyCode:this.verfyCode,
businessNo:this.$route.query.orderNo
}
if (!this.verfyCode || this.verfyCode == '') {
this.bankCardContractShow = true
return this.$toast('请输入短信验证码')
}
if (this.verfyCode.length !== 6) {
this.bankCardContractShow = true
return this.$toast('验证码格式错误')
}
signConfirm(data).then(res => {
this.verfyCode = ''
this.bankCardContractShow = false
if (res.content.result == '0') {
this.$toast.clear()
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
}else{
this.$toast.clear()
// 签约失败
const info = '您当前银行卡账户续期签约失败,\n原因' + res.content.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {})
}
})
},
checkModelCancel() {
this.bankCardContractShow = false
this.verfyCode = ''
},
handleRenew(v) {
//大于65不能续保
if (this.productNo === 'GFRS_M0016' && this.age >= 65) {
@@ -850,5 +984,17 @@ export default {
color: #fff;
}
}
.bankCardContract{
/deep/ .van-dialog__cancel{
background: #fff;
color: #323233;
}
/deep/ .van-dialog__confirm{
background: #fff;
color: red;
}
/deep/ .van-dialog__header{
color: red;
}
}
</style>

View File

@@ -250,7 +250,7 @@ import idNoCheck from '@/assets/js/utils/idNoCheck'
import { idToData } from './js/verification'
import { selectComp } from './js/methods'
import getAreaName from '@/assets/js/utils/getAreaNameForSale'
import { getOrderDetail } from '@/api/ebiz/sale/sale'
import { getOrderDetail, checkAppointBnf } from '@/api/ebiz/sale/sale'
let relationToInsured = [
{ id: 2, text: '配偶' },
@@ -1114,21 +1114,51 @@ export default {
}
}
beneficiaries.push(this.userInfo)
// 保存 新增的受益人信息 以及页面跳转字段
localStorage.beneficiaryInfo = JSON.stringify(beneficiaries)
localStorage.fromAddBeneficiaryInfo = true
if (this.userInfo.asAppntAddress == true) {
localStorage.applicant = '1'
let thisbnfDTOs = []
thisbnfDTOs.push(this.userInfo)
let params = {
orderType: 'BNF_ORDER',
orderDTO: {
productDTO: null,
orderInfoDTO: {
bnfFlag: this.bnfFlag,
orderNo: this.$route.query.orderNo
},
appntDTO: {},
insuredDTOs: [
{
insuredId: JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).insuredId,
bnfDTOs: thisbnfDTOs
}
],
paymentDTO: {},
orderAccountDTO: {},
channelDTO: null,
orderExpandDTO: null,
thirdOrderDTO: null
}
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/beneficiary?orderNo=' + this.$route.query.orderNo,
needRefresh: '1'
},
routerInfo: {
path: '/sale/beneficiary?orderNo=' + this.$route.query.orderNo
checkAppointBnf(params).then(res=>{
if(res.result == '0'){
beneficiaries.push(this.userInfo)
// 保存 新增的受益人信息 以及页面跳转字段
localStorage.beneficiaryInfo = JSON.stringify(beneficiaries)
localStorage.fromAddBeneficiaryInfo = true
if (this.userInfo.asAppntAddress == true) {
localStorage.applicant = '1'
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/beneficiary?orderNo=' + this.$route.query.orderNo,
needRefresh: '1'
},
routerInfo: {
path: '/sale/beneficiary?orderNo=' + this.$route.query.orderNo
}
})
} else {
this.$toast(res.resultMessage)
}
})
} else {

File diff suppressed because it is too large Load Diff

View File

@@ -90,6 +90,28 @@
说明:如您想获取个人信息处理的合作机构名称联系方式信息处理方式保存期限详情和个人行使信息保护权利的方式和程序可拨打国富人寿服务热线4006946688咨询
</p>
</div>
<div>
<h2 style="text-align:center" class="mb20">转账授权书</h2>
<p class="mb20">本人授权国富人寿保险股份有限公司以下简称国富人寿及本人指定之银行账户微信账户按下述授权内容进行保险费的划扣及相关权益的给付</p>
<p class="mb20" style="font-weight: bold;">银行卡转账授权声明</p>
<p class="mb20">1本人同意委托国富人寿从本人的授权账户中扣取本保险合同所需缴纳的保险费并保证授权账户中有足够的金额支付应交保险费</p>
<p class="mb20">
2本人确认授权的银行账户所有人为投保人本人账户的开户银行户名和账号均真实有效续期交费账户与首期保费交纳账户为同一账户
本人所提供的授权账户必须是本人的个人结算账户借记卡个人活期结算存折
</p>
<p class="mb20">
3本人同意若因账户挂失账户冻结账户余额不足或其
他非银行原因造成转账不成功致使产生保险合同终止的任何后果或投资账户的费用损失因此引起的责任概由本人承担
</p>
<p class="mb20">4如本人在同一指定账户内同时授权两张或两张以上保险单中的保险费或其他自动转账业务时本人同意依照国富人寿规定的转账顺序转账</p>
<p class="mb20">5本人投保后若办理退保或退费业务同意国富人寿将应退金额通过银行划转入该账户</p>
<p class="mb20">
6本人因故结清账户会重新开立账户并及时通过国富人寿进行变更如本人欲终止本授权应立即向国富人寿递交终止的书面申请由国富人寿知会银行停止转账若因本人未及时办理账户变更手续而导致退保给付金无法按时给付则同意国富人寿按退保申请日的给付金额支付
</p>
<p class="mb20">7对于一年期以上的产品国富人寿可在保险费约定支付日之前及时通知本人交纳续期保险费</p>
<p class="mb20" style="font-weight: bold;">微信转账授权声明</p>
<p class="mb20">1首期保险费使用微信支付的本人同意国富人寿通过本人投保时留存的银行账户进行续期保险费转账扣除</p>
</div>
</div>
<van-radio-group v-model="radio" class="pb10 pb20 pl30">

View File

@@ -137,7 +137,7 @@
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Toast, Dialog, Field } from 'vant'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder } from '@/api/ebiz/sale/sale'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder, getBankCardSignState } from '@/api/ebiz/sale/sale'
import { funcPermCheck } from '@/api/ebiz/common/common'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到用户等级
@@ -447,7 +447,7 @@ export default {
this.loadMore()
},
//投保单详情
goDetail(order) {
async goDetail(order) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
@@ -475,7 +475,35 @@ export default {
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
if(order.orderInfoDTO.activeType == 'KMH') {
let params = {
orderNo: order.orderInfoDTO.orderNo
}
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……',
})
await getBankCardSignState(params).then(res => {
this.$toast.clear()
if(res.result == 0) {
if(res.content.needSign == '0' || res.content.needSign == null) {
if(res.content.signState == '0' || res.content.signState == '2') {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
} else {
this.$toast(res.resultMessage)
}
})
} else {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
}
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--

View File

@@ -22,6 +22,10 @@
<img :src="srcPending" class="mb40 mt20" />
<p class="title">核心系统繁忙请稍后重试</p>
</div>
<div v-else-if="uwResult == '53'">
<img :src="srcPending" class="mb40 mt20" />
<p class="title">核心批扣</p>
</div>
<div v-else>
<img :src="srcPending" class="mb40 mt20" />
<p class="title">系统繁忙请稍后重试</p>

View File

@@ -18,6 +18,7 @@
<van-cell title="投保单号" :value="orderInfo.orderNo" @click="toTest"></van-cell>
<van-cell title="投保日期" :value="date" />
<van-cell title="保费合计(元)" :value="orderInfo.orderAmount == undefined ? '' : orderInfo.orderAmount | moneyFormat" />
<van-cell v-if="cvalidateStr" title="指定保单生效日" :value="cvalidateStr" />
</van-cell-group>
<div v-if="!isWeixin">
<!-- 不再微信 -->
@@ -234,7 +235,7 @@
</div>
</div>
<div v-if="!isWeixin">
<div v-if="changeCard">
<div v-if="changeCard && activeType != 'KMH'">
<div class="bottom-btn bg-white" v-if="appntSign.documentStatus == '1'">
<van-button
type="danger"
@@ -408,7 +409,9 @@ export default {
appntRidFlag: null,
insureRidFlag: null
},
showAgentView:0
showAgentView:0,
cvalidateStr: '',
activeType: ''
}
},
methods: {
@@ -1432,6 +1435,14 @@ export default {
return new Promise((resolve) => {
getOrderDetail(data).then((res) => {
if (res.result == '0') {
if(res.orderDTO.orderInfoDTO.activeType == 'KMH') {
this.cvalidateStr = res.orderDTO.orderInfoDTO.cvaliDate
this.activeType = res.orderDTO.orderInfoDTO.activeType
if(new Date() > new Date(res.orderDTO.orderInfoDTO.cvaliDate)) {
this.cvalidateStr = ''
}
}
if (res.orderDTO && res.orderDTO.prtType) {
localStorage.setItem('readingProtocolType', res.orderDTO.prtType)
}
@@ -1586,10 +1597,14 @@ export default {
}
})
if (!that.changeCard) {
//将投保人数组排序
//将投保人文件数组排序
that.appntSign.sort(function (a, b) {
return a.key - b.key
})
//将被保人文件数组排序
that.insuredSign.sort(function (a, b) {
return a.key - b.key
})
//获取投保和被保险人电子投保单签字状态
console.log(that.appntSign,'that.appntSign')
that.appntSign.map((item,index) => {

View File

@@ -1087,7 +1087,7 @@
that.signVal = window.localStorage.getItem('sign-val')
// 判断是不是万能险
let comment = window.localStorage.getItem('productCode')
if (comment == 'GFRS_M0003' || comment == 'GFRS_M0015' || comment == 'GFRS_M0017' || comment == 'GFRS_M0075' || comment == 'GFRS_M0080') {
if (comment == 'GFRS_M0003' || comment == 'GFRS_M0015' || comment == 'GFRS_M0017' || comment == 'GFRS_M0075' || comment == 'GFRS_M0080' || comment == 'GFRS_M0082' || comment == 'GFRS_M0083') {
this.isComment = true
}
// 获取投保人信息

View File

@@ -18,8 +18,8 @@
包含当日之后保险合同于国富人寿收取首期保险费并签发保险单次日零时起生效 -->
如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前申请投保且支付保险费经国富人寿保险股份有限公司以下简称国富人寿同意并签发保单
签发保单日在<span>{{ cvalidateStrOneDayOff }}</span>及以前保险合同自{{ cvalidateStrToFormat }}零时起生效签发保单日在{{ cvalidateStrToFormat }}及以后
保险合同自签发保险单次日零时起生效
<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效{{ cvalidateStrToFormat }}(包含当日后签发保单
保险合同自签发保险单次日零时起生效国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额
</p>
<p style="text-indent:2rem;">
@@ -134,7 +134,7 @@ export default {
methods: {
async init(){
this.isFrom = window.localStorage.isFrom
const orderNo = this.$CacheUtils.getLocItem('orderNo')
const orderNo = this.$route.query.orderNo
let detailPromise = this.isFrom === 'proposal' ? localStorage.proposalMedical : await getOrderDetail({ orderNo })
if(this.isFrom != 'proposal'){
//活动生效日期
@@ -202,13 +202,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.appntSign.documentCode,
documentStatus: '1',
documentType: that.appntSign.documentType,
@@ -226,10 +226,10 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
},
routerInfo: {
path: '/sale/' + url
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
}
})
} else {
@@ -254,13 +254,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.insuredSign.documentCode,
documentStatus: '1',
documentType: that.insuredSign.documentType,
@@ -276,10 +276,10 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureOfElectronic'
url: location.origin + '/#/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
},
routerInfo: {
path: '/sale/SignatureOfElectronic'
path: '/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
}
})
} else {
@@ -308,13 +308,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.appntSign.documentCode,
documentStatus: '1',
documentType: that.appntSign.documentType,
@@ -331,11 +331,11 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url,
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/' + url
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo
}
})
} else {
@@ -354,13 +354,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.insuredSign.documentCode,
documentStatus: '1',
documentType: that.insuredSign.documentType,
@@ -376,11 +376,11 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureOfElectronic',
url: location.origin + '/#/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/SignatureOfElectronic'
path: '/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
}
})
} else {