合并dc代码

This commit is contained in:
zhouna
2019-09-21 15:54:54 +08:00
parent a20cfd12a1
commit 65d9e42c4e
27 changed files with 1343 additions and 739 deletions

View File

@@ -161,3 +161,12 @@ export function checkSignInvalid(data) {
data
})
}
// 提交核保
export function selfToHuman(data) {
return request({
url: getUrl('/sale/insure/selfToHuman', 1),
method: 'post',
data
})
}

View File

@@ -523,6 +523,7 @@ export default {
sex: insuredDTO.sex,
idType: insuredDTO.idType,
age: insuredPersonAge,
marriage: insuredDTO.marriage,
relationToAppnt: insuredDTO.relationToAppnt,
medical: insuredDTO.medical,
occupationName: insuredDTO.occupationName,

View File

@@ -1,12 +1,12 @@
export default {
getAge: function(name, today) {
getAge: function (name, today) {
return this.getAgeByValue(name, today)
},
getAgeByBirth: function(value, today) {
getAgeByBirth: function (value, today) {
return this.getAgeByValue(value, today)
},
getAgeByValue: function(value, today) {
getAgeByValue: function (value, today) {
var b = value.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/)
if (b == null) {
return null
@@ -22,7 +22,7 @@ export default {
}
if (age < 1) {
var dayNum = this.getDateDiff(value, nowY + '-' + (today.getMonth() + 1) + '-' + today.getDate())
if (dayNum <= 28) {
if (dayNum <= 27) {
age--
}
}
@@ -33,7 +33,7 @@ export default {
/**
* 取得两个日期的时间差
*/
getDateDiff: function(date1, date2) {
getDateDiff: function (date1, date2) {
var dt1, dt2
if (date1 instanceof Date) {
dt1 = date1
@@ -51,7 +51,7 @@ export default {
/**
* 字符串转日期
*/
stringToDate: function(string) {
stringToDate: function (string) {
return new Date(Date.parse(string.replace(/-/g, '/')))
}
}

View File

@@ -2,246 +2,246 @@
export default {
//国家地区
nativeplace: [
{ code: 'CHN', text: '中国' },
{ code: 'HKG', text: '中国香港' },
{ code: 'MAC', text: '澳门' },
{ code: 'TWN', text: '中国台湾' },
{ code: 'ABW', text: '阿鲁巴' },
{ code: 'AFG', text: '阿富汗' },
{ code: 'AGO', text: '安哥拉' },
{ code: 'AIA', text: '安圭拉' },
{ code: 'ALB', text: '阿尔巴尼亚' },
{ code: 'AND', text: '安道尔' },
{ code: 'ANT', text: '荷属安的列斯' },
{ code: 'ARE', text: '阿联酋' },
{ code: 'ARG', text: '阿根廷' },
{ code: 'ARM', text: '亚美尼亚' },
{ code: 'ASM', text: '美属萨摩亚' },
{ code: 'ATA', text: '南极洲' },
{ code: 'ATF', text: '法属南部领土' },
{ code: 'ATG', text: '安提瓜和巴布达' },
{ code: 'AUS', text: '澳大利亚' },
{ code: 'AUT', text: '奥地利' },
{ code: 'AZE', text: '阿塞拜疆' },
{ code: 'BDI', text: '布隆迪' },
{ code: 'BEL', text: '比利时' },
{ code: 'BEN', text: '贝宁' },
{ code: 'BFA', text: '布基纳法索' },
{ code: 'BGD', text: '孟加拉国' },
{ code: 'BGR', text: '保加利亚' },
{ code: 'BHR', text: '巴林' },
{ code: 'BHS', text: '巴哈马' },
{ code: 'BIH', text: '波斯尼亚和黑塞哥维那' },
{ code: 'BLR', text: '白俄罗斯' },
{ code: 'BLZ', text: '伯利兹' },
{ code: 'BMU', text: '百慕大' },
{ code: 'BOL', text: '玻利维亚' },
{ code: 'BRA', text: '巴西' },
{ code: 'BRB', text: '巴巴多斯' },
{ code: 'BRN', text: '文莱' },
{ code: 'BTN', text: '不丹' },
{ code: 'BVT', text: '布维岛' },
{ code: 'BWA', text: '博茨瓦纳' },
{ code: 'CAF', text: '中非' },
{ code: 'CAN', text: '加拿大' },
{ code: 'CCK', text: '科科斯(基林)群岛' },
{ code: 'CHE', text: '瑞士' },
{ code: 'CHL', text: '智利' },
{ code: 'CIV', text: '科特迪瓦' },
{ code: 'CMR', text: '喀麦隆' },
{ code: 'COD', text: '刚果(金)' },
{ code: 'COG', text: '刚果(布)' },
{ code: 'COK', text: '库克群岛' },
{ code: 'COL', text: '哥伦比亚' },
{ code: 'COM', text: '科摩罗' },
{ code: 'CPV', text: '佛得角' },
{ code: 'CRI', text: '哥斯达黎加' },
{ code: 'CUB', text: '古巴' },
{ code: 'CXR', text: '圣诞岛' },
{ code: 'CYM', text: '开曼群岛' },
{ code: 'CYP', text: '塞浦路斯' },
{ code: 'CZE', text: '捷克' },
{ code: 'DEU', text: '德国' },
{ code: 'DJI', text: '吉布提' },
{ code: 'DMA', text: '多米尼克' },
{ code: 'DNK', text: '丹麦' },
{ code: 'DOM', text: '多米尼加共和国' },
{ code: 'DZA', text: '阿尔及利亚' },
{ code: 'ECU', text: '厄瓜多尔' },
{ code: 'EGY', text: '埃及' },
{ code: 'ERI', text: '厄立特里亚' },
{ code: 'ESH', text: '西撒哈拉' },
{ code: 'ESP', text: '西班牙' },
{ code: 'EST', text: '爱沙尼亚' },
{ code: 'ETH', text: '埃塞俄比亚' },
{ code: 'FIN', text: '芬兰' },
{ code: 'FJI', text: '斐济' },
{ code: 'FLK', text: '马尔维纳斯群岛(福克兰群岛)' },
{ code: 'FRA', text: '法国' },
{ code: 'FRO', text: '法罗群岛' },
{ code: 'FSM', text: '密克罗尼西亚' },
{ code: 'GAB', text: '加蓬' },
{ code: 'GBR', text: '英国' },
{ code: 'GEO', text: '格鲁吉亚' },
{ code: 'GHA', text: '加纳' },
{ code: 'GIB', text: '直布罗陀' },
{ code: 'GIN', text: '几内亚' },
{ code: 'GLP', text: '瓜德罗普' },
{ code: 'GMB', text: '冈比亚' },
{ code: 'GNB', text: '几内亚比绍' },
{ code: 'GNQ', text: '赤道几内亚' },
{ code: 'GRC', text: '希腊' },
{ code: 'GRD', text: '格林纳达' },
{ code: 'GRL', text: '格陵兰' },
{ code: 'GTM', text: '危地马拉' },
{ code: 'GUF', text: '法属圭亚那' },
{ code: 'GUM', text: '关岛' },
{ code: 'GUY', text: '圭亚那' },
{ code: 'HMD', text: '赫德岛和麦克唐纳岛' },
{ code: 'HND', text: '洪都拉斯' },
{ code: 'HRV', text: '克罗地亚' },
{ code: 'HTI', text: '海地' },
{ code: 'HUN', text: '匈牙利' },
{ code: 'IDN', text: '印度尼西亚' },
{ code: 'IND', text: '印度' },
{ code: 'IOT', text: '英属印度洋领土' },
{ code: 'IRL', text: '爱尔兰' },
{ code: 'IRN', text: '伊朗' },
{ code: 'IRQ', text: '伊拉克' },
{ code: 'ISL', text: '冰岛' },
{ code: 'ISR', text: '以色列' },
{ code: 'ITA', text: '意大利' },
{ code: 'JAM', text: '牙买加' },
{ code: 'JOR', text: '约旦' },
{ code: 'JPN', text: '日本' },
{ code: 'KAZ', text: '哈萨克斯坦' },
{ code: 'KEN', text: '肯尼亚' },
{ code: 'KGZ', text: '吉尔吉斯斯坦' },
{ code: 'KHM', text: '柬埔寨' },
{ code: 'KIR', text: '基里巴斯' },
{ code: 'KNA', text: '圣基茨和尼维斯' },
{ code: 'KOR', text: '韩国' },
{ code: 'KWT', text: '科威特' },
{ code: 'LAO', text: '老挝' },
{ code: 'LBN', text: '黎巴嫩' },
{ code: 'LBR', text: '利比里亚' },
{ code: 'LBY', text: '利比亚' },
{ code: 'LCA', text: '圣卢西亚' },
{ code: 'LIE', text: '列支敦士登' },
{ code: 'LKA', text: '斯里兰卡' },
{ code: 'LSO', text: '莱索托' },
{ code: 'LTU', text: '立陶宛' },
{ code: 'LUX', text: '卢森堡' },
{ code: 'LVA', text: '拉脱维亚' },
{ code: 'MAR', text: '摩洛哥' },
{ code: 'MCO', text: '摩纳哥' },
{ code: 'MDA', text: '摩尔多瓦' },
{ code: 'MDG', text: '马达加斯加' },
{ code: 'MDV', text: '马尔代夫' },
{ code: 'MEX', text: '墨西哥' },
{ code: 'MHL', text: '马绍尔群岛' },
{ code: 'MKD', text: '马斯顿' },
{ code: 'MLI', text: '马里' },
{ code: 'MLT', text: '马耳他' },
{ code: 'MMR', text: '缅甸' },
{ code: 'MNG', text: '蒙古' },
{ code: 'MNP', text: '北马里亚纳' },
{ code: 'MOZ', text: '莫桑比克' },
{ code: 'MRT', text: '毛里塔尼亚' },
{ code: 'MSR', text: '蒙特塞拉特' },
{ code: 'MTQ', text: '马提尼克' },
{ code: 'MUS', text: '毛里求斯' },
{ code: 'MWI', text: '马拉维' },
{ code: 'MYS', text: '马来西亚' },
{ code: 'MYT', text: '马约特' },
{ code: 'NAM', text: '纳米比亚' },
{ code: 'NCL', text: '新喀里多尼亚' },
{ code: 'NER', text: '尼日尔' },
{ code: 'NFK', text: '诺福克岛' },
{ code: 'NGA', text: '尼日利亚' },
{ code: 'NIC', text: '尼加拉瓜' },
{ code: 'NIU', text: '纽埃' },
{ code: 'NLD', text: '荷兰' },
{ code: 'NOR', text: '挪威' },
{ code: 'NPL', text: '尼泊尔' },
{ code: 'NRU', text: '瑙鲁' },
{ code: 'NZL', text: '新西兰' },
{ code: 'OMN', text: '阿曼' },
{ code: 'PAK', text: '巴基斯坦' },
{ code: 'PAN', text: '巴拿马' },
{ code: 'PCN', text: '皮特凯恩群岛' },
{ code: 'PER', text: '秘鲁' },
{ code: 'PHL', text: '菲律宾' },
{ code: 'PLW', text: '帕劳' },
{ code: 'PNG', text: '巴布亚新几内亚' },
{ code: 'POL', text: '波兰' },
{ code: 'PRI', text: '波多黎各' },
{ code: 'PRK', text: '朝鲜' },
{ code: 'PRT', text: '葡萄牙' },
{ code: 'PRY', text: '巴拉圭' },
{ code: 'PSE', text: '巴勒斯坦' },
{ code: 'PYF', text: '法属波利尼西亚' },
{ code: 'QAT', text: '卡塔尔' },
{ code: 'REU', text: '留尼汪' },
{ code: 'ROM', text: '罗马尼亚' },
{ code: 'RUS', text: '俄罗斯' },
{ code: 'RWA', text: '卢旺达' },
{ code: 'SAU', text: '沙特阿拉伯' },
{ code: 'SCG', text: '塞尔维亚和黑山' },
{ code: 'SDN', text: '苏丹' },
{ code: 'SEN', text: '塞内加尔' },
{ code: 'SGP', text: '新加坡' },
{ code: 'SGS', text: '南乔治亚岛和南桑德韦奇岛' },
{ code: 'SHN', text: '圣赫勒拿' },
{ code: 'SJM', text: '斯瓦尔巴群岛和扬马群岛' },
{ code: 'SLB', text: '所罗门群岛' },
{ code: 'SLE', text: '塞拉利昂' },
{ code: 'SLV', text: '萨尔瓦多' },
{ code: 'SMR', text: '圣马力诺' },
{ code: 'SOM', text: '索马里' },
{ code: 'SPM', text: '圣皮埃尔和密克隆' },
{ code: 'STP', text: '圣多美和普林西比' },
{ code: 'SUR', text: '苏里南' },
{ code: 'SVK', text: '斯洛伐克' },
{ code: 'SVN', text: '斯洛文尼亚' },
{ code: 'SWE', text: '瑞典' },
{ code: 'SWZ', text: '斯威士兰' },
{ code: 'SYC', text: '塞舌尔' },
{ code: 'SYR', text: '叙利亚' },
{ code: 'TCA', text: '特克斯和凯科斯群岛' },
{ code: 'TCD', text: '乍得' },
{ code: 'TGO', text: '多哥' },
{ code: 'THA', text: '泰国' },
{ code: 'TJK', text: '塔吉克斯坦' },
{ code: 'TKL', text: '托克劳' },
{ code: 'TKM', text: '土库曼斯坦' },
{ code: 'TMP', text: '东帝汶' },
{ code: 'TON', text: '汤加' },
{ code: 'TTO', text: '特立尼达和多巴哥' },
{ code: 'TUN', text: '突尼斯' },
{ code: 'TUR', text: '土耳其' },
{ code: 'TUV', text: '图瓦卢' },
{ code: 'TZA', text: '坦桑尼亚' },
{ code: 'UGA', text: '乌干达' },
{ code: 'UKR', text: '乌克兰' },
{ code: 'UMI', text: '美属本土外小岛屿' },
{ code: 'URY', text: '乌拉圭' },
{ code: 'USA', text: '美国' },
{ code: 'UZB', text: '乌兹别克斯坦' },
{ code: 'VAT', text: '梵蒂冈' },
{ code: 'VCT', text: '圣文森特和格林纳丁斯' },
{ code: 'VEN', text: '委内瑞拉' },
{ code: 'VGB', text: '英属维尔京群岛' },
{ code: 'VIR', text: '美属维尔京群岛' },
{ code: 'VNM', text: '越南' },
{ code: 'VUT', text: '瓦努阿图' },
{ code: 'WLF', text: '瓦利斯和富图纳群岛' },
{ code: 'WSM', text: '西萨摩亚' },
{ code: 'YEM', text: '也门' },
{ code: 'ZAF', text: '南非' },
{ code: 'ZAR', text: '扎伊尔' },
{ code: 'ZMB', text: '赞比亚' },
{ code: 'ZWE', text: '津巴布韦' }
{ code: 'CHN', text: '中国' }
// { code: 'HKG', text: '中国香港' },
// { code: 'MAC', text: '澳门' },
// { code: 'TWN', text: '中国台湾' },
// { code: 'ABW', text: '阿鲁巴' },
// { code: 'AFG', text: '阿富汗' },
// { code: 'AGO', text: '安哥拉' },
// { code: 'AIA', text: '安圭拉' },
// { code: 'ALB', text: '阿尔巴尼亚' },
// { code: 'AND', text: '安道尔' },
// { code: 'ANT', text: '荷属安的列斯' },
// { code: 'ARE', text: '阿联酋' },
// { code: 'ARG', text: '阿根廷' },
// { code: 'ARM', text: '亚美尼亚' },
// { code: 'ASM', text: '美属萨摩亚' },
// { code: 'ATA', text: '南极洲' },
// { code: 'ATF', text: '法属南部领土' },
// { code: 'ATG', text: '安提瓜和巴布达' },
// { code: 'AUS', text: '澳大利亚' },
// { code: 'AUT', text: '奥地利' },
// { code: 'AZE', text: '阿塞拜疆' },
// { code: 'BDI', text: '布隆迪' },
// { code: 'BEL', text: '比利时' },
// { code: 'BEN', text: '贝宁' },
// { code: 'BFA', text: '布基纳法索' },
// { code: 'BGD', text: '孟加拉国' },
// { code: 'BGR', text: '保加利亚' },
// { code: 'BHR', text: '巴林' },
// { code: 'BHS', text: '巴哈马' },
// { code: 'BIH', text: '波斯尼亚和黑塞哥维那' },
// { code: 'BLR', text: '白俄罗斯' },
// { code: 'BLZ', text: '伯利兹' },
// { code: 'BMU', text: '百慕大' },
// { code: 'BOL', text: '玻利维亚' },
// { code: 'BRA', text: '巴西' },
// { code: 'BRB', text: '巴巴多斯' },
// { code: 'BRN', text: '文莱' },
// { code: 'BTN', text: '不丹' },
// { code: 'BVT', text: '布维岛' },
// { code: 'BWA', text: '博茨瓦纳' },
// { code: 'CAF', text: '中非' },
// { code: 'CAN', text: '加拿大' },
// { code: 'CCK', text: '科科斯(基林)群岛' },
// { code: 'CHE', text: '瑞士' },
// { code: 'CHL', text: '智利' },
// { code: 'CIV', text: '科特迪瓦' },
// { code: 'CMR', text: '喀麦隆' },
// { code: 'COD', text: '刚果(金)' },
// { code: 'COG', text: '刚果(布)' },
// { code: 'COK', text: '库克群岛' },
// { code: 'COL', text: '哥伦比亚' },
// { code: 'COM', text: '科摩罗' },
// { code: 'CPV', text: '佛得角' },
// { code: 'CRI', text: '哥斯达黎加' },
// { code: 'CUB', text: '古巴' },
// { code: 'CXR', text: '圣诞岛' },
// { code: 'CYM', text: '开曼群岛' },
// { code: 'CYP', text: '塞浦路斯' },
// { code: 'CZE', text: '捷克' },
// { code: 'DEU', text: '德国' },
// { code: 'DJI', text: '吉布提' },
// { code: 'DMA', text: '多米尼克' },
// { code: 'DNK', text: '丹麦' },
// { code: 'DOM', text: '多米尼加共和国' },
// { code: 'DZA', text: '阿尔及利亚' },
// { code: 'ECU', text: '厄瓜多尔' },
// { code: 'EGY', text: '埃及' },
// { code: 'ERI', text: '厄立特里亚' },
// { code: 'ESH', text: '西撒哈拉' },
// { code: 'ESP', text: '西班牙' },
// { code: 'EST', text: '爱沙尼亚' },
// { code: 'ETH', text: '埃塞俄比亚' },
// { code: 'FIN', text: '芬兰' },
// { code: 'FJI', text: '斐济' },
// { code: 'FLK', text: '马尔维纳斯群岛(福克兰群岛)' },
// { code: 'FRA', text: '法国' },
// { code: 'FRO', text: '法罗群岛' },
// { code: 'FSM', text: '密克罗尼西亚' },
// { code: 'GAB', text: '加蓬' },
// { code: 'GBR', text: '英国' },
// { code: 'GEO', text: '格鲁吉亚' },
// { code: 'GHA', text: '加纳' },
// { code: 'GIB', text: '直布罗陀' },
// { code: 'GIN', text: '几内亚' },
// { code: 'GLP', text: '瓜德罗普' },
// { code: 'GMB', text: '冈比亚' },
// { code: 'GNB', text: '几内亚比绍' },
// { code: 'GNQ', text: '赤道几内亚' },
// { code: 'GRC', text: '希腊' },
// { code: 'GRD', text: '格林纳达' },
// { code: 'GRL', text: '格陵兰' },
// { code: 'GTM', text: '危地马拉' },
// { code: 'GUF', text: '法属圭亚那' },
// { code: 'GUM', text: '关岛' },
// { code: 'GUY', text: '圭亚那' },
// { code: 'HMD', text: '赫德岛和麦克唐纳岛' },
// { code: 'HND', text: '洪都拉斯' },
// { code: 'HRV', text: '克罗地亚' },
// { code: 'HTI', text: '海地' },
// { code: 'HUN', text: '匈牙利' },
// { code: 'IDN', text: '印度尼西亚' },
// { code: 'IND', text: '印度' },
// { code: 'IOT', text: '英属印度洋领土' },
// { code: 'IRL', text: '爱尔兰' },
// { code: 'IRN', text: '伊朗' },
// { code: 'IRQ', text: '伊拉克' },
// { code: 'ISL', text: '冰岛' },
// { code: 'ISR', text: '以色列' },
// { code: 'ITA', text: '意大利' },
// { code: 'JAM', text: '牙买加' },
// { code: 'JOR', text: '约旦' },
// { code: 'JPN', text: '日本' },
// { code: 'KAZ', text: '哈萨克斯坦' },
// { code: 'KEN', text: '肯尼亚' },
// { code: 'KGZ', text: '吉尔吉斯斯坦' },
// { code: 'KHM', text: '柬埔寨' },
// { code: 'KIR', text: '基里巴斯' },
// { code: 'KNA', text: '圣基茨和尼维斯' },
// { code: 'KOR', text: '韩国' },
// { code: 'KWT', text: '科威特' },
// { code: 'LAO', text: '老挝' },
// { code: 'LBN', text: '黎巴嫩' },
// { code: 'LBR', text: '利比里亚' },
// { code: 'LBY', text: '利比亚' },
// { code: 'LCA', text: '圣卢西亚' },
// { code: 'LIE', text: '列支敦士登' },
// { code: 'LKA', text: '斯里兰卡' },
// { code: 'LSO', text: '莱索托' },
// { code: 'LTU', text: '立陶宛' },
// { code: 'LUX', text: '卢森堡' },
// { code: 'LVA', text: '拉脱维亚' },
// { code: 'MAR', text: '摩洛哥' },
// { code: 'MCO', text: '摩纳哥' },
// { code: 'MDA', text: '摩尔多瓦' },
// { code: 'MDG', text: '马达加斯加' },
// { code: 'MDV', text: '马尔代夫' },
// { code: 'MEX', text: '墨西哥' },
// { code: 'MHL', text: '马绍尔群岛' },
// { code: 'MKD', text: '马斯顿' },
// { code: 'MLI', text: '马里' },
// { code: 'MLT', text: '马耳他' },
// { code: 'MMR', text: '缅甸' },
// { code: 'MNG', text: '蒙古' },
// { code: 'MNP', text: '北马里亚纳' },
// { code: 'MOZ', text: '莫桑比克' },
// { code: 'MRT', text: '毛里塔尼亚' },
// { code: 'MSR', text: '蒙特塞拉特' },
// { code: 'MTQ', text: '马提尼克' },
// { code: 'MUS', text: '毛里求斯' },
// { code: 'MWI', text: '马拉维' },
// { code: 'MYS', text: '马来西亚' },
// { code: 'MYT', text: '马约特' },
// { code: 'NAM', text: '纳米比亚' },
// { code: 'NCL', text: '新喀里多尼亚' },
// { code: 'NER', text: '尼日尔' },
// { code: 'NFK', text: '诺福克岛' },
// { code: 'NGA', text: '尼日利亚' },
// { code: 'NIC', text: '尼加拉瓜' },
// { code: 'NIU', text: '纽埃' },
// { code: 'NLD', text: '荷兰' },
// { code: 'NOR', text: '挪威' },
// { code: 'NPL', text: '尼泊尔' },
// { code: 'NRU', text: '瑙鲁' },
// { code: 'NZL', text: '新西兰' },
// { code: 'OMN', text: '阿曼' },
// { code: 'PAK', text: '巴基斯坦' },
// { code: 'PAN', text: '巴拿马' },
// { code: 'PCN', text: '皮特凯恩群岛' },
// { code: 'PER', text: '秘鲁' },
// { code: 'PHL', text: '菲律宾' },
// { code: 'PLW', text: '帕劳' },
// { code: 'PNG', text: '巴布亚新几内亚' },
// { code: 'POL', text: '波兰' },
// { code: 'PRI', text: '波多黎各' },
// { code: 'PRK', text: '朝鲜' },
// { code: 'PRT', text: '葡萄牙' },
// { code: 'PRY', text: '巴拉圭' },
// { code: 'PSE', text: '巴勒斯坦' },
// { code: 'PYF', text: '法属波利尼西亚' },
// { code: 'QAT', text: '卡塔尔' },
// { code: 'REU', text: '留尼汪' },
// { code: 'ROM', text: '罗马尼亚' },
// { code: 'RUS', text: '俄罗斯' },
// { code: 'RWA', text: '卢旺达' },
// { code: 'SAU', text: '沙特阿拉伯' },
// { code: 'SCG', text: '塞尔维亚和黑山' },
// { code: 'SDN', text: '苏丹' },
// { code: 'SEN', text: '塞内加尔' },
// { code: 'SGP', text: '新加坡' },
// { code: 'SGS', text: '南乔治亚岛和南桑德韦奇岛' },
// { code: 'SHN', text: '圣赫勒拿' },
// { code: 'SJM', text: '斯瓦尔巴群岛和扬马群岛' },
// { code: 'SLB', text: '所罗门群岛' },
// { code: 'SLE', text: '塞拉利昂' },
// { code: 'SLV', text: '萨尔瓦多' },
// { code: 'SMR', text: '圣马力诺' },
// { code: 'SOM', text: '索马里' },
// { code: 'SPM', text: '圣皮埃尔和密克隆' },
// { code: 'STP', text: '圣多美和普林西比' },
// { code: 'SUR', text: '苏里南' },
// { code: 'SVK', text: '斯洛伐克' },
// { code: 'SVN', text: '斯洛文尼亚' },
// { code: 'SWE', text: '瑞典' },
// { code: 'SWZ', text: '斯威士兰' },
// { code: 'SYC', text: '塞舌尔' },
// { code: 'SYR', text: '叙利亚' },
// { code: 'TCA', text: '特克斯和凯科斯群岛' },
// { code: 'TCD', text: '乍得' },
// { code: 'TGO', text: '多哥' },
// { code: 'THA', text: '泰国' },
// { code: 'TJK', text: '塔吉克斯坦' },
// { code: 'TKL', text: '托克劳' },
// { code: 'TKM', text: '土库曼斯坦' },
// { code: 'TMP', text: '东帝汶' },
// { code: 'TON', text: '汤加' },
// { code: 'TTO', text: '特立尼达和多巴哥' },
// { code: 'TUN', text: '突尼斯' },
// { code: 'TUR', text: '土耳其' },
// { code: 'TUV', text: '图瓦卢' },
// { code: 'TZA', text: '坦桑尼亚' },
// { code: 'UGA', text: '乌干达' },
// { code: 'UKR', text: '乌克兰' },
// { code: 'UMI', text: '美属本土外小岛屿' },
// { code: 'URY', text: '乌拉圭' },
// { code: 'USA', text: '美国' },
// { code: 'UZB', text: '乌兹别克斯坦' },
// { code: 'VAT', text: '梵蒂冈' },
// { code: 'VCT', text: '圣文森特和格林纳丁斯' },
// { code: 'VEN', text: '委内瑞拉' },
// { code: 'VGB', text: '英属维尔京群岛' },
// { code: 'VIR', text: '美属维尔京群岛' },
// { code: 'VNM', text: '越南' },
// { code: 'VUT', text: '瓦努阿图' },
// { code: 'WLF', text: '瓦利斯和富图纳群岛' },
// { code: 'WSM', text: '西萨摩亚' },
// { code: 'YEM', text: '也门' },
// { code: 'ZAF', text: '南非' },
// { code: 'ZAR', text: '扎伊尔' },
// { code: 'ZMB', text: '赞比亚' },
// { code: 'ZWE', text: '津巴布韦' }
],
//证件类型 -- 未改动
idType: [

View File

@@ -8,7 +8,7 @@ export function formatRiskList(list, insureList, riskList) {
insured[riskList] = []
}
insured[riskList].forEach(main => {
list.firstPrem = ((list.firstPrem * 100 + main.prem * 100) / 100).toFixed(2) //保留两位小数
list.firstPrem = ((list.firstPrem * 10000 + main.prem * 10000) / 10000).toFixed(2) //保留两位小数
if (main.isMainRisk == '0') {
//此时为主险
insured.mainRisk.push(main)
@@ -44,7 +44,7 @@ export function formatAllRisk(list) {
if (risk.isMainRisk == '1') {
if (main.mainRiskCode == risk.mainRiskCode) {
main.addtion.push(risk)
main.prem += risk.prem
main.prem = (main.prem * 10000 + risk.prem * 10000) / 10000
}
}
})

View File

@@ -24,6 +24,9 @@ Validator.extend('required', {
return field + '不能为空'
},
validate(value) {
if (value != null && value != undefined) {
value = String(value)
}
if (value) {
return true
}
@@ -131,6 +134,6 @@ Validator.extend('stature', {
Validator.extend('avoirdupois', {
getMessage: () => '体重输入有误',
validate: value => {
return /^[0-9]{0,3}([.]{1}[0-9]{1})?$/.test(value) && value > 0.1
return /^[0-9]+([.]{1}[0-9]{1})?$/.test(value) && value > 0.1
}
})

View File

@@ -5,10 +5,10 @@
<div class="van-cell__title van-field__label">
<span>{{ label }}</span>
</div>
<van-radio-group class="radio-area" v-model="radio" :disabled="disabled">
<van-radio @click="handleChoose(itemRadio.value)" :name="itemRadio.value" v-for="(itemRadio, index) in radios" :key="index" :disabled="disabled">
<van-radio-group class="radio-area" v-model="radio">
<van-radio @click="handleChoose(itemRadio.value)" :name="itemRadio.value" v-for="(itemRadio, index) in radios" :key="index">
<div slot="icon"></div>
<van-button class="ph30" type="danger" :plain="radio == itemRadio.value ? false : true" round size="small" :disabled="disabled" >{{ itemRadio.label }}</van-button>
<van-button class="ph30" type="danger" :plain="radio == itemRadio.value ? false : true" round size="small">{{ itemRadio.label }}</van-button>
</van-radio>
</van-radio-group>
</div>
@@ -47,7 +47,7 @@ export default {
mounted() {},
methods: {
handleChoose(value) {
if(this.disabled) {
if (this.disabled) {
return
}
this.$emit('update:value', value)

View File

@@ -67,6 +67,10 @@ export default {
readonly: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
}
},
data() {
@@ -112,6 +116,9 @@ export default {
this.$emit('on-choose', data)
},
chooseCustomer() {
if (this.disabled) {
return
}
this.showPicker = true
this.$emit('on-click')
},

View File

@@ -31,6 +31,10 @@ export default {
type: String,
default: '11'
},
disabled: {
type: Boolean,
default: false
},
value: {
type: String,
default: ''
@@ -111,6 +115,9 @@ export default {
this.showPicker = false
},
openOccupation() {
if (this.disabled) {
return
}
this.$emit('on-click')
this.showPicker = true
},

View File

@@ -119,7 +119,7 @@ export default [
name: 'insuranceInformation',
component: insuranceInformation,
meta: {
title: '阅读投保须知'
title: '阅读人身保险投保提示'
}
},
{

View File

@@ -66,7 +66,7 @@ export default {
//930折中方案豁免险选择
let chooseProducts = JSON.parse(localStorage.chooseProducts)
for (let i = 0; i < chooseProducts.length; i++) {
if (chooseProducts[i].productCode == 'DCRS_A0001') {
if (chooseProducts[i].productCode == 'DCRS_A0001' && this.result.productCode == 'DCRS_A0001') {
this.$toast('豁免险已选!')
return
}

View File

@@ -29,10 +29,7 @@
:min="riskFactor.minAmt"
:max="riskFactor.maxAmt"
class="ml10"
@change="stepperChange"
@plus="plus(index, riskFactorIndex)"
@minus="minus(index, riskFactorIndex)"
@focus="focus(index, riskFactorIndex)"
@change="stepperChange(item.calFactorLst[riskFactorIndex].defaultValue, index, riskFactorIndex)"
input-width="100"
:integer="true"
/>
@@ -73,7 +70,7 @@
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].prem.toFixed(2) | moneyFormat }}</span>
</div>
</div>
<van-button type="danger" class="bottom-btn" @click="nextStep" :disabled="nextStepFlag">完成</van-button>
<van-button type="danger" class="bottom-btn" @click="nextStep" :disabled="nextStepFlag" v-no-more-click="1000">完成</van-button>
<van-action-sheet v-model="show" cancel-text="取消" :actions="policyInfo" @select="openDocument" />
<!-- 字段选择 -->
@@ -185,6 +182,10 @@ export default {
this.popupShow = false
return false
}
if (currentEle.code == 'insuYear' && this.ageInfluenceInsuYear(value.value, currentEle)) {
this.popupShow = false
return false
}
currentEle.showContent = value.text
let name = currentEle.code
@@ -218,7 +219,7 @@ export default {
payEndYearVal = this.getPayEndYearOrInsuYear('payEndYear', currentFactor)
}
if (payEndYearVal > insuYearVal) {
this.$toast('交费期不能超过保险期间')
this.$toast('交费期不能超过保险期间')
return true
} else {
return false
@@ -238,7 +239,18 @@ export default {
let age = Number(this.saleInsuredPersonInfo.age)
for (let i = 0; i < currentEle.rules.length; i++) {
if (currentEle.rules[i].payEndYear == value && age > currentEle.rules[i].maxAge) {
this.$toast('被保人年龄不适合该交费期')
this.$toast('被保人年龄不适合该交费期')
return true
}
}
return false
},
//年龄对保险期间的影响
ageInfluenceInsuYear(value, currentEle) {
let age = Number(this.saleInsuredPersonInfo.age)
for (let i = 0; i < currentEle.rules.length; i++) {
if (currentEle.rules[i].insuYear == value && age > currentEle.rules[i].maxAge) {
this.$toast('被保人年龄不适合该保险期间!')
return true
}
}
@@ -254,8 +266,8 @@ export default {
let mainAddRelation = influences.amtInfluence[0].mainAddRelation
let amtTimes = influences.amtInfluence[0].amtTimes
let mainRiskAmt = this.getMainRiskAmt()
if (mainAddRelation == 3 && amtTimes == 1) {
this.setInputAddtionRiskMaxAmt(mainRiskAmt, index)
if (mainAddRelation == 3 && (amtTimes == 1 || amtTimes == 5)) {
this.setInputAddtionRiskMaxAmt(mainRiskAmt * amtTimes, index)
} else if (mainAddRelation == 3 && amtTimes == 0.2) {
this.setAddtionRiskMaxAmt(mainRiskAmt * amtTimes, index)
}
@@ -304,9 +316,8 @@ export default {
this.chooseProducts[index].calFactorLst.forEach(item => {
if (item.type == 1) {
item.maxAmt = Math.min(mainRiskAmt, item.oldMaxAmt)
//减保额份数
if (item.maxAmt < item.defaultValue) {
//减保额份数
item.defaultValue = item.maxAmt
}
}
@@ -556,22 +567,14 @@ export default {
})
},
//保额份数变化
stepperChange(value) {
let currentEle = this.chooseProducts[this.productIndex].calFactorLst[this.calFactorIndex]
currentEle.defaultValue = value
stepperChange(value, productIndex, calFactorIndex) {
// let currentEle = this.chooseProducts[this.productIndex].calFactorLst[this.calFactorIndex]
// currentEle.defaultValue = value
let currentEle = this.chooseProducts[productIndex].calFactorLst[calFactorIndex]
this.mainRiskInfluenceAddRisk()
currentEle['amt'] = Number(currentEle.defaultValue) * Number(currentEle.moneyUnit)
this.getTrial()
},
focus(index, index1) {
;[this.productIndex, this.calFactorIndex] = [index, index1]
},
minus(index, index1) {
;[this.productIndex, this.calFactorIndex] = [index, index1]
},
plus(index, index1) {
;[this.productIndex, this.calFactorIndex] = [index, index1]
},
//下一步
async nextStep() {
//组装险种提交数据
@@ -594,9 +597,14 @@ export default {
//930折中方案责任险分档
riskItem['amt'] = this.trialList[index].amt
}
//豁免险保额处理
if (item.isRemit == '0') {
this.trialInfos[index].amt = this.trialList[0].prem
}
riskItem = Object.assign(riskItem, this.trialInfos[index])
riskDTOLst.push(riskItem)
})
console.log('riskDTOLst', riskDTOLst)
//建议书需要添加全部投保人信息电投只需要投保人ID
let insuredDTOItem = Object.assign(this.saleInsuredPersonInfo, { riskDTOLst: riskDTOLst })
let params = {
@@ -663,5 +671,8 @@ export default {
.prem:last-child {
border: none;
}
/deep/.van-action-sheet__name {
font-size: 12px;
}
}
</style>

View File

@@ -1,50 +1,31 @@
<template>
<div class="user-info-container bg-white mr10 ml10 fs14">
<van-row class="user-info-item">
<van-col span="7">销售人员工号</van-col>
<van-col class="black" span="17">{{ userInfo.jobNo }}</van-col>
</van-row>
<van-row class="user-info-item">
<van-col span="7">销售人员姓名</van-col>
<van-col class="black" span="17">{{ userInfo.name }}</van-col>
</van-row>
<van-row class="user-info-item">
<van-col span="7">性别</van-col>
<van-col class="black" span="17">{{ userInfo.sex === 1 ? '女' : '男' }}</van-col>
</van-row>
<van-row class="user-info-item">
<van-col span="7">证件类型</van-col>
<van-col class="black" span="17">{{ userInfo.cardType }}</van-col>
</van-row>
<van-row class="user-info-item">
<van-col span="7">证件号码</van-col>
<van-col class="black" span="17">{{ userInfo.cardNo }}</van-col>
</van-row>
<van-row class="user-info-item">
<van-col span="7">营业服务部</van-col>
<van-col class="black" span="17">{{ userInfo.saleArea }}</van-col>
</van-row>
<van-row class="user-info-item">
<van-col span="7">所属公司</van-col>
<van-col class="black" span="17">{{ userInfo.company }}</van-col>
</van-row>
<div class="user-info-container">
<van-collapse v-model="activeNames" class="active">
<van-collapse-item class="collapse-down" title="保险销售人员资格证" name="1">
<van-row class="user-info-item">
<van-col class="black" span="7">名称</van-col>
<van-col span="17">编号</van-col>
</van-row>
<van-row class="user-info-item" v-for="(item, index) in userInfo.certificateInfoList" :key="index">
<van-col class="black" span="7">{{ item.certificateName }}</van-col>
<van-col span="17">{{ item.certificateNo }}</van-col>
</van-row>
<!-- <van-collapse-item name="1" class="pb10 pt10"> -->
<van-cell-group class="pl15 mt10">
<van-cell title="业务员工号" :value="userInfo.jobNo" />
<van-cell title="业务员姓名" :value="userInfo.name" />
<van-cell title="性别" :value="userInfo.sex === 1 ? '女' : '男'" />
<van-cell title="证件类型" :value="userInfo.cardType" />
<van-cell title="证件号码" :value="userInfo.cardNo" />
<van-cell title="营销服务部" :value="userInfo.saleArea" />
<van-cell title="所属公司" :value="userInfo.company" />
</van-cell-group>
<!-- </van-collapse-item> -->
<van-collapse-item class="collapse-down p0 mt1 pb10 pt10" title="执业证" name="1">
<div v-for="(item, index) in userInfo.certificateInfoList" :key="index">
<van-cell-group>
<van-cell title="编号" :value="item.certificateNo" />
<van-cell title="名称" :value="item.certificateName" />
</van-cell-group>
</div>
</van-collapse-item>
</van-collapse>
</div>
</template>
<script>
import { Row, Col, Collapse, CollapseItem } from 'vant'
import { Row, Col, Collapse, CollapseItem, Cell, CellGroup } from 'vant'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import obj from '@/assets/js/utils/data-dictionary.js'
export default {
@@ -58,7 +39,7 @@ export default {
this.getInfo()
},
mounted() {
document.body.style.backgroundColor = '#fff'
document.body.style.backgroundColor = '#f5f5f5'
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
@@ -71,8 +52,8 @@ export default {
console.log(res)
if (res.result == 0) {
this.userInfo = res
document.title = this.userInfo.name + '(' + this.userInfo.jobNo + ')'
obj.agentIdType.some(item => {
// document.title = this.userInfo.name + '(' + this.userInfo.jobNo + ')'
obj.idType.some(item => {
if (item.id == res.cardType) {
res.cardType = item.text
}
@@ -84,7 +65,9 @@ export default {
[Row.name]: Row,
[Col.name]: Col,
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem
[CollapseItem.name]: CollapseItem,
[Cell.name]: Cell,
[CellGroup.name]: CellGroup
}
}
</script>
@@ -93,29 +76,31 @@ export default {
.user-info-container {
.user-info-item {
line-height: 40px;
color: #999;
border-bottom: 1px solid #f1f1f1;
van-col[span] {
// line-height: 40px;
color: #000;
margin-left: 100px;
}
border-bottom: 1px solid #dadada;
}
.active {
padding: 0;
.collapse-down {
padding: 0;
}
/deep/.van-cell:not(:last-child)::after {
position: absolute;
box-sizing: border-box;
content: ' ';
pointer-events: none;
right: 0;
bottom: 0;
left: 0;
border-bottom: 1px solid #dadada;
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
}
.black {
color: black;
/deep/.van-hairline--top-bottom::after {
border: 0;
}
/deep/ .van-cell {
padding-left: 0;
padding-right: 0;
/deep/ .van-cell__value {
text-align: left !important;
}
/deep/ .van-collapse-item__content {
padding: 0;
padding-top: 0;
}
/deep/.van-collapse-item__title {
padding-left: 30px;
}
}
</style>

View File

@@ -1,23 +1,25 @@
<template>
<div class="product-detail-container">
<!-- tab -->
<van-tabs v-model="active" color="#E9332EFF" title-active-color="#E9332EFF" class="mt10">
<van-tab title="产品特色" class="mt10">
<img class="product-detail-introduct-image fl" :src="item" alt="" v-for="(item, index) in introductImages" :key="index" />
</van-tab>
<van-tab title="产品资料" class="mt10">
<van-list>
<van-cell
class="product-detail-list-item p10 fs12 fw400 bg-white"
:title="item.name"
is-link
v-for="(item, index) in docuList"
:key="index"
@click="goDocu(item.url, item.type)"
/>
</van-list>
</van-tab>
</van-tabs>
<van-sticky>
<van-tabs v-model="active" color="#E9332EFF" title-active-color="#E9332EFF" class="mt10">
<van-tab title="产品特色" class="mt10"> </van-tab>
<van-tab title="产品资料" class="mt10"> </van-tab>
</van-tabs>
</van-sticky>
<div v-show="active == '0'" class="pt10 pb45 clearfix">
<img class="product-detail-introduct-image fl" :src="item" alt="" v-for="(item, index) in introductImages" :key="index" />
</div>
<van-list v-show="active == '1'">
<van-cell
class="product-detail-list-item p10 fs12 fw400 bg-white"
:title="item.name"
is-link
v-for="(item, index) in docuList"
:key="index"
@click="goDocu(item.url, item.type, item.name)"
/>
</van-list>
<!-- 底部按钮 -->
<div class="bottom-area bottom-btn">
<van-button class="m-btn fl green" color="#FEEFD8" @click="goProposal">制作建议书</van-button>
@@ -27,7 +29,7 @@
</template>
<script>
import { Tab, Tabs, List, Row, Col, Icon, Cell } from 'vant'
import { Tab, Tabs, List, Row, Col, Icon, Cell, Sticky } from 'vant'
import { getProductInfo } from '@/api/ebiz/product/product.js'
export default {
components: {
@@ -37,7 +39,8 @@ export default {
[Row.name]: Row,
[Col.name]: Col,
[Icon.name]: Icon,
[Cell.name]: Cell
[Cell.name]: Cell,
[Sticky.name]: Sticky
},
data() {
return {
@@ -54,37 +57,34 @@ export default {
this.getProductDetail(code)
},
methods: {
goDocu(url, type) {
// 跳转到产品资料详情
// 保存url
window.localStorage.setItem('documentInfo', JSON.stringify({ documentUrl: url, documentType: type }))
// 保存文件类型
// 0-图片, 1-pdf, 2-word, 3-excel
window.localStorage.setItem('documentType', type)
goDocu(url, type, name) {
let pdfUrl = encodeURIComponent(url)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/product/productDocument'
},
routerInfo: {
path: `/product/productDocument`
title: name,
// url: 'http://47.96.143.111/pdfjs/web/viewer.html?file=' + url //测试代码
url: this.$mainUrl + '/pdfjs/web/viewer.html?file=' + pdfUrl
}
})
// 跳转到产品资料详情
// 保存url
// window.localStorage.setItem('documentInfo', JSON.stringify({ documentUrl: url, documentType: type }))
// // 保存文件类型
// // 0-图片, 1-pdf, 2-word, 3-excel
// window.localStorage.setItem('documentType', type)
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/product/productDocument'
// },
// routerInfo: {
// path: `/product/productDocument`
// }
// })
},
goProposal() {
// 跳转到制作建议书( 投保人信息 )
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/insuredInfo'
},
routerInfo: {
path: `/sale/insuredInfo`
}
})
},
goInsure() {
// 跳转到投保建议
this.$jump({
flag: 'h5',
extra: {
@@ -95,6 +95,20 @@ export default {
}
})
},
goInsure() {
localStorage.orderNo = ''
localStorage.chooseProductCodes = '' //置空所选险种
// 跳转到投保建议
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/insuredInfo'
},
routerInfo: {
path: `/sale/insuredInfo`
}
})
},
async getProductDetail(code) {
// 获取产品详情数据
console.log(code)
@@ -110,6 +124,10 @@ export default {
this.docuList = res.productShowInfo.documents
}
}
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
@@ -117,19 +135,26 @@ export default {
<style lang="scss" scoped>
.product-detail-container {
.product-detail-introduct-image {
width: 50%;
height: 50%;
width: 100%;
}
.bottom-area {
/deep/.m-btn {
width: 50%;
height: 100%;
border-color: transparent;
}
/deep/.van-button--default {
background-color: #FEEFD8;
color: #E9332E;
}
// /deep/.van-tabs__content {
// margin-bottom: 45px;
// }
// /deep/.van-tabs__content::after {
// content: '';
// display: table;
// clear: both;
// }
}
.bottom-area {
/deep/.m-btn {
width: 50%;
height: 100%;
border-color: transparent;
}
/deep/.van-button--default {
background-color: #FEEFD8;
color: #E9332E;
}
}
</style>

View File

@@ -129,19 +129,17 @@ export default {
},
closeBtn() {
// 筛选按钮的显示
setTimeout(()=> {
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
}, 500)
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
},
appCallBack() {
// 筛选按钮的点击事件

View File

@@ -11,15 +11,18 @@
v-validate="'required'"
name="被保人"
required
:readonly="disabled"
label="姓名"
@on-click="selectClick('1')"
:parentShowPicker.sync="customerShowPicker"
:value.sync="insured.name"
:disabled="disabled"
></customer-picker>
<select-radio class="border-bottom" :radios="sexRadio" label="性别" :value.sync="insured.sex"></select-radio>
<select-radio :disabled="disabled" class="border-bottom" :radios="sexRadio" label="性别" :value.sync="insured.sex"></select-radio>
<FieldDatePicter
:disabled="disabled"
v-validate="'required'"
required
label="出生日期"
@@ -31,6 +34,7 @@
@confirm="dateConfirm"
></FieldDatePicter>
<occupation-picker
:disabled="disabled"
class="border-bottom"
:value.sync="insured.occupationCode"
:chooseName.sync="insured.occupationName"
@@ -47,9 +51,9 @@
placeholder="被保人职业"
/>
<select-radio class="border-bottom" :radios="medicalRadio" label="有无社保" :value.sync="insured.medical"></select-radio>
<div class="border-bottom"><van-field v-model="insured.age" clearable label="年龄" placeholder="被保人年龄" /></div>
<div class="border-bottom"><van-field :readonly="disabled" v-model="insured.age" clearable label="年龄" placeholder="被保人年龄" /></div>
<van-field v-model="insured.mobile" clearable label="手机号码" name="手机号码" placeholder="被保人手机号码" v-validate="'mobile'" />
<van-field v-model="insured.mobile" :readonly="disabled" clearable label="手机号码" name="手机号码" placeholder="被保人手机号码" v-validate="'mobile'" />
<van-button type="danger" @click="nextStep" class="bottom-btn fs16">下一步</van-button>
</van-cell-group>
</div>
@@ -88,7 +92,7 @@ export default {
value: '1'
}
],
currentTime: beforeDate.getBeforeDays(28),
currentTime: beforeDate.getBeforeDays(27),
insured: {
name: '',
age: '',
@@ -106,7 +110,8 @@ export default {
localInfo: '',
customerShowPicker: false,
occupationShowPicker: false,
currentPopupIndex: ''
currentPopupIndex: '',
disabled: false
}
},
@@ -125,6 +130,7 @@ export default {
this.insured.relationLabel = relationName
if (this.insured.relationToAppnt == '1') {
//如果是投被同人 就将投保人信息存入被保人信息
this.disabled = true
this.insured = Object.assign(this.insured, JSON.parse(localStorage.proposalAppnt))
this.insured.age = getAge.getAge(this.insured.birthday, new Date())
this.insured.medical = '0'
@@ -152,19 +158,17 @@ export default {
},
closeBtn() {
// 筛选按钮的显示
setTimeout(() => {
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
}, 500)
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
},
appCallBack() {
// 筛选按钮的点击事件
@@ -245,7 +249,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '当前信息已经发生改变,有可能影响险种费率,是否确认修改并清除险种信息?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
@@ -292,7 +296,6 @@ export default {
},
//选择客户列表中的客户
chooseCustomer(data) {
console.log(data)
this.customerShowPicker = false
this.$jump({
flag: 'navigation',
@@ -312,7 +315,7 @@ export default {
occupationCode,
lifeGrade,
healthGrade,
medical: socialSecurity
medical: socialSecurity ? socialSecurity : '0'
}
Object.assign(this.insured, insured)
}

View File

@@ -8,7 +8,7 @@ export function checkSex(cacheSex, localSex, relation) {
}
export function checkRelation(relation, age) {
//当被保人年龄小于8岁 被保人与投保人关系必须为父母
if (age < 8 && relation != '3') {
if (age < 8 && relation != '4') {
return false
} else {
return true

View File

@@ -26,7 +26,7 @@
</van-cell-group>
<!-- <van-cell-group class="pl20 fs14 flex align-items-c justify-content-s">
<van-field label="是否自动垫付" disabled />
<van-switch v-model="checked" active-color="#E9332E" inactive-color="#fff" class="mr30" />
<van-switch v-model="checked" active-color="#4fc6b3" inactive-color="#fff" class="mr30" />
</van-cell-group> -->
<van-cell-group class="flex align-items-c">
<van-switch-cell v-model="checked" title="是否自动垫交" active-color="#E9332E" inactive-color="#fff" class="ml15 pr30" />
@@ -198,19 +198,17 @@ export default {
},
closeBtn() {
// 筛选按钮的显示
setTimeout(()=> {
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
}, 500)
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
},
appCallBack() {
this.isclear = true

View File

@@ -44,6 +44,7 @@
clearable
:readonly="isInsured"
v-validate="'required'"
@blur="getRelatedData(userInfo.idNo)"
>
</van-field>
<FieldDatePicter
@@ -55,7 +56,7 @@
@confirm="onDateConfirm($event, '0')"
ref="certificateValidate"
:flag="true"
:readonly="isInsured"
:readonly="isInsured || idLimit"
></FieldDatePicter>
<FieldDatePicter
:v-validate="{ required: certiexpiredateRequired }"
@@ -66,7 +67,7 @@
@confirm="onDateConfirm($event, '1')"
ref="certiexpiredate"
:flag="certiexpiredateShow"
:readonly="isInsured"
:readonly="isInsured || idLimit"
></FieldDatePicter>
<div class="border-bt relative fs14 p10 flex align-center">
<van-checkbox v-model="userInfo.effectiveDateType" class="fr" :disabled="effectiveDateTypeAble" @change="effectiveDataTypeChange">长期</van-checkbox>
@@ -185,6 +186,9 @@ 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 { selectComp } from './js/methods'
let relationToInsured = [{ id: 2, text: '配偶' }, { id: 3, text: '父母' }, { id: 4, text: '子女' }, { id: 5, text: '其他' }]
export default {
name: 'insuredInfo',
@@ -215,6 +219,7 @@ export default {
value: '1'
}
],
currentPopupIndex: '',
relationToAppnt: '',
popupShow: false,
areaShow: false,
@@ -231,7 +236,6 @@ export default {
certiexpiredateRequired: true, //证件截止日期是否需要校验
certiexpiredateShow: true, //证件截止日期是否可以选择
marriage: '',
tempUser: {},
userInfo: {
name: '',
sex: '0',
@@ -265,16 +269,15 @@ export default {
occupationShowPicker: false,
customerShowPicker: false, //客户列表展示
isInsured: false, //是被保人本人,
idLimit: false //证件起止日期是否只读
// 开飞机的小历悦
area: '',
city: '',
province: ''
// area: '',
// city: '',
// province: ''
}
},
created() {},
mounted() {
window.appCallBack = this.appCallBack
this.tempUser = this.userInfo
},
methods: {
//监听名字变化
@@ -286,40 +289,41 @@ export default {
if (this.isInsured) {
return
}
let title = ''
if (index == 1) {
;[this.customerShowPicker, title] = [true, '客户列表']
} else if (index == 2) {
;[this.occupationShowPicker, title] = [true, '职业类别']
}
// this.currentPopupIndex = index
// let title = ''
// if (index == 1) {
// ;[this.customerShowPicker, title] = [true, '客户列表']
// } else if (index == 2) {
// ;[this.occupationShowPicker, title] = [true, '职业类别']
// }
setTimeout(() => {
this.$jump({
flag: 'navigation',
extra: {
title,
hiddenLeft: '1'
}
})
this.closeBtn()
}, 400)
},
closeBtn() {
// 筛选按钮的显示
setTimeout(()=> {
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
}, 500)
// setTimeout(() => {
// this.$jump({
// flag: 'navigation',
// extra: {
// title,
// hiddenLeft: '1'
// }
// })
// this.closeBtn()
// }, 400)
// let that = this
selectComp(this, index, '3')
},
// closeBtn() {
// // 筛选按钮的显示
// this.$jump({
// flag: 'webview_right_button',
// extra: {
// btns: [
// {
// img: this.$assetsUrl + 'images/del-close.png',
// route: { flag: '', extra: {} }
// }
// ]
// }
// })
// },
appCallBack() {
this.$jump({
flag: 'navigation',
@@ -328,7 +332,11 @@ export default {
hiddenRight: '1'
}
})
this.occupationShowPicker = false
if (this.currentPopupIndex == 1) {
this.customerShowPicker = false
} else if (this.currentPopupIndex == 2) {
this.occupationShowPicker = false
}
},
chooseOccupation() {
this.$jump({
@@ -362,7 +370,7 @@ export default {
} else if (pickerType == '6') {
this.columns = DataDictionary.marriage
} else if (pickerType == '7') {
this.columns = DataDictionary.relationToAppnt
this.columns = relationToInsured
}
},
//确认选择字段
@@ -372,14 +380,20 @@ export default {
if (this.pickerType == '1') {
;[this.userInfo.nativeplace, this.nativeplace] = [value.id, value.text]
} else if (this.pickerType == '2') {
this.idLimit = false
this.userInfo.idNo = this.userInfo.certificateValidate = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
this.userInfo.sex = '0'
this.effectiveDateTypeAble = false
console.log(value.id)
//身份证以外的证件类型可以使用长期
if (value.id != '1') {
this.effectiveDateTypeAble = false
} else {
if (value.id == '1') {
console.log('123')
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
this.effectiveDateTypeAble = age <= 45
} else if (value.id == 2 || value.id == 3) {
this.effectiveDateTypeAble = true
} else {
this.effectiveDateTypeAble = false
}
;[this.userInfo.idType, this.idType] = [value.id, value.text]
} else if (this.pickerType == '3') {
@@ -399,13 +413,6 @@ export default {
this.isInsured = true
//获取被保人信息
let insuredInfo = res.orderDTO.insuredDTOs[0]
// let newUserInfo = this.userInfo
// newUserInfo = Object.assign(newUserInfo, insuredInfo)
// console.log(this.userInfo)
// console.log(res.orderDTO.insuredDTOs[0])
// for (let key in this.userInfo) {
// this.userInfo[key] = newUserInfo[key]
// }
for (let key in this.userInfo) {
this.userInfo[key] = insuredInfo[key]
}
@@ -431,7 +438,7 @@ export default {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
}
} else {
this.$toast(res.resultMessage)
@@ -450,7 +457,6 @@ export default {
}
}
this.areaName = ''
// this.userInfo = this.tempUser
;[this.userInfo.relationToInsured, this.relationToAppnt] = [value.id, value.text]
}
// ;[this.userInfo.relationToInsured, this.relationToAppnt] = [value.id, value.text]
@@ -472,7 +478,7 @@ export default {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
}
break
case '1':
@@ -505,7 +511,15 @@ export default {
//长期判断
if (this.userInfo.idType == '1') {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
this.effectiveDateTypeAble = age <= 45
}
//出生证有效期
if (this.userInfo.idType == '3') {
if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(val) > Date.parse('1973-01-01')) {
this.userInfo.birthday = ''
this.$refs.birthday.date = ''
return this.$toast('出生证有效期或出生日期有误')
}
}
}
break
@@ -558,31 +572,48 @@ export default {
//计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
//数据是否从客户列表拉取
this.fromCustomer = true
},
nextStep() {
//与被保人关系是配偶
// if (this.userInfo.relationToInsured == '2') {
// //被保人不是已婚
// if (this.insuredMarriage != '1') {
// return this.$toast('与投保人关系不正确')
// }
// let insuredSex = JSON.parse(localStorage.saleInsuredPersonInfo).sex
// let appntSex = JSON.parse(localStorage.saleInsuredInfo).sex
// //投被保人性别相同
// if (insuredSex == appntSex) {
// return this.$toast('性别输入有误')
// }
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// //被保人不是已婚
// if (this.insuredMarriage != '1') {
// return this.$toast('与投保人关系不正确')
// }
// console.log(this.userInfo.idType)
// let insuredSex = JSON.parse(localStorage.saleInsuredPersonInfo).sex
// let appntSex = JSON.parse(localStorage.saleInsuredInfo).sex
// //投被保人性别相同
// if (insuredSex == appntSex) {
// return this.$toast('性别输入有误')
// }
console.log(this.userInfo.idType)
// 页面跳转
this.$validator.validate().then(valid => {
if (true === valid) {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
//与被保人关系是配偶
if (this.userInfo.relationToInsured == '2') {
let insuredInfo = JSON.parse(localStorage.saleInsuredPersonInfo)
//如果被保人是投保人的配偶 或者 投保人不是已婚
if (insuredInfo.relationToAppnt == '2' || insuredInfo.marriage != '1') {
return this.$toast('与被保人关系有误')
}
//如果被保人与投保人性别相同
if (insuredInfo.sex == this.userInfo.sex) {
return this.$toast('性别录入与婚姻状况不符')
}
//如果性别男小于22岁 或者 性别女小于20岁
if ((this.userInfo.sex == '0' && age < 22) || (this.userInfo.sex == '1' && age < 20)) {
return this.$toast('年龄与婚姻状况不符')
}
}
//如果证件类型是身份证
if (this.userInfo.idType == '1') {
//校验性别是否与身份证号码位相符
@@ -766,7 +797,7 @@ export default {
//同投保人联系地址
this.areaName = getAreaName([{ code: this.userInfo.province }, { code: this.userInfo.city }, { code: this.userInfo.area }])
//详细地址
this.userInfo.village = res.orderDTO.appntDTO.homeAddress
this.userInfo.village = res.orderDTO.appntDTO.village
} else {
this.$toast(res.resultMessage)
}
@@ -807,6 +838,46 @@ export default {
let day = date.getDate()
day = day.toString().padStart(2, '0')
return `${year}-${month}-${day}`
},
getRelatedData(val) {
// if (this.userInfo.idType != '1') {
// return
// }
// //如果证件校验不通过,恢复默认值
// if (idToData(val).text) {
// ;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
// return this.$toast(idToData(val).text)
// }
// this.effectiveDateTypeAble = idToData(val).age < 45
// this.userInfo.birthday = idToData(val).birthday
// this.userInfo.sex = idToData(val).sex
if (!['1', '2', '3', 1, 2, 3].includes(this.userInfo.idType)) {
return
}
//如果证件校验不通过,恢复默认值
if (idToData(val).text) {
;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
return this.$toast(idToData(val).text)
}
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = idToData(val).age < 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
//如果选择户口本
if (this.userInfo.idType == '2') {
let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')
this.userInfo.certificateValidate = this.userInfo.birthday
this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
this.idLimit = true
//如果选择出生证明
} else if (this.userInfo.idType == '3') {
let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1972-12-31')
this.userInfo.certificateValidate = this.userInfo.birthday
this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
this.idLimit = true
} else {
this.idLimit = false
}
}
},
filters: {

View File

@@ -15,13 +15,29 @@
<van-field required :label="item.id == '1' ? `${item.text}头像面` : `${item.text}户主页`" disabled />
</van-cell-group>
<div @click="test('fileListIdFront', saleInsuredInfo.idType)" class="flex align-items-e">
<van-uploader name="fileListIdFront" v-model="fileListIdFront" :after-read="afterRead" :before-delete="beforeDelete" class="mt10 ml20" :max-count="1" @delete="deleteImg" />
<van-uploader
name="fileListIdFront"
v-model="fileListIdFront"
:after-read="afterRead"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
@delete="deleteImg"
/>
</div>
<van-cell-group>
<van-field required :label="item.id == '1' ? `${item.text}国徽页` : `${item.text}本人页`" disabled />
</van-cell-group>
<div @click="test('fileListIdBack', saleInsuredInfo.idType)">
<van-uploader name="fileListIdBack" v-model="fileListIdBack" :after-read="afterRead" @delete="deleteImg" :before-delete="beforeDelete" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileListIdBack"
v-model="fileListIdBack"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-if="item.id == '3' || item.id == '4'">
@@ -29,7 +45,15 @@
<van-field required :label="item.id == '3' ? `${item.text}` : `${item.text}本人照片页`" disabled />
</van-cell-group>
<div @click="test('fileLIstImg', saleInsuredInfo.idType)">
<van-uploader name="fileLIstImg" v-model="fileLIstImg" :after-read="afterRead" @delete="deleteImg" :before-delete="beforeDelete" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileLIstImg"
v-model="fileLIstImg"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-if="item.id == '5' || item.id == '6'">
@@ -37,7 +61,31 @@
<van-field required :label="`${item.text}头像面`" disabled />
</van-cell-group>
<div @click="test('fileLIstImg', saleInsuredInfo.idType)">
<van-uploader name="fileLIstImg" v-model="fileLIstImg" :after-read="afterRead" @delete="deleteImg" :before-delete="beforeDelete" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileLIstImg"
v-model="fileLIstImg"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-if="item.id == '7'">
<van-cell-group>
<van-field required :label="item.text" disabled />
</van-cell-group>
<div @click="test('saleInsuredInfoOther', saleInsuredInfo.idType)">
<van-uploader
name="saleInsuredInfoOther"
v-model="saleInsuredInfoOther"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
</div>
@@ -46,7 +94,15 @@
<van-field required label="银行卡账户" disabled />
</van-cell-group>
<div @click="test('fileListBank', saleInsuredInfo.idType)" v-if="isAppant == '0'">
<van-uploader name="fileListBank" v-model="fileListBank" :after-read="afterRead" @delete="deleteImg" :before-delete="beforeDelete" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileListBank"
v-model="fileListBank"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
</div>
@@ -65,13 +121,29 @@
<van-field required :label="item.id == '1' ? `${item.text}头像面` : `${item.text}户主页`" disabled />
</van-cell-group>
<div @click="test('fileListIdFrontInsured', saleInsuredPersonInfo.idType)">
<van-uploader name="fileListIdFrontInsured" v-model="fileListIdFrontInsured" :after-read="afterRead" :before-delete="beforeDelete" @delete="deleteImg" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileListIdFrontInsured"
v-model="fileListIdFrontInsured"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
</div>
<van-cell-group>
<van-field required :label="item.id == '1' ? `${item.text}国徽页` : `${item.text}本人页`" disabled />
</van-cell-group>
<div @click="test('fileListIdBackInsured', saleInsuredPersonInfo.idType)">
<van-uploader name="fileListIdBackInsured" v-model="fileListIdBackInsured" :after-read="afterRead" :before-delete="beforeDelete" @delete="deleteImg" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileListIdBackInsured"
v-model="fileListIdBackInsured"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-if="item.id == '3' || item.id == '4'">
@@ -79,15 +151,47 @@
<van-field required :label="item.id == '3' ? `${item.text}` : `${item.text}本人照片页`" disabled />
</van-cell-group>
<div @click="test('fileLIstImgInsured', saleInsuredPersonInfo.idType)">
<van-uploader name="fileLIstImgInsured" v-model="fileLIstImgInsured" :after-read="afterRead" :before-delete="beforeDelete" @delete="deleteImg" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileLIstImgInsured"
v-model="fileLIstImgInsured"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-if="item.id == '5' || item.id == '6'">
<van-cell-group>
<van-field required :label="`${item.text}头像面`" disabled />
</van-cell-group>
<div @click="test('fileLIstImgInsrued', saleInsuredPersonInfo.idType)">
<van-uploader name="fileLIstImgInsrued" v-model="fileLIstImgInsrued" :after-read="afterRead" :before-delete="beforeDelete" @delete="deleteImg" class="mt10 ml20" :max-count="1" />
<div @click="test('fileLIstImgInsured', saleInsuredPersonInfo.idType)">
<van-uploader
name="fileLIstImgInsured"
v-model="fileLIstImgInsured"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-if="item.id == '7'">
<van-cell-group>
<van-field required :label="item.text" disabled />
</van-cell-group>
<div @click="test('saleInsuredPersonInfoOther', saleInsuredPersonInfo.idType)">
<van-uploader
name="saleInsuredPersonInfoOther"
v-model="saleInsuredPersonInfoOther"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
</div>
@@ -96,7 +200,15 @@
<van-field required label="银行卡账户" disabled />
</van-cell-group>
<div @click="test('fileListBankInsured', saleInsuredPersonInfo.idType)" v-if="isAppant == '1'">
<van-uploader name="fileListBankInsured" v-model="fileListBankInsured" :after-read="afterRead" :before-delete="beforeDelete" @delete="deleteImg" class="mt10 ml20" :max-count="1" />
<van-uploader
name="fileListBankInsured"
v-model="fileListBankInsured"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
</div>
@@ -109,8 +221,34 @@
<span>其他</span>
</div>
<div class="m20 bg-white">
<div @click="test('fileListOther', saleInsuredPersonInfo.idType)">
<van-uploader name="fileListOther" v-model="fileListOther" :after-read="afterRead" :before-delete="beforeDelete" @delete="deleteImg" class="mt10 ml20" :max-count="3" />
<div @click="test('fileListOther', saleInsuredPersonInfo.idType)" class="flex">
<van-uploader
name="fileListOtherOne"
v-model="fileListOtherOne"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
<van-uploader
name="fileListOtherTwo"
v-model="fileListOtherTwo"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
<van-uploader
name="fileListOtherThree"
v-model="fileListOtherThree"
:after-read="afterRead"
:before-delete="beforeDelete"
@delete="deleteImg"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
</div>
@@ -146,6 +284,10 @@ export default {
fileListIdBack: [],
// 其他类型页面
fileLIstImg: [],
// 投保人选择的必选其他
saleInsuredInfoOther: [],
// 被保人选择的必选其他
saleInsuredPersonInfoOther: [],
// 银行账户
fileListBank: [],
// 被保人身份证正面
@@ -156,8 +298,11 @@ export default {
fileListBankInsured: [],
// 被保人其他类型页面
fileLIstImgInsured: [],
// fileLIstImgInsrued
// 其他
fileListOther: [],
fileListOtherOne: [],
fileListOtherTwo: [],
fileListOtherThree: [],
// 单选框
radio: '',
// 是否可以点击下一步
@@ -340,32 +485,40 @@ export default {
Dialog.confirm({
title: '提示',
message: '您确定要删除吗'
}).then(() => {
if (detail.name == 'fileListIdFront') {
this.fileListIdFront = []
} else if (detail.name == 'fileListIdBack') {
this.fileListIdBack = []
} else if (detail.name == 'fileLIstImg') {
this.fileLIstImg = []
} else if (detail.name == 'fileListBank') {
this.fileListBank = []
} else if (detail.name == 'fileListIdFrontInsured') {
this.fileListIdFrontInsured = []
} else if (detail.name == 'fileListIdBackInsured') {
this.fileListIdBackInsured = []
} else if (detail.name == 'fileListBankInsured') {
this.fileListBankInsured = []
} else if (detail.name == 'fileLIstImgInsured') {
this.fileLIstImgInsured = []
} else if (detail.name == 'fileListOther') {
this.fileListOther = []
}
this.deleteImg(file)
}).catch(() => {
// on cancel
})
.then(() => {
if (detail.name == 'fileListIdFront') {
this.fileListIdFront = []
} else if (detail.name == 'fileListIdBack') {
this.fileListIdBack = []
} else if (detail.name == 'fileLIstImg') {
this.fileLIstImg = []
} else if (detail.name == 'fileListBank') {
this.fileListBank = []
} else if (detail.name == 'fileListIdFrontInsured') {
this.fileListIdFrontInsured = []
} else if (detail.name == 'fileListIdBackInsured') {
this.fileListIdBackInsured = []
} else if (detail.name == 'fileListBankInsured') {
this.fileListBankInsured = []
} else if (detail.name == 'fileLIstImgInsured') {
this.fileLIstImgInsured = []
} else if (detail.name == 'fileListOtherOne') {
this.fileListOtherOne = []
} else if (detail.name == 'fileListOtherTwo') {
this.fileListOtherTwo = []
} else if (detail.name == 'fileListOtherThree') {
this.fileListOtherThree = []
} else if (detail.name == 'saleInsuredInfoOther') {
this.saleInsuredInfoOther = []
} else if (detail.name == 'saleInsuredPersonInfoOther') {
this.saleInsuredPersonInfoOther = []
}
this.deleteImg(file)
})
.catch(() => {
// on cancel
})
},
test(type, id) {
let that = this
@@ -400,6 +553,12 @@ export default {
case 'fileLIstImgInsured':
that.type = type
break
case 'saleInsuredPersonInfoOther':
that.type = type
break
case 'saleInsuredInfoOther':
that.type = type
break
}
},
// 删除图片
@@ -458,7 +617,13 @@ export default {
if (res.result == '0') {
this.$toast.clear()
// res.responseObject.imgList.map(item => {
if (that.type == 'fileListIdFront' || that.type == 'fileListIdBack' || that.type == 'fileLIstImg' || that.type == 'fileListBank') {
if (
that.type == 'fileListIdFront' ||
that.type == 'fileListIdBack' ||
that.type == 'fileLIstImg' ||
that.type == 'fileListBank' ||
that.type == 'saleInsuredInfoOther'
) {
// 是投保人
// console.log(that.file)
// 证件类型
@@ -481,6 +646,8 @@ export default {
imageInfoType = '9'
} else if (that.type == 'fileLIstImg' && that.id == '6') {
imageInfoType = '10'
} else if (that.type == 'saleInsuredInfoOther' && that.id == '7') {
imageInfoType = '11'
}
let obj = {
businessNo: that.orderNo,
@@ -499,7 +666,8 @@ export default {
that.type == 'fileListIdFrontInsured' ||
that.type == 'fileListIdBackInsured' ||
that.type == 'fileListBankInsured' ||
that.type == 'fileLIstImgInsured'
that.type == 'fileLIstImgInsured' ||
that.type == 'saleInsuredPersonInfoOther'
) {
// 是被保人
// 证件类型
@@ -524,6 +692,8 @@ export default {
imageInfoType = '9'
} else if (that.type == 'fileLIstImgInsured' && that.id == '6') {
imageInfoType = '10'
} else if (that.type == 'saleInsuredPersonInfoOther' && that.id == '7') {
imageInfoType = '11'
}
let obj = {
@@ -585,6 +755,12 @@ export default {
case 'fileLIstImgInsured':
that.fileLIstImgInsured = []
break
case 'saleInsuredInfoOther':
that.saleInsuredInfoOther = []
break
case 'saleInsuredPersonInfoOther':
that.saleInsuredPersonInfoOther = []
break
}
this.$toast.clear()
this.$toast(res.resultMessage)
@@ -682,7 +858,9 @@ export default {
fileListIdFrontInsured,
fileListIdBackInsured,
fileListBankInsured,
fileLIstImgInsured
fileLIstImgInsured,
saleInsuredPersonInfoOther,
saleInsuredInfoOther
} = this
return {
fileListIdFront,
@@ -693,7 +871,9 @@ export default {
fileListIdBackInsured,
fileListBankInsured,
fileLIstImgInsured,
fileLIstImg
fileLIstImg,
saleInsuredPersonInfoOther,
saleInsuredInfoOther
}
}
},
@@ -735,8 +915,39 @@ export default {
val.radio !== '') ||
(val.fileListBank.length != '0' && val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.fileListBankInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileListBank.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileListBank.length != '0' && val.radio !== '')
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1') ||
(val.fileLIstImg.length != '0' && val.fileListBank.length != '0' && val.radio !== '' && this.relationToAppnt == '1') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBank.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredPersonInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBank.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBankInsured.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.fileListBank.length != '0' &&
val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.fileListBank.length != '0' && val.fileLIstImg.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBank.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.fileListBankInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBank.length != '0' && val.radio !== '' && this.relationToAppnt == '1')
) {
that.isDisabled = false
} else {

View File

@@ -55,7 +55,7 @@
</div>
<div v-for="(it, ind) in list" :key="it.riskName" class="pb10">
<!-- <span>{{ it.isMainRisk }}</span> -->
<van-collapse-item title="险信息" :name="ind + 10">
<van-collapse-item title="险信息" :name="ind + 10">
<van-cell-group>
<van-cell title="险种名称" :value="it.riskName" />
<van-cell title="保险期间" :value="it.insuYear" />

View File

@@ -1,74 +1,74 @@
<template>
<div class="insuranceInformation-container pb50">
<van-notice-bar :scrollable="false" v-if="!Time" class="notice">{{ `提示阅读时长需在${this.Time ? this.time : this.number}秒以上` }}</van-notice-bar>
<div class="bg-white flex justify-content-c flex-direction-colunm align-items-center p20 fs14">
<h3 style="text-align:center" class="mb20">国富人寿保险股份有限公司人身保险投保须知</h3>
<p>尊敬的客户</p>
<p class="mb20">&nbsp; 感谢您选择国富人寿保险股份有限公司以下简称我公司为了充分维护您的权益在填写电子投保书前敬请您注意以下事项</p>
<h2 style="text-align:center" class="mb20">人身保险投保提示</h2>
<p class="mb20">尊敬的客户</p>
<p class="mb20">
&nbsp; 1.您的本次投保信息将以电子投保书的形式提交给我公司
人身保险是以人的寿命和身体为保险标的的保险当被保险人发生死亡伤残疾病等风险事故时或者达到合同约定的年龄期限等条件时保险公司按照保险合同约定给付保险金人身保险具有保障和长期储蓄功能可以用于为人们的生活进行长期财务规划为帮助您更好地认识和购买人身保险产品保护您的合法权益我们按中国保监会的要求请您在填写投保单之前认真阅读以下内容
</p>
<p class="mb20 fw600">请您确认保险机构和销售人员的合法资格</p>
<p class="mb20">
请您从持有中国银行保险监督管理委员会颁发经营保险业务许可证保险兼业代理许可证的合法机构或持有保险销售从业人员执业证书的销售人员处办理保险业务如需要查询销售人员的销售资格您可以要求销售人员告知具体查询方式或登录保险中介监管信息系统查询网址http://iir.circ.gov.cn
</p>
<p class="mb20 fw600">请您根据实际保险需求和支付能力选择人身保险产品</p>
<p class="mb20">
请您根据自身已有的保障水平和经济实力等实际情况选择适合自身需求的保险产品多数人身保险产品期限较长如果需要分期交纳保险费请您充分考虑是否有足够稳定的财力长期支付保险费不按时交费可能会影响您的权益建议您使用银行转账等非现金方式交纳保险费
</p>
<p class="mb20 fw600">请您详细阅读并充分了解保险合同的条款内容</p>
<p class="mb20">
请您不要将保险产品的广告公告招贴画等宣传材料视同为保险合同应当要求销售人员向您提供相关保险产品的条款请您认真阅读并充分理解条款内容重点关注保险责任免除保险人责任投保人及被保险人权利和义务免赔额或赔付比例的计算申请理赔的手续退保相关约定费用扣除产品期限等内容您若对条款内容有疑问您可以要求销售人员进行解释
</p>
<p class="mb20 fw600">请您了解犹豫期的有关约定</p>
<p class="mb20">
一年期以上的人身保险产品一般有犹豫期投保人被保险人收到保险合同并书面签收保险合同回执的次日零时起15日以内的有关约定除合同另有约定外在犹豫期内您可以无条件解除保险合同但应退还保险合同我们将退还您全部保险费并不会对此收取其他任何费用
</p>
<p class="mb20 fw600">犹豫期后解除保险合同请您慎重</p>
<p class="mb20">
若您在犹豫期过后解除保险合同您会有一定的损失我们自收到解除合同的申请书之日起三十日以内按照合同约定退还保险合同的现金价值现金价值表附在正式保险合同之中您若存在疑问可要求我们予以解释
</p>
<p class="mb20 fw600">请您充分理解并认识分红保险投资连结保险万能保险等人身保险新型产品的风险和特点</p>
<p class="mb20">
1如果您选择购买分红保险产品请您注意以下事项分红水平主要取决于保险公司的实际经营成果如果实际经营成果优于定价假设我们才会将部分盈余分配给您如果实际经营成果差于定价假设我们可能不会派发红利产品说明书或保险利益测算书中关于未来保险合同利益的预测是基于公司精算假设不能理解为对未来的预期红利分配是不确定的
</p>
<p class="mb20">
&nbsp; 2.电子投保书的填写本电子投保书是您与我公司订立保险合同的重 要组成部分为保障您的权益请务必保证电子投保书各项内容为投保
人和被保险人如实准确填写
<strong
>依据中华人民共和国保险法的有 关规定保险公司就被保险人有关情况的询问您应当履行如实告知
义务否则我公司有权依法解除保险合同并对保险合同解除前发生的 保险事故不承担保险责任所有告知事项均应以书面告知为准</strong
>
口头 告知无效
2如果您选择购买投资连结保险产品请您注意以下事项您应当详细了解投资连结保险的费用扣除情况包括但不限于初始费用买入卖出差价死亡风险保险费保单管理费资产管理费手续费退保费用等您应当要求销售人员将投资连结保险账户价值的详细计算方法对您进行解释投资连结保险产品的投资回报具有不确定性投资风险完全由您承担产品说明书或保险利益测算书中关于未来保险合同利益的预测是基于公司精算假设不能理解为对未来的预期实际投资可能赢利或出现亏损如果您选择灵活交费方式的您应当要求销售人员将您停止交费可能产生的风险和不利后果对您进行详细解释
</p>
<p class="mb20">
&nbsp; 3.投保信息真实性为保障您的权益请您务必真实准确地填写相 关投保信息包括但不限于投保人被保险人和受益人的姓名性别
出生日期证件类型证件号码本人联系电话和联系地址等如果 您提供的信息不真实不准确或不完整可能导致保险合同无效或您 的合法权益受损等
3如果您选择购买万能保险产品请您注意以下事项万能保险产品通常有最低保证利率的约定最低保证利率仅针对投资账户中资金您应当详细了解万能保险的费用扣除情况包括但不限于初始费用死亡风险保险费保单管理费手续费退保费用等您应当要求销售人员将万能保险账户价值的详细计算方法对您进行解释万能保险产品的投资回报具有不确定性您要承担部分投资风险保险公司每月公布的结算利率只能代表一个月的投资情况不能理解为对全年的预期结算利率仅针对投资账户中的资金不针对全部保险费产品说明书或保险利益测算书中关于未来保险合同利益的预测是基于公司精算假设最低保证利率之上的投资收益是不确定的不能理解为对未来的预期如果您选择灵活交费方式的您应当要求销售人员将您停止交费可能产生的风险和不利后果对您进行详细解释
</p>
<p class="mb20 fw600">请您正确认识人身保险新型产品与其他金融产品</p>
<p class="mb20">
&nbsp; 4.您在投保时如有疑问投保成功后需要查询保单信息投保成功后 如有资料需要变更以及投诉请您关注国富人寿保险官方微信公众
号或前往我公司客户服务中心进行办理同时还可拨打0771-5723168 咨询
分红保险投资连结保险万能保险等人身保险新型产品兼具保险保障功能和投资功能不同保险产品对于保障功能和投资功能侧重不同但本质上属于保险产品产品经营主体是保险公司您不宜将人身保险新型产品与银行存款国债基金等金融产品进行片面比较更不要把它作为银行存款的替代品
</p>
<p class="mb20 fw600">选择健康保险产品时请您注意产品特性和条款具体约定</p>
<p class="mb20">
&nbsp; 5.请您仔细阅读保险条款了解理赔申请方式及理赔应备文件
健康保险产品是具有较强风险保障功能的产品,既有定额给付性质的也有费用补偿性质的定额给付性质的健康保险按约定给付保险金与被保险人是否获得其他医疗费用补偿无关对于费用补偿性质的健康保险我们给付的保险金可能会相应扣除被保险人从其他渠道所获的医疗费用补偿请您注意条款中是否有免赔额或赔付比例的约定是否有疾病观察期约定如果我们以附加险形式销售无保证续保条款的健康保险产品请您注意附加健康保险的保险期间应不小于主险保险期间
</p>
<p class="mb20 fw600">为未成年子女选择保险产品时保险金额应适当</p>
<p class="mb20">
&nbsp; 6.我公司可为您提供电子保险合同或纸质保险合同如您选择电子保险 合同投保成功后我公司将向您投保时所提供的电子邮箱地址发送电子
保险合同如您选择纸质保险合同投保成功后我公司线下为您递送 纸质保险合同为维护您的合法权益方便我公司为您提供优质服务
请您在收到电子保险合同或纸质保险合同仔细阅读各项内容并确认无误 关注国富人寿保险官方微信公众号进行保险合同签收犹豫期
从保险合同签收日次日起开始计算犹豫期内您有全额退保的权利 犹豫期过后我公司向您投保时提供的电子邮箱发送电子发票请您注 意查收
如果您为未成年子女购买保险产品因被保险人身故给付的保险金总和应符合中国银保监会的有关规定其主要目的是为了保护未成年人权益防止道德风险同时从整个家庭看父母是家庭的主要经济来源和支柱以父母为被保险人购买保险可以使整个家庭获得更加全面的保险保障
</p>
<p class="mb20 fw600">请您如实填写投保资料正确履行如实告知义务等有关情况并亲笔签名</p>
<p class="mb20">
&nbsp; 7.保险产品销售区域广西地区 我公司分支机构信息详见官网信息公示官网地址www.e- guofu.com)
我国保险对投保人的如实告知行为进行了明确的规定投保时您填写的投保单应当属实对于销售人员询问的有关被保险人的问题您也应当如实回答否则可能影响您和被保险人的权益为了有效保障自身权益请您在充分理解知悉人身保险投保提示投保单等相关文件后亲笔签名
</p>
<p class="mb20 fw600">十一请您配合保险公司做好客户回访工作</p>
<p class="mb20">
&nbsp; 8.以身故为给付保险金条件的保险合同未经被保险人同意并认可保 险金额的保险合同无效
我们按规定开展客户回访工作一般通过电话信函和上门回访等形式进行为确保您自己的权益得到切实保障您应对回访问题进行如实答复不清楚的地方可以立即提出要求我们进行详细解释请您在投保时准确完整填写地址邮编常用联系电话等个人信息以便我们能够对您及时回访
</p>
<p class="mb20 fw600">十二请您注意保护自身的合法权益</p>
<p class="mb20">
&nbsp; 9.请根据自身情况选择合适的保险产品以确保本次投保计划符合您 的保险需求提前终止或放弃之前有效的保险合同可能使您蒙受经济 上的损失
如果您发现销售人员在保险销售过程中存在误导销售行为或认为自身权益受到侵犯请注意保留书面证据或其他证据可向保险公司反映公司投诉电话4008 008
008也可以向当地银保监局投诉电话12378 江苏省保险纠纷投诉处理中心电话4008012378投诉必要时还可以根据合同约定申请仲裁或向法院起诉
</p>
<p class="mb20">
&nbsp; 10.我公司采集客户信息的用途包括但不限于计算保费核保 送保单客户回访续期提醒和寄送通知书推荐产品等
为了保证您的权益如果联系电话和联系地址等信息发生变更应及时 办理更正手续
</p>
<p class="mb20">&nbsp;11.我公司承诺未经您的同意不会将客户信息用于第三方机构的销 售活动</p>
<p class="mb20">
&nbsp;12.其他服务说明
</p>
<p>
&nbsp;&nbsp; 1投保承保流程 选择保险产品点击购买填写投保信息确认信息和金额在线 支付收到承保通知投保成功
</p>
<p>
&nbsp;&nbsp; 2保险费支付方式 本产品的保险费将由我公司从您投保时所授权的银行账号划扣
</p>
<p>
&nbsp;&nbsp; 3保单变更办理流程 若您需办理保单变更业务可关注国富人寿保险微信公众号 点击我的菜单注册用户进入我的保单-保单变更服务完成
在线办理或提交申请材料
</p>
<p>
&nbsp;&nbsp; 3保单变更办理流程 若您需办理保单变更业务可关注国富人寿保险微信公众号 点击我的菜单注册用户进入我的保单-保单变更服务完成
在线办理或提交申请材料
</p>
<p>4保险金支付和保全退费 各类保险金将根据权益人授权的银行账号进行转账支付 保单退费款项按客户申请时授权的银行账号进行转账支付</p>
<p class="mb20 fw600">我公司偿付能力相关信息已披露于我司官网具体详见www.dingchenglife.com.cn(公开信息披露专栏)</p>
</div>
<van-radio-group v-model="radio" class="pb10 pt20 pl30">
<van-radio name="1" @click="click">本人确认已阅读<span>国富人寿投保须知</span></van-radio>
<van-radio name="1" @click="click">
本人确认已阅读
<span>人身保险投保提示</span>
</van-radio>
</van-radio-group>
<div class="bg-white bottom-btn">
<van-button type="danger" size="large" :disabled="isDisable" @click="goNext" v-no-more-click="1000">下一步</van-button>
@@ -76,7 +76,7 @@
</div>
</template>
<script>
import { RadioGroup, Radio, Dialog, Notify } from 'vant'
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
import { saveInformation } from '@/api/ebiz/sale/sale'
// import config from '@/config'
// import axios from 'axios'
@@ -110,11 +110,21 @@ export default {
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Dialog.name]: Dialog,
[Notify.name]: Notify
[NoticeBar.name]: NoticeBar
},
created() {
mounted() {
let that = this
Notify({ type: 'warning', message: '提示阅读时长需在10秒以上', duration: 10000, background: '#999999', className: 'notify' })
// {{switchFlag.Time?pageVariable.msg:pageVariable.number}}
that.timeOut()
// Notify({
// type: 'warning',
// message: `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上`,
// duration: 10000,
// background: '#999999',
// className: 'notify'
// })
document.body.style.backgroundColor = '#fff'
that.signVal = window.localStorage.getItem('sign-val')
that.insuredSign = JSON.parse(window.localStorage.getItem('sign-insured'))
that.appntSign = JSON.parse(window.localStorage.getItem('sign-appnt'))
@@ -124,7 +134,7 @@ export default {
let that = this
let time = that.time
that.Time = false
that.number = `${time}s`
that.number = `${time}`
let timer = setInterval(() => {
time--
if (time <= 0) {
@@ -135,7 +145,7 @@ export default {
that.isOver = true
// window.localStorage.setItem('step', '1')
}
that.number = `${time}s`
that.number = `${time}`
}, 1000)
},
// 点击阅读时
@@ -154,6 +164,17 @@ export default {
// 下一步
goNext() {
if (this.isWeixin) {
console.log('````````````````````')
console.log('进入微信')
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let that = this
if (that.signVal == '0' || that.signVal == '2') {
let data = {
@@ -176,10 +197,15 @@ export default {
saveInformation(data).then(res => {
// console.log(res)
if (res.result == '0') {
this.$toast.clear()
// window.localStorage.setItem('insurance-url', res.signDTO.policyUrl)
// console.log(res)
// console.log(res.signDTO.policyUrl)
console.log('````````````')
console.log('接口拉去成功:' + res.signDTO.policyUrl)
window.localStorage.setItem('insurance-policyUrl', res.signDTO.policyUrl)
window.localStorage.setItem('detailJump', '')
console.log('保存了结果:' + localStorage.getItem('insurance-policyUrl'))
// let url = config.imgDomain + `/app/returnStream?imgPath=${res.signDTO.policyUrl}`
// axios.get(url).then(res => {
// console.log(res)
@@ -187,8 +213,7 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureOfElectronic',
needPartRefresh: '1'
url: location.origin + '/#/sale/signatureOfElectronic'
},
routerInfo: {
path: '/sale/signatureOfElectronic'
@@ -199,6 +224,15 @@ export default {
}
})
} else {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
@@ -218,6 +252,12 @@ export default {
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
console.log('````````````')
console.log('接口拉去成功:' + res.signDTO.policyUrl)
window.localStorage.setItem('insurance-policyUrl', res.signDTO.policyUrl)
window.localStorage.setItem('detailJump', '')
console.log('保存了结果:' + localStorage.getItem('insurance-policyUrl'))
this.$jump({
flag: 'h5',
extra: {
@@ -277,7 +317,8 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureOfElectronic'
url: location.origin + '/#/sale/signatureOfElectronic',
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/signatureOfElectronic'
@@ -314,7 +355,7 @@ export default {
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureOfElectronic',
needPartRefresh: '1'
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/signatureOfElectronic'
@@ -352,4 +393,11 @@ export default {
}
}
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.notice {
width: 100%;
position: fixed;
top: 0;
z-index: 20;
}
</style>

View File

@@ -24,8 +24,8 @@
@click="toSelect('2')"
/>
<!-- <van-field v-model="userInfo.idNo" v-validate="'required|idNo'" maxlength="18" label="证件号码" name="证件号码" placeholder="请输入" clearable> -->
<van-field v-model="userInfo.idNo" maxlength="18" label="证件号码" name="证件号码" placeholder="请输入" clearable>
<!-- <van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')">证件扫描</van-button>-->
<van-field v-model="userInfo.idNo" maxlength="18" label="证件号码" name="证件号码" placeholder="请输入" clearable @blur="getRelatedData(userInfo.idNo)">
<!-- <van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')">证件扫描</van-button> -->
</van-field>
<FieldDatePicter
v-validate="'required'"
@@ -88,9 +88,18 @@
placeholder="请输入"
v-validate="'required|onlyNumber|stature'"
clearable
@blur="checkStature(userInfo.stature)"
maxlength="5"
/>
<van-field v-model="userInfo.avoirdupois" label="体重(kg)" name="体重" placeholder="请输入" v-validate="'required|onlyNumber|avoirdupois'" clearable />
<van-field
v-model="userInfo.avoirdupois"
label="体重(kg)"
name="体重"
placeholder="请输入"
v-validate="'required|onlyNumber|avoirdupois'"
clearable
@blur="checkAvoirdupois(userInfo.avoirdupois)"
/>
</van-cell-group>
<van-radio-group :border="false" v-model="userInfo.addressStatus" v-validate="'required'" label="设置为联系地址" name="设置为联系地址">
<!-- 工作信息 -->
@@ -178,7 +187,7 @@
<van-radio name="0">设为联系地址</van-radio>
</div>
<van-field v-model="userInfo.companyZip" label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable />
<van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="11" clearable />
<van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="13" clearable />
</van-cell-group>
<!-- 家庭信息 -->
<van-cell-group>
@@ -218,7 +227,7 @@
<van-radio name="1">设为联系地址</van-radio>
</div>
<van-field v-model="userInfo.homeZip" label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable />
<van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="11" clearable />
<van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="13" clearable />
</van-cell-group>
</van-radio-group>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">下一步</van-button>
@@ -259,6 +268,8 @@ 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 './js/verification'
import { selectComp } from './js/methods'
export default {
name: 'insuredInfo',
@@ -409,44 +420,44 @@ export default {
this.userInfo.name = name
},
selectClick(index) {
this.currentPopupIndex = index
let title = ''
if (index == 1) {
;[this.customerShowPicker, title] = [true, '客户列表']
} else if (index == 2) {
;[this.occupationShowPicker, title] = [true, '职业类别']
} else if (index == 3) {
localStorage.scanFromInsured = 'true'
;[this.isScan, title] = [true, '身份证扫描']
}
// this.currentPopupIndex = index
// let title = ''
// if (index == 1) {
// ;[this.customerShowPicker, title] = [true, '客户列表']
// } else if (index == 2) {
// ;[this.occupationShowPicker, title] = [true, '职业类别']
// } else if (index == 3) {
// localStorage.scanFromInsured = 'true'
// ;[this.isScan, title] = [true, '身份证扫描']
// }
setTimeout(() => {
this.$jump({
flag: 'navigation',
extra: {
title,
hiddenLeft: '1'
}
})
this.closeBtn()
}, 400)
},
closeBtn() {
// 筛选按钮的显示
setTimeout(() => {
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
}, 500)
// setTimeout(() => {
// this.$jump({
// flag: 'navigation',
// extra: {
// title,
// hiddenLeft: '1'
// }
// })
// this.closeBtn()
// }, 400)
// let that = this
selectComp(this, index, '1')
},
// closeBtn() {
// // 筛选按钮的显示
// this.$jump({
// flag: 'webview_right_button',
// extra: {
// btns: [
// {
// img: this.$assetsUrl + 'images/del-close.png',
// route: { flag: '', extra: {} }
// }
// ]
// }
// })
// },
appCallBack() {
// 筛选按钮的点击事件
this.$jump({
@@ -538,7 +549,7 @@ export default {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
}
break
case '1':
@@ -667,7 +678,7 @@ export default {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
},
nextStep() {
// console.log(this.userInfo.idType)
@@ -779,7 +790,7 @@ export default {
//如果是已婚
if ((this.userInfo.sex == '0' && age < 22) || (this.userInfo.sex == '1' && age < 20)) {
if (this.userInfo.marriage != '2') {
return this.$toast('年龄与婚姻状况不符')
return this.$toast('投保人不符合国家婚姻法定年龄')
}
}
// if (this.userInfo.marriage == '1') {
@@ -980,6 +991,45 @@ export default {
hiddenRight: '1'
}
})
},
//校验身高
checkStature(val) {
console.log(val)
if (val.trim().length == 0) {
return this.$toast('身高不能为空')
}
let res = /^[0-9]{0,3}([.]{1}[0-9]{1})?$/.test(val) && val < 300 && val > 10
if (!res) {
this.userInfo.stature = ''
return this.$toast('身高输入有误')
}
},
//校验体重
checkAvoirdupois(val) {
if (val.trim().length == 0) {
return this.$toast('体重不能为空')
}
let res = /^[0-9]+([.]{1}[0-9]{1})?$/.test(val) && val > 0.1
if (!res) {
this.userInfo.avoirdupois = ''
return this.$toast('体重输入有误')
}
},
getRelatedData(val) {
if (this.userInfo.idType != '1') {
return
}
//如果证件校验不通过,恢复默认值
if (idToData(val).text) {
;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
return this.$toast(idToData(val).text)
}
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = idToData(val).age < 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
}
},
beforeDestroy() {

View File

@@ -44,10 +44,11 @@
clearable
:readonly="isAppnt"
v-validate="'required'"
@blur="getRelatedData(userInfo.idNo)"
>
<!-- <van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')" v-no-more-click="1000"-->
<!-- >证件扫描</van-button-->
<!-- >-->
<van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')" v-no-more-click="1000"
>证件扫描</van-button
>
</van-field>
<FieldDatePicter
v-validate="'required'"
@@ -58,7 +59,7 @@
:flag="true"
@confirm="onDateConfirm($event, '0')"
ref="certificateValidate"
:readonly="isAppnt"
:readonly="isAppnt || idLimit"
></FieldDatePicter>
<FieldDatePicter
:v-validate="{ required: certiexpiredateRequired }"
@@ -69,7 +70,7 @@
@confirm="onDateConfirm($event, '1')"
ref="certiexpiredate"
:flag="certiexpiredateShow"
:readonly="isAppnt"
:readonly="isAppnt || idLimit"
></FieldDatePicter>
<div class="border-bt relative fs14 p10 flex align-center">
<van-checkbox v-model="userInfo.effectiveDateType" class="fr" :disabled="effectiveDateTypeAble" @change="effectiveDataTypeChange">长期</van-checkbox>
@@ -142,6 +143,7 @@
clearable
maxlength="5"
:readonly="isAppnt"
@blur="checkStature(userInfo.stature)"
/>
<van-field
v-model="userInfo.avoirdupois"
@@ -151,6 +153,7 @@
v-validate="'required|onlyNumber'"
clearable
:readonly="isAppnt"
@blur="checkAvoirdupois(userInfo.avoirdupois)"
/>
</van-cell-group>
<!-- 工作信息 -->
@@ -271,7 +274,7 @@
clearable
:readonly="isAppnt"
/>
<van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="11" clearable :readonly="isAppnt" />
<van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="13" clearable :readonly="isAppnt" />
</van-cell-group>
<!-- 家庭信息 -->
<van-cell-group class="mt5" v-if="!isScan">
@@ -326,7 +329,7 @@
clearable
:readonly="isAppnt"
/>
<van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="11" clearable :readonly="isAppnt" />
<van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="13" clearable :readonly="isAppnt" />
</van-cell-group>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-if="!isScan" v-no-more-click="1000">下一步</van-button>
@@ -368,6 +371,8 @@ 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 './js/verification'
import { selectComp } from './js/methods'
export default {
name: 'insuredInfo',
@@ -408,7 +413,7 @@ export default {
value: '1'
}
],
currentTime: beforeDate.getBeforeDays(28),
currentTime: beforeDate.getBeforeDays(27),
fromCustomer: false, //是否从客户列表拉取的数据
codeDisabled: false, //获取验证码是否禁用
countDown: 60, //倒计时
@@ -427,9 +432,9 @@ export default {
userInfo: {
name: '',
sex: '0',
nativeplace: 'CHN', //国家地区
nativeplace: '1', //国家地区
birthday: '',
idType: '0', //证件类型
idType: '1', //证件类型
idNo: '', //证件号码
certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
@@ -475,13 +480,13 @@ export default {
householdCity: '', //户籍市
addressStatus: '' //是否是联系地址
},
tempUserInfo: {}, //临时变量用来置空userinfo
areaList: areaList,
currentPopupIndex: '',
customerShowPicker: false,
occupationShowPicker: false,
isAppnt: false, // 是否投被同人
appntMarriage: '' //投保人婚姻状况
appntMarriage: '', //投保人婚姻状况
idLimit: false //证件起止日期是否只读
}
},
created() {
@@ -491,7 +496,7 @@ export default {
getOrderDetail({ orderNo: localStorage.orderNo }).then(res => {
if (res.result == 0) {
//投被同人
if (res.orderDTO.insuredDTOs[0].relationToAppnt == '1') {
if (res.orderDTO.insuredDTOs.length && res.orderDTO.insuredDTOs[0].relationToAppnt == '1') {
this.$nextTick(() => {
this.isAppnt = true
//获取投保人信息
@@ -520,13 +525,13 @@ export default {
// this.userInfo.effectiveDateType = insuredInfo.effectiveDateType == 'false' ? false : true
//数据不是从用户列表拉取
this.fromCustomer = false
this.userInfo.relationToAppnt = '00'
this.userInfo.relationToAppnt = '1'
//长期判断
if (this.userInfo.idType == '0') {
if (this.userInfo.idType == '1') {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
}
})
}
@@ -544,9 +549,9 @@ export default {
//设为联系地址
this.userInfo.addressStatus = '0'
//证件类型
this.userInfo.idType = '0'
this.userInfo.idType = '1'
//国家/地区
this.userInfo.nativeplace = 'CHN'
this.userInfo.nativeplace = '1'
if (this.$route.query.isShow) {
//户籍
if (insuredPersonInfo.householdProvince.length) {
@@ -593,7 +598,6 @@ export default {
},
mounted() {
window.appCallBack = this.appCallBack
this.tempUserInfo = this.userInfo
// document.body.style.backgroundColor = '#F5F5F5'
},
methods: {
@@ -606,27 +610,29 @@ export default {
if (this.isAppnt) {
return
}
this.currentPopupIndex = index
let title = ''
if (index == 1) {
;[this.customerShowPicker, title] = [true, '客户列表']
} else if (index == 2) {
;[this.occupationShowPicker, title] = [true, '职业类别']
} else if (index == 3) {
localStorage.scanFromInsured = 'false'
;[this.isScan, title] = [true, '身份证扫描']
}
// this.currentPopupIndex = index
// let title = ''
// if (index == 1) {
// ;[this.customerShowPicker, title] = [true, '客户列表']
// } else if (index == 2) {
// ;[this.occupationShowPicker, title] = [true, '职业类别']
// } else if (index == 3) {
// localStorage.scanFromInsured = 'false'
// ;[this.isScan, title] = [true, '身份证扫描']
// }
setTimeout(() => {
this.$jump({
flag: 'navigation',
extra: {
title,
hiddenLeft: '1'
}
})
this.closeBtn()
}, 400)
// setTimeout(() => {
// this.$jump({
// flag: 'navigation',
// extra: {
// title,
// hiddenLeft: '1'
// }
// })
// this.closeBtn()
// }, 400)
// let that = this
selectComp(this, index, '2')
},
chooseOccupation() {
this.$jump({
@@ -638,23 +644,20 @@ export default {
})
this.occupationShowPicker = false
},
closeBtn() {
// 筛选按钮的显示
setTimeout(()=> {
this.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: this.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
}, 500)
},
// closeBtn() {
// // 筛选按钮的显示
// this.$jump({
// flag: 'webview_right_button',
// extra: {
// btns: [
// {
// img: this.$assetsUrl + 'images/del-close.png',
// route: { flag: '', extra: {} }
// }
// ]
// }
// })
// },
//弹框选择
toSelect(pickerType, valueKey) {
// 投被同人不允许编辑
@@ -689,22 +692,31 @@ export default {
if (this.pickerType == '1') {
this.userInfo.nativeplace = value.id
} else if (this.pickerType == '2') {
this.idLimit = false
this.userInfo.idNo = this.userInfo.certificateValidate = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
this.userInfo.sex = '0'
this.effectiveDateTypeAble = false
console.log(value.id)
//身份证以外的证件类型可以使用长期
if (value.id != '1') {
this.effectiveDateTypeAble = false
} else {
if (value.id == '1') {
console.log('123')
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
this.effectiveDateTypeAble = age <= 45
} else if (value.id == 2 || value.id == 3) {
this.effectiveDateTypeAble = true
} else {
this.effectiveDateTypeAble = false
}
//出生证明返显证件截止日期
// //出生证明返显证件截止日期
// if (value.id == 3 && this.userInfo.birthday != '') {
// let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1972-12-31')
// this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
// this.certiexpiredateShow = false
// }
//户口本返显证件截止日期
// if (value.id == 2 || value.id == 3) {
// this.effectiveDateTypeAble = true
// }
// //户口本返显证件截止日期
// else if (value.id == 2 && this.userInfo.birthday != '') {
// let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1986-01-01')
// this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
@@ -768,7 +780,7 @@ export default {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
}
} else {
this.$toast(res.resultMessage)
@@ -788,6 +800,8 @@ export default {
this.userInfo[key] = ''
}
}
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = false
this.areaName = this.homeName = this.census = ''
this.userInfo.relationToAppnt = value.id
}
@@ -812,7 +826,7 @@ export default {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
}
break
case '1':
@@ -831,6 +845,7 @@ export default {
this.$refs.certiexpiredate.date = ''
return this.$toast('您的证件已过期')
}
//不同证件类型的判断
// if (this.userInfo.idType) {
// //获取年龄
@@ -868,8 +883,16 @@ export default {
//长期判断
if (this.userInfo.idType == '1') {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
this.effectiveDateTypeAble = age <= 45
}
//出生证有效期
// if (this.userInfo.idType == '3') {
// if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(val) > Date.parse('1973-01-01')) {
// this.userInfo.birthday = ''
// this.$refs.birthday.date = ''
// return this.$toast('出生证有效期或出生日期有误')
// }
// }
}
break
}
@@ -955,7 +978,7 @@ export default {
//计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
//数据是否从客户列表拉取
this.fromCustomer = true
},
@@ -968,8 +991,8 @@ export default {
//投被保人关系是配偶
if (this.userInfo.relationToAppnt == '2') {
//投保人不是已婚
if (this.appntMarriage != '1') {
//投保人或者被保人不是已婚
if (this.appntMarriage != '1' || this.userInfo.marriage != '1') {
return this.$toast('投被保人婚姻状况有误')
}
let insuredSex = this.userInfo.sex
@@ -989,7 +1012,7 @@ export default {
// }
//如果证件类型是身份证
if (this.userInfo.idType == '0') {
if (this.userInfo.idType == '1') {
//校验性别是否与身份证号码位相符
if (this.userInfo.idNo.length == '15') {
//15位身份证第15位是性别位, 奇男偶女
@@ -1057,14 +1080,14 @@ export default {
}
}
//证件类型是户口本
} else if (this.userInfo.idType == '1') {
} else if (this.userInfo.idType == '2') {
if (age >= 16) {
return this.$toast('客户年龄在16周岁及以上不能使用户口本作为有效证件')
} else if (this.userInfo.idNo.length != 18) {
return this.$toast('户口本的证件号码长度应等于18位')
}
//证件类型是出生证明
} else if (this.userInfo.idType == '2') {
} else if (this.userInfo.idType == '3') {
if (age >= 3) {
return this.$toast('客户年龄在3周岁及以上不能使用出生证作为有效证件')
} else if (this.userInfo.idNo.length < 3) {
@@ -1093,7 +1116,7 @@ export default {
//如果是已婚
if ((this.userInfo.sex == '0' && age < 22) || (this.userInfo.sex == '1' && age < 20)) {
if (this.userInfo.marriage != '2') {
return this.$toast('年龄与婚姻状况不符')
return this.$toast('被保人不符合国家婚姻法定年龄')
}
}
// this.save()
@@ -1125,7 +1148,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '当前信息已经发生改变,有可能影响险种费率,是否确认修改并清除险种信息?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
@@ -1298,6 +1321,63 @@ export default {
default:
break
}
},
//校验身高
checkStature(val) {
console.log(val)
if (val.trim().length == 0) {
return this.$toast('身高不能为空')
}
let res = /^[0-9]{0,3}([.]{1}[0-9]{1})?$/.test(val) && val < 300 && val > 10
if (!res) {
this.userInfo.stature = ''
return this.$toast('身高输入有误')
}
},
//校验体重
checkAvoirdupois(val) {
if (val.trim().length == 0) {
return this.$toast('体重不能为空')
}
let res = /^[0-9]+([.]{1}[0-9]{1})?$/.test(val) && val > 0.1
if (!res) {
this.userInfo.avoirdupois = ''
return this.$toast('体重输入有误')
}
},
getRelatedData(val) {
// if (this.userInfo.idType != '1') {
// return
// }
if (!['1', '2', '3', 1, 2, 3].includes(this.userInfo.idType)) {
return
}
//如果证件校验不通过,恢复默认值
if (idToData(val).text) {
;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
return this.$toast(idToData(val).text)
}
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = idToData(val).age < 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
//如果选择户口本
if (this.userInfo.idType == '2') {
let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')
this.userInfo.certificateValidate = this.userInfo.birthday
this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
this.idLimit = true
//如果选择出生证明
} else if (this.userInfo.idType == '3') {
let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1972-12-31')
this.userInfo.certificateValidate = this.userInfo.birthday
this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
this.idLimit = true
} else {
this.idLimit = false
}
}
},
beforeDestroy() {

View File

@@ -0,0 +1,45 @@
//点击弹出组件
export function selectComp(that, index, type = '') {
that.currentPopupIndex = index
let title = ''
if (index == 1) {
;[that.customerShowPicker, title] = [true, '客户列表']
} else if (index == 2) {
;[that.occupationShowPicker, title] = [true, '职业类别']
} else if (index == 3) {
if (type == '1') {
//投保人
localStorage.scanFromInsured = 'true'
} else if (type == '2') {
//被保人
localStorage.scanFromInsured = 'false'
}
;[that.isScan, title] = [true, '身份证扫描']
}
setTimeout(() => {
that.$jump({
flag: 'navigation',
extra: {
title,
hiddenLeft: '1'
}
})
closeBtn(that)
}, 400)
}
// 关闭按钮的显示
function closeBtn(that) {
that.$jump({
flag: 'webview_right_button',
extra: {
btns: [
{
img: that.$assetsUrl + 'images/del-close.png',
route: { flag: '', extra: {} }
}
]
}
})
}

View File

@@ -0,0 +1,52 @@
import changeFifteenToEighteen from '@/assets/js/utils/changeFifteenToEighteen'
import idNoCheck from '@/assets/js/utils/idNoCheck'
import utilsAge from '@/assets/js/utils/age'
//身份证带出出生日期,性别,年龄
export function idToData(idNo) {
//非空
if (!idNo.trim()) {
return {
text: '证件号码不能为空'
}
}
// 证件号码规则校验
if (!idNoCheck.isIdno(idNo)) {
return {
text: '您填写的证件号码有误'
}
}
//如果是15位身份证号先转为18位
if (idNo.length == 15) {
idNo = changeFifteenToEighteen(idNo)
}
let birthday = getBirthById(idNo)
let age = utilsAge.getAge(birthday, new Date())
let sex = getSexById(idNo)
return {
birthday,
age,
sex
}
}
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
}
function getSexById(idNo) {
// 获取性别
if (idNo.charAt(16) >= '0' && idNo.charAt(16) <= '9') {
if (parseInt(idNo.charAt(16)) % 2 == 0) {
return '1'
} else {
return '0'
}
}
}

View File

@@ -52,7 +52,7 @@
</van-collapse-item>
</div>
<div v-for="(it, ind) in list" :key="it.riskName" class="pb10">
<van-collapse-item title="险信息" :name="ind + 10">
<van-collapse-item title="险信息" :name="ind + 10">
<van-cell-group>
<van-cell title="险种名称" :value="it.riskName" />
<van-cell title="保险期间" :value="it.insuYear" />