9-22拉取鼎诚代码覆盖国富代码dev;

This commit is contained in:
du.xiaobin
2019-09-22 13:06:33 +08:00
parent 83e94dbfa3
commit bdbe9f8da5
87 changed files with 9893 additions and 4942 deletions

View File

@@ -1,5 +1,5 @@
# env
NODE_ENV = 'production'
NODE_ENV = 'development'
# flag
VUE_APP_FLAG='development'

28
package-lock.json generated
View File

@@ -6408,14 +6408,12 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -6430,20 +6428,17 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"core-util-is": {
"version": "1.0.2",
@@ -6560,8 +6555,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"ini": {
"version": "1.3.5",
@@ -6573,7 +6567,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -6588,7 +6581,6 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -6596,14 +6588,12 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -6622,7 +6612,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -6703,8 +6692,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"object-assign": {
"version": "4.1.1",
@@ -6716,7 +6704,6 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@@ -6838,7 +6825,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",

View File

@@ -1,11 +1,11 @@
{
"name": "ebiz-h5",
"version": "1.0.0",
"description": "国富人寿",
"author": "",
"description": "鼎诚人寿",
"author": "wangfangbo <wang.fangbo@ebiz-fooge.com>",
"private": true,
"scripts": {
"serve": "vue-cli-service serve --mode development",
"serve": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"lint": "vue-cli-service lint",

View File

@@ -4,7 +4,7 @@ import getUrl from '@/assets/js/utils/get-url'
// 获取保单列表
export function getPolicyList(data) {
return request({
url: getUrl('/sale/policy/policyListAgent', 1),
url: getUrl('/sale/policy/policyList', 1),
method: 'post',
data
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 915 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

View File

@@ -204,7 +204,7 @@ export default {
isAndroid: ua.match(/(Android);?[\s/]+([\d.]+)?/),
isIphone: ua.indexOf('iPhone') != -1,
isWeixin: ua.match(/MicroMessenger/i),
isTraining: ua.match(/training/i)
isDC: ua.match(/dingchenglife/i) //app环境
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -2,308 +2,328 @@
export default {
//国家地区
nativeplace: [
{ id: 'CHN', text: '中国' },
{ id: 'HKG', text: '中国香港' },
{ id: 'MAC', text: '澳门' },
{ id: 'TWN', text: '中国台湾' },
{ id: 'ABW', text: '阿鲁巴' },
{ id: 'AFG', text: '阿富汗' },
{ id: 'AGO', text: '安哥拉' },
{ id: 'AIA', text: '安圭拉' },
{ id: 'ALB', text: '阿尔巴尼亚' },
{ id: 'AND', text: '安道尔' },
{ id: 'ANT', text: '荷属安的列斯' },
{ id: 'ARE', text: '阿联酋' },
{ id: 'ARG', text: '阿根廷' },
{ id: 'ARM', text: '亚美尼亚' },
{ id: 'ASM', text: '美属萨摩亚' },
{ id: 'ATA', text: '南极洲' },
{ id: 'ATF', text: '法属南部领土' },
{ id: 'ATG', text: '安提瓜和巴布达' },
{ id: 'AUS', text: '澳大利亚' },
{ id: 'AUT', text: '奥地利' },
{ id: 'AZE', text: '阿塞拜疆' },
{ id: 'BDI', text: '布隆迪' },
{ id: 'BEL', text: '比利时' },
{ id: 'BEN', text: '贝宁' },
{ id: 'BFA', text: '布基纳法索' },
{ id: 'BGD', text: '孟加拉国' },
{ id: 'BGR', text: '保加利亚' },
{ id: 'BHR', text: '巴林' },
{ id: 'BHS', text: '巴哈马' },
{ id: 'BIH', text: '波斯尼亚和黑塞哥维那' },
{ id: 'BLR', text: '白俄罗斯' },
{ id: 'BLZ', text: '伯利兹' },
{ id: 'BMU', text: '百慕大' },
{ id: 'BOL', text: '玻利维亚' },
{ id: 'BRA', text: '巴西' },
{ id: 'BRB', text: '巴巴多斯' },
{ id: 'BRN', text: '文莱' },
{ id: 'BTN', text: '不丹' },
{ id: 'BVT', text: '布维岛' },
{ id: 'BWA', text: '博茨瓦纳' },
{ id: 'CAF', text: '中非' },
{ id: 'CAN', text: '加拿大' },
{ id: 'CCK', text: '科科斯(基林)群岛' },
{ id: 'CHE', text: '瑞士' },
{ id: 'CHL', text: '智利' },
{ id: 'CIV', text: '科特迪瓦' },
{ id: 'CMR', text: '喀麦隆' },
{ id: 'COD', text: '刚果(金)' },
{ id: 'COG', text: '刚果(布)' },
{ id: 'COK', text: '库克群岛' },
{ id: 'COL', text: '哥伦比亚' },
{ id: 'COM', text: '科摩罗' },
{ id: 'CPV', text: '佛得角' },
{ id: 'CRI', text: '哥斯达黎加' },
{ id: 'CUB', text: '古巴' },
{ id: 'CXR', text: '圣诞岛' },
{ id: 'CYM', text: '开曼群岛' },
{ id: 'CYP', text: '塞浦路斯' },
{ id: 'CZE', text: '捷克' },
{ id: 'DEU', text: '德国' },
{ id: 'DJI', text: '吉布提' },
{ id: 'DMA', text: '多米尼克' },
{ id: 'DNK', text: '丹麦' },
{ id: 'DOM', text: '多米尼加共和国' },
{ id: 'DZA', text: '阿尔及利亚' },
{ id: 'ECU', text: '厄瓜多尔' },
{ id: 'EGY', text: '埃及' },
{ id: 'ERI', text: '厄立特里亚' },
{ id: 'ESH', text: '西撒哈拉' },
{ id: 'ESP', text: '西班牙' },
{ id: 'EST', text: '爱沙尼亚' },
{ id: 'ETH', text: '埃塞俄比亚' },
{ id: 'FIN', text: '芬兰' },
{ id: 'FJI', text: '斐济' },
{ id: 'FLK', text: '马尔维纳斯群岛(福克兰群岛)' },
{ id: 'FRA', text: '法国' },
{ id: 'FRO', text: '法罗群岛' },
{ id: 'FSM', text: '密克罗尼西亚' },
{ id: 'GAB', text: '加蓬' },
{ id: 'GBR', text: '英国' },
{ id: 'GEO', text: '格鲁吉亚' },
{ id: 'GHA', text: '加纳' },
{ id: 'GIB', text: '直布罗陀' },
{ id: 'GIN', text: '几内亚' },
{ id: 'GLP', text: '瓜德罗普' },
{ id: 'GMB', text: '冈比亚' },
{ id: 'GNB', text: '几内亚比绍' },
{ id: 'GNQ', text: '赤道几内亚' },
{ id: 'GRC', text: '希腊' },
{ id: 'GRD', text: '格林纳达' },
{ id: 'GRL', text: '格陵兰' },
{ id: 'GTM', text: '危地马拉' },
{ id: 'GUF', text: '法属圭亚那' },
{ id: 'GUM', text: '关岛' },
{ id: 'GUY', text: '圭亚那' },
{ id: 'HMD', text: '赫德岛和麦克唐纳岛' },
{ id: 'HND', text: '洪都拉斯' },
{ id: 'HRV', text: '克罗地亚' },
{ id: 'HTI', text: '海地' },
{ id: 'HUN', text: '匈牙利' },
{ id: 'IDN', text: '印度尼西亚' },
{ id: 'IND', text: '印度' },
{ id: 'IOT', text: '英属印度洋领土' },
{ id: 'IRL', text: '爱尔兰' },
{ id: 'IRN', text: '伊朗' },
{ id: 'IRQ', text: '伊拉克' },
{ id: 'ISL', text: '冰岛' },
{ id: 'ISR', text: '以色列' },
{ id: 'ITA', text: '意大利' },
{ id: 'JAM', text: '牙买加' },
{ id: 'JOR', text: '约旦' },
{ id: 'JPN', text: '日本' },
{ id: 'KAZ', text: '哈萨克斯坦' },
{ id: 'KEN', text: '肯尼亚' },
{ id: 'KGZ', text: '吉尔吉斯斯坦' },
{ id: 'KHM', text: '柬埔寨' },
{ id: 'KIR', text: '基里巴斯' },
{ id: 'KNA', text: '圣基茨和尼维斯' },
{ id: 'KOR', text: '韩国' },
{ id: 'KWT', text: '科威特' },
{ id: 'LAO', text: '老挝' },
{ id: 'LBN', text: '黎巴嫩' },
{ id: 'LBR', text: '利比里亚' },
{ id: 'LBY', text: '利比亚' },
{ id: 'LCA', text: '圣卢西亚' },
{ id: 'LIE', text: '列支敦士登' },
{ id: 'LKA', text: '斯里兰卡' },
{ id: 'LSO', text: '莱索托' },
{ id: 'LTU', text: '立陶宛' },
{ id: 'LUX', text: '卢森堡' },
{ id: 'LVA', text: '拉脱维亚' },
{ id: 'MAR', text: '摩洛哥' },
{ id: 'MCO', text: '摩纳哥' },
{ id: 'MDA', text: '摩尔多瓦' },
{ id: 'MDG', text: '马达加斯加' },
{ id: 'MDV', text: '马尔代夫' },
{ id: 'MEX', text: '墨西哥' },
{ id: 'MHL', text: '马绍尔群岛' },
{ id: 'MKD', text: '马斯顿' },
{ id: 'MLI', text: '马里' },
{ id: 'MLT', text: '马耳他' },
{ id: 'MMR', text: '缅甸' },
{ id: 'MNG', text: '蒙古' },
{ id: 'MNP', text: '北马里亚纳' },
{ id: 'MOZ', text: '莫桑比克' },
{ id: 'MRT', text: '毛里塔尼亚' },
{ id: 'MSR', text: '蒙特塞拉特' },
{ id: 'MTQ', text: '马提尼克' },
{ id: 'MUS', text: '毛里求斯' },
{ id: 'MWI', text: '马拉维' },
{ id: 'MYS', text: '马来西亚' },
{ id: 'MYT', text: '马约特' },
{ id: 'NAM', text: '纳米比亚' },
{ id: 'NCL', text: '新喀里多尼亚' },
{ id: 'NER', text: '尼日尔' },
{ id: 'NFK', text: '诺福克岛' },
{ id: 'NGA', text: '尼日利亚' },
{ id: 'NIC', text: '尼加拉瓜' },
{ id: 'NIU', text: '纽埃' },
{ id: 'NLD', text: '荷兰' },
{ id: 'NOR', text: '挪威' },
{ id: 'NPL', text: '尼泊尔' },
{ id: 'NRU', text: '瑙鲁' },
{ id: 'NZL', text: '新西兰' },
{ id: 'OMN', text: '阿曼' },
{ id: 'PAK', text: '巴基斯坦' },
{ id: 'PAN', text: '巴拿马' },
{ id: 'PCN', text: '皮特凯恩群岛' },
{ id: 'PER', text: '秘鲁' },
{ id: 'PHL', text: '菲律宾' },
{ id: 'PLW', text: '帕劳' },
{ id: 'PNG', text: '巴布亚新几内亚' },
{ id: 'POL', text: '波兰' },
{ id: 'PRI', text: '波多黎各' },
{ id: 'PRK', text: '朝鲜' },
{ id: 'PRT', text: '葡萄牙' },
{ id: 'PRY', text: '巴拉圭' },
{ id: 'PSE', text: '巴勒斯坦' },
{ id: 'PYF', text: '法属波利尼西亚' },
{ id: 'QAT', text: '卡塔尔' },
{ id: 'REU', text: '留尼汪' },
{ id: 'ROM', text: '罗马尼亚' },
{ id: 'RUS', text: '俄罗斯' },
{ id: 'RWA', text: '卢旺达' },
{ id: 'SAU', text: '沙特阿拉伯' },
{ id: 'SCG', text: '塞尔维亚和黑山' },
{ id: 'SDN', text: '苏丹' },
{ id: 'SEN', text: '塞内加尔' },
{ id: 'SGP', text: '新加坡' },
{ id: 'SGS', text: '南乔治亚岛和南桑德韦奇岛' },
{ id: 'SHN', text: '圣赫勒拿' },
{ id: 'SJM', text: '斯瓦尔巴群岛和扬马群岛' },
{ id: 'SLB', text: '所罗门群岛' },
{ id: 'SLE', text: '塞拉利昂' },
{ id: 'SLV', text: '萨尔瓦多' },
{ id: 'SMR', text: '圣马力诺' },
{ id: 'SOM', text: '索马里' },
{ id: 'SPM', text: '圣皮埃尔和密克隆' },
{ id: 'STP', text: '圣多美和普林西比' },
{ id: 'SUR', text: '苏里南' },
{ id: 'SVK', text: '斯洛伐克' },
{ id: 'SVN', text: '斯洛文尼亚' },
{ id: 'SWE', text: '瑞典' },
{ id: 'SWZ', text: '斯威士兰' },
{ id: 'SYC', text: '塞舌尔' },
{ id: 'SYR', text: '叙利亚' },
{ id: 'TCA', text: '特克斯和凯科斯群岛' },
{ id: 'TCD', text: '乍得' },
{ id: 'TGO', text: '多哥' },
{ id: 'THA', text: '泰国' },
{ id: 'TJK', text: '塔吉克斯坦' },
{ id: 'TKL', text: '托克劳' },
{ id: 'TKM', text: '土库曼斯坦' },
{ id: 'TMP', text: '东帝汶' },
{ id: 'TON', text: '汤加' },
{ id: 'TTO', text: '特立尼达和多巴哥' },
{ id: 'TUN', text: '突尼斯' },
{ id: 'TUR', text: '土耳其' },
{ id: 'TUV', text: '图瓦卢' },
{ id: 'TZA', text: '坦桑尼亚' },
{ id: 'UGA', text: '乌干达' },
{ id: 'UKR', text: '乌克兰' },
{ id: 'UMI', text: '美属本土外小岛屿' },
{ id: 'URY', text: '乌拉圭' },
{ id: 'USA', text: '美国' },
{ id: 'UZB', text: '乌兹别克斯坦' },
{ id: 'VAT', text: '梵蒂冈' },
{ id: 'VCT', text: '圣文森特和格林纳丁斯' },
{ id: 'VEN', text: '委内瑞拉' },
{ id: 'VGB', text: '英属维尔京群岛' },
{ id: 'VIR', text: '美属维尔京群岛' },
{ id: 'VNM', text: '越南' },
{ id: 'VUT', text: '瓦努阿图' },
{ id: 'WLF', text: '瓦利斯和富图纳群岛' },
{ id: 'WSM', text: '西萨摩亚' },
{ id: 'YEM', text: '也门' },
{ id: 'ZAF', text: '南非' },
{ id: 'ZAR', text: '扎伊尔' },
{ id: 'ZMB', text: '赞比亚' },
{ id: 'ZWE', text: '津巴布韦' }
{
id: 1,
text: '中国大陆'
},
{
id: 2,
text: '中国香港'
},
{
id: 3,
text: '中国澳门'
},
{
id: 4,
text: '中国台湾'
},
{
id: 5,
text: '英国'
},
{
id: 6,
text: '印度'
},
{
id: 7,
text: '意大利'
},
{
id: 8,
text: '以色列'
},
{
id: 9,
text: '新西兰'
},
{
id: 10,
text: '希腊'
},
{
id: 11,
text: '西班牙'
},
{
id: 12,
text: '威尔士'
},
{
id: 13,
text: '泰国'
},
{
id: 14,
text: '苏格兰'
},
{
id: 15,
text: '瑞士'
},
{
id: 16,
text: '瑞典'
},
{
id: 17,
text: '日本'
},
{
id: 18,
text: '葡萄牙'
},
{
id: 19,
text: '挪威'
},
{
id: 20,
text: '尼日利亚'
},
{
id: 21,
text: '美国'
},
{
id: 22,
text: '加拿大'
},
{
id: 23,
text: '兰'
},
{
id: 24,
text: '韩国'
},
{
id: 25,
text: '芬兰'
},
{
id: 26,
text: '法国'
},
{
id: 27,
text: '俄国'
},
{
id: 28,
text: '德国'
},
{
id: 29,
text: '波兰'
},
{
id: 30,
text: '巴西'
},
{
id: 31,
text: '澳大利亚'
},
{
id: 32,
text: '奥地利'
},
{
id: 33,
text: '爱尔兰'
},
{
id: 34,
text: '埃及'
}
],
//证件类型 -- 未改动
//证件类型
idType: [
{ id: '0', text: '身份证' },
{ id: '1', text: '户口本', disabled: true },
{ id: '2', text: '出生证明', disabled: true },
{ id: '4', text: '外国人护照', disabled: true },
{ id: '5', text: '港澳居民来往内地通行证', disabled: true },
{ id: '6', text: '台湾居民来往大陆通行证', disabled: true },
{ id: '7', text: '其他', disabled: true }
{
id: 1,
text: '身份证'
},
{
id: 2,
text: '户口本'
},
{
id: 3,
text: '出生证明'
},
{
id: 4,
text: '护照'
},
{
id: 5,
text: '港澳居民通行证'
},
{
id: 6,
text: '台湾居民通行证'
},
{
id: 7,
text: '其他'
}
],
//投保人证件类型
insuredIdType: [
{ id: '0', text: '身份证' },
{ id: '1', text: '户口本', disabled: true },
{ id: '2', text: '出生证明', disabled: true },
{ id: '3', text: '外国人永久居留身份证', disabled: true },
{ id: '4', text: '外国人护照', disabled: true },
{ id: '5', text: '港澳居民来往内地通行证', disabled: true },
{ id: '6', text: '台湾居民来往大陆通行证', disabled: true },
{ id: '7', text: '其他', disabled: true },
{ id: '9', text: '港澳台居民居住证', disabled: true }
{
id: 1,
text: '身份证'
},
{
id: 2,
text: '户口本',
disabled: true
},
{
id: 3,
text: '出生证明',
disabled: true
},
{
id: 4,
text: '护照'
},
{
id: 5,
text: '港澳居民通行证'
},
{
id: 6,
text: '台湾居民通行证'
},
{
id: 7,
text: '其他'
}
],
//代理人证件类型
agentIdType: [
{ id: 0, text: '居民身份证' },
{ id: 1, text: '户口本', disabled: true },
{ id: 2, text: '出生证', disabled: true },
{ id: 3, text: '外国人永久居留身份证', disabled: true },
{ id: 4, text: '外国人护照', disabled: true },
{ id: 5, text: '港澳居民来往内地通行证', disabled: true },
{ id: 6, text: '台湾居民来往大陆通行证', disabled: true },
{ id: 7, text: '其他', disabled: true }
],
//出生证明 -- 未改动
//出生证明
birthType: [
{ id: 1, text: '身份证' },
{ id: 2, text: '户口本', disabled: true },
{ id: 3, text: '出生证明', disabled: true },
{ id: 4, text: '护照', disabled: true },
{ id: 5, text: '港澳居民通行证', disabled: true },
{ id: 6, text: '台湾居民通行证', disabled: true },
{ id: 7, text: '其他', disabled: true }
{
id: 1,
text: '身份证'
},
{
id: 2,
text: '户口本'
},
{
id: 3,
text: '出生证明',
disabled: true
},
{
id: 4,
text: '护照'
},
{
id: 5,
text: '港澳居民通行证'
},
{
id: 6,
text: '台湾居民通行证'
},
{
id: 7,
text: '其他'
}
],
//投保人/被保人关系
relationToAppnt: [{ id: '00', text: '本人' }, { id: '01', text: '配偶' }, { id: '02', text: '父母' }, { id: '03', text: '子女' }, { id: '04', text: '其他' }],
relationToAppnt: [
{
id: 1,
text: '本人'
},
{
id: 2,
text: '配偶'
},
{
id: 3,
text: '父母'
},
{
id: 4,
text: '子女'
},
{
id: 5,
text: '其他'
}
],
//婚姻状况
marriage: [{ id: '0', text: '已婚' }, { id: '1', text: '单身' }, { id: '2', text: '其他' }],
marriage: [
{
id: 1,
text: '已婚'
},
{
id: 2,
text: '未婚'
},
{
id: 3,
text: '离婚'
},
{
id: 4,
text: '丧偶'
}
],
//文化程度
degree: [
{ id: '0', text: '博士及以上' },
{ id: '1', text: '硕士' },
{ id: '2', text: '本科' },
{ id: '3', text: '大专' },
{ id: '4', text: '中专' },
{ id: '5', text: '高中' },
{ id: '6', text: '初中' },
{ id: '7', text: '其它' }
{
id: 1,
text: '博士及以上'
},
{
id: 2,
text: '硕士'
},
{
id: 3,
text: '本科'
},
{
id: 4,
text: '大专'
},
{
id: 5,
text: '高中'
},
{
id: 6,
text: '初中'
},
{
id: 7,
text: '中专'
},
{
id: 8,
text: '小学'
},
{
id: 9,
text: '小学以下'
}
],
//居民身份 仅支持中国 -- 未改动
taxIdentity: [{ id: '1', text: '仅为中国' }],
//交费期限 -- 未改动
//居民身份 仅支持中国
taxIdentity: [
{
id: 1,
text: '仅为中国'
}
],
//交费期限
payEndYear: [
{
id: 1,
@@ -356,36 +376,31 @@ export default {
],
//交费方式
payIntv: [
{
id: -1,
text: '不定期交',
disabled: true
},
{
id: 0,
text: '一次交清'
},
{
id: 1,
text: '月交',
disabled: true
},
{
id: 12,
text: '年交'
},
{
id: 3,
id: 2,
text: '季交',
disabled: true
},
{
id: 6,
id: 3,
text: '半年交',
disabled: true
},
{
id: 4,
text: '年交'
},
{
id: 5,
text: '一次交清'
}
],
// 保险期间 data-dictionary -- 未改动
// 保险期间 data-dictionary
insureYear: [
{
id: 1,
@@ -444,7 +459,7 @@ export default {
text: '终身'
}
],
//客户类型 -- 未改动
//客户类型
customerType: [
{
id: 0,
@@ -455,7 +470,7 @@ export default {
text: '老客户'
}
],
//客户来源 -- 未改动
//客户来源
customerSource: [
{
id: 0,
@@ -473,20 +488,16 @@ export default {
//在职情况
workCondition: [
{
id: '01',
id: 1,
text: '在职'
},
{
id: '02',
text: '二次增员'
id: 2,
text: '退休'
},
{
id: '03',
text: '离职'
},
{
id: '04',
text: '二次离职'
id: 3,
text: '其他'
}
],
policyState: [
@@ -665,6 +676,14 @@ export default {
{
id: '44',
text: '计划书转投保'
},
{
id: '45',
text: '核心扣费失败'
},
{
id: '46',
text: '自核不通过待转人核'
}
],
riskType: [

View File

@@ -31,8 +31,7 @@ service.interceptors.request.use(
})
}
// config.headers['token'] = window.localStorage.getItem('token')
config.headers['token'] = '507e5ff426364e95b22cd4c1e22f427f'
config.headers['token'] = window.localStorage.getItem('token')
return config
},
error => {
@@ -66,6 +65,7 @@ service.interceptors.response.use(
}
},
error => {
Toast.clear()
console.log('err' + error) // for debug
//Toast.fail(error.message)
return Promise.reject(error)

View File

@@ -10,8 +10,7 @@
}
body {
height:auto;
max-height: 100%;
height: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
@@ -20,8 +19,7 @@ body {
}
html {
height:auto;
max-height: 100%;
height: 100%;
}
a,

View File

@@ -263,7 +263,7 @@
}
.bg-green-dark {
background: #E9332E !important;
background: #4fc6b3 !important;
}
.bg-blue-dark {

View File

@@ -5,34 +5,34 @@
.van-picker__cancel,
.van-picker__confirm,
.van-tag--danger.van-tag--plain {
color: #E9332E;
color: #4fc6b3;
}
.van-button--plain.van-button--danger,
.van-tag--plain.van-tag--danger {
color: #E9332E;
color: #4fc6b3;
background: transparent;
}
.van-checkbox__icon--checked .van-icon {
color: #fff;
background-color: #E9332E;
border-color: #E9332E;
background-color: #4fc6b3;
border-color: #4fc6b3;
}
.van-button--danger {
background: #E9332E;
border: 1px solid #E9332E;
background: #4fc6b3;
border: 1px solid #4fc6b3;
}
.van-tabs__line,
.van-tag--danger {
background-color: #E9332E;
background-color: #4fc6b3;
}
.van-radio__icon--checked .van-icon {
border-color: #E9332E !important;
background-color: #E9332E !important;
border-color: #4fc6b3 !important;
background-color: #4fc6b3 !important;
}
.van-cell:not(:last-child)::after {
@@ -47,7 +47,7 @@
.van-dialog__header {
padding-top: 20px;
margin-bottom: 8px;
color: #E9332E;
color: #4fc6b3;
}
.van-dialog__footer {
@@ -71,7 +71,7 @@
}
.van-dialog__confirm {
background: #E9332E;
background: #4fc6b3;
margin-right: 20px;
}

View File

@@ -1,6 +1,6 @@
//颜色
$white: #fff !default;
$green: #E9332E !default;
$green: #4fc6b3 !default;
$red: #f56123 !default;
$yellow: #f56123 !default;
$orange: #dd9c56 !default;
@@ -19,12 +19,28 @@ $font-size-xl: 18px !default;
$font-size-xll: 26px !default;
// 宽度列表
$width-list: 8 10 12 15 18 20 35 40 45 50 60 70 80 86 90 100 110 120 130 140 150 155 160 165 180 192 200 220 240 250 260 280 315 325 345 350 365 400 440 445 450
550 700 1340;
$width-list: 8 10 12 15 18 20 35 40 45 50 60 70 80 86 90 100 110 120 130 140 150 155 160 165 180 192 200 220 240 250 260 280 315 325 345 350 365 400 440 445 450 550 700 1340;
// 内外边距列表
$distance-list: 0 1 2 5 6 7 8 9 10 12 15 20 25 30 35 40 45 50 60 70 80 86 90 100 150 165 185 210;
$distance-class-list: m, mv, mh, mt, ml, mr, mb, p, pv, ph, pt, pl, pr, pb, top, left, right, bottom;
$distance-list: -25 0 1 2 5 6 7 8 9 10 12 15 20 25 30 35 40 45 50 60 70 80 86 90 100 150 165 185 210 250;
$distance-class-list: m,
mv,
mh,
mt,
ml,
mr,
mb,
p,
pv,
ph,
pt,
pl,
pr,
pb,
top,
left,
right,
bottom;
//圆角弧度
$radius: 1 2 3 4 5 6 7 8 9 10 12 15 18 20 50 100;

View File

@@ -29,6 +29,10 @@ export default {
return new Date('2039-12-31')
}
},
disabled: {
type: Boolean,
default: false
},
label: {
type: String,
default: '11'
@@ -138,7 +142,7 @@ export default {
this.$emit('cancel', '')
},
DatePickerShow(flag) {
if (this.readonly) {
if (this.readonly || this.disabled) {
return
}
this.showDataPicker = flag

View File

@@ -20,7 +20,7 @@
</div>
</div>
<div v-else class="text-center">
<img class="mt40 w200" src="../../../assets/images/pic_page-non.png" />
<img class="mt40" src="../../../assets/images/pic_page-non.png" />
<p class="mt15">暂无客户</p>
</div>
</van-index-bar>

View File

@@ -117,8 +117,8 @@
</van-cell-group>
<!-- 工作信息 -->
<van-cell-group class="mt5">
<p class="title pl10 pv5">工作信息</p>
<van-cell-group>
<p class="title pl10 pv12 mt10">工作信息</p>
<van-field
:value="userInfo.degree | idToText('degree')"
readonly
@@ -229,7 +229,7 @@
<!-- 家庭信息 -->
<van-cell-group class="mt5">
<p class="title pl10 pv5">家庭信息</p>
<p class="title pl10 pv12 mt10">家庭信息</p>
<van-field
:value="userInfo.marriage | idToText('marriage')"
readonly
@@ -468,11 +468,16 @@ export default {
}
}
}
// 证件号码规则校验
// // 证件号码规则校验
if (!idNoCheck.isIdno(this.userInfo.customerIdNumber)) {
return this.$toast('您填写的证件号码有误只能为18位以内数字或字母组合')
} else {
this.$parent.updateCustomerInfo()
//判断婚否
if (this.userInfo.birthday && this.userInfo.marriage) {
this.validateMarr()
} else {
this.$parent.updateCustomerInfo()
}
}
//证件是户口本
} else if (this.userInfo.idType == '2' && this.userInfo.customerIdNumber.length != 18) {
@@ -494,12 +499,34 @@ export default {
} else if (!/^(H|M)[0-9]{8}$/.test(this.userInfo.customerIdNumber)) {
return this.$toast('证件类型为港澳居民通行证的,证件号码首位字母为"H"/"M",证件号码第2位至第9位为阿拉伯数字')
} else {
this.$parent.updateCustomerInfo()
//判断婚否
if (this.userInfo.birthday && this.userInfo.marriage) {
this.validateMarr()
} else {
this.$parent.updateCustomerInfo()
}
}
//证件是台湾居民通行证
} else if (this.userInfo.idType == '6' && this.userInfo.customerIdNumber.length != 8) {
console.log('证件类型是台湾居民通行证')
return this.$toast('证件类型为台湾居民通行证的证件号码须为8位数字')
} else {
if (this.userInfo.birthday && this.userInfo.marriage) {
this.validateMarr()
} else {
this.$parent.updateCustomerInfo()
}
}
},
//婚否校验
validateMarr() {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
if ((this.userInfo.customerSex == '0' && age < 22) || (this.userInfo.customerSex == '1' && age < 20)) {
if (this.userInfo.marriage != '2') {
return this.$toast('年龄与婚姻状况不符')
} else {
this.$parent.updateCustomerInfo()
}
} else {
this.$parent.updateCustomerInfo()
}
@@ -561,12 +588,14 @@ export default {
this.valueKey = value.text
} else if (this.pickerType == '2') {
;[this.userInfo.idType, this.idType] = [value.id, value.text]
//身份证以外的证件类型可以使用长期
if (value.id != '1') {
this.effectiveDateTypeAble = false
} else {
//身份证,出生证明,护照以外的证件类型可以使用长期
if (value.id == '1') {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
} else if (value.id == '2' || value.id == '3') {
this.effectiveDateTypeAble = true
} else {
this.effectiveDateTypeAble = false
}
} else if (this.pickerType == '3') {
;[this.userInfo.degree, this.degree] = [value.id, value.text]
@@ -684,7 +713,8 @@ export default {
</script>
<style lang="scss" scoped>
.title {
font-weight: 600;
font-size: 15px;
font-weight: bold;
border-bottom: 1px solid #ebedf0;
}
[class*='van-hairline']::after {

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,7 @@
<van-col span="14" class="color">{{ idCard }}</van-col>
</van-row>
<van-row>
<van-col span="10">证件起日期:</van-col>
<van-col span="10">证件起日期:</van-col>
<van-col span="14" class="color">{{ startDate }}</van-col>
</van-row>
<van-row>

View File

@@ -5,33 +5,37 @@
*
*/
let apiDomain, imgDomain, assetsUrl,mainUrl
let apiDomain, imgDomain, assetsUrl, mainUrl
// 可以多个接口域名,按需添加
console.log('环境:', process.env.VUE_APP_FLAG)
switch (process.env.VUE_APP_FLAG) {
case 'development':
// apiDomain = 'http://47.96.143.111:7000/api/v1'
apiDomain = 'http://139.199.50.151:7000/api/v1' // 国富api
imgDomain = 'http://139.199.50.151:7000'
apiDomain = 'http://47.96.143.111:7000/api/v1'
imgDomain = 'http://116.62.236.168:7012/updown'
// 静态服务资源
assetsUrl = 'http://139.199.50.151:8000/app/'
assetsUrl = 'http://47.96.143.111:8000/app/'
mainUrl = 'http://47.96.143.111'
break
case 'staging':
apiDomain = 'http://47.96.143.111:7000/api/v1'
imgDomain = 'http://211.159.248.123:7001'
imgDomain = 'http://116.62.236.168:7012/updown'
// 静态服务资源
assetsUrl = 'http://47.96.143.111:8000/app/'
mainUrl=''
mainUrl = 'http://47.96.143.111'
break
case 'production':
apiDomain = 'http://139.9.25.84:7000/api/v1'
imgDomain = 'http://116.62.236.168:7001'
// 静态服务资源
assetsUrl = 'http://139.9.25.84:7001/'
mainUrl=''
// apiDomain = 'http://139.9.25.84:7000/api/v1'
// imgDomain = 'http://139.9.25.84:7002/updown'
// assetsUrl = 'http://139.9.25.84:7001/'
// mainUrl = 'http://139.9.25.84'
//域名添加
apiDomain = 'https://mobile.dingchenglife.com.cn/api/v1'
imgDomain = 'https://mobile.dingchenglife.com.cn:7002/updown'
assetsUrl = 'https://mobile.dingchenglife.com.cn:7001/'
mainUrl = 'https://mobile.dingchenglife.com.cn'
break
}
console.log('地址:', apiDomain, imgDomain, assetsUrl)
/**
* 配置文件
* apiDomain: // 接口域名
@@ -46,5 +50,4 @@ export default {
// 静态服务资源
assetsUrl,
mainUrl
}

View File

@@ -5,7 +5,7 @@
* @example
*/
export default {
inserted(el, binding, vnode) {
inserted (el, binding, vnode) {
el.addEventListener('click', e => {
el.classList.add('is-disabled')
el.disabled = true

View File

@@ -51,11 +51,11 @@ Vue.prototype.$jump = Jump
Vue.prototype.$utils = utils
//混合开发调试工具
if (process.env.VUE_APP_FLAG == 'development') {
if (process.env.NODE_ENV == 'development') {
// let Eruda = require('eruda')
// Eruda.init()
Vue.prototype.$rootUrl = location.origin
} else if (process.env.VUE_APP_FLAG == 'production') {
} else if (process.env.NODE_ENV == 'production') {
Vue.prototype.$rootUrl = location.origin + '/ebiz-h5'
}
let Eruda = require('eruda')

View File

@@ -63,7 +63,7 @@ export default [
name: 'CompanyIntroduce',
component: companyIntroduce,
meta: {
title: '关于国富',
title: '关于鼎诚',
index: 1
}
}

View File

@@ -18,7 +18,7 @@
</ul>
</li>
<li class="mt10">
<p class="fw600">国富人寿</p>
<p class="fw600">鼎诚人寿</p>
<ul class="pl20">
<li><router-link to="/proposal/list">建议书</router-link></li>
<li><router-link to="/sale/list">电子投保</router-link></li>

View File

@@ -440,7 +440,7 @@ export default {
Dialog.confirm({
title: '提示',
message: '确认删除该险种?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF',
className: 'dialog-delete'
})

View File

@@ -5,12 +5,15 @@
<img class="w86" src="@/assets/images/logo.png" />
<h6>{{ aversion }}</h6>
</div>
<h3 class="fs15 text-left pl15">公司简介 Company Profile</h3>
<h3 class="fs15 text-left pl15">公司简介</h3>
<p class="ph15">
国富人寿保险股份有限公司由广西投资集团有限公司广州唯品会信息科技有限公司吉安新年广告传媒有限公司北京信中利投资股份有限公司湖北三峡华翔集团有限公司广西日报传媒集团有限公司上海恒大建材市场管理股份有限公司广西名都生态科技发展有限公司等8家公司共同发起创立公司注册地在我国面向东盟开放合作的前沿城市南宁
鼎诚人寿保险有限责任公司简称鼎诚人寿是一家全国性合资寿险公司前身为成立于2009年3月的新光海航人寿保险有限责任公司2018年9月经中国银行保险监督管理委员会批准鼎诚人寿完成了股权变更及增资
</p>
<p class="ph15">
国富人寿将秉持老有所养病有所医红利共享国富民安的核心理念让更多的人过上有尊严的健康快乐的生活作为企业使命树立并践行简单专注诚信激情关爱领先的价值观专注于客户体验研发满足客户需求的产品为客户提供有温度的服务依法合规稳健经营立足广西深耕广西面向全国更好地回馈社会回报股东与时俱进超越自我
鼎诚人寿股东不仅资本实力雄厚更有新光人寿领先的国际化寿险公司经营管理经验鼎诚人寿管理团队由在寿险行业有过数十年工作经历在大型寿险公司管理岗位领军的专业人士组成
</p>
<p class="ph15">
面对我国社会保障体系改革的发展机遇鼎诚人寿确立了行稳致远的公司战略坚持专业化经营集约式管理效益型发展的办企理念专注寿险经营聚焦保险保障着力打造产品品牌客户服务品牌和教育培训品牌为客户提供养老健康医疗一般寿险和意外伤害保险等全方位高品质的寿险服务努力将公司建设成为具有自身特色值得客户托付备受社会尊敬的寿险百年老店
</p>
</div>
</template>
@@ -25,6 +28,10 @@ export default {
},
mounted() {
document.body.style.backgroundColor = '#fff'
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>

View File

@@ -1,7 +1,7 @@
<template>
<div class="defalut">
<div class="img">
<img class="w200" src="@/assets/images/pic_jingqingqidai.png" />
<img src="@/assets/images/pic_jingqingqidai.png" />
</div>
<div class="text-center">
<h3>敬请期待</h3>

View File

@@ -11,7 +11,7 @@
</div>
<div class="pl45 flex mv10" v-for="(addtion, addIndex) in item.addtion" :key="addIndex">
<div class="w50">
<van-tag mark color="#DDF2EF" text-color="#E9332E">附加</van-tag>
<van-tag mark color="#DDF2EF" text-color="#4FC6B3">附加</van-tag>
</div>
<div class="fs13">
{{ addtion.riskName }}
@@ -141,7 +141,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '您确认要删除该产品信息吗?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {

View File

@@ -74,7 +74,7 @@
</ul>
</div>
<div class="btn-group">
<van-button class="m-btn fr green" color="#FEEFD8" @click="reset" v-no-more-click="1000">重置</van-button>
<van-button type="danger" @click="reset" v-no-more-click="1000">重置</van-button>
<van-button type="danger" @click="select" v-no-more-click="1000">确定</van-button>
</div>
</van-popup>
@@ -106,8 +106,8 @@ export default {
data() {
return {
searchVal: '',
show1: true,
show2: true,
show1: false,
show2: false,
active1: 0,
active2: 0,
isFlag: false,

View File

@@ -71,7 +71,7 @@
</template>
<script>
import echarts from 'echarts'
// import echarts from 'echarts'
import { Collapse, CollapseItem, Cell, CellGroup, DatetimePicker, Popup, Row, Col, Tab, Tabs } from 'vant'
import { getAgentIncome } from '@/api/ebiz/my/my.js'
export default {
@@ -258,12 +258,12 @@ export default {
this.showDatePicker = false
},
async getIncomeInfo(monthDate) {
// console.log('--获取代理人收入明细,请求:', monthDate)
console.log(monthDate)
// 获取代理人收入明细
const res = await getAgentIncome({
monthDate
})
// console.log('--获取代理人收入明细,响应:', JSON.stringify(res))
console.log(res)
if (res.result == 0) {
// 当月实收
this.monthActualPay = res.monthActualPay

View File

@@ -2,7 +2,7 @@
<div class="home-product-container pb20">
<div class="home-product-content">
<!-- 精选内容 -->
<!-- <div class="home-product-selected">
<div class="home-product-selected">
<h3 class="home-product-selected-title fs15 pt25 pb15 pl15">精选内容</h3>
<div class="home-product-selected-list flex justify-content-s">
<div class="home-product-selected-item bg-white ml15 w165 h70 radius6 pl10">
@@ -21,19 +21,19 @@
<img class="fr mt10" :src="$assetsUrl + 'images/pic_meirixinwen.png'" alt="" />
</div>
</div>
</div> -->
</div>
<!-- 产品中心 -->
<div class="home-product-pcenter">
<div class="pcenter-title flex mt4 mr20 mb10 ml15 justify-content-s">
<div class="pcenter-title flex mt20 mr20 mb10 ml15 justify-content-s">
<h3 class="center-title fs15">产品中心</h3>
<span class="more fs13 c-gray-base" @click="getMore">更多</span>
</div>
<div class="pcenter-list">
<div class="pcenter-item text-center">
<img :src="$assetsUrl + 'images/pic_chanpin-1.png'" class="w365" alt="" @click="goDetail('GFRSPRO_M0002')" />
<img :src="$assetsUrl + 'images/pic_chanpin-10.png'" class="w365 h130" alt="" @click="goDetail('DCRSPRO_M0001')" />
</div>
<div class="pcenter-item text-center">
<img class="w365 " :src="$assetsUrl + 'images/pic_chanpin-2.png'" alt="" @click="goDetail('GFRSPRO_M0001')" />
<img class="w345 h110" :src="$assetsUrl + 'images/pic_chanpin-2.png'" alt="" @click="goDetail('DCRSPRO_M0002')" />
</div>
</div>
</div>
@@ -94,7 +94,6 @@ export default {
</script>
<style lang="scss" scoped>
.home-product-container {
.home-product-selected-item {
box-sizing: border-box;

View File

@@ -2,8 +2,8 @@
<div class="product-detail-container">
<!-- tab -->
<van-sticky>
<van-tabs v-model="active" color="#E9332EFF" title-active-color="#E9332EFF" class="">
<van-tab title="产品特色" class="mt10"> </van-tab>
<van-tabs v-model="active" color="#4FC6B3FF" title-active-color="#4FC6B3FF">
<van-tab title="产品特色"> </van-tab>
<van-tab title="产品资料" class="mt10"> </van-tab>
</van-tabs>
</van-sticky>
@@ -22,7 +22,7 @@
</van-list>
<!-- 底部按钮 -->
<div class="bottom-area bottom-btn">
<van-button class="m-btn fl green" color="#FEEFD8" @click="goProposal">制作建议书</van-button>
<van-button class="m-btn fl green" @click="goProposal">制作建议书</van-button>
<van-button class="m-btn fr" type="danger" @click="goInsure">立即投保</van-button>
</div>
</div>
@@ -134,9 +134,6 @@ export default {
<style lang="scss" scoped>
.product-detail-container {
/deep/.van-sticky{
background: #fff;
}
.product-detail-introduct-image {
width: 100%;
}
@@ -156,8 +153,8 @@ export default {
border-color: transparent;
}
/deep/.van-button--default {
background-color: #FEEFD8;
color: #E9332E;
background-color: #d4f4ec;
color: #4fc6b3;
}
}
</style>

View File

@@ -19,7 +19,7 @@
</div>
<!-- 没有匹配产品的提示 -->
<div v-else class="product-list-default-bg absolute top20">
<img src="@/assets/images/pic_page-non.png" alt="" />
<img src="@/assets/images/u2198.png" alt="" />
<p class="gray text-center">暂无产品</p>
</div>
<!-- 侧边栏险种选择 -->
@@ -29,9 +29,9 @@
<div class="product-list-risk-container mt10 flex justify-content-s">
<van-tag
:active="isActive[idx]"
class="ml2 mr2 mb10 pt6 pb6 pl10 pr10 fs13"
class="ml8 mr8 mb10 pt6 pb6 pl10 pr10 fs13"
size="large"
:color="isActive[idx] ? '#E9332E' : '#eaeaea'"
:color="isActive[idx] ? '#4fc6b3' : '#eaeaea'"
:text-color="isActive[idx] ? '#fff' : '#333'"
v-for="(ele, idx) in item.content"
:key="idx"
@@ -42,7 +42,7 @@
</div>
<div class="bottom-area bottom-btn">
<van-button class="m-btn fr" type="danger" @click="submit">确定</van-button>
<van-button class="m-btn fr green" color="#FEEFD8" @click="reset">重置</van-button>
<van-button class="m-btn fr green" @click="reset">重置</van-button>
</div>
</van-popup>
</div>
@@ -90,16 +90,14 @@ export default {
filterBtn() {
// 筛选按钮的显示
// eslint-disable-next-line no-undef
setTimeout(()=> {
EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
img: this.$assetsUrl + 'images/filter_btn.png',
route: { flag: '', extra: {} }
}
]
})
}, 500)
EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
img: this.$assetsUrl + 'images/filter_btn.png',
route: { flag: '', extra: {} }
}
]
})
},
async getLists() {
// 获取产品列表
@@ -120,11 +118,6 @@ export default {
console.log(res)
if (res.result == 0) {
this.risks = res.categorys
// 写死添加全部
// this.risks[0].content.push({
// name:"全部",
// code:''
// })
// this.label = res.categorys[0].label
}
},
@@ -147,11 +140,7 @@ export default {
// 根据选中险别对产品列表进行筛选
this.list = this.proList.filter(item => {
if(this.risk==''){
return item
}else{
return item.categoryCode.indexOf(this.risk) != -1
}
return item.categoryCode.indexOf(this.risk) != -1
})
},
toggleActive(item, idx) {
@@ -220,7 +209,7 @@ export default {
}
/deep/.van-button--default {
background-color: #d4f4ec;
color: #E9332E;
color: #4fc6b3;
}
}
}

View File

@@ -224,6 +224,8 @@ export default {
path: '/proposal/chooseInsuredPerson'
}
})
} else {
this.$toast(res.resultMessage)
}
})
} else {

View File

@@ -5,7 +5,7 @@
<div class="relative">
<img :src="item.icon" class="w50 radius50" />
<span class="absolute" style="right:0px">
<van-icon color="#E9332E" name="checked" v-if="item.check" />
<van-icon color="#4fc6b3" name="checked" v-if="item.check" />
<van-icon color="gray" name="checked" v-else />
</span>
</div>
@@ -119,7 +119,6 @@ export default {
if (res.result == '0') {
this.chooseList = res.content[0].insuredDTOs
console.log(res.content[0].appntDTO,'zzz')
localStorage.proposalAppnt = JSON.stringify(res.content[0].appntDTO)
this.proposalInfo = res.content[0]
if (this.chooseList != null) {
@@ -234,7 +233,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '确认删除该被保人?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
@@ -281,7 +280,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '确认删除该被保人?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {

View File

@@ -32,7 +32,7 @@
</div>
<div class="text-center">
<img class="mt15 w20" src="@/assets/images/icon_logo.png" />
<van-divider class="fs15" :style="{ color: '#E9332E', borderColor: '#E9332E' }">
<van-divider class="fs15" :style="{ color: '#4FC6B3', borderColor: '#4FC6B3' }">
被保险人信息
</van-divider>
</div>
@@ -47,7 +47,7 @@
</van-row>
<div class="text-center">
<img class="mt30 w20" src="@/assets/images/icon_logo.png" />
<van-divider class="fs15" :style="{ color: '#E9332E', borderColor: '#E9332E' }">
<van-divider class="fs15" :style="{ color: '#4FC6B3', borderColor: '#4FC6B3' }">
投保险种信息
</van-divider>
</div>
@@ -79,14 +79,14 @@
</div>
<div class="text-center">
<img class="mt30 w20" src="@/assets/images/icon_logo.png" />
<van-divider class="fs15" :style="{ color: '#E9332E', borderColor: '#E9332E' }">
<van-divider class="fs15" :style="{ color: '#4FC6B3', borderColor: '#4FC6B3' }">
产品特色
</van-divider>
<div class="bg-green-base c-gray-darker p15 " v-html="insured.productFeatures"></div>
</div>
<div class="text-center">
<img class="mt30 w20" src="@/assets/images/icon_logo.png" />
<van-divider class="fs15" :style="{ color: '#E9332E', borderColor: '#E9332E' }">
<van-divider class="fs15" :style="{ color: '#4FC6B3', borderColor: '#4FC6B3' }">
利益演算
</van-divider>
</div>
@@ -119,7 +119,7 @@
<img class="w20" @click="reduce(risk)" src="@/assets/images/lessen.png" />
<van-slider
class="w220"
active-color="#E9332E"
active-color="#4fc6b3"
inactive-color="#fff"
:min="1"
:max="risk.policyYear"
@@ -137,7 +137,7 @@
</van-collapse>
<div class="flex pt15 justify-content-s bg-white">
<van-button class="ml20 mr10 fs17 h40 lh40" size="large" plain type="danger" @click="goToCompanyProfile">公司介绍</van-button>
<van-button class="ml10 mr20 fs17 h40 lh40" size="large" plain type="danger" @click="goPDF">生成PDF</van-button>
<van-button class="ml10 mr20 fs17 h40 lh40" size="large" plain type="danger" @click="goPDF">查看PDF</van-button>
</div>
<div class="pt40 text-justify bg-white pr15 pl15 c-gray-base fs13 pb60">
温馨提示本资料仅供客户理解产品条款所用有关产品的说明解释承若或保证如与产品条款不一致均以产品条款为准
@@ -233,7 +233,7 @@ export default {
weixinShare({
title: this.wxTitle,
imgUrl: this.$assetsUrl + 'images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
desc: '鼎诚为您量身定制的保险产品,请查收'
})
} else {
Toast.fail(agentResult.resultMessage)
@@ -254,7 +254,7 @@ export default {
flag: 'share',
extra: {
title: this.wxTitle,
content: '国富为您量身定制的保险产品,请查收',
content: '鼎诚为您量身定制的保险产品,请查收',
url: location.origin + '/#/proposal/exhibition?proposalNo=' + localStorage.orderNo + '&token=' + localStorage.token,
// url: 'http://47.96.143.111/#/proposal/exhibition?proposalNo=' + localStorage.orderNo + '&token=' + localStorage.token,
img: this.$assetsUrl + 'images/logo.png'

View File

@@ -2,7 +2,7 @@
<template>
<div class="proposal-list-container">
<van-sticky>
<van-tabs :line-width="45" title-inactive-color="#999999" v-model="active" @change="tabChange" title-active-color="#E9332E">
<van-tabs :line-width="45" title-inactive-color="#999999" v-model="active" @change="tabChange" title-active-color="#4fc6b3">
<van-tab title="制作中" name="1"></van-tab>
<van-tab title="已制作" name="2"></van-tab>
<van-tab title="转投保" name="3"></van-tab>
@@ -50,7 +50,7 @@
</div>
<div class="mv10 pl45 flex" v-for="(addtion, addtionIndex) in mainRisk.addtion" :key="addtionIndex">
<span class="mr10" style="flex-shrink: 0">
<van-tag mark color="#DDF2EF" text-color="#E9332E">附加</van-tag>
<van-tag mark color="#DDF2EF" text-color="#4FC6B3">附加</van-tag>
</span>
<span class="fs13">{{ addtion.riskName }}</span>
</div>
@@ -186,7 +186,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '确认删除建议书?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {

View File

@@ -1,11 +1,10 @@
export function checkSex(cacheSex, localSex, relation) {
//当关系为配偶时 被保人性别必须与投保人性别不一致
return true
// if (relation == '2' && localSex == cacheSex) {
// return false
// } else {
// return true
// }
if (relation == '2' && localSex == cacheSex) {
return false
} else {
return true
}
}
export function checkRelation(relation, age) {
//当被保人年龄小于8岁 被保人与投保人关系必须为父母

View File

@@ -22,14 +22,14 @@
v-validate="'required|bankCard'"
data-vv-name="银行卡号"
/>
<!-- <van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('0')" v-no-more-click="1000">银行卡扫描</van-button>-->
<van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('0')" v-no-more-click="1000">银行卡扫描</van-button>
</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="#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" />
<van-switch-cell v-model="checked" title="是否自动垫交" active-color="#4fc6b3" inactive-color="#fff" class="ml15 pr30" />
<van-icon
name="question-o"
class="vanIcon"
@@ -64,10 +64,10 @@
clearable
data-vv-name="银行卡号"
/>
<!-- <van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('1')" v-no-more-click="1000">银行卡扫描</van-button>-->
<van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('1')" v-no-more-click="1000">银行卡扫描</van-button>
</van-cell-group>
<van-cell-group class="flex align-items-c">
<van-switch-cell v-model="checked" title="是否自动垫交" active-color="#E9332E" inactive-color="#fff" class="ml15 pr30" />
<van-switch-cell v-model="checked" title="是否自动垫交" active-color="#4fc6b3" inactive-color="#fff" class="ml15 pr30" />
<van-icon
name="question-o"
class="vanIcon"
@@ -280,28 +280,15 @@ export default {
// window.localStorage.setItem('accountInfomation-bank', that.bank)
window.localStorage.setItem('accountInformationRadio', that.radio)
// window.localStorage.setItem('accountInformation-isPaymentSelf', JSON.stringify(that.checked))
// marked by pang on 2019-09-22 影像上传暂不可用,跳过 todo.... begin
// that.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/attachmentManagement'
// },
// routerInfo: {
// path: '/sale/attachmentManagement'
// }
// })
// todo.....end
// todo..... delete
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureConfirmation'
url: location.origin + '/#/sale/attachmentManagement'
},
routerInfo: {
path: '/sale/signatureConfirmation'
path: '/sale/attachmentManagement'
}
})
// todo.....end
} else {
that.$toast(res.resultMessage)
}

View File

@@ -180,7 +180,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '您确认要删除该受益人吗?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {

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',
@@ -322,9 +333,9 @@ export default {
userInfo: {
name: '', //投保人姓名
sex: '0', //投保人性别
nativeplace: 'CHN', //国家地区
nativeplace: '1', //国家地区
birthday: '',
idType: '0', //证件类型
idType: '1', //证件类型
idNo: '', //证件号码
certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
@@ -391,9 +402,9 @@ export default {
//设为联系地址
this.userInfo.addressStatus = '0'
//证件类型
this.userInfo.idType = '0'
this.userInfo.idType = '1'
//国家/地区
this.userInfo.nativeplace = 'CHN'
this.userInfo.nativeplace = '1'
this.$utils.intLocalStorage(res)
}
})
@@ -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({
@@ -500,7 +511,6 @@ export default {
this.popupShow = false
if (this.pickerType == '1') {
this.userInfo.nativeplace = value.id
console.log('--投保人-国籍选择:', value.id)
} else if (this.pickerType == '2') {
//身份证以外的证件类型可以使用长期
if (value.id != '1') {
@@ -511,14 +521,12 @@ export default {
}
this.userInfo.idType = value.id
} else if (this.pickerType == '3') {
console.log('----degree:', value)
this.userInfo.degree = value.id
} else if (this.pickerType == '4') {
this.userInfo.socialSecurity = value.id
} else if (this.pickerType == '5') {
this.userInfo.taxResidentId = value.id
} else if (this.pickerType == '6') {
console.log('-----marriage', value)
this.userInfo.marriage = value.id
} else if (this.pickerType == '7') {
this.userInfo.jobStatus = value.id
@@ -541,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':
@@ -670,10 +678,10 @@ export default {
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age >= 16 && age <= 45
this.effectiveDateTypeAble = age <= 45
},
nextStep() {
console.log('--提交前投保人::::', JSON.stringify(this.userInfo))
// console.log(this.userInfo.idType)
//表单校验, 成功跳转
this.$validator.validate().then(valid => {
@@ -686,7 +694,7 @@ export default {
// }
//如果证件类型是身份证
if (this.userInfo.idType == '0') {
if (this.userInfo.idType == '1') {
console.log('证件类型是身份证')
//校验性别是否与身份证号码位相符
if (this.userInfo.idNo.length == '15') {
@@ -781,8 +789,8 @@ export default {
//如果是已婚
if ((this.userInfo.sex == '0' && age < 22) || (this.userInfo.sex == '1' && age < 20)) {
if (this.userInfo.marriage == '0') {
return this.$toast('年龄与婚姻状况不符')
if (this.userInfo.marriage != '2') {
return this.$toast('投保人不符合国家婚姻法定年龄')
}
}
// if (this.userInfo.marriage == '1') {
@@ -818,7 +826,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '当前信息已经发生改变,有可能影响险种费率,是否确认修改并清除险种信息?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
@@ -983,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] && 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)
@@ -723,7 +735,7 @@ export default {
this.userInfo.marriage = value.id
} else if (this.pickerType == '7') {
//如果关系是本人
if (value.id == '00') {
if (value.id == 1) {
//获取订单详情
getOrderDetail({ orderNo: localStorage.orderNo }).then(res => {
if (res.result == 0) {
@@ -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,13 +978,12 @@ 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() {
console.log('--投保--下一步--被保人:', JSON.stringify(this.userInfo))
this.$validator.validate().then(valid => {
if (true === valid) {
// 计算年龄
@@ -969,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
@@ -990,7 +1012,7 @@ export default {
// }
//如果证件类型是身份证
if (this.userInfo.idType == '0') {
if (this.userInfo.idType == '1') {
//校验性别是否与身份证号码位相符
if (this.userInfo.idNo.length == '15') {
//15位身份证第15位是性别位, 奇男偶女
@@ -1058,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) {
@@ -1094,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()
@@ -1126,7 +1148,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '当前信息已经发生改变,有可能影响险种费率,是否确认修改并清除险种信息?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
@@ -1299,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

@@ -47,7 +47,7 @@
</div>
<div class="mv10 pl45 flex" v-for="(addtional, addtionIndex) in main.addtion" :key="addtionIndex">
<span class="mr10" style="flex-shrink: 0">
<van-tag mark color="#DDF2EF" text-color="#E9332E">附加</van-tag>
<van-tag mark color="#DDF2EF" text-color="#4FC6B3">附加</van-tag>
</span>
<span class="fs13">{{ addtional.riskName }}</span>
</div>
@@ -87,12 +87,33 @@
v-no-more-click="1000"
>删除</van-button
>
<van-button @click="againPay(order)" v-if="active == 'commit' && order.orderStatus == '14'" size="small" class="mr5" type="danger" round
<van-button
@click="againPay(order)"
v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '19'"
size="small"
class="mr5"
type="danger"
round
>重新支付</van-button
>
<van-button @click="goPay(order)" v-if="active == 'commit' && order.orderStatus == '02'" size="small" class="mr5" type="danger" round
<van-button
@click="goPay(order)"
v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '02'"
size="small"
class="mr5"
type="danger"
round
>去支付</van-button
>
<!-- <van-button
@click="goNucleus(order)"
v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '46'"
size="small"
class="mr5"
type="danger"
round
>提交人工核保</van-button
> -->
<van-button @click="seePolicy(order)" v-if="active == 'commit'" size="small" type="danger" round>查看投保单</van-button>
</div>
</div>
@@ -111,8 +132,8 @@
</template>
<script>
import { Tabs, Tab, List, Tag, Sticky, Toast } from 'vant'
import { orderList, deleteOrderInfo } from '@/api/ebiz/sale/sale'
import { Tabs, Tab, List, Tag, Sticky, Toast, Dialog } from 'vant'
import { orderList, deleteOrderInfo, selfToHuman } from '@/api/ebiz/sale/sale'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到用户等级
@@ -123,7 +144,8 @@ export default {
[Tab.name]: Tab,
[List.name]: List,
[Tag.name]: Tag,
[Sticky.name]: Sticky
[Sticky.name]: Sticky,
[Dialog.name]: Dialog
},
data() {
return {
@@ -155,6 +177,7 @@ export default {
//再次支付
againPay(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.salelist = '1'
this.$jump({
flag: 'h5',
extra: {
@@ -163,9 +186,37 @@ export default {
routerInfo: { path: '/sale/payMent' }
})
},
// 去人工核保
// goNucleus() {
// let data = {
// orderNo: this.underWriteData.orderNo
// }
// selfToHuman(data).then(res => {
// if (res.result == '0') {
// Dialog.alert({
// title: '提示',
// message: '提交人工核保成功'
// }).then(() => {
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/list',
// backToFirst: '1'
// },
// routerInfo: {
// path: '/sale/list'
// }
// })
// })
// } else {
// this.$toast(res.resultMessage)
// }
// })
// },
//去支付
goPay(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.salelist = '1'
this.$jump({
flag: 'h5',
extra: {
@@ -312,7 +363,7 @@ export default {
className: 'dialog-delete',
title: '提示',
message: '确认删除投保单吗?',
cancelButtonColor: '#E9332E',
cancelButtonColor: '#4FC6B3',
confirmButtonColor: '#FFFFFF'
})
.then(() => {

View File

@@ -29,51 +29,19 @@
<span class="red">以上账号仅为本次扣款使用</span>
</div> -->
</div>
<!-- <van-button class="m-btn fr" type="danger" @click="submit">确定</van-button>
<van-button class="m-btn fr green" @click="reset">重置</van-button> -->
<div class="bg-white bottom-btn">
<van-button type="danger" size="large" @click="payMent" v-no-more-click="1000">支付</van-button>
<van-button type="danger" style="width: 50vw" @click="cancel" v-no-more-click="1000">返回投保单列表</van-button>
<van-button type="danger" style="width: 50vw" @click="payMent" v-no-more-click="1000">去支付</van-button>
</div>
<form ref="payForm" action="http://10.10.100.84:7003/s3-modules-gateway/embed/gateway.action" method="post">
<input name="TransSource" type="text" v-model="payParam.TransSource" />
<input name="TransDate" type="text" v-model="payParam.TransDate" />
<input name="TransTime" type="text" v-model="payParam.TransTime" />
<input name="TransSeq" type="text" v-model="payParam.TransSeq" />
<input name="Version" type="text" v-model="payParam.Version" />
<input name="RdSeq" type="text" v-model="payParam.RdSeq" />
<input name="PaymentCode" type="text" v-model="payParam.PaymentCode" />
<input name="PayType" type="text" v-model="payParam.PayType" />
<input name="SettleMode" type="text" v-model="payParam.SettleMode" />
<input name="ApplyEntity" type="text" v-model="payParam.ApplyEntity" />
<input name="Cur" type="text" v-model="payParam.Cur" />
<input name="OurAmount" type="text" v-model="payParam.OurAmount" />
<input name="FixUser" type="text" v-model="payParam.FixUser" />
<input name="Insurer" type="text" v-model="payParam.Insurer" />
<input name="CertType" type="text" v-model="payParam.CertType" />
<input name="CertNum" type="text" v-model="payParam.CertNum" />
<input name="OppBank" type="text" v-model="payParam.OppBank" />
<input name="OppAct" type="text" v-model="payParam.OppAct" />
<input name="OppActName" type="text" v-model="payParam.OppActName" />
<input name="CellPhone" type="text" v-model="payParam.CellPhone" />
<input name="ExpireDate" type="text" v-model="payParam.ExpireDate" />
<input name="Purpose" type="text" v-model="payParam.Purpose" />
<input name="Memo" type="text" v-model="payParam.Memo" />
<input name="Description" type="text" v-model="payParam.Description" />
<input name="SourceNotecode" type="text" v-model="payParam.SourceNotecode" />
<input name="ReturnURL" type="text" v-model="payParam.ReturnURL" />
<input name="NotifyURL" type="text" v-model="payParam.NotifyURL" />
<input name="SaleChannel" type="text" v-model="payParam.SaleChannel" />
<input name="ReqReserved1" type="text" v-model="payParam.ReqReserved1" />
<input name="ReqReserved2" type="text" v-model="payParam.ReqReserved2" />
<input name="ReqReserved3" type="text" v-model="payParam.ReqReserved3" />
<input name="ReqReserved4" type="text" v-model="payParam.ReqReserved4" />
<input name="ReqReserved5" type="text" v-model="payParam.ReqReserved5" />
<input name="S3Sign" type="text" v-model="payParam.S3Sign" />
</form>
</div>
</template>
<script>
import { Cell, CellGroup, RadioGroup, Radio } from 'vant'
import { acceptInsurance } from '@/api/ebiz/sale/sale'
import { underWrite } from '@/api/ebiz/sale/sale'
export default {
data() {
return {
@@ -83,108 +51,94 @@ export default {
src: this.$assetsUrl + 'images/cardImg.png',
// 核保数据
underWriteData: {},
srcImg: '',
payParam: {
TransSource: '', // 对接系统
TransDate: '', // 请求日期
TransTime: '', // 请求时间
TransSeq: '', // 时间戳
Version: '', // 版本号
RdSeq: '', // 指令流水号
PaymentCode: '', // 业务唯一号
PayType: '', // 交易类型
SettleMode: '', // 支付方式
ApplyEntity: '', // 业务发生机构
Cur: '', // 币种
OurAmount: '', // 金额
FixUser: '', // 实名认证标识
Insurer: '', // 对接系统
CertType: '', // 证件类型
CertNum: '', // 证件号码
OppBank: '', // 交易方银行
OppAct: '', // 交易方账号
OppActName: '', // 交易方名称
CellPhone: '', // 手机号码
ExpireDate: '', // 订单失效时间
Purpose: '', // 用途
Memo: '', // 备注
Description: '', // 描述
SourceNotecode: '', // 外部系统业务单据号
ReturnURL: '', // 页面跳转同步通知地址
NotifyURL: '', // 后台通知地址
SaleChannel: '', // 销售渠道
ReqReserved1: '', // 备用字段1
ReqReserved2: '', // 备用字段2
ReqReserved3: '', // 备用字段3
ReqReserved4: '', // 备用字段4
ReqReserved5: '', // 备用字段5
S3Sign: '', // 验签信息
tradeState: '' // 状态
},
gotPayParam: false // 是否已正确获取支付参数
srcImg: ''
}
},
mounted() {
let that = this
document.body.style.backgroundColor = '#fff'
that.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
this.srcImg = this.$assetsUrl + `images/bank/bank_${JSON.parse(window.localStorage.getItem('underWriteData')).bankCode}.png`
console.log(this.srcImg)
// 取支付参数
this.getPayParam()
if (localStorage.salelist == '1') {
this.underWrite()
this.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
this.srcImg = this.$assetsUrl + `images/bank/bank_${JSON.parse(window.localStorage.getItem('underWriteData')).bankCode}.png`
} else {
this.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
this.srcImg = this.$assetsUrl + `images/bank/bank_${JSON.parse(window.localStorage.getItem('underWriteData')).bankCode}.png`
}
},
methods: {
// 取支付参数
getPayParam() {
// 点击支付
payMent() {
let that = this
let data = {
orderNo: window.localStorage.getItem('orderNo')
}
console.log('----取支付参数请求:', data)
acceptInsurance(data).then(res => {
console.log('----取支付参数结果:', JSON.stringify(res))
// res = { 'result':'0','resultMessage':'','content':null,'prtNo':'8186270000000008','payStatus':'4','amnt':'63700.00','appntName':'投保人','message':null,'brPayReturnData':{'result':'','resultMessage':'','content':null,'businessId':'1569093814680','businessNo':'8186270000000008','tradeSubType':'COMM','businessType':'SALE','systemType':'GF','money':63700,'businessSubType':'XDCB','thirdType':'0002','thirdName':null,'bankCode':'ABC','epayOrderNo':'1909220323348579999900','companyAccount':null,'tradeState':'TRADING','standardCode':'DEALING','standardMsg':null,'thirdOrderNo':null,'respRemark':null,'tradeTime':'2019-09-21T19:23:34.680+0000','description':'','version':'1','payType':null,'expireDate':'20191010','sourceNotecode':'8186270000000008','rdSeq':'1909220323348579999900','transDate':'20190922','cur':'CNY','settleMode':null,'transSource':'MIT','transTime':'032335','paymentCode':'8186270000000008','applyEntity':'','ourAmount':63700,'transSeq':'20190922032335064','fixUser':'1','insurer':'投保人','certType':'0','certNum':'110101199009210011','oppBank':'ABC','oppAct':'6228481200290317812','oppActName':'投保人','cellPhone':null,'purpose':null,'memo':null,'returnURL':'http://localhost:7008/epay/epay/withholding','notifyURL':'http://139.199.50.151:7000/api/v1/epay/epay/payResult'}}
if (res.result == '0') {
// // 1成 4支付中 2支付失败 8转批扣
// if (res.payStatus == '2') {
// window.localStorage.setItem('resMessage', res.resultMessage)
// }
// window.localStorage.setItem('payStatus', res.payStatus)
// window.localStorage.setItem('payInfo', JSON.stringify(res))
// that.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/payResult',
// backToFirst: '1'
// },
// routerInfo: {
// path: '/sale/payResult'
// }
// })
let keyMap = {}
for (let key in this.payParam) {
keyMap[key.toLowerCase()] = key
}
let paramKey
for (let rKey in res.brPayReturnData) {
if (keyMap.hasOwnProperty(rKey.toLowerCase())) {
paramKey = keyMap[rKey.toLowerCase()]
this.payParam[paramKey] = res.brPayReturnData[rKey]
// 1成 4支付中 2支付失败 8转批扣
window.localStorage.setItem('resMessage', res.resultMessage)
window.localStorage.setItem('payStatus', res.payStatus)
window.localStorage.setItem('payInfo', JSON.stringify(res))
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payResult',
backToFirst: '1'
},
routerInfo: {
path: '/sale/payResult'
}
}
console.log('----支付参数this.payParam:', JSON.stringify(this.payParam))
this.gotPayParam = true
this.$forceUpdate()
})
} else {
that.$toast(res.resultMessage)
}
})
},
// 点击支付
payMent() {
if (this.gotPayParam) {
this.$refs.payForm.submit()
// 取消支付
cancel() {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list',
backToFirst: '1'
},
routerInfo: {
path: '/sale/list'
}
})
},
// 获取支付信息
underWrite() {
let data = {
platform: 'app',
type: '1',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
}
}
}
underWrite(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
if (res.uwResult == '02') {
// window.localStorage.setItem('uwResult', res.uwResult)
window.localStorage.setItem('underWriteData', JSON.stringify(res))
} else if (res.uwResult == '33') {
window.localStorage.setItem('underWriteData', JSON.stringify(res))
window.localStorage.setItem('uwResult', res.uwResult)
window.localStorage.setItem('resultMessage', res.message)
} else {
window.localStorage.setItem('uwResult', res.uwResult)
window.localStorage.setItem('underWriteData', JSON.stringify(res))
// window.localStorage.setItem('resultMessage', res.resultMessage)
}
} else {
this.$toast(res.resultMessage)
}
})
}
},
components: {

View File

@@ -17,15 +17,18 @@
<van-cell title="投保单号" :value="payInfo.prtNo" />
<van-cell title="支付金额" :value="`${payInfo.amnt}元` | moneyFormat" v-if="payInfo.amnt != ''" />
</van-cell-group>
<div v-if="payStatus != '2' && payStatus != '1'" class=" p10 pb250 bg-white">
<!-- <div v-if="payStatus != '2' && payStatus != '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 如有相关问题请联系信息技术部运维人员</span>
</div>
</div> -->
<div v-if="payStatus == '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 核心承保中请您稍后查看</span>
</div>
<div v-if="payStatus == '2'" class=" p10 pb250 bg-white">
<div v-if="payStatus == '2' || payStatus == '4' || payStatus == '8'" class=" p10 pb250 bg-white">
<span v-html="resMessage"></span>
</div>
<!-- <div class=" p10 pb250 bg-white">
<span v-html="resMessage"></span>
</div> -->
<div class="bottom-btn bg-white" v-if="payStatus == '1' || payStatus == '4' || payStatus == '8'">
<van-button type="danger" size="large" @click="next" v-no-more-click="1000">返回列表页</van-button>
@@ -59,9 +62,6 @@ export default {
[CellGroup.name]: CellGroup
},
methods: {
getPayStatus() {
},
// 返回列表页
next() {
this.$jump({
@@ -95,8 +95,6 @@ export default {
}
// console.log(that.resultMessage)
// todo...
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''

View File

@@ -10,10 +10,10 @@
</div> -->
<div class="flex justify-content-c align-items-c flex-direction-colunm m15 bg-white">
<img :src="srcFail" v-if="uwResult != '33'" class="mb40 mt20" />
<p class="title" v-if="uwResult != '33'">系统繁忙请稍后再试</p>
<img :src="srcPending" v-if="uwResult == '33'" class="mb40 mt20" />
<p class="title" v-if="uwResult == '33'">转人工核保</p>
<img :src="srcFail" v-if="uwResult != '46'" class="mb40 mt20" />
<p class="title" v-if="uwResult != '46'">系统繁忙请稍后再试</p>
<img :src="srcPending" v-if="uwResult == '46'" class="mb40 mt20" />
<p class="title" v-if="uwResult == '46'">自核未通过待转人核</p>
</div>
<van-cell-group class="text-left">
<van-cell title="投保人" :value="underWriteData.appntName" v-if="underWriteData.appntName != ''" />
@@ -22,31 +22,31 @@
</van-cell-group>
<div class="bg-white p10 pb150">
<div class="text-left ml20 mt20" v-if="uwResult == '33'">
<div class="text-left ml20 mt20" v-if="uwResult == '46'">
<span class="fs14" v-html="`原因:${resultMessage}`"></span>
</div>
<!-- <div v-if="uwResult == '33'" class="text-left ml20 mt20">
<span class="fs14 mt20">如有相关问题请联系核保人员</span>
</div>
<div class="text-left ml20 mt20">
<span class="fs14 mt20" v-if="uwResult != '33'">如有相关问题请联系信息技术部运维人员</span>
</div> -->
</div>
</div>
<div class="bottom-btn bg-white">
<div class="bottom-btn bg-white" v-if="uwResult != '46'">
<van-button type="danger" size="large" @click="goback" v-no-more-click="1000">返回投保单列表</van-button>
</div>
<div class="bottom-btn bg-white" v-if="uwResult == '46'">
<van-button type="danger" style="width: 50vw" size="normal" @click="goback" v-no-more-click="1000">返回投保单列表</van-button>
<van-button type="danger" style="width: 50vw" size="normal" @click="submit" v-no-more-click="1000">提交人工核保</van-button>
</div>
</div>
</template>
<script>
import { Cell, CellGroup, Button } from 'vant'
import { Cell, CellGroup, Button, Dialog } from 'vant'
import { selfToHuman } from '@/api/ebiz/sale/sale'
// selfToHuman
export default {
components: {
[Button.name]: Button,
[Cell.name]: Cell,
[CellGroup.name]: CellGroup
[CellGroup.name]: CellGroup,
[Dialog.name]: Dialog
},
data() {
return {
@@ -68,6 +68,7 @@ export default {
that.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
},
methods: {
// 返回电子投保单列表
goback() {
// console.log('111')
this.$jump({
@@ -76,6 +77,36 @@ export default {
path: '/sale/list'
}
})
},
// 提交转核保
submit() {
let data = {
orderNo: this.underWriteData.orderNo
}
selfToHuman(data).then(res => {
if (res.result == '0') {
Dialog.alert({
title: '提示',
message: '提交人工核保成功'
}).then(() => {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list',
backToFirst: '1'
},
routerInfo: {
path: '/sale/list'
}
})
})
} else {
window.localStorage.setItem('uwResult', res.result)
window.localStorage.setItem('underWriteData', JSON.stringify(res))
window.localStorage.setItem('resultMessage', res.resultMessage)
location.reload()
}
})
}
},
beforeRouteLeave(to, from, next) {

View File

@@ -1,6 +1,13 @@
<template>
<div class="signature-container">
<div class="signature-content pb40">
<div v-if="isWeixin" class="bg-white mt10 p20 fs14 tips">
<p>
尊敬的
<span class="red">{{tipsName}}</span>先生/女士您好
</p>
<p>该保单由鼎诚人寿保险有限责任公司进行承保具体确认信息如下</p>
</div>
<van-cell-group class="mt10">
<van-cell title="销售人员工号" :value="recmd.agentCode" />
<van-cell title="销售人员姓名" :value="recmd.name" />
@@ -11,7 +18,7 @@
:value="orderInfo.orderAmount == undefined ? '' : orderInfo.orderAmount | moneyFormat"
/>
</van-cell-group>
<div>
<div v-if="!isWeixin">
<van-collapse v-model="activeNames" class="mt10">
<van-collapse-item name="1">
<div slot="title">
@@ -29,8 +36,8 @@
<span class="text">{{ appntSign.signDocumentName }}</span>
<img :src="src" v-if="appntSign.signStatus == '1'" />
</p>
<p class="start">点击开始按钮进行相关操作</p>
<div class="flex justify-content-a mt20">
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
v-if="isShow"
type="danger"
@@ -51,6 +58,7 @@
@click="start_ocr(insured.length == '0' ? '2' : '0')"
>开始</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
</van-collapse>
<div v-if="relationToAppnt != '1'" class="mt10">
@@ -71,8 +79,8 @@
<span class="text">{{ insuredSign.signDocumentName }}</span>
<img :src="src" v-if="insuredSign.signStatus == '1'" />
</p>
<p class="start">点击开始按钮进行相关操作</p>
<div class="flex justify-content-a mt20">
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
v-if="isShow"
type="danger"
@@ -93,6 +101,97 @@
v-no-more-click="1000"
>开始</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
</van-collapse>
</div>
</div>
<div v-else>
<div v-if="shareCode != '1'" class="mt10">
<van-collapse v-model="activeNames">
<van-collapse-item name="1">
<div slot="title">
投保人
<span class="ml20">{{ appnt.name }}</span>
</div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
<p>需阅读</p>
<p class="mb20">
<span class="text">{{ appntSign.readDocumentName }}</span>
<img :src="src" v-if="appntSign.readStatus == '1'" />
</p>
<p>需签署</p>
<p class="mb20">
<span class="text">{{ appntSign.signDocumentName }}</span>
<img :src="src" v-if="appntSign.signStatus == '1'" />
</p>
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
v-if="isShow"
type="danger"
size="normal"
style="width: 157px;"
plain
v-no-more-click="1000"
:disabled="appntSign.signStatus == '1'"
@click="share(insured.length == '0' ? '2' : '0')"
>分享</van-button>
<van-button
type="danger"
size="normal"
style="width: 157px;"
plain
:disabled="appntSign.signStatus == '1'"
v-no-more-click="1000"
@click="start_ocr(insured.length == '0' ? '2' : '0')"
>开始</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
</van-collapse>
</div>
<div v-else class="mt10">
<van-collapse v-model="activeNames" v-for="(item, index) in insured" :key="index">
<van-collapse-item :name="index + 2">
<div slot="title">
被保人
<span class="ml20">{{ item.name }}</span>
</div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
<p>需阅读</p>
<p class="mb20">
<span class="text">{{ insuredSign.readDocumentName }}</span>
<img :src="src" v-if="insuredSign.readStatus == '1'" />
</p>
<p>需签署</p>
<p class="mb20">
<span class="text">{{ insuredSign.signDocumentName }}</span>
<img :src="src" v-if="insuredSign.signStatus == '1'" />
</p>
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
v-if="isShow"
type="danger"
size="normal"
style="width: 157px;"
:disabled="insuredSign.signStatus == '1'"
@click="share('1')"
plain
v-no-more-click="1000"
>分享</van-button>
<van-button
type="danger"
size="normal"
plain
style="width: 157px;"
:disabled="insuredSign.signStatus == '1'"
@click="start_ocr('1')"
v-no-more-click="1000"
>开始</van-button>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
</van-collapse>
</div>
@@ -100,7 +199,7 @@
<!-- <p class="mb20">尊敬的<span class="text">陈伟</span>先生/女士您好</p>
<p class="mb20">
感谢您于<span class="text">2019-08-03</span>国富人寿保险有限责任公司为陈伟投保保费合计<span class="text">7128</span>销售人员为1009368孙岚
感谢您于<span class="text">2019-08-03</span>鼎诚人寿保险有限责任公司为陈伟投保保费合计<span class="text">7128</span>销售人员为1009368孙岚
</p>-->
</div>
<div v-if="!isWeixin">
@@ -110,8 +209,6 @@
>
<van-button type="danger" size="large" @click="next" v-no-more-click="1000">提交</van-button>
</div>
<!-- todo delete -->
<van-button type="danger" size="large" @click="next" v-no-more-click="1000">提交</van-button>
</div>
</div>
</template>
@@ -161,16 +258,32 @@ export default {
// 微信分享链接是否失效 false 为未失效 true为已失效
isInvalid: false,
// 是谁分享的微信链接 1为被保人 0或2为投保人
shareCode: ''
shareCode: '',
// 是否从空签成功跳转过来 1为是 其他为不是
airSign: '',
// 空签时顶部姓名
tipsName: ''
}
},
methods: {
// 初始化
async init() {
if (this.isWeixin) {
let signInvalid = this.$route.query.signInvalid
console.log('`````````````')
console.log('signInvalid: ' + signInvalid)
if (this.$route.query.airSign) {
sessionStorage.setItem('airSign', this.$route.query.airSign)
}
window.localStorage.setItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
window.localStorage.setItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}
if (this.$route.query.shareCode) {
sessionStorage.setItem('shareCode', this.$route.query.shareCode)
}
let signInvalid = sessionStorage.getItem('signInvalid')
let rs = await this.checkSignInvalid(signInvalid)
console.log('````````````')
console.log('rs: ' + rs)
@@ -179,23 +292,23 @@ export default {
} else {
this.isInvalid = true
}
window.localStorage.setItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
window.localStorage.setItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
this.airSign = sessionStorage.getItem('airSign')
this.shareCode = sessionStorage.getItem('shareCode')
this.relationToAppnt = this.$route.query.relationToAppnt
this.isShow = false
if (this.shareCode == '1') {
this.tipsName = JSON.parse(localStorage.getItem('saleInsuredPersonInfo')).name
} else {
this.tipsName = JSON.parse(localStorage.getItem('saleInsuredInfo')).name
}
weixinShare({
title: '国富人寿计划书',
imgUrl: 'http://139.199.50.151:8000/app/images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
title: '鼎诚人寿计划书',
imgUrl: 'http://47.96.143.111:8000/app/images/logo.png',
desc: '鼎诚为您量身定制的保险产品,请查收'
})
let params = {
orderNo: ''
}
// console.log(this.$route.query.orderNo)
params.orderNo = this.$route.query.orderNo
// 获取详情消息
getOrderDetail(params).then(res => {
@@ -217,7 +330,6 @@ export default {
this.date = res.orderDTO.orderInfoDTO.appntDateLabel
// debugger
res.orderDTO.signDTOS.map(item => {
// console.log(item)
if (item.signType == '0') {
this.appntSign = item
} else if (item.signType == '1') {
@@ -244,7 +356,7 @@ export default {
window.localStorage.setItem('sign-val', val)
window.localStorage.setItem('sign-appnt', JSON.stringify(that.appntSign))
if (val == '0' || val == '2') {
if (JSON.parse(this.$route.query.saleInsuredInfo).idType != '1') {
if (JSON.parse(this.$route.query.saleInsuredInfo).idType != '1' || JSON.parse(this.$route.query.saleInsuredInfo).age <= '16') {
this.$jump({
flag: 'h5',
extra: {
@@ -270,7 +382,7 @@ export default {
} else {
window.localStorage.setItem('sign-val', val)
window.localStorage.setItem('sign-insured', JSON.stringify(that.insuredSign))
if (JSON.parse(this.$route.query.saleInsuredPersonInfo).idType != '1') {
if (JSON.parse(this.$route.query.saleInsuredPersonInfo).idType != '1' || JSON.parse(this.$route.query.saleInsuredPersonInfo).age <= "16") {
this.$jump({
flag: 'h5',
extra: {
@@ -298,7 +410,7 @@ export default {
if (val == '0' || val == '2') {
window.localStorage.setItem('sign-val', val)
window.localStorage.setItem('sign-appnt', JSON.stringify(that.appntSign))
if (this.saleInsuredInfo.idType != '1') {
if (this.saleInsuredInfo.idType != '1' || this.saleInsuredInfo.age <= '16') {
this.$jump({
flag: 'h5',
extra: {
@@ -309,16 +421,10 @@ export default {
}
})
} else {
// 跳过人脸识别
// EWebBridge.webCallAppInJs('face_auth', {
// number: that.saleInsuredInfo.idNo, //身份证号码
// name: that.saleInsuredInfo.name //姓名
// })
new Promise(resolve => {
console.log('--跳过人脸识别--返回识别成功')
resolve(JSON.stringify({ state: '1' }))
EWebBridge.webCallAppInJs('face_auth', {
number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名
}).then(data => {
console.log(JSON.parse(data))
if (JSON.parse(data).state == '1') {
if (that.appntSign.readStatus == '0') {
this.$jump({
@@ -359,7 +465,7 @@ export default {
} else {
window.localStorage.setItem('sign-val', val)
window.localStorage.setItem('sign-insured', JSON.stringify(that.insuredSign))
if (this.saleInsuredPersonInfo.idType != '1') {
if (this.saleInsuredPersonInfo.idType != '1' || this.saleInsuredPersonInfo.age <= '16') {
this.$jump({
flag: 'h5',
extra: {
@@ -370,16 +476,11 @@ export default {
}
})
} else {
// 跳过人脸识别
// EWebBridge.webCallAppInJs('face_auth', {
// //身份证号码
// number: that.saleInsuredPersonInfo.idNo,
// //姓名
// name: that.saleInsuredPersonInfo.name
// })
new Promise(resolve => {
console.log('--跳过人脸识别--返回识别成功')
resolve(JSON.stringify({ state: '1' }))
EWebBridge.webCallAppInJs('face_auth', {
//身份证号码
number: that.saleInsuredPersonInfo.idNo,
//姓名
name: that.saleInsuredPersonInfo.name
}).then(data => {
if (JSON.parse(data).state == '1') {
if (that.insuredSign.readStatus == '0') {
@@ -429,10 +530,28 @@ export default {
} else {
shareName = '投保人'
}
console.log('`````````````测试安卓url`````````````````')
console.log(
location.origin +
'/#/sale/signatureConfirmation?orderNo=' +
localStorage.orderNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
localStorage.saleInsuredInfo +
'&saleInsuredPersonInfo=' +
localStorage.saleInsuredPersonInfo +
'&relationToAppnt=' +
JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt +
'&shareCode=' +
code +
'&signInvalid=' +
this.signInvalid
)
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
title: `国富人寿电子投保单(${shareName})签字`,
title: `鼎诚人寿电子投保单(${shareName})签字`,
content: '签字进行',
url:
location.origin +
@@ -475,6 +594,7 @@ export default {
}
}
}
// /insure/selfToHuman
underWrite(data).then(res => {
let that = this
if (res.result == '0') {
@@ -491,7 +611,7 @@ export default {
path: '/sale/payMent'
}
})
} else if (res.uwResult == '33') {
} else if (res.uwResult == '46') {
window.localStorage.setItem('underWriteData', JSON.stringify(res))
window.localStorage.setItem('uwResult', res.uwResult)
window.localStorage.setItem('resultMessage', res.message)
@@ -529,12 +649,11 @@ export default {
getOrderDetail() {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
// 持续展示 toast
duration: 0,
// 禁用背景点击s
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
})
let data = {
@@ -561,7 +680,6 @@ export default {
res.orderDTO.signDTOS.map(item => {
if (item.signType == '0') {
// console.log(item)
that.appntSign = item
} else if (item.signType == '1') {
that.insuredSign = item
@@ -587,8 +705,6 @@ export default {
getSignInvalid(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
console.log('`````````````')
console.log('res:' + res)
this.signInvalid = res.content.sign
}
})
@@ -657,6 +773,9 @@ export default {
color: #4a90e2;
}
.start {
color: #E9332E;
color: #4fc6b3;
}
.tips {
line-height: 30px;
}
</style>

View File

@@ -23,7 +23,7 @@
<van-radio-group v-model="radio" class="pb10 pt20 pl30">
<van-radio name="1" @click="click" class="fs12">
本人确认已阅读
<span>国富人寿人身保险投保</span>
<span>人身保险投保</span>
</van-radio>
</van-radio-group>
<div class="pt30 pl30 flex align-items-c">
@@ -285,7 +285,10 @@ export default {
'&relationToAppnt=' +
JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt +
'&attachmentShow=' +
window.localStorage.getItem('attachmentShow')
window.localStorage.getItem('attachmentShow') +
'&signInvalid=' +
sessionStorage.getItem('signInvalid') +
'&airSign=1'
}
})
} else {
@@ -350,7 +353,10 @@ export default {
'&relationToAppnt=' +
JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt +
'&attachmentShow=' +
window.localStorage.getItem('attachmentShow')
window.localStorage.getItem('attachmentShow') +
'&signInvalid=' +
sessionStorage.getItem('signInvalid') +
'&airSign=1'
}
})
} else {
@@ -524,10 +530,10 @@ export default {
originUrl: location.origin
})
)
window.location.href = this.$mainUrl + '/sign'
window.location.href = this.$mainUrl + '/sign/index.html'
}
},
created() {
async created() {
let that = this
that.detailJump = window.localStorage.getItem('detailJump')
@@ -545,52 +551,13 @@ export default {
// 获取被保人信息
that.saleInsuredPersonInfo = JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo'))
}
},
computed: {
listenChange() {
const { isOver, radio, appntSign, insuredSign } = this
return { isOver, radio, appntSign, insuredSign }
}
},
watch: {
listenChange(val) {
let that = this
if (that.signVal == '0' || that.signVal == '2') {
if (val.isOver == true && val.radio != '' && val.appntSign.signStatus !== '1') {
that.isDisable = false
} else {
that.isDisable = true
}
} else {
if (val.isOver == true && val.radio != '' && val.insuredSign.signStatus !== '1') {
that.isDisableInsured = false
} else {
that.isDisableInsured = true
}
}
if (!this.isWeixin) {
if (val.appntSign.signStatus == '1' && val.insuredSign.signStatus == '1') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
}
if (val.appntSign.signStatus == '1') {
that.isDisable = true
}
if (val.insuredSign.signStatus == '1') {
that.isDisableInsured = true
}
}
},
async mounted() {
if (this.detailJump != '1') {
this.getOrderDetail()
}
if (this.isWeixin) {
let imgBase64Data = sessionStorage.getItem('imgBase64Data')
let wxSigned = sessionStorage.getItem('wxSigned')
let signInfo = localStorage.getItem('signInfo')
let signInfo = JSON.parse(localStorage.getItem('signInfo'))
console.log('`````````````````````````````````')
console.log('imgBase64Data: ' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
@@ -601,26 +568,28 @@ export default {
console.log(rs)
if (rs === 'success') {
this.Time = true
this.isOver = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
console.log('signInfo.status:' + signInfo.status)
if (signInfo.status == '1') {
// this.appntSign.signStatus = '1'
this.appntSign.signStatus = '1'
console.log('``````````````````')
console.log('appntSign:' + this.appntSign)
this.$set(this.appntSign, 'signStatus', '1')
console.log('appntSign.signStatus: ' + this.appntSign.signStatus)
this.isSubmit = false
this.isSign = false
// this.isDisable = false
} else {
// this.insuredSign.signStatus = '1'
this.insuredSign.signStatus = '1'
console.log('````````````````````')
console.log('insuredSign:' + this.insuredSign)
// this.isDisableInsured = false
this.$set(this.insuredSign, 'signStatus', '1')
console.log('insuredSign.signStatus: ' + this.insuredSign.signStatus)
// this.isDisabledComplite = false
}
}
console.log('第二次进入保单,完成状态查看')
console.log(this.isDisabledComplite)
} else {
console.log('````````````````````````')
console.log('第一次进入电子保单')
@@ -633,6 +602,59 @@ export default {
this.getOrderDetail()
}
}
},
computed: {
listenChange() {
const { isOver, radio, appntSign, insuredSign } = this
return { isOver, radio, appntSign, insuredSign }
}
},
watch: {
listenChange(val) {
let that = this
if (!that.isWeixin) {
if (that.signVal == '0' || that.signVal == '2') {
if (val.isOver == true && val.radio != '' && val.appntSign.signStatus !== '1') {
that.isDisable = false
} else {
that.isDisable = true
}
} else {
if (val.isOver == true && val.radio != '' && val.insuredSign.signStatus !== '1') {
that.isDisableInsured = false
} else {
that.isDisableInsured = true
}
}
if (val.appntSign.signStatus == '1' && val.insuredSign.signStatus == '1') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
if (val.appntSign.signStatus == '1') {
that.isDisable = true
}
if (val.insuredSign.signStatus == '1') {
that.isDisableInsured = true
}
} else {
if (that.signVal == '0' || that.signVal == '2') {
if (val.isOver == true && val.radio != '') {
that.isDisable = false
} else {
that.isDisable = true
}
} else {
if (val.isOver == true && val.radio != '') {
that.isDisableInsured = false
} else {
that.isDisableInsured = true
}
}
}
}
},
mounted() {
document.body.style.backgroundColor = '#fff'
this.pdfUrl = encodeURIComponent(config.imgDomain + `/returnDirectStream?imgPath=${window.localStorage.getItem('insurance-policyUrl')}`)
//实例化

View File

@@ -1,666 +0,0 @@
<template>
<div>
<div class="pb60" v-if="detailJump == '1'">
<!-- config.imgDomain + `/returnDirectStream?imgPath=${window.localStorage.getItem('insurance-policyUrl')}` -->
<iframe :src="src + pdfUrl" class="iframe"></iframe>
<!-- <div id="pdf"></div> -->
<!-- <img :src="'data:image/jpeg;base64,' + url" /> -->
<div class="pt30 pl30 flex align-items-c">
<span class="mr10">投保人签字 :</span>
<div>
<van-button type="danger" size="small" @click="sign('0')" v-no-more-click="1000">{{ isSign ? '签名' : '已签名' }}</van-button>
</div>
</div>
</div>
<div class="pb60" v-else>
<van-notice-bar :scrollable="false" v-if="!Time" class="notice">{{ `提示阅读时长需在${this.Time ? this.time : this.number}秒以上` }}</van-notice-bar>
<iframe :src="src + pdfUrl" class="iframe"></iframe>
<!-- <img :src="'data:image/jpeg;base64,' + url" /> -->
<van-radio-group v-model="radio" class="pb10 pt20 pl30">
<van-radio name="1" @click="click" class="fs12">
本人确认已阅读
<span>国富人寿人身保险投保单</span>
</van-radio>
</van-radio-group>
<div class="pt30 pl30 flex align-items-c">
<span class="mr10">投保人签字 :</span>
<div v-if="signVal == '0' || signVal == '2'">
<van-button type="danger" size="small" :disabled="signVal == '1' ? true : isDisable" @click="sign('0')" v-no-more-click="1000">
{{ appntSign.signStatus == '0' ? '签名' : '已签名' }}
</van-button>
</div>
<div v-if="signVal == '1'">
<van-button type="danger" size="small" :disabled="signVal == '1' ? true : isDisable" @click="sign('0')">
{{ appntSign.signStatus == '0' ? '未签名' : '已签名' }}
</van-button>
</div>
</div>
<div class="pt25 pl30 flex align-items-c" v-if="relationToAppnt != '1'">
<span class="mr10">被保人/监护人签名</span>
<div v-if="signVal == '0' || signVal == '2'">
<van-button type="danger" size="small" :disabled="signVal == '1' ? isDisableInsured : true" @click="sign('1')" v-no-more-click="1000">
{{ insuredSign.signStatus == '0' ? '未签名' : '已签名' }}
</van-button>
</div>
<div v-if="signVal == '1'" class="flex">
<van-button type="danger" size="small" :disabled="signVal == '1' ? isDisableInsured : true" @click="sign('1')" v-no-more-click="1000">
{{ insuredSign.signStatus == '0' ? '签名' : '已签名' }}
</van-button>
</div>
</div>
</div>
<div class="bottom-btn bg-white" v-if="detailJump == '1'">
<van-button type="danger" size="large" @click="submit" :disabled="isSubmit" v-no-more-click="1000">提交</van-button>
</div>
<div class="bottom-btn bg-white" v-else>
<van-button type="danger" size="large" @click="next" :disabled="isDisabledComplite" v-no-more-click="1000">完成</van-button>
</div>
</div>
</template>
<script>
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
import { getOrderDetail, saveInformation, submit } from '@/api/ebiz/sale/sale'
import config from '@/config'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
pdfh5: null,
pdfUrl: '',
src: location.origin + '/pdfjs/web/viewer.html?file=',
radio: '',
// 倒计时时间
number: '',
// // 定时器时间
time: '10',
// // 定时器名称
timer: null,
isOver: false,
// 判断验证码是否开始倒计时
Time: true,
// 按钮是否可以点击
isDisable: true,
// 被保人是否可以点击
isDisableInsured: true,
// 投保人签名阅读信息
appntSign: {},
// 被保人签名阅读信息
insuredSign: {},
// 是投保人还是被保人 0 投保人 1被保人 2 投被同人
signVal: '',
// 图片路径
url: '',
// sign加密码
base64: '',
// 是否可以点击
isDisabledComplite: true,
// local带来的被保人信息
saleInsuredPersonInfo: {},
// local带来的投保人信息
saleInsuredInfo: {},
// 投被保人是否同人 1为投被同人其他为不是
relationToAppnt: '',
// 是否在微信
isWeixin,
// 是否可以点击提交
isSubmit: true,
// 是否签名了 回执流程
isSign: true,
// 是否从详情跳过来 如果为1 是
detailJump: ''
}
},
components: {
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
methods: {
timeOut() {
let that = this
let time = that.time
that.Time = false
that.number = `${time}`
let timer = setInterval(() => {
time--
if (time <= 0) {
time = 0
clearInterval(timer)
that.Time = true
that.isOver = true
}
that.number = `${time}`
}, 1000)
},
// 获取签名状态
async getOrderDetail() {
let that = this
let data = {
orderNo: window.localStorage.getItem('orderNo')
}
return new Promise((resolve, reject) => {
getOrderDetail(data).then(res => {
if (res.result == '0') {
res.orderDTO.signDTOS.map(item => {
if (item.signType == '0') {
that.appntSign = item
} else if (item.signType == '1') {
that.insuredSign = item
} else {
that.appntSign = item
}
})
if (that.isWeixin) {
if (res.orderDTO.signDTOS.length > 1) {
if (that.appntSign.signStatus == '1' && that.insuredSign.signStatus == '1') {
that.isDisabledComplite = false
}
}
}
resolve('success')
}
})
})
},
// 单选框
click() {
let that = this
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
}
},
// 点击提交
submit() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {
contNo: window.localStorage.getItem('contNo'),
baseEncryp: this.base64,
pdfAddresss: window.localStorage.getItem('insurance-policyUrl')
}
submit(data).then(res => {
if (res.reslut == '0') {
this.$toast.clear()
window.localStorage.setItem('submitStatus', res.result)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/serve/result',
backToFirst: '1'
},
routerInfo: {
path: '/serve/result'
}
})
} else {
window.localStorage.setItem('submitStatus', res.result)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/serve/result',
backToFirst: '1'
},
routerInfo: {
path: '/serve/result'
}
})
}
})
},
// 点击完成
next() {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
if (that.signVal == '0' || that.signVal == '2') {
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
},
signDTOS: [
{
signOrRead: 'sign',
signId: that.appntSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
signStatus: '1',
signType: that.signVal,
baseEncryp: that.base64
}
]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('jumpFromSign', '1')
if (this.isWeixin) {
localStorage.removeItem('signInfo')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureConfirmation',
pullRefresh: '1',
backToFirst: '1'
},
routerInfo: {
path:
'/sale/signatureConfirmation?orderNo=' +
localStorage.orderNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
localStorage.saleInsuredInfo +
'&saleInsuredPersonInfo=' +
localStorage.saleInsuredPersonInfo +
'&relationToAppnt=' +
JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt +
'&attachmentShow=' +
window.localStorage.getItem('attachmentShow')
}
})
} else {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureConfirmation',
pullRefresh: '1',
backToFirst: '1'
},
routerInfo: {
path: '/sale/signatureConfirmation'
}
})
}
} else {
that.$toast(res.resultMessage)
}
})
} else {
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
},
signDTOS: [
{
signOrRead: 'sign',
signId: that.insuredSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
signStatus: '1',
signType: that.signVal,
baseEncryp: that.base64
}
]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('jumpFromSign', '1')
if (this.isWeixin) {
localStorage.removeItem('signInfo')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureConfirmation',
pullRefresh: '1',
backToFirst: '1'
},
routerInfo: {
path:
'/sale/signatureConfirmation?orderNo=' +
localStorage.orderNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
localStorage.saleInsuredInfo +
'&saleInsuredPersonInfo=' +
localStorage.saleInsuredPersonInfo +
'&relationToAppnt=' +
JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt +
'&attachmentShow=' +
window.localStorage.getItem('attachmentShow')
}
})
} else {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureConfirmation',
pullRefresh: '1',
backToFirst: '1'
},
routerInfo: {
path: '/sale/signatureConfirmation'
}
})
}
} else {
that.$toast(res.resultMessage)
}
})
}
},
// 点击签名
sign(val) {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
if (val == '0') {
if (this.detailJump != '1') {
if (this.relationToAppnt == '1') {
if (this.isWeixin) {
this.toAirSign('1', '申请日期', '-170')
} else {
EWebBridge.webCallAppInJs('ca_sign', {
//身份证号码
number: this.saleInsuredInfo.idNo,
//姓名
name: this.saleInsuredInfo.name,
keyword: '申请日期',
pageNo: '1',
index: '1',
offset: '-170',
pos: '3'
}).then(data => {
this.$toast.clear()
if (JSON.parse(data).state == '1') {
this.base64 = decodeURI(JSON.parse(data).sign)
this.appntSign.signStatus = '1'
this.isDisabledComplite = false
this.isSubmit = false
this.isSign = false
}
})
}
} else {
if (this.isWeixin) {
this.toAirSign('1', '法定监护人', '-170')
} else {
EWebBridge.webCallAppInJs('ca_sign', {
//身份证号码
number: this.saleInsuredInfo.idNo,
//姓名
name: this.saleInsuredInfo.name,
type: this.saleInsuredInfo.idType,
keyword: '法定监护人',
pageNo: '1',
index: '1',
offset: '-170',
pos: '3'
}).then(data => {
this.$toast.clear()
if (JSON.parse(data).state == '1') {
this.base64 = decodeURI(JSON.parse(data).sign)
this.appntSign.signStatus = '1'
this.isDisabledComplite = false
this.isSubmit = false
this.isSign = false
}
})
}
}
} else {
switch (that.saleInsuredInfo.idType) {
case '身份证':
that.saleInsuredInfo.idType = '1'
break
case '户口本':
that.saleInsuredInfo.idType = '2'
break
case '出生证明':
that.saleInsuredInfo.idType = '3'
break
case '护照':
that.saleInsuredInfo.idType = '4'
break
case '港澳居民通行证':
that.saleInsuredInfo.idType = '5'
break
case '台湾居民通行证':
that.saleInsuredInfo.idType = '6'
break
case '其他':
that.saleInsuredInfo.idType = '7'
break
}
if (this.isWeixin) {
this.toAirSign('1', '签收日期', '-150')
} else {
EWebBridge.webCallAppInJs('ca_sign', {
//身份证号码
number: that.saleInsuredInfo.idNo,
//姓名
name: that.saleInsuredInfo.name,
type: that.saleInsuredInfo.idType,
keyword: '签收日期',
pageNo: '1',
index: '1',
offset: '-150',
pos: '3'
}).then(data => {
this.$toast.clear()
if (JSON.parse(data).state == '1') {
that.base64 = decodeURI(JSON.parse(data).sign)
that.appntSign.signStatus = '1'
that.isDisabledComplite = false
that.isSubmit = false
that.isSign = false
}
})
}
}
} else {
if (this.isWeixin) {
this.toAirSign('2', '法定监护人', '0')
} else {
EWebBridge.webCallAppInJs('ca_sign', {
//身份证号码
number: that.saleInsuredPersonInfo.idNo,
//姓名
name: that.saleInsuredPersonInfo.name,
type: that.saleInsuredPersonInfo.idType,
keyword: '法定监护人',
pageNo: '1',
index: '1',
offset: '0',
pos: '3'
}).then(data => {
this.$toast.clear()
if (JSON.parse(data).state == '1') {
that.base64 = decodeURI(JSON.parse(data).sign)
that.insuredSign.signStatus = '1'
that.isDisabledComplite = false
}
})
}
}
},
toAirSign(status, keyword, offset) {
localStorage.setItem(
'signInfo',
JSON.stringify({
idNo: this.saleInsuredInfo.idNo,
name: this.saleInsuredInfo.name,
type: this.saleInsuredInfo.idType,
keyword: keyword,
status: status,
offset: offset,
originUrl: location.origin
})
)
window.location.href = this.$mainUrl + '/sign'
}
},
created() {
let that = this
that.detailJump = window.localStorage.getItem('detailJump')
that.signVal = window.localStorage.getItem('sign-val')
// 获取投保人信息
that.saleInsuredInfo = JSON.parse(window.localStorage.getItem('saleInsuredInfo'))
if (this.isWeixin) {
that.relationToAppnt = JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt
}
if (this.detailJump != '1') {
// 投被保人是否同人
that.relationToAppnt = JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt
// 获取被保人信息
that.saleInsuredPersonInfo = JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo'))
}
},
computed: {
listenChange() {
const { isOver, radio, appntSign, insuredSign } = this
return { isOver, radio, appntSign, insuredSign }
}
},
watch: {
listenChange(val) {
let that = this
if (that.signVal == '0' || that.signVal == '2') {
if (val.isOver == true && val.radio != '' && val.appntSign.signStatus !== '1') {
that.isDisable = false
} else {
that.isDisable = true
}
} else {
if (val.isOver == true && val.radio != '' && val.insuredSign.signStatus !== '1') {
that.isDisableInsured = false
} else {
that.isDisableInsured = true
}
}
if (!this.isWeixin) {
if (val.appntSign.signStatus == '1' && val.insuredSign.signStatus == '1') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
}
if (val.appntSign.signStatus == '1') {
that.isDisable = true
}
if (val.insuredSign.signStatus == '1') {
that.isDisableInsured = true
}
}
},
async mounted() {
if (this.detailJump != '1') {
this.getOrderDetail()
}
if (this.isWeixin) {
let imgBase64Data = sessionStorage.getItem('imgBase64Data')
let wxSigned = sessionStorage.getItem('wxSigned')
let signInfo = localStorage.getItem('signInfo')
console.log('`````````````````````````````````')
console.log('imgBase64Data: ' + imgBase64Data)
console.log('wxSigned: ' + wxSigned)
if (wxSigned) {
console.log('第二次进入电子保单')
console.log('````````````````````````````````')
let rs = await this.getOrderDetail()
console.log(rs)
if (rs === 'success') {
this.Time = true
this.radio = '1'
this.base64 = imgBase64Data
this.isDisabledComplite = false
if (signInfo.status == '1') {
// this.appntSign.signStatus = '1'
console.log('``````````````````')
console.log('appntSign:' + this.appntSign)
this.$set(this.appntSign, 'signStatus', '1')
this.isSubmit = false
this.isSign = false
} else {
// this.insuredSign.signStatus = '1'
console.log('````````````````````')
console.log('insuredSign:' + this.insuredSign)
this.$set(this.insuredSign, 'signStatus', '1')
// this.isDisabledComplite = false
}
}
console.log('第二次进入保单,完成状态查看')
console.log(this.isDisabledComplite)
} else {
console.log('````````````````````````')
console.log('第一次进入电子保单')
this.timeOut()
this.getOrderDetail()
}
} else {
this.timeOut()
if (this.detailJump != '1') {
this.getOrderDetail()
}
}
document.body.style.backgroundColor = '#fff'
this.pdfUrl = encodeURIComponent(config.imgDomain + `/returnDirectStream?imgPath=${window.localStorage.getItem('insurance-policyUrl')}`)
//实例化
// this.pdfh5 = new Pdfh5('#pdf', {
// pdfurl: config.imgDomain + `/returnDirectStream?imgPath=${window.localStorage.getItem('insurance-policyUrl')}`
// // pdfurl: res.data.content.content
// })
// 获取签名信息
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
img {
width: 100%;
height: 100%;
}
.notice {
width: 100%;
position: fixed;
top: 0;
z-index: 20;
}
.iframe {
width: 100vw;
height: 70vh;
}
</style>

View File

@@ -37,16 +37,21 @@ export default {
// }
},
goToTest() {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/test2',
backToFirst: '1'
},
routerInfo: {
path: '/test2'
}
EWebBridge.webCallAppInJs('download', {
url:
'http://116.62.236.168:7012/updown/returnDirectStream?imgPath=Ra4LpmZv2h6FrwZPS48QIETiI2AcWWLx6RavVjoAkoO8qG1KDXkTa%2FPK%2Bjuz79bSSoIyCeO4X1SY%0AGolCIepvljJzyC9aMJzb6uuQQVh3F9WVGLphInLPv0HGtHpZ3OhD',
name: '鼎诚.pdf'
})
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/test2',
// backToFirst: '1'
// },
// routerInfo: {
// path: '/test2'
// }
// })
}
}
}

View File

@@ -2,8 +2,8 @@ const autoprefixer = require('autoprefixer')
const pxtoviewport = require('postcss-px-to-viewport')
module.exports = {
publicPath: process.env.VUE_APP_FLAG === 'production' ? '/' : '/',
lintOnSave: process.env.VUE_APP_FLAG === 'development', //是否开启代码检查
publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',
lintOnSave: process.env.NODE_ENV === 'development', //是否开启代码检查
outputDir: 'dist', //打包输出目录
productionSourceMap: false,
css: {