bxs-tools-ui 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -20
- package/es/add-and-take/index.css +1 -1
- package/es/add-and-take/index.js +283 -64
- package/es/adjust-baoe/index.css +1 -1
- package/es/adjust-baoe/index.js +444 -195
- package/es/business-card/index.css +1 -1
- package/es/business-card/index.js +1 -0
- package/es/canvas-poster/index.css +1 -1
- package/es/canvas-poster/index.js +1 -0
- package/es/index.css +1 -1
- package/es/index.js +936 -824
- package/es/insure-calculate/index.css +1 -1
- package/es/insure-calculate/index.js +438 -265
- package/es/person-info/index.css +1 -1
- package/es/person-info/index.js +296 -1370
- package/es/product-info/index.css +1 -1
- package/es/product-info/index.js +644 -548
- package/es/share-sheet/index.css +1 -1
- package/es/share-sheet/index.js +313 -21
- package/es/utils/index.js +530 -429
- package/lib/add-and-take/index.css +1 -1
- package/lib/add-and-take/index.js +283 -64
- package/lib/adjust-baoe/index.css +1 -1
- package/lib/adjust-baoe/index.js +441 -194
- package/lib/business-card/index.css +1 -1
- package/lib/business-card/index.js +1 -0
- package/lib/canvas-poster/index.css +1 -1
- package/lib/canvas-poster/index.js +1 -0
- package/lib/index.css +1 -1
- package/lib/index.js +939 -826
- package/lib/insure-calculate/index.css +1 -1
- package/lib/insure-calculate/index.js +438 -268
- package/lib/person-info/index.css +1 -1
- package/lib/person-info/index.js +295 -1372
- package/lib/product-info/index.css +1 -1
- package/lib/product-info/index.js +645 -550
- package/lib/share-sheet/index.css +1 -1
- package/lib/share-sheet/index.js +313 -25
- package/lib/utils/index.js +531 -433
- package/package.json +9 -7
- package/packages/add-and-take/components/interest-form.less +144 -0
- package/packages/add-and-take/components/interest-form.vue +179 -179
- package/packages/add-and-take/components/interest-items.less +87 -0
- package/packages/add-and-take/components/interest-items.vue +67 -80
- package/packages/add-and-take/components/interest-table.less +111 -0
- package/packages/add-and-take/components/interest-table.vue +31 -31
- package/packages/add-and-take/constant.ts +2 -2
- package/packages/add-and-take/demo/index.vue +89 -86
- package/packages/add-and-take/handler.ts +52 -57
- package/packages/add-and-take/index.less +69 -0
- package/packages/add-and-take/index.vue +156 -156
- package/packages/add-and-take/readme.md +87 -98
- package/packages/adjust-baoe/demo/index.vue +37 -47
- package/packages/adjust-baoe/index.less +125 -0
- package/packages/adjust-baoe/index.vue +134 -147
- package/packages/adjust-baoe/readme.md +35 -45
- package/packages/business-card/demo/index.vue +7 -7
- package/packages/business-card/index.less +100 -0
- package/packages/business-card/index.vue +18 -21
- package/packages/business-card/readme.md +46 -53
- package/packages/bxs-utils/demo/index.vue +2 -2
- package/packages/bxs-utils/index.ts +5 -5
- package/packages/bxs-utils/planbook/common.ts +56 -92
- package/packages/bxs-utils/planbook/index.ts +4 -4
- package/packages/bxs-utils/planbook/insurance.ts +137 -127
- package/packages/bxs-utils/planbook/person.ts +143 -147
- package/packages/bxs-utils/planbook/product.ts +473 -509
- package/packages/bxs-utils/readme.md +94 -84
- package/packages/bxs-utils/trade/index.js +1 -1
- package/packages/bxs-utils/trade/insureCalculate.js +91 -204
- package/packages/canvas-poster/demo/index.vue +9 -13
- package/packages/canvas-poster/index.less +5 -0
- package/packages/canvas-poster/index.vue +68 -79
- package/packages/canvas-poster/readme.md +106 -109
- package/packages/index.ts +1 -1
- package/packages/insure-calculate/demo/index.vue +20 -20
- package/packages/insure-calculate/index.less +366 -0
- package/packages/insure-calculate/index.vue +305 -329
- package/packages/insure-calculate/readme.md +99 -106
- package/packages/person-info/crm-popup.vue +81 -80
- package/packages/person-info/demo/index.vue +25 -37
- package/packages/person-info/index-inline.less +11 -0
- package/packages/person-info/index.vue +53 -83
- package/packages/person-info/readme.md +109 -115
- package/packages/planbook-input/components/footer.less +54 -0
- package/packages/planbook-input/components/footer.vue +8 -64
- package/packages/planbook-input/components/handler.js +33 -44
- package/packages/planbook-input/components/product-table.less +235 -0
- package/packages/planbook-input/components/product-table.vue +114 -108
- package/packages/planbook-input/demo/index.vue +3 -3
- package/packages/planbook-input/helper.js +852 -465
- package/packages/planbook-input/index.less +30 -0
- package/packages/planbook-input/index.vue +86 -103
- package/packages/planbook-input/readme.md +72 -90
- package/packages/product-info/demo/constant.js +1 -1
- package/packages/product-info/demo/index.vue +31 -43
- package/packages/product-info/index.less +271 -0
- package/packages/product-info/index.vue +198 -210
- package/packages/product-info/readme.md +72 -75
- package/packages/share-sheet/constant.js +4 -4
- package/packages/share-sheet/demo/index.vue +10 -10
- package/packages/share-sheet/handler.js +14 -14
- package/packages/share-sheet/index.less +201 -0
- package/packages/share-sheet/index.vue +39 -39
- package/packages/share-sheet/readme.md +121 -127
- package/src/api/add-and-take.js +45 -0
- package/src/api/adjust-baoe.js +16 -0
- package/src/api/index.js +6 -0
- package/src/api/planbook.js +93 -0
- package/src/api/request.js +211 -0
- package/src/api/trade.js +56 -0
- package/src/api/user.js +18 -0
- package/src/components/common/common-age-birthday.less +66 -0
- package/src/components/common/common-age-birthday.vue +27 -95
- package/src/components/common/common-popup.less +81 -0
- package/src/components/common/common-popup.vue +12 -96
- package/src/components/common/common-radio.less +75 -0
- package/src/components/common/common-radio.vue +13 -91
- package/src/components/common/common-select.less +13 -0
- package/src/components/common/common-select.vue +21 -38
- package/src/components/common/common-title.less +115 -0
- package/src/components/common/common-title.vue +24 -24
- package/src/js/loading.js +6 -6
- package/src/js/md5Token.js +38 -44
- package/src/js/utils.js +45 -53
- package/src/js/variables.js +47 -25
- package/src/style/base.less +18 -0
- package/src/style/color.less +40 -0
- package/src/style/variables.less +21 -42
- package/packages/add-and-take/api.ts +0 -70
- package/packages/add-and-take/components/interest-form.css +0 -146
- package/packages/add-and-take/components/interest-items.css +0 -87
- package/packages/add-and-take/components/interest-table.css +0 -113
- package/packages/add-and-take/index.css +0 -70
- package/packages/adjust-baoe/index.css +0 -123
- package/packages/business-card/index.css +0 -101
- package/packages/canvas-poster/index.css +0 -5
- package/packages/insure-calculate/index.css +0 -368
- package/packages/planbook-input/api.js +0 -29
- package/packages/planbook-input/components/product-table.css +0 -236
- package/packages/planbook-input/index.css +0 -31
- package/packages/product-info/index.css +0 -264
- package/packages/share-sheet/index.css +0 -203
- package/src/components/common/common-title.css +0 -116
- package/src/js/request.js +0 -64
- package/src/style/apply.css +0 -25
- package/src/style/base.css +0 -36
- package/src/style/color.css +0 -74
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { convertEleOrderListToObj, converUnit10000 } from './common'
|
|
1
|
+
import { convertEleOrderListToObj, converUnit10000 } from './common'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* **初始化险种数据**
|
|
@@ -10,22 +10,22 @@ import { convertEleOrderListToObj, converUnit10000 } from './common';
|
|
|
10
10
|
* @param {IProdInsurance} insData 必传。险种数据(单个)
|
|
11
11
|
* @returns {void}
|
|
12
12
|
*/
|
|
13
|
-
export function initInsuranceData(insData
|
|
13
|
+
export function initInsuranceData(insData: IProdInsurance): void {
|
|
14
14
|
if (!insData || !insData.eleOrderList) {
|
|
15
|
-
return
|
|
15
|
+
return
|
|
16
16
|
}
|
|
17
17
|
if (insData.account && insData.accountData && insData.accountData.accountPart) {
|
|
18
|
-
insData.accountData.addAndTakeData = insData.accountData.addAndTakeData || []
|
|
18
|
+
insData.accountData.addAndTakeData = insData.accountData.addAndTakeData || []
|
|
19
19
|
if (!insData.accountData.addAndTakeData.length) {
|
|
20
20
|
insData.accountData.addAndTakeData.push({
|
|
21
21
|
key: 'add',
|
|
22
22
|
adjustData: []
|
|
23
|
-
})
|
|
23
|
+
})
|
|
24
24
|
if (['addAndTake', 'take'].includes(insData.accountData.accountPart)) {
|
|
25
25
|
insData.accountData.addAndTakeData.push({
|
|
26
26
|
key: 'take',
|
|
27
27
|
adjustData: []
|
|
28
|
-
})
|
|
28
|
+
})
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -38,46 +38,67 @@ export function initInsuranceData(insData : IProdInsurance) : void {
|
|
|
38
38
|
adjustData: []
|
|
39
39
|
}
|
|
40
40
|
]
|
|
41
|
-
}
|
|
41
|
+
}
|
|
42
42
|
}
|
|
43
|
-
insData.eleOrderList.forEach((e
|
|
43
|
+
insData.eleOrderList.forEach((e: IInsElement) => {
|
|
44
44
|
switch (e.key) {
|
|
45
45
|
case 'title':
|
|
46
|
-
e.isDisabled = e.isDisabled || null
|
|
47
|
-
e.isHide = e.isHide || null
|
|
48
|
-
break
|
|
46
|
+
e.isDisabled = e.isDisabled || null
|
|
47
|
+
e.isHide = e.isHide || null
|
|
48
|
+
break
|
|
49
49
|
case 'baoe':
|
|
50
|
-
e.placeholder = e.placeholder || '请输入保额'
|
|
51
|
-
break
|
|
50
|
+
e.placeholder = e.placeholder || '请输入保额'
|
|
51
|
+
break
|
|
52
52
|
case 'baof':
|
|
53
|
-
e.placeholder = e.placeholder || '请输入保费'
|
|
54
|
-
break
|
|
53
|
+
e.placeholder = e.placeholder || '请输入保费'
|
|
54
|
+
break
|
|
55
55
|
case 'payModePremium':
|
|
56
|
-
e.placeholder = e.placeholder || '请输入期交保费'
|
|
57
|
-
break
|
|
56
|
+
e.placeholder = e.placeholder || '请输入期交保费'
|
|
57
|
+
break
|
|
58
58
|
}
|
|
59
59
|
if (e.optConf && e.optConf.length && e.optConf[1]) {
|
|
60
|
-
let options
|
|
61
|
-
const [start, end, params
|
|
62
|
-
const { desc, valuePrefix, valfix, step } = params || {}
|
|
63
|
-
for (let i = start; i <= end; i +=
|
|
60
|
+
let options: any = []
|
|
61
|
+
const [start, end, params]: any = e.optConf || []
|
|
62
|
+
const { desc, valuePrefix, valfix, step } = params || {}
|
|
63
|
+
for (let i = start; i <= end; i += step * 1 || 1) {
|
|
64
64
|
options.push({
|
|
65
65
|
val: valuePrefix || valfix ? `${valuePrefix}${i}${valfix}` : i,
|
|
66
66
|
desc: desc ? desc.replace(/{{&&}}/, i) : i
|
|
67
|
-
})
|
|
67
|
+
})
|
|
68
68
|
}
|
|
69
|
-
e.opts = options
|
|
69
|
+
e.opts = options
|
|
70
70
|
}
|
|
71
71
|
if (e.opts && e.opts.length) {
|
|
72
|
-
e.opts = e.opts.map((o
|
|
72
|
+
e.opts = e.opts.map((o: any) => ({
|
|
73
73
|
...o,
|
|
74
74
|
desc: o.desc || o.val,
|
|
75
75
|
isHide: o.isHide || null,
|
|
76
76
|
isDisabled: o.isDisabled || null,
|
|
77
77
|
isInvalid: o.isInvalid || null
|
|
78
|
-
}))
|
|
78
|
+
}))
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (e.componentName === 'cmCommonInput') {
|
|
82
|
+
// 输入框,默认打开普通键盘。From hyw
|
|
83
|
+
if (!e.inputType) {
|
|
84
|
+
e.inputType = 'text'
|
|
85
|
+
}
|
|
86
|
+
if (['baoe', 'baof', 'payModePremium', 'num'].includes(e.key)) {
|
|
87
|
+
// 输入框,默认2位小数。From hyw
|
|
88
|
+
if (!e.regExp) {
|
|
89
|
+
e.regExp = '/^\\d{1,9}(\\.\\d{1,2})?$/'
|
|
90
|
+
e.regExpMessage = '请输入最多9位整数和最多2位小数'
|
|
91
|
+
e.maxlength = 12
|
|
92
|
+
e.inputType = 'decimal'
|
|
93
|
+
}
|
|
94
|
+
// 输入框,整数值,使用数字键盘。From hyw
|
|
95
|
+
if (e.regExp === '/^\\d{1,}$/') {
|
|
96
|
+
e.maxlength = 9
|
|
97
|
+
e.inputType = 'tel'
|
|
98
|
+
}
|
|
99
|
+
}
|
|
79
100
|
}
|
|
80
|
-
})
|
|
101
|
+
})
|
|
81
102
|
}
|
|
82
103
|
|
|
83
104
|
/**
|
|
@@ -90,37 +111,35 @@ export function initInsuranceData(insData : IProdInsurance) : void {
|
|
|
90
111
|
* @param {IPbProduct} productData 必传。产品数据(单个)
|
|
91
112
|
* @returns {IProdInsurance} 险种数据(单个)
|
|
92
113
|
*/
|
|
93
|
-
export function insuranceDataHandler(insData
|
|
114
|
+
export function insuranceDataHandler(insData: IProdInsurance, productData: IPbProduct): IProdInsurance {
|
|
94
115
|
if (!insData || !insData.eleOrderList) {
|
|
95
|
-
return insData
|
|
116
|
+
return insData
|
|
96
117
|
}
|
|
97
118
|
if (insData.reduceBaof) {
|
|
98
|
-
insData.reduceBaofData = insData.reduceBaofData || null
|
|
99
|
-
insData.duplicateReduceBaofData = insData.duplicateReduceBaofData || null
|
|
119
|
+
insData.reduceBaofData = insData.reduceBaofData || null
|
|
120
|
+
insData.duplicateReduceBaofData = insData.duplicateReduceBaofData || null
|
|
100
121
|
}
|
|
101
122
|
insData.eleOrderList.forEach(ele => {
|
|
102
|
-
ele.isDisabled = ele.isDisabled || null
|
|
103
|
-
ele.isHide = ele.isHide || null
|
|
104
|
-
ele.isIgnoreValidate = ele.isIgnoreValidate || null
|
|
105
|
-
ele.rules = [
|
|
106
|
-
|
|
107
|
-
];
|
|
108
|
-
});
|
|
123
|
+
ele.isDisabled = ele.isDisabled || null
|
|
124
|
+
ele.isHide = ele.isHide || null
|
|
125
|
+
ele.isIgnoreValidate = ele.isIgnoreValidate || null
|
|
126
|
+
ele.rules = [...initElementValidateRules(ele, productData)]
|
|
127
|
+
})
|
|
109
128
|
|
|
110
|
-
const calMethod = insData.eleOrderList.find(e => e.key === 'calMethod')
|
|
111
|
-
const baoe = insData.eleOrderList.find(e => e.key === 'baoe')
|
|
112
|
-
const baof = insData.eleOrderList.find(e => e.key === 'baof') || insData.eleOrderList.find(e => e.key === 'payModePremium')
|
|
113
|
-
const plan = insData.eleOrderList.find(e => e.key === 'plan')
|
|
129
|
+
const calMethod = insData.eleOrderList.find(e => e.key === 'calMethod')
|
|
130
|
+
const baoe = insData.eleOrderList.find(e => e.key === 'baoe')
|
|
131
|
+
const baof = insData.eleOrderList.find(e => e.key === 'baof') || insData.eleOrderList.find(e => e.key === 'payModePremium')
|
|
132
|
+
const plan = insData.eleOrderList.find(e => e.key === 'plan')
|
|
114
133
|
// 同时有保额和计划时,若保额被隐藏则显示计划 2019.09.11)
|
|
115
134
|
if (!calMethod && baoe && plan) {
|
|
116
|
-
insData.showPlanDesc = !!baoe.isHide
|
|
135
|
+
insData.showPlanDesc = !!baoe.isHide
|
|
117
136
|
}
|
|
118
137
|
// 切换保额保费互算问题 By Lizhao@2020.11.25
|
|
119
138
|
if (calMethod && baoe && baof) {
|
|
120
|
-
baoe.isHide = calMethod.value !== 'baoe2baof'
|
|
121
|
-
baof.isHide = calMethod.value === 'baoe2baof'
|
|
139
|
+
baoe.isHide = calMethod.value !== 'baoe2baof'
|
|
140
|
+
baof.isHide = calMethod.value === 'baoe2baof'
|
|
122
141
|
}
|
|
123
|
-
return insData
|
|
142
|
+
return insData
|
|
124
143
|
}
|
|
125
144
|
|
|
126
145
|
/**
|
|
@@ -136,12 +155,12 @@ export function insuranceDataHandler(insData : IProdInsurance, productData : IPb
|
|
|
136
155
|
* @param {IPbProduct} productData 可不传。产品数据(单个)
|
|
137
156
|
* @returns {object} 元素的校验规则
|
|
138
157
|
*/
|
|
139
|
-
export function initElementValidateRules(ele
|
|
140
|
-
const mulInsOrderList = productData && productData.mulInsOrderList ? productData.mulInsOrderList : []
|
|
141
|
-
const insurance0 = mulInsOrderList && mulInsOrderList.length ? mulInsOrderList.find(ins => ins.key !== 'common') : null
|
|
142
|
-
const insurance0Name = insurance0 && insurance0.name ? insurance0.name : ''
|
|
158
|
+
export function initElementValidateRules(ele: IInsElement, productData?: IPbProduct): any {
|
|
159
|
+
const mulInsOrderList = productData && productData.mulInsOrderList ? productData.mulInsOrderList : []
|
|
160
|
+
const insurance0 = mulInsOrderList && mulInsOrderList.length ? mulInsOrderList.find(ins => ins.key !== 'common') : null
|
|
161
|
+
const insurance0Name = insurance0 && insurance0.name ? insurance0.name : ''
|
|
143
162
|
const isPensionInsurance = insurance0Name.match(/个养|个人养老/)
|
|
144
|
-
let rules
|
|
163
|
+
let rules: any = []
|
|
145
164
|
// 必填及正则校验
|
|
146
165
|
if (['cmCommonInput'].indexOf(String(ele.componentName)) !== -1) {
|
|
147
166
|
rules = [
|
|
@@ -150,33 +169,33 @@ export function initElementValidateRules(ele : IInsElement, productData? : IPbPr
|
|
|
150
169
|
message: `请输入${ele.labelName || ''}值`
|
|
151
170
|
},
|
|
152
171
|
{
|
|
153
|
-
pattern: ele.regExp ? eval(String(ele.regExp)) :
|
|
154
|
-
message: ele.regExpMessage || (ele.regExp ? '输入不合法,请重新输入' :
|
|
172
|
+
pattern: ele.regExp ? eval(String(ele.regExp)) : ele.key === 'num' ? /^\d*(\.\d{0,2})?$/ : /^\d*$/,
|
|
173
|
+
message: ele.regExpMessage || (ele.regExp ? '输入不合法,请重新输入' : ele.key === 'num' ? '请输入2位小数的数值' : '请输入整数值')
|
|
155
174
|
}
|
|
156
|
-
]
|
|
175
|
+
]
|
|
157
176
|
}
|
|
158
177
|
|
|
159
178
|
// 取值范围校验
|
|
160
|
-
let min
|
|
161
|
-
let max
|
|
179
|
+
let min: number = 0
|
|
180
|
+
let max: number = 0
|
|
162
181
|
if (ele.min && !isNaN(Number(ele.min))) {
|
|
163
|
-
min = ele.min
|
|
182
|
+
min = ele.min
|
|
164
183
|
}
|
|
165
184
|
if (ele.max && !isNaN(Number(ele.max))) {
|
|
166
|
-
max = ele.max
|
|
185
|
+
max = ele.max
|
|
167
186
|
}
|
|
168
187
|
if (min || max) {
|
|
169
|
-
let message = ''
|
|
188
|
+
let message = ''
|
|
170
189
|
if (min && max) {
|
|
171
|
-
message = `请输入${converUnit10000(min)}~${converUnit10000(max)}
|
|
190
|
+
message = `请输入${converUnit10000(min)}~${converUnit10000(max)}之间的数值`
|
|
172
191
|
} else if (!min) {
|
|
173
|
-
message = `请输入不大于${converUnit10000(max)}
|
|
192
|
+
message = `请输入不大于${converUnit10000(max)}的数值`
|
|
174
193
|
// 个人养老险,保费的最大金额限制,提示文案改成:“个人养老金,最高保费${max}元”。From hyw
|
|
175
194
|
if (isPensionInsurance && ele.key === 'baof') {
|
|
176
|
-
message = `个人养老金,最高保费${converUnit10000(max)}
|
|
195
|
+
message = `个人养老金,最高保费${converUnit10000(max)}元`
|
|
177
196
|
}
|
|
178
197
|
} else if (!max) {
|
|
179
|
-
message = `请输入不小于${converUnit10000(min)}
|
|
198
|
+
message = `请输入不小于${converUnit10000(min)}的数值`
|
|
180
199
|
}
|
|
181
200
|
rules.push({
|
|
182
201
|
type: 'number',
|
|
@@ -184,9 +203,9 @@ export function initElementValidateRules(ele : IInsElement, productData? : IPbPr
|
|
|
184
203
|
max: max || Infinity,
|
|
185
204
|
message: message,
|
|
186
205
|
validator(value, rule) {
|
|
187
|
-
return (value || value === 0) && value >= rule.min && value <= rule.max
|
|
206
|
+
return (value || value === 0) && value >= rule.min && value <= rule.max
|
|
188
207
|
}
|
|
189
|
-
})
|
|
208
|
+
})
|
|
190
209
|
}
|
|
191
210
|
|
|
192
211
|
// 取值倍数校验
|
|
@@ -195,37 +214,32 @@ export function initElementValidateRules(ele : IInsElement, productData? : IPbPr
|
|
|
195
214
|
multiple: ele.multi,
|
|
196
215
|
message: `请输入${ele.multi}倍数`,
|
|
197
216
|
validator(value, rule) {
|
|
198
|
-
return (value || value === 0) && !(value % rule.multiple)
|
|
217
|
+
return (value || value === 0) && !(value % rule.multiple)
|
|
199
218
|
}
|
|
200
|
-
})
|
|
219
|
+
})
|
|
201
220
|
}
|
|
202
221
|
|
|
203
222
|
// 取值对比
|
|
204
|
-
if (
|
|
205
|
-
ele.compareItem
|
|
206
|
-
ele.compareItem.
|
|
207
|
-
|
|
208
|
-
mulInsOrderList
|
|
209
|
-
) {
|
|
210
|
-
const item1 = ele.compareItem[0].match(/(.{1,})\.(.{1,})/);
|
|
211
|
-
const item2 = ele.compareItem[2].match(/(.{1,})\.(.{1,})/);
|
|
212
|
-
let insurance1, insurance2, insTitle1, insTitle2, itemValue1, itemValue2;
|
|
223
|
+
if (ele.compareItem && ele.compareItem.length && ele.compareItem.length >= 3 && mulInsOrderList) {
|
|
224
|
+
const item1 = ele.compareItem[0].match(/(.{1,})\.(.{1,})/)
|
|
225
|
+
const item2 = ele.compareItem[2].match(/(.{1,})\.(.{1,})/)
|
|
226
|
+
let insurance1, insurance2, insTitle1, insTitle2, itemValue1, itemValue2
|
|
213
227
|
if (item1 && item2) {
|
|
214
228
|
// 查找对应的险种
|
|
215
|
-
insurance1 = mulInsOrderList.find(ins => ins.key + '' === item1[1])
|
|
216
|
-
insurance2 = mulInsOrderList.find(ins => ins.key + '' === item2[1])
|
|
229
|
+
insurance1 = mulInsOrderList.find(ins => ins.key + '' === item1[1])
|
|
230
|
+
insurance2 = mulInsOrderList.find(ins => ins.key + '' === item2[1])
|
|
217
231
|
}
|
|
218
232
|
if (insurance1 && insurance1.eleOrderList) {
|
|
219
233
|
// 险种选中时,获取险种对应元素的值
|
|
220
|
-
insTitle1 = insurance1.eleOrderList.find(e => e.key === 'title')
|
|
234
|
+
insTitle1 = insurance1.eleOrderList.find(e => e.key === 'title')
|
|
221
235
|
if (insTitle1 && insTitle1.value) {
|
|
222
|
-
itemValue1 = insurance1.eleOrderList.find(e => e.key === item1[2])
|
|
236
|
+
itemValue1 = insurance1.eleOrderList.find(e => e.key === item1[2])
|
|
223
237
|
}
|
|
224
238
|
}
|
|
225
239
|
if (insurance2 && insurance2.eleOrderList) {
|
|
226
|
-
insTitle2 = insurance2.eleOrderList.find(e => e.key === 'title')
|
|
240
|
+
insTitle2 = insurance2.eleOrderList.find(e => e.key === 'title')
|
|
227
241
|
if (insTitle2 && insTitle2.value) {
|
|
228
|
-
itemValue2 = insurance2.eleOrderList.find(e => e.key === item2[2])
|
|
242
|
+
itemValue2 = insurance2.eleOrderList.find(e => e.key === item2[2])
|
|
229
243
|
}
|
|
230
244
|
}
|
|
231
245
|
if (itemValue1 && itemValue1.value && itemValue2 && itemValue2.value && ele.compareItem[1]) {
|
|
@@ -235,32 +249,32 @@ export function initElementValidateRules(ele : IInsElement, productData? : IPbPr
|
|
|
235
249
|
operator: ele.compareItem[1],
|
|
236
250
|
message: ele.compareItem[3] || '数据输入有误',
|
|
237
251
|
validator(value, rule) {
|
|
238
|
-
let bool = false
|
|
239
|
-
let value1 = rule.value1
|
|
240
|
-
let value2 = rule.value2
|
|
241
|
-
let operator = rule.operator
|
|
252
|
+
let bool = false
|
|
253
|
+
let value1 = rule.value1
|
|
254
|
+
let value2 = rule.value2
|
|
255
|
+
let operator = rule.operator
|
|
242
256
|
switch (operator) {
|
|
243
257
|
case '<=':
|
|
244
|
-
bool = value1 <= value2
|
|
245
|
-
break
|
|
258
|
+
bool = value1 <= value2
|
|
259
|
+
break
|
|
246
260
|
case '>=':
|
|
247
|
-
bool = value1 >= value2
|
|
248
|
-
break
|
|
261
|
+
bool = value1 >= value2
|
|
262
|
+
break
|
|
249
263
|
case '<':
|
|
250
|
-
bool = value1 < value2
|
|
251
|
-
break
|
|
264
|
+
bool = value1 < value2
|
|
265
|
+
break
|
|
252
266
|
case '>':
|
|
253
|
-
bool = value1 > value2
|
|
254
|
-
break
|
|
267
|
+
bool = value1 > value2
|
|
268
|
+
break
|
|
255
269
|
default:
|
|
256
|
-
bool = value1 <= value2
|
|
270
|
+
bool = value1 <= value2
|
|
257
271
|
}
|
|
258
|
-
return bool
|
|
272
|
+
return bool
|
|
259
273
|
}
|
|
260
|
-
})
|
|
274
|
+
})
|
|
261
275
|
}
|
|
262
276
|
}
|
|
263
|
-
return rules
|
|
277
|
+
return rules
|
|
264
278
|
}
|
|
265
279
|
|
|
266
280
|
/**
|
|
@@ -278,22 +292,22 @@ export function restrictElementsInInsurance({
|
|
|
278
292
|
personOrderList,
|
|
279
293
|
insData,
|
|
280
294
|
eleData
|
|
281
|
-
}
|
|
282
|
-
personOrderList: IPbPerson
|
|
283
|
-
insData: IProdInsurance
|
|
284
|
-
eleData: IInsElement
|
|
285
|
-
})
|
|
286
|
-
let errorMsg
|
|
295
|
+
}: {
|
|
296
|
+
personOrderList: IPbPerson[];
|
|
297
|
+
insData: IProdInsurance;
|
|
298
|
+
eleData: IInsElement;
|
|
299
|
+
}): string {
|
|
300
|
+
let errorMsg: string = ''
|
|
287
301
|
if (insData && eleData && eleData.restrictions) {
|
|
288
|
-
const insuredInfo
|
|
289
|
-
const insuranceInfo = convertEleOrderListToObj(insData)
|
|
302
|
+
const insuredInfo: IPbPerson | undefined = personOrderList && personOrderList.find(p => p.key === 'insuredInfo')
|
|
303
|
+
const insuranceInfo = convertEleOrderListToObj(insData)
|
|
290
304
|
let insVerifyData
|
|
291
305
|
if (insuredInfo) {
|
|
292
306
|
insVerifyData = {
|
|
293
307
|
sex: insuredInfo.sex,
|
|
294
308
|
age: insuredInfo.age,
|
|
295
309
|
...insuranceInfo
|
|
296
|
-
}
|
|
310
|
+
}
|
|
297
311
|
}
|
|
298
312
|
// 过滤符合当前数据的限制条件
|
|
299
313
|
// 如:0-10岁 -> 保险期间10、20年 -> 交费期间15、30年
|
|
@@ -301,46 +315,42 @@ export function restrictElementsInInsurance({
|
|
|
301
315
|
return Object.keys(restrict).every(ele => {
|
|
302
316
|
return (
|
|
303
317
|
// 当前字段是age,且被保人年龄在指定范围
|
|
304
|
-
(ele === 'age' &&
|
|
305
|
-
insVerifyData[ele] &&
|
|
306
|
-
insVerifyData[ele] >= restrict[ele][0] &&
|
|
307
|
-
insVerifyData[ele] <= restrict[ele][1]) ||
|
|
318
|
+
(ele === 'age' && insVerifyData[ele] && insVerifyData[ele] >= restrict[ele][0] && insVerifyData[ele] <= restrict[ele][1]) ||
|
|
308
319
|
// 当前字段是目标元素
|
|
309
320
|
ele === eleData.key ||
|
|
310
321
|
// 当前约束值是字符或者数字,且数据中有该值
|
|
311
|
-
((restrict[ele].constructor === String || restrict[ele].constructor === Number) &&
|
|
312
|
-
insVerifyData[ele] == restrict[ele]) ||
|
|
322
|
+
((restrict[ele].constructor === String || restrict[ele].constructor === Number) && insVerifyData[ele] == restrict[ele]) ||
|
|
313
323
|
// 当前约束值是数组,且数据中有一项值包含在数组中
|
|
314
324
|
(restrict[ele].constructor === Array && restrict[ele].find(r => r == insVerifyData[ele]))
|
|
315
|
-
)
|
|
316
|
-
})
|
|
317
|
-
})
|
|
325
|
+
)
|
|
326
|
+
})
|
|
327
|
+
})
|
|
318
328
|
|
|
319
|
-
let valRange = eleRestricts && eleRestricts[0] && eleRestricts[0][eleData.key]
|
|
329
|
+
let valRange = eleRestricts && eleRestricts[0] && eleRestricts[0][eleData.key]
|
|
320
330
|
if (valRange && valRange.length) {
|
|
321
331
|
if (eleData.opts) {
|
|
322
332
|
eleData.opts.forEach(o => {
|
|
323
333
|
if (!valRange.find(v => v.val === o.val)) {
|
|
324
|
-
o.isInvalid = true
|
|
334
|
+
o.isInvalid = true
|
|
325
335
|
}
|
|
326
|
-
})
|
|
336
|
+
})
|
|
327
337
|
if (!eleData.opts.find(opt => !opt.isHide && !opt.isDisabled && !opt.isInvalid && opt.val == eleData.value)) {
|
|
328
|
-
let opt = eleData.opts.find(o => o.val == eleData.value)
|
|
329
|
-
errorMsg = `当前条件下, 没有${eleData.labelName}${opt ? opt.desc : ''}选项,
|
|
338
|
+
let opt = eleData.opts.find(o => o.val == eleData.value)
|
|
339
|
+
errorMsg = `当前条件下, 没有${eleData.labelName}${opt ? opt.desc : ''}选项, 已自动切换`
|
|
330
340
|
}
|
|
331
341
|
} else if (valRange[0] || valRange[1]) {
|
|
332
|
-
let rangeMsg = `当前条件下, ${insData.name}的${eleData.labelName}
|
|
333
|
-
let minMsg = `不得小于${converUnit10000(valRange[0])}
|
|
334
|
-
let maxMsg = `不得大于${converUnit10000(valRange[1])}
|
|
342
|
+
let rangeMsg = `当前条件下, ${insData.name}的${eleData.labelName}值`
|
|
343
|
+
let minMsg = `不得小于${converUnit10000(valRange[0])}`
|
|
344
|
+
let maxMsg = `不得大于${converUnit10000(valRange[1])}`
|
|
335
345
|
if (valRange[0] && valRange[1] && (eleData.value < valRange[0] || eleData.value > valRange[1])) {
|
|
336
|
-
errorMsg = `${rangeMsg}${minMsg}且${maxMsg}
|
|
346
|
+
errorMsg = `${rangeMsg}${minMsg}且${maxMsg}`
|
|
337
347
|
} else if (valRange[0] && eleData.value < valRange[0]) {
|
|
338
|
-
errorMsg = `${rangeMsg}${minMsg}
|
|
348
|
+
errorMsg = `${rangeMsg}${minMsg}`
|
|
339
349
|
} else if (valRange[1] && eleData.value > valRange[1]) {
|
|
340
|
-
errorMsg = `${rangeMsg}${maxMsg}
|
|
350
|
+
errorMsg = `${rangeMsg}${maxMsg}`
|
|
341
351
|
}
|
|
342
352
|
}
|
|
343
353
|
}
|
|
344
354
|
}
|
|
345
|
-
return errorMsg
|
|
355
|
+
return errorMsg
|
|
346
356
|
}
|