hl-core 0.0.9-beta.2 → 0.0.9-beta.21
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/api/base.api.ts +684 -0
- package/api/index.ts +2 -620
- package/api/interceptors.ts +58 -14
- package/components/Button/Btn.vue +3 -3
- package/components/Complex/ContentBlock.vue +1 -1
- package/components/Complex/MessageBlock.vue +1 -1
- package/components/Complex/Page.vue +7 -1
- package/components/Complex/WhiteBlock.vue +7 -0
- package/components/Dialog/Dialog.vue +2 -2
- package/components/Dialog/FamilyDialog.vue +5 -5
- package/components/Form/FormBlock.vue +36 -29
- package/components/Form/FormSection.vue +2 -2
- package/components/Form/FormTextSection.vue +3 -3
- package/components/Form/FormToggle.vue +3 -3
- package/components/Form/ManagerAttachment.vue +55 -42
- package/components/Form/ProductConditionsBlock.vue +73 -20
- package/components/Input/EmptyFormField.vue +1 -1
- package/components/Input/FileInput.vue +8 -3
- package/components/Input/Monthpicker.vue +33 -0
- package/components/Input/PanelInput.vue +5 -1
- package/components/Input/RoundedEmptyField.vue +5 -0
- package/components/Input/RoundedSelect.vue +13 -0
- package/components/Layout/Drawer.vue +2 -1
- package/components/Layout/Header.vue +1 -1
- package/components/Layout/SettingsPanel.vue +5 -9
- package/components/List/ListEmpty.vue +1 -1
- package/components/Menu/MenuHover.vue +1 -1
- package/components/Menu/MenuNav.vue +1 -1
- package/components/Menu/MenuNavItem.vue +4 -4
- package/components/Pages/Anketa.vue +88 -47
- package/components/Pages/Auth.vue +21 -10
- package/components/Pages/ContragentForm.vue +505 -0
- package/components/Pages/Documents.vue +5 -5
- package/components/Pages/InvoiceInfo.vue +2 -2
- package/components/Pages/MemberForm.vue +215 -59
- package/components/Pages/ProductAgreement.vue +1 -3
- package/components/Pages/ProductConditions.vue +677 -151
- package/components/Panel/PanelHandler.vue +86 -21
- package/components/Panel/PanelSelectItem.vue +18 -3
- package/components/Utilities/IconBorder.vue +17 -0
- package/composables/axios.ts +1 -1
- package/composables/classes.ts +276 -11
- package/composables/constants.ts +43 -0
- package/composables/index.ts +40 -4
- package/composables/styles.ts +20 -10
- package/configs/i18n.ts +0 -2
- package/layouts/default.vue +5 -2
- package/layouts/full.vue +1 -1
- package/locales/ru.json +221 -6
- package/nuxt.config.ts +1 -1
- package/package.json +30 -39
- package/pages/500.vue +2 -2
- package/pages/Token.vue +1 -0
- package/plugins/helperFunctionsPlugins.ts +6 -7
- package/plugins/vuetifyPlugin.ts +2 -0
- package/store/data.store.ts +561 -226
- package/store/form.store.ts +11 -1
- package/store/member.store.ts +1 -1
- package/store/rules.ts +37 -2
- package/types/enum.ts +6 -0
- package/types/index.ts +145 -31
- package/components/Button/BtnIcon.vue +0 -47
- package/locales/kz.json +0 -585
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section class="flex flex-col gap-4 px-[10px]">
|
|
3
|
-
<v-form v-if="member" ref="vForm" @submit="submitForm" class="max-h-[
|
|
3
|
+
<v-form v-if="member" ref="vForm" @submit="submitForm" class="max-h-[80svh] overflow-y-scroll">
|
|
4
4
|
<div v-if="memberSetting && memberSetting.has === true && memberSetting.isMultiple === true" class="flex items-center mt-[14px] min-h-[54px]">
|
|
5
|
-
<div :class="[$
|
|
5
|
+
<div :class="[$styles.blueBgLight]" class="flex flex-wrap items-center gap-2 p-1 rounded-t-[8px] h-full">
|
|
6
6
|
<div
|
|
7
7
|
v-for="(each, index) of formStore[whichForm]"
|
|
8
8
|
:key="index"
|
|
9
9
|
class="pl-3 pr-1 py-1 rounded-[8px] cursor-pointer flex items-center"
|
|
10
|
-
:class="[Number(whichIndex) === index ? `${$
|
|
10
|
+
:class="[Number(whichIndex) === index ? `${$styles.blueBg} ${$styles.whiteText}` : '', $styles.textSimple]"
|
|
11
11
|
@click.self="index !== Number(whichIndex) ? selectMember(index) : null"
|
|
12
12
|
>
|
|
13
13
|
{{ `${$dataStore.menu.selectedItem.title} ${index + 1}` }}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
:disabled="!memberStore.canMemberDeleted(whichForm, index) && !memberStore.canMemberCleared(whichForm, index)"
|
|
18
18
|
variant="plain"
|
|
19
19
|
:color="Number(whichIndex) === index ? '#FFF' : '#A0B3D8'"
|
|
20
|
-
@click.prevent="memberStore.canMemberDeleted(whichForm, index) || memberStore.canMemberCleared(whichForm, index) ?
|
|
20
|
+
@click.prevent="memberStore.canMemberDeleted(whichForm, index) || memberStore.canMemberCleared(whichForm, index) ? openDeletionDialog(index) : null"
|
|
21
21
|
/>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
:title="$dataStore.t('form.personalData')"
|
|
28
28
|
:class="[memberSetting && memberSetting.has === true && memberSetting.isMultiple === true ? 'rounded-t-0 !mt-[-5px]' : 'mt-[14px]']"
|
|
29
29
|
>
|
|
30
|
+
<base-panel-input
|
|
31
|
+
v-if="$dataStore.isLifetrip"
|
|
32
|
+
v-model="member.signOfResidency"
|
|
33
|
+
:value="member.signOfResidency?.nameRu"
|
|
34
|
+
:label="$dataStore.t('form.signOfResidency')"
|
|
35
|
+
:readonly="isDisabled"
|
|
36
|
+
:clearable="!isDisabled"
|
|
37
|
+
:rules="residencyRule"
|
|
38
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
39
|
+
@append="openPanel($dataStore.t('form.signOfResidency'), [], 'signOfResidency', $dataStore.getResidents)"
|
|
40
|
+
/>
|
|
41
|
+
<base-form-toggle
|
|
42
|
+
v-if="$dataStore.isLifetrip && whichForm === 'insuredForm'"
|
|
43
|
+
v-model="member.isInsuredUnderage"
|
|
44
|
+
:title="$dataStore.t('isInsuredUnderage')"
|
|
45
|
+
:has-border="false"
|
|
46
|
+
/>
|
|
30
47
|
<base-form-input
|
|
31
48
|
v-model="member.phoneNumber"
|
|
32
49
|
:label="$dataStore.t('form.phoneNumber')"
|
|
@@ -44,7 +61,7 @@
|
|
|
44
61
|
:maska="$maska.iin"
|
|
45
62
|
:readonly="!!isDisabled || !!isIinPhoneDisabled"
|
|
46
63
|
:clearable="!isDisabled"
|
|
47
|
-
:append-inner-icon="
|
|
64
|
+
:append-inner-icon="hasMemberSearch ? 'mdi mdi-magnify' : ''"
|
|
48
65
|
@append="searchMember"
|
|
49
66
|
@input="onIinInput"
|
|
50
67
|
:rules="$rules.required.concat($rules.iinRight)"
|
|
@@ -64,12 +81,31 @@
|
|
|
64
81
|
:rules="$rules.required.concat($rules.cyrillic)"
|
|
65
82
|
/>
|
|
66
83
|
<base-form-input
|
|
84
|
+
v-if="hasMiddleName"
|
|
67
85
|
v-model.trim="member.middleName"
|
|
68
86
|
:readonly="isDisabled || isFromGBD"
|
|
69
87
|
:clearable="!isDisabled"
|
|
70
88
|
:label="$dataStore.t('form.middleName')"
|
|
71
89
|
:rules="$rules.cyrillicNonRequired"
|
|
72
90
|
/>
|
|
91
|
+
<base-form-input
|
|
92
|
+
v-if="$dataStore.isLifetrip"
|
|
93
|
+
v-model.trim="member.lastNameLat"
|
|
94
|
+
:readonly="isDisabled || isFromGBD"
|
|
95
|
+
:clearable="!isDisabled"
|
|
96
|
+
:label="$dataStore.t('form.lastNameLat')"
|
|
97
|
+
:rules="$rules.required.concat($rules.latin)"
|
|
98
|
+
:hint="$dataStore.t('labels.checkWithDoc')"
|
|
99
|
+
/>
|
|
100
|
+
<base-form-input
|
|
101
|
+
v-if="$dataStore.isLifetrip"
|
|
102
|
+
v-model.trim="member.firstNameLat"
|
|
103
|
+
:readonly="isDisabled || isFromGBD"
|
|
104
|
+
:clearable="!isDisabled"
|
|
105
|
+
:label="$dataStore.t('form.firstNameLat')"
|
|
106
|
+
:rules="$rules.required.concat($rules.latin)"
|
|
107
|
+
:hint="$dataStore.t('labels.checkWithDoc')"
|
|
108
|
+
/>
|
|
73
109
|
<base-form-input
|
|
74
110
|
v-model="member.birthDate"
|
|
75
111
|
:readonly="isDisabled || isFromGBD"
|
|
@@ -82,9 +118,9 @@
|
|
|
82
118
|
<base-form-input v-model="member.age" :label="$dataStore.t('form.age')" :readonly="true" :clearable="!isDisabled" :rules="ageRule" />
|
|
83
119
|
<base-panel-input
|
|
84
120
|
v-model="member.gender"
|
|
85
|
-
:value="member.gender
|
|
121
|
+
:value="member.gender?.nameRu"
|
|
86
122
|
:readonly="isDisabled || isFromGBD"
|
|
87
|
-
:clearable="!isDisabled"
|
|
123
|
+
:clearable="!isDisabled && !isFromGBD"
|
|
88
124
|
:label="$dataStore.t('form.gender')"
|
|
89
125
|
:rules="$rules.objectRequired"
|
|
90
126
|
append-inner-icon="mdi mdi-chevron-right"
|
|
@@ -93,7 +129,7 @@
|
|
|
93
129
|
<base-panel-input
|
|
94
130
|
v-if="hasFamilyStatus"
|
|
95
131
|
v-model="member.familyStatus"
|
|
96
|
-
:value="member.familyStatus
|
|
132
|
+
:value="member.familyStatus?.nameRu"
|
|
97
133
|
:readonly="isDisabled"
|
|
98
134
|
:clearable="!isDisabled"
|
|
99
135
|
:label="$dataStore.t('form.familyStatus')"
|
|
@@ -102,9 +138,9 @@
|
|
|
102
138
|
@append="openPanel($dataStore.t('form.familyStatus'), [], 'familyStatus', $dataStore.getFamilyStatuses)"
|
|
103
139
|
/>
|
|
104
140
|
<base-panel-input
|
|
105
|
-
v-if="
|
|
141
|
+
v-if="hasRelationDegree"
|
|
106
142
|
v-model="member.relationDegree"
|
|
107
|
-
:value="member.relationDegree
|
|
143
|
+
:value="member.relationDegree?.nameRu"
|
|
108
144
|
:readonly="isDisabled"
|
|
109
145
|
:clearable="!isDisabled"
|
|
110
146
|
:label="$dataStore.t('form.relations')"
|
|
@@ -231,7 +267,7 @@
|
|
|
231
267
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
232
268
|
/>
|
|
233
269
|
</base-form-section>
|
|
234
|
-
<base-form-section
|
|
270
|
+
<base-form-section v-if="$dataStore.hasJobSection(whichForm)" :title="$dataStore.t('form.jobData')">
|
|
235
271
|
<base-form-input v-model.trim="member.job" :label="$dataStore.t('form.job')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
236
272
|
<base-form-input v-model.trim="member.jobPosition" :label="$dataStore.t('form.jobPosition')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
237
273
|
<base-form-input v-model.trim="member.jobPlace" :label="$dataStore.t('form.jobPlace')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
@@ -240,11 +276,11 @@
|
|
|
240
276
|
<base-form-toggle v-if="hasSameAddressToggle" v-model="sameAddress" :disabled="isDisabled" :has-border="false" :title="$dataStore.t('form.sameAddress')" />
|
|
241
277
|
<base-panel-input
|
|
242
278
|
v-model="member.registrationCountry"
|
|
243
|
-
:value="member.registrationCountry
|
|
279
|
+
:value="member.registrationCountry?.nameRu"
|
|
244
280
|
:readonly="isDisabled"
|
|
245
281
|
:clearable="!isDisabled"
|
|
246
282
|
:label="$dataStore.t('form.Country')"
|
|
247
|
-
:rules="$rules.objectRequired"
|
|
283
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
248
284
|
append-inner-icon="mdi mdi-chevron-right"
|
|
249
285
|
@append="openPanel($dataStore.t('form.Country'), [], 'registrationCountry', $dataStore.getCountries)"
|
|
250
286
|
/>
|
|
@@ -252,42 +288,42 @@
|
|
|
252
288
|
<div class="flex flex-col gap-[1px]" v-if="member.registrationCountry.nameRu === 'Казахстан' || member.registrationCountry.nameRu === null">
|
|
253
289
|
<base-panel-input
|
|
254
290
|
v-model="member.registrationProvince"
|
|
255
|
-
:value="member.registrationProvince
|
|
291
|
+
:value="member.registrationProvince?.nameRu"
|
|
256
292
|
:label="$dataStore.t('form.Province')"
|
|
257
293
|
:readonly="isDisabled"
|
|
258
294
|
:clearable="!isDisabled"
|
|
259
|
-
:rules="$rules.objectRequired"
|
|
295
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
260
296
|
append-inner-icon="mdi mdi-chevron-right"
|
|
261
297
|
@append="openPanel($dataStore.t('form.Province'), [], 'registrationProvince', $dataStore.getStates, 'registrationCountry')"
|
|
262
298
|
/>
|
|
263
299
|
<base-panel-input
|
|
264
300
|
v-model="member.registrationRegionType"
|
|
265
|
-
:value="member.registrationRegionType
|
|
301
|
+
:value="member.registrationRegionType?.nameRu"
|
|
266
302
|
:label="$dataStore.t('form.RegionType')"
|
|
267
303
|
:readonly="isDisabled"
|
|
268
304
|
:clearable="!isDisabled"
|
|
269
|
-
:rules="$rules.objectRequired"
|
|
305
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
270
306
|
append-inner-icon="mdi mdi-chevron-right"
|
|
271
307
|
@append="openPanel($dataStore.t('form.RegionType'), [], 'registrationRegionType', $dataStore.getLocalityTypes)"
|
|
272
308
|
/>
|
|
273
309
|
<base-panel-input
|
|
274
310
|
v-if="member.registrationRegionType.nameRu !== 'город'"
|
|
275
311
|
v-model="member.registrationRegion"
|
|
276
|
-
:value="member.registrationRegion
|
|
312
|
+
:value="member.registrationRegion?.nameRu"
|
|
277
313
|
:label="$dataStore.t('form.Region')"
|
|
278
314
|
:readonly="isDisabled"
|
|
279
315
|
:clearable="!isDisabled"
|
|
280
|
-
:rules="$rules.objectRequired"
|
|
316
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
281
317
|
append-inner-icon="mdi mdi-chevron-right"
|
|
282
318
|
@append="openPanel($dataStore.t('form.Region'), [], 'registrationRegion', $dataStore.getRegions, 'registrationProvince')"
|
|
283
319
|
/>
|
|
284
320
|
<base-panel-input
|
|
285
321
|
v-model="member.registrationCity"
|
|
286
|
-
:value="member.registrationCity
|
|
322
|
+
:value="member.registrationCity?.nameRu"
|
|
287
323
|
:label="$dataStore.t('form.City')"
|
|
288
324
|
:readonly="isDisabled"
|
|
289
325
|
:clearable="!isDisabled"
|
|
290
|
-
:rules="$rules.objectRequired"
|
|
326
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
291
327
|
append-inner-icon="mdi mdi-chevron-right"
|
|
292
328
|
@append="openPanel($dataStore.t('form.City'), [], 'registrationCity', $dataStore.getCities, 'registrationProvince')"
|
|
293
329
|
/>
|
|
@@ -297,14 +333,14 @@
|
|
|
297
333
|
<base-form-input v-model.trim="member.registrationMicroDistrict" :readonly="isDisabled" :clearable="!isDisabled" :label="$dataStore.t('form.MicroDistrict')" />
|
|
298
334
|
<base-form-input
|
|
299
335
|
v-model.trim="member.registrationStreet"
|
|
300
|
-
:rules="$rules.required"
|
|
336
|
+
:rules="member.isInsuredUnderage ? [] : $rules.required"
|
|
301
337
|
:readonly="isDisabled"
|
|
302
338
|
:clearable="!isDisabled"
|
|
303
339
|
:label="$dataStore.t('form.Street')"
|
|
304
340
|
/>
|
|
305
341
|
<base-form-input
|
|
306
342
|
v-model.trim="member.registrationNumberHouse"
|
|
307
|
-
:rules="$rules.required"
|
|
343
|
+
:rules="member.isInsuredUnderage ? [] : $rules.required"
|
|
308
344
|
:readonly="isDisabled"
|
|
309
345
|
:clearable="!isDisabled"
|
|
310
346
|
:label="$dataStore.t('form.NumberHouse')"
|
|
@@ -316,7 +352,7 @@
|
|
|
316
352
|
<base-form-section :title="$dataStore.t('form.birthData')" v-if="$dataStore.hasBirthSection(whichForm)">
|
|
317
353
|
<base-panel-input
|
|
318
354
|
v-model="member.birthPlace"
|
|
319
|
-
:value="member.birthPlace
|
|
355
|
+
:value="member.birthPlace?.nameRu"
|
|
320
356
|
:label="$dataStore.t('form.Country')"
|
|
321
357
|
:readonly="isDisabled"
|
|
322
358
|
:clearable="!isDisabled"
|
|
@@ -327,7 +363,7 @@
|
|
|
327
363
|
<!-- TODO -->
|
|
328
364
|
<!-- <base-panel-input
|
|
329
365
|
v-model="member.birthRegion"
|
|
330
|
-
:value="member.birthRegion
|
|
366
|
+
:value="member.birthRegion?.nameRu"
|
|
331
367
|
:label="$dataStore.t('form.Region')"
|
|
332
368
|
:readonly="isDisabled"
|
|
333
369
|
:clearable="!isDisabled"
|
|
@@ -339,7 +375,7 @@
|
|
|
339
375
|
<base-form-section :title="$dataStore.t('form.documentData')" v-if="$dataStore.hasDocumentSection(whichForm)">
|
|
340
376
|
<base-panel-input
|
|
341
377
|
v-model="member.documentType"
|
|
342
|
-
:value="member.documentType
|
|
378
|
+
:value="member.documentType?.nameRu"
|
|
343
379
|
:label="$dataStore.t('form.documentType')"
|
|
344
380
|
:readonly="isDisabled"
|
|
345
381
|
:clearable="!isDisabled"
|
|
@@ -361,7 +397,7 @@
|
|
|
361
397
|
</base-empty-form-field> -->
|
|
362
398
|
<base-panel-input
|
|
363
399
|
v-model="member.documentIssuers"
|
|
364
|
-
:value="member.documentIssuers
|
|
400
|
+
:value="member.documentIssuers?.nameRu"
|
|
365
401
|
:label="$dataStore.t('form.documentIssuers')"
|
|
366
402
|
:readonly="isDisabled"
|
|
367
403
|
:clearable="!isDisabled"
|
|
@@ -391,8 +427,9 @@
|
|
|
391
427
|
/>
|
|
392
428
|
</base-fade-transition>
|
|
393
429
|
<base-panel-input
|
|
430
|
+
v-if="!$dataStore.isLifetrip"
|
|
394
431
|
v-model="member.signOfResidency"
|
|
395
|
-
:value="member.signOfResidency
|
|
432
|
+
:value="member.signOfResidency?.nameRu"
|
|
396
433
|
:label="$dataStore.t('form.signOfResidency')"
|
|
397
434
|
:readonly="isDisabled"
|
|
398
435
|
:clearable="!isDisabled"
|
|
@@ -402,7 +439,7 @@
|
|
|
402
439
|
/>
|
|
403
440
|
<base-panel-input
|
|
404
441
|
v-model="member.countryOfTaxResidency"
|
|
405
|
-
:value="member.countryOfTaxResidency
|
|
442
|
+
:value="member.countryOfTaxResidency?.nameRu"
|
|
406
443
|
:label="$dataStore.t('form.countryOfTaxResidency')"
|
|
407
444
|
:readonly="isDisabled"
|
|
408
445
|
:clearable="!isDisabled"
|
|
@@ -414,7 +451,7 @@
|
|
|
414
451
|
<base-panel-input
|
|
415
452
|
v-if="member.countryOfTaxResidency.ids === '500014.3'"
|
|
416
453
|
v-model="member.addTaxResidency"
|
|
417
|
-
:value="member.addTaxResidency
|
|
454
|
+
:value="member.addTaxResidency?.nameRu"
|
|
418
455
|
:label="$dataStore.t('form.addTaxResidency')"
|
|
419
456
|
:readonly="isDisabled"
|
|
420
457
|
:clearable="!isDisabled"
|
|
@@ -426,7 +463,7 @@
|
|
|
426
463
|
<base-panel-input
|
|
427
464
|
v-if="hasSignOfIPDL"
|
|
428
465
|
v-model="member.signOfIPDL"
|
|
429
|
-
:value="member.signOfIPDL
|
|
466
|
+
:value="member.signOfIPDL?.nameRu"
|
|
430
467
|
:label="$dataStore.t('form.signOfIPDL')"
|
|
431
468
|
:readonly="isDisabled"
|
|
432
469
|
:clearable="!isDisabled"
|
|
@@ -436,7 +473,7 @@
|
|
|
436
473
|
/>
|
|
437
474
|
<base-panel-input
|
|
438
475
|
v-model="member.countryOfCitizenship"
|
|
439
|
-
:value="member.countryOfCitizenship
|
|
476
|
+
:value="member.countryOfCitizenship?.nameRu"
|
|
440
477
|
:label="$dataStore.t('form.countryOfCitizenship')"
|
|
441
478
|
:readonly="isDisabled"
|
|
442
479
|
:clearable="!isDisabled"
|
|
@@ -446,7 +483,7 @@
|
|
|
446
483
|
/>
|
|
447
484
|
<base-panel-input
|
|
448
485
|
v-model="member.economySectorCode"
|
|
449
|
-
:value="member.economySectorCode
|
|
486
|
+
:value="member.economySectorCode?.nameRu"
|
|
450
487
|
:label="$dataStore.t('form.economySectorCode')"
|
|
451
488
|
:readonly="isDisabled"
|
|
452
489
|
:clearable="!isDisabled"
|
|
@@ -457,7 +494,7 @@
|
|
|
457
494
|
<base-panel-input
|
|
458
495
|
v-if="hasInsurancePay"
|
|
459
496
|
v-model="member.insurancePay"
|
|
460
|
-
:value="member.insurancePay
|
|
497
|
+
:value="member.insurancePay?.nameRu"
|
|
461
498
|
:readonly="isDisabled"
|
|
462
499
|
:clearable="!isDisabled"
|
|
463
500
|
:rules="$rules.objectRequired"
|
|
@@ -474,14 +511,14 @@
|
|
|
474
511
|
:label="$dataStore.t('form.homePhone')"
|
|
475
512
|
:readonly="isDisabled"
|
|
476
513
|
:clearable="!isDisabled"
|
|
477
|
-
:rules="whichForm === formStore.beneficiaryFormKey ? [] : $rules.phoneFormat"
|
|
514
|
+
:rules="whichForm === formStore.beneficiaryFormKey || member.isInsuredUnderage ? [] : $rules.phoneFormat"
|
|
478
515
|
/>
|
|
479
516
|
<base-form-input v-model.trim="member.email" :label="$dataStore.t('form.email')" :rules="$rules.email" />
|
|
480
517
|
</base-form-section>
|
|
481
518
|
</v-form>
|
|
482
519
|
<base-btn v-if="showSaveButton" :loading="isButtonLoading || isSubmittingForm" :text="$dataStore.t('buttons.save')" @click="submitForm" />
|
|
483
520
|
<Teleport v-if="isPanelOpen" to="#panel-actions">
|
|
484
|
-
<div :class="[$
|
|
521
|
+
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
485
522
|
<base-rounded-input v-model="searchQuery" :label="$dataStore.t('labels.search')" class="w-full p-2" :hide-details="true" />
|
|
486
523
|
<div v-if="panelList && isPanelLoading === false" class="w-full flex flex-col gap-2 p-2">
|
|
487
524
|
<base-panel-select-item :text="$dataStore.t('form.notChosen')" :selected="panelValue.nameRu === null" @click="pickPanelValue(new Value())" />
|
|
@@ -497,20 +534,20 @@
|
|
|
497
534
|
</div>
|
|
498
535
|
</Teleport>
|
|
499
536
|
<Teleport v-if="isSearchOpen" to="#panel-actions">
|
|
500
|
-
<div :class="[$
|
|
537
|
+
<div :class="[$styles.flexColNav]">
|
|
501
538
|
<base-btn v-if="hasGBDFL" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromGBDFL')" @click="getContragentFromGBDFL" />
|
|
502
539
|
<base-btn v-if="hasInsis" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromInsis')" @click="getContragent" />
|
|
503
540
|
<base-btn v-if="hasGKB" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromGKB')" @click="getFamilyInfo" />
|
|
504
541
|
</div>
|
|
505
542
|
</Teleport>
|
|
506
543
|
<Teleport v-if="isDocumentOpen" to="#panel-actions">
|
|
507
|
-
<div :class="[$
|
|
544
|
+
<div :class="[$styles.flexColNav]">
|
|
508
545
|
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Открыть" @click="getFile('view')" />
|
|
509
546
|
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Скачать" @click="getFile('download')" />
|
|
510
547
|
</div>
|
|
511
548
|
</Teleport>
|
|
512
549
|
<Teleport v-if="isOtpPanelOpen && !member.hasAgreement" to="#panel-actions">
|
|
513
|
-
<div :class="[$
|
|
550
|
+
<div :class="[$styles.flexColNav]">
|
|
514
551
|
<base-fade-transition>
|
|
515
552
|
<base-rounded-input
|
|
516
553
|
v-if="otpCondition && member.otpTokenId"
|
|
@@ -527,6 +564,7 @@
|
|
|
527
564
|
<base-btn v-if="member.otpTokenId" :disabled="otpSending" :loading="otpSending" :text="$dataStore.t('buttons.check')" @click="checkOtp()" />
|
|
528
565
|
</div>
|
|
529
566
|
</Teleport>
|
|
567
|
+
<base-dialog v-model="deletionDialog" :subtitle="$dataStore.t('dialog.delete')" actions="default" @yes="deleteMember(selectedIndex)" @no="deletionDialog = false" />
|
|
530
568
|
<base-dialog v-model="familyDialog" :title="$dataStore.t('dialog.familyMember')" actions="familyDialog">
|
|
531
569
|
<template #actions>
|
|
532
570
|
<base-family-dialog :selected="selectedFamilyMember" @selectFamilyMember="selectFamilyMember" @reset="closeFamilyDialog(true)" />
|
|
@@ -566,6 +604,8 @@ export default {
|
|
|
566
604
|
const isPanelLoading = ref<boolean>(false);
|
|
567
605
|
const isChangingMember = ref<boolean>(false);
|
|
568
606
|
const familyDialog = ref<boolean>(false);
|
|
607
|
+
const deletionDialog = ref<boolean>(false);
|
|
608
|
+
const selectedIndex = ref<number>(0);
|
|
569
609
|
const sameAddress = ref<boolean>(false);
|
|
570
610
|
const panelValue = ref<Value>(new Value());
|
|
571
611
|
const panelList = ref<Value[]>([]);
|
|
@@ -607,10 +647,17 @@ export default {
|
|
|
607
647
|
if (dataStore.isBolashak || dataStore.isGons) {
|
|
608
648
|
return false;
|
|
609
649
|
}
|
|
650
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
651
|
+
return false;
|
|
652
|
+
}
|
|
653
|
+
return true;
|
|
654
|
+
}
|
|
655
|
+
case formStore.insuredFormKey: {
|
|
656
|
+
if (dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
657
|
+
return false;
|
|
658
|
+
}
|
|
610
659
|
return true;
|
|
611
660
|
}
|
|
612
|
-
case formStore.insuredFormKey:
|
|
613
|
-
case formStore.beneficiaryFormKey:
|
|
614
661
|
case formStore.beneficialOwnerFormKey:
|
|
615
662
|
case formStore.policyholdersRepresentativeFormKey:
|
|
616
663
|
return true;
|
|
@@ -641,8 +688,26 @@ export default {
|
|
|
641
688
|
};
|
|
642
689
|
return dataStore.controls.hasGKB && !!dataStore.isTask() && perMemberCondition();
|
|
643
690
|
});
|
|
644
|
-
|
|
691
|
+
const hasMemberSearch = computed(() => showSaveButton.value && (hasGBDFL.value || hasGKB.value || hasInsis.value));
|
|
692
|
+
const hasMiddleName = computed(() => {
|
|
693
|
+
if (dataStore.isLifetrip) {
|
|
694
|
+
return false;
|
|
695
|
+
}
|
|
696
|
+
return true;
|
|
697
|
+
});
|
|
698
|
+
const hasRelationDegree = computed(() => {
|
|
699
|
+
if (dataStore.isLifetrip) {
|
|
700
|
+
return false;
|
|
701
|
+
}
|
|
702
|
+
if ((whichForm.value === formStore.beneficiaryFormKey || whichForm.value === formStore.insuredFormKey) && member.value.iin !== formStore.policyholderForm.iin) {
|
|
703
|
+
return true;
|
|
704
|
+
}
|
|
705
|
+
return false;
|
|
706
|
+
});
|
|
645
707
|
const hasFamilyStatus = computed(() => {
|
|
708
|
+
if (dataStore.isLifetrip) {
|
|
709
|
+
return false;
|
|
710
|
+
}
|
|
646
711
|
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
647
712
|
if (dataStore.isBolashak) {
|
|
648
713
|
return false;
|
|
@@ -659,7 +724,7 @@ export default {
|
|
|
659
724
|
return false;
|
|
660
725
|
});
|
|
661
726
|
const hasSignOfIPDL = computed(() => {
|
|
662
|
-
if (dataStore.isGons) {
|
|
727
|
+
if (dataStore.isGons || dataStore.isLifetrip) {
|
|
663
728
|
return false;
|
|
664
729
|
}
|
|
665
730
|
return true;
|
|
@@ -678,6 +743,9 @@ export default {
|
|
|
678
743
|
if (dataStore.isBolashak || dataStore.isBaiterek) {
|
|
679
744
|
return dataStore.rules.age18ByDate;
|
|
680
745
|
}
|
|
746
|
+
if (dataStore.isLifetrip) {
|
|
747
|
+
return dataStore.rules.ageExceeds80ByDate;
|
|
748
|
+
}
|
|
681
749
|
}
|
|
682
750
|
return [];
|
|
683
751
|
};
|
|
@@ -712,6 +780,12 @@ export default {
|
|
|
712
780
|
if (dataStore.isGons || dataStore.isBolashak) {
|
|
713
781
|
return [];
|
|
714
782
|
}
|
|
783
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
784
|
+
return [];
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
if (member.value.isInsuredUnderage) {
|
|
788
|
+
return [];
|
|
715
789
|
}
|
|
716
790
|
return basePhoneRule;
|
|
717
791
|
});
|
|
@@ -723,6 +797,9 @@ export default {
|
|
|
723
797
|
return baseResidencyRule.concat(dataStore.rules.noResident);
|
|
724
798
|
}
|
|
725
799
|
}
|
|
800
|
+
if (dataStore.isLifetrip) {
|
|
801
|
+
return baseResidencyRule.concat(dataStore.rules.noResidentOffline);
|
|
802
|
+
}
|
|
726
803
|
return baseResidencyRule;
|
|
727
804
|
});
|
|
728
805
|
|
|
@@ -740,6 +817,8 @@ export default {
|
|
|
740
817
|
const otpCondition = computed(() => {
|
|
741
818
|
// Add conditions by product
|
|
742
819
|
if (member.value.hasAgreement) return false;
|
|
820
|
+
if (whichForm.value === formStore.beneficiaryFormKey && member.value.age !== null && Number(member.value.age) < 18) return false;
|
|
821
|
+
if (dataStore.isLifetrip && whichForm.value === formStore.insuredFormKey && member.value.isInsuredUnderage) return false;
|
|
743
822
|
if (!member.value.phoneNumber || (member.value.phoneNumber && member.value.phoneNumber.length !== useMask().phone.length)) return false;
|
|
744
823
|
return getOtpConditionByMember();
|
|
745
824
|
});
|
|
@@ -1034,14 +1113,17 @@ export default {
|
|
|
1034
1113
|
if (!isSaved) return false;
|
|
1035
1114
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
1036
1115
|
if (isInsured === true || remoteIsInsured.value === true) {
|
|
1037
|
-
formStore.insuredForm
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1116
|
+
const insuredFormIndex = remoteIsInsured.value === true ? 0 : isInsured === true ? formStore.insuredForm.findIndex(i => i.iin === formStore.policyholderForm.iin) : -1;
|
|
1117
|
+
if (insuredFormIndex !== -1) {
|
|
1118
|
+
formStore.insuredForm[insuredFormIndex] = formStore.policyholderForm;
|
|
1119
|
+
const isInsuredSaved = await dataStore.saveMember(
|
|
1120
|
+
member.value,
|
|
1121
|
+
memberStore.getMemberCode(formStore.insuredFormKey)!,
|
|
1122
|
+
memberStore.getMemberFromApplication(formStore.insuredFormKey, insuredFormIndex),
|
|
1123
|
+
);
|
|
1124
|
+
if (!isInsuredSaved) return false;
|
|
1125
|
+
wasInsuredAction.value = true;
|
|
1126
|
+
}
|
|
1045
1127
|
}
|
|
1046
1128
|
}
|
|
1047
1129
|
if (whichForm.value === formStore.insuredFormKey) {
|
|
@@ -1054,8 +1136,8 @@ export default {
|
|
|
1054
1136
|
await dataStore.getApplicationData(route.params.taskId as string, false, false, true, wasInsuredAction.value);
|
|
1055
1137
|
if (dataStore.controls.hasCalculator) {
|
|
1056
1138
|
if (formStore.additionalInsuranceTermsWithout && formStore.additionalInsuranceTermsWithout.length !== 0) {
|
|
1057
|
-
formStore.additionalInsuranceTerms.forEach(
|
|
1058
|
-
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(
|
|
1139
|
+
formStore.additionalInsuranceTerms.forEach(term => {
|
|
1140
|
+
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(i => i.coverTypeId === term.coverTypeId);
|
|
1059
1141
|
if (defaultTerm) {
|
|
1060
1142
|
term.coverSumName = defaultTerm.coverSumName;
|
|
1061
1143
|
term.coverSumId = defaultTerm.coverSumId;
|
|
@@ -1069,9 +1151,13 @@ export default {
|
|
|
1069
1151
|
};
|
|
1070
1152
|
|
|
1071
1153
|
const validateAgreement = () => {
|
|
1072
|
-
if (
|
|
1073
|
-
if (
|
|
1074
|
-
|
|
1154
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
1155
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
1156
|
+
return true;
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
1160
|
+
if (dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
1075
1161
|
return true;
|
|
1076
1162
|
}
|
|
1077
1163
|
}
|
|
@@ -1089,9 +1175,14 @@ export default {
|
|
|
1089
1175
|
if (v.valid) {
|
|
1090
1176
|
isSubmittingForm.value = true;
|
|
1091
1177
|
const docType = member.value.documentType.ids;
|
|
1092
|
-
if (member.value.gotFromInsis === true && (docType === '1UDL' || docType === 'SBI')) {
|
|
1178
|
+
if (member.value.gotFromInsis === true && (docType === '1UDL' || docType === 'SBI' || docType === 'PS')) {
|
|
1093
1179
|
dataStore.isLoading = true;
|
|
1094
|
-
const
|
|
1180
|
+
const docTypeCodes = {
|
|
1181
|
+
'1UDL': 1,
|
|
1182
|
+
PS: 2,
|
|
1183
|
+
SBI: 3,
|
|
1184
|
+
};
|
|
1185
|
+
const ESBDResponse = await validateESBD(docTypeCodes[docType]);
|
|
1095
1186
|
if (!ESBDResponse) {
|
|
1096
1187
|
dataStore.isLoading = false;
|
|
1097
1188
|
return;
|
|
@@ -1170,6 +1261,15 @@ export default {
|
|
|
1170
1261
|
if (setDefaults.percentage) {
|
|
1171
1262
|
setPercentage();
|
|
1172
1263
|
}
|
|
1264
|
+
if (setDefaults.signOfResidency) {
|
|
1265
|
+
setSignOfResidency();
|
|
1266
|
+
}
|
|
1267
|
+
if (setDefaults.countryOfTaxResidency) {
|
|
1268
|
+
setCountryOfTaxResidency();
|
|
1269
|
+
}
|
|
1270
|
+
if (setDefaults.countryOfCitizenship) {
|
|
1271
|
+
setCountryOfCitizenship();
|
|
1272
|
+
}
|
|
1173
1273
|
};
|
|
1174
1274
|
|
|
1175
1275
|
const setSectorCode = async () => {
|
|
@@ -1179,7 +1279,27 @@ export default {
|
|
|
1179
1279
|
member.value.economySectorCode = defaultValue ? defaultValue : new Value();
|
|
1180
1280
|
}
|
|
1181
1281
|
};
|
|
1182
|
-
|
|
1282
|
+
const setSignOfResidency = async () => {
|
|
1283
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1284
|
+
const residents = await dataStore.getResidents();
|
|
1285
|
+
const defaultValue = residents.find(item => String(item.nameRu).match(new RegExp('Резидент', 'i'))) as Value;
|
|
1286
|
+
member.value.signOfResidency = defaultValue ? defaultValue : new Value();
|
|
1287
|
+
}
|
|
1288
|
+
};
|
|
1289
|
+
const setCountryOfTaxResidency = async () => {
|
|
1290
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1291
|
+
const taxCountries = await dataStore.getTaxCountries();
|
|
1292
|
+
const defaultValue = taxCountries.find(item => String(item.nameRu).match(new RegExp('Казахстан', 'i'))) as Value;
|
|
1293
|
+
member.value.countryOfTaxResidency = defaultValue ? defaultValue : new Value();
|
|
1294
|
+
}
|
|
1295
|
+
};
|
|
1296
|
+
const setCountryOfCitizenship = async () => {
|
|
1297
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1298
|
+
const citizenshipCountries = await dataStore.getCitizenshipCountries();
|
|
1299
|
+
const defaultValue = citizenshipCountries.find(item => String(item.nameRu).match(new RegExp('Казахстан', 'i'))) as Value;
|
|
1300
|
+
member.value.countryOfCitizenship = defaultValue ? defaultValue : new Value();
|
|
1301
|
+
}
|
|
1302
|
+
};
|
|
1183
1303
|
const setPercentage = () => {
|
|
1184
1304
|
if (whichForm.value === formStore.beneficiaryFormKey && member.value.id === 0 && route.query.id === '0' && member.value.percentageOfPayoutAmount === null) {
|
|
1185
1305
|
if (dataStore.members.beneficiaryApp.isMultiple) {
|
|
@@ -1205,6 +1325,11 @@ export default {
|
|
|
1205
1325
|
isButtonLoading.value = false;
|
|
1206
1326
|
};
|
|
1207
1327
|
|
|
1328
|
+
const openDeletionDialog = (index: number) => {
|
|
1329
|
+
deletionDialog.value = true;
|
|
1330
|
+
selectedIndex.value = index;
|
|
1331
|
+
};
|
|
1332
|
+
|
|
1208
1333
|
const deleteMember = async (index: number) => {
|
|
1209
1334
|
await memberStore.deleteMember(route.params.taskId as string, whichForm.value, index);
|
|
1210
1335
|
const currentIndex = Number(whichIndex.value);
|
|
@@ -1212,6 +1337,7 @@ export default {
|
|
|
1212
1337
|
const newIndex = ref<number>(currentIndex - 1 > 0 ? currentIndex - 1 : 0);
|
|
1213
1338
|
await selectMember(newIndex.value, index === currentIndex ? true : undefined);
|
|
1214
1339
|
}
|
|
1340
|
+
deletionDialog.value = false;
|
|
1215
1341
|
};
|
|
1216
1342
|
|
|
1217
1343
|
const onInit = async () => {
|
|
@@ -1313,6 +1439,30 @@ export default {
|
|
|
1313
1439
|
searchQuery.value = '';
|
|
1314
1440
|
}
|
|
1315
1441
|
});
|
|
1442
|
+
if (dataStore.isLifetrip) {
|
|
1443
|
+
watch(
|
|
1444
|
+
() => member.value.age,
|
|
1445
|
+
val => {
|
|
1446
|
+
if (val && Number(val) >= 18) {
|
|
1447
|
+
if (member.value.hasAgreement !== true) {
|
|
1448
|
+
member.value.hasAgreement = false;
|
|
1449
|
+
}
|
|
1450
|
+
} else {
|
|
1451
|
+
member.value.hasAgreement = true;
|
|
1452
|
+
}
|
|
1453
|
+
member.value.isInsuredUnderage = Number(val) >= 18 ? false : true;
|
|
1454
|
+
},
|
|
1455
|
+
);
|
|
1456
|
+
watch(
|
|
1457
|
+
() => member.value.isInsuredUnderage,
|
|
1458
|
+
val => {
|
|
1459
|
+
if (val === true && Number(member.value.age) >= 18) {
|
|
1460
|
+
member.value.isInsuredUnderage = false;
|
|
1461
|
+
return dataStore.showToaster('error', dataStore.t('toaster.underageShouldBeLess18'), 3000);
|
|
1462
|
+
}
|
|
1463
|
+
},
|
|
1464
|
+
);
|
|
1465
|
+
}
|
|
1316
1466
|
|
|
1317
1467
|
return {
|
|
1318
1468
|
// State
|
|
@@ -1335,6 +1485,8 @@ export default {
|
|
|
1335
1485
|
Value,
|
|
1336
1486
|
memberDocument,
|
|
1337
1487
|
familyDialog,
|
|
1488
|
+
deletionDialog,
|
|
1489
|
+
selectedIndex,
|
|
1338
1490
|
selectedFamilyMember,
|
|
1339
1491
|
sameAddress,
|
|
1340
1492
|
|
|
@@ -1352,10 +1504,13 @@ export default {
|
|
|
1352
1504
|
hasGBDFL,
|
|
1353
1505
|
hasInsis,
|
|
1354
1506
|
hasGKB,
|
|
1507
|
+
hasMiddleName,
|
|
1508
|
+
hasRelationDegree,
|
|
1355
1509
|
hasFamilyStatus,
|
|
1356
1510
|
hasInsurancePay,
|
|
1357
1511
|
hasSignOfIPDL,
|
|
1358
1512
|
hasSameAddressToggle,
|
|
1513
|
+
hasMemberSearch,
|
|
1359
1514
|
|
|
1360
1515
|
// Rules
|
|
1361
1516
|
ageRule,
|
|
@@ -1378,6 +1533,7 @@ export default {
|
|
|
1378
1533
|
getFile,
|
|
1379
1534
|
selectFamilyMember,
|
|
1380
1535
|
closeFamilyDialog,
|
|
1536
|
+
openDeletionDialog,
|
|
1381
1537
|
scrollForm,
|
|
1382
1538
|
onIinInput,
|
|
1383
1539
|
onOtpCodeInput,
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<base-content :title="$dataStore.t('agreementBlock.title')" class="!w-full">
|
|
3
|
-
<p class="h-full p-4 lg:p-8 leading-8 font-medium" :class="[$
|
|
4
|
-
{{ $dataStore.t('agreementBlock.text') }}
|
|
5
|
-
</p>
|
|
3
|
+
<p class="h-full p-4 lg:p-8 leading-8 font-medium" :class="[$styles.scrollPage, $styles.textSimple]"> {{ $dataStore.t('agreementBlock.text') }}</p>
|
|
6
4
|
</base-content>
|
|
7
5
|
</template>
|
|
8
6
|
|