bxs-tools-ui 3.3.2 → 3.4.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/es/add-and-take/index.js +1 -7969
- package/es/adjust-baoe/index.js +196 -8195
- package/es/index.css +1 -1
- package/es/index.js +8788 -43744
- package/es/insure-calculate/index.css +1 -1
- package/es/insure-calculate/index.js +1046 -36665
- package/es/person-info/index.css +1 -1
- package/es/person-info/index.js +83 -8042
- package/es/product-info/index.css +1 -1
- package/es/product-info/index.js +3005 -10614
- package/es/share-sheet/index.js +69 -8040
- package/es/utils/index.js +1250 -9334
- package/lib/add-and-take/index.js +4 -7973
- package/lib/adjust-baoe/index.js +195 -8195
- package/lib/index.css +1 -1
- package/lib/index.js +8717 -43678
- package/lib/insure-calculate/index.css +1 -1
- package/lib/insure-calculate/index.js +1034 -36662
- package/lib/person-info/index.css +1 -1
- package/lib/person-info/index.js +86 -8046
- package/lib/product-info/index.css +1 -1
- package/lib/product-info/index.js +2807 -10417
- package/lib/share-sheet/index.js +72 -8044
- package/lib/utils/index.js +1252 -9337
- package/package.json +5 -3
- package/packages/add-and-take/demo/index.vue +3 -6
- package/packages/adjust-baoe/index.vue +21 -34
- package/packages/adjust-baoe/readme.md +0 -1
- package/packages/bxs-utils/planbook/common.ts +5 -0
- package/packages/bxs-utils/planbook/insurance.ts +19 -0
- package/packages/bxs-utils/planbook/person.ts +3 -2
- package/packages/bxs-utils/planbook/product.ts +57 -164
- package/packages/bxs-utils/readme.md +3 -1
- package/packages/index.ts +1 -1
- package/packages/insure-calculate/demo/index.vue +1 -1
- package/packages/insure-calculate/index.vue +18 -17
- package/packages/person-info/demo/index.vue +2 -4
- package/packages/planbook-input/components/product-table.vue +3 -14
- package/packages/planbook-input/helper.js +16 -53
- package/packages/planbook-input/index.vue +20 -28
- package/packages/planbook-input/readme.md +3 -3
- package/packages/product-info/components/product-insurance-form.md +46 -0
- package/packages/product-info/components/product-insurance-form.vue +360 -0
- package/packages/product-info/demo/index.vue +4 -5
- package/packages/product-info/handler.js +307 -0
- package/packages/product-info/handler.md +26 -0
- package/packages/product-info/index.less +33 -0
- package/packages/product-info/index.vue +306 -534
- package/packages/product-info/readme.md +7 -2
- package/packages/share-sheet/constant.js +1 -2
- package/src/api/adjust-baoe.js +2 -2
- package/src/api/planbook.js +4 -20
- package/src/api/trade.js +31 -0
- package/src/components/common/common-group-title.less +54 -0
- package/src/components/common/common-group-title.md +34 -0
- package/src/components/common/common-group-title.vue +72 -0
- package/src/components/common/common-title.less +4 -0
- package/src/components/common/common-title.vue +8 -2
- package/src/components/profession-list/README.md +114 -0
- package/src/components/profession-list/constant.js +4 -0
- package/src/components/profession-list/handler.js +155 -0
- package/src/components/profession-list/index.less +182 -0
- package/src/components/profession-list/index.vue +443 -0
|
@@ -22,9 +22,6 @@ export default class PersonInfoDemo extends Vue {
|
|
|
22
22
|
verifyData = null
|
|
23
23
|
personData = null
|
|
24
24
|
created() {
|
|
25
|
-
if (!this.URL_PARAM.publicPbUuid) {
|
|
26
|
-
this.URL_PARAM.publicPbUuid = '5d6499946bbb47bb8f6a286e9d4eee77'
|
|
27
|
-
}
|
|
28
25
|
document.body.style.backgroundColor = '#f2f2f2'
|
|
29
26
|
this.getPlanbookData()
|
|
30
27
|
}
|
|
@@ -33,7 +30,8 @@ export default class PersonInfoDemo extends Vue {
|
|
|
33
30
|
}
|
|
34
31
|
getPlanbookData() {
|
|
35
32
|
getPlanbookData({
|
|
36
|
-
|
|
33
|
+
insuranceTypeId: this.URL_PARAM.planbookId || 13767,
|
|
34
|
+
resultUuid: this.URL_PARAM.uuid
|
|
37
35
|
})
|
|
38
36
|
.then(async (data: any) => {
|
|
39
37
|
await initPageData(data)
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
@confirm="confirm(productData)"
|
|
120
120
|
>
|
|
121
121
|
<ProductInfo
|
|
122
|
+
v-if="popupConf.prodVisible"
|
|
122
123
|
ref="productInfo"
|
|
123
124
|
:user="user"
|
|
124
125
|
:input-data="inputData"
|
|
@@ -183,7 +184,6 @@
|
|
|
183
184
|
:input-data="inputData"
|
|
184
185
|
:params="{
|
|
185
186
|
planbookId: params.planbookId,
|
|
186
|
-
publicPbUuid: params.publicPbUuid,
|
|
187
187
|
groupKey: params.groupKey,
|
|
188
188
|
productKey: params.productKey
|
|
189
189
|
}"
|
|
@@ -338,22 +338,11 @@ export default class BxtProductTable extends Vue {
|
|
|
338
338
|
}
|
|
339
339
|
|
|
340
340
|
fnShowAddAndTake(ins, name) {
|
|
341
|
-
if (ins.isGroup) {
|
|
342
|
-
return false
|
|
343
|
-
}
|
|
344
341
|
const { productData, params } = this
|
|
345
342
|
const hasInterest = params.interestProductList && params.interestProductList.includes(productData.key)
|
|
346
343
|
const isProductChecked = productData.hadChoice
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
if (ins.groupKey) {
|
|
350
|
-
const groupInsurance = productData.mulInsOrderList.find(item => item.key === ins.groupKey)
|
|
351
|
-
if (groupInsurance) {
|
|
352
|
-
titleEle = groupInsurance.eleOrderList.find(ele => ele.key === 'title')
|
|
353
|
-
const insuranceIdEle = groupInsurance.eleOrderList.find(ele => ele.key === 'insuranceId')
|
|
354
|
-
isInsuranceChecked = titleEle && titleEle.value && insuranceIdEle.value === ins.key
|
|
355
|
-
}
|
|
356
|
-
}
|
|
344
|
+
const titleEle = ins.eleOrderList.find(ele => ele.key === 'title')
|
|
345
|
+
const isInsuranceChecked = titleEle && titleEle.value
|
|
357
346
|
if (name === 'accountData') {
|
|
358
347
|
return hasInterest && isProductChecked && isInsuranceChecked && ins.accountData && ins.accountData.accountPart
|
|
359
348
|
}
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
clearAddAndTakeAndAdjustBaoeData,
|
|
13
13
|
convertProductData,
|
|
14
14
|
verifyProductRules,
|
|
15
|
-
convertEleOrderListToObj,
|
|
16
15
|
getExpressionParamMap
|
|
17
16
|
} from '../bxs-utils/index'
|
|
18
17
|
import { calcPlanbookProduct, uploadPlanBookResult, getUnderwriteEffectiveRules } from '../../src/api/index.js'
|
|
@@ -141,8 +140,6 @@ export function setPageDataBaseOnResult(inputData, exportData, policyInfo, optio
|
|
|
141
140
|
// 已生成的计划书取回的产品数据,赋值到初始化中的产品对象中
|
|
142
141
|
for (let k in prod) {
|
|
143
142
|
if (k == 'mulInsOrderList') {
|
|
144
|
-
// 清除组合险
|
|
145
|
-
prod.mulInsOrderList = prod.mulInsOrderList.filter(ins => !ins.isGroup)
|
|
146
143
|
// 已生成的计划书取回的险种数据,赋值到初始化中的险种对象中
|
|
147
144
|
prod.mulInsOrderList.forEach(ins => {
|
|
148
145
|
const eInsuranceData = eProductData.mulInsOrderList.find(m => m.key === ins.key)
|
|
@@ -240,7 +237,8 @@ export async function createdProductDataToCalc(inputData, options = {}) {
|
|
|
240
237
|
'shmInsData',
|
|
241
238
|
'totalBaof',
|
|
242
239
|
// 'calcResultExp', // 不能删除,后面有依赖
|
|
243
|
-
'revalidateFlag'
|
|
240
|
+
'revalidateFlag',
|
|
241
|
+
'deriveRequired'
|
|
244
242
|
].includes(k)
|
|
245
243
|
) {
|
|
246
244
|
tempIns[k] = ins[k]
|
|
@@ -260,7 +258,6 @@ export async function createdProductDataToCalc(inputData, options = {}) {
|
|
|
260
258
|
productData
|
|
261
259
|
})
|
|
262
260
|
const reqData = {
|
|
263
|
-
publicPbUuid: options.publicPbUuid || null,
|
|
264
261
|
insuranceTypeId: options.planbookId ? options.planbookId * 1 : null,
|
|
265
262
|
personData: {
|
|
266
263
|
personOrderList: convertPersonData(
|
|
@@ -318,20 +315,6 @@ export function receiveProductData(inputData, rProductData, options = {}) {
|
|
|
318
315
|
}
|
|
319
316
|
})
|
|
320
317
|
|
|
321
|
-
productData.mulInsOrderList.forEach(ins => {
|
|
322
|
-
if (ins.isGroup) {
|
|
323
|
-
return
|
|
324
|
-
}
|
|
325
|
-
const groupInsData = convertEleOrderListToObj(ins)
|
|
326
|
-
const insuranceId = groupInsData.isCheckbox ? groupInsData.insuranceId[0] : groupInsData.insuranceId
|
|
327
|
-
const checkedIns = productData.mulInsOrderList.find(i => i.key === insuranceId)
|
|
328
|
-
for (const key in checkedIns) {
|
|
329
|
-
if (['allowSamePerson', 'code', 'eleOrderList', 'groupKey', 'groupName', 'huomian', 'key', 'name'].indexOf(key) === -1) {
|
|
330
|
-
ins[key] = checkedIns[key]
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
})
|
|
334
|
-
|
|
335
318
|
const hasSomeCheckedIns = rProductData.mulInsOrderList.some(ins => ins.title)
|
|
336
319
|
productData.hadChoice = hasSomeCheckedIns
|
|
337
320
|
productData.totalBaof = hasSomeCheckedIns ? rProductData.totalBaof : null
|
|
@@ -499,12 +482,11 @@ export function genProductUniqueKeyWithNS(namespace, groupKey, productKey) {
|
|
|
499
482
|
}
|
|
500
483
|
|
|
501
484
|
export async function calcProductData(inputData, options, cb) {
|
|
502
|
-
const { planbookId,
|
|
485
|
+
const { planbookId, groupKey, productKey, isIgnoreError, productCalcNamespace } = options || {}
|
|
503
486
|
const productUniqueKey = genProductUniqueKeyWithNS(productCalcNamespace, groupKey, productKey)
|
|
504
487
|
try {
|
|
505
488
|
const params = await createdProductDataToCalc(inputData, {
|
|
506
489
|
planbookId,
|
|
507
|
-
publicPbUuid,
|
|
508
490
|
groupKey,
|
|
509
491
|
productKey
|
|
510
492
|
})
|
|
@@ -524,26 +506,16 @@ export async function calcProductData(inputData, options, cb) {
|
|
|
524
506
|
})
|
|
525
507
|
}
|
|
526
508
|
}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
509
|
+
const resData = await calcPlanbookProduct(
|
|
510
|
+
qs.stringify({
|
|
511
|
+
jd: params.jd,
|
|
512
|
+
signature: params.signature,
|
|
513
|
+
clientVersion: params.clientVersion,
|
|
514
|
+
isIos: params.isIos
|
|
531
515
|
})
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
jd: params.jd,
|
|
536
|
-
signature: params.signature,
|
|
537
|
-
clientVersion: params.clientVersion,
|
|
538
|
-
isIos: params.isIos
|
|
539
|
-
}),
|
|
540
|
-
{
|
|
541
|
-
isIgnoreLoading
|
|
542
|
-
}
|
|
543
|
-
).catch(err => {
|
|
544
|
-
return Promise.reject(err)
|
|
545
|
-
})
|
|
546
|
-
}
|
|
516
|
+
).catch(err => {
|
|
517
|
+
return Promise.reject(err)
|
|
518
|
+
})
|
|
547
519
|
|
|
548
520
|
if (!resData.success || !resData.data) {
|
|
549
521
|
if (resData.code === '002017') {
|
|
@@ -635,7 +607,7 @@ export async function calcProductData(inputData, options, cb) {
|
|
|
635
607
|
}
|
|
636
608
|
|
|
637
609
|
export async function doubleCalcProductData(inputData, verifyData, options = {}) {
|
|
638
|
-
const { user, planbookId,
|
|
610
|
+
const { user, planbookId, groupKey, productKey, isIgnoreError, productCalcNamespace, executeSource } = options
|
|
639
611
|
const personData = inputData && inputData.personData
|
|
640
612
|
const productGroupList = inputData && inputData.productGroupList ? inputData.productGroupList : []
|
|
641
613
|
const productGroup = productGroupList.find(g => g.key === groupKey)
|
|
@@ -656,7 +628,6 @@ export async function doubleCalcProductData(inputData, verifyData, options = {})
|
|
|
656
628
|
await calcProductData(inputData, {
|
|
657
629
|
user,
|
|
658
630
|
planbookId,
|
|
659
|
-
publicPbUuid,
|
|
660
631
|
groupKey,
|
|
661
632
|
productKey,
|
|
662
633
|
executeSource,
|
|
@@ -672,7 +643,6 @@ export async function doubleCalcProductData(inputData, verifyData, options = {})
|
|
|
672
643
|
await calcProductData(inputData, {
|
|
673
644
|
user,
|
|
674
645
|
planbookId,
|
|
675
|
-
publicPbUuid,
|
|
676
646
|
groupKey,
|
|
677
647
|
productKey,
|
|
678
648
|
executeSource,
|
|
@@ -684,7 +654,7 @@ export async function doubleCalcProductData(inputData, verifyData, options = {})
|
|
|
684
654
|
}
|
|
685
655
|
|
|
686
656
|
export function calcAllProductData(inputData, verifyData, options) {
|
|
687
|
-
const { planbookId,
|
|
657
|
+
const { planbookId, userUuid, appid, productCalcNamespace, executeSource } = options
|
|
688
658
|
const productGroupList = (_get(inputData, 'productGroupList') || []).filter(g => g.prodOrderList)
|
|
689
659
|
const prodOrderList = productGroupList
|
|
690
660
|
.map(g => g.prodOrderList)
|
|
@@ -708,7 +678,6 @@ export function calcAllProductData(inputData, verifyData, options) {
|
|
|
708
678
|
return doubleCalcProductData(inputData, verifyData, {
|
|
709
679
|
planbookId,
|
|
710
680
|
executeSource,
|
|
711
|
-
publicPbUuid,
|
|
712
681
|
groupKey: g.key,
|
|
713
682
|
productKey: p.key,
|
|
714
683
|
isIgnoreError: true,
|
|
@@ -801,13 +770,7 @@ export async function makePlanbook(inputData, options = {}) {
|
|
|
801
770
|
clientVersion: appVersion,
|
|
802
771
|
isIos
|
|
803
772
|
})
|
|
804
|
-
)
|
|
805
|
-
if (!success || !data) {
|
|
806
|
-
Toast(info || '生成计划书失败')
|
|
807
|
-
return Promise.reject()
|
|
808
|
-
}
|
|
809
|
-
return Promise.resolve(data)
|
|
810
|
-
})
|
|
773
|
+
)
|
|
811
774
|
}
|
|
812
775
|
|
|
813
776
|
export function convertInputDataToResultData(inputData, options = {}) {
|
|
@@ -930,7 +893,7 @@ export function cleanNeedlessResultData(resultData) {
|
|
|
930
893
|
// 获取产品险种标签;入参过滤与 findInsuranceTag().catch 与 compare3 fetchInsuranceSaleStatusMap 一致
|
|
931
894
|
export async function getProductInsuranceTags(inputData, options = {}, key = 'salesStatus') {
|
|
932
895
|
const product = getProductFromInputData(inputData, options)
|
|
933
|
-
const mulInsOrderList =
|
|
896
|
+
const mulInsOrderList = _get(product, 'mulInsOrderList') || []
|
|
934
897
|
|
|
935
898
|
if (!mulInsOrderList.length) {
|
|
936
899
|
return {}
|
|
@@ -2,20 +2,19 @@
|
|
|
2
2
|
<div class="bxt-planbook" v-if="inputData">
|
|
3
3
|
<div class="bxt-planbook-person">
|
|
4
4
|
<div class="bxt-person-container" v-if="inputData.personData">
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
</template>
|
|
5
|
+
<PersonInfo
|
|
6
|
+
v-for="person in inputData.personData.personOrderList"
|
|
7
|
+
:key="person.key"
|
|
8
|
+
:input-data="inputData"
|
|
9
|
+
:verify-data="planbookData && planbookData.verifyData"
|
|
10
|
+
:person-data="person"
|
|
11
|
+
:is-show-crm-person="true"
|
|
12
|
+
:params="{
|
|
13
|
+
brokerFlag: planbookData && planbookData.brokerFlag,
|
|
14
|
+
planbookId: planbookData && planbookData.pbId
|
|
15
|
+
}"
|
|
16
|
+
@change="changePersonInfo"
|
|
17
|
+
/>
|
|
19
18
|
</div>
|
|
20
19
|
</div>
|
|
21
20
|
<div class="bxt-planbook-product">
|
|
@@ -30,7 +29,6 @@
|
|
|
30
29
|
:verify-data="planbookData && planbookData.verifyData"
|
|
31
30
|
:params="{
|
|
32
31
|
planbookId: Number(URL_PARAM.planbookId),
|
|
33
|
-
publicPbUuid: URL_PARAM.publicPbUuid,
|
|
34
32
|
groupKey: g.key,
|
|
35
33
|
productKey: p.key,
|
|
36
34
|
interestProductList: planbookData && planbookData.interestProductList
|
|
@@ -95,12 +93,10 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
95
93
|
getPlanbookData() {
|
|
96
94
|
const self = this
|
|
97
95
|
const { URL_PARAM, userInfo } = self
|
|
98
|
-
const { planbookId,
|
|
96
|
+
const { planbookId, uuid } = URL_PARAM
|
|
99
97
|
return getPlanbookData({
|
|
100
98
|
insuranceTypeId: planbookId || 13767,
|
|
101
|
-
resultUuid: uuid
|
|
102
|
-
publicPbUuid
|
|
103
|
-
// publicPbUuid: '5d6499946bbb47bb8f6a286e9d4eee77'
|
|
99
|
+
resultUuid: uuid
|
|
104
100
|
})
|
|
105
101
|
.then(async (data: any) => {
|
|
106
102
|
await initPageData(data, {
|
|
@@ -117,7 +113,7 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
117
113
|
}
|
|
118
114
|
autoImportData() {
|
|
119
115
|
const { URL_PARAM, userInfo, exportData, verifyData, inputData } = this
|
|
120
|
-
const { planbookId
|
|
116
|
+
const { planbookId } = URL_PARAM
|
|
121
117
|
if (inputData) {
|
|
122
118
|
inputData.productGroupList
|
|
123
119
|
.filter((g: IPbProductGroup) => g.prodOrderList)
|
|
@@ -126,7 +122,6 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
126
122
|
doubleCalcProductData(inputData, verifyData, {
|
|
127
123
|
user: userInfo,
|
|
128
124
|
planbookId: Number(planbookId),
|
|
129
|
-
publicPbUuid,
|
|
130
125
|
groupKey: g.key,
|
|
131
126
|
productKey: p.key,
|
|
132
127
|
executeSource: exportData ? 'import' : 'init',
|
|
@@ -143,7 +138,7 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
143
138
|
}
|
|
144
139
|
changePersonInfo(person: IPbPerson, ele: any = {}) {
|
|
145
140
|
const { URL_PARAM, userInfo, exportData, verifyData, inputData } = this
|
|
146
|
-
const { planbookId
|
|
141
|
+
const { planbookId } = URL_PARAM
|
|
147
142
|
if (inputData) {
|
|
148
143
|
inputData.productGroupList
|
|
149
144
|
.filter((g: IPbProductGroup) => g.prodOrderList)
|
|
@@ -155,7 +150,6 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
155
150
|
user: userInfo,
|
|
156
151
|
planbookId: Number(planbookId),
|
|
157
152
|
executeSource: exportData ? 'import' : 'init',
|
|
158
|
-
publicPbUuid,
|
|
159
153
|
groupKey: g.key,
|
|
160
154
|
productKey: p.key,
|
|
161
155
|
isIgnoreError: true,
|
|
@@ -178,7 +172,7 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
178
172
|
confirmProduct(options: any, inst: any) {
|
|
179
173
|
const self = this
|
|
180
174
|
const { URL_PARAM, userInfo, inputData } = self
|
|
181
|
-
const { planbookId
|
|
175
|
+
const { planbookId } = URL_PARAM
|
|
182
176
|
const { groupKey, productKey } = options
|
|
183
177
|
inst.$refs.productInfo
|
|
184
178
|
.validate()
|
|
@@ -186,7 +180,6 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
186
180
|
return calcProductData(inputData, {
|
|
187
181
|
user: userInfo,
|
|
188
182
|
planbookId: Number(planbookId),
|
|
189
|
-
publicPbUuid,
|
|
190
183
|
groupKey,
|
|
191
184
|
productKey,
|
|
192
185
|
executeSource: 'confirm'
|
|
@@ -209,11 +202,10 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
209
202
|
return Promise.reject()
|
|
210
203
|
}
|
|
211
204
|
|
|
212
|
-
const { pbType, planbookId,
|
|
205
|
+
const { pbType, planbookId, userUuid } = URL_PARAM
|
|
213
206
|
const options: any = {
|
|
214
207
|
pbType,
|
|
215
208
|
insuranceTypeId: Number(planbookId) || null,
|
|
216
|
-
publicPbUuid,
|
|
217
209
|
totalBaof: calcTotalBaof(inputData?.productGroupList),
|
|
218
210
|
userUuid
|
|
219
211
|
}
|
|
@@ -223,7 +215,7 @@ export default class BxtPlanbookInput extends Vue {
|
|
|
223
215
|
theme: inputData?.theme,
|
|
224
216
|
uuid: data
|
|
225
217
|
})
|
|
226
|
-
location.href = `${PBF_HOSTNAME}/planBook/planBookResult/pages
|
|
218
|
+
location.href = `${PBF_HOSTNAME}/planBook/planBookResult/pages/planbkTemplatev2.html?${urlParam}`
|
|
227
219
|
}
|
|
228
220
|
})
|
|
229
221
|
}
|
|
@@ -175,9 +175,9 @@ import {
|
|
|
175
175
|
| ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------- |
|
|
176
176
|
| `initPageData(data)` | 初始化计划书数据,依次处理人员数据和所有产品数据 | `data`:接口返回的原始数据 | Promise\<data\> |
|
|
177
177
|
| `setPageDataBaseOnResult(data)` | 将已生成结果中的导出数据(`exportData`)回填到初始化数据中,用于「编辑已有计划书」场景 | `data`:同上 | data |
|
|
178
|
-
| `calcProductData(inputData, options)` | 对指定产品发起一次试算请求,并将结果写回 `inputData` | `inputData`;`options`:`{ planbookId,
|
|
178
|
+
| `calcProductData(inputData, options)` | 对指定产品发起一次试算请求,并将结果写回 `inputData` | `inputData`;`options`:`{ planbookId, groupKey, productKey, isIgnoreError }` | Promise |
|
|
179
179
|
| `doubleCalcProductData(inputData, verifyData, options)` | 先执行 `productDataHandler` 再执行 `calcProductData`,对存在 `revalidateFlag` 的产品自动执行二次试算 | 同上,额外需要 `verifyData` | Promise |
|
|
180
|
-
| `makePlanbook(inputData, options)` | 生成计划书 | `inputData`;`options`:`{ pbType, insuranceTypeId,
|
|
180
|
+
| `makePlanbook(inputData, options)` | 生成计划书 | `inputData`;`options`:`{ pbType, insuranceTypeId, totalBaof, userUuid }` | Object / null |
|
|
181
181
|
| `setupUnderwriteRuleToInputData(inputData)` | 将核保规则(underwrite rule)应用到 inputData,返回处理后的 inputData | `inputData` | Promise\<inputData\> |
|
|
182
|
-
| `createdProductDataToCalc(inputData, options)` | 生成试算接口的请求参数(jd + signature) | `inputData`;`options`:`{ planbookId,
|
|
182
|
+
| `createdProductDataToCalc(inputData, options)` | 生成试算接口的请求参数(jd + signature) | `inputData`;`options`:`{ planbookId, groupKey, productKey }` | Promise\<{ errorMsg, jd, signature }\> |
|
|
183
183
|
| `receiveProductData(inputData, rProductData, options)` | 将试算接口返回的产品数据写回 `inputData` | `inputData`;`rProductData`:接口返回的产品数据;`options` | productData |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# ProductInsuranceForm
|
|
2
|
+
|
|
3
|
+
## 说明
|
|
4
|
+
|
|
5
|
+
单个险种表单:渲染 `ins.eleOrderList`(标题 + 选中后的输入/单选/下拉等)。供 `ProductInfo` 在普通险与组合子险中复用。
|
|
6
|
+
|
|
7
|
+
非目标:组合险组头开关、组内互斥逻辑(由父组件处理)。
|
|
8
|
+
|
|
9
|
+
## Props
|
|
10
|
+
|
|
11
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
12
|
+
|------|------|------|--------|
|
|
13
|
+
| `ins` | 必传,险种数据 | Object | — |
|
|
14
|
+
| `ins-mode` | 场景:`normal` 普通险 / `groupSub` 组合子险(内部挂 `bxt-product-group-sub` 等 class,title 走 `title-change`) | String | `normal` |
|
|
15
|
+
| `product-key` | 产品 key,用于 DOM id | Number / String | `null` |
|
|
16
|
+
| `mul-ins-order-list` | 产品下全部险种(豁免标签等) | Array | `[]` |
|
|
17
|
+
| `person-data` | 人员信息(豁免提示) | Object | `{}` |
|
|
18
|
+
| `recommend-values` | 保额/保费推荐值 | Object | `{}` |
|
|
19
|
+
| `insurance-sale-status` | 停售状态映射 | Object | `{}` |
|
|
20
|
+
| `show-huomian-tips` | 是否展示豁免设置提示 | Boolean | `false` |
|
|
21
|
+
| `is-follow` | 是否与上一险种紧贴 | Boolean | `false` |
|
|
22
|
+
|
|
23
|
+
## Events
|
|
24
|
+
|
|
25
|
+
| 事件 | 说明 | 参数 |
|
|
26
|
+
|------|------|------|
|
|
27
|
+
| `change` | 元素变更(普通险含 title;组合子险 title 除外) | `{ insData, eleData }` |
|
|
28
|
+
| `title-change` | 仅 `insMode=groupSub`:标题勾选,由父做互斥后再 `onChange` | `{ insData, eleData }` |
|
|
29
|
+
| `openCrmPerson` | 点击豁免提示 | — |
|
|
30
|
+
|
|
31
|
+
## Methods
|
|
32
|
+
|
|
33
|
+
| 方法 | 说明 |
|
|
34
|
+
|------|------|
|
|
35
|
+
| `validate` | 调用内部 `van-form.validate` |
|
|
36
|
+
|
|
37
|
+
## 依赖
|
|
38
|
+
|
|
39
|
+
- Vant:`van-form` / `van-field` / `van-radio` 等
|
|
40
|
+
- `CommonTitle` / `CommonRadio` / `CommonSelect`
|
|
41
|
+
|
|
42
|
+
## 埋点清单
|
|
43
|
+
|
|
44
|
+
| 事件类型 | 触发节点 | statId | 备注 |
|
|
45
|
+
|----------|----------|--------|------|
|
|
46
|
+
| 点击 | 标题 / 单选 / 下拉 | `product_insurance_${ele.key}` | 声明式 `data-stat-id` |
|