hl-core 0.0.9-beta.3 → 0.0.9-beta.30
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 +862 -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 +2 -2
- package/components/Complex/Page.vue +8 -2
- package/components/Complex/WhiteBlock.vue +7 -0
- package/components/Dialog/Dialog.vue +60 -15
- package/components/Dialog/FamilyDialog.vue +5 -5
- package/components/Form/DynamicForm.vue +99 -0
- package/components/Form/FormBlock.vue +36 -29
- package/components/Form/FormData.vue +48 -0
- 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 +104 -52
- package/components/Form/ProductConditionsBlock.vue +73 -20
- package/components/Input/DynamicInput.vue +23 -0
- package/components/Input/EmptyFormField.vue +1 -1
- package/components/Input/FileInput.vue +15 -4
- 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/Input/SwitchInput.vue +64 -0
- package/components/Input/TextInput.vue +161 -0
- package/components/Layout/Drawer.vue +17 -4
- package/components/Layout/Header.vue +2 -2
- package/components/Layout/SettingsPanel.vue +10 -15
- package/components/List/ListEmpty.vue +1 -1
- package/components/Menu/MenuHover.vue +1 -1
- package/components/Menu/MenuNav.vue +3 -3
- package/components/Menu/MenuNavItem.vue +4 -4
- package/components/Pages/Anketa.vue +144 -65
- package/components/Pages/Auth.vue +21 -10
- package/components/Pages/ContragentForm.vue +505 -0
- package/components/Pages/Documents.vue +57 -11
- package/components/Pages/InvoiceInfo.vue +2 -2
- package/components/Pages/MemberForm.vue +253 -89
- package/components/Pages/ProductAgreement.vue +2 -11
- package/components/Pages/ProductConditions.vue +777 -164
- package/components/Panel/PanelHandler.vue +297 -54
- package/components/Panel/PanelSelectItem.vue +18 -3
- package/components/Panel/RightPanelCloser.vue +7 -0
- package/components/Utilities/IconBorder.vue +17 -0
- package/composables/axios.ts +1 -1
- package/composables/classes.ts +405 -9
- package/composables/constants.ts +40 -0
- package/composables/fields.ts +203 -0
- package/composables/index.ts +48 -0
- package/composables/styles.ts +22 -10
- package/configs/i18n.ts +0 -2
- package/layouts/default.vue +46 -4
- package/layouts/full.vue +1 -1
- package/locales/ru.json +423 -11
- 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 +936 -217
- package/store/extractStore.ts +17 -0
- package/store/form.store.ts +13 -1
- package/store/member.store.ts +1 -1
- package/store/rules.ts +38 -2
- package/types/enum.ts +8 -0
- package/types/form.ts +94 -0
- package/types/index.ts +162 -10
- package/components/Button/BtnIcon.vue +0 -47
- package/locales/kz.json +0 -590
|
@@ -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
|
-
<Teleport v-if="isPanelOpen" to="#panel-actions">
|
|
484
|
-
<div :class="[$
|
|
520
|
+
<Teleport v-if="isPanelOpen" to="#right-panel-actions">
|
|
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())" />
|
|
@@ -496,21 +533,21 @@
|
|
|
496
533
|
<base-loader v-if="isPanelLoading" class="absolute mt-10" :size="50" />
|
|
497
534
|
</div>
|
|
498
535
|
</Teleport>
|
|
499
|
-
<Teleport v-if="isSearchOpen" to="#panel-actions">
|
|
500
|
-
<div :class="[$
|
|
536
|
+
<Teleport v-if="isSearchOpen" to="#right-panel-actions">
|
|
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
|
-
<Teleport v-if="isDocumentOpen" to="#panel-actions">
|
|
507
|
-
<div :class="[$
|
|
543
|
+
<Teleport v-if="isDocumentOpen" to="#right-panel-actions">
|
|
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
|
-
<Teleport v-if="isOtpPanelOpen && !member.hasAgreement" to="#panel-actions">
|
|
513
|
-
<div :class="[$
|
|
549
|
+
<Teleport v-if="isOtpPanelOpen && !member.hasAgreement" to="#right-panel-actions">
|
|
550
|
+
<div :class="[$styles.flexColNav]">
|
|
514
551
|
<base-fade-transition>
|
|
515
552
|
<base-rounded-input
|
|
516
553
|
v-if="otpCondition && member.otpTokenId"
|
|
@@ -527,7 +564,16 @@
|
|
|
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>
|
|
530
|
-
<base-dialog
|
|
567
|
+
<base-dialog
|
|
568
|
+
v-model="deletionDialog"
|
|
569
|
+
:title="$dataStore.t('dialog.confirmDelete')"
|
|
570
|
+
:subtitle="$dataStore.t('dialog.delete')"
|
|
571
|
+
:confirm="$dataStore.t('confirm.delete')"
|
|
572
|
+
:icon="{ mdi: 'delete-outline', color: '#FD2D39' }"
|
|
573
|
+
@yes="deleteMember"
|
|
574
|
+
@no="deletionDialog = false"
|
|
575
|
+
/>
|
|
576
|
+
<base-dialog v-model="familyDialog" :subtitle="$dataStore.t('dialog.familyMember')" :icon="{ mdi: 'hand-pointing-up' }" actions="familyDialog">
|
|
531
577
|
<template #actions>
|
|
532
578
|
<base-family-dialog :selected="selectedFamilyMember" @selectFamilyMember="selectFamilyMember" @reset="closeFamilyDialog(true)" />
|
|
533
579
|
</template>
|
|
@@ -566,6 +612,8 @@ export default {
|
|
|
566
612
|
const isPanelLoading = ref<boolean>(false);
|
|
567
613
|
const isChangingMember = ref<boolean>(false);
|
|
568
614
|
const familyDialog = ref<boolean>(false);
|
|
615
|
+
const deletionDialog = ref<boolean>(false);
|
|
616
|
+
const selectedIndex = ref<number>(0);
|
|
569
617
|
const sameAddress = ref<boolean>(false);
|
|
570
618
|
const panelValue = ref<Value>(new Value());
|
|
571
619
|
const panelList = ref<Value[]>([]);
|
|
@@ -581,7 +629,7 @@ export default {
|
|
|
581
629
|
const isFromGBD = computed(() => !!member.value.gosPersonData);
|
|
582
630
|
const showSaveButton = computed(() => {
|
|
583
631
|
const generalCondition = !isDisabled.value && !!isTask.value && !!dataStore.isInitiator();
|
|
584
|
-
const
|
|
632
|
+
const perMemberCondition = () => {
|
|
585
633
|
switch (whichForm.value) {
|
|
586
634
|
case formStore.policyholderFormKey:
|
|
587
635
|
return true;
|
|
@@ -594,7 +642,7 @@ export default {
|
|
|
594
642
|
return false;
|
|
595
643
|
}
|
|
596
644
|
};
|
|
597
|
-
return generalCondition &&
|
|
645
|
+
return generalCondition && perMemberCondition();
|
|
598
646
|
});
|
|
599
647
|
|
|
600
648
|
const hasGBDFL = computed(() => {
|
|
@@ -607,10 +655,17 @@ export default {
|
|
|
607
655
|
if (dataStore.isBolashak || dataStore.isGons) {
|
|
608
656
|
return false;
|
|
609
657
|
}
|
|
658
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
659
|
+
return false;
|
|
660
|
+
}
|
|
661
|
+
return true;
|
|
662
|
+
}
|
|
663
|
+
case formStore.insuredFormKey: {
|
|
664
|
+
if (dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
665
|
+
return false;
|
|
666
|
+
}
|
|
610
667
|
return true;
|
|
611
668
|
}
|
|
612
|
-
case formStore.insuredFormKey:
|
|
613
|
-
case formStore.beneficiaryFormKey:
|
|
614
669
|
case formStore.beneficialOwnerFormKey:
|
|
615
670
|
case formStore.policyholdersRepresentativeFormKey:
|
|
616
671
|
return true;
|
|
@@ -641,8 +696,26 @@ export default {
|
|
|
641
696
|
};
|
|
642
697
|
return dataStore.controls.hasGKB && !!dataStore.isTask() && perMemberCondition();
|
|
643
698
|
});
|
|
644
|
-
|
|
699
|
+
const hasMemberSearch = computed(() => showSaveButton.value && (hasGBDFL.value || hasGKB.value || hasInsis.value));
|
|
700
|
+
const hasMiddleName = computed(() => {
|
|
701
|
+
if (dataStore.isLifetrip) {
|
|
702
|
+
return false;
|
|
703
|
+
}
|
|
704
|
+
return true;
|
|
705
|
+
});
|
|
706
|
+
const hasRelationDegree = computed(() => {
|
|
707
|
+
if (dataStore.isLifetrip) {
|
|
708
|
+
return false;
|
|
709
|
+
}
|
|
710
|
+
if ((whichForm.value === formStore.beneficiaryFormKey || whichForm.value === formStore.insuredFormKey) && member.value.iin !== formStore.policyholderForm.iin) {
|
|
711
|
+
return true;
|
|
712
|
+
}
|
|
713
|
+
return false;
|
|
714
|
+
});
|
|
645
715
|
const hasFamilyStatus = computed(() => {
|
|
716
|
+
if (dataStore.isLifetrip) {
|
|
717
|
+
return false;
|
|
718
|
+
}
|
|
646
719
|
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
647
720
|
if (dataStore.isBolashak) {
|
|
648
721
|
return false;
|
|
@@ -659,7 +732,7 @@ export default {
|
|
|
659
732
|
return false;
|
|
660
733
|
});
|
|
661
734
|
const hasSignOfIPDL = computed(() => {
|
|
662
|
-
if (dataStore.isGons) {
|
|
735
|
+
if (dataStore.isGons || dataStore.isLifetrip) {
|
|
663
736
|
return false;
|
|
664
737
|
}
|
|
665
738
|
return true;
|
|
@@ -668,7 +741,7 @@ export default {
|
|
|
668
741
|
|
|
669
742
|
const birthDateRule = computed(() => {
|
|
670
743
|
const baseDateRule = dataStore.rules.required.concat(dataStore.rules.birthDate);
|
|
671
|
-
const
|
|
744
|
+
const byMemberAndProductRule = () => {
|
|
672
745
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
673
746
|
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek) {
|
|
674
747
|
return dataStore.rules.age18ByDate;
|
|
@@ -678,10 +751,13 @@ export default {
|
|
|
678
751
|
if (dataStore.isBolashak || dataStore.isBaiterek) {
|
|
679
752
|
return dataStore.rules.age18ByDate;
|
|
680
753
|
}
|
|
754
|
+
if (dataStore.isLifetrip) {
|
|
755
|
+
return dataStore.rules.ageExceeds80ByDate;
|
|
756
|
+
}
|
|
681
757
|
}
|
|
682
758
|
return [];
|
|
683
759
|
};
|
|
684
|
-
return baseDateRule.concat(
|
|
760
|
+
return baseDateRule.concat(byMemberAndProductRule());
|
|
685
761
|
});
|
|
686
762
|
const ageRule = computed(() => {
|
|
687
763
|
const baseAgeRule = dataStore.rules.numbers;
|
|
@@ -712,6 +788,12 @@ export default {
|
|
|
712
788
|
if (dataStore.isGons || dataStore.isBolashak) {
|
|
713
789
|
return [];
|
|
714
790
|
}
|
|
791
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
792
|
+
return [];
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
if (member.value.isInsuredUnderage) {
|
|
796
|
+
return [];
|
|
715
797
|
}
|
|
716
798
|
return basePhoneRule;
|
|
717
799
|
});
|
|
@@ -723,6 +805,9 @@ export default {
|
|
|
723
805
|
return baseResidencyRule.concat(dataStore.rules.noResident);
|
|
724
806
|
}
|
|
725
807
|
}
|
|
808
|
+
if (dataStore.isLifetrip) {
|
|
809
|
+
return baseResidencyRule.concat(dataStore.rules.noResidentOffline);
|
|
810
|
+
}
|
|
726
811
|
return baseResidencyRule;
|
|
727
812
|
});
|
|
728
813
|
|
|
@@ -740,6 +825,8 @@ export default {
|
|
|
740
825
|
const otpCondition = computed(() => {
|
|
741
826
|
// Add conditions by product
|
|
742
827
|
if (member.value.hasAgreement) return false;
|
|
828
|
+
if (whichForm.value === formStore.beneficiaryFormKey && member.value.age !== null && Number(member.value.age) < 18) return false;
|
|
829
|
+
if (dataStore.isLifetrip && whichForm.value === formStore.insuredFormKey && member.value.isInsuredUnderage) return false;
|
|
743
830
|
if (!member.value.phoneNumber || (member.value.phoneNumber && member.value.phoneNumber.length !== useMask().phone.length)) return false;
|
|
744
831
|
return getOtpConditionByMember();
|
|
745
832
|
});
|
|
@@ -747,8 +834,8 @@ export default {
|
|
|
747
834
|
const searchMember = async () => {
|
|
748
835
|
if (!isDisabled.value) {
|
|
749
836
|
dataStore.panelAction = null;
|
|
750
|
-
dataStore.
|
|
751
|
-
dataStore.
|
|
837
|
+
dataStore.rightPanel.title = 'Поиск контрагента';
|
|
838
|
+
dataStore.rightPanel.open = true;
|
|
752
839
|
isSearchOpen.value = true;
|
|
753
840
|
isDocumentOpen.value = false;
|
|
754
841
|
isOtpPanelOpen.value = false;
|
|
@@ -765,20 +852,20 @@ export default {
|
|
|
765
852
|
const openCustomPanel = (type: 'document' | 'otp' = 'document') => {
|
|
766
853
|
dataStore.panelAction = null;
|
|
767
854
|
if (type === 'document' && memberDocument.value) {
|
|
768
|
-
dataStore.
|
|
855
|
+
dataStore.rightPanel.title = memberDocument.value.fileTypeName!;
|
|
769
856
|
isDocumentOpen.value = true;
|
|
770
857
|
isSearchOpen.value = false;
|
|
771
858
|
isPanelOpen.value = false;
|
|
772
859
|
isOtpPanelOpen.value = false;
|
|
773
860
|
}
|
|
774
861
|
if (type === 'otp') {
|
|
775
|
-
dataStore.
|
|
862
|
+
dataStore.rightPanel.title = dataStore.t('form.otpCode');
|
|
776
863
|
isOtpPanelOpen.value = true;
|
|
777
864
|
isDocumentOpen.value = false;
|
|
778
865
|
isSearchOpen.value = false;
|
|
779
866
|
isPanelOpen.value = false;
|
|
780
867
|
}
|
|
781
|
-
dataStore.
|
|
868
|
+
dataStore.rightPanel.open = true;
|
|
782
869
|
};
|
|
783
870
|
|
|
784
871
|
const openPanel = async (title: string, list: Value[], key: string, asyncFunction?: Function, filterKey?: string) => {
|
|
@@ -796,8 +883,8 @@ export default {
|
|
|
796
883
|
currentPanel.value = key as keyof typeof member.value;
|
|
797
884
|
isPanelOpen.value = true;
|
|
798
885
|
dataStore.panelAction = null;
|
|
799
|
-
dataStore.
|
|
800
|
-
dataStore.
|
|
886
|
+
dataStore.rightPanel.open = true;
|
|
887
|
+
dataStore.rightPanel.title = title;
|
|
801
888
|
|
|
802
889
|
let newList = list;
|
|
803
890
|
if (asyncFunction) {
|
|
@@ -830,7 +917,7 @@ export default {
|
|
|
830
917
|
|
|
831
918
|
const pickPanelValue = (item: Value) => {
|
|
832
919
|
if (formStore.isDisabled[whichForm.value as keyof typeof formStore.isDisabled] === false) {
|
|
833
|
-
dataStore.
|
|
920
|
+
dataStore.rightPanel.open = false;
|
|
834
921
|
isPanelOpen.value = false;
|
|
835
922
|
// @ts-ignore
|
|
836
923
|
member.value[currentPanel.value] = item.nameRu === null ? new Value() : item;
|
|
@@ -902,7 +989,7 @@ export default {
|
|
|
902
989
|
familyDialog.value = false;
|
|
903
990
|
selectedFamilyMember.value = {};
|
|
904
991
|
isButtonLoading.value = false;
|
|
905
|
-
dataStore.
|
|
992
|
+
dataStore.rightPanel.open = false;
|
|
906
993
|
isSearchOpen.value = false;
|
|
907
994
|
};
|
|
908
995
|
|
|
@@ -919,20 +1006,20 @@ export default {
|
|
|
919
1006
|
}
|
|
920
1007
|
familyDialog.value = false;
|
|
921
1008
|
isButtonLoading.value = false;
|
|
922
|
-
dataStore.
|
|
1009
|
+
dataStore.rightPanel.open = false;
|
|
923
1010
|
isSearchOpen.value = false;
|
|
924
1011
|
};
|
|
925
1012
|
|
|
926
1013
|
const getContragentFromGBDFL = async () => {
|
|
927
1014
|
if (member.value.hasAgreement !== true) {
|
|
928
1015
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
929
|
-
dataStore.
|
|
1016
|
+
dataStore.rightPanel.open = false;
|
|
930
1017
|
isSearchOpen.value = false;
|
|
931
1018
|
return;
|
|
932
1019
|
}
|
|
933
1020
|
if (!member.value.iin || member.value.iin.length !== useMask().iin.length || !member.value.phoneNumber || member.value.phoneNumber.length !== useMask().phone.length) {
|
|
934
1021
|
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'Номер телефона, ИИН' }), 5000);
|
|
935
|
-
dataStore.
|
|
1022
|
+
dataStore.rightPanel.open = false;
|
|
936
1023
|
isSearchOpen.value = false;
|
|
937
1024
|
return;
|
|
938
1025
|
}
|
|
@@ -942,7 +1029,7 @@ export default {
|
|
|
942
1029
|
if (response === true) {
|
|
943
1030
|
member.value.gotFromInsis = true;
|
|
944
1031
|
}
|
|
945
|
-
dataStore.
|
|
1032
|
+
dataStore.rightPanel.open = false;
|
|
946
1033
|
isSearchOpen.value = false;
|
|
947
1034
|
}
|
|
948
1035
|
isButtonLoading.value = false;
|
|
@@ -951,20 +1038,20 @@ export default {
|
|
|
951
1038
|
const getContragent = async () => {
|
|
952
1039
|
if (member.value.hasAgreement !== true) {
|
|
953
1040
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
954
|
-
dataStore.
|
|
1041
|
+
dataStore.rightPanel.open = false;
|
|
955
1042
|
isSearchOpen.value = false;
|
|
956
1043
|
return;
|
|
957
1044
|
}
|
|
958
1045
|
if (!member.value.iin || member.value.iin.length !== useMask().iin.length) {
|
|
959
1046
|
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'ИИН' }), 5000);
|
|
960
|
-
dataStore.
|
|
1047
|
+
dataStore.rightPanel.open = false;
|
|
961
1048
|
isSearchOpen.value = false;
|
|
962
1049
|
return;
|
|
963
1050
|
}
|
|
964
1051
|
isButtonLoading.value = true;
|
|
965
1052
|
await dataStore.getContragent(member.value, false);
|
|
966
1053
|
isButtonLoading.value = false;
|
|
967
|
-
dataStore.
|
|
1054
|
+
dataStore.rightPanel.open = false;
|
|
968
1055
|
isSearchOpen.value = false;
|
|
969
1056
|
};
|
|
970
1057
|
|
|
@@ -1034,14 +1121,17 @@ export default {
|
|
|
1034
1121
|
if (!isSaved) return false;
|
|
1035
1122
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
1036
1123
|
if (isInsured === true || remoteIsInsured.value === true) {
|
|
1037
|
-
formStore.insuredForm
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1124
|
+
const insuredFormIndex = remoteIsInsured.value === true ? 0 : isInsured === true ? formStore.insuredForm.findIndex(i => i.iin === formStore.policyholderForm.iin) : -1;
|
|
1125
|
+
if (insuredFormIndex !== -1) {
|
|
1126
|
+
formStore.insuredForm[insuredFormIndex] = formStore.policyholderForm;
|
|
1127
|
+
const isInsuredSaved = await dataStore.saveMember(
|
|
1128
|
+
member.value,
|
|
1129
|
+
memberStore.getMemberCode(formStore.insuredFormKey)!,
|
|
1130
|
+
memberStore.getMemberFromApplication(formStore.insuredFormKey, insuredFormIndex),
|
|
1131
|
+
);
|
|
1132
|
+
if (!isInsuredSaved) return false;
|
|
1133
|
+
wasInsuredAction.value = true;
|
|
1134
|
+
}
|
|
1045
1135
|
}
|
|
1046
1136
|
}
|
|
1047
1137
|
if (whichForm.value === formStore.insuredFormKey) {
|
|
@@ -1054,8 +1144,8 @@ export default {
|
|
|
1054
1144
|
await dataStore.getApplicationData(route.params.taskId as string, false, false, true, wasInsuredAction.value);
|
|
1055
1145
|
if (dataStore.controls.hasCalculator) {
|
|
1056
1146
|
if (formStore.additionalInsuranceTermsWithout && formStore.additionalInsuranceTermsWithout.length !== 0) {
|
|
1057
|
-
formStore.additionalInsuranceTerms.forEach(
|
|
1058
|
-
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(
|
|
1147
|
+
formStore.additionalInsuranceTerms.forEach(term => {
|
|
1148
|
+
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(i => i.coverTypeId === term.coverTypeId);
|
|
1059
1149
|
if (defaultTerm) {
|
|
1060
1150
|
term.coverSumName = defaultTerm.coverSumName;
|
|
1061
1151
|
term.coverSumId = defaultTerm.coverSumId;
|
|
@@ -1069,9 +1159,13 @@ export default {
|
|
|
1069
1159
|
};
|
|
1070
1160
|
|
|
1071
1161
|
const validateAgreement = () => {
|
|
1072
|
-
if (
|
|
1073
|
-
if (
|
|
1074
|
-
|
|
1162
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
1163
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
1164
|
+
return true;
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
1168
|
+
if (dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
1075
1169
|
return true;
|
|
1076
1170
|
}
|
|
1077
1171
|
}
|
|
@@ -1089,9 +1183,14 @@ export default {
|
|
|
1089
1183
|
if (v.valid) {
|
|
1090
1184
|
isSubmittingForm.value = true;
|
|
1091
1185
|
const docType = member.value.documentType.ids;
|
|
1092
|
-
if (member.value.gotFromInsis === true && (docType === '1UDL' || docType === 'SBI')) {
|
|
1186
|
+
if (member.value.gotFromInsis === true && (docType === '1UDL' || docType === 'SBI' || docType === 'PS')) {
|
|
1093
1187
|
dataStore.isLoading = true;
|
|
1094
|
-
const
|
|
1188
|
+
const docTypeCodes = {
|
|
1189
|
+
'1UDL': 1,
|
|
1190
|
+
PS: 2,
|
|
1191
|
+
SBI: 3,
|
|
1192
|
+
};
|
|
1193
|
+
const ESBDResponse = await validateESBD(docTypeCodes[docType]);
|
|
1095
1194
|
if (!ESBDResponse) {
|
|
1096
1195
|
dataStore.isLoading = false;
|
|
1097
1196
|
return;
|
|
@@ -1146,7 +1245,7 @@ export default {
|
|
|
1146
1245
|
}
|
|
1147
1246
|
otpSending.value = false;
|
|
1148
1247
|
if (checked === true) {
|
|
1149
|
-
dataStore.
|
|
1248
|
+
dataStore.rightPanel.open = false;
|
|
1150
1249
|
}
|
|
1151
1250
|
};
|
|
1152
1251
|
|
|
@@ -1156,7 +1255,7 @@ export default {
|
|
|
1156
1255
|
if (response) {
|
|
1157
1256
|
if (member.value.hasAgreement === null) member.value.hasAgreement = response.otpStatus;
|
|
1158
1257
|
if (response.otpStatus === true) {
|
|
1159
|
-
dataStore.
|
|
1258
|
+
dataStore.rightPanel.open = false;
|
|
1160
1259
|
}
|
|
1161
1260
|
}
|
|
1162
1261
|
otpSending.value = false;
|
|
@@ -1170,6 +1269,15 @@ export default {
|
|
|
1170
1269
|
if (setDefaults.percentage) {
|
|
1171
1270
|
setPercentage();
|
|
1172
1271
|
}
|
|
1272
|
+
if (setDefaults.signOfResidency) {
|
|
1273
|
+
setSignOfResidency();
|
|
1274
|
+
}
|
|
1275
|
+
if (setDefaults.countryOfTaxResidency) {
|
|
1276
|
+
setCountryOfTaxResidency();
|
|
1277
|
+
}
|
|
1278
|
+
if (setDefaults.countryOfCitizenship) {
|
|
1279
|
+
setCountryOfCitizenship();
|
|
1280
|
+
}
|
|
1173
1281
|
};
|
|
1174
1282
|
|
|
1175
1283
|
const setSectorCode = async () => {
|
|
@@ -1179,7 +1287,27 @@ export default {
|
|
|
1179
1287
|
member.value.economySectorCode = defaultValue ? defaultValue : new Value();
|
|
1180
1288
|
}
|
|
1181
1289
|
};
|
|
1182
|
-
|
|
1290
|
+
const setSignOfResidency = async () => {
|
|
1291
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1292
|
+
const residents = await dataStore.getResidents();
|
|
1293
|
+
const defaultValue = residents.find(item => String(item.nameRu).match(new RegExp('Резидент', 'i'))) as Value;
|
|
1294
|
+
member.value.signOfResidency = defaultValue ? defaultValue : new Value();
|
|
1295
|
+
}
|
|
1296
|
+
};
|
|
1297
|
+
const setCountryOfTaxResidency = async () => {
|
|
1298
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1299
|
+
const taxCountries = await dataStore.getTaxCountries();
|
|
1300
|
+
const defaultValue = taxCountries.find(item => String(item.nameRu).match(new RegExp('Казахстан', 'i'))) as Value;
|
|
1301
|
+
member.value.countryOfTaxResidency = defaultValue ? defaultValue : new Value();
|
|
1302
|
+
}
|
|
1303
|
+
};
|
|
1304
|
+
const setCountryOfCitizenship = async () => {
|
|
1305
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1306
|
+
const citizenshipCountries = await dataStore.getCitizenshipCountries();
|
|
1307
|
+
const defaultValue = citizenshipCountries.find(item => String(item.nameRu).match(new RegExp('Казахстан', 'i'))) as Value;
|
|
1308
|
+
member.value.countryOfCitizenship = defaultValue ? defaultValue : new Value();
|
|
1309
|
+
}
|
|
1310
|
+
};
|
|
1183
1311
|
const setPercentage = () => {
|
|
1184
1312
|
if (whichForm.value === formStore.beneficiaryFormKey && member.value.id === 0 && route.query.id === '0' && member.value.percentageOfPayoutAmount === null) {
|
|
1185
1313
|
if (dataStore.members.beneficiaryApp.isMultiple) {
|
|
@@ -1196,7 +1324,7 @@ export default {
|
|
|
1196
1324
|
};
|
|
1197
1325
|
|
|
1198
1326
|
const selectMember = async (index: number, update?: boolean) => {
|
|
1199
|
-
dataStore.
|
|
1327
|
+
dataStore.rightPanel.open = false;
|
|
1200
1328
|
isButtonLoading.value = true;
|
|
1201
1329
|
isChangingMember.value = true;
|
|
1202
1330
|
//@ts-ignore
|
|
@@ -1205,6 +1333,11 @@ export default {
|
|
|
1205
1333
|
isButtonLoading.value = false;
|
|
1206
1334
|
};
|
|
1207
1335
|
|
|
1336
|
+
const openDeletionDialog = (index: number) => {
|
|
1337
|
+
deletionDialog.value = true;
|
|
1338
|
+
selectedIndex.value = index;
|
|
1339
|
+
};
|
|
1340
|
+
|
|
1208
1341
|
const deleteMember = async (index: number) => {
|
|
1209
1342
|
await memberStore.deleteMember(route.params.taskId as string, whichForm.value, index);
|
|
1210
1343
|
const currentIndex = Number(whichIndex.value);
|
|
@@ -1212,6 +1345,7 @@ export default {
|
|
|
1212
1345
|
const newIndex = ref<number>(currentIndex - 1 > 0 ? currentIndex - 1 : 0);
|
|
1213
1346
|
await selectMember(newIndex.value, index === currentIndex ? true : undefined);
|
|
1214
1347
|
}
|
|
1348
|
+
deletionDialog.value = false;
|
|
1215
1349
|
};
|
|
1216
1350
|
|
|
1217
1351
|
const onInit = async () => {
|
|
@@ -1295,9 +1429,9 @@ export default {
|
|
|
1295
1429
|
};
|
|
1296
1430
|
|
|
1297
1431
|
watch(
|
|
1298
|
-
() => dataStore.
|
|
1432
|
+
() => dataStore.rightPanel.open,
|
|
1299
1433
|
() => {
|
|
1300
|
-
if (dataStore.
|
|
1434
|
+
if (dataStore.rightPanel.open === false) {
|
|
1301
1435
|
isPanelOpen.value = false;
|
|
1302
1436
|
isDocumentOpen.value = false;
|
|
1303
1437
|
isSearchOpen.value = false;
|
|
@@ -1313,6 +1447,30 @@ export default {
|
|
|
1313
1447
|
searchQuery.value = '';
|
|
1314
1448
|
}
|
|
1315
1449
|
});
|
|
1450
|
+
if (dataStore.isLifetrip) {
|
|
1451
|
+
watch(
|
|
1452
|
+
() => member.value.age,
|
|
1453
|
+
val => {
|
|
1454
|
+
if (val && Number(val) >= 18) {
|
|
1455
|
+
if (member.value.hasAgreement !== true) {
|
|
1456
|
+
member.value.hasAgreement = false;
|
|
1457
|
+
}
|
|
1458
|
+
} else {
|
|
1459
|
+
member.value.hasAgreement = true;
|
|
1460
|
+
}
|
|
1461
|
+
member.value.isInsuredUnderage = Number(val) >= 18 ? false : true;
|
|
1462
|
+
},
|
|
1463
|
+
);
|
|
1464
|
+
watch(
|
|
1465
|
+
() => member.value.isInsuredUnderage,
|
|
1466
|
+
val => {
|
|
1467
|
+
if (val === true && Number(member.value.age) >= 18) {
|
|
1468
|
+
member.value.isInsuredUnderage = false;
|
|
1469
|
+
return dataStore.showToaster('error', dataStore.t('toaster.underageShouldBeLess18'), 3000);
|
|
1470
|
+
}
|
|
1471
|
+
},
|
|
1472
|
+
);
|
|
1473
|
+
}
|
|
1316
1474
|
|
|
1317
1475
|
return {
|
|
1318
1476
|
// State
|
|
@@ -1335,6 +1493,8 @@ export default {
|
|
|
1335
1493
|
Value,
|
|
1336
1494
|
memberDocument,
|
|
1337
1495
|
familyDialog,
|
|
1496
|
+
deletionDialog,
|
|
1497
|
+
selectedIndex,
|
|
1338
1498
|
selectedFamilyMember,
|
|
1339
1499
|
sameAddress,
|
|
1340
1500
|
|
|
@@ -1352,10 +1512,13 @@ export default {
|
|
|
1352
1512
|
hasGBDFL,
|
|
1353
1513
|
hasInsis,
|
|
1354
1514
|
hasGKB,
|
|
1515
|
+
hasMiddleName,
|
|
1516
|
+
hasRelationDegree,
|
|
1355
1517
|
hasFamilyStatus,
|
|
1356
1518
|
hasInsurancePay,
|
|
1357
1519
|
hasSignOfIPDL,
|
|
1358
1520
|
hasSameAddressToggle,
|
|
1521
|
+
hasMemberSearch,
|
|
1359
1522
|
|
|
1360
1523
|
// Rules
|
|
1361
1524
|
ageRule,
|
|
@@ -1378,6 +1541,7 @@ export default {
|
|
|
1378
1541
|
getFile,
|
|
1379
1542
|
selectFamilyMember,
|
|
1380
1543
|
closeFamilyDialog,
|
|
1544
|
+
openDeletionDialog,
|
|
1381
1545
|
scrollForm,
|
|
1382
1546
|
onIinInput,
|
|
1383
1547
|
onOtpCodeInput,
|