Compare commits

..

21 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
0615088cae 被保人人脸识别增加外国人永久居住证校验 2024-03-14 13:51:47 +08:00
liu.xiaofeng@ebiz-digits.com
5a95805d87 外国人永久居住证人脸识别的时候传递证件类型 2024-03-14 13:51:44 +08:00
liu.xiaofeng@ebiz-digits.com
256eefb80e 签字确认页面增加证件类型判断确定是否需要进行人脸识别 2024-03-14 13:51:39 +08:00
liu.xiaofeng@ebiz-digits.com
bf74ade0a4 投被受 增加规则校验 2024-03-14 13:48:17 +08:00
liu.xiaofeng@ebiz-digits.com
a8c66abbcd 外国人永久居留身份证增加长度校验 2024-03-14 13:47:48 +08:00
liu.xiaofeng@ebiz-digits.com
c0118b6cf0 学平险和万福卡增加外国人永久居住证需求内容 2024-03-14 13:45:39 +08:00
liu.xiaofeng@ebiz-digits.com
f9bcf7d771 学平险和意外险卡单投保流程增加外国人永久居住证的规则校验 2024-03-14 13:45:34 +08:00
liu.xiaofeng@ebiz-digits.com
6813ad8ab4 健康险支持外国人永久居留身份证办理的业务功能及非功能性需求 2024-03-14 13:45:29 +08:00
liu.xiaofeng@ebiz-digits.com
c86107aaaf 投被受 增加规则校验 2024-03-14 13:40:34 +08:00
liu.xiaofeng@ebiz-digits.com
c1dfd27604 外国人永久居留身份证增加长度校验 2024-03-14 13:39:41 +08:00
liu.xiaofeng@ebiz-digits.com
da88573133 证件有效期检验提示语修改 2024-03-14 13:35:55 +08:00
liu.xiaofeng@ebiz-digits.com
9d6105f0ed 外国人证件有效期计算补零操作 2024-03-14 13:35:51 +08:00
liu.xiaofeng@ebiz-digits.com
d06b794cbc 外国人永久居住证校验位检测去掉小写x 2024-03-14 13:35:47 +08:00
liu.xiaofeng@ebiz-digits.com
f7b7936dee 卡单证件有效期计算增加与当前日期对比的逻辑 2024-03-14 13:35:43 +08:00
liu.xiaofeng@ebiz-digits.com
280ec19892 卡单证件有效期计算增加与当前日期对比的逻辑 2024-03-14 13:35:39 +08:00
liu.xiaofeng@ebiz-digits.com
464ca95731 外国人永久居住证证件号码长度为15位的时候去掉生日和性别校验 2024-03-14 13:35:36 +08:00
liu.xiaofeng@ebiz-digits.com
55e200e36e 外国人证件有效期计算逻辑修改 2024-03-14 13:35:28 +08:00
liu.xiaofeng@ebiz-digits.com
47fb573cd6 外国人永久居住证15性别校验修改 2024-03-14 13:35:24 +08:00
liu.xiaofeng@ebiz-digits.com
fc68b2aab3 外国人永久居住证15日期校验修改 2024-03-14 13:35:21 +08:00
liu.xiaofeng@ebiz-digits.com
4fbb0e9470 投被受 增加规则校验 2024-03-14 13:35:18 +08:00
liu.xiaofeng@ebiz-digits.com
a10e6d29a4 外国人永久居留身份证增加长度校验 2024-03-14 13:35:14 +08:00
25 changed files with 726 additions and 541 deletions

View File

@@ -116,12 +116,3 @@ export function saveOrUpdateGbc(data) {
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

@@ -396,12 +396,4 @@ export function changeOrderStatus(data) {
method: 'post',
data
})
}
export function riskLevelCheck(data) {
return request({
url: getUrl('/sale/order/riskLevelCheck', 1),
method: 'post',
data
})
}

View File

@@ -1046,6 +1046,10 @@ export default {
{
id: 2,
text: '户口本'
},
{
id: 8,
text: '外国人永久居留身份证'
}
],
// 卡单投保人证件类型
@@ -1055,8 +1059,8 @@ export default {
text: '居民身份证'
},
{
id: 2,
text: '户口本'
id: 8,
text: '外国人永久居留身份证'
}
],
// 新市民身份

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

@@ -52,14 +52,14 @@
</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>
<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="interviewConversionRate" :speed="100" :text="text" />
<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 calGbcProjectDataList" style="width: 33%;display: flex;justify-content: space-around;align-items: center;">
<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>
@@ -76,7 +76,7 @@
<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>
<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>
@@ -85,11 +85,11 @@
<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 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>
@@ -97,15 +97,14 @@
<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>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</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>
@@ -126,42 +125,40 @@
<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>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
<td>.00</td>
</tr>
<tr v-for="(item,index) in 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 v-for="(item,index) in dataList3" :key="index" class="tbodyClass">
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
<td>{{item.name}}</td>
</tr>
</tbody>
</table>
@@ -188,7 +185,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 +217,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:[],
}
},
@@ -244,34 +254,8 @@ export default {
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 = ''
@@ -455,8 +439,4 @@ export default {
border-bottom:1px solid #fff;
}
}
.teamNameTdClass{
display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
//width: 105px;
}
</style>

View File

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

View File

@@ -246,6 +246,7 @@ import { selectComp, getIdentityInfo } from './js/methods'
import Vue from 'vue'
import { GoodsAction, GoodsActionIcon, GoodsActionButton } from 'vant'
import riskRules from '@/views/ebiz/common/risk-rules'
import {idNoCheck8} from "../sale/js/verification";
DataDictionary.relationToAppnt = DataDictionary.relationToAppnt.slice(0, 4)
Vue.use(Checkbox).use(CheckboxGroup)
@@ -550,7 +551,7 @@ export default {
this.columns = DataDictionary.nativeplace
this.pickerIndex = this.userInfo.nativeplace - 1 > 0 ? this.userInfo.nativeplace - 1 : 0
} else if (pickerType == '2') {
this.columns = DataDictionary.cardListInsuredIdType.slice(0, 1)
this.columns = DataDictionary.cardListInsuredIdType
console.log(this.columns, '=======================this.columns==================')
} else if (pickerType == '3') {
this.columns = DataDictionary.degree
@@ -852,6 +853,11 @@ export default {
}
}
}
else if (this.userInfo.idType == '8') {
if (idNoCheck8(this.userInfo,'cardList').text){
return this.$toast(idNoCheck8(this.userInfo,'cardList').text)
}
}
if (this.manageComCode == '45' && (this.userInfo.isNewPeopleFlag == '' || this.userInfo.isNewPeopleFlag == null || this.userInfo.isNewPeopleFlag == undefined)) {
return this.$toast('投保人新市民身份不能为空')
}

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

@@ -313,6 +313,7 @@ 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'
import {idNoCheck8} from "../sale/js/verification";
DataDictionary.relationToAppnt = DataDictionary.relationToAppnt.slice(0, 4)
Vue.use(Checkbox).use(CheckboxGroup)
@@ -1267,11 +1268,17 @@ export default {
return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年')
}
}
}else if(this.insuredInfo.idType == '2'){
}
else if(this.insuredInfo.idType == '2'){
if (idToData(this.insuredInfo.idNo).age >= 16) {
return this.$toast('客户年龄在16周岁以上不能使用户口本作为有效证件')
}
}
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
// 如果是未成年人

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

@@ -272,7 +272,6 @@
label='职业类别'
placeholder='请输入'
name='职业类别'
readonly
:value='insuredInfo.occupationName'
right-icon='arrow'
/>
@@ -537,7 +536,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,10 +595,6 @@
||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
@@ -959,7 +954,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
@@ -1034,6 +1029,7 @@ export default {
}
},
methods: {
//试算逻辑国富万福卡GFRS_M0071
insureTrial() {
// if(this.insuredInfo.birthday || that.$route.query.relationToAppnt == '1'){
if (this.userInfo.relationToInsured == 1) {
@@ -1131,11 +1127,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 +1146,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
}
},
/**
@@ -1834,14 +1824,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
@@ -2075,7 +2060,12 @@ export default {
return this.$toast(idNoCheck8(this.userInfo,'cardList').text)
}
}
let insuredAge = utilsAge.getAge(this.insuredInfo.birthday, new Date(this.cvaliDate))
else if (this.insuredInfo.idType == '8') {
if (idNoCheck8(this.insuredInfo,'cardList').text){
return this.$toast(idNoCheck8(this.insuredInfo,'cardList').text)
}
}
let insuredAge = utilsAge.getAge(this.insuredInfo.birthday, new Date())
console.log('计算年龄', insuredAge)
//如果证件类型是身份证或户口本
if (this.insuredInfo.idType == '1') {
@@ -2214,11 +2204,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
// 如果是未成年人
@@ -2261,21 +2246,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'){
@@ -2394,27 +2393,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 {
@@ -2560,9 +2538,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) {
@@ -2767,11 +2742,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
@@ -2783,22 +2757,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
@@ -2815,7 +2775,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
@@ -2887,7 +2846,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()
}
},
@@ -2897,7 +2856,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: '立即投保',

View File

@@ -2761,21 +2761,6 @@
}
}
}
else if (productCode == 'GFRS_M0087') {
if(this.saleInsuredPersonInfo.insuredAge>=18 && this.saleInsuredPersonInfo.insuredAge <= 40) {
currentEle['maxAmt'] = 70
}
else if(this.saleInsuredPersonInfo.insuredAge>=41 && this.saleInsuredPersonInfo.insuredAge <= 45) {
currentEle['maxAmt'] = 50
}
else if(this.saleInsuredPersonInfo.insuredAge>=46 && this.saleInsuredPersonInfo.insuredAge <= 50) {
currentEle['maxAmt'] = 40
}
else if(this.saleInsuredPersonInfo.insuredAge>=51 && this.saleInsuredPersonInfo.insuredAge <= 60) {
currentEle['maxAmt'] = 30
}
this.getTrial()
}
else if (this.isTrial === '0' && this.chooseProducts[productIndex].isMainRisk == '0') {
if (Number(defalutValue) < Number(min)) {
if (riskFactor.yearWay == "一次性交清") {

View File

@@ -52,7 +52,7 @@
<script>
import { Cell, CellGroup, Tag, Radio, RadioGroup,Tab,Tabs} from 'vant'
import { mainRiskList,mainRiskListProposal,calculatePremium,getActProductList } from '@/api/ebiz/common/common'
import { getOrderDetail, riskLevelCheck } from '@/api/ebiz/sale/sale'
import { getOrderDetail } from '@/api/ebiz/sale/sale'
import { getDetail } from '@/api/ebiz/proposal/proposal.js'
import riskRules from './risk-rules'
export default {
@@ -70,7 +70,7 @@ export default {
return {
recommendType: '', // 渠道控制
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
active: 'normal',
active: 2,
specilFlag: '0',
flag: true,
list: [],
@@ -105,6 +105,8 @@ 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 银保渠道
@@ -143,6 +145,26 @@ export default {
}
},
methods: {
// checkItemShow(item) {
// if (this.activeFlag != 'KMH' && this.activeFlag != 'SQY') {
// return true
// }
// let showFlag = false
// if (item.activeLst && item.activeLst.length > 0) {
// item.activeLst.forEach(subItem => {
// if (this.activeFlag && this.activeFlag == 'KMH') {
// if (subItem == 'KMH') {
// showFlag = true;
// }
// }else if (this.activeFlag && this.activeFlag == 'SQY') {
// if (subItem == 'SQY') {
// showFlag = true;
// }
// }
// })
// }
// return showFlag
// },
onChangeMainList(name){
if (name == 'cross') {
this.isCrossChannel = '1';
@@ -202,25 +224,24 @@ export default {
}
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
}
})
})
}
}
},
@@ -279,63 +300,40 @@ export default {
}
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
}
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()
}
//置空产品
localStorage.chooseProducts = ''
//添加主险
this.addMainRisk()
},
//储存主险
async addMainRisk() {

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

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

@@ -247,7 +247,7 @@ import utilsAge from '@/assets/js/utils/age'
import IdentityCardScan from '@/components/ebiz/sale/IdentityCardScan'
import CustomerPicker from '@/components/ebiz/customer/CustomerPicker'
import idNoCheck from '@/assets/js/utils/idNoCheck'
import { idToData } from './js/verification'
import {idNoCheck8, idToData} from './js/verification'
import { selectComp } from './js/methods'
import getAreaName from '@/assets/js/utils/getAreaNameForSale'
import { getOrderDetail, checkAppointBnf } from '@/api/ebiz/sale/sale'
@@ -961,7 +961,8 @@ export default {
}
}
//证件类型是户口本
} else if (this.userInfo.idType == '2') {
}
else if (this.userInfo.idType == '2') {
if (age >= 16) {
return this.$toast('客户年龄在16周岁以上不能使用户口本作为有效证件')
}
@@ -1009,7 +1010,8 @@ export default {
return this.$toast('您填写的证件号码有误')
}
//证件类型是出生证明
} else if (this.userInfo.idType == '3') {
}
else if (this.userInfo.idType == '3') {
if (age >= 2) {
return this.$toast('客户年龄在2周岁及以上不能使用出生证作为有效证件')
}
@@ -1019,20 +1021,29 @@ export default {
return this.$toast('您填写的证件号码有误')
}
//证件类型是护照
} else if (this.userInfo.idType == '4') {
}
else if (this.userInfo.idType == '4') {
if (this.userInfo.nativeplace == '1') {
return this.$toast('“证件类型”为“外国人护照”,“国籍”不能选择为“中国”哦~')
}
} else if (this.userInfo.idType == '5') {
}
else if (this.userInfo.idType == '5') {
console.log(this.userInfo.nativeplace, 'nativeplace')
if (this.userInfo.nativeplace != '2' && this.userInfo.nativeplace != '3') {
return this.$toast('“证件类型”为“港澳居民来往内地通行证”,“国籍”请选择“中国香港”或“中国澳门”哦~')
}
} else if (this.userInfo.idType == '6') {
}
else if (this.userInfo.idType == '6') {
if (this.userInfo.nativeplace != '4') {
return this.$toast('“证件类型”为“台湾居民来往大陆通行证”,“国籍”请选择“中国台湾”~')
}
} else if (this.userInfo.idType == '9') {
}
else if (this.userInfo.idType == '8') {
if (idNoCheck8(this.userInfo).text){
return this.$toast(idNoCheck8(this.userInfo).text)
}
}
else if (this.userInfo.idType == '9') {
if (this.userInfo.nativeplace != '2' && this.userInfo.nativeplace != '3' && this.userInfo.nativeplace != '4') {
return this.$toast('“证件类型”为“港澳台居民居住证”,“国籍”请选择“中国香港”、“中国澳门”或“中国台湾”~')
}

View File

@@ -460,7 +460,7 @@
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 './js/verification'
import { idToData, idNoCheck8 } from './js/verification'
import { selectComp, getIdentityInfo } from './js/methods'
import SearchField from '@/components/common/SearchField'
import riskRules from '@/views/ebiz/common/risk-rules'
@@ -773,8 +773,6 @@
this.isNewPeopleFlagTipshow = true
},
workcompanys(list) {
// 单位数据
console.log(list)
this.userWorkcompanys = list
},
setCustomerMarriage(marriageCode) {
@@ -1243,28 +1241,39 @@
}
}
//证件类型是户口本
} else if (this.userInfo.idType == '2') {
}
else if (this.userInfo.idType == '2') {
if (age > 16) {
return this.$toast('客户年龄在16周岁以上不能使用户口本作为有效证件')
}
} else if (this.userInfo.idType == '3') {
}
else if (this.userInfo.idType == '3') {
if (age >= 2) {
return this.$toast('客户年龄在2周岁及以上不能使用出生证作为有效证件')
}
} else if (this.userInfo.idType == '4') {
}
else if (this.userInfo.idType == '4') {
if (this.userInfo.nativeplace == '1') {
return this.$toast('“证件类型”为“外国人护照”,“国籍”不能选择为“中国”哦~')
}
} else if (this.userInfo.idType == '5') {
}
else if (this.userInfo.idType == '5') {
console.log(this.userInfo.nativeplace, 'nativeplace')
if (this.userInfo.nativeplace != 2 && this.userInfo.nativeplace != 3) {
return this.$toast('“证件类型”为“港澳居民来往内地通行证”,“国籍”请选择“中国香港”或“中国澳门”哦~')
}
} else if (this.userInfo.idType == '6') {
}
else if (this.userInfo.idType == '6') {
if (this.userInfo.nativeplace != 4) {
return this.$toast('“证件类型”为“台湾居民来往大陆通行证”,“国籍”请选择“中国台湾”~')
}
} else if (this.userInfo.idType == '9') {
}
else if (this.userInfo.idType == '8') {
if (idNoCheck8(this.userInfo).text){
return this.$toast(idNoCheck8(this.userInfo).text)
}
}
else if (this.userInfo.idType == '9') {
if (this.userInfo.nativeplace != 2 && this.userInfo.nativeplace != 3 && this.userInfo.nativeplace != 4) {
return this.$toast('“证件类型”为“港澳台居民居住证”,“国籍”请选择“中国香港”、“中国澳门”或“中国台湾”~')
}
@@ -1487,10 +1496,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 +1525,7 @@
path: `/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo,
},
})
// }
}
} else {
this.$toast(resultData.resultMessage)
}
@@ -1590,35 +1615,37 @@
}
},
getRelatedData(val, source) {
if (this.userInfo.idType != '1') {
if (this.userInfo.idType != '1' && this.userInfo.idType != '8') {
return
}
//如果证件校验不通过,恢复默认值
if (idToData(val).text) {
;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
return this.$toast(idToData(val).text)
}
// // 判断投保人年龄是否大于16周岁
// if (idToData(val).age <= 16) {
// ;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
// return this.$toast('亲投保人年龄必须大于等于16周岁哦~')
// }
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = idToData(val).age <= 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
//年龄小于18周岁工作单位默认值为
if (idToData(val).age < 18) {
this.userInfo.workcompany = this.userInfo.workcompany || '无'
}
if (idToData(val).age > 45) {
if (source) {
this.userInfo.effectiveDateType = true
if(this.userInfo.idType == '1'){
//如果证件校验不通过,恢复默认值
if (idToData(val).text) {
;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
return this.$toast(idToData(val).text)
}
// // 判断投保人年龄是否大于16周岁
// if (idToData(val).age <= 16) {
// ;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
// return this.$toast('亲投保人年龄必须大于等于16周岁哦~')
// }
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = idToData(val).age <= 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
//年龄小于18周岁工作单位默认值为
if (idToData(val).age < 18) {
this.userInfo.workcompany = this.userInfo.workcompany || '无'
}
if (idToData(val).age > 45) {
if (source) {
this.userInfo.effectiveDateType = true
}
this.effectiveDateTypeAble = false
} else {
// this.userInfo.effectiveDateType = false
}
this.effectiveDateTypeAble = false
} else {
// this.userInfo.effectiveDateType = false
}
},
},

View File

@@ -493,7 +493,7 @@
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 './js/verification'
import {idNoCheck8, idToData} from './js/verification'
import { selectComp, getIdentityInfo } from './js/methods'
import IndexBar from '@/components/ebiz/sale/IndexBar'
import SearchField from '@/components/common/SearchField'
@@ -1540,7 +1540,8 @@
// }
//证件类型是户口本
} else if (this.userInfo.idType == '2') {
}
else if (this.userInfo.idType == '2') {
if (this.userInfo.nativeplace != '1') {
return this.$toast('证件类型”为“身份证,国籍必须为中国哦')
}
@@ -1591,7 +1592,8 @@
// return this.$toast('户口本的证件号码长度应等于18位')
// }
//证件类型是出生证明
} else if (this.userInfo.idType == '3') {
}
else if (this.userInfo.idType == '3') {
if (age >= 2) {
return this.$toast('客户年龄在2周岁及以上不能使用出生证作为有效证件')
}
@@ -1604,20 +1606,29 @@
// return this.$toast('出生证须大于等于3个字符')
// }
//证件类型是护照
} else if (this.userInfo.idType == '4') {
}
else if (this.userInfo.idType == '4') {
if (this.userInfo.nativeplace == '1') {
return this.$toast('“证件类型”为“外国人护照”,“国籍”不能选择为“中国”哦~')
}
} else if (this.userInfo.idType == '5') {
}
else if (this.userInfo.idType == '5') {
console.log(this.userInfo.nativeplace, 'nativeplace')
if (this.userInfo.nativeplace != 2 && this.userInfo.nativeplace != 3) {
return this.$toast('“证件类型”为“港澳居民来往内地通行证”,“国籍”请选择“中国香港”或“中国澳门”哦~')
}
} else if (this.userInfo.idType == '6') {
}
else if (this.userInfo.idType == '6') {
if (this.userInfo.nativeplace != 4) {
return this.$toast('“证件类型”为“台湾居民来往大陆通行证”,“国籍”请选择“中国台湾”~')
}
} else if (this.userInfo.idType == '9') {
}
else if (this.userInfo.idType == '8') {
if (idNoCheck8(this.userInfo).text){
return this.$toast(idNoCheck8(this.userInfo).text)
}
}
else if (this.userInfo.idType == '9') {
if (this.userInfo.nativeplace != 2 && this.userInfo.nativeplace != 3 && this.userInfo.nativeplace != 4) {
return this.$toast('“证件类型”为“港澳台居民居住证”,“国籍”请选择“中国香港”、“中国澳门”或“中国台湾”~')
}

View File

@@ -769,7 +769,7 @@ export default {
window.localStorage.setItem('sign-appnt', JSON.stringify(that.appntSign))
if (val == '0' || val == '2') {
//idtype不为身份证跳过人脸识别
if (JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).idType != '1') {
if (JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).idType != '1' && JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).idType != '8') {
that.goUrl()
} else {
// 白名单校验
@@ -801,9 +801,10 @@ export default {
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken'] && this.$route.query.faceAuthCountWeixin != undefined) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']))
} else {
this.idcardData.realName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).name
this.idcardData.idno = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).idNo
this.recognition()
this.idcardData.realName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).name
this.idcardData.idno = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).idNo
this.idcardData.idType = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).idType
this.recognition()
}
// if (this.faceAuthCount.appnt < this.smsAuthNum) {
// this.idcardData.realName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).name
@@ -824,9 +825,7 @@ export default {
} else {
thismyage = thismysaleInsuredPersonInfo.insuredAge
}
if (
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idType != '1' || thismyage < '18'
) {
if ((JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idType != '1' && JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idType != '8') || thismyage < '18') {
that.goUrl()
} else {
// 白名单校验
@@ -858,9 +857,10 @@ export default {
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken'] && this.$route.query.faceAuthCountWeixin != undefined) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']))
} else {
this.idcardData.realName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).name
this.idcardData.idno = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idNo
this.recognition()
this.idcardData.realName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).name
this.idcardData.idno = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idNo
this.idcardData.idType = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).idType
this.recognition()
}
// if (this.faceAuthCount.insured < this.smsAuthNum) {
// this.idcardData.realName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).name
@@ -876,7 +876,7 @@ export default {
if (val == '0' || val == '2') {
window.localStorage.setItem('sign-val', val)
window.localStorage.setItem('sign-appnt', JSON.stringify(that.appntSign))
if (this.saleInsuredInfo.idType != '1') {
if (this.saleInsuredInfo.idType != '1' && this.saleInsuredInfo.idType != '8') {
that.goUrl()
} else {
//RID 状态--有效
@@ -905,11 +905,16 @@ export default {
}
if (this.faceAuthCount.appnt < this.smsAuthNum) {
// 人脸识别
let thisidType = ''
if(that.saleInsuredInfo.idType == 8) {
thisidType = '05'
}
//eslint-disable-next-line no-undef
const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名
name: that.saleInsuredInfo.name, //姓名
idType: thisidType, //证件类型
}).then((data) => {
if (JSON.parse(data).state == '1') {
// 保存rid 数据
@@ -937,7 +942,7 @@ export default {
} else {
thismyage = this.saleInsuredPersonInfo.insuredAge
}
if (this.saleInsuredPersonInfo.idType != '1' || thismyage < '18') {
if ((this.saleInsuredPersonInfo.idType != '1' && this.saleInsuredPersonInfo.idType != '8') || thismyage < '18') {
that.goUrl()
} else {
//RID 状态--有效
@@ -969,11 +974,16 @@ export default {
// 人脸识别
if (this.faceAuthCount.insured < this.smsAuthNum) {
let thisidType = ''
if(that.saleInsuredPersonInfo.idType == 8) {
thisidType = '05'
}
// 调原生人脸识别
const authRes = await EWebBridge.webCallAppInJs('face_auth', {
businessSource: '1', //业务来源:1-电投2-入司3-理赔4-保全
number: that.saleInsuredPersonInfo.idNo, //身份证号码
name: that.saleInsuredPersonInfo.name //姓名
name: that.saleInsuredPersonInfo.name, //姓名
idType: thisidType, //证件类型
}).then((data) => {
if (JSON.parse(data).state == '1') {
that.saveCustomerRidInfo('insured_rid', 'B')
@@ -1746,6 +1756,9 @@ export default {
redirectUrl: this.idcardData.redirectUrl,
businessSource: this.idcardData.businessSource
}
if(this.idcardData.idType == 8) {
data.idType = '05'
}
getRecognitionUrl(data).then(
(res) => {
if (res.result == '0') {

View File

@@ -24,6 +24,30 @@ export function idToData(idNo) {
text: '您填写的证件号码有误'
}
}
console.log('12321321321')
let birthday = getBirthById(idNo)
let age = utilsAge.getAge(birthday, new Date())
let sex = getSexById(idNo)
return {
birthday,
age,
sex
}
}
//外国人永久居留身份证带出出生日期,性别,年龄
export function idToData8(idNo) {
//非空
if (!idNo.trim()) {
return {
text: '证件号码不能为空'
}
}
if (idNo.length != 15 && idNo.length != 18) {
return {
text: '外国人永久居留身份证位数有误'
}
}
let birthday = getBirthById(idNo)
let age = utilsAge.getAge(birthday, new Date())
let sex = getSexById(idNo)
@@ -35,20 +59,218 @@ export function idToData(idNo) {
}
function getBirthById(idNo) {
// 获取生日
var year = idNo.substr(6, 4)
var month = idNo.substr(10, 2)
var day = idNo.substr(12, 2)
return year + '-' + month + '-' + day
if(idNo.length == 15) {
// 获取生日
let year = '19' + idNo.substr(6, 2)
let month = idNo.substr(8, 2)
let day = idNo.substr(10, 2)
return year + '-' + month + '-' + day
}
if(idNo.length == 18) {
// 获取生日
let year = idNo.substr(6, 4)
let month = idNo.substr(10, 2)
let day = idNo.substr(12, 2)
return year + '-' + month + '-' + day
}
}
function getSexById(idNo) {
// 获取性别
if (idNo.charAt(16) >= '0' && idNo.charAt(16) <= '9') {
if (parseInt(idNo.charAt(16)) % 2 == 0) {
return '1'
} else {
return '0'
// if(idNo.length == 15){
// // 获取性别
// if (idNo.charAt(13) >= '0' && idNo.charAt(13) <= '9') {
// if (parseInt(idNo.charAt(13)) % 2 == 0) {
// return '1'
// } else {
// return '0'
// }
// }
// }
if(idNo.length == 18) {
// 获取性别
if (idNo.charAt(16) >= '0' && idNo.charAt(16) <= '9') {
if (parseInt(idNo.charAt(16)) % 2 == 0) {
return '1'
} else {
return '0'
}
}
}
}
function js_date_time(unixtime) {
var dateTime = new Date(parseInt(unixtime))
var year = dateTime.getFullYear();
var month = dateTime.getMonth() + 1;
var day = dateTime.getDate();
var timeSpanStr = year + '-' + month.toString().padStart(2, '0') + '-' + day.toString().padStart(2, '0');
return timeSpanStr;
}
export function idNoCheck8(userInfo,type) {
if(!userInfo.idNo) {
return {
text: '证件号码不能为空'
}
}
if(userInfo.idNo.length != 15 && userInfo.idNo.length != 18) {
return {
text: '外国人永久居留身份证位数有误'
}
}
if(userInfo.idNo.length == 15) {
let reg = /^[A-Za-z]{3}\d{12}$/
if(!reg.test(userInfo.idNo)) {
return {
text: '外国人永久居留身份证位数有误'
}
}
}
if(userInfo.idNo.length == 18) {
let reg = / (^9\d{17}$)|(^9\d{16}(\d|X)$)/
if(!reg.test(userInfo.idNo)) {
return {
text: '外国人永久居留身份证位数有误'
}
}
}
// if(userInfo.idNo.length == 15) {
// // 获取生日
// let year = '19' + userInfo.idNo.substr(7, 2)
// let month = userInfo.idNo.substr(9, 2)
// let day = userInfo.idNo.substr(11, 2)
// let thisBirthday = year + '-' + month + '-' + day
// if(thisBirthday != userInfo.birthday) {
// console.log('12321321321',thisBirthday)
// return {
// text: '出生日期必须与证件号码中的生日一致'
// }
// }
// }
if(userInfo.idNo.length == 18) {
// 获取生日
let year = userInfo.idNo.substr(6, 4)
let month = userInfo.idNo.substr(10, 2)
let day = userInfo.idNo.substr(12, 2)
let thisBirthday = year + '-' + month + '-' + day
if(thisBirthday != userInfo.birthday) {
return {
text: '出生日期必须与证件号码中的生日一致'
}
}
}
if(userInfo.idNo.length == 18){
let thisSex = getSexById(userInfo.idNo)
if(thisSex != userInfo.sex) {
return {
text: '性别必须与证件号码中的一致'
}
}
}
if (userInfo.nativeplace == '1' || userInfo.nativeplace == '2' || userInfo.nativeplace == '3' || userInfo.nativeplace == '4') {
return {
text: '外国人永久居留身份证不能选择中国国籍'
}
}
if(!userInfo.certiexpiredate) {
return {
text: '证件截止日期不能为空'
}
}
if(type == 'cardList') {
let thisAge = utilsAge.getAge(userInfo.birthday, new Date())
if(thisAge < 18) {
let date1 = new Date(userInfo.certiexpiredate.replace(/-/g,'/'));
let date2 = date1.setFullYear(date1.getFullYear() - 5);
let date3 = date2+(1000*60*60*24)
let date4 = js_date_time(date3)
let thisAge = utilsAge.getAge(userInfo.birthday, new Date(date4.replace(/-/g,'/')))
if(thisAge > 18) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
if(date3 > new Date().getTime()) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
}
if(thisAge >= 18 && thisAge <= 22) {
let date1 = new Date(userInfo.certiexpiredate.replace(/-/g,'/'));
let date2 = date1.setFullYear(date1.getFullYear() - 5);
let date3 = date2+(1000*60*60*24)
let date4 = js_date_time(date3)
let date5 = new Date(userInfo.certiexpiredate.replace(/-/g,'/'));
let date6 = date5.setFullYear(date5.getFullYear() - 10);
let date7 = date6+(1000*60*60*24)
let date8 = js_date_time(date7)
let thisAge1 = utilsAge.getAge(userInfo.birthday, new Date(date4.replace(/-/g,'/')))
let thisAge2 = utilsAge.getAge(userInfo.birthday, new Date(date8.replace(/-/g,'/')))
if(thisAge1 >= 18 && thisAge2 < 18){
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
if(thisAge1 < 18 && date3 > new Date().getTime()) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
if(thisAge2 >= 18 &&date7 > new Date().getTime()) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
}
if(thisAge >= 23) {
let date1 = new Date(userInfo.certiexpiredate.replace(/-/g,'/'));
let date2 = date1.setFullYear(date1.getFullYear() - 10);
let date3 = date2+(1000*60*60*24)
let date4 = js_date_time(date3)
let thisAge = utilsAge.getAge(userInfo.birthday, new Date(date4.replace(/-/g,'/')))
if(thisAge < 18) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
if(date3 > new Date().getTime()) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
}
} else {
let thisAge = utilsAge.getAge(userInfo.birthday, new Date(userInfo.certificateValidate))
if(thisAge < 18) {
let date1 = new Date(userInfo.certificateValidate.replace(/-/g,'/'));
let date2 = date1.setFullYear(date1.getFullYear() + 5);
let date3 = date2-(1000*60*60*24)
let date4 = js_date_time(date3)
console.log(date4+'-'+userInfo.certiexpiredate)
if(date4 != userInfo.certiexpiredate) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
}
if(thisAge >= 18) {
let date1 = new Date(userInfo.certificateValidate.replace(/-/g,'/'));
let date2 = date1.setFullYear(date1.getFullYear() + 10);
let date3 = date2-(1000*60*60*24)
let date4 = js_date_time(date3)
if(date4 != userInfo.certiexpiredate) {
return {
text: '外国人永久居留身份证证件有效期有误'
}
}
}
}
return {
text:''
}
}