bxs-tools-ui 3.2.0-1 → 3.2.0-2

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.
@@ -1,463 +1,445 @@
1
- <!--仅用于绕过 eslint-loader 校验的错误信息:Parsing error: Invalid character-->
2
- <!--??以目前现象看,文档首字符不为 "<" 会报错??-->
3
- ## 一些辅助函数(BxsUtils)
4
- ### COMMON 函数
5
-
6
- <dl>
7
- <dt><a href="#convertEleOrderListToObj">convertEleOrderListToObj(obj)</a> ⇒ <code>any</code></dt>
8
- <dd><p><strong>将对象下的 eleOrderList 数组中的子元素下的 value,转换为 key-value 键值对</strong></p></dd>
9
- <dt><a href="#calcTotalBaof">calcTotalBaof(productGroupList)</a> ⇒ <code>number</code></dt>
10
- <dd><p><strong>对所有产品组中的已选产品的保费求和</strong></p></dd>
11
- <dt><a href="#getHuomianPeriodValue">getHuomianPeriodValue(val, pMinus, age)</a> ⇒ <code>string</code></dt>
12
- <dd><p><strong>转换交费期间的值。实际是表示豁免险与所关联的险种的交费期间值的关系</strong></p></dd>
13
- <dt><a href="#getNumberFromYear">getNumberFromYear(value, age)</a> ⇒ <code>number</code></dt>
14
- <dd><p><strong>将交费期间或者保险期间的值,转换成数值</strong></p></dd>
15
- <dt><a href="#converUnit10000">converUnit10000(value)</a> ⇒ <code>string</code></dt>
16
- <dd><p><strong>将大于10000且是10000的倍数的值,转换成单位为万的字符串</strong></p></dd>
17
- <dt><a href="#getAgeFromBirth">getAgeFromBirth(birth, cDate)</a> ⇒ <code>number</code></dt>
18
- <dd><p><strong>根据生日算年龄</strong></p></dd>
19
- </dl>
20
-
21
- <a name="convertEleOrderListToObj"></a>
22
-
23
- ## convertEleOrderListToObj(obj) ⇒ <code>any</code>
24
- <p><strong>将对象下的 eleOrderList 数组中的子元素下的 value,转换为 key-value 键值对</strong></p>
25
-
26
- **Kind**: global function
27
- **Date**: 2022-04-25
28
- **Author**: Lizhao <lz@winbaoxian.com>
29
-
30
- | Param | Type | Description |
31
- | --- | --- | --- |
32
- | obj | <code>any</code> | <p>必传。带eleOrderList数组的对象。如人员数据、产品数据</p> |
33
-
34
- **Example**
1
+ ## 辅助函数(BxsUtils)
2
+
3
+ 计划书、险种计算相关的工具函数集合。
4
+
5
+ ---
6
+
7
+ ### 目录
8
+
9
+ - planbook/common — 通用工具函数
10
+ - convertEleOrderListToObj
11
+ - calcTotalBaof
12
+ - getHuomianPeriodValue
13
+ - getNumberFromYear
14
+ - converUnit10000
15
+ - getAgeFromBirth
16
+ - formatNumberToThousand
17
+ - textOverflowEllipsis
18
+ - planbook/person — 人员数据处理
19
+ - initPersonData
20
+ - personDataHandler
21
+ - convertPersonData
22
+ - planbook/product — 产品数据处理
23
+ - initProductData
24
+ - productDataHandler
25
+ - convertProductData
26
+ - clearAddAndTakeAndAdjustBaoeData
27
+ - planbook/insurance — 险种数据处理
28
+ - initInsuranceData
29
+ - insuranceDataHandler
30
+ - trade — 保费试算
31
+ - insureCalculate
32
+ - checkInsureCalculate
33
+
34
+ ---
35
+
36
+ ## planbook/common 通用工具函数
37
+
38
+ ### convertEleOrderListToObj
39
+
40
+ 将对象下的 `eleOrderList` 数组中子元素的 `value`,提取并转换为 key-value 键值对,与对象其余字段合并后返回。
41
+
42
+ **参数**
43
+
44
+ | 参数 | 类型 | 说明 |
45
+ | ----- | ----- | ------------------------------- |
46
+ | `obj` | `any` | 必传。带 `eleOrderList` 数组的对象,如人员数据、产品数据 |
47
+
48
+ **返回值**:`any` — 转换后的对象
49
+
50
+ **示例**
51
+
35
52
  ```javascript
36
53
  convertEleOrderListToObj({
37
- "key": "insuredInfo"
38
- "eleOrderList": [
39
- { "value": true, "key": "title" },
40
- { "value": 1, "key": "sex" },
41
- { "value": 30, "key": "age" },
42
- { "value": "2020/10/23", "key": "insuranceDay" }
43
- ]
44
- })
45
- // returns
46
- // {
47
- // "key": "insuredInfo",
48
- // "title": true,
49
- // "sex": 1,
50
- // "age": 30,
51
- // "insuranceDay": "2020/10/23",
52
- // }
54
+ key: 'insuredInfo',
55
+ eleOrderList: [
56
+ { value: true, key: 'title' },
57
+ { value: 1, key: 'sex' },
58
+ { value: 30, key: 'age' },
59
+ { value: '2020/10/23', key: 'insuranceDay' }
60
+ ]
61
+ })
62
+ // returns
63
+ // {
64
+ // key: 'insuredInfo',
65
+ // title: true,
66
+ // sex: 1,
67
+ // age: 30,
68
+ // insuranceDay: '2020/10/23',
69
+ // }
53
70
  ```
54
- <a name="calcTotalBaof"></a>
55
71
 
56
- ## calcTotalBaof(productGroupList) ⇒ <code>number</code>
57
- <p><strong>对所有产品组中的已选产品的保费求和</strong></p>
72
+ ---
58
73
 
59
- **Kind**: global function
60
- **Returns**: <code>number</code> - <p>总保费</p>
61
- **Date**: 2022-04-25
62
- **Author**: Lizhao <lz@winbaoxian.com>
74
+ ### calcTotalBaof
63
75
 
64
- | Param | Type | Description |
65
- | --- | --- | --- |
66
- | productGroupList | <code>IPbProductGroup</code> | <p>所有产品组数据</p> |
76
+ 对所有产品组中已选产品的保费求和。隐藏的产品组(`isHide: true`)和隐藏的产品(`hide: true`)不计入。
67
77
 
68
- <a name="getHuomianPeriodValue"></a>
78
+ **参数**
69
79
 
70
- ## getHuomianPeriodValue(val, pMinus, age) ⇒ <code>string</code>
71
- <p><strong>转换交费期间的值。实际是表示豁免险与所关联的险种的交费期间值的关系</strong></p>
80
+ | 参数 | 类型 | 说明 |
81
+ | ------------------ | ------------------- | ---------------- |
82
+ | `productGroupList` | `IPbProductGroup[]` | 必传。所有产品组数据 |
72
83
 
73
- **Kind**: global function
74
- **Returns**: <code>string</code> - <p>交费期间</p>
75
- **Date**: 2022-04-25
76
- **Author**: Lizhao <lz@winbaoxian.com>
84
+ **返回值**:`number` — 总保费,保留两位小数
77
85
 
78
- | Param | Type | Default | Description |
79
- | --- | --- | --- | --- |
80
- | val | <code>string</code> | | <p>必传。交费期间的值</p> |
81
- | pMinus | <code>number</code> | <code>0</code> | <p>0 可不传。指定要减去的值</p> |
82
- | age | <code>number</code> | <code>0</code> | <p>0 可不传。所附加的人员的年龄</p> |
86
+ ---
83
87
 
84
- **Example**
85
- ```javascript
86
- getHuomianPeriodValue('a999')
87
- // returns a999
88
+ ### getHuomianPeriodValue
88
89
 
89
- getHuomianPeriodValue('b10', 1)
90
- // returns b9
90
+ 转换豁免险的交费期间值,表示豁免险与其关联险种之间的交费期间关系。
91
91
 
92
- getHuomianPeriodValue('a60', 1, 30)
93
- // returns b29
94
- ```
95
- <a name="getNumberFromYear"></a>
92
+ 转换规则:
93
+ - `a999`(终身)/ `a1000`(趸交)直接返回原值
94
+ - `b` 开头(年数):年数 - `pMinus`
95
+ - `a` 开头(至X岁):保额年龄 - 人员年龄 - `pMinus`,转为 `b` 开头
96
+
97
+ **参数**
96
98
 
97
- ## getNumberFromYear(value, age) ⇒ <code>number</code>
98
- <p><strong>将交费期间或者保险期间的值,转换成数值</strong></p>
99
+ | 参数 | 类型 | 默认值 | 说明 |
100
+ | -------- | -------- | ------ | -------------------------- |
101
+ | `val` | `string` | `''` | 必传。交费期间的值 |
102
+ | `pMinus` | `number` | `0` | 可不传。指定要减去的值 |
103
+ | `age` | `number` | `0` | 可不传。所附加人员的年龄 |
99
104
 
100
- **Kind**: global function
101
- **Returns**: <code>number</code> - <p>数值</p>
102
- **Date**: 2022-04-25
103
- **Author**: Lizhao <lz@winbaoxian.com>
105
+ **返回值**:`string` — 转换后的交费期间值
104
106
 
105
- | Param | Type | Default | Description |
106
- | --- | --- | --- | --- |
107
- | value | <code>string</code> | | <p>必传。需要转换的值</p> |
108
- | age | <code>number</code> | <code>0</code> | <p>0 可不传。被保人年龄</p> |
107
+ **示例**
109
108
 
110
- **Example**
111
109
  ```javascript
112
- getNumberFromYear('a1000')
113
- // returns 1
110
+ getHuomianPeriodValue('a999') // returns 'a999'
111
+ getHuomianPeriodValue('b10', 1) // returns 'b9'
112
+ getHuomianPeriodValue('a60', 1, 30) // returns 'b29'
113
+ ```
114
+
115
+ ---
116
+
117
+ ### getNumberFromYear
118
+
119
+ 将交费期间或保险期间的值转换成数值。
120
+
121
+ 转换规则:
122
+ - `a1000`(趸交)返回 `1`
123
+ - `a` 开头(至X岁):X - `age`
124
+ - `b` 开头(年数):提取数字部分
125
+ - 数字类型直接返回
126
+
127
+ **参数**
128
+
129
+ | 参数 | 类型 | 默认值 | 说明 |
130
+ | ------- | --------------- | ------ | ---------------------- |
131
+ | `value` | `string\|number` | | 必传。需要转换的值 |
132
+ | `age` | `number` | `0` | 可不传。被保人年龄 |
133
+
134
+ **返回值**:`number`
114
135
 
115
- getNumberFromYear('a10', 1)
116
- // returns 9
136
+ **示例**
117
137
 
118
- getNumberFromYear('b10')
119
- // returns 10
138
+ ```javascript
139
+ getNumberFromYear('a1000') // returns 1
140
+ getNumberFromYear('a10', 1) // returns 9
141
+ getNumberFromYear('b10') // returns 10
120
142
  ```
121
- <a name="converUnit10000"></a>
122
143
 
123
- ## converUnit10000(value) ⇒ <code>string</code>
124
- <p><strong>将大于10000且是10000的倍数的值,转换成单位为万的字符串</strong></p>
144
+ ---
145
+
146
+ ### converUnit10000
147
+
148
+ 将大于 10000 且是 10000 的倍数的值,转换成单位为"万"的字符串;否则返回原数值。
149
+
150
+ **参数**
125
151
 
126
- **Kind**: global function
127
- **Returns**: <code>string</code> - <p>单位为万的字符串</p>
128
- **Date**: 2022-04-25
129
- **Author**: Lizhao <lz@winbaoxian.com>
152
+ | 参数 | 类型 | 说明 |
153
+ | ------- | -------- | ------ |
154
+ | `value` | `number` | 必传 |
130
155
 
131
- | Param | Type | Description |
132
- | --- | --- | --- |
133
- | value | <code>number</code> | <p>必传</p> |
156
+ **返回值**:`number | string` — 满足条件时返回带"万"的字符串,否则返回原数值
157
+
158
+ **示例**
134
159
 
135
- **Example**
136
160
  ```javascript
137
- converUnit10000(1000)
138
- // returns 1000
161
+ converUnit10000(1000) // returns 1000
162
+ converUnit10000(2000000) // returns '200万'
163
+ converUnit10000(2000001) // returns 2000001
164
+ ```
165
+
166
+ ---
167
+
168
+ ### getAgeFromBirth
139
169
 
140
- converUnit10000(2000000)
141
- // returns 200万
170
+ 根据生日计算年龄。
142
171
 
143
- converUnit10000(2000001)
144
- // returns 2000001
172
+ **参数**
173
+
174
+ | 参数 | 类型 | 说明 |
175
+ | ------- | -------------------------- | ---------------------------------- |
176
+ | `birth` | `Date \| number \| string` | 必传。时间字符串或时间戳 |
177
+ | `cDate` | `Date \| number \| string` | 可不传。指定时间,不传默认为当前时间 |
178
+
179
+ **返回值**:`number` — 年龄
180
+
181
+ **示例**
182
+
183
+ ```javascript
184
+ getAgeFromBirth('2000-01-01') // returns 22(取决于当前日期)
185
+ getAgeFromBirth('2000-01-10', '2022-01-10') // returns 22
186
+ getAgeFromBirth('2000-01-10', '2022-01-09') // returns 21
145
187
  ```
146
- <a name="getAgeFromBirth"></a>
147
188
 
148
- ## getAgeFromBirth(birth, cDate) ⇒ <code>number</code>
149
- <p><strong>根据生日算年龄</strong></p>
189
+ ---
190
+
191
+ ### formatNumberToThousand
192
+
193
+ 将数值转换为千分位格式的字符串。
194
+
195
+ **参数**
150
196
 
151
- **Kind**: global function
152
- **Returns**: <code>number</code> - <p>年龄</p>
153
- **Date**: 2022-04-25
154
- **Author**: Lizhao <lz@winbaoxian.com>
197
+ | 参数 | 类型 | 说明 |
198
+ | ---- | --------------- | ---------------------- |
199
+ | `n` | `number\|string` | 必传。需要转换的数值 |
155
200
 
156
- | Param | Type | Description |
157
- | --- | --- | --- |
158
- | birth | <code>Date</code> \| <code>timestamp</code> \| <code>dateStr</code> | <p>必传。时间字符串或时间翟</p> |
159
- | cDate | <code>Date</code> \| <code>timestamp</code> \| <code>dateStr</code> | <p>可不传。指定时间,不传默认为当前时间</p> |
201
+ **返回值**:`string` — 千分位字符串;空值返回空字符串;非数值返回原值
202
+
203
+ **示例**
160
204
 
161
- **Example**
162
205
  ```javascript
163
- getAgeFromBirth('2000-01-01')
164
- // returns 22
206
+ formatNumberToThousand(1234567) // returns '1,234,567'
207
+ formatNumberToThousand(0) // returns '0'
208
+ formatNumberToThousand(null) // returns ''
209
+ ```
210
+
211
+ ---
212
+
213
+ ### textOverflowEllipsis
214
+
215
+ 按视觉字符宽度截取字符串到指定长度,超出时末尾追加 `...`。
216
+
217
+ 计数规则:
218
+ - 中文字符(及非 `[0-9a-z.()]` 的字符)计为 1 个字符
219
+ - 数字、小写字母及 `.()` 计为 0.5 个字符
220
+
221
+ **参数**
222
+
223
+ | 参数 | 类型 | 说明 |
224
+ | ----- | -------- | ------------------------------ |
225
+ | `str` | `string` | 必传。需要截取的字符串 |
226
+ | `n` | `number` | 必传。最大字符数(需大于 2) |
165
227
 
166
- getAgeFromBirth('2000-01-10', '2022-01-10')
167
- // returns 22
228
+ **返回值**:`string` — 截取后的字符串
168
229
 
169
- getAgeFromBirth('2000-01-10', '2022-01-09')
170
- // returns 21
230
+ **示例**
231
+
232
+ ```javascript
233
+ textOverflowEllipsis('你好world', 4) // returns '你好...'
234
+ textOverflowEllipsis('hello world', 4) // returns 'hello world'
171
235
  ```
172
236
 
173
- ###
174
- ###
175
- ### INSURANCE 函数
176
-
177
- <dl>
178
- <dt><a href="#initInsuranceData">initInsuranceData(insData)</a> ⇒ <code>void</code></dt>
179
- <dd><p><strong>初始化险种数据</strong></p>
180
- <ul>
181
- <li>补充一些显示文案</li>
182
- <li>转换元素的选项字段</li>
183
- <li>预设一些后面可能用到的字段,如追加领取、减保领取</li>
184
- </ul></dd>
185
- <dt><a href="#insuranceDataHandler">insuranceDataHandler(insData, productData)</a> ⇒ <code>IProdInsurance</code></dt>
186
- <dd><p><strong>处理险种数据</strong></p>
187
- <ul>
188
- <li>初始化元素的校验规则</li>
189
- <li>处理保额保费互算、保额和计划的逻辑关系</li>
190
- </ul></dd>
191
- </dl>
192
-
193
- <a name="initInsuranceData"></a>
194
-
195
- ## initInsuranceData(insData) ⇒ <code>void</code>
196
- <p><strong>初始化险种数据</strong></p>
197
- <ul>
198
- <li>补充一些显示文案</li>
199
- <li>转换元素的选项字段</li>
200
- <li>预设一些后面可能用到的字段,如追加领取、减保领取</li>
201
- </ul>
202
-
203
- **Kind**: global function
204
- **Date**: 2022-04-26
205
- **Author**: Lizhao <lz@winbaoxian.com>
206
-
207
- | Param | Type | Description |
208
- | --- | --- | --- |
209
- | insData | <code>IProdInsurance</code> | <p>必传。险种数据(单个)</p> |
210
-
211
- <a name="insuranceDataHandler"></a>
212
-
213
- ## insuranceDataHandler(insData, productData) ⇒ <code>IProdInsurance</code>
214
- <p><strong>处理险种数据</strong></p>
215
- <ul>
216
- <li>初始化元素的校验规则</li>
217
- <li>处理保额保费互算、保额和计划的逻辑关系</li>
218
- </ul>
219
-
220
- **Kind**: global function
221
- **Returns**: <code>IProdInsurance</code> - <p>险种数据(单个)</p>
222
- **Date**: 2022-04-26
223
- **Author**: Lizhao <lz@winbaoxian.com>
224
-
225
- | Param | Type | Description |
226
- | --- | --- | --- |
227
- | insData | <code>IProdInsurance</code> | <p>必传。险种数据(单个)</p> |
228
- | productData | <code>IPbProduct</code> | <p>必传。产品数据(单个)</p> |
229
-
230
-
231
- ###
232
- ###
233
- ### PERSON 函数
234
-
235
- <dl>
236
- <dt><a href="#initPersonData">initPersonData(inputData, verifyData)</a> ⇒ <code>void</code></dt>
237
- <dd><p><strong>初始化人员数据</strong></p>
238
- <ul>
239
- <li>增加一些元素。如:投被保人是否为同一人、生日</li>
240
- <li>补充一些文案。如:占位符</li>
241
- <li>补充、转换一些必要数据。如:所用的模块名称、年龄的选项、可能用到的字段</li>
242
- <li>计算被保人年龄范围,即计划书年龄范围</li>
243
- </ul></dd>
244
- <dt><a href="#personDataHandler">personDataHandler(allPersonsData)</a> ⇒ <code>IPbPersons</code></dt>
245
- <dd><p><strong>处理人员数据</strong></p>
246
- <ul>
247
- <li>年龄、生日的联动</li>
248
- <li>关于被保人、投保人是否是同一人的处理</li>
249
- <li>被保人、投保人、投保人配偶之间的逻辑</li>
250
- </ul></dd>
251
- <dt><a href="#convertPersonData">convertPersonData(allPersonsData, type)</a> ⇒ <code>any</code></dt>
252
- <dd><p><strong>转换人员数据</strong></p></dd>
253
- </dl>
254
-
255
- <a name="initPersonData"></a>
256
-
257
- ## initPersonData(inputData, verifyData) ⇒ <code>void</code>
258
- <p><strong>初始化人员数据</strong></p>
259
- <ul>
260
- <li>增加一些元素。如:投被保人是否为同一人、生日</li>
261
- <li>补充一些文案。如:占位符</li>
262
- <li>补充、转换一些必要数据。如:所用的模块名称、年龄的选项、可能用到的字段</li>
263
- <li>计算被保人年龄范围,即计划书年龄范围</li>
264
- </ul>
265
-
266
- **Kind**: global function
267
- **Date**: 2022-04-26
268
- **Author**: Lizhao <lz@winbaoxian.com>
269
-
270
- | Param | Type | Description |
271
- | --- | --- | --- |
272
- | inputData | <code>IPbInput</code> | <p>必传。计划书数据</p> |
273
- | verifyData | <code>object</code> | <p>必传。计划书校验条件</p> |
274
-
275
- <a name="personDataHandler"></a>
276
-
277
- ## personDataHandler(allPersonsData) ⇒ <code>IPbPersons</code>
278
- <p><strong>处理人员数据</strong></p>
279
- <ul>
280
- <li>年龄、生日的联动</li>
281
- <li>关于被保人、投保人是否是同一人的处理</li>
282
- <li>被保人、投保人、投保人配偶之间的逻辑</li>
283
- </ul>
284
-
285
- **Kind**: global function
286
- **Returns**: <code>IPbPersons</code> - <p>所有人员的数据</p>
287
- **Date**: 2022-04-26
288
- **Author**: Lizhao <lz@winbaoxian.com>
289
-
290
- | Param | Type | Description |
291
- | --- | --- | --- |
292
- | allPersonsData | <code>IPbPersons</code> | <p>必传。所有人员的数据</p> |
293
-
294
- <a name="convertPersonData"></a>
295
-
296
- ## convertPersonData(allPersonsData, type) ⇒ <code>any</code>
297
- <p><strong>转换人员数据</strong></p>
298
-
299
- **Kind**: global function
300
- **Returns**: <code>any</code> - <p>人员数据(单个或多个)</p>
301
- **Date**: 2022-04-26
302
- **Author**: Lizhao <lz@winbaoxian.com>
303
-
304
- | Param | Type | Default | Description |
305
- | --- | --- | --- | --- |
306
- | allPersonsData | <code>IPbPersons</code> | | <p>必传。所有人员数据</p> |
307
- | type | <code>null</code> \| <code>string</code> | <code></code> | <p>可不传。 不传,人员数据按原结构返回; 字符串,返回指定的人员数据; 数组,以数组形式,返回多个人员数据。</p> |
308
-
309
-
310
- ###
311
- ###
312
- ### PRODUCT 函数
313
-
314
- <dl>
315
- <dt><a href="#initProductData">initProductData(prodData)</a> ⇒ <code>IPbProduct</code></dt>
316
- <dd><p><strong>初始化产品数据(单个)</strong></p>
317
- <ul>
318
- <li>初始化调整保额数据</li>
319
- <li>初始化险种数据</li>
320
- </ul></dd>
321
- <dt><a href="#productDataHandler">productDataHandler(prodData, productVerifyData, personData)</a> ⇒ <code>IPbProduct</code></dt>
322
- <dd><p><strong>处理产品数据(单个)</strong></p>
323
- <ul>
324
- <li>提取通用信息</li>
325
- <li>处理险种数据</li>
326
- <li>根据被、投保人信息,处理险种状态。如:险种是否可选</li>
327
- <li>根据校验条件解析产品状态。如:险种是否可选、重新获取元素(下拉框、单选框)的可选项</li>
328
- <li>创建或更新组合险(多个险种组合成一个险种)</li>
329
- <li>根据被、投保人信息,判断该产品是否可以显示</li>
330
- </ul></dd>
331
- <dt><a href="#convertProductData">convertProductData(prodData)</a> ⇒ <code>IPbProduct</code></dt>
332
- <dd><p><strong>转换产品数据</strong></p>
333
- <ul>
334
- <li>转换通用信息的数据</li>
335
- <li>转换组合险的数据</li>
336
- <li>转换常规险种的数据。包括将 eleOrderList 数组下的 value 值,转换成 key-value 键值对</li>
337
- </ul></dd>
338
- <dt><a href="#clearAddAndTakeAndAdjustBaoeData">clearAddAndTakeAndAdjustBaoeData(productData)</a> ⇒ <code>IPbProduct</code></dt>
339
- <dd><p><strong>清空追加领取、减保领取、调整保额数据</strong></p></dd>
340
- </dl>
341
-
342
- <a name="initProductData"></a>
343
-
344
- ## initProductData(prodData) ⇒ <code>IPbProduct</code>
345
- <p><strong>初始化产品数据(单个)</strong></p>
346
- <ul>
347
- <li>初始化调整保额数据</li>
348
- <li>初始化险种数据</li>
349
- </ul>
350
-
351
- **Kind**: global function
352
- **Returns**: <code>IPbProduct</code> - <p>产品数据</p>
353
- **Date**: 2022-04-26
354
- **Author**: Lizhao <lz@winbaoxian.com>
355
-
356
- | Param | Type | Description |
357
- | --- | --- | --- |
358
- | prodData | <code>IPbProduct</code> | <p>必传。产品数据(单个)</p> |
359
-
360
- <a name="productDataHandler"></a>
361
-
362
- ## productDataHandler(prodData, productVerifyData, personData) ⇒ <code>IPbProduct</code>
363
- <p><strong>处理产品数据(单个)</strong></p>
364
- <ul>
365
- <li>提取通用信息</li>
366
- <li>处理险种数据</li>
367
- <li>根据被、投保人信息,处理险种状态。如:险种是否可选</li>
368
- <li>根据校验条件解析产品状态。如:险种是否可选、重新获取元素(下拉框、单选框)的可选项</li>
369
- <li>创建或更新组合险(多个险种组合成一个险种)</li>
370
- <li>根据被、投保人信息,判断该产品是否可以显示</li>
371
- </ul>
372
-
373
- **Kind**: global function
374
- **Returns**: <code>IPbProduct</code> - <p>产品数据(单个)</p>
375
- **Date**: 2022-04-26
376
- **Author**: Lizhao <lz@winbaoxian.com>
377
-
378
- | Param | Type | Description |
379
- | --- | --- | --- |
380
- | prodData | <code>IPbProduct</code> | <p>必传。产品数据(单个)</p> |
381
- | productVerifyData | <code>object</code> | <p>必传。产品校验条件(单个)</p> |
382
- | personData | <code>IPbPersons</code> | <p>必传。人员信息,包括被保人、投保人、投保人配偶</p> |
383
-
384
- <a name="convertProductData"></a>
385
-
386
- ## convertProductData(prodData) ⇒ <code>IPbProduct</code>
387
- <p><strong>转换产品数据</strong></p>
388
- <ul>
389
- <li>转换通用信息的数据</li>
390
- <li>转换组合险的数据</li>
391
- <li>转换常规险种的数据。包括将 eleOrderList 数组下的 value 值,转换成 key-value 键值对</li>
392
- </ul>
393
-
394
- **Kind**: global function
395
- **Returns**: <code>IPbProduct</code> - <p>产品数据(单个)</p>
396
- **Date**: 2022-04-26
397
- **Author**: Lizhao <lz@winbaoxian.com>
398
-
399
- | Param | Type | Description |
400
- | --- | --- | --- |
401
- | prodData | <code>IPbProduct</code> | <p>必传。产品数据(单个)</p> |
402
-
403
- <a name="clearAddAndTakeAndAdjustBaoeData"></a>
404
-
405
- ## clearAddAndTakeAndAdjustBaoeData(productData) ⇒ <code>IPbProduct</code>
406
- <p><strong>清空追加领取、减保领取、调整保额数据</strong></p>
407
-
408
- **Kind**: global function
409
- **Returns**: <code>IPbProduct</code> - <p>产品数据</p>
410
- **Date**: 2022-04-26
411
- **Author**: Lizhao <lz@winbaoxian.com>
412
-
413
- | Param | Type | Description |
414
- | --- | --- | --- |
415
- | productData | <code>IPbProduct</code> | <p>产品数据</p> |
416
-
417
-
418
- ###
419
- ###
420
- ### INSURECALCULATE 函数
421
-
422
- <dl>
423
- <dt><a href="#insureCalculate">insureCalculate(urlParams, postParams, planParams)</a> ⇒ <code>promise</code></dt>
424
- <dd><p>险种计算</p></dd>
425
- <dt><a href="#checkInsureCalculate">checkInsureCalculate(urlParams, postParams, planParams)</a> ⇒ <code>promise</code></dt>
426
- <dd><p><strong>检查险种计算</strong></p></dd>
427
- </dl>
428
-
429
- <a name="insureCalculate"></a>
430
-
431
- ## insureCalculate(urlParams, postParams, planParams) ⇒ <code>promise</code>
432
- <p>险种计算</p>
433
-
434
- **Kind**: global function
435
- **Returns**: <code>promise</code> - <p>试算结果</p>
436
- **Date**: 2022-04-26
437
- **Author**: watson
438
-
439
- | Param | Type | Description |
440
- | --- | --- | --- |
441
- | urlParams | <code>object</code> | <p>接口URL上面的参数,c端必传uuid</p> |
442
- | postParams | <code>object</code> | <p>试算用的参数,product_id, current_data 和 scenario: 'h5Widget'</p> |
443
- | planParams | <code>object</code> | <p>计划书初始化参数</p> |
444
-
445
- <a name="checkInsureCalculate"></a>
446
-
447
- ## checkInsureCalculate(urlParams, postParams, planParams) ⇒ <code>promise</code>
448
- <p><strong>检查险种计算</strong></p>
449
-
450
- **Kind**: global function
451
- **Returns**: <code>promise</code> - <p>试算结果</p>
452
- **Date**: 2022-04-26
453
- **Author**: watson
454
-
455
- | Param | Type | Description |
456
- | --- | --- | --- |
457
- | urlParams | <code>object</code> | <p>接口URL上面的参数,c端必传uuid</p> |
458
- | postParams | <code>object</code> | <p>试算用的参数,product_id, current_data 和 scenario: 'h5Widget'</p> |
459
- | planParams | <code>object</code> | <p>计划书初始化参数</p> |
460
-
461
-
462
- ###
463
- ###
237
+ ---
238
+
239
+ ## planbook/person 人员数据处理
240
+
241
+ ### initPersonData
242
+
243
+ 初始化人员数据(直接修改传入对象,无返回值)。
244
+
245
+ 主要处理内容:
246
+ - 增加元素:投被保人是否为同一人、生日
247
+ - 补充文案:占位符等
248
+ - 补充、转换必要数据:模块名称、年龄选项、可能用到的字段
249
+ - 计算被保人年龄范围(即计划书年龄范围)
250
+
251
+ **参数**
252
+
253
+ | 参数 | 类型 | 说明 |
254
+ | ------------- | ---------- | ------------------------ |
255
+ | `inputData` | `IPbInput` | 必传。计划书数据 |
256
+ | `verifyData` | `object` | 必传。计划书校验条件 |
257
+
258
+ **返回值**:`void`
259
+
260
+ ---
261
+
262
+ ### personDataHandler
263
+
264
+ 处理人员数据,处理后直接修改并返回传入对象。
265
+
266
+ 主要处理内容:
267
+ - 年龄、生日的联动
268
+ - 被保人与投保人是否为同一人的处理
269
+ - 被保人、投保人、投保人配偶之间的逻辑
270
+
271
+ **参数**
272
+
273
+ | 参数 | 类型 | 说明 |
274
+ | ----------------- | ------------- | ------------------ |
275
+ | `allPersonsData` | `IPbPersons` | 必传。所有人员数据 |
276
+
277
+ **返回值**:`IPbPersons` — 所有人员的数据
278
+
279
+ ---
280
+
281
+ ### convertPersonData
282
+
283
+ 转换人员数据,将各人员的 `eleOrderList` 下的值提取为 key-value 结构,便于直接读取字段。
284
+
285
+ **参数**
286
+
287
+ | 参数 | 类型 | 说明 |
288
+ | ----------------- | ----------------------- | -------------------------------------------------------------------------------------------- |
289
+ | `allPersonsData` | `IPbPersons` | 必传。所有人员数据 |
290
+ | `type` | `null\|string\|string[]` | 可不传。不传返回完整结构;字符串返回指定人员数据;数组以数组形式返回多个人员数据 |
291
+
292
+ **返回值**:`any` — 人员数据(单个或多个)
293
+
294
+ ---
295
+
296
+ ## planbook/product 产品数据处理
297
+
298
+ ### initProductData
299
+
300
+ 初始化产品数据(单个),直接修改并返回传入对象。
301
+
302
+ 主要处理内容:
303
+ - 初始化调整保额数据
304
+ - 初始化险种数据
305
+
306
+ **参数**
307
+
308
+ | 参数 | 类型 | 说明 |
309
+ | ---------- | ------------ | ------------------ |
310
+ | `prodData` | `IPbProduct` | 必传。产品数据(单个) |
311
+
312
+ **返回值**:`IPbProduct` — 产品数据
313
+
314
+ ---
315
+
316
+ ### productDataHandler
317
+
318
+ 处理产品数据(单个),异步函数。
319
+
320
+ 主要处理内容:
321
+ - 提取通用信息
322
+ - 处理险种数据
323
+ - 根据被、投保人信息处理险种状态(如:险种是否可选)
324
+ - 根据校验条件解析产品状态(如:重新获取元素的可选项)
325
+ - 创建或更新组合险
326
+ - 判断产品是否隐藏
327
+
328
+ **参数**
329
+
330
+ | 参数 | 类型 | 说明 |
331
+ | ----------------- | ------------- | -------------------------------------- |
332
+ | `prodData` | `IPbProduct` | 必传。产品数据(单个) |
333
+ | `prodVerifyData` | `object` | 必传。产品校验条件(单个) |
334
+ | `personData` | `IPbPersons` | 必传。人员信息,包括被保人、投保人、投保人配偶 |
335
+ | `parmas` | `object` | 可不传。补充参数,目前只有 `planbookId` |
336
+
337
+ **返回值**:`Promise<IPbProduct>` — 产品数据(单个)
338
+
339
+ ---
340
+
341
+ ### convertProductData
342
+
343
+ 转换产品数据,将产品下所有险种的 `eleOrderList` 提取为 key-value 结构。
344
+
345
+ 主要处理内容:
346
+ - 转换通用信息(`common`)
347
+ - 转换组合险数据
348
+ - 转换常规险种数据
349
+
350
+ **参数**
351
+
352
+ | 参数 | 类型 | 说明 |
353
+ | ---------- | ------------ | ------------------ |
354
+ | `prodData` | `IPbProduct` | 必传。产品数据(单个) |
355
+
356
+ **返回值**:`IPbProduct` — 转换后的产品数据(单个)
357
+
358
+ ---
359
+
360
+ ### clearAddAndTakeAndAdjustBaoeData
361
+
362
+ 清空产品下的追加领取、减保领取、调整保额数据。
363
+
364
+ **参数**
365
+
366
+ | 参数 | 类型 | 说明 |
367
+ | ------------- | ------------ | ------ |
368
+ | `productData` | `IPbProduct` | 产品数据 |
369
+
370
+ **返回值**:`IPbProduct` — 产品数据
371
+
372
+ ---
373
+
374
+ ## planbook/insurance 险种数据处理
375
+
376
+ ### initInsuranceData
377
+
378
+ 初始化险种数据(单个),直接修改传入对象,无返回值。
379
+
380
+ 主要处理内容:
381
+ - 补充显示文案(保额、保费等字段的占位符)
382
+ - 转换元素的选项字段(`optConf` → `opts`,补全 `isHide`、`isDisabled`、`isInvalid`)
383
+ - 预设后续可能用到的字段,如追加领取、减保领取数据结构
384
+
385
+ **参数**
386
+
387
+ | 参数 | 类型 | 说明 |
388
+ | --------- | ----------------- | ------------------ |
389
+ | `insData` | `IProdInsurance` | 必传。险种数据(单个) |
390
+
391
+ **返回值**:`void`
392
+
393
+ ---
394
+
395
+ ### insuranceDataHandler
396
+
397
+ 处理险种数据(单个),直接修改并返回传入对象。
398
+
399
+ 主要处理内容:
400
+ - 初始化元素的校验规则(必填、取值范围、倍数、比较)
401
+ - 处理保额保费互算逻辑(`calMethod` 元素控制 `baoe`/`baof` 的显隐)
402
+ - 处理保额与计划的显隐关系
403
+
404
+ **参数**
405
+
406
+ | 参数 | 类型 | 说明 |
407
+ | ------------- | ---------------- | ------------------ |
408
+ | `insData` | `IProdInsurance` | 必传。险种数据(单个) |
409
+ | `productData` | `IPbProduct` | 必传。产品数据(单个) |
410
+
411
+ **返回值**:`IProdInsurance` — 险种数据(单个)
412
+
413
+ ---
414
+
415
+ ## trade 保费试算
416
+
417
+ ### insureCalculate
418
+
419
+ 险种试算。
420
+
421
+ **参数**
422
+
423
+ | 参数 | 类型 | 说明 |
424
+ | ------------- | -------- | --------------------------------------------------------- |
425
+ | `urlParams` | `object` | 接口 URL 参数,c 端必传 `uuid` |
426
+ | `postParams` | `object` | 试算参数,包含 `product_id`、`current_data`、`scenario` |
427
+ | `planParams` | `object` | 计划书初始化参数(含 `detail_age`、`detail_sex` 等字段) |
428
+
429
+ **返回值**:`Promise` — 试算结果
430
+
431
+ ---
432
+
433
+ ### checkInsureCalculate
434
+
435
+ 检查险种试算。当 `postParams` 中缺少 `current_data` 时,会先请求获取后再进行二次试算。
436
+
437
+ **参数**
438
+
439
+ | 参数 | 类型 | 说明 |
440
+ | ------------- | -------- | --------------------------------------------------------- |
441
+ | `urlParams` | `object` | 接口 URL 参数,c 端必传 `uuid` |
442
+ | `postParams` | `object` | 试算参数,包含 `product_id`、`current_data`、`scenario` |
443
+ | `planParams` | `object` | 计划书初始化参数(含 `detail_age`、`detail_sex` 等字段) |
444
+
445
+ **返回值**:`Promise` — 试算结果;失败时 `Promise.reject`