Compare commits

...

68 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
f89a845b75 银保渠道调用产品销售权限增加接口入参字段productChannl 2024-04-01 16:19:50 +08:00
liu.xiaofeng@ebiz-digits.com
a14e2c2784 电投流程调用销售权限接口,其他的渠道不调 2024-04-01 13:41:42 +08:00
liu.xiaofeng@ebiz-digits.com
55ba73ea48 关于产品风险等级与销售人员资质校验系统需求 2024-03-29 17:11:13 +08:00
liu.xiaofeng@ebiz-digits.com
9238ad698b 卡单投保学平险职业默认一般学生参数传递occupationType设置为1 2024-03-29 14:13:08 +08:00
liu.xiaofeng@ebiz-digits.com
1224b3e2d8 卡单投保学平险职业默认一般学生参数传递occupationType设置为1 2024-03-29 14:13:05 +08:00
liu.xiaofeng@ebiz-digits.com
8b96bea8e7 银保渠道吐过没有产品可选 修改信息提示为请提示不再阻断 2024-03-29 09:44:42 +08:00
liu.xiaofeng@ebiz-digits.com
4dd71eb80d GBC获客录入信息界面 选择产品弹窗 不勾选产品点击确定 提示语修改 2024-03-13 20:57:08 +08:00
liu.xiaofeng@ebiz-digits.com
3aabd2cd47 GBC获客信息录入页面部门字段必填校验 2024-03-13 20:57:03 +08:00
liu.xiaofeng@ebiz-digits.com
ccc2bd1eaf 获客信息录入页面保存接口增加科室相关字段 2024-03-13 20:57:00 +08:00
liu.xiaofeng@ebiz-digits.com
502a35fdc0 获客投保人信息录入页面去掉校验 2024-03-13 20:56:57 +08:00
liu.xiaofeng@ebiz-digits.com
1364105990 获客功能提交页面更换图片 2024-03-13 20:56:53 +08:00
liu.xiaofeng@ebiz-digits.com
23f843f53b 获客功能保存接口对接 2024-03-13 20:56:50 +08:00
liu.xiaofeng@ebiz-digits.com
7a4de61cca 获客功能代码编辑 2024-03-13 20:56:46 +08:00
liu.xiaofeng@ebiz-digits.com
78f6343af3 信息录入页面优化代码 2024-03-13 20:56:43 +08:00
liu.xiaofeng@ebiz-digits.com
f4e8f8b4b0 信息录入页面底部提交按钮以及总保费的展示添加 2024-03-13 20:56:40 +08:00
liu.xiaofeng@ebiz-digits.com
2f93dbbc6d 信息录入页面底部提交按钮以及总保费的展示添加 2024-03-13 20:56:36 +08:00
liu.xiaofeng@ebiz-digits.com
2eadcc4c4e GBC一级产品校验接口联调
获取GBC一级产品接口联调
新增提交结果页面添加样式
2024-03-13 20:56:32 +08:00
liu.xiaofeng@ebiz-digits.com
05b8dbb703 获客功能开发 2024-03-13 20:56:29 +08:00
liu.xiaofeng@ebiz-digits.com
141b9d6a24 获客功能开发 2024-03-13 20:56:26 +08:00
liu.xiaofeng@ebiz-digits.com
76a7e379b7 获客功能开发 2024-03-13 20:56:23 +08:00
liu.xiaofeng@ebiz-digits.com
07dc5fa96e 项目详情样式细调 2024-03-13 20:55:11 +08:00
liu.xiaofeng@ebiz-digits.com
fbe59da7fa GBC项目列表页面搜索功能增加入参projectName 2024-03-13 20:55:08 +08:00
liu.xiaofeng@ebiz-digits.com
f2c230b3e7 客户列表编辑客户信息的时候切换人员不重新请求详情信息 2024-03-13 20:55:06 +08:00
liu.xiaofeng@ebiz-digits.com
14e236f9cc 当前激活的用户appntid 保存方式修改并修改保额保费的保留两位小数的写法 2024-03-13 20:55:03 +08:00
liu.xiaofeng@ebiz-digits.com
df590bc2d0 测试问题修改 2024-03-13 20:55:00 +08:00
liu.xiaofeng@ebiz-digits.com
a6a2e5b749 GBC客户管理错误字段修改 2024-03-13 20:54:57 +08:00
liu.xiaofeng@ebiz-digits.com
eebb84093f 产品列表修改 2024-03-13 20:54:54 +08:00
liu.xiaofeng@ebiz-digits.com
c11ba15a0f 首页去掉下拉刷新 2024-03-13 20:54:51 +08:00
liu.xiaofeng@ebiz-digits.com
e94249475e 首页怎么判断只有登录的时候 调取项目列表接口 2024-03-13 20:54:48 +08:00
liu.xiaofeng@ebiz-digits.com
67148b4721 项目详情和客户编辑接口对接 2024-03-13 20:54:46 +08:00
liu.xiaofeng@ebiz-digits.com
bdbebc7ad8 首页小组编码字段修改 电投投保人页面保存接口入参增加teamCode 2024-03-13 20:54:41 +08:00
liu.xiaofeng@ebiz-digits.com
6e58fbb33d 首页选择项目绑定的项目改为绑定小组 2024-03-13 20:54:15 +08:00
liu.xiaofeng@ebiz-digits.com
5104f52f40 数据看板页面以及产品列表页面和编辑客户信息页面基础代码编写 2024-03-13 20:53:34 +08:00
liu.xiaofeng@ebiz-digits.com
6baffe50a8 首页展示的项目列表数据后面增加显示小组名称 2024-03-13 20:44:04 +08:00
liu.xiaofeng@ebiz-digits.com
62de743fbc 数据存储由isFrom修改为branchType 2024-03-13 20:42:00 +08:00
liu.xiaofeng@ebiz-digits.com
6cd71bb8d5 首页增加方法判断当前是否是GBC渠道 2024-03-13 20:41:12 +08:00
liu.xiaofeng@ebiz-digits.com
e8453879a0 isFrom 由sessionstorage 改为localStorage 2024-03-13 20:40:34 +08:00
liu.xiaofeng@ebiz-digits.com
d57c539de4 GBC页面样式调整功能联调 2024-03-13 20:39:52 +08:00
liu.xiaofeng@ebiz-digits.com
b068888067 投保人页面获取代理人渠道信息 2024-03-13 20:37:45 +08:00
liu.xiaofeng@ebiz-digits.com
4190d65579 GBC功能开发 2024-03-13 20:36:40 +08:00
liu.xiaofeng@ebiz-digits.com
54f474dda2 首页样式修改 2024-03-13 20:32:47 +08:00
liu.xiaofeng@ebiz-digits.com
988efd34d1 首页调用获取代理人项目列表接口 2024-03-13 20:32:43 +08:00
liu.xiaofeng@ebiz-digits.com
0ad0575414 新增查询登录人所属项目列表接口并调整首页代码逻辑 2024-03-13 20:32:14 +08:00
liu.xiaofeng@ebiz-digits.com
3477f9ffd8 GBC首页页面基础代码编写 2024-03-13 20:32:10 +08:00
liu.xiaofeng@ebiz-digits.com
ccb2b12762 GBC新增首页路由和文件 2024-03-13 20:29:04 +08:00
liu.xiaofeng@ebiz-digits.com
1a5b8c2a9e 卡单投保 被保人是否为新市民选择为是 下方选择新市民类型 选择后不显示 2024-03-13 12:42:33 +08:00
liu.xiaofeng@ebiz-digits.com
31b1485e23 卡单投保增加地区判断是否是广西地区 动态控制新市民字段是否展示 2024-03-13 12:42:30 +08:00
liu.xiaofeng@ebiz-digits.com
0842b27a62 “投保人信息”及“被保险人信息”中增加字段“新市民身份” 2024-03-13 12:42:26 +08:00
liu.xiaofeng@ebiz-digits.com
65e41ed410 责任组联动功能代码逻辑编写 2024-03-12 13:50:59 +08:00
liu.xiaofeng@ebiz-digits.com
7739e8b90b 免赔额和免赔比例显示逻辑调整 2024-03-12 13:50:56 +08:00
liu.xiaofeng@ebiz-digits.com
33e6b150b4 嘉和保重大疾病2024年末现金价值增加單位 2024-03-12 13:50:47 +08:00
liu.xiaofeng@ebiz-digits.com
d037b8e36a 国富人寿嘉和保重大疾病保险(2024版) 加字段 2024-03-12 13:50:43 +08:00
liu.xiaofeng@ebiz-digits.com
5a9512b5b7 嘉和保保期70最小保额为20万 保期终身最小保额10万 2024-03-12 13:49:43 +08:00
liu.xiaofeng@ebiz-digits.com
570cc88b30 本产品建议“保至70周岁”的方案20万保额起投;“保至终身”的方案10万保额起投; 2024-03-12 13:49:39 +08:00
liu.xiaofeng@ebiz-digits.com
7ef7799545 嘉和保产品试算兼容 2024-03-12 13:49:35 +08:00
liu.xiaofeng@ebiz-digits.com
e21e16ddbe 银保代理人电子合同签署签字页面跳转地址修改 2024-03-05 15:33:03 +08:00
liu.xiaofeng@ebiz-digits.com
02c408f5ef 证件起始日期与当前日期判断逻辑添加 2024-03-04 17:09:42 +08:00
liu.xiaofeng@ebiz-digits.com
247ad5e13e 销售行为管理办法分数判断修改为60《=分数《=85 2024-03-01 18:02:07 +08:00
liu.xiaofeng@ebiz-digits.com
44bd097ae2 获客弹窗小于85分停止投保按钮样式修改 2024-03-01 18:02:02 +08:00
liu.xiaofeng@ebiz-digits.com
c20dda510e 获客弹窗小于85分点击停止投保调用修改订单状态接口 以及按钮样式和文字修改 2024-03-01 18:01:59 +08:00
liu.xiaofeng@ebiz-digits.com
cf0661b6ba 销售行为管理办法万能险和分红险分数大于85分逻辑添加 2024-03-01 18:01:55 +08:00
liu.xiaofeng@ebiz-digits.com
a9809d32bd 在“告知信息”页面,点击【下一步】按钮,个险、中介直销、银保直销渠道线上流程调整 2024-03-01 18:01:49 +08:00
liu.xiaofeng@ebiz-digits.com
2be815d1bd 一月修改为旺季 2024-02-01 10:31:22 +08:00
liu.xiaofeng@ebiz-digits.com
21a8f13c7e 签字页面和阅读文件页面字体大小调整 2024-01-31 00:05:32 +08:00
liu.xiaofeng@ebiz-digits.com
c5dd4bcb51 合并签字功能完善 2024-01-31 00:02:02 +08:00
liu.xiaofeng@ebiz-digits.com
a6f572b816 签字确认页面字体大小调整 2024-01-26 14:35:24 +08:00
liu.xiaofeng@ebiz-digits.com
85cfccd60e 去掉package-lock.json文件 2024-01-24 16:19:43 +08:00
liu.xiaofeng@ebiz-digits.com
6bd95572b7 配置文件修改 2024-01-24 16:19:39 +08:00
28 changed files with 19642 additions and 327 deletions

17316
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -59,6 +59,7 @@
"node-sass": "^4.14.1",
"postcss-px-to-viewport": "^1.1.1",
"sass-loader": "^7.3.1",
"terser-webpack-plugin": "^4.2.3",
"vue-template-compiler": "^2.6.10"
}
}

View File

@@ -88,4 +88,31 @@ export function getGBCappntConnectSave(data) {
method: 'post',
data
})
}
}
// 获取GBC一级产品
export function getGBCRiskList(data) {
return request({
url: getUrl('/sale/product/getGBCRiskList ', 1),
method: 'post',
data
})
}
// GBC一级产品校验
export function gbcAppntCheckProdect(data) {
return request({
url: getUrl('/sale/gbc/appnt/checkProdect ', 1),
method: 'post',
data
})
}
// GBC一级产品校验
export function saveOrUpdateGbc(data) {
return request({
url: getUrl('/sale/gbc/appnt/saveOrUpdateGbc', 1),
method: 'post',
data
})
}

View File

@@ -390,3 +390,18 @@ export function saveOrderType(data) {
})
}
export function changeOrderStatus(data) {
return request({
url: getUrl('/sale/order/changeOrderStatus', 1),
method: 'post',
data
})
}
export function riskLevelCheck(data) {
return request({
url: getUrl('/sale/order/riskLevelCheck', 1),
method: 'post',
data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@@ -16,12 +16,12 @@ export default {
if(date2_29 == '02-29'){
let thisyear = Number(endDate.slice(0, 4)) - 5
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
startDate = thisyear + '-02-28'
}
}else{
return startDate = String(Number(endDate.slice(0, 4)) - 5) + endDate.slice(4, 11)
startDate = String(Number(endDate.slice(0, 4)) - 5) + endDate.slice(4, 11)
}
}
/**
@@ -37,12 +37,12 @@ export default {
if(date2_29 == '02-29') {
let thisyear = Number(endDate.slice(0, 4)) - 10
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
startDate = thisyear + '-02-28'
}
} else {
return startDate
startDate
}
}
}
@@ -59,12 +59,12 @@ export default {
if(date2_29 == '02-29') {
let thisyear = Number(endDate.slice(0, 4)) - 20
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
startDate = thisyear + '-02-28'
}
} else {
return startDate
startDate
}
}
}
@@ -74,8 +74,12 @@ export default {
* @Date: 2023/7/4
**/
else if (endage - 20 >= 46) {
return startDate
startDate
}
if(new Date(birthday).getTime() >= new Date(startDate).getTime() || new Date().getTime() < new Date(startDate).getTime()){
startDate = ''
}
return startDate
},
//计算身份证截止日期

View File

@@ -3891,6 +3891,38 @@ export default {
{
code: "GFRS_M0087__cashValue",
label: "元"
},
{
code: "deathDisabilityInsurance",
label: "元"
},
{
code: "middleDiseaseMildillnessExemptionPremium",
label: "元"
},
{
code: "malignantTumorAdditionalInsurance",
label: "元"
},
{
code: "specCardiovascularCerebrovascularDiseasesInsurance",
label: "元"
},
{
code: "firstCriticalIllnessCareFund",
label: "元"
},
{
code: "firstModerateIllnessCareFund",
label: "元"
},
{
code: "firstLightIllnessCareFund",
label: "元"
},
{
code: "GFRS_M0086__cashValue",
label: "元"
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,

View File

@@ -1,6 +1,6 @@
<template>
<div class="search_box" ref="search_box">
<van-field :label="label" required>
<van-field :label="label" :class="{ 'van-cell--required': required }">
<template #input>
<input
style="width: 100%; border: none"
@@ -40,6 +40,10 @@ export default {
value: {
type: String
},
required: {
type: Boolean,
default: true
},
isAsync: {
type: Boolean,
default: false

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

@@ -3,6 +3,8 @@ const GBC_home = () => import('@/views/GBC/home')
const GBC_projectList = () => import('@/views/GBC/projectList')
const GBC_projectDetail = () => import('@/views/GBC/projectDetail')
const GBC_customerDetail = () => import('@/views/GBC/customerDetail')
const GBC_InsuredInfo = () => import('@/views/GBC/InsuredInfo')
const GBC_submitResult = () => import('@/views/GBC/submitResult')
export default [
{
@@ -41,4 +43,22 @@ export default [
index: 1
}
},
{
path: '/GBC/InsuredInfo',
name: 'GBC_InsuredInfo',
component: GBC_InsuredInfo,
meta: {
title: '信息录入',
index: 1
}
},
{
path: '/GBC/submitResult',
name: 'GBC_submitResult',
component: GBC_submitResult,
meta: {
title: '提交结果',
index: 1
}
},
]

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: '旺季实时贺报'
}
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -9,16 +9,20 @@
</div>
<div style="display: flex;font-size: 13px;color: #999;margin-top: 10px;">
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.contSize}}</span>
<span style="color: #EC5449;font-size: 22px;margin-right: 2px;font-weight: bold;">{{infoContent.contSize}}</span>
<span></span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.members.length}}</span>
<span style="color: #EC5449;font-size: 22px;margin-right: 2px;font-weight: bold;">{{infoContent.members.length}}</span>
<span></span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalAmt}}</span>
<span style="color: #EC5449;font-size: 22px;margin-right: 2px;font-weight: bold;">{{infoContent.totalAmt}}</span>
<span>万元</span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalPrem}}</span>
<span style="color: #EC5449;font-size: 22px;margin-right: 2px;font-weight: bold;">{{infoContent.totalPrem}}</span>
<span>万元</span>
</span>
</div>
</div>
@@ -131,22 +135,22 @@
</div>
<div style="padding: 10px 0px;">
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">投保人</p>
<p style="width: 25%;color: #666;">投保人</p>
<p style="width: 25%;color: #000;">{{item.appntName}}</p>
<p style="width: 25%;color: #666;">被保险人</p>
<p style="width: 20%;color: #000;">{{item.insuredName}}</p>
<p style="width: 25%;color: #000;">{{item.insuredName}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">保额()</p>
<p style="width: 25%;color: #000;">{{item.amt}}</p>
<p style="width: 25%;color: #666;">保额()</p>
<p style="width: 25%;color: #000;">{{Number(item.amt).toFixed(2)}}</p>
<p style="width: 25%;color: #666;">保费()</p>
<p style="width: 20%;color: #000;">{{item.prem}}</p>
<p style="width: 25%;color: #000;">{{Number(item.prem).toFixed(2)}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">交费期间</p>
<p style="width: 25%;color: #666;">交费期间</p>
<p style="width: 25%;color: #000;">{{item.paymentPeriod}}</p>
<p style="width: 25%;color: #666;">保险期间</p>
<p style="width: 20%;color: #000;">{{item.insuredPeriod}}</p>
<p style="width: 25%;color: #000;">{{item.insuredPeriod}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">保险生效日期</p>
@@ -224,12 +228,14 @@ export default {
],
connectContent: "",
maxLength: 500,
activeAppntId:'',
}
},
created() {
},
mounted(){
this.activeAppntId = this.$route.query.appntId
this.getGBCappntDetail()
},
methods: {
@@ -237,6 +243,7 @@ export default {
this.activeMembersIndex = thisIndex
this.infoContent.appntName = thisData.name
this.infoContent.age = thisData.age
this.activeAppntId = thisData.appntId
this.infoContent.gender = thisData.gender
this.infoContent.mobile = thisData.mobile
this.infoContent.departmentName = thisData.departmentName
@@ -257,12 +264,14 @@ export default {
getGBCappntConnectSave(){
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.projectCode,
"appntId": this.activeAppntId,
"connectContent": this.connectContent
}
getGBCappntConnectSave(params).then(res=>{
if(res.result == 0) {
this.$toast('保存成功')
this.connectContent = ''
this.activeConnectRecords = false
this.getGBCappntDetail()
} else {
this.$toast(res.resultMessage)
@@ -275,7 +284,7 @@ export default {
this.infoContent.appntType = value.id
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.appntId,
"appntId": this.activeAppntId,
"appntType": this.infoContent.appntType
}
getGBCappntTypeSave(params).then(res=>{

View File

@@ -5,128 +5,173 @@
<van-tab title="数据看板" name="dataBoard"></van-tab>
<van-tab title="产品列表" name="productList"></van-tab>
</van-tabs>
<div v-if="tabActive == 'customerList'">
<div style="display: flex;align-items: center;padding-left: 10px;background: #fff;">
<div style="width: 30%;">
<van-dropdown-menu :overlay="dropdownmenuoverlay">
<van-dropdown-item v-model="filterType" :options="filterTypeOption" @change="dropdownMenuChange"/>
</van-dropdown-menu>
</div>
<van-search v-if="filterType == 1 || filterType == 2 || filterType == 3" v-model="searchvalue" shape="round" @search="getGBCappntlist" placeholder="搜索客户姓名/部门/科室/服务人员" style="width: 70%;"/>
<div v-if="filterType == 4" style="display: flex;align-items: center;height: 54px;">
<div @click="toChooseDate('startDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding:0px 10px;">
<van-icon name="notes-o" />
<span v-if="!startDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="startDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{startDate}}</span>
<div style="height: calc(100vh - 50px);overflow: auto;">
<div v-if="tabActive == 'customerList'">
<div style="display: flex;align-items: center;padding-left: 10px;background: #fff;">
<div style="width: 30%;">
<van-dropdown-menu :overlay="dropdownmenuoverlay">
<van-dropdown-item v-model="filterType" :options="filterTypeOption" @change="dropdownMenuChange"/>
</van-dropdown-menu>
</div>
<span style="margin: 0px 5px;font-size: 14px;"></span>
<div @click="toChooseDate('endDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding: 0px 10px;">
<van-icon name="notes-o" />
<span v-if="!endDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="endDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{endDate}}</span>
</div>
</div>
</div>
<div style="padding: 0px 10px 10px;">
<div v-for="(item,index) in customerList" :key="index">
<div style="padding: 20px 20px 10px;border-radius: 5px;background: #fff;margin-top: 20px;">
<div style="display: flex;font-size: 14px;line-height: 30px;border-bottom: 1px solid #eee;padding-bottom: 10px;">
<div style="width: 55%;overflow: hidden;white-space: nowrap;">
<p>客户姓名{{item.appntName}}</p>
<p>手机号码{{item.mobile}}</p>
<p>服务组长{{item.teamLeader}}</p>
</div>
<div style="width: 45%;overflow: hidden;white-space: nowrap;">
<p>部门/科室{{item.departmentName}}</p>
<p>承包保单{{item.contSize}}</p>
<p>服务组员{{item.teamMember}}</p>
</div>
<van-search v-if="filterType == 1 || filterType == 2 || filterType == 3" v-model="searchvalue" shape="round" @search="getGBCappntlist" placeholder="搜索客户姓名/部门/科室/服务人员" style="width: 70%;"/>
<div v-if="filterType == 4" style="display: flex;align-items: center;height: 54px;">
<div @click="toChooseDate('startDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding:0px 10px;">
<van-icon name="notes-o" />
<span v-if="!startDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="startDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{startDate}}</span>
</div>
<div style="display: flex;justify-content: flex-end;margin-top: 10px;">
<van-button @click="goCustomerDetail(item)" type="danger" size="small" style="border-radius:5px;">查看编辑</van-button>
<span style="margin: 0px 5px;font-size: 14px;"></span>
<div @click="toChooseDate('endDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding: 0px 10px;">
<van-icon name="notes-o" />
<span v-if="!endDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="endDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{endDate}}</span>
</div>
</div>
</div>
<div style="padding: 0px 10px 10px;">
<div v-for="(item,index) in customerList" :key="index">
<div style="padding: 20px 20px 10px;border-radius: 5px;background: #fff;margin-top: 20px;">
<div style="display: flex;font-size: 14px;line-height: 30px;border-bottom: 1px solid #eee;padding-bottom: 10px;">
<div style="width: 55%;overflow: hidden;white-space: nowrap;">
<p>客户姓名{{item.appntName}}</p>
<p>手机号码{{item.mobile}}</p>
<p>服务组长{{item.teamLeader}}</p>
</div>
<div style="width: 45%;overflow: hidden;white-space: nowrap;">
<p>部门/科室{{item.departmentName}}</p>
<p>承保保单{{item.contSize}}</p>
<p>服务组员{{item.teamMember}}</p>
</div>
</div>
<div style="display: flex;justify-content: flex-end;margin-top: 10px;">
<van-button @click="goCustomerDetail(item)" type="danger" size="small" style="border-radius:5px;">查看编辑</van-button>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-if="tabActive == 'dataBoard'">
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目名称国富人寿北京协和医院AA项目</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
<div style="display: flex;justify-content: center;margin-top: 20px;">
<van-circle v-model="currentRate" color="#E9332E" :stroke-width="60" size="80px" :rate="85" :speed="100" :text="text" />
</div>
<p style="display: flex;justify-content: center;font-weight: bold;font-size: 14px;margin: 10px;">面谈转化率</p>
<div style="padding: 10px;background: rgba(251, 235, 230, 0.5);border-radius: 5px;display: flex;justify-content: flex-start;flex-wrap:wrap;">
<div v-for="(item,index) in dataList1" style="width: 33%;display: flex;justify-content: space-around;align-items: center;">
<div>
<div style="font-size: 12px;line-height: 22px;margin: 7px 0px;">
<p style="display: flex;justify-content: center;font-size: 14px;">{{item.value}}</p>
<p style="display: flex;justify-content: center;align-items: center;">
<span class="colorBlock" :style="{background:colorList[index]}"></span>
{{item.name}}
</p>
</div>
</div>
<!-- <div v-if="(index + 1) % 3 != 0 || index < 2" style="width: 1px;background: #FFC9AF;height: 60%;"></div>-->
</div>
</div>
</div>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目成员分配</p>
<div v-if="tabActive == 'dataBoard'">
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目名称国富人寿北京协和医院AA项目</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
<div style="margin-top: 10px;margin-bottom: 3px;background: rgba(255, 87, 83, 0.7);line-height: 30px;display: flex;align-items: center;color: #fff;font-size: 14px;">
<span style="width: 18%;display: flex;justify-content: center;">成员</span>
<span style="width: 22%;display: flex;justify-content: center;">角色</span>
<span style="width: 30%;display: flex;justify-content: center;">累计标保()</span>
<span style="width: 30%;display: flex;justify-content: center;">受理标保()</span>
</div>
<div>
<div v-for="item in dataList2" style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 18%;display: flex;justify-content: center;">{{item.name}}</span>
<span style="width: 22%;display: flex;justify-content: center;">{{item.role}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value1}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value2}}</span>
<div style="display: flex;justify-content: center;margin-top: 20px;">
<van-circle v-model="currentRate" color="#E9332E" :stroke-width="60" size="80px" :rate="85" :speed="100" :text="text" />
</div>
<p style="display: flex;justify-content: center;font-weight: bold;font-size: 14px;margin: 10px;">面谈转化率</p>
<div style="padding: 10px;background: rgba(251, 235, 230, 0.5);border-radius: 5px;display: flex;justify-content: flex-start;flex-wrap:wrap;">
<div v-for="(item,index) in dataList1" style="width: 33%;display: flex;justify-content: space-around;align-items: center;">
<div>
<div style="font-size: 12px;line-height: 22px;margin: 7px 0px;">
<p style="display: flex;justify-content: center;font-size: 14px;">{{item.value}}</p>
<p style="display: flex;justify-content: center;align-items: center;">
<span class="colorBlock" :style="{background:colorList[index]}"></span>
{{item.name}}
</p>
</div>
</div>
<!-- <div v-if="(index + 1) % 3 != 0 || index < 2" style="width: 1px;background: #FFC9AF;height: 60%;"></div>-->
</div>
</div>
</div>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目成员分配</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
<div style="margin-top: 10px;margin-bottom: 3px;background: rgba(255, 87, 83, 0.7);line-height: 30px;display: flex;align-items: center;color: #fff;font-size: 14px;">
<span style="width: 18%;display: flex;justify-content: center;">成员</span>
<span style="width: 22%;display: flex;justify-content: center;">角色</span>
<span style="width: 30%;display: flex;justify-content: center;">累计标保()</span>
<span style="width: 30%;display: flex;justify-content: center;">受理标保()</span>
</div>
<div>
<div v-for="item in dataList2" style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 18%;display: flex;justify-content: center;">{{item.name}}</span>
<span style="width: 22%;display: flex;justify-content: center;">{{item.role}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value1}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value2}}</span>
</div>
</div>
</div>
</div>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目数据统计</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
<div style="margin-top: 10px;margin-bottom: 3px;background: rgba(255, 87, 83, 0.7);line-height: 30px;display: flex;align-items: center;color: #fff;font-size: 14px;">
<span style="width: 25%;display: flex;justify-content: center;">小组</span>
<span style="width: 25%;display: flex;justify-content: center;">组长</span>
<span style="width: 25%;display: flex;justify-content: center;">获客人数</span>
<span style="width: 25%;display: flex;justify-content: center;">获客率</span>
</div>
<div>
<div style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 50%;display: flex;justify-content: center;">项目合并</span>
<span style="width: 25%;display: flex;justify-content: center;">890</span>
<span style="width: 25%;display: flex;justify-content: center;">89%</span>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目数据统计</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
</div>
<div>
<div v-for="(item,index) in dataList3" :key="index" style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 25%;display: flex;justify-content: center;">{{item.name}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.role}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.value1}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.value2}}</span>
<div style="overflow: auto;">
<table cellspacing=0 style="margin-top: 10px;">
<thead style="background: rgba(255, 87, 83, 0.7);color: #fff;">
<tr class="theadClass">
<th>小组</th>
<th>组长</th>
<th>获客人数</th>
<th>获客率</th>
<th>筛客人数</th>
<th>筛客率</th>
<th>累计标保()</th>
<th>承保人数</th>
<th>承保件数()</th>
<th>件均()</th>
<th>面谈转化率</th>
<th>受理承保率</th>
<th>受理标保()</th>
<th>受理件数</th>
<th>重疾险件数</th>
<th>重疾标保()</th>
<th>重疾件均()</th>
</tr>
</thead>
<tbody>
<tr class="tbodyClass">
<td colspan="2">项目合并</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
</tr>
<tr v-for="(item,index) in dataList3" :key="index" class="tbodyClass">
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div v-if="tabActive == 'productList'">
<div v-for="(item,index) in dataList4" @click="goProductDetail(item.productCode)" :key="index" style="background: #fff;border-radius: 5px;margin: 5px;display: flex;padding: 5px;">
<img :src="item.productImageUrl" style="display: inline-block;width: 35%;border-radius: 5px;"/>
<div style="display: inline-block;width: 65%;padding-left: 10px;">
<p style="font-size: 16px;">{{item.productName}}</p>
<p style="font-size: 14px;color: #bdbdbd;margin-top: 20px;">{{item.productDesc}}</p>
<div v-if="tabActive == 'productList'">
<div v-for="(item,index) in dataList4" @click="goProductDetail(item.productCode)" :key="index" style="background: #fff;border-radius: 5px;margin: 5px;display: flex;padding: 5px;">
<img :src="item.productImageUrl" style="display: inline-block;width: 35%;border-radius: 5px;"/>
<div style="display: inline-block;width: 65%;padding-left: 10px;">
<p style="font-size: 16px;">{{item.productName}}</p>
<p style="font-size: 14px;color: #bdbdbd;margin-top: 20px;">{{item.productDesc}}</p>
</div>
</div>
</div>
</div>
@@ -206,6 +251,7 @@ export default {
},
mounted(){
document.title = this.$route.query.projectName
this.getGBCappntlist()
this.getProductList()
},
@@ -302,9 +348,6 @@ export default {
getList(params).then(res=>{
if(res.result == '0') {
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
} else {
this.$toast(res.resultMessage)
}
@@ -376,4 +419,24 @@ export default {
/deep/ [data-v-3f765cce] .van-dropdown-item__content{
box-shadow: 0px 0px 5px 5px #f5f5f5;
}
.theadClass{
th{
white-space: nowrap;
padding: 0px 10px;
font-size: 14px;
font-weight: 400;
line-height: 30px;
}
}
.tbodyClass{
background: rgba(251, 235, 230, 0.44);
line-height: 30px;
margin-bottom: 1px;
font-size: 13px;
/*color: #fff;*/
td{
text-align: center;
border-bottom:1px solid #fff;
}
}
</style>

View File

@@ -1,6 +1,6 @@
<template>
<div>
<van-search v-model="searchvalue" shape="round" background="#fff" placeholder="搜索项目名称"/>
<van-search v-model="searchvalue" shape="round" background="#fff" @search="getGBCprojectlistByYear" placeholder="搜索项目名称"/>
<div style="padding: 10px;">
<van-collapse v-for="item in yearList" :key="item.year" v-model="activeNames" style="margin-top: 10px;border-radius: 5px;">
<van-collapse-item :title="item.year" :name="item.year">
@@ -45,7 +45,7 @@ export default {
methods: {
getGBCprojectlistByYear(){
let params = {
projectName: this.searchvalue
}
getGBCprojectlistByYear(params).then(res=>{
if(res.result == '0') {
@@ -62,7 +62,8 @@ export default {
this.$router.push({
path:'/GBC/projectDetail',
query:{
projectCode:data.projectCode
projectCode:data.projectCode,
projectName:data.projectName
},
})
},

View File

@@ -0,0 +1,40 @@
<template>
<div>
<div style="text-align: center;margin-top: 10vh;">
<img :src="submitResultImg" style="width: 60vw;"/>
</div>
<p style="font-size: 20px;text-align: center;margin-top: 5vh;">提交成功</p>
</div>
</template>
<script>
import submitResultImg from '@/assets/images/GBC/submitResult.png'
export default {
data() {
return {
submitResultImg,
}
},
components: {
},
created() {
},
mounted() {
},
methods: {
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
</style>

View File

@@ -149,7 +149,8 @@
keyWord: '乙方锟斤拷:'
}
window.sessionStorage.setItem('signInfo',JSON.stringify(signInfo))
window.location.href = 'http://'+window.location.host + '/signH5/1.html'
// window.location.href = 'http://'+window.location.host + '/signH5/1.html'
window.location.href = this.$mainUrl + '/signH5/1.html'
},
goNext(){
let params = {

View File

@@ -131,6 +131,29 @@
placeholder='请选择'
@click="toSelect('6')"
/>
<div class="p15 pl8 fs14" style="border-bottom: 1px solid #eee;display: flex;justify-content: space-between;align-items: center;" v-if="manageComCode == '45'">
<van-radio-group v-model="userInfo.isNewPeopleFlag" class="flex">
<label>
<i class="red">*</i>
新市民身份
</label>
<van-radio name="1" class="ml30"></van-radio>
<van-radio name="0" class="ml20"></van-radio>
</van-radio-group>
<van-icon name="question-o" size="20" @click="isNewPeopleFlagTip = true"/>
</div>
<van-field
v-if="userInfo.isNewPeopleFlag == 1"
:value="userInfo.npType | idToText('npType')"
readonly
label="新市民类型"
name="新市民类型"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('11')"
/>
<van-field
v-model='userInfo.homeName'
readonly
@@ -188,6 +211,17 @@
<van-popup v-model='isScan2' position='bottom'>
<IdentityCardScan @getScanInfo='getIdentityInfo'></IdentityCardScan>
</van-popup>
<van-dialog v-model="isNewPeopleFlagTipshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">新市民身份说明</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
<div style="line-height: 25px;">新市民是指因本人创业就业子女上学投靠子女等原因来到城镇常住未获得当地户籍或获得当地户籍不满三年的各类群体包括但不限于进城务工人员新就业大中专毕业生等</div>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="isNewPeopleFlagTipshow = false">我知道了</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
@@ -211,6 +245,7 @@ import OccupationForLoop from '@/components/ebiz/occipation/OccupationForLoop'
import { selectComp, getIdentityInfo } from './js/methods'
import Vue from 'vue'
import { GoodsAction, GoodsActionIcon, GoodsActionButton } from 'vant'
import riskRules from '@/views/ebiz/common/risk-rules'
DataDictionary.relationToAppnt = DataDictionary.relationToAppnt.slice(0, 4)
Vue.use(Checkbox).use(CheckboxGroup)
@@ -312,7 +347,9 @@ export default {
mobile: '', //移动电话
email: '', //电子邮箱
schoolName: '',
className: ''
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
// effectiveDate: '' //指定生效日期
},
selectUser: '',
@@ -337,34 +374,15 @@ export default {
load: false, //防止重复请求
value: false
},
occupationalType: DataDictionary.queryOccupationalByType[0].id
occupationalType: DataDictionary.queryOccupationalByType[0].id,
manageComCode: '',
isNewPeopleFlagTipshow: false,
}
},
created() {
// document.body.style.backgroundColor = '#F5F5F5'
//如果是编辑进来
// if (this.$route.query.edit) {
// getOrderDetail({ orderNo: localStorage.orderNo }).then(res => {
// if (res.result == 0) {
// //投保人信息返显
// this.userInfo = res.orderDTO.appntDTO
// //是否长期
// this.userInfo.effectiveDateType = res.orderDTO.appntDTO.effectiveDateType == 'false' ? false : true
// //有无社保
// this.userInfo.medical = '1'
// //设为联系地址
// this.userInfo.addressStatus = '0'
// //证件类型
// this.userInfo.idType = '1'
// //国家/地区
// this.userInfo.nativeplace = '1'
// this.$utils.intLocalStorage(res)
// }
// })
// }
this.userInfo.homeName = getAreaName([{ code: 450000 }, { code: 450100 }, { code: 450101 }]) //家庭地址
},
mounted() {
async mounted() {
let that = this
setTimeout(() => {
// eslint-disable-next-line no-undef
@@ -375,6 +393,8 @@ export default {
}, 100)
// 筛选按钮的点击事件
window.appCallBack = this.appCallBack
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
if (this.$route.query.cardOrderNo) {
this.cardOrderNo = this.$route.query.cardOrderNo
//根据后台数据来展示
@@ -548,6 +568,8 @@ export default {
this.columns = DataDictionary.workCondition
} else if (pickerType == '8') {
this.columns = DataDictionary.salarySource
} else if (pickerType == '11') {
this.columns = DataDictionary.npType
}
},
//确认选择字段
@@ -585,6 +607,8 @@ export default {
this.proScheme = value.text
this.proSchemeCode = value.id
this.chooseKind = value.label
} else if (this.pickerType === '11') {
this.userInfo.npType = value.id
}
},
//证件起始截止日期
@@ -730,6 +754,8 @@ export default {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age <= 45
this.userInfo.isNewPeopleFlag = data.isNewPeopleFlag //新市民身份
this.userInfo.npType = data.npType //新市民类型
this.getRelatedData(this.userInfo.idNo, '1')
}
// console.log(data, val)
@@ -826,6 +852,12 @@ export default {
}
}
}
if (this.manageComCode == '45' && (this.userInfo.isNewPeopleFlag == '' || this.userInfo.isNewPeopleFlag == null || this.userInfo.isNewPeopleFlag == undefined)) {
return this.$toast('投保人新市民身份不能为空')
}
if(this.manageComCode == '45' && this.userInfo.isNewPeopleFlag != '0' && !this.userInfo.npType) {
return this.$toast('投保人新市民类型不能为空')
}
this.infoUpdate()
// console.log('success')
} else {

View File

@@ -147,6 +147,29 @@
placeholder='请选择'
@click="toSelect('66')"
/>
<div class="p15 pl8 fs14" style="border-bottom: 1px solid #eee;display: flex;justify-content: space-between;align-items: center;" v-if="manageComCode == '45'">
<van-radio-group v-model="insuredInfo.isNewPeopleFlag" class="flex">
<label>
<i class="red">*</i>
新市民身份
</label>
<van-radio name="1" class="ml30"></van-radio>
<van-radio name="0" class="ml20"></van-radio>
</van-radio-group>
<van-icon name="question-o" size="20" @click="isNewPeopleFlagTip = true"/>
</div>
<van-field
v-if="insuredInfo.isNewPeopleFlag == 1"
:value="userInfo.npType | idToText('npType')"
readonly
label="新市民类型"
name="新市民类型"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('npType')"
/>
<van-field
v-model='insuredInfo.homeName'
readonly
@@ -254,6 +277,17 @@
<van-popup v-model='isScan2' position='bottom'>
<IdentityCardScan @getScanInfo='getIdentityInfo'></IdentityCardScan>
</van-popup>
<van-dialog v-model="isNewPeopleFlagTipshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">新市民身份说明</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
<div style="line-height: 25px;">新市民是指因本人创业就业、子女上学、投靠子女等原因来到城镇常住,未获得当地户籍或获得当地户籍不满三年的各类群体,包括但不限于进城务工人员、新就业大中专毕业生等。</div>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="isNewPeopleFlagTipshow = false">我知道了</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
@@ -278,6 +312,7 @@ import { selectComp, getIdentityInfo } from './js/methods'
import dateUtils from '@/assets/js/utils/date-utils'
import Vue from 'vue'
import { GoodsAction, GoodsActionIcon, GoodsActionButton } from 'vant'
import riskRules from '@/views/ebiz/common/risk-rules'
DataDictionary.relationToAppnt = DataDictionary.relationToAppnt.slice(0, 4)
Vue.use(Checkbox).use(CheckboxGroup)
@@ -388,7 +423,9 @@ export default {
email: '', //电子邮箱
medical:'0',//有无社保
schoolName: '',
className: ''
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
// effectiveDate: '' //指定生效日期
},
//被保人信息
@@ -446,7 +483,9 @@ export default {
},
occupationalType: DataDictionary.queryOccupationalByType[0].id,
isInsuredCertiexpiredate:true, //被保人有效止期是否显示
isAppnt: false // 是否投被同人
isAppnt: false, // 是否投被同人
manageComCode: '',
isNewPeopleFlagTipshow: false,
}
},
created() {
@@ -482,7 +521,7 @@ export default {
this.expireDate = afterDate.getAfterDateTime(val,2)
}
},
mounted() {
async mounted() {
let that = this
window.appCallBack = this.appCallBack
// 2516--除万福卡投保人、被保险人年收入默认为0允许修改
@@ -496,6 +535,8 @@ export default {
if (this.$route.query.cardOrderNo) {
this.cardOrderNo = this.$route.query.cardOrderNo
}
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
//根据后台数据来展示
let cardInfoDTO = {
orderNo: this.cardOrderNo
@@ -738,6 +779,8 @@ export default {
// })
} else if (pickerType == '22') {
this.columns = DataDictionary.cardListInsuredIdType
} else if(pickerType == 'npType') {
this.columns = DataDictionary.npType
}
},
//确认选择字段
@@ -823,6 +866,8 @@ export default {
// this.isInsuredCertiexpiredate = true
}
this.insuredInfo.idType = value.id
} else if(this.pickerType == 'npType') {
this.userInfo.npType = value.id
}
},
//试算逻辑
@@ -1086,6 +1131,8 @@ export default {
// 长期按钮是否禁用
this.effectiveDateTypeAbleInsured = age <= 45
console.log(this.insuredInfo,'this.insuredInfo')
this.userInfo.isNewPeopleFlag = data.isNewPeopleFlag //新市民身份
this.userInfo.npType = data.npType //新市民类型
this.getRelatedData(this.insuredInfo.idNo, '2')
}
// console.log(data, val)
@@ -1313,6 +1360,12 @@ export default {
if (this.insuredInfo.effectiveDateType) {
this.insuredInfo.certiexpiredate = '9999-12-31'
}
if (this.manageComCode == '45' && (this.insuredInfo.isNewPeopleFlag == '' || this.insuredInfo.isNewPeopleFlag == null || this.insuredInfo.isNewPeopleFlag == undefined)) {
return this.$toast('投保人新市民身份不能为空')
}
if(this.manageComCode == '45' && this.insuredInfo.isNewPeopleFlag != '0' && !this.insuredInfo.npType) {
return this.$toast('投保人新市民类型不能为空')
}
this.infoUpdate()
// console.log('success')
} else {

View File

@@ -142,6 +142,29 @@
placeholder='请选择'
@click="toSelect('6')"
/>
<div class="p15 pl8 fs14" style="border-bottom: 1px solid #eee;display: flex;justify-content: space-between;align-items: center;" v-if="manageComCode == '45'">
<van-radio-group v-model="userInfo.isNewPeopleFlag" class="flex">
<label>
<i class="red">*</i>
新市民身份
</label>
<van-radio name="1" class="ml30"></van-radio>
<van-radio name="0" class="ml20"></van-radio>
</van-radio-group>
<van-icon name="question-o" size="20" @click="isNewPeopleFlagTipshow = true"/>
</div>
<van-field
v-if="userInfo.isNewPeopleFlag == 1"
:value="userInfo.npType | idToText('npType')"
readonly
label="新市民类型"
name="新市民类型"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('appntNpType')"
/>
<van-field
v-model='userInfo.homeName'
readonly
@@ -299,6 +322,29 @@
placeholder='请选择'
@click="toSelect('66')"
/>
<div class="p15 pl8 fs14" style="border-bottom: 1px solid #eee;display: flex;justify-content: space-between;align-items: center;" v-if="manageComCode == '45'">
<van-radio-group v-model="insuredInfo.isNewPeopleFlag" class="flex">
<label>
<i class="red">*</i>
新市民身份
</label>
<van-radio name="1" class="ml30"></van-radio>
<van-radio name="0" class="ml20"></van-radio>
</van-radio-group>
<van-icon name="question-o" size="20" @click="isNewPeopleFlagTipshow = true"/>
</div>
<van-field
v-if="insuredInfo.isNewPeopleFlag == 1"
:value="insuredInfo.npType | idToText('npType')"
readonly
label="新市民类型"
name="新市民类型"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('insuredNpType')"
/>
<van-field
v-model='insuredInfo.homeName'
readonly
@@ -432,6 +478,29 @@
right-icon='arrow'
placeholder='请选择'
/>
<div class="p15 pl8 fs14" style="border-bottom: 1px solid #eee;display: flex;justify-content: space-between;align-items: center;" v-if="manageComCode == '45'">
<van-radio-group v-model="userInfo.isNewPeopleFlag" class="flex">
<label>
<i class="red">*</i>
新市民身份
</label>
<van-radio name="1" class="ml30"></van-radio>
<van-radio name="0" class="ml20"></van-radio>
</van-radio-group>
<van-icon name="question-o" size="20" @click="isNewPeopleFlagTipshow = true"/>
</div>
<van-field
v-if="userInfo.isNewPeopleFlag == 1"
:value="userInfo.npType | idToText('npType')"
readonly
label="新市民类型"
name="新市民类型"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('appntNpType')"
/>
<van-field
v-model='userInfo.homeName'
readonly
@@ -568,6 +637,17 @@
<van-popup v-model='isScan2' position='bottom'>
<IdentityCardScan @getScanInfo='getIdentityInfo'></IdentityCardScan>
</van-popup>
<van-dialog v-model="isNewPeopleFlagTipshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">新市民身份说明</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
<div style="line-height: 25px;">新市民是指因本人创业就业、子女上学、投靠子女等原因来到城镇常住,未获得当地户籍或获得当地户籍不满三年的各类群体,包括但不限于进城务工人员、新就业大中专毕业生等。</div>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="isNewPeopleFlagTipshow = false">我知道了</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
@@ -706,7 +786,9 @@ export default {
mobile: '', //移动电话
email: '', //电子邮箱
schoolName: '',
className: ''
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
// effectiveDate: '' //指定生效日期
},
//被保人信息
@@ -735,7 +817,9 @@ export default {
mobile: '', //移动电话
email: '',//电子邮箱
schoolName: '',
className: ''
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
},
selectUser: '',
areaList: areaList,
@@ -767,7 +851,9 @@ export default {
},
occupationalType: DataDictionary.queryOccupationalByType[0].id,
isInsuredCertiexpiredate:true, //被保人有效止期是否显示
trialDTOS:[] //产品详情信息
trialDTOS:[], //产品详情信息
manageComCode: '',
isNewPeopleFlagTipshow: false,
}
},
created() {
@@ -905,7 +991,9 @@ export default {
}
this.userInfo.homeName = getAreaName([{ code: 450000 }, { code: 450100 }, { code: 450101 }]) //家庭地址
},
mounted() {
async mounted() {
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
// 2516--除万福卡投保人、被保险人年收入默认为0允许修改
if (this.itemProductDTOS.productCode != 'GFRS_M0032') {
this.userInfo.averageAnnualIncome = '0'
@@ -1327,7 +1415,12 @@ export default {
} else {
this.columns = DataDictionary.idType
}
} else if(pickerType == 'appntNpType') {
this.columns = DataDictionary.npType
} else if(pickerType == 'insuredNpType') {
this.columns = DataDictionary.npType
}
},
//确认选择字段
onConfirm(value) {
@@ -1425,6 +1518,10 @@ export default {
this.isInsuredCertiexpiredate = true
}
this.insuredInfo.idType = value.id
} else if (this.pickerType === 'appntNpType') {
this.userInfo.npType = value.id
} else if (this.pickerType === 'insuredNpType') {
this.insuredInfo.npType = value.id
}
},
//证件起始截止日期
@@ -1664,9 +1761,13 @@ export default {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age <= 45
this.userInfo.isNewPeopleFlag = data.isNewPeopleFlag //新市民身份
this.userInfo.npType = data.npType //新市民类型
this.getRelatedData(this.userInfo.idNo, '1')
} else if (this.selectUser == '1') {
let { customerName, customerSex } = data
let { customerName, customerSex, isNewPeopleFlag, npType } = data
this.insuredInfo.isNewPeopleFlag = isNewPeopleFlag //新市民身份
this.insuredInfo.npType = npType //新市民类型
this.insuredInfo.name = customerName //用户名
this.insuredInfo.sex = customerSex ? customerSex.toString() : '0' //性别
this.insuredInfo.birthday = data.birthday //出生日期
@@ -1689,7 +1790,8 @@ export default {
this.insuredInfo.certiexpiredate = '9999-12-31'
this.effectiveDateTypeAbleInsured = true
this.isInsuredCertiexpiredate = false
}else{
}
else{
this.isInsuredCertiexpiredate = true
// 因为学平险产品 少儿卡单 被保人证件类型只有身份证和户口本 所以回显被保人信息时 如果不是身份证和户口本 就隐藏被保人证件类型
if ((this.itemProductDTOS.productCode == 'GFRS_M0048' || this.itemProductDTOS.productCode == 'GFRS_M0049' || this.itemProductDTOS.productCode == 'GFRS_M0050'
@@ -1732,6 +1834,7 @@ export default {
this.insuredInfo.lifeGrade = data.lifeGrade
this.insuredInfo.occupationType = data.lifeGrade
this.insuredInfo.healthGrade = data.healthGrade
//除万福卡投保人被保险人年收入填写项去掉默认为0卡产品不满足反洗钱识别线
this.insuredInfo.averageAnnualIncome = this.itemProductDTOS.productCode == 'GFRS_M0032' ? data.averageYearlyIncome : '0' //平均年收入
//2516--三个学平险--被保险人婚姻默认未婚允许修改
@@ -1760,9 +1863,12 @@ export default {
// console.log(data, val)
},
nextStep() {
// console.log(this.userInfo.idType)
// console.log(this.userInfo.salarySource)
// console.log(this.userInfo.otherSalarySource)
if (this.manageComCode == '45' && (this.userInfo.isNewPeopleFlag == '' || this.userInfo.isNewPeopleFlag == null || this.userInfo.isNewPeopleFlag == undefined)) {
return this.$toast('投保人新市民身份不能为空')
}
if(this.manageComCode == '45' && this.userInfo.isNewPeopleFlag != '0' && !this.userInfo.npType) {
return this.$toast('投保人新市民类型不能为空')
}
//表单校验, 成功跳转
if (this.userInfo.relationToInsured == 1) {
Object.assign(this.insuredInfo, this.userInfo)
@@ -1807,6 +1913,12 @@ export default {
if (this.userInfo.relationToInsured == 2 && this.userInfo.sex == this.insuredInfo.sex) {
return this.$toast('哦~配偶性别不能相同的哟~')
}
if (this.manageComCode == '45' && (this.insuredInfo.isNewPeopleFlag == '' || this.insuredInfo.isNewPeopleFlag == null || this.insuredInfo.isNewPeopleFlag == undefined)) {
return this.$toast('被保人新市民身份不能为空')
}
if (this.manageComCode == '45' && this.insuredInfo.isNewPeopleFlag != '0' && !this.insuredInfo.npType) {
return this.$toast('被保人新市民类型不能为空')
}
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
console.log('计算年龄', age)
@@ -1891,7 +2003,8 @@ export default {
}
}
//如果证件类型是户口本
}else if(this.userInfo.idType == '2'){
}
else if(this.userInfo.idType == '2'){
if (this.userInfo.nativeplace != '1') {
return this.$toast('证件类型”为“身份证,国籍必须为中国哦')
}
@@ -2019,7 +2132,8 @@ export default {
return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年')
}
}
}else if (this.insuredInfo.idType == '2'){
}
else if (this.insuredInfo.idType == '2'){
if (this.insuredInfo.nativeplace != '1') {
return this.$toast('证件类型”为“身份证,国籍必须为中国哦')
}
@@ -2069,7 +2183,8 @@ export default {
// else if (this.insuredInfo.idNo.length != 18) {
// return this.$toast('户口本的证件号码长度应等于18位')
// }
}else if (this.insuredInfo.idType == '3'){
}
else if (this.insuredInfo.idType == '3'){
if (insuredAge >= 2) {
return this.$toast('客户年龄在2周岁及以上不能使用出生证作为有效证件')
}
@@ -2092,7 +2207,8 @@ export default {
if (insuredAge < 0) {
return this.$toast('被保险人的年龄需要大于28天')
}
} else if (this.itemProductDTOS.productCode === 'GFRS_M0041') {
}
else if (this.itemProductDTOS.productCode === 'GFRS_M0041') {
console.log(this.proSchemeCode)
if (this.proSchemeCode == '00000227') {
if (insuredAge < 18) {
@@ -2412,6 +2528,9 @@ export default {
return
}
params.orderDTO.insuredDTOs[0].riskDTOLst = riskDTOLst
if(params.orderDTO.insuredDTOs[0].occupationCode == '2099907') {
params.orderDTO.insuredDTOs[0].occupationType = '1'
}
let resultData = await saveOrUpdateCard(params)
if (resultData.result == 0) {
@@ -2595,7 +2714,9 @@ export default {
homeAddress: '', //详细地址
mobile: '', //移动电话
email: '', //电子邮箱
effectiveDateType: false //是否长期
effectiveDateType: false, //是否长期
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
}
// 设置选中‘同投保人’的勾选项
this.withRootUser.value = true

View File

@@ -110,7 +110,8 @@
item.productCode == 'GFRS_M0051' ||
item.productCode == 'GFRS_M0054' ||
item.productCode == 'GFRS_M0073' ||
item.productCode == 'GFRS_M0057'
item.productCode == 'GFRS_M0057' ||
item.productCode == 'GFRS_M0086'
)
"
class="fs14 w100"
@@ -128,7 +129,8 @@
item.productCode == 'GFRS_M0051' ||
item.productCode == 'GFRS_M0054' ||
item.productCode == 'GFRS_M0073' ||
item.productCode == 'GFRS_M0057'
item.productCode == 'GFRS_M0057' ||
item.productCode == 'GFRS_M0086'
)
"
v-model="dutyItem.defaultDutyAmt"
@@ -136,7 +138,7 @@
:max="dutyItem.maxDutyAmt"
:show-plus="false"
:show-minus="false"
:disabled="item.productCode == 'GFRS_A0012' || (item.productCode == 'GFRS_M0077' && !dutyItem.necess) || (item.productCode == 'GFRS_M0077' && dutyItem.duty == '311507')"
:disabled="item.productCode == 'GFRS_M0088' || item.productCode == 'GFRS_A0012' || (item.productCode == 'GFRS_M0077' && !dutyItem.necess) || (item.productCode == 'GFRS_M0077' && dutyItem.duty == '311507')"
class="ml10 mr10"
@focus="focusStep"
@blur="blurStep(dutyItem, index,item.productCode)"
@@ -798,7 +800,6 @@
}
})
}
console.log(item,'123231321321')
let payEndYearVal
//初始化时交费期间为一次性交清时,在就是中介渠道, 附加险GFRS_A0007GFRS_A0009GFRS_A0010去掉后附加险list就为空--隐藏icon
item.calFactorLst.map((i) => {
@@ -871,7 +872,6 @@
//初始化数据试算
this.getTrial()
})
console.log(this.trialList, '')
// 判断是否 含有 后台配置js验证函数
if (localStorage.ruleExpression) {
let ruleExpression = JSON.parse(localStorage.ruleExpression)
@@ -918,7 +918,7 @@
let detailPromise = this.isFrom === 'proposal' ? localStorage.proposalMedical : await getOrderDetail({ orderNo })
this.chooseProducts.map((item) => {
if (
!(item.mainRiskCode === 'GFRS_M0016' ||item.mainRiskCode === 'GFRS_M0070' || item.productCode === 'GFRS_A0004' || item.productCode === 'GFRS_A0008' || item.productCode === 'GFRS_A0005')
!(item.mainRiskCode === 'GFRS_M0016' ||item.mainRiskCode === 'GFRS_M0070' || item.productCode === 'GFRS_A0004' || item.productCode === 'GFRS_A0008' || item.productCode === 'GFRS_A0005' || item.productCode === 'GFRS_M0088')
) {
//其他产品删掉两个字段
let calFactorLst = item.calFactorLst
@@ -1053,6 +1053,34 @@
// let productCode = this.chooseProducts[this.productIndex].productCode
let currentFactor = this.chooseProducts[this.productIndex].calFactorLst
let currentEle = currentFactor[this.calFactorIndex]
console.log(currentEle.code)
if(currentEle.code == 'insuYear'){
if(value.value == '70') {
this.chooseProducts.forEach((item, index) => {
if (item.mainRiskCode == 'GFRS_M0086') {
item.calFactorLst.forEach((i) => {
if (i.code == "inputAmt") {
i.minPrem = 20
i.displayAmount = 20
i.defaultValue = 20
}
})
}
})
} else if(value.value == '106') {
this.chooseProducts.forEach((item, index) => {
if (item.mainRiskCode == 'GFRS_M0086') {
item.calFactorLst.forEach((i) => {
if (i.code == "inputAmt") {
i.minPrem = 10
i.displayAmount = 10
i.defaultValue = 10
}
})
}
})
}
}
// let sex = this.saleInsuredPersonInfo.sex //0男 1女
// //特殊设置:如果需要填写的保费/保额校验规则跟缴费期间挂钩当改变缴费期间时将输入框的值恢复默认值1
@@ -1215,6 +1243,30 @@
})
}
}
if (validateRiskCode === 'GFRS_M0088'){
if(dutyItem.duty == '411200' || dutyItem.duty == '411206' || dutyItem.duty == '411207'){
this.chooseProducts[productIndex].calFactorLst[calFactorIndex].rules.forEach((i) => {
if(i.duty == '411200' || i.duty == '411206' || i.duty == '411207'){
i.necess = dutyItem.necess
} else {
if(dutyItem.necess){
i.necess = !dutyItem.necess
}
}
})
}
if(dutyItem.duty == '411200_GBC' || dutyItem.duty == '411206_GBC' || dutyItem.duty == '411207_GBC'){
this.chooseProducts[productIndex].calFactorLst[calFactorIndex].rules.forEach((i) => {
if(i.duty == '411200_GBC' || i.duty == '411206_GBC' || i.duty == '411207_GBC'){
i.necess = dutyItem.necess
} else {
if(dutyItem.necess){
i.necess = !dutyItem.necess
}
}
})
}
}
this.valiAndSend(dutyItem, productIndex)
},
valiAndSend(dutyItem, productIndex) {
@@ -1289,7 +1341,6 @@
const rule = dutdutyGFRS_M0070RulesyRules[duty]
const mutiple = rule.mutiple || DUTY_DEFAULT_MIN
const min = rule.min || DUTY_DEFAULT_MIN
console.log(rule.min,'rule.min')
if (!value || value < min || value % mutiple !== 0) {
this.$toast(rule.msg)
this.nextStepFlag = true
@@ -1565,7 +1616,6 @@
},
trialBeforeRule() {
let that = this
console.log('走试算前规则')
// 针对于国富人寿附加两全保险附加险(GFRS_A0011),缴费期间期间要等于主险的缴费期间
let mainRiskInfo = this.getMainRiskInfo()
this.chooseProducts.forEach((item) => {
@@ -2492,10 +2542,6 @@
}
else if (productCode == 'GFRS_M0035' || productCode == 'GFRS_M0044'
|| productCode == 'GFRS_M0056' || productCode == 'GFRS_M0057' || productCode == 'GFRS_M0060') {
console.log('defalutValue==', defalutValue)
console.log("currentEle['amt']==", currentEle['amt'])
console.log('riskFactor.rules', riskFactor.rules)
console.log('this.saleInsuredPersonInfo.insuredAge ', this.saleInsuredPersonInfo.insuredAge)
//被保险人年龄如果在50-65区间
if (this.saleInsuredPersonInfo.insuredAge >= 56 && this.saleInsuredPersonInfo.insuredAge <= 60) {
//使用rules规则里的第二条控制保额份数
@@ -2769,9 +2815,6 @@
}
}
}
// let currentEle = this.chooseProducts[this.productIndex].calFactorLst[this.calFactorIndex]
// defalutValue = value
console.log('进来几次')
this.mult = Math.ceil(Number(defalutValue) / Number(riskFactor.defaultValue))
},
//下一步
@@ -2875,7 +2918,8 @@
this.trialList[index].productCode == 'GFRS_M0054' ||
this.trialList[index].productCode == 'GFRS_M0073' ||
this.trialList[index].productCode == 'GFRS_M0077' ||
this.trialList[index].productCode == 'GFRS_M0057'
this.trialList[index].productCode == 'GFRS_M0057' ||
this.trialList[index].productCode == 'GFRS_M0086'
) {
riskItem['dutyLst'] = this.trialInfos[index].duty
}
@@ -2925,8 +2969,6 @@
}
}
}
// console.log(riskItem)
riskItem = Object.assign(riskItem, this.trialInfos[index])
riskDTOLst.push(riskItem)
}

View File

@@ -52,7 +52,7 @@
<script>
import { Cell, CellGroup, Tag, Radio, RadioGroup,Tab,Tabs} from 'vant'
import { mainRiskList,mainRiskListProposal,calculatePremium,getActProductList } from '@/api/ebiz/common/common'
import { getOrderDetail } from '@/api/ebiz/sale/sale'
import { getOrderDetail, riskLevelCheck } from '@/api/ebiz/sale/sale'
import { getDetail } from '@/api/ebiz/proposal/proposal.js'
import riskRules from './risk-rules'
export default {
@@ -70,7 +70,7 @@ export default {
return {
recommendType: '', // 渠道控制
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
active: 2,
active: 'normal',
specilFlag: '0',
flag: true,
list: [],
@@ -105,8 +105,6 @@ export default {
} else if (res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0024' || res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0040') {
this.specilFlag = '1'
}
// 处理活动产品
// this.activeFlag = res.orderDTO.orderInfoDTO.activeType
//isActivityCode 有值代表是活动,无值代表是普通产品
this.isActivityCode = res.orderDTO.orderInfoDTO.activityCode
// recommendType 03 银保渠道
@@ -145,26 +143,6 @@ export default {
}
},
methods: {
// checkItemShow(item) {
// if (this.activeFlag != 'KMH' && this.activeFlag != 'SQY') {
// return true
// }
// let showFlag = false
// if (item.activeLst && item.activeLst.length > 0) {
// item.activeLst.forEach(subItem => {
// if (this.activeFlag && this.activeFlag == 'KMH') {
// if (subItem == 'KMH') {
// showFlag = true;
// }
// }else if (this.activeFlag && this.activeFlag == 'SQY') {
// if (subItem == 'SQY') {
// showFlag = true;
// }
// }
// })
// }
// return showFlag
// },
onChangeMainList(name){
if (name == 'cross') {
this.isCrossChannel = '1';
@@ -224,24 +202,25 @@ export default {
}
if (this.list.length == 0) {
this.$dialog({ message: '暂无可选产品!' }).then(() => {
let thismyurl = ''
if (this.$route.query.orderNo) {
thismyurl = '?orderNo=' + this.$route.query.orderNo
} else if (this.$route.query.proposalOrderNo) {
thismyurl = '?proposalOrderNo=' + this.$route.query.proposalOrderNo
}
this.$jump({
flag: 'goBack',
// extra: {
// url: location.origin + '/#/common/selectedProduct'
// },
routerInfo: {
type: 1,
path: '/common/selectedProduct' + thismyurl
}
})
})
this.$route('暂无可选产品')
// this.$dialog({ message: '暂无可选产品!' }).then(() => {
// let thismyurl = ''
// if (this.$route.query.orderNo) {
// thismyurl = '?orderNo=' + this.$route.query.orderNo
// } else if (this.$route.query.proposalOrderNo) {
// thismyurl = '?proposalOrderNo=' + this.$route.query.proposalOrderNo
// }
// this.$jump({
// flag: 'goBack',
// // extra: {
// // url: location.origin + '/#/common/selectedProduct'
// // },
// routerInfo: {
// type: 1,
// path: '/common/selectedProduct' + thismyurl
// }
// })
// })
}
}
},
@@ -300,40 +279,63 @@ export default {
}
if (this.list.length == 0) {
this.$dialog({ message: '暂无可选产品!' }).then(() => {
let thismyurl = ''
if (this.$route.query.orderNo) {
thismyurl = '?orderNo=' + this.$route.query.orderNo
} else if (this.$route.query.proposalOrderNo) {
thismyurl = '?proposalOrderNo=' + this.$route.query.proposalOrderNo
}
this.$jump({
flag: 'goBack',
// extra: {
// url: location.origin + '/#/common/selectedProduct'
// },
routerInfo: {
type: 1,
path: '/common/selectedProduct' + thismyurl
}
})
})
this.$route('暂无可选产品')
// this.$dialog({ message: '暂无可选产品!' }).then(() => {
// let thismyurl = ''
// if (this.$route.query.orderNo) {
// thismyurl = '?orderNo=' + this.$route.query.orderNo
// } else if (this.$route.query.proposalOrderNo) {
// thismyurl = '?proposalOrderNo=' + this.$route.query.proposalOrderNo
// }
// this.$jump({
// flag: 'goBack',
// // extra: {
// // url: location.origin + '/#/common/selectedProduct'
// // },
// routerInfo: {
// type: 1,
// path: '/common/selectedProduct' + thismyurl
// }
// })
// })
}
}
},
//下一步
nextStep() {
console.log(this.result)
if (!this.result) {
this.$toast('请选择产品')
return
}
//置空产品
localStorage.chooseProducts = ''
//添加主险
this.addMainRisk()
if(localStorage.getItem('isFrom') == 'sale') {
let params = {
productCode: this.result.riskProductCode,
orderNo: this.$route.query.orderNo,
}
if(this.recommendType == '03' && !this.isActivityCode) {
params.productChannl = this.isCrossChannel
}
riskLevelCheck(params).then(res => {
if(res.result == 0) {
if(res.saLevelMatch == "Y"){
//置空产品
localStorage.chooseProducts = ''
//添加主险
this.addMainRisk()
} else {
this.$toast(res.resultMessage)
}
} else {
this.$toast(res.resultMessage)
}
})
} else {
//置空产品
localStorage.chooseProducts = ''
//添加主险
this.addMainRisk()
}
},
//储存主险
async addMainRisk() {

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

@@ -1162,6 +1162,9 @@ export default {
break
}
}
if(!path) {
path = 'signDocuments'
}
}
}
}
@@ -1179,6 +1182,9 @@ export default {
break
}
}
if(!path) {
path = 'signDocuments'
}
}
}
}
@@ -1193,9 +1199,12 @@ export default {
break
}
}
if(!path) {
path = 'signDocuments'
}
}
}
console.log('12321321'+path)
if (path){
that.$jump({
flag: 'h5',
@@ -1866,12 +1875,12 @@ export default {
line-height: 30px;
}
/deep/ .fs16{
font-size: 16px;
font-size: 16px!important;
}
/deep/ .fs20{
font-size: 20px;
font-size: 16px;
.van-cell{
font-size: 20px;
font-size: 16px;
}
}
</style>

View File

@@ -31,7 +31,8 @@
data-vv-name="单选"
v-for="(items, indexs) in item.options" :key="indexs"
>
<van-radio :name="items.option" :label="items.option" class="mr150 ml70">{{items.item}} ({{items.score}})</van-radio>
<!-- <van-radio :name="items.option" :label="items.option" class="mr150 ml70">{{items.item}} ({{items.score}})</van-radio>-->
<van-radio :name="items.option" :label="items.option" class="mr150 ml70">{{items.item}}</van-radio>
</van-radio-group>
<div style=" font-size:13px" v-if="item.remarks" v-html="item.remarks">
</div>
@@ -43,11 +44,23 @@
<div class="bottom-btn bg-white">
<van-button type="danger" size="large" @click="next" :disabled="isDisabled" v-no-more-click="1000">提交问卷</van-button>
</div>
<van-dialog v-model="thisdialogshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">提示</p>
</div>
<div style="padding: 20px 30px 20px;font-size: 14px;">
<div style="line-height: 20px;">根据风险测评结果您不适合投保万能型或分红型保险产品建议您停止投保</div>
</div>
<div style="text-align: center;display: flex;align-items: end;">
<van-button type="danger" style="font-size: 12px;background: #fff;color: #e9332e;line-height: 15px;width: 50%;padding: 0px 2px;" @click="thisdialogfunc1">已知晓不适宜继续投保但本人仍申请继续投保</van-button>
<van-button type="danger" style="font-size: 14px;width: 50%;" @click="thisdialogfunc2">停止投保</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
import { Collapse, CollapseItem, RadioGroup, Radio, Field, CellGroup, Icon } from 'vant'
import { saveInformation, getOrderDetail } from '@/api/ebiz/sale/sale'
import { saveInformation, getOrderDetail, changeOrderStatus } from '@/api/ebiz/sale/sale'
import IndexBar from '@/components/ebiz/sale/IndexBar'
export default {
data() {
@@ -56,6 +69,8 @@ export default {
],
isDisabled:true,
salePageFlag: '6',
thisdialogshow:false,
productType:'',
}
},
components: {
@@ -72,6 +87,7 @@ created(){
getOrderDetail({ orderNo: this.$route.query.orderNo }).then(res => {
if (res.result == 0) {
this.question =JSON.parse( res.orderDTO.riskEvaluationDTO.quentionAnswer)
this.productType = res.orderDTO.orderInfoDTO.productType
this.isDisabledType()
} else {
this.$toast(res.resultMessage)
@@ -100,6 +116,38 @@ mounted(){
}
},
methods:{
thisdialogfunc1(){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerSuccess?orderNo=' + this.$route.query.orderNo,
},
routerInfo: {
path: '/sale/answerSuccess?orderNo=' + this.$route.query.orderNo
}
})
},
thisdialogfunc2(){
let params = {
orderNO:this.$route.query.orderNo
}
changeOrderStatus(params).then(res=>{
if(res.result == 0){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list',
},
routerInfo: {
path: '/sale/list'
}
})
} else {
this.$toast(res.resultMessage)
}
})
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
return this.$dialog
@@ -159,21 +207,42 @@ methods:{
}
saveInformation(data).then(res => {
if (res.result == '0') {
let that = this
localStorage.removeItem('changeCard')
if (!this.$route.query.salePageFlag) {
//不是从导航栏进入
localStorage.salePageFlag = '7'
}
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerSuccess?orderNo=' + this.$route.query.orderNo,
},
routerInfo: {
path: '/sale/answerSuccess?orderNo=' + this.$route.query.orderNo
}
})
if(this.productType == '1' || this.productType == '2') {
getOrderDetail({ orderNo: this.$route.query.orderNo }).then(res => {
if (res.result == 0) {
if(res.orderDTO.riskEvaluationDTO.totalScore >= 60 && res.orderDTO.riskEvaluationDTO.totalScore <= 85){
this.thisdialogshow = true
} else {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerSuccess?orderNo=' + this.$route.query.orderNo,
},
routerInfo: {
path: '/sale/answerSuccess?orderNo=' + this.$route.query.orderNo
}
})
}
} else {
this.$toast(res.resultMessage)
}
})
} else {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerSuccess?orderNo=' + this.$route.query.orderNo,
},
routerInfo: {
path: '/sale/answerSuccess?orderNo=' + this.$route.query.orderNo
}
})
}
} else {
this.$toast(res.resultMessage)
}

View File

@@ -27,9 +27,9 @@
</van-button>
</div>
<div class='bg-white bottom-btn' v-if="current != '1'">
<van-button style="width: 30%;font-size: 20px;" plain type='danger' size='large' v-no-more-click='1000' @click="prevStep">上一步
<van-button style="width: 30%;font-size: 16px;" plain type='danger' size='large' v-no-more-click='1000' @click="prevStep">上一步
</van-button>
<van-button style="width: 70%;font-size: 20px;" type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>
<van-button style="width: 70%;font-size: 16px;" type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>
我已阅读确认并理解继续
</van-button>
</div>
@@ -417,7 +417,7 @@
color: red;
}
/deep/ .fs20{
font-size: 20px;
font-size: 16px;
.van-button__text{
padding: 10px 20px;
}

View File

@@ -12,7 +12,7 @@
代理人{{signName}}
</span>
</div>
<div style="margin-top: 15px;font-weight: bold;line-height: 32px;font-size: 20px;" class="fs20">
<div style="margin-top: 15px;font-weight: bold;line-height: 32px;font-size: 16px;" class="fs20">
<span v-if="signVal == '3'">
1.接下来您作为代理人将进行投保文件的签字请在签字前确保您已仔细阅读投保文件并了解投保文件的内容和含义确定投保单各项信息准确无误签字完成并成功提交说明您正式向我司提交投保申请
</span>
@@ -27,21 +27,21 @@
</span>
</div>
<div style="border-bottom: 1px dashed #eee;padding-bottom: 15px;margin-top: 15px;">
<p style="font-size: 20px;font-weight: bold;">2.您将为以下文件进行统一签名</p>
<p style="font-size: 16px;font-weight: bold;">2.您将为以下文件进行统一签名</p>
<div v-for="item in fileList" style="margin-top: 15px;display: flex;justify-content: space-between;">
<span style="font-size: 20px;color: red;opacity: 0.7;width: 60%;display: inline-block;">{{item.name}}</span>
<span style="font-size: 16px;color: red;opacity: 0.7;width: 60%;display: inline-block;">{{item.name}}</span>
<span v-if="signstatus == '1'" style="display: flex;align-items: center;display: inline-block;width: 40%;">
<img :src="src" style="margin-left: 15px;width: 16px;"/>
<span style="font-size: 20px;color: #03ceaf;margin-left: 10px;">签署完成</span>
<span style="font-size: 16px;color: #03ceaf;margin-left: 10px;">签署完成</span>
</span>
</div>
</div>
<div style="margin-top: 15px;display: flex;align-items: center;" class="fs20">
<span v-if="signVal == '3'" style="font-size: 20px;font-weight: bold;">代理人签名</span>
<span v-if="signVal == '0' || signVal == '2'" style="font-size: 20px;font-weight: bold;">投保人签名</span>
<span v-if="signVal == '1' && insuredAge >= 18" style="font-size: 20px;font-weight: bold;">被保险人签名</span>
<span v-if="signVal == '1' && insuredAge < 18" style="font-size: 20px;font-weight: bold;">被保险人/监护人签名</span>
<van-button type="danger" size="small" round style="margin-left: 20px;height: 40px;font-size: 16px;" @click="gosign" class="fs20">
<span v-if="signVal == '3'" style="font-size: 16px;font-weight: bold;">代理人签名</span>
<span v-if="signVal == '0' || signVal == '2'" style="font-size: 16px;font-weight: bold;">投保人签名</span>
<span v-if="signVal == '1' && insuredAge >= 18" style="font-size: 16px;font-weight: bold;">被保险人签名</span>
<span v-if="signVal == '1' && insuredAge < 18" style="font-size: 16px;font-weight: bold;">被保险人/监护人签名</span>
<van-button type="danger" size="small" round style="margin-left: 20px;height: 32px;font-size: 16px;" @click="gosign" class="fs20">
{{signstatus ? '重新签名' : '签名'}}
</van-button>
</div>
@@ -49,7 +49,7 @@
<img v-if="signstatus" :src="signImgUrl" style="height: 34px;margin-left: 20px;width: auto;"/>
</div>
<div class='bg-white bottom-btn'>
<van-button :disabled="nextDisabled" type='danger' size='normal' style="font-size: 20px;" block v-no-more-click='1000' @click="gonext">
<van-button :disabled="nextDisabled" type='danger' size='normal' style="font-size: 16px;" block v-no-more-click='1000' @click="gonext">
完成阅读并签署
</van-button>
</div>
@@ -59,7 +59,7 @@
<p style="color: #E9332E;">监护人姓名</p>
</div>
<div class="guardianContent" style="padding: 20px 30px 30px;font-size: 14px;">
<van-field v-model="guardianName" label="" name="体重" placeholder="请输入"/>
<van-field v-model="guardianName" label="" name="监护人姓名" placeholder="请输入"/>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="gosign">确定</van-button>
@@ -276,9 +276,9 @@
}
}
.fs20{
font-size: 20px;
font-size: 16px;
.van-button__text{
padding: 10px 20px;
padding: 8px 16px;
}
}
</style>

View File

@@ -8,6 +8,7 @@
*/
const autoprefixer = require('autoprefixer')
const pxtoviewport = require('postcss-px-to-viewport')
const TerserPlugin = require("terser-webpack-plugin");
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',
@@ -41,5 +42,19 @@ module.exports = {
},
devServer: {
port: 8082
}
},
configureWebpack: {
optimization: {
minimizer: [
new TerserPlugin({
terserOptions: {
output: {
comments: false
}
},
extractComments: false
})
]
}
},
}