Compare commits

..

2 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
c19227e72c 去掉package-lock.json文件 2024-01-24 15:50:48 +08:00
liu.xiaofeng@ebiz-digits.com
e56058ff76 配置文件修改 2024-01-24 14:20:07 +08:00
44 changed files with 3515 additions and 23509 deletions

17698
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -88,40 +88,4 @@ 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
})
}
// GBC数据看板
export function dataShow(data) {
return request({
url: getUrl('/sale/gbc/data/show', 1),
method: 'post',
data
})
}
}

View File

@@ -3,7 +3,7 @@
* @Date: 2021-03-26 10:38:37
* @LastEditTime: 2021-04-02 16:10:30
* @LastEditors: PangXingYue
* @Description:
* @Description:
* @FilePath: \ebiz-h5\src\api\ebiz\cardList\cardList.js
*/
// 卡单接口
@@ -95,7 +95,7 @@ export function getPayTemp(data) {
//
export function getShareParam(data) {
return request({
url: getUrl('/customer/account/getShareParam', 1),
url: getUrl('/customer/account/getShareParam', 1),
method: 'post',
data
})
@@ -168,12 +168,4 @@ export function deleteGroupCardByInsured(data) {
method: 'post',
data
})
}
// 不让跨天支付 单新契约出单跨天支付流程优化
export function cardContIsPay(data) {
return request({
url: getUrl('/sale/card/contIsPay', 1),
method: 'post',
data
})
}
}

View File

@@ -117,15 +117,4 @@ export function funcPermCheck(data) {
method: 'post',
data
})
}
/** add by zhangweiwei FCRS-764 国富无忧两全保险B款新增主险职业校验逻辑 start at 20240807 */
// 校验职业是否符合产品要求
export function occupationCodeCheck(data) {
return request({
url: getUrl('/sale/product/occupationCodeCheck', 1),
method: 'post',
data
})
}
/** add by zhangweiwei FCRS-764 国富无忧两全保险B款新增主险职业校验逻辑 end at 20240807 */
}

View File

@@ -335,6 +335,17 @@ export function getBankCardSignState(data) {
})
}
// 入司人自互保件校验
export function CommitmentSelfCheck(data) {
return request1({
url: getUrl('/sale/commitment/CommitmentSelfCheck', 1),
method: 'post',
data
})
}
// 获取柳州分红万能投连型产品编码集合
export function getUniversalCodeLst(data) {
return request({
@@ -379,18 +390,3 @@ 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.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 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){
startDate = thisyear + '-02-29'
return startDate = thisyear + '-02-29'
} else {
startDate = thisyear + '-02-28'
return startDate = thisyear + '-02-28'
}
}else{
startDate = String(Number(endDate.slice(0, 4)) - 5) + endDate.slice(4, 11)
return 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){
startDate = thisyear + '-02-29'
return startDate = thisyear + '-02-29'
} else {
startDate = thisyear + '-02-28'
return startDate = thisyear + '-02-28'
}
} else {
startDate
return 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){
startDate = thisyear + '-02-29'
return startDate = thisyear + '-02-29'
} else {
startDate = thisyear + '-02-28'
return startDate = thisyear + '-02-28'
}
} else {
startDate
return startDate
}
}
}
@@ -74,12 +74,8 @@ export default {
* @Date: 2023/7/4
**/
else if (endage - 20 >= 46) {
startDate
return startDate
}
if(new Date(birthday).getTime() >= new Date(startDate).getTime() || new Date().getTime() < new Date(startDate).getTime()){
startDate = ''
}
return startDate
},
//计算身份证截止日期

View File

@@ -3891,62 +3891,6 @@ 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: "元"
},
{
code: "wuyouliangquanbkx",
label: "元"
},
{
code: "currentPaidUpAdditions_L",
label: "元"
},
{
code: "currentPaidUpAdditions_M",
label: "元"
},
{
code: "totalPaidUpAdditions_L",
label: "元"
},
{
code: "totalPaidUpAdditions_M",
label: "元"
},
{
code: "GFRS_M0094__cashValue",
label: "元"
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,
@@ -3976,7 +3920,7 @@ export default {
{ id: 'M', text: '母亲' }
],
// <!--------- 津贴申请专用 end --------->
imageInfoType: [
imageInfoType:[
{ id: '1', text: '居民身份证正面' },
{ id: '2', text: '居民身份证反面' },
{ id: '3', text: '银行卡正面' },

View File

@@ -62,8 +62,7 @@ let sale = [
'/sale/insure/selfToHuman',
'/sale/insure/orderPayStatusQuery',
'/sale/order/revokeOrder',
'/sale/product/getcompany',
'/sale/product/occupationCodeCheck'
'/sale/product/getcompany'
] //在线投保
let agentEnter = [
'/agent/enter/share',

View File

@@ -59,19 +59,16 @@ Validator.extend('email', {
Validator.extend('name', {
getMessage: () => '姓名长度为2-120个字符之内只能输入汉字或者英文',
validate: value => {
return value
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
// return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
}
});
//sale 投保名字 2个汉字4个字母
Validator.extend('salename', {
getMessage: () => '亲,请确认您录入的姓名是否正确哦~',
validate: value => {
return value
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
// return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value);
// return /^[\u4e00-\u9fa5·]{2,120}$|^[a-zA-Z\s]{4,120}$/.test(value);
return /^[\u4e00-\u9fa5·]{2,120}$|^[a-zA-Z\s]{4,120}$/.test(value);
}
});
// sale - 详细地址 - 详细地址须同时包含汉字和数字,

View File

@@ -1,6 +1,6 @@
<template>
<div class="search_box" ref="search_box">
<van-field :label="label" :class="{ 'van-cell--required': required }">
<van-field :label="label" required>
<template #input>
<input
style="width: 100%; border: none"
@@ -40,10 +40,6 @@ 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 = '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)
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)
switch (process.env.VUE_APP_FLAG) {
case 'dev':
apiDomain = 'https://iagentsales-test2.e-guofu.com:5200/api/' + apiVersion // 国富api ///api/v1

View File

@@ -3,8 +3,6 @@ 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 [
{
@@ -43,22 +41,4 @@ 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,20 +9,16 @@
</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: 2px;font-weight: bold;">{{infoContent.contSize}}</span>
<span></span>
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.contSize}}</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: 2px;font-weight: bold;">{{infoContent.members.length}}</span>
<span></span>
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.members.length}}</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: 2px;font-weight: bold;">{{infoContent.totalAmt}}</span>
<span>万元</span>
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalAmt}}</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: 2px;font-weight: bold;">{{infoContent.totalPrem}}</span>
<span>万元</span>
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalPrem}}</span>
</span>
</div>
</div>
@@ -135,22 +131,22 @@
</div>
<div style="padding: 10px 0px;">
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 25%;color: #666;">投保人</p>
<p style="width: 30%;color: #666;">投保人</p>
<p style="width: 25%;color: #000;">{{item.appntName}}</p>
<p style="width: 25%;color: #666;">被保险人</p>
<p style="width: 25%;color: #000;">{{item.insuredName}}</p>
<p style="width: 20%;color: #000;">{{item.insuredName}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 25%;color: #666;">保额()</p>
<p style="width: 25%;color: #000;">{{Number(item.amt).toFixed(2)}}</p>
<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.prem).toFixed(2)}}</p>
<p style="width: 20%;color: #000;">{{item.prem}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 25%;color: #666;">交费期间</p>
<p style="width: 30%;color: #666;">交费期间</p>
<p style="width: 25%;color: #000;">{{item.paymentPeriod}}</p>
<p style="width: 25%;color: #666;">保险期间</p>
<p style="width: 25%;color: #000;">{{item.insuredPeriod}}</p>
<p style="width: 20%;color: #000;">{{item.insuredPeriod}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">保险生效日期</p>
@@ -228,14 +224,12 @@ export default {
],
connectContent: "",
maxLength: 500,
activeAppntId:'',
}
},
created() {
},
mounted(){
this.activeAppntId = this.$route.query.appntId
this.getGBCappntDetail()
},
methods: {
@@ -243,7 +237,6 @@ 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
@@ -264,14 +257,12 @@ export default {
getGBCappntConnectSave(){
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.activeAppntId,
"appntId": this.$route.query.projectCode,
"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)
@@ -284,7 +275,7 @@ export default {
this.infoContent.appntType = value.id
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.activeAppntId,
"appntId": this.$route.query.appntId,
"appntType": this.infoContent.appntType
}
getGBCappntTypeSave(params).then(res=>{

View File

@@ -5,176 +5,128 @@
<van-tab title="数据看板" name="dataBoard"></van-tab>
<van-tab title="产品列表" name="productList"></van-tab>
</van-tabs>
<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 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>
<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>
<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>
<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 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="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="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 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 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;">项目名称{{calGbcProject.projectName}}</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期{{calGbcProject.endDate}}</p>
<div style="display: flex;justify-content: center;margin-top: 20px;">
<van-circle v-model="currentRate" color="#E9332E" :stroke-width="60" size="80px" :rate="interviewConversionRate" :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 calGbcProjectDataList" 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="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 v-if="(index + 1) % 3 != 0 || index < 2" style="width: 1px;background: #FFC9AF;height: 60%;"></div>-->
</div>
<!-- <div v-if="(index + 1) % 3 != 0 || index < 2" style="width: 1px;background: #FFC9AF;height: 60%;"></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 v-if="calGbcPersonList.length != 0" style="color: #a7a7a7;font-size: 14px;">数据截止日期{{calGbcPersonList[0].endDate}}</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 calGbcPersonList" 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.personName}}</span>
<span style="width: 22%;display: flex;justify-content: center;">{{item.roleName}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.sumStandardPrem}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.sumAcceptedPrem}}</span>
</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 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 v-if="calGbcTeamList.length != 0" style="color: #a7a7a7;font-size: 14px;">数据截止日期{{calGbcTeamList[0].endDate}}</p>
<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>
<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 style="padding: 0px 40px;">小组</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>重疾件均()</th>
</tr>
</thead>
<tbody>
<tr class="tbodyClass">
<td colspan="2">项目合并</td>
<td>{{calGbcTeamTotalDTO.sumInsuredPrem}}</td>
<td>{{calGbcTeamTotalDTO.guestNum}}</td>
<td>{{calGbcTeamTotalDTO.guestRate}}</td>
<td>{{calGbcTeamTotalDTO.guestSelectNum}}</td>
<td>{{calGbcTeamTotalDTO.guestSelectRate}}</td>
<td>{{calGbcTeamTotalDTO.sumStandardPrem}}</td>
<td>{{calGbcTeamTotalDTO.sumInsuredNum}}</td>
<td>{{calGbcTeamTotalDTO.sumInsuredCases}}</td>
<td>{{calGbcTeamTotalDTO.averagePrem}}</td>
<td>{{calGbcTeamTotalDTO.interviewConversionRate}}</td>
<td>{{calGbcTeamTotalDTO.acceptedRate}}</td>
<td>{{calGbcTeamTotalDTO.sumAcceptedPrem}}</td>
<td>{{calGbcTeamTotalDTO.sumAcceptedCases}}</td>
<td>{{calGbcTeamTotalDTO.sumMajorDiseaseCases}}</td>
<td>{{calGbcTeamTotalDTO.sumMajorDiseasePrem}}</td>
<td>{{calGbcTeamTotalDTO.averageMajorDiseasePrem}}</td>
</tr>
<tr v-for="(item,index) in calGbcTeamList" :key="index" class="tbodyClass">
<td class="teamNameTdClass">{{item.teamName}}</td>
<td>{{item.leaderName}}</td>
<td>{{item.sumInsuredPrem}}</td>
<td>{{item.guestNum}}</td>
<td>{{item.guestRate}}</td>
<td>{{item.guestSelectNum}}</td>
<td>{{item.guestSelectRate}}</td>
<td>{{item.sumStandardPrem}}</td>
<td>{{item.sumInsuredNum}}</td>
<td>{{item.sumInsuredCases}}</td>
<td>{{item.averagePrem}}</td>
<td>{{item.interviewConversionRate}}</td>
<td>{{item.acceptedRate}}</td>
<td>{{item.sumAcceptedPrem}}</td>
<td>{{item.sumAcceptedCases}}</td>
<td>{{item.sumMajorDiseaseCases}}</td>
<td>{{item.sumMajorDiseasePrem}}</td>
<td>{{item.averageMajorDiseasePrem}}</td>
</tr>
</tbody>
</table>
</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>
</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>
</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>
</div>
</div>
@@ -188,7 +140,7 @@
<script>
import { Tab, Tabs, Search, DropdownMenu, DropdownItem, Circle } from 'vant'
import { getList } from '@/api/ebiz/product/product.js'
import { getGBCappntlist, dataShow } from '@/api/GBC/GBC.js'
import { getGBCappntlist } from '@/api/GBC/GBC.js'
export default {
components: {
[Tab.name]: Tab,
@@ -220,20 +172,33 @@ export default {
customerList:[],
currentRate: 0,
colorList:['#E9332E','#CB9BFF','#54C6FA','#FF9B39','#60D64D','#4045F3','#FF59D9','#E8C0A2','#FCD338','#7584A2'],
calGbcProject: {},
interviewConversionRate: 0,
calGbcProjectDataList:[
{name:'累计受理保费(元)',value:'150,000.00', code: 'sumAcceptedPrem'},
{name:'累计标保(元)',value:'250,000.00', code: 'sumStandardPrem'},
{name:'件均保费(元)',value:'130,000.00', code: 'averagePrem'},
{name:'累计受理人数(人)',value:'10856', code: 'sumAcceptedNum'},
{name:'累计受理件数(件)',value:'356', code: 'sumAcceptedCases'},
{name:'累计承保人数(人)',value:'9569', code: 'sumInsuredNum'},
{name:'累计承保件数(件)',value:'262', code: 'sumInsuredCases'},
dataList1:[
{name:'累计受理保费(元)',value:'150,000.00'},
{name:'累计标保(元)',value:'250,000.00'},
{name:'件均保费(元)',value:'130,000.00'},
{name:'件均保费(元)',value:'10856'},
{name:'累计受理件数(件)',value:'356'},
{name:'累计承保人数(人)',value:'9569'},
{name:'累计承保件数(件)',value:'262'},
],
dataList2:[
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
],
dataList3:[
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
],
calGbcPersonList:[],
calGbcTeamList:[],
calGbcTeamTotalDTO: {},
dataList4:[],
}
},
@@ -241,37 +206,10 @@ export default {
},
mounted(){
document.title = this.$route.query.projectName
this.getGBCappntlist()
this.getProductList()
this.getDataShow()
},
methods: {
getDataShow() {
let params = {
projectCode: this.$route.query.projectCode
}
dataShow(params).then(res => {
this.calGbcPersonList = []
this.calGbcTeamList = []
if(res.result == '0') {
this.calGbcProject = res.content.calGbcProject
this.interviewConversionRate = Number(res.content.calGbcProject.interviewConversionRate)
for(let key in res.content.calGbcProject) {
this.calGbcProjectDataList.forEach(item => {
if(item.code == key) {
item.value = res.content.calGbcProject[key]
}
})
}
this.calGbcPersonList = res.content.calGbcPersonList
this.calGbcTeamList = res.content.calGbcTeamList
this.calGbcTeamTotalDTO = res.content.calGbcTeamTotalDTO
} else {
this.$toast(res.resultMessage)
}
})
},
dropdownMenuChange(value){
this.filterType = value
this.searchvalue = ''
@@ -364,6 +302,9 @@ 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)
}
@@ -435,28 +376,4 @@ 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;
}
}
.teamNameTdClass{
display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
//width: 105px;
}
</style>

View File

@@ -1,6 +1,6 @@
<template>
<div>
<van-search v-model="searchvalue" shape="round" background="#fff" @search="getGBCprojectlistByYear" placeholder="搜索项目名称"/>
<van-search v-model="searchvalue" shape="round" background="#fff" 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,8 +62,7 @@ export default {
this.$router.push({
path:'/GBC/projectDetail',
query:{
projectCode:data.projectCode,
projectName:data.projectName
projectCode:data.projectCode
},
})
},

View File

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

View File

@@ -683,8 +683,8 @@ let bankListJson = [
},
{
code: '50002',
name: '广西农村商业联合银行股份有限公司',
child: [{ code: '402611099974', name: '广西农村商业联合银行股份有限公司' }]
name: '广西壮族自治区农村信用社联合社',
child: [{ code: '402611099974', name: '广西壮族自治区农村信用社联合社' }]
},
{
code: '20041',

View File

@@ -1,22 +1,23 @@
<template>
<div class="insured-info-container pb50">
<div class='insured-info-container pb50'>
<!-- 基本信息 -->
<van-cell-group class="mt10">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">推荐人信息</p>
<van-field v-model="recommender.name" label="推荐人姓名" name="推荐人姓名" readonly />
<van-field :value="getAgentGrade(recommender.agentGrade)" label="推荐人职级" name="推荐人职级" readonly />
<van-cell-group class='mt10'>
<p style='border-bottom: 1px solid #ebedf0' class='fs15 fwb pl10 pv12'>推荐人信息</p>
<van-field v-model='recommender.name' label='推荐人姓名' name='推荐人姓名' readonly />
<van-field :value='getAgentGrade(recommender.agentGrade)' label='推荐人职级' name='推荐人职级' readonly />
<!-- <van-field v-model="recommender.applyNo" label="推荐人工号" name="推荐人工号" readonly /> -->
<van-field v-model="recommender.unitName" label="销售机构" name="销售机构" readonly />
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">个人信息</p>
<van-field v-model="userInfo.name" label="姓名" name="姓名" placeholder="请输入" v-validate="'required|name'" clearable />
<van-field v-model='recommender.unitName' label='销售机构' name='销售机构' readonly />
<p style='border-bottom: 1px solid #ebedf0' class='fs15 fwb pl10 pv12'>个人信息</p>
<van-field v-model='userInfo.name' label='姓名' name='姓名' placeholder='请输入' v-validate="'required|name'"
clearable />
<van-field
:value="userInfo.applGrade | idToText('applGrade')"
v-validate="'required'"
readonly
label="职级"
name="职级"
right-icon="arrow"
placeholder="请选择职级"
label='职级'
name='职级'
right-icon='arrow'
placeholder='请选择职级'
@click="toSelect('13')"
/>
@@ -24,57 +25,62 @@
:value="userInfo.idType | idToText('idType')"
v-validate="'required'"
readonly
label="证件类型"
name="证件类型"
right-icon="arrow"
placeholder="请选择证件类型"
label='证件类型'
name='证件类型'
right-icon='arrow'
placeholder='请选择证件类型'
@click="toSelect('1')"
/>
<van-field
v-model="userInfo.idNo"
placeholder="请输入证件号码"
label="证件号码"
name="证件号码"
v-model='userInfo.idNo'
placeholder='请输入证件号码'
label='证件号码'
name='证件号码'
v-validate="'required'"
maxlength="18"
maxlength='18'
clearable
@blur="getRelatedData(userInfo.idNo)"
@blur='getRelatedData(userInfo.idNo)'
/>
<select-radio :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :required="false" :value.sync="userInfo.sex"></select-radio>
<van-field v-model="userInfo.mobile" label="手机号" name="手机号" placeholder="请输入手机号" v-validate="'required|mobile'" maxlength="11" clearable />
<van-field v-model="userInfo.authCode" center clearable label name="短信验证码" placeholder="请输入短信验证码" v-validate="'required'" maxlength="6">
<van-button slot="button" size="small" type="danger" @click="getCode" :disabled="codeDisabled" v-no-more-click="1000">
<select-radio :radios='sexRadio' label='性别' name='性别' v-validate="'required'" :required='false'
:value.sync='userInfo.sex'></select-radio>
<van-field v-model='userInfo.mobile' label='手机号' name='手机号' placeholder='请输入手机号' v-validate="'required|mobile'"
maxlength='11' clearable />
<van-field v-model='userInfo.authCode' center clearable label name='短信验证码' placeholder='请输入短信验证码'
v-validate="'required'" maxlength='6'>
<van-button slot='button' size='small' type='danger' @click='getCode' :disabled='codeDisabled'
v-no-more-click='1000'>
{{ codeDisabled ? `${countDown}s后重新获取` : '获取验证码' }}
</van-button>
</van-field>
</van-cell-group>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">提交信息</van-button>
<van-button type='danger' class='bottom-btn' @click='nextStep' v-no-more-click='1000'>提交信息</van-button>
<!-- 字段选择 -->
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
<van-popup v-model='popupShow' position='bottom'>
<van-picker show-toolbar :columns='columns' @confirm='onConfirm' @cancel='popupShow = false' />
</van-popup>
</div>
</template>
<script>
import { Field, CellGroup, Checkbox, Popup, Picker, Area, RadioGroup, Radio, Dialog } from 'vant'
import SelectRadio from '@/components/ebiz/SelectRadio'
import FieldDatePicter from '@/components/ebiz/FieldDatePicter'
import OccupationPicker from '@/components/ebiz/occipation/OccupationPicker'
import CustomerPicker from '@/components/ebiz/customer/CustomerPicker'
import DataDictionary from '@/assets/js/utils/data-dictionary'
import areaList from '@/assets/js/utils/area'
import { getTokenForAgent, agentInfowxSubmit, getTokenForUserModel } from '@/api/ebiz/agentEenter/agentEenter'
import utilsAge from '@/assets/js/utils/age'
import getAreaName from '@/assets/js/utils/get-area-name'
import IdentityCardScan from '@/components/ebiz/sale/IdentityCardScan'
import idNoCheck from '@/assets/js/utils/idNoCheck'
import beforeDate from '@/assets/js/utils/getBeforeDate.js'
import { idToData } from '@/assets/js/utils/verification'
import { weixinShare } from '@/assets/js/utils/wxShare.js'
import axios from 'axios'
import index from '@/config/index'
import { getAuthCode } from '@/api/ebiz/sale/sale'
import { Field, CellGroup, Checkbox, Popup, Picker, Area, RadioGroup, Radio, Dialog } from 'vant';
import SelectRadio from '@/components/ebiz/SelectRadio';
import FieldDatePicter from '@/components/ebiz/FieldDatePicter';
import OccupationPicker from '@/components/ebiz/occipation/OccupationPicker';
import CustomerPicker from '@/components/ebiz/customer/CustomerPicker';
import DataDictionary from '@/assets/js/utils/data-dictionary';
import areaList from '@/assets/js/utils/area';
import { getTokenForAgent, agentInfowxSubmit, getTokenForUserModel } from '@/api/ebiz/agentEenter/agentEenter';
import utilsAge from '@/assets/js/utils/age';
import getAreaName from '@/assets/js/utils/get-area-name';
import IdentityCardScan from '@/components/ebiz/sale/IdentityCardScan';
import idNoCheck from '@/assets/js/utils/idNoCheck';
import beforeDate from '@/assets/js/utils/getBeforeDate.js';
import { idToData } from '@/assets/js/utils/verification';
import { weixinShare } from '@/assets/js/utils/wxShare.js';
import axios from 'axios';
import index from '@/config/index';
import { getAuthCode,CommitmentSelfCheck } from '@/api/ebiz/sale/sale';
export default {
name: 'insuredInfo',
@@ -124,7 +130,7 @@ export default {
sex: '', //投保人性别
idType: '1', //证件类型
idNo: '', //证件号码
mobile: '', //手机号
mobile: '',//手机号
applGrade: '' // 职级
},
areaList: areaList,
@@ -133,52 +139,51 @@ export default {
codeDisabled: false, //获取验证码按钮是否禁用
countDown: 60, //获取短信验证码倒计时
sessionId: '' //后台返回的 id
}
};
},
mounted() {
if (this.$route.query.content) {
window.localStorage.setItem('wxShareDesc', this.$route.query.content)
window.localStorage.setItem('wxShareDesc', this.$route.query.content);
}
weixinShare({
title: '国富人寿欢迎你!',
imgUrl: this.$assetsUrl + 'images/logo.png',
desc: localStorage.wxShareDesc,
link: location.origin + '/#/agentEenter/ShareInfo?token=' + localStorage.token
})
});
},
created() {
if (this.$route.query.token) {
// this.token = this.$route.query.token
window.localStorage.setItem('token', this.$route.query.token)
window.localStorage.setItem('token', this.$route.query.token);
} else {
this.$toast.fail('链接已失效,请联系代理人重新分享!')
this.$toast.fail('链接已失效,请联系代理人重新分享!');
}
this.getData()
this.getData();
},
methods: {
getData: function () {
let self = this
getData: function() {
let self = this;
self.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
});
getTokenForUserModel({
token: this.$CacheUtils.getLocItem('token')
}).then(function(response) {
self.$toast.clear();
console.log('response', response);
if (response.result == '0') {
self.recommender = response;
} else {
this.$toast.fail(response.resultMessage);
}
})
.then(function (response) {
self.$toast.clear()
console.log('response', response)
if (response.result == '0') {
self.recommender = response
} else {
this.$toast.fail(response.resultMessage)
}
})
.catch(function (error) {
.catch(function(error) {
// this.$toast.fail(error)
})
});
// var self = this
// //获取推荐人信息
// let data = {
@@ -198,59 +203,75 @@ export default {
// })
},
getAgentGrade(agentGrade) {
let result = ''
let result = '';
DataDictionary.agentGrade.map((item, index) => {
for (var key in item) {
if (key == agentGrade) {
result = item[agentGrade]
result = item[agentGrade];
}
}
})
return result
});
return result;
},
// 下一步
nextStep() {
var self = this
var self = this;
self.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.$validator.validate().then((valid) => {
});
this.$validator.validate().then(valid => {
if (true === valid) {
self.$toast.clear()
self.$toast.clear();
if (this.userInfo.idType == '1') {
//身份证
// 证件号码规则校验
if (!idNoCheck.isIdno(this.userInfo.idNo)) {
return this.$toast('请录入正确的身份证')
return this.$toast('请录入正确的身份证');
}
if (this.userInfo.idNo.length == '18') {
//18位身份证第17位是性别位, 奇男偶女
let sexSign = this.userInfo.idNo.substr(16, 1)
let sexSign = this.userInfo.idNo.substr(16, 1);
if ((parseInt(sexSign) % 2 == 0 && this.userInfo.sex != 1) || (parseInt(sexSign) % 2 != 0 && this.userInfo.sex != 0)) {
return this.$toast('性别录入与身份证不符')
return this.$toast('性别录入与身份证不符');
}
}
self.save()
self.save();
} else {
self.save()
self.save();
}
} else {
this.$toast(this.$validator.errors.all()[0])
this.$toast(this.$validator.errors.all()[0]);
}
})
});
},
async save() {
// else {
// console.log(resp.resultMessage);
// }
let str = '是否确认提交?手机号与证件信息会作为您入司的重要信息,一旦提交无法再次修改!'
async save() {
let checkStr ='';
let recmd=this.userInfo;
recmd.source='XG';
recmd.agentCode='A860101000001';
recmd.birthday='';
let checkData = {
token: this.$CacheUtils.getLocItem('token'),
recmdDTO:recmd
};
const resp = await CommitmentSelfCheck(checkData);
if (resp.result == '0' && resp.content.data.ruleList && resp.content.data.ruleList.length ) {
checkStr='<span style="color: red;width:auto; display: block;text-align: left">温馨提示:</span>'+resp.content.data.ruleList[0].retMsg
}
// else {
// console.log(resp.resultMessage);
// }
let str ='是否确认提交?手机号与证件信息会作为您入司的重要信息,一旦提交无法再次修改!<br/> '
+checkStr;
// let str ='是否确认提交?手机号与证件信息会作为您入司的重要信息,一旦提交无法再次修改!<br/> ' +
// '<span style="color: red;width:auto; display: block;text-align: left">温馨提示:</span>尊敬的代理人,您好!您在我司属于二次入司人员,原名下保单85668955426144655640已失效为更好的维护您的利益建议您先将保单复效后再继续提交入司申请否则上号后两年内不可投保新契约自保件保单复效办理详询4006946688';
Dialog.confirm({
title: '提示',
message: str,
messageAlign: 'left'
messageAlign:'left'
}).then(() => {
let data = {
// userModel: { //线上去掉
@@ -260,21 +281,21 @@ export default {
ebizEnterCustomerDto: this.userInfo,
smsCodeDTO: { smsId: this.sessionId, code: this.userInfo.authCode }
// ebizReferrerDto: this.recommender
}
console.log(data)
let that = this
};
console.log(data);
let that = this;
that.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
});
agentInfowxSubmit(data)
.then((res) => {
.then(res => {
// console.log(res)
if (res.result == '0') {
this.$store.commit('updateAgentEnterApplyMsg', this.userInfo)
that.$toast.clear()
this.$store.commit('updateAgentEnterApplyMsg', this.userInfo);
that.$toast.clear();
this.$jump({
flag: 'h5',
extra: {
@@ -285,80 +306,80 @@ export default {
routerInfo: {
path: `/agentEenter/ShareInfoSuccess`
}
})
});
} else {
this.$toast(res.resultMessage)
this.$toast(res.resultMessage);
}
})
.then(function (err) {
console.log(err)
})
})
.then(function(err) {
console.log(err);
});
});
},
//弹框选择
toSelect(pickerType, valueKey) {
;[this.popupShow, this.pickerType] = [true, pickerType]
if (valueKey) this.valueKey = valueKey
;[this.popupShow, this.pickerType] = [true, pickerType];
if (valueKey) this.valueKey = valueKey;
if (pickerType == '1') {
this.columns = DataDictionary.idType
this.columns = DataDictionary.idType;
} else if (pickerType == '13') {
this.columns = DataDictionary.applGrade
this.columns = DataDictionary.applGrade;
}
},
// //确认选择字段
onConfirm(value) {
this.popupShow = false
this.popupShow = false;
if (this.pickerType == '1') {
this.userInfo.idType = value.id
this.userInfo.idType = value.id;
} else if (this.pickerType == '13') {
this.userInfo.applGrade = value.id
this.userInfo.applGrade = value.id;
}
},
getRelatedData(val) {
if (this.userInfo.idType != '1') {
return
return;
}
if (idToData(val).text) {
;[this.userInfo.idNo, this.userInfo.sex] = ['', '']
return this.$toast(idToData(val).text)
}
this.userInfo.sex = idToData(val).sex
this.userInfo.sex = idToData(val).sex;
},
//获取验证码
getCode() {
if (this.userInfo.mobile == '') {
return this.$toast('请填写手机号')
return this.$toast('请填写手机号');
}
this.codeDisabled = true
this.codeDisabled = true;
//倒计时
this.timeId = setInterval(() => {
this.countDown--
this.countDown--;
if (this.countDown <= 0) {
window.clearInterval(this.timeId)
this.codeDisabled = false
this.countDown = 60
window.clearInterval(this.timeId);
this.codeDisabled = false;
this.countDown = 60;
}
}, 1000)
}, 1000);
let data = {
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.userInfo.mobile,
system: 'agentApp',
operateCodeType: '0'
}
};
//获取验证码
getAuthCode(data).then((res) => {
console.log(res)
getAuthCode(data).then(res => {
console.log(res);
if (res.result == 0) {
this.sessionId = res.sessionId
this.sessionId = res.sessionId;
} else {
this.$toast(res.resultMessage)
this.$toast(res.resultMessage);
}
})
});
}
}
}
};
</script>
<style lang='scss' scoped>
.insured-info-container {

View File

@@ -131,29 +131,6 @@
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
@@ -211,17 +188,6 @@
<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>
@@ -245,7 +211,6 @@ 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)
@@ -347,9 +312,7 @@ export default {
mobile: '', //移动电话
email: '', //电子邮箱
schoolName: '',
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
className: ''
// effectiveDate: '' //指定生效日期
},
selectUser: '',
@@ -374,15 +337,34 @@ export default {
load: false, //防止重复请求
value: false
},
occupationalType: DataDictionary.queryOccupationalByType[0].id,
manageComCode: '',
isNewPeopleFlagTipshow: false,
occupationalType: DataDictionary.queryOccupationalByType[0].id
}
},
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 }]) //家庭地址
},
async mounted() {
mounted() {
let that = this
setTimeout(() => {
// eslint-disable-next-line no-undef
@@ -393,8 +375,6 @@ 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
//根据后台数据来展示
@@ -568,8 +548,6 @@ export default {
this.columns = DataDictionary.workCondition
} else if (pickerType == '8') {
this.columns = DataDictionary.salarySource
} else if (pickerType == '11') {
this.columns = DataDictionary.npType
}
},
//确认选择字段
@@ -607,8 +585,6 @@ export default {
this.proScheme = value.text
this.proSchemeCode = value.id
this.chooseKind = value.label
} else if (this.pickerType === '11') {
this.userInfo.npType = value.id
}
},
//证件起始截止日期
@@ -754,8 +730,6 @@ 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)
@@ -852,12 +826,6 @@ 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

@@ -12,7 +12,7 @@
<van-cell-group class='mt10'>
<p style='border-bottom: 1px solid #ebedf0' class='fs15 fwb pl10 pv12'>产品信息</p>
<van-field :value='riskDTO.riskName' label='保障方案' name='保障方案' readonly />
<van-field class="dutyAmt" value='保额' label='保险责任' name='保险责任' readonly input-align="right"/>
<van-field value='保额' label='保险责任' name='保险责任' readonly />
<div v-if='riskDTO.dutyLst && riskDTO.dutyLst.length>0'>
<div class='duty' v-for='(item, index) in riskDTO.dutyLst' :key='index'>
<van-field :value="item.amt/10000 +''" :label='item.dutyName' :name='item.dutyName' readonly />
@@ -194,13 +194,4 @@ export default {
text-align: center;
}
}
.dutyAmt{
.van-field__label {
width: 60vw;
}
.van-field__control {
text-align: center;
}
}
</style>

View File

@@ -147,29 +147,6 @@
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
@@ -277,17 +254,6 @@
<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>
@@ -312,7 +278,6 @@ 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)
@@ -423,9 +388,7 @@ export default {
email: '', //电子邮箱
medical:'0',//有无社保
schoolName: '',
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
className: ''
// effectiveDate: '' //指定生效日期
},
//被保人信息
@@ -483,9 +446,7 @@ export default {
},
occupationalType: DataDictionary.queryOccupationalByType[0].id,
isInsuredCertiexpiredate:true, //被保人有效止期是否显示
isAppnt: false, // 是否投被同人
manageComCode: '',
isNewPeopleFlagTipshow: false,
isAppnt: false // 是否投被同人
}
},
created() {
@@ -521,7 +482,7 @@ export default {
this.expireDate = afterDate.getAfterDateTime(val,2)
}
},
async mounted() {
mounted() {
let that = this
window.appCallBack = this.appCallBack
// 2516--除万福卡投保人、被保险人年收入默认为0允许修改
@@ -535,8 +496,6 @@ 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
@@ -779,8 +738,6 @@ export default {
// })
} else if (pickerType == '22') {
this.columns = DataDictionary.cardListInsuredIdType
} else if(pickerType == 'npType') {
this.columns = DataDictionary.npType
}
},
//确认选择字段
@@ -866,8 +823,6 @@ export default {
// this.isInsuredCertiexpiredate = true
}
this.insuredInfo.idType = value.id
} else if(this.pickerType == 'npType') {
this.userInfo.npType = value.id
}
},
//试算逻辑
@@ -1131,8 +1086,6 @@ 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)
@@ -1360,12 +1313,6 @@ 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

@@ -198,7 +198,7 @@ Vue.use(Checkbox).use(CheckboxGroup)
Vue.use(Field)
Vue.use(Button)
import { acceptInsurance, getBankList, underWrite, getOrderDetail } from '@/api/ebiz/sale/sale'
import { saveOrUpdateAccount, getPayTemp, getShareParam, cardContIsPay } from '@/api/ebiz/cardList/cardList.js'
import { saveOrUpdateAccount, getPayTemp, getShareParam } from '@/api/ebiz/cardList/cardList.js'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
import areaList from '@/assets/js/utils/area'
import Loading from '@/components/ebiz/Loading'
@@ -219,7 +219,7 @@ export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
insuredDTOs: [], //被保人信息
insuredDTOs:[],//被保人信息
// 银行卡支付图片地址
src: this.$assetsUrl + 'images/cardImg.png',
// 微信支付图片地址
@@ -291,7 +291,7 @@ export default {
accBankCity: '',
areaStr: '',
mainRiskCode: '',
isGroupCard: '' //1 团险标识
isGroupCard:'' //1 团险标识
}
},
created() {
@@ -311,9 +311,9 @@ export default {
this.bankListName = orderDetail.orderAccountDTO.bankName
this.orderStatus = orderDetail.orderInfoDTO.orderStatus
localStorage.orderNo = orderDetail.orderInfoDTO.orderNo
orderDetail.insuredDTOs.forEach((item) => {
item.riskDTOLst.forEach((ii) => {
if (ii.isMainRisk == '0') {
orderDetail.insuredDTOs.forEach(item=>{
item.riskDTOLst.forEach(ii=>{
if(ii.isMainRisk == '0'){
this.mainRiskCode = ii.mainRiskCode
}
})
@@ -478,7 +478,7 @@ export default {
let data = {
operateType: 'bank_type'
}
getBankList(data).then((res) => {
getBankList(data).then(res => {
if (res.result == '0') {
console.log('银行卡列表', res.content)
self.bankList = res.content
@@ -496,23 +496,23 @@ export default {
},
getPayTemp() {
getPayTemp({ orderNo: window.localStorage.getItem('orderNo') })
.then((res) => {
.then(res => {
if (res.result == '0') {
this.noEdit = res.content.flag != 'false'
}
})
.catch((e) => {
.catch(e => {
console.error(e)
})
},
// 获取支付详情
getOrderDetail() {
getOrderDetail({ orderNo: window.localStorage.getItem('orderNo') }).then((res) => {
getOrderDetail({ orderNo: window.localStorage.getItem('orderNo') }).then(res => {
if (res.result == '0') {
this.insuredDTOs = res.orderDTO.insuredDTOs
res.orderDTO.insuredDTOs.forEach((item) => {
item.riskDTOLst.forEach((ii) => {
if (ii.isMainRisk == '0') {
res.orderDTO.insuredDTOs.forEach(item=>{
item.riskDTOLst.forEach(ii=>{
if(ii.isMainRisk == '0'){
this.mainRiskCode = ii.mainRiskCode
}
})
@@ -544,7 +544,7 @@ export default {
result: '',
resultMessage: '交易处理成功',
uwResult: '02',
cvalidate: res.orderDTO.orderInfoDTO.cvalidate //生效日期
cvalidate:res.orderDTO.orderInfoDTO.cvalidate //生效日期
}
// this.bankListName = res.orderDTO.orderAccountDTO.bankName
this.underWriteData.bankCode =
@@ -573,7 +573,7 @@ export default {
result: '',
resultMessage: '交易处理失败',
uwResult: '00',
cvalidate: res.orderDTO.orderInfoDTO.cvalidate //生效日期
cvalidate:res.orderDTO.orderInfoDTO.cvalidate //生效日期
}
// window.localStorage.setItem('underWriteData', JSON.stringify(underWriteData))
this.$toast(res.resultMessage)
@@ -615,38 +615,21 @@ export default {
if (true !== valid) {
return this.$toast(this.$validator.errors.all()[0])
}
let data = {
orderNo: window.localStorage.getItem('orderNo')
}
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
// 支付之前要先调用一下是否跨天,不让跨天支付 过了24点 保费不一样 CYN 2024.06.28
let res = await cardContIsPay(data)
this.$toast.clear()
if (res.result == '0') {
switch (this.orderStatus) {
case '56':
case '57':
this.payMent()
break
// case '02':
// break
default:
if (!this.noEdit) {
this.payMent(true)
return true
} else {
this.acceptInsurance()
return this.$toast('当前不可支付')
}
}
} else {
this.$toast(res.resultMessage)
this.isLoading = false
switch (this.orderStatus) {
case '56':
case '57':
this.payMent()
break
// case '02':
// break
default:
if (!this.noEdit) {
this.payMent(true)
return true
} else {
this.acceptInsurance()
return this.$toast('当前不可支付')
}
}
},
acceptInsurance() {
@@ -655,7 +638,7 @@ export default {
cardOrder: 'cardOrder',
payType: this.radio
}
acceptInsurance(data).then((res) => {
acceptInsurance(data).then(res => {
// this.$jump({
// flag: 'h5',
// extra: {
@@ -765,44 +748,13 @@ export default {
let res = await saveOrUpdateAccount(data)
this.$toast.clear()
if (res.result == '0') {
if (this.mainRiskCode == 'GFRS_M0058') {
if(this.mainRiskCode == 'GFRS_M0058'){
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
confirmButtonText: '确认',
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`,
})
.then(() => {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.acceptInsurance()
})
.catch(() => {})
} else {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.acceptInsurance()
}
} else {
this.$toast(res.resultMessage)
this.isLoading = false
}
} else {
if (this.mainRiskCode == 'GFRS_M0058') {
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
confirmButtonText: '确认',
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`
})
.then(() => {
this.$toast.loading({
duration: 0, // 持续展示 toast
@@ -812,8 +764,42 @@ export default {
})
this.acceptInsurance()
})
.catch(() => {})
.catch(() => {
})
}else{
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.acceptInsurance()
}
} else {
this.$toast(res.resultMessage)
this.isLoading = false
}
} else {
if(this.mainRiskCode == 'GFRS_M0058'){
Dialog.alert({
title: '特别提醒',
messageAlign: 'left',
confirmButtonText: '确认',
message: `2023年9月1日起生效的惠桂保保单不能参保的5类既往症中增加了“神经性耳聋”敬请注意`,
})
.then(() => {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.acceptInsurance()
})
.catch(() => {
})
}else{
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
@@ -822,6 +808,7 @@ export default {
})
this.acceptInsurance()
}
}
},
// 选择微信支付校验身份证类型

View File

@@ -25,9 +25,9 @@
<div v-if="payStatus == '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 核心承保中请您稍后查看</span>
<div class="pt20 red"> 温馨提示<br />
1.请关注微信公众号国富人寿保险查询下载电子保单及电子发票<br />
2.为保障您的权益投保成功后广西保险行业协会对您进行短信调研请您注意查看短信如您满意请回复1<br />
如有疑问可拨打国富人寿全国服务热线400-694-6688咨询<br />
1.保单承保后您或被保险人可拨打国富人寿客户服务电话400-694-6688或登陆国富人寿官网www.e-guofu.com以及关注官方微信公众号国富人寿保险查询下载电子保单<br />
2.本保险产品提供电子发票如您需要发票您可以关注微信公众号国富人寿保险自助下载电子发票<br />
3.为保障您的权益投保成功后广西保险行业协会对您进行短信调研了解您本次保险消费的相关情况请您注意查看短信如您满意请回复1如有疑问可拨打国富人寿全国服务热线400-694-6688咨询<br />
</div>
</div>
<div v-if="payStatus == '2' || payStatus == '4' || payStatus == '8'" class=" p10 pb250 bg-white">
@@ -78,7 +78,6 @@ export default {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isWeixin,
orderNo: '',
// 保融收银台返回的支付流水号
paySeqNo: '',
// 接口返回数据前,不做页面渲染
@@ -210,10 +209,6 @@ export default {
} else {
this.queryPayState()
}
this.card.orderNo = window.localStorage.getItem('orderNo')
let orderDetail = JSON.parse(sessionStorage.orderDetail)
this.card.insuredName = orderDetail.insuredDTOs[0].name
this.card.cvalidate = orderDetail.insuredDTOs[0].riskDTOLst[0].cvaliDate
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''

View File

@@ -92,7 +92,7 @@ export default {
//只有惠桂保团险添加此提示
if( this.$route.query.isGroupCard == '1' ){
Dialog.alert({
title: '投保提示',
title: '温馨提示',
messageAlign: 'left',
confirmButtonText: '确认',
message: `1、您即将进入投保流程为维护您的合法权益投保时请您务必仔细阅读和确认保险条款、投保须知、免除保险人责任条款、犹豫期条款等页面所有内容。<br/>2.您的投保过程和操作将被记录。`,

View File

@@ -142,29 +142,6 @@
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
@@ -272,7 +249,6 @@
label='职业类别'
placeholder='请输入'
name='职业类别'
readonly
:value='insuredInfo.occupationName'
right-icon='arrow'
/>
@@ -323,29 +299,6 @@
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
@@ -479,29 +432,6 @@
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
@@ -537,7 +467,7 @@
placeholder='请选择'
@click="toSelect('10')"
/>
<van-field v-if="this.itemProductDTOS.productCode === 'GFRS_M0041'||this.itemProductDTOS.productCode === 'GFRS_M0052'||this.itemProductDTOS.productCode === 'GFRS_M0071'||this.itemProductDTOS.productCode === 'GFRS_M0091'" v-model='cvaliDate' readonly label='生效日期' name='生效日期' placeholder='请输入' />
<van-field v-if="this.itemProductDTOS.productCode === 'GFRS_M0041'||this.itemProductDTOS.productCode === 'GFRS_M0052'||this.itemProductDTOS.productCode === 'GFRS_M0071'" v-model='cvaliDate' readonly label='生效日期' name='生效日期' placeholder='请输入' />
<FieldDatePicter
v-else
label='指定生效日期'
@@ -596,17 +526,14 @@
||this.itemProductDTOS.productCode === 'GFRS_M0052' || this.itemProductDTOS.productCode === 'GFRS_M0062' || this.itemProductDTOS.productCode === 'GFRS_M0063'||this.itemProductDTOS.productCode === 'GFRS_M0064'">
注:为未成年子女投保的人身保险,在被保险人成年之前,因被保险人身故给付的保险金总和不得超过国务院保险监督管理机构规定的限额,身故给付的保险金额总和的约定也不得超过前述限额。但航空意外死亡保险金额及重大自然灾害意外死亡保险金额不计算在上述规定限额之中。
</div>
<div class='tips'
v-if="this.itemProductDTOS.productCode === 'GFRS_M0091'">
注:为未成年子女投保的人身保险,在被保险人成年之前,因被保险人身故给付的保险金总和不得超过国务院保险监督管理机构规定的限额,身故给付的保险金额总和的约定也不得超过前述限额。
</div>
<van-goods-action style='z-index: 99'>
<van-button type='default' style='width: 50%; font-size: 14px; height: 40px; background: white'
>总保费:<span style='color: red; font-weight: bold; font-size: 18px; font-weight: 400'>{{ allPrice }}</span
>元
</van-button
>
<van-goods-action-button type='danger' text='立即投保' @click='nextStep' v-no-more-click='1000' style='border-radius: 0em; width: 50%; height: 40px' />
<van-goods-action-button type='danger' text='立即投保' @click='nextStep' v-no-more-click='1000'
style='border-radius: 0em; width: 50%; height: 40px' />
</van-goods-action>
<!-- <van-dialog v-model="showDialog" title="温馨提示" message="被保险人年龄与所投保的方案不一致,请核实。" show-cancel-button @confirm="nextStep" confirmButtonText="继续投保" cancelButtonText="核对信息"> -->
@@ -641,17 +568,6 @@
<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>
@@ -679,7 +595,6 @@ import Vue from 'vue'
import { GoodsAction, GoodsActionIcon, GoodsActionButton } from 'vant'
import riskRules from '../common/risk-rules'
import occupationList from '@/components/ebiz/occipation/data/occupation'
import {idNoCheck8} from "../sale/js/verification";
DataDictionary.relationToAppnt = DataDictionary.relationToAppnt.slice(0, 4)
Vue.use(Checkbox).use(CheckboxGroup)
@@ -791,9 +706,7 @@ export default {
mobile: '', //移动电话
email: '', //电子邮箱
schoolName: '',
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
className: ''
// effectiveDate: '' //指定生效日期
},
//被保人信息
@@ -822,9 +735,7 @@ export default {
mobile: '', //移动电话
email: '',//电子邮箱
schoolName: '',
className: '',
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
className: ''
},
selectUser: '',
areaList: areaList,
@@ -856,9 +767,7 @@ export default {
},
occupationalType: DataDictionary.queryOccupationalByType[0].id,
isInsuredCertiexpiredate:true, //被保人有效止期是否显示
trialDTOS:[], //产品详情信息
manageComCode: '',
isNewPeopleFlagTipshow: false,
trialDTOS:[] //产品详情信息
}
},
created() {
@@ -959,7 +868,7 @@ export default {
}
//金掌桂无忧卡,少儿安康卡两款卡单产品关闭指定生效日功能,默认自承保之日起第四日零时生效
//GFRS_M0052 国富人寿少儿安康保险产品组合、GFRS_M0041 国富无忧卡-国富人寿综合意外伤害保险计划
if (this.itemProductDTOS.productCode === 'GFRS_M0052' || this.itemProductDTOS.productCode === 'GFRS_M0041' || this.itemProductDTOS.productCode === 'GFRS_M0071'|| this.itemProductDTOS.productCode === 'GFRS_M0091') {
if (this.itemProductDTOS.productCode === 'GFRS_M0052' || this.itemProductDTOS.productCode === 'GFRS_M0041' || this.itemProductDTOS.productCode === 'GFRS_M0071') {
this.cvaliDate = dateUtils.formatDate(afterDate.getAfterDays(Number(this.trialList[0].timeliness)), 'yyyy-MM-dd')
//保险期间计算逻辑
let val = this.cvaliDate
@@ -996,9 +905,7 @@ export default {
}
this.userInfo.homeName = getAreaName([{ code: 450000 }, { code: 450100 }, { code: 450101 }]) //家庭地址
},
async mounted() {
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
mounted() {
// 2516--除万福卡投保人、被保险人年收入默认为0允许修改
if (this.itemProductDTOS.productCode != 'GFRS_M0032') {
this.userInfo.averageAnnualIncome = '0'
@@ -1034,6 +941,7 @@ export default {
}
},
methods: {
//试算逻辑国富万福卡GFRS_M0071
insureTrial() {
// if(this.insuredInfo.birthday || that.$route.query.relationToAppnt == '1'){
if (this.userInfo.relationToInsured == 1) {
@@ -1131,11 +1039,9 @@ export default {
let { code, name, healthGrade, lifeGrade } = data
//校验主合同被保险人寿险职业等级
//投保同人时,验证投保人职业,投被不同人时验证被保人职业
if(this.itemProductDTOS.productCode != 'GFRS_M0091') {
if(!(this.userInfo.relationToInsured != 1 && this.insureType === '1')){
if (riskRules.lifeGradeLimitCard(this.trialDTOS, this, lifeGrade)) {
return
}
if(!(this.userInfo.relationToInsured != 1 && this.insureType === '1')){
if (riskRules.lifeGradeLimitCard(this.trialDTOS, this, lifeGrade)) {
return
}
}
@@ -1152,14 +1058,10 @@ export default {
this.userInfo.occupationName = name
this.userInfo.occupationCode = code
this.userInfo.occupationType = lifeGrade
this.userInfo.lifeGrade = lifeGrade
this.userInfo.healthGrade = healthGrade
} else if (this.insureType === '2') {
this.insuredInfo.occupationName = name
this.insuredInfo.occupationCode = code
this.insuredInfo.occupationType = lifeGrade
this.insuredInfo.lifeGrade = lifeGrade
this.insuredInfo.healthGrade = healthGrade
}
},
/**
@@ -1425,12 +1327,7 @@ 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) {
@@ -1528,10 +1425,6 @@ 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
}
},
//证件起始截止日期
@@ -1771,13 +1664,9 @@ 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, isNewPeopleFlag, npType } = data
this.insuredInfo.isNewPeopleFlag = isNewPeopleFlag //新市民身份
this.insuredInfo.npType = npType //新市民类型
let { customerName, customerSex } = data
this.insuredInfo.name = customerName //用户名
this.insuredInfo.sex = customerSex ? customerSex.toString() : '0' //性别
this.insuredInfo.birthday = data.birthday //出生日期
@@ -1800,8 +1689,7 @@ 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'
@@ -1834,14 +1722,9 @@ export default {
this.insuredInfo.homeAddress = data.homeAddress //家庭详细地址
//2516--三个学平险--被保险人职业类别默认学生允许修改
if (this.itemProductDTOS.productCode == 'GFRS_M0048' || this.itemProductDTOS.productCode == 'GFRS_M0049' || this.itemProductDTOS.productCode == 'GFRS_M0050'
|| this.itemProductDTOS.productCode === 'GFRS_M0063'||this.itemProductDTOS.productCode === 'GFRS_M0064') {
|| this.itemProductDTOS.productCode === 'GFRS_M0062' || this.itemProductDTOS.productCode === 'GFRS_M0063'||this.itemProductDTOS.productCode === 'GFRS_M0064') {
this.insuredInfo.occupationCode = '2099907'
this.insuredInfo.occupationName = '一般学生'
this.insuredInfo.occupationType = '1'
} else if (this.itemProductDTOS.productCode === 'GFRS_M0062') {
this.insuredInfo.occupationCode = '2099908'
this.insuredInfo.occupationName = '学龄前儿童'
this.insuredInfo.occupationType = '1'
} else {
this.insuredInfo.occupationCode = data.occupationCode
this.insuredInfo.occupationName = data.occupationName
@@ -1849,7 +1732,6 @@ 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--三个学平险--被保险人婚姻默认未婚允许修改
@@ -1878,12 +1760,9 @@ export default {
// console.log(data, val)
},
nextStep() {
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('投保人新市民类型不能为空')
}
// console.log(this.userInfo.idType)
// console.log(this.userInfo.salarySource)
// console.log(this.userInfo.otherSalarySource)
//表单校验, 成功跳转
if (this.userInfo.relationToInsured == 1) {
Object.assign(this.insuredInfo, this.userInfo)
@@ -1928,12 +1807,6 @@ 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)
@@ -2018,8 +1891,7 @@ export default {
}
}
//如果证件类型是户口本
}
else if(this.userInfo.idType == '2'){
}else if(this.userInfo.idType == '2'){
if (this.userInfo.nativeplace != '1') {
return this.$toast('证件类型”为“身份证,国籍必须为中国哦')
}
@@ -2070,12 +1942,7 @@ export default {
// return this.$toast('户口本的证件号码长度应等于18位')
// }
}
else if (this.userInfo.idType == '8') {
if (idNoCheck8(this.userInfo,'cardList').text){
return this.$toast(idNoCheck8(this.userInfo,'cardList').text)
}
}
let insuredAge = utilsAge.getAge(this.insuredInfo.birthday, new Date(this.cvaliDate))
let insuredAge = utilsAge.getAge(this.insuredInfo.birthday, new Date())
console.log('计算年龄', insuredAge)
//如果证件类型是身份证或户口本
if (this.insuredInfo.idType == '1') {
@@ -2152,8 +2019,7 @@ 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('证件类型”为“身份证,国籍必须为中国哦')
}
@@ -2203,8 +2069,7 @@ 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周岁及以上不能使用出生证作为有效证件')
}
@@ -2214,11 +2079,6 @@ export default {
return this.$toast('您填写的证件号码有误')
}
}
else if (this.insuredInfo.idType == '8') {
if (idNoCheck8(this.insuredInfo,'cardList').text){
return this.$toast(idNoCheck8(this.insuredInfo,'cardList').text)
}
}
if (this.itemProductDTOS.productCode === 'GFRS_M0022') {
// return
// 如果是未成年人
@@ -2232,8 +2092,7 @@ 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) {
@@ -2261,21 +2120,35 @@ export default {
return this.$toast('被保险人的年龄不可以超过65周岁')
}
}
else if (this.itemProductDTOS.productCode === 'GFRS_M0091') {
console.log(this.proSchemeCode)
if (this.proSchemeCode == '06860438-B') {
if (insuredAge < 10) {
return this.$toast('被保险人的年龄需要大于10岁')
}
}
if (insuredAge < 0) {
return this.$toast('被保险人的年龄需要大于28天')
}
if (insuredAge > 65) {
return this.$toast('被保险人的年龄不可以超过65周岁')
}
}
let insuredInfoAge = utilsAge.getAge(this.insuredInfo.birthday, new Date(this.cvaliDate))
//投保人需大于等于 18 周岁
// if (age < 18) {
// return this.$toast('投保人必须是具有民事行为能力且有固定职业和收入的自然人,请确定')
// }
let insuredInfoAge = utilsAge.getAge(this.insuredInfo.birthday, new Date())
// if (this.itemProductDTOS.productCode === 'GFRS_M0049') {
// //幼儿园2岁≤被保险人≤7岁
// if (insuredInfoAge < 2 || insuredInfoAge > 7) {
// return this.$toast('被保险人年龄应为2岁-7岁请重新选择。')
// }
// } else if (this.itemProductDTOS.productCode === 'GFRS_M0048') {
// //义务教育5岁≤被保险人≤18岁
// if (insuredInfoAge < 5 || insuredInfoAge > 18) {
// return this.$toast('被保险人年龄应为5岁-18岁请重新选择。')
// }
// } else if (this.itemProductDTOS.productCode === 'GFRS_M0050') {
// //高中及高等教育15岁≤被保险人≤40岁
// if (insuredInfoAge < 15 || insuredInfoAge > 40) {
// return this.$toast('被保险人年龄应为15岁-40岁请重新选择。')
// }
// } else if (this.itemProductDTOS.productCode === 'GFRS_M0052') {
// //GFRS-2641--少儿安康17岁≤被保险人
// if (insuredInfoAge > 17) {
// return this.$toast('被保险人年龄应为0岁-17岁请重新选择。')
// }
// }
if(this.itemProductDTOS.productCode == 'GFRS_M0048' || this.itemProductDTOS.productCode == 'GFRS_M0049' || this.itemProductDTOS.productCode == 'GFRS_M0050'
|| this.itemProductDTOS.productCode == 'GFRS_M0052' ||this.itemProductDTOS.productCode === 'GFRS_M0062' || this.itemProductDTOS.productCode === 'GFRS_M0063'
|| this.itemProductDTOS.productCode === 'GFRS_M0064'){
@@ -2310,6 +2183,14 @@ export default {
if (this.insuredInfo.effectiveDateType) {
this.insuredInfo.certiexpiredate = '9999-12-31'
}
if ((this.userInfo.relationToInsured != '1' && this.userInfo.relationToInsured != '3')
|| (this.userInfo.relationToInsured == '3' && insuredAge >= 18)){
//金掌桂投保的所有卡单产品:
//1与被保人关系非本人不含父母
//2与被保人关系为父母被保人年龄大于等于18周岁
// 点击【立即投保】时,提示以下内容并阻断投保
return this.$toast('以死亡为给付条件的保险合同,投保人和被保险人需为同一人(父母为未成年子女投保除外)。请分享给参保人完成投保。')
}
switch (this.userInfo.homeArea) {
case "500129":
this.userInfo.homeArea = '500229'
@@ -2386,27 +2267,6 @@ export default {
this.insuredInfo.homeArea = '500243'
break
}
console.log(this.insuredInfo,'this.insuredInfo')
if(this.itemProductDTOS.productCode === 'GFRS_M0091'){
if(this.proSchemeCode == '06860438-A') {
if (Number(this.insuredInfo.lifeGrade) > 3) {
this.$toast('寿险职业等级不适合此款险种,请选择其他险种!')
return
}
}
if(this.proSchemeCode == '06860438-B') {
if (Number(this.insuredInfo.lifeGrade) > 4) {
this.$toast('寿险职业等级不适合此款险种,请选择其他险种!')
return
}
}
if(!this.proSchemeCode) {
if (Number(this.insuredInfo.lifeGrade) > 4) {
this.$toast('寿险职业等级不适合此款险种,请选择其他险种!')
return
}
}
}
this.infoUpdate()
// console.log('success')
} else {
@@ -2552,9 +2412,6 @@ 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) {
@@ -2738,9 +2595,7 @@ export default {
homeAddress: '', //详细地址
mobile: '', //移动电话
email: '', //电子邮箱
effectiveDateType: false, //是否长期
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
effectiveDateType: false //是否长期
}
// 设置选中‘同投保人’的勾选项
this.withRootUser.value = true
@@ -2759,11 +2614,10 @@ export default {
// GFRS-2641--被保险人职业:幼儿园版默认学龄前儿童,义务教育、高中/高等教育默认一般学生
// 被保险人婚姻默认未婚,允许修改
// 被保险人手机及邮箱默认投保人,允许修改
if (this.itemProductDTOS.productCode == 'GFRS_M0048' || this.itemProductDTOS.productCode == 'GFRS_M0050'
if (this.itemProductDTOS.productCode == 'GFRS_M0048' || this.itemProductDTOS.productCode == 'GFRS_M0050' || this.itemProductDTOS.productCode === 'GFRS_M0062'
|| this.itemProductDTOS.productCode === 'GFRS_M0064') {
this.insuredInfo.occupationCode = '2099907'
this.insuredInfo.occupationName = '一般学生'
this.insuredInfo.occupationType = '1'
this.insuredInfo.marriage = '2'
this.insuredInfo.mobile = this.userInfo.mobile
this.insuredInfo.email = this.userInfo.email
@@ -2775,22 +2629,8 @@ export default {
// this.isInsuredCertiexpiredate = false
this.isInsuredCertiexpiredate = true
} else if (this.itemProductDTOS.productCode == 'GFRS_M0049' || this.itemProductDTOS.productCode === 'GFRS_M0063') {
this.insuredInfo.occupationCode = '2099907'
this.insuredInfo.occupationName = '一般学生'
this.insuredInfo.occupationType = '1'
this.insuredInfo.marriage = '2'
this.insuredInfo.idType = '2'
// this.insuredInfo.effectiveDateType = true
// this.insuredInfo.certiexpiredate = '9999-12-31'
// 去掉--选择户口本时是否长期默认为是不可点击有效止期隐藏证件类型为户口本时被保人年龄小于16周岁时户口本有效止期长期变更为第16周岁日期
// this.effectiveDateTypeAbleInsured = true
// this.isInsuredCertiexpiredate = false
this.isInsuredCertiexpiredate = true
}
else if (this.itemProductDTOS.productCode === 'GFRS_M0062') {
this.insuredInfo.occupationCode = '2099908'
this.insuredInfo.occupationName = '学龄前儿童'
this.insuredInfo.occupationType = '1'
this.insuredInfo.marriage = '2'
this.insuredInfo.idType = '2'
// this.insuredInfo.effectiveDateType = true
@@ -2807,7 +2647,6 @@ export default {
// this.insuredInfo.effectiveDateType = true
this.insuredInfo.occupationCode = '2099907'
this.insuredInfo.occupationName = '一般学生'
this.insuredInfo.occupationType = '1'
this.insuredInfo.marriage = '2'
// 去掉--选择户口本时是否长期默认为是不可点击有效止期隐藏证件类型为户口本时被保人年龄小于16周岁时户口本有效止期长期变更为第16周岁日期
this.effectiveDateTypeAbleInsured = true
@@ -2879,7 +2718,7 @@ export default {
//被保人职业变化时,重新调用试算接口
'insuredInfo.occupationName': {
handler(newV) {
if (newV && (this.itemProductDTOS.productCode === 'GFRS_M0071' || this.itemProductDTOS.productCode === 'GFRS_M0091')) {
if (newV && this.itemProductDTOS.productCode === 'GFRS_M0071') {
this.insureTrial()
}
},
@@ -2889,7 +2728,8 @@ export default {
//投被同人时,投保人职业变化时,重新调用试算接口
'userInfo.occupationName': {
handler(newV) {
if (newV && (this.itemProductDTOS.productCode === 'GFRS_M0071' || this.itemProductDTOS.productCode === 'GFRS_M0091')) {
// if (newV && this.itemProductDTOS.productCode === 'GFRS_M0071'&& this.userInfo.relationToInsured == 1) {
if (newV && this.itemProductDTOS.productCode === 'GFRS_M0071') {
this.insureTrial()
}
},

View File

@@ -90,7 +90,7 @@ export default {
gotoInformation() {
if(this.productType != '7'){ //7代表是团险 10卡单
Dialog.confirm({
title: '投保提示',
title: '温馨提示',
messageAlign: 'left',
confirmButtonColor: '#ee0a24',
confirmButtonText: '立即投保',

File diff suppressed because it is too large Load Diff

View File

@@ -50,9 +50,9 @@
</div>
</template>
<script>
import { Cell, CellGroup, Tag, Radio, RadioGroup, Tab, Tabs } from 'vant'
import { mainRiskList, mainRiskListProposal, calculatePremium, getActProductList, occupationCodeCheck } from '@/api/ebiz/common/common'
import { getOrderDetail, riskLevelCheck } from '@/api/ebiz/sale/sale'
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 { getDetail } from '@/api/ebiz/proposal/proposal.js'
import riskRules from './risk-rules'
export default {
@@ -63,14 +63,14 @@ export default {
[CellGroup.name]: CellGroup,
[Tag.name]: Tag,
[Cell.name]: Cell,
[Tab.name]: Tab,
[Tabs.name]: Tabs
[Tab.name]:Tab,
[Tabs.name]:Tabs,
},
data() {
return {
recommendType: '', // 渠道控制
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
active: 'normal',
recommendType: '', // 渠道控制
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
active: 2,
specilFlag: '0',
flag: true,
list: [],
@@ -79,7 +79,7 @@ export default {
radioVal: '',
isFrom: localStorage.isFrom,
activeFlag: '',
isActivityCode: '' //activityCode 有值的话代表是活动,无值代表是普通产品
isActivityCode:'' //activityCode 有值的话代表是活动,无值代表是普通产品
}
},
async mounted() {
@@ -87,16 +87,16 @@ export default {
flag: 'navigation',
extra: {
title: '主险选择列表'
}
},
})
if (localStorage.isFrom == 'sale') {
return new Promise((resolve, reject) => {
getOrderDetail({ orderNo: this.$route.query.orderNo }).then(
(res) => {
res => {
if (res.result == 0) {
//------------------------专为桂/惠企写死--begin---------------//
if (res.orderDTO.insuredDTOs[0] && res.orderDTO.insuredDTOs[0].riskDTOLst) {
this.flag = this.specilFlag = res.orderDTO.insuredDTOs[0].riskDTOLst.some((v) => {
this.flag = this.specilFlag = res.orderDTO.insuredDTOs[0].riskDTOLst.some(v => {
return v.riskCode == 'GFRS_M0024' || v.riskCode == 'GFRS_M0040'
})
if (this.flag) {
@@ -105,19 +105,21 @@ 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 银保渠道
this.recommendType = res.orderDTO.recmdDTO.recommendType
this.recommendType = res.orderDTO.recmdDTO.recommendType;
if (this.recommendType == '02' || this.recommendType == '11' || (this.recommendType == '03' && this.isActivityCode)) {
// 电投 团险渠道产品 均为交叉渠道销售
this.isCrossChannel = '1'
this.isCrossChannel = '1';
}
// ------------------------专为桂/惠企写死--end---------------//
}
resolve(this.isActivityCodeFunc())
},
(error) => {
error => {
reject(this.isActivityCodeFunc())
}
)
@@ -126,51 +128,69 @@ export default {
return new Promise((resolve, reject) => {
getDetail({
orderNo: this.$route.query.proposalOrderNo
}).then(
(res) => {
if (res.result == '0') {
this.recommendType = res.content[0].recmdDTO ? res.content[0].recmdDTO.recommendType : ''
if (this.recommendType == '02' || this.recommendType == '11') {
// 电投 团险渠道产品 均为交叉渠道销售
this.isCrossChannel = '1'
}
}).then(res => {
if (res.result == '0') {
this.recommendType = res.content[0].recmdDTO?res.content[0].recmdDTO.recommendType:'';
if (this.recommendType == '02' || this.recommendType == '11') {
// 电投 团险渠道产品 均为交叉渠道销售
this.isCrossChannel = '1';
}
resolve(this.isActivityCodeFunc())
},
(error) => {
reject(this.isActivityCodeFunc())
}
)
resolve(this.isActivityCodeFunc())
},
error => {
reject(this.isActivityCodeFunc())
})
})
}
},
methods: {
onChangeMainList(name) {
// 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'
} else {
this.isCrossChannel = '0'
this.isCrossChannel = '1';
}else{
this.isCrossChannel = '0';
}
this.isActivityCodeFunc()
this.isActivityCodeFunc();
},
isActivityCodeFunc() {
//isActivityCode 有值代表是活动,无值代表是普通产品
isActivityCodeFunc(){
//isActivityCode 有值代表是活动,无值代表是普通产品
// if(this.isActivityCode && this.isCrossChannel == '0'){
if (this.isActivityCode) {
this.getActProductListFunc()
} else {
this.getMainRiskList()
}
if(this.isActivityCode){
this.getActProductListFunc()
}else{
this.getMainRiskList()
}
},
//获取主险列表--活动下的产品
async getActProductListFunc() {
let mainRiskCodes = localStorage.mainRiskCodes && JSON.parse(localStorage.mainRiskCodes)
let resultData = await getActProductList({
activityCode: this.isActivityCode,
type: 'app'
activityCode:this.isActivityCode,
type:'app'
})
if (resultData.result == 0) {
resultData.content.mainRiskDTOS.forEach((item) => {
resultData.content.mainRiskDTOS.forEach(item => {
//已选主险不能再选、险种互斥
if (mainRiskCodes && mainRiskCodes.includes(item.riskProductCode)) {
this.delList.push(item.riskProductCode)
@@ -197,32 +217,31 @@ export default {
// ------------------------专为惠企写死--end---------------//
//如果是选择产品, 进入电子投保, 在主险列表能默认选中我在产品列表选择的产品
if (this.list.length > 0) {
console.log(localStorage.productCodeChooseFromList)
this.result = this.list.find((v) => {
console.log(localStorage.productCodeChooseFromList)
this.result = this.list.find(v => {
return v.riskProductCode == localStorage.productCodeChooseFromList
})
}
if (this.list.length == 0) {
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
// }
// })
// })
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
}
})
})
}
}
},
@@ -239,16 +258,16 @@ export default {
break
}
if (this.isCrossChannel == '1') {
mainListDate.platform = 'cross'
mainListDate.platform = 'cross'
}
let resultData
if (this.isFrom == 'proposal') {
if(this.isFrom == 'proposal'){
resultData = await mainRiskListProposal(mainListDate)
} else {
}else{
resultData = await mainRiskList(mainListDate)
}
if (resultData.result == 0) {
resultData.mainRiskDTOS.forEach((item) => {
resultData.mainRiskDTOS.forEach(item => {
//已选主险不能再选、险种互斥
if (mainRiskCodes && mainRiskCodes.includes(item.riskProductCode)) {
this.delList.push(item.riskProductCode)
@@ -275,90 +294,47 @@ export default {
// 如果是选择产品, 进入电子投保, 在主险列表能默认选中我在产品列表选择的产品
if (this.list.length > 0) {
console.log(localStorage.productCodeChooseFromList)
this.result = this.list.find((v) => {
this.result = this.list.find(v => {
return v.riskProductCode == localStorage.productCodeChooseFromList
})
}
if (this.list.length == 0) {
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
// }
// })
// })
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
}
/** add by zhangweiwei FCRS-764 国富无忧两全保险B款新增主险职业校验逻辑 start at 20240807 */
let insuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
occupationCodeCheck({
occupationCode: insuredPersonInfo.occupationCode,
productCode: this.result.riskProductCode
}).then((res) => {
if (res.result == 0) {
this.handleMainRisk()
} else {
this.$toast(res.resultMessage)
}
})
/** add by zhangweiwei FCRS-764 国富无忧两全保险B款新增主险职业校验逻辑 end at 20240807 */
},
//置空产品
localStorage.chooseProducts = ''
/**
* 处理主险
*/
handleMainRisk() {
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()
}
//添加主险
this.addMainRisk()
},
//储存主险
async addMainRisk() {
localStorage.setItem('isTrial', '1')
@@ -369,7 +345,7 @@ export default {
localStorage.isTrial = resultData.productTrialInfoDTO.productTrialYearDTOS != null ? '0' : '1'
localStorage.hint = resultData.hint
if (resultData.productTrialInfoDTO.dutyGroup != null) {
resultData.productTrialInfoDTO.dutyGroup.map((item) => {
resultData.productTrialInfoDTO.dutyGroup.map(item => {
if (item.dutyName == '意外身故/伤残保险金') {
item.defaultDutyAmt = item.minDutyAmt
}
@@ -397,7 +373,7 @@ export default {
}
}
if (riskRules.ageLimit(resultData, this, null, riskProductCode)) {
if (riskRules.ageLimit(resultData, this, null,riskProductCode)) {
return
}
@@ -424,17 +400,12 @@ export default {
}
}
let flagPermission = await riskRules.getProductSellPermissionList(resultData.productCode, this, this.isCrossChannel)
let flagPermission = await riskRules.getProductSellPermissionList(resultData.productCode, this,this.isCrossChannel)
if (flagPermission.flag && localStorage.isFrom != 'proposal') {
//校验该代理人是否有该产品的售卖权限
return this.$toast(flagPermission.resultMessage)
}
let flagCompany = await riskRules.checkCompany(
resultData.productCode,
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).workcompany,
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).isAsync,
this
)
let flagCompany = await riskRules.checkCompany(resultData.productCode, JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).workcompany, JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).isAsync,this)
if (flagCompany && localStorage.isFrom != 'proposal') {
//校验该投保人的工作单位是否能够投保该产品
return this.$toast('该投保人工作单位不能投保该产品')
@@ -450,11 +421,11 @@ export default {
let calFactorLst = this.getFactorList(resultData)
let productTrialYearDTOS = resultData.productTrialInfoDTO.productTrialYearDTOS != null ? resultData.productTrialInfoDTO.productTrialYearDTOS : null
let hasAddtionRisk = resultData.productTrialInfoDTO.addtionRiskLst != null && resultData.productTrialInfoDTO.addtionRiskLst.length ? true : false
let hasAddtionRisk = (resultData.productTrialInfoDTO.addtionRiskLst != null && resultData.productTrialInfoDTO.addtionRiskLst.length) ? true : false
let currentProductInfo =
localStorage.isTrial == '1'
? {
isCrossChannel: this.isCrossChannel,
isCrossChannel:this.isCrossChannel,
calFactorLst,
hasAddtionRisk,
isMainRisk: 0,
@@ -470,7 +441,7 @@ export default {
predictTransferPrem: null //建议书使用 预计转入保费字段
}
: {
isCrossChannel: this.isCrossChannel,
isCrossChannel:this.isCrossChannel,
productTrialYearDTOS,
calFactorLst,
hasAddtionRisk,
@@ -508,27 +479,27 @@ export default {
let calFactorLst = resultData.productTrialInfoDTO.calFactorLst
console.log('calFactorLst', calFactorLst)
calFactorLst.forEach((item) => {
calFactorLst.forEach(item => {
item['isMainRisk'] = 0
item.columns = []
if (item.type == 0) {
//1、type=0 select 2、type=1 input+stepper
productTrialInfoDTO[item.code].forEach((factor) => {
productTrialInfoDTO[item.code].forEach(factor => {
if (factor.defaultValue == 0) {
item.showContent = factor.showContent
if (factor[item.code + 'Flag'] != undefined) {
item[item.code] = factor[item.code]
item[item.code + 'Flag'] = factor[item.code + 'Flag']
item.hasFlag = '1'
} else if (item.code == 'pensionAge') {
}else if(item.code == 'pensionAge'){
//养老保险金领取年龄
item[item.code] = factor[item.code]
item['sex'] = factor.sex
} else {
}else {
item[item.code] = factor[item.code]
}
}
let itemColumns = { text: factor.showContent, value: factor[item.code], flag: factor[item.code + 'Flag'], sex: factor.sex }
let itemColumns = { text: factor.showContent, value: factor[item.code], flag: factor[item.code + 'Flag'],sex:factor.sex}
if (factor.medical !== undefined) {
itemColumns.medical = factor.medical
}
@@ -537,13 +508,10 @@ export default {
} else if (item.type == 1) {
//按年龄选择
if (productTrialInfoDTO[item.code] != null) {
productTrialInfoDTO[item.code].forEach((factor) => {
productTrialInfoDTO[item.code].forEach(factor => {
// item = Object.assign(item, factor)
if (
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).insuredAge >= Number(factor.minAge) &&
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).insuredAge <= Number(factor.maxAge)
) {
// if(JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).age >= Number(factor.minAge) && JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).age <= Number(factor.maxAge)){
if(JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).insuredAge >= Number(factor.minAge) && JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).insuredAge <= Number(factor.maxAge)){
// if(JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).age >= Number(factor.minAge) && JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).age <= Number(factor.maxAge)){
item = Object.assign(item, factor)
}
})
@@ -553,9 +521,6 @@ export default {
item['amt'] = Number(item.minAmt) * Number(item.moneyUnit)
}
}
}else if(item.type==5){
// 单元格用于展示文案从extra中获取
item['showContent'] = item.extra
}
//规则储存
item['rules'] = productTrialInfoDTO[item.code]

View File

@@ -750,10 +750,6 @@
if (this.chooseProducts.length == 0) {
return this.$toast('请添加产品')
}
if(!this.isElecCont && localStorage.isFrom == 'sale') {
this.$toast('请选择保单形式')
return false
}
//重新校验该产品是否需要为协同单位
let flagCompany = await riskRules.checkCompany(this.chooseProducts[0].riskCode, JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).workcompany, JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).isAsync,this)
if (flagCompany && localStorage.isFrom != 'proposal') {
@@ -821,32 +817,6 @@
}
}
}
if(this.manageComCode == '45') {
console.log(this.chooseProducts)
if(this.appntDTO.age >= 60) {
this.chooseProducts.map(item => {
if (item.insuYearFlag == 'A' || (item.insuYearFlag == 'Y' && item.insuYear != '1')) {
showFlag = true
return true
}
})
if(!showFlag){
let doubleRecordRes = await getDoubleRecordProductLst({})
if(doubleRecordRes.result == 0){
if(doubleRecordRes.content && doubleRecordRes.content.length != 0){
doubleRecordRes.content.forEach(items=>{
this.chooseProducts.map(item => {
if (item.riskCode == items ) {
showFlag = true
return true
}
})
})
}
}
}
}
}
if (showFlag) {
this.thisdoubledialogshow = true
} else {
@@ -991,6 +961,35 @@
}
})
},
async showTipForDoubleRecord() {
//判断投保人年龄是否大于等于60岁
let showFlag = false
let age = this.appntDTO.birthday?utilsAge.getAge(this.appntDTO.birthday, new Date()):this.appntDTO.age
if (this.manageComCode == '52') {
this.chooseProducts.map(item => {
if (item.insuYearFlag == 'A' || (item.insuYearFlag == 'Y' && item.insuYear != '1')) {
showFlag = true
return true
}
})
}
if(showFlag){
let doubleRecordRes = await getDoubleRecordProductLst({})
if(doubleRecordRes.result == 0){
if(doubleRecordRes.content && doubleRecordRes.content.length != 0){
doubleRecordRes.content.forEach(items=>{
this.chooseProducts.map(item => {
if (item.riskCode == items ) {
showFlag = true
return true
}
})
})
}
}
}
return showFlag
},
nextPageShow() {
let thismyurl = ''
if (this.$route.query.orderNo) {
@@ -1002,30 +1001,47 @@
localStorage.fromAddBeneficiaryInfo = ''
localStorage.removeItem('applicant')
if(this.isFrom == 'sale') {
let params = {
orderNO: this.$route.query.orderNo,
isElecCont: this.isElecCont
if(!this.isElecCont) {
this.$toast('请选择保单形式')
return false
}
if(this.isElecCont == '1') {
params.isElecCont = '0'
}
saveOrderType(params).then(res => {
if(res.result == 0) {
this.$jump({
flag: 'h5',
extra: {
forbidSwipeBack: '1',
url: location.origin + '/#' + thismyurl,
needRefresh: '1'
},
routerInfo: {
path: thismyurl
}
})
} else {
this.$toast(res.resultMessage)
else {
let params = {
orderNO: this.$route.query.orderNo,
isElecCont: this.isElecCont
}
})
if(this.isElecCont == '1') {
params.isElecCont = '0'
}
saveOrderType(params).then(res => {
if(res.result == 0) {
this.$jump({
flag: 'h5',
extra: {
forbidSwipeBack: '1',
url: location.origin + '/#' + thismyurl,
needRefresh: '1'
},
routerInfo: {
path: thismyurl
}
})
} else {
this.$toast(res.resultMessage)
}
})
// this.$jump({
// flag: 'h5',
// extra: {
// forbidSwipeBack: '1',
// url: location.origin + '/#' + thismyurl,
// needRefresh: '1'
// },
// routerInfo: {
// path: thismyurl
// }
// })
}
} else {
this.$jump({
flag: 'h5',

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

@@ -44,10 +44,10 @@
<div class="pcenter-list mr20 mb10 ml15">
<template v-if="branchType != '6'">
<div class="pcenter-item text-center">
<img src="../../../assets/images/home_product_center_m0092.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0092')" />
<img src="../../../assets/images/home_cp_1.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0073')" />
</div>
<div class="pcenter-item text-center">
<img src="../../../assets/images/home_product_center_m0094.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0094')" />
<img src="../../../assets/images/home_cp_2.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0072')" />
</div>
</template>
<template v-else-if="branchType == '6'">
@@ -122,11 +122,11 @@
<div class="home-product-pcenter">
<div class="pcenter-list mr20 mb10 ml15">
<div class="pcenter-item text-center">
<img src="../../../assets/images/home_product_center_m0092.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0092')" />
</div>
<div class="pcenter-item text-center">
<img src="../../../assets/images/home_product_center_m0094.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0094')" />
</div>
<img src="../../../assets/images/home_cp_1.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0073')" />
</div>
<div class="pcenter-item text-center">
<img src="../../../assets/images/home_cp_2.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0072')" />
</div>
</div>
</div>
</div>

View File

@@ -310,10 +310,10 @@ export default {
if(this.appntDTO.name == name){
this.appntDTO.name = ''
}
// let ageRule = /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/
// if (this.appntDTO.name && !ageRule.test(this.appntDTO.name)) {
// return Toast.fail('姓名长度为2-120个字符之内只能输入汉字或者英文')
// }
let ageRule = /^[a-zA-Z0-9\.\s\u4e00-\u9fa5]{2,120}$/
if (this.appntDTO.name && !ageRule.test(this.appntDTO.name)) {
return Toast.fail('姓名长度为2-120个字符之内只能输入汉字、数字或者英文')
}
this.appntDTO.age = String(this.appntDTO.age)
this.$validator.validate().then(valid => {
if (true === valid) {

View File

@@ -339,10 +339,10 @@ export default {
let localSex = this.insured.sex
let relation = this.localInfo.relationToAppnt
let resultSex = checkSex(cacheSex, localSex, relation)
// let ageRule = /^[a-zA-Z0-9\.\s\u4e00-\u9fa5]{2,120}$/
// if (this.insured.name && !ageRule.test(this.insured.name)) {
// return Toast.fail('姓名长度为2-120个字符之内只能输入汉字、数字或者英文')
// }
let ageRule = /^[a-zA-Z0-9\.\s\u4e00-\u9fa5]{2,120}$/
if (this.insured.name && !ageRule.test(this.insured.name)) {
return Toast.fail('姓名长度为2-120个字符之内只能输入汉字、数字或者英文')
}
if (!resultSex) {
return Toast.fail('被保险人性别有误')
}

View File

@@ -1487,10 +1487,26 @@
this.$CacheUtils.setLocItem('orderNo', resultData.orderNo)
// localStorage.insuredDetail = JSON.stringify(this.userInfo)
// 添加提示
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// if (age >= 60 && this.manageComCode == '45') {
// this.thisdoubledialogshow = true
// } else {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
if (age >= 60 && this.manageComCode == '45') {
this.thisdoubledialogshow = true
// this.$dialog
// .alert({
// message: '根据监管要求,本单需要您配合对销售过程进行录音录像!',
// confirmButtonColor: '#000000',
// })
// .then(() => {
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + `/#/sale/insuredPerson?${str}` + '&orderNo=' + resultData.orderNo,
// },
// routerInfo: {
// path: `/sale/insuredPerson?${str}` + '&orderNo=' + resultData.orderNo,
// },
// })
// })
} else {
this.$jump({
flag: 'h5',
extra: {
@@ -1500,7 +1516,7 @@
path: `/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo,
},
})
// }
}
} else {
this.$toast(resultData.resultMessage)
}

View File

@@ -16,12 +16,6 @@
<van-cell title="销售人员工号" :value="recmd.agentCode" />
<van-cell title="销售人员姓名" :value="recmd.name" />
<van-cell title="投保单号" :value="orderInfo.orderNo"></van-cell>
<!-- 电投签名确认新增交费期间 start at 20240910 -->
<div v-if="riskInfo">
<van-cell v-if="riskInfo.payEndYear == '1000'" title="交费期间" value="一次性交清" />
<van-cell v-else title="交费期间" :value="riskInfo.payEndYearFlag == 'Y' ? `${riskInfo.payEndYear}年` : `至${riskInfo.payEndYear}岁`" />
</div>
<!-- 电投签名确认新增交费期间 end at 20240910 -->
<van-cell title="投保日期" :value="date" />
<van-cell title="保费合计(元)" :value="orderInfo.orderAmount == undefined ? '' : orderInfo.orderAmount | moneyFormat" />
<van-cell v-if="cvalidateStr" title="指定保单生效日" :value="cvalidateStr" />
@@ -359,8 +353,6 @@ export default {
riskName: '',
// 员工信息
recmd: {},
// 险种信息 获取交费期间
riskInfo: null,
// 投保时间
date: '',
// 订单信息
@@ -1070,7 +1062,7 @@ export default {
})
getAgentInfo({}).then((res) => {
console.log(res)
if ((res.branchType == 'N1' || res.branchType == '1'||res.branchType == '12' || res.branchType == '13') && !this.isVideo) {
if ((res.branchType == 'N1' || res.branchType == '1') && !this.isVideo) {
this.$jump({
flag: 'navigation',
extra: {
@@ -1170,9 +1162,6 @@ export default {
break
}
}
if(!path) {
path = 'signDocuments'
}
}
}
}
@@ -1190,9 +1179,6 @@ export default {
break
}
}
if(!path) {
path = 'signDocuments'
}
}
}
}
@@ -1207,12 +1193,9 @@ export default {
break
}
}
if(!path) {
path = 'signDocuments'
}
}
}
console.log('12321321'+path)
if (path){
that.$jump({
flag: 'h5',
@@ -1457,7 +1440,6 @@ export default {
let documentCodeType = res.orderDTO.ebizSignDTOS.filter(item=>item.documentCode == '14').length>0
localStorage.setItem('documentCodeType', documentCodeType)
let riskDTOLst = res.orderDTO.insuredDTOs[0].riskDTOLst[0]
this.riskInfo = res.orderDTO.insuredDTOs[0].riskDTOLst[0]
// 判断是否为长期险
if ((riskDTOLst.insuYearFlag == 'Y' && riskDTOLst.insuYear > 1) || riskDTOLst.insuYearFlag == 'A') {
this.$CacheUtils.setLocItem('isLongInsuranceFlag', "Y");
@@ -1884,12 +1866,12 @@ export default {
line-height: 30px;
}
/deep/ .fs16{
font-size: 16px!important;
font-size: 16px;
}
/deep/ .fs20{
font-size: 16px;
font-size: 20px;
.van-cell{
font-size: 16px;
font-size: 20px;
}
}
</style>

View File

@@ -31,8 +31,7 @@
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}}</van-radio>
<van-radio :name="items.option" :label="items.option" class="mr150 ml70">{{items.item}} ({{items.score}})</van-radio>
</van-radio-group>
<div style=" font-size:13px" v-if="item.remarks" v-html="item.remarks">
</div>
@@ -44,23 +43,11 @@
<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, changeOrderStatus } from '@/api/ebiz/sale/sale'
import { saveInformation, getOrderDetail } from '@/api/ebiz/sale/sale'
import IndexBar from '@/components/ebiz/sale/IndexBar'
export default {
data() {
@@ -69,8 +56,6 @@ export default {
],
isDisabled:true,
salePageFlag: '6',
thisdialogshow:false,
productType:'',
}
},
components: {
@@ -87,7 +72,6 @@ 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)
@@ -116,38 +100,6 @@ 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
@@ -207,42 +159,21 @@ methods:{
}
saveInformation(data).then(res => {
if (res.result == '0') {
let that = this
localStorage.removeItem('changeCard')
if (!this.$route.query.salePageFlag) {
//不是从导航栏进入
localStorage.salePageFlag = '7'
}
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
}
})
}
that.$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: 16px;" plain type='danger' size='large' v-no-more-click='1000' @click="prevStep">上一步
<van-button style="width: 30%;font-size: 20px;" plain type='danger' size='large' v-no-more-click='1000' @click="prevStep">上一步
</van-button>
<van-button style="width: 70%;font-size: 16px;" type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>
<van-button style="width: 70%;font-size: 20px;" 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: 16px;
font-size: 20px;
.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: 16px;" class="fs20">
<div style="margin-top: 15px;font-weight: bold;line-height: 32px;font-size: 20px;" 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: 16px;font-weight: bold;">2.您将为以下文件进行统一签名</p>
<p style="font-size: 20px;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: 16px;color: red;opacity: 0.7;width: 60%;display: inline-block;">{{item.name}}</span>
<span style="font-size: 20px;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: 16px;color: #03ceaf;margin-left: 10px;">签署完成</span>
<span style="font-size: 20px;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: 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">
<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">
{{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: 16px;" block v-no-more-click='1000' @click="gonext">
<van-button :disabled="nextDisabled" type='danger' size='normal' style="font-size: 20px;" 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: 16px;
font-size: 20px;
.van-button__text{
padding: 8px 16px;
padding: 10px 20px;
}
}
</style>