hl-core 0.0.9-beta.4 → 0.0.9-beta.40
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 +904 -0
- package/api/index.ts +2 -620
- package/api/interceptors.ts +58 -14
- package/components/Button/Btn.vue +2 -2
- package/components/Complex/MessageBlock.vue +2 -2
- package/components/Complex/Page.vue +1 -1
- package/components/Dialog/Dialog.vue +60 -15
- package/components/Form/DynamicForm.vue +100 -0
- package/components/Form/FormBlock.vue +12 -3
- package/components/Form/FormData.vue +114 -0
- package/components/Form/FormToggle.vue +9 -3
- package/components/Form/ManagerAttachment.vue +150 -86
- package/components/Form/ProductConditionsBlock.vue +59 -6
- package/components/Input/Datepicker.vue +1 -8
- package/components/Input/DynamicInput.vue +23 -0
- package/components/Input/FileInput.vue +16 -4
- package/components/Input/FormInput.vue +1 -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/Input/SwitchInput.vue +64 -0
- package/components/Input/TextInput.vue +161 -0
- package/components/Layout/Drawer.vue +17 -4
- package/components/Layout/Header.vue +23 -2
- package/components/Layout/SettingsPanel.vue +13 -7
- package/components/Menu/InfoMenu.vue +35 -0
- package/components/Menu/MenuNav.vue +17 -2
- package/components/Pages/Anketa.vue +140 -52
- package/components/Pages/Auth.vue +12 -1
- package/components/Pages/ContragentForm.vue +129 -50
- package/components/Pages/Documents.vue +72 -7
- package/components/Pages/InvoiceInfo.vue +1 -1
- package/components/Pages/MemberForm.vue +269 -96
- package/components/Pages/ProductAgreement.vue +1 -8
- package/components/Pages/ProductConditions.vue +798 -168
- package/components/Panel/PanelHandler.vue +373 -45
- package/components/Panel/PanelSelectItem.vue +17 -2
- package/components/Panel/RightPanelCloser.vue +7 -0
- package/components/Transitions/Animation.vue +28 -0
- package/composables/axios.ts +2 -1
- package/composables/classes.ts +415 -8
- package/composables/constants.ts +65 -2
- package/composables/fields.ts +291 -0
- package/composables/index.ts +58 -5
- package/composables/styles.ts +22 -10
- package/layouts/default.vue +48 -3
- package/locales/ru.json +460 -12
- package/nuxt.config.ts +1 -1
- package/package.json +25 -22
- package/pages/Token.vue +1 -12
- package/plugins/helperFunctionsPlugins.ts +0 -3
- package/plugins/vuetifyPlugin.ts +2 -0
- package/store/data.store.ts +1031 -224
- package/store/extractStore.ts +17 -0
- package/store/form.store.ts +13 -1
- package/store/member.store.ts +1 -1
- package/store/rules.ts +53 -5
- package/types/enum.ts +37 -0
- package/types/form.ts +94 -0
- package/types/index.ts +216 -20
|
@@ -1,32 +1,65 @@
|
|
|
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-[
|
|
4
|
-
<div
|
|
5
|
-
|
|
3
|
+
<v-form v-if="member" ref="vForm" @submit="submitForm" class="max-h-[80svh] overflow-y-scroll">
|
|
4
|
+
<div
|
|
5
|
+
v-if="memberSetting && memberSetting.has === true && whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm'"
|
|
6
|
+
class="flex items-center mt-[14px] min-h-[54px]"
|
|
7
|
+
>
|
|
8
|
+
<div :class="[$styles.blueBgLight]" class="flex flex-wrap items-center gap-2 p-2 rounded-t-[8px] h-full">
|
|
6
9
|
<div
|
|
7
10
|
v-for="(each, index) of formStore[whichForm]"
|
|
8
11
|
:key="index"
|
|
9
|
-
class="
|
|
10
|
-
:class="[Number(whichIndex) === index ? `${$styles.blueBg} ${$styles.whiteText}` : '', $styles.textSimple]"
|
|
12
|
+
class="rounded-[8px] cursor-pointer flex items-center"
|
|
13
|
+
:class="[Number(whichIndex) === index ? `${$styles.blueBg} ${$styles.whiteText}` : '', $styles.textSimple, isDisabled ? 'py-2 px-3' : 'py-1 pr-1 pl-3']"
|
|
11
14
|
@click.self="index !== Number(whichIndex) ? selectMember(index) : null"
|
|
12
15
|
>
|
|
13
16
|
{{ `${$dataStore.menu.selectedItem.title} ${index + 1}` }}
|
|
14
17
|
<v-btn
|
|
18
|
+
v-if="!isDisabled"
|
|
15
19
|
icon="mdi-close !text-[20px]"
|
|
16
20
|
size="x-small"
|
|
17
21
|
:disabled="!memberStore.canMemberDeleted(whichForm, index) && !memberStore.canMemberCleared(whichForm, index)"
|
|
18
22
|
variant="plain"
|
|
19
23
|
:color="Number(whichIndex) === index ? '#FFF' : '#A0B3D8'"
|
|
20
|
-
@click.prevent="memberStore.canMemberDeleted(whichForm, index) || memberStore.canMemberCleared(whichForm, index) ?
|
|
24
|
+
@click.prevent="memberStore.canMemberDeleted(whichForm, index) || memberStore.canMemberCleared(whichForm, index) ? openDeletionDialog(index) : null"
|
|
21
25
|
/>
|
|
22
26
|
</div>
|
|
23
27
|
</div>
|
|
24
|
-
<v-btn
|
|
28
|
+
<v-btn
|
|
29
|
+
v-if="!isDisabled && memberSetting.isMultiple === true"
|
|
30
|
+
class="ml-2"
|
|
31
|
+
icon="mdi-plus !text-[24px]"
|
|
32
|
+
@click="memberStore.addMember(whichForm)"
|
|
33
|
+
size="small"
|
|
34
|
+
color="#A0B3D8"
|
|
35
|
+
variant="tonal"
|
|
36
|
+
/>
|
|
25
37
|
</div>
|
|
26
38
|
<base-form-section
|
|
27
39
|
:title="$dataStore.t('form.personalData')"
|
|
28
|
-
:class="[
|
|
40
|
+
:class="[
|
|
41
|
+
memberSetting && memberSetting.has === true && whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm'
|
|
42
|
+
? 'rounded-t-0 !mt-[-5px]'
|
|
43
|
+
: 'mt-[14px]',
|
|
44
|
+
]"
|
|
29
45
|
>
|
|
46
|
+
<base-panel-input
|
|
47
|
+
v-if="$dataStore.isLifetrip"
|
|
48
|
+
v-model="member.signOfResidency"
|
|
49
|
+
:value="member.signOfResidency?.nameRu"
|
|
50
|
+
:label="$dataStore.t('form.signOfResidency')"
|
|
51
|
+
:readonly="isDisabled"
|
|
52
|
+
:clearable="!isDisabled"
|
|
53
|
+
:rules="residencyRule"
|
|
54
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
55
|
+
@append="openPanel($dataStore.t('form.signOfResidency'), [], 'signOfResidency', $dataStore.getResidents)"
|
|
56
|
+
/>
|
|
57
|
+
<base-form-toggle
|
|
58
|
+
v-if="$dataStore.isLifetrip && whichForm === 'insuredForm'"
|
|
59
|
+
v-model="member.isInsuredUnderage"
|
|
60
|
+
:title="$dataStore.t('isInsuredUnderage')"
|
|
61
|
+
:has-border="false"
|
|
62
|
+
/>
|
|
30
63
|
<base-form-input
|
|
31
64
|
v-model="member.phoneNumber"
|
|
32
65
|
:label="$dataStore.t('form.phoneNumber')"
|
|
@@ -44,7 +77,7 @@
|
|
|
44
77
|
:maska="$maska.iin"
|
|
45
78
|
:readonly="!!isDisabled || !!isIinPhoneDisabled"
|
|
46
79
|
:clearable="!isDisabled"
|
|
47
|
-
:append-inner-icon="
|
|
80
|
+
:append-inner-icon="hasMemberSearch ? 'mdi mdi-magnify' : ''"
|
|
48
81
|
@append="searchMember"
|
|
49
82
|
@input="onIinInput"
|
|
50
83
|
:rules="$rules.required.concat($rules.iinRight)"
|
|
@@ -64,12 +97,31 @@
|
|
|
64
97
|
:rules="$rules.required.concat($rules.cyrillic)"
|
|
65
98
|
/>
|
|
66
99
|
<base-form-input
|
|
100
|
+
v-if="hasMiddleName"
|
|
67
101
|
v-model.trim="member.middleName"
|
|
68
102
|
:readonly="isDisabled || isFromGBD"
|
|
69
103
|
:clearable="!isDisabled"
|
|
70
104
|
:label="$dataStore.t('form.middleName')"
|
|
71
105
|
:rules="$rules.cyrillicNonRequired"
|
|
72
106
|
/>
|
|
107
|
+
<base-form-input
|
|
108
|
+
v-if="$dataStore.isLifetrip"
|
|
109
|
+
v-model.trim="member.lastNameLat"
|
|
110
|
+
:readonly="isDisabled || isFromGBD"
|
|
111
|
+
:clearable="!isDisabled"
|
|
112
|
+
:label="$dataStore.t('form.lastNameLat')"
|
|
113
|
+
:rules="$rules.required.concat($rules.latin)"
|
|
114
|
+
:hint="$dataStore.t('labels.checkWithDoc')"
|
|
115
|
+
/>
|
|
116
|
+
<base-form-input
|
|
117
|
+
v-if="$dataStore.isLifetrip"
|
|
118
|
+
v-model.trim="member.firstNameLat"
|
|
119
|
+
:readonly="isDisabled || isFromGBD"
|
|
120
|
+
:clearable="!isDisabled"
|
|
121
|
+
:label="$dataStore.t('form.firstNameLat')"
|
|
122
|
+
:rules="$rules.required.concat($rules.latin)"
|
|
123
|
+
:hint="$dataStore.t('labels.checkWithDoc')"
|
|
124
|
+
/>
|
|
73
125
|
<base-form-input
|
|
74
126
|
v-model="member.birthDate"
|
|
75
127
|
:readonly="isDisabled || isFromGBD"
|
|
@@ -82,9 +134,9 @@
|
|
|
82
134
|
<base-form-input v-model="member.age" :label="$dataStore.t('form.age')" :readonly="true" :clearable="!isDisabled" :rules="ageRule" />
|
|
83
135
|
<base-panel-input
|
|
84
136
|
v-model="member.gender"
|
|
85
|
-
:value="member.gender
|
|
137
|
+
:value="member.gender?.nameRu"
|
|
86
138
|
:readonly="isDisabled || isFromGBD"
|
|
87
|
-
:clearable="!isDisabled"
|
|
139
|
+
:clearable="!isDisabled && !isFromGBD"
|
|
88
140
|
:label="$dataStore.t('form.gender')"
|
|
89
141
|
:rules="$rules.objectRequired"
|
|
90
142
|
append-inner-icon="mdi mdi-chevron-right"
|
|
@@ -93,7 +145,7 @@
|
|
|
93
145
|
<base-panel-input
|
|
94
146
|
v-if="hasFamilyStatus"
|
|
95
147
|
v-model="member.familyStatus"
|
|
96
|
-
:value="member.familyStatus
|
|
148
|
+
:value="member.familyStatus?.nameRu"
|
|
97
149
|
:readonly="isDisabled"
|
|
98
150
|
:clearable="!isDisabled"
|
|
99
151
|
:label="$dataStore.t('form.familyStatus')"
|
|
@@ -102,9 +154,9 @@
|
|
|
102
154
|
@append="openPanel($dataStore.t('form.familyStatus'), [], 'familyStatus', $dataStore.getFamilyStatuses)"
|
|
103
155
|
/>
|
|
104
156
|
<base-panel-input
|
|
105
|
-
v-if="
|
|
157
|
+
v-if="hasRelationDegree"
|
|
106
158
|
v-model="member.relationDegree"
|
|
107
|
-
:value="member.relationDegree
|
|
159
|
+
:value="member.relationDegree?.nameRu"
|
|
108
160
|
:readonly="isDisabled"
|
|
109
161
|
:clearable="!isDisabled"
|
|
110
162
|
:label="$dataStore.t('form.relations')"
|
|
@@ -231,7 +283,7 @@
|
|
|
231
283
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
232
284
|
/>
|
|
233
285
|
</base-form-section>
|
|
234
|
-
<base-form-section
|
|
286
|
+
<base-form-section v-if="$dataStore.hasJobSection(whichForm)" :title="$dataStore.t('form.jobData')">
|
|
235
287
|
<base-form-input v-model.trim="member.job" :label="$dataStore.t('form.job')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
236
288
|
<base-form-input v-model.trim="member.jobPosition" :label="$dataStore.t('form.jobPosition')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
237
289
|
<base-form-input v-model.trim="member.jobPlace" :label="$dataStore.t('form.jobPlace')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
@@ -240,11 +292,11 @@
|
|
|
240
292
|
<base-form-toggle v-if="hasSameAddressToggle" v-model="sameAddress" :disabled="isDisabled" :has-border="false" :title="$dataStore.t('form.sameAddress')" />
|
|
241
293
|
<base-panel-input
|
|
242
294
|
v-model="member.registrationCountry"
|
|
243
|
-
:value="member.registrationCountry
|
|
295
|
+
:value="member.registrationCountry?.nameRu"
|
|
244
296
|
:readonly="isDisabled"
|
|
245
297
|
:clearable="!isDisabled"
|
|
246
298
|
:label="$dataStore.t('form.Country')"
|
|
247
|
-
:rules="$rules.objectRequired"
|
|
299
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
248
300
|
append-inner-icon="mdi mdi-chevron-right"
|
|
249
301
|
@append="openPanel($dataStore.t('form.Country'), [], 'registrationCountry', $dataStore.getCountries)"
|
|
250
302
|
/>
|
|
@@ -252,42 +304,42 @@
|
|
|
252
304
|
<div class="flex flex-col gap-[1px]" v-if="member.registrationCountry.nameRu === 'Казахстан' || member.registrationCountry.nameRu === null">
|
|
253
305
|
<base-panel-input
|
|
254
306
|
v-model="member.registrationProvince"
|
|
255
|
-
:value="member.registrationProvince
|
|
307
|
+
:value="member.registrationProvince?.nameRu"
|
|
256
308
|
:label="$dataStore.t('form.Province')"
|
|
257
309
|
:readonly="isDisabled"
|
|
258
310
|
:clearable="!isDisabled"
|
|
259
|
-
:rules="$rules.objectRequired"
|
|
311
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
260
312
|
append-inner-icon="mdi mdi-chevron-right"
|
|
261
313
|
@append="openPanel($dataStore.t('form.Province'), [], 'registrationProvince', $dataStore.getStates, 'registrationCountry')"
|
|
262
314
|
/>
|
|
263
315
|
<base-panel-input
|
|
264
316
|
v-model="member.registrationRegionType"
|
|
265
|
-
:value="member.registrationRegionType
|
|
317
|
+
:value="member.registrationRegionType?.nameRu"
|
|
266
318
|
:label="$dataStore.t('form.RegionType')"
|
|
267
319
|
:readonly="isDisabled"
|
|
268
320
|
:clearable="!isDisabled"
|
|
269
|
-
:rules="$rules.objectRequired"
|
|
321
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
270
322
|
append-inner-icon="mdi mdi-chevron-right"
|
|
271
323
|
@append="openPanel($dataStore.t('form.RegionType'), [], 'registrationRegionType', $dataStore.getLocalityTypes)"
|
|
272
324
|
/>
|
|
273
325
|
<base-panel-input
|
|
274
326
|
v-if="member.registrationRegionType.nameRu !== 'город'"
|
|
275
327
|
v-model="member.registrationRegion"
|
|
276
|
-
:value="member.registrationRegion
|
|
328
|
+
:value="member.registrationRegion?.nameRu"
|
|
277
329
|
:label="$dataStore.t('form.Region')"
|
|
278
330
|
:readonly="isDisabled"
|
|
279
331
|
:clearable="!isDisabled"
|
|
280
|
-
:rules="$rules.objectRequired"
|
|
332
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
281
333
|
append-inner-icon="mdi mdi-chevron-right"
|
|
282
334
|
@append="openPanel($dataStore.t('form.Region'), [], 'registrationRegion', $dataStore.getRegions, 'registrationProvince')"
|
|
283
335
|
/>
|
|
284
336
|
<base-panel-input
|
|
285
337
|
v-model="member.registrationCity"
|
|
286
|
-
:value="member.registrationCity
|
|
338
|
+
:value="member.registrationCity?.nameRu"
|
|
287
339
|
:label="$dataStore.t('form.City')"
|
|
288
340
|
:readonly="isDisabled"
|
|
289
341
|
:clearable="!isDisabled"
|
|
290
|
-
:rules="$rules.objectRequired"
|
|
342
|
+
:rules="member.isInsuredUnderage ? [] : $rules.objectRequired"
|
|
291
343
|
append-inner-icon="mdi mdi-chevron-right"
|
|
292
344
|
@append="openPanel($dataStore.t('form.City'), [], 'registrationCity', $dataStore.getCities, 'registrationProvince')"
|
|
293
345
|
/>
|
|
@@ -297,14 +349,14 @@
|
|
|
297
349
|
<base-form-input v-model.trim="member.registrationMicroDistrict" :readonly="isDisabled" :clearable="!isDisabled" :label="$dataStore.t('form.MicroDistrict')" />
|
|
298
350
|
<base-form-input
|
|
299
351
|
v-model.trim="member.registrationStreet"
|
|
300
|
-
:rules="$rules.required"
|
|
352
|
+
:rules="member.isInsuredUnderage ? [] : $rules.required"
|
|
301
353
|
:readonly="isDisabled"
|
|
302
354
|
:clearable="!isDisabled"
|
|
303
355
|
:label="$dataStore.t('form.Street')"
|
|
304
356
|
/>
|
|
305
357
|
<base-form-input
|
|
306
358
|
v-model.trim="member.registrationNumberHouse"
|
|
307
|
-
:rules="$rules.required"
|
|
359
|
+
:rules="member.isInsuredUnderage ? [] : $rules.required"
|
|
308
360
|
:readonly="isDisabled"
|
|
309
361
|
:clearable="!isDisabled"
|
|
310
362
|
:label="$dataStore.t('form.NumberHouse')"
|
|
@@ -316,7 +368,7 @@
|
|
|
316
368
|
<base-form-section :title="$dataStore.t('form.birthData')" v-if="$dataStore.hasBirthSection(whichForm)">
|
|
317
369
|
<base-panel-input
|
|
318
370
|
v-model="member.birthPlace"
|
|
319
|
-
:value="member.birthPlace
|
|
371
|
+
:value="member.birthPlace?.nameRu"
|
|
320
372
|
:label="$dataStore.t('form.Country')"
|
|
321
373
|
:readonly="isDisabled"
|
|
322
374
|
:clearable="!isDisabled"
|
|
@@ -327,7 +379,7 @@
|
|
|
327
379
|
<!-- TODO -->
|
|
328
380
|
<!-- <base-panel-input
|
|
329
381
|
v-model="member.birthRegion"
|
|
330
|
-
:value="member.birthRegion
|
|
382
|
+
:value="member.birthRegion?.nameRu"
|
|
331
383
|
:label="$dataStore.t('form.Region')"
|
|
332
384
|
:readonly="isDisabled"
|
|
333
385
|
:clearable="!isDisabled"
|
|
@@ -339,7 +391,7 @@
|
|
|
339
391
|
<base-form-section :title="$dataStore.t('form.documentData')" v-if="$dataStore.hasDocumentSection(whichForm)">
|
|
340
392
|
<base-panel-input
|
|
341
393
|
v-model="member.documentType"
|
|
342
|
-
:value="member.documentType
|
|
394
|
+
:value="member.documentType?.nameRu"
|
|
343
395
|
:label="$dataStore.t('form.documentType')"
|
|
344
396
|
:readonly="isDisabled"
|
|
345
397
|
:clearable="!isDisabled"
|
|
@@ -361,7 +413,7 @@
|
|
|
361
413
|
</base-empty-form-field> -->
|
|
362
414
|
<base-panel-input
|
|
363
415
|
v-model="member.documentIssuers"
|
|
364
|
-
:value="member.documentIssuers
|
|
416
|
+
:value="member.documentIssuers?.nameRu"
|
|
365
417
|
:label="$dataStore.t('form.documentIssuers')"
|
|
366
418
|
:readonly="isDisabled"
|
|
367
419
|
:clearable="!isDisabled"
|
|
@@ -391,8 +443,9 @@
|
|
|
391
443
|
/>
|
|
392
444
|
</base-fade-transition>
|
|
393
445
|
<base-panel-input
|
|
446
|
+
v-if="!$dataStore.isLifetrip"
|
|
394
447
|
v-model="member.signOfResidency"
|
|
395
|
-
:value="member.signOfResidency
|
|
448
|
+
:value="member.signOfResidency?.nameRu"
|
|
396
449
|
:label="$dataStore.t('form.signOfResidency')"
|
|
397
450
|
:readonly="isDisabled"
|
|
398
451
|
:clearable="!isDisabled"
|
|
@@ -402,7 +455,7 @@
|
|
|
402
455
|
/>
|
|
403
456
|
<base-panel-input
|
|
404
457
|
v-model="member.countryOfTaxResidency"
|
|
405
|
-
:value="member.countryOfTaxResidency
|
|
458
|
+
:value="member.countryOfTaxResidency?.nameRu"
|
|
406
459
|
:label="$dataStore.t('form.countryOfTaxResidency')"
|
|
407
460
|
:readonly="isDisabled"
|
|
408
461
|
:clearable="!isDisabled"
|
|
@@ -414,7 +467,7 @@
|
|
|
414
467
|
<base-panel-input
|
|
415
468
|
v-if="member.countryOfTaxResidency.ids === '500014.3'"
|
|
416
469
|
v-model="member.addTaxResidency"
|
|
417
|
-
:value="member.addTaxResidency
|
|
470
|
+
:value="member.addTaxResidency?.nameRu"
|
|
418
471
|
:label="$dataStore.t('form.addTaxResidency')"
|
|
419
472
|
:readonly="isDisabled"
|
|
420
473
|
:clearable="!isDisabled"
|
|
@@ -426,7 +479,7 @@
|
|
|
426
479
|
<base-panel-input
|
|
427
480
|
v-if="hasSignOfIPDL"
|
|
428
481
|
v-model="member.signOfIPDL"
|
|
429
|
-
:value="member.signOfIPDL
|
|
482
|
+
:value="member.signOfIPDL?.nameRu"
|
|
430
483
|
:label="$dataStore.t('form.signOfIPDL')"
|
|
431
484
|
:readonly="isDisabled"
|
|
432
485
|
:clearable="!isDisabled"
|
|
@@ -436,7 +489,7 @@
|
|
|
436
489
|
/>
|
|
437
490
|
<base-panel-input
|
|
438
491
|
v-model="member.countryOfCitizenship"
|
|
439
|
-
:value="member.countryOfCitizenship
|
|
492
|
+
:value="member.countryOfCitizenship?.nameRu"
|
|
440
493
|
:label="$dataStore.t('form.countryOfCitizenship')"
|
|
441
494
|
:readonly="isDisabled"
|
|
442
495
|
:clearable="!isDisabled"
|
|
@@ -446,7 +499,7 @@
|
|
|
446
499
|
/>
|
|
447
500
|
<base-panel-input
|
|
448
501
|
v-model="member.economySectorCode"
|
|
449
|
-
:value="member.economySectorCode
|
|
502
|
+
:value="member.economySectorCode?.nameRu"
|
|
450
503
|
:label="$dataStore.t('form.economySectorCode')"
|
|
451
504
|
:readonly="isDisabled"
|
|
452
505
|
:clearable="!isDisabled"
|
|
@@ -457,7 +510,7 @@
|
|
|
457
510
|
<base-panel-input
|
|
458
511
|
v-if="hasInsurancePay"
|
|
459
512
|
v-model="member.insurancePay"
|
|
460
|
-
:value="member.insurancePay
|
|
513
|
+
:value="member.insurancePay?.nameRu"
|
|
461
514
|
:readonly="isDisabled"
|
|
462
515
|
:clearable="!isDisabled"
|
|
463
516
|
:rules="$rules.objectRequired"
|
|
@@ -474,13 +527,13 @@
|
|
|
474
527
|
:label="$dataStore.t('form.homePhone')"
|
|
475
528
|
:readonly="isDisabled"
|
|
476
529
|
:clearable="!isDisabled"
|
|
477
|
-
:rules="whichForm === formStore.beneficiaryFormKey ? [] : $rules.phoneFormat"
|
|
530
|
+
:rules="whichForm === formStore.beneficiaryFormKey || member.isInsuredUnderage ? [] : $rules.phoneFormat"
|
|
478
531
|
/>
|
|
479
|
-
<base-form-input v-model.trim="member.email" :label="$dataStore.t('form.email')" :rules="$rules.email" />
|
|
532
|
+
<base-form-input v-model.trim="member.email" :label="$dataStore.t('form.email')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.email" />
|
|
480
533
|
</base-form-section>
|
|
481
534
|
</v-form>
|
|
482
535
|
<base-btn v-if="showSaveButton" :loading="isButtonLoading || isSubmittingForm" :text="$dataStore.t('buttons.save')" @click="submitForm" />
|
|
483
|
-
<Teleport v-if="isPanelOpen" to="#panel-actions">
|
|
536
|
+
<Teleport v-if="isPanelOpen" to="#right-panel-actions">
|
|
484
537
|
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
485
538
|
<base-rounded-input v-model="searchQuery" :label="$dataStore.t('labels.search')" class="w-full p-2" :hide-details="true" />
|
|
486
539
|
<div v-if="panelList && isPanelLoading === false" class="w-full flex flex-col gap-2 p-2">
|
|
@@ -496,20 +549,20 @@
|
|
|
496
549
|
<base-loader v-if="isPanelLoading" class="absolute mt-10" :size="50" />
|
|
497
550
|
</div>
|
|
498
551
|
</Teleport>
|
|
499
|
-
<Teleport v-if="isSearchOpen" to="#panel-actions">
|
|
552
|
+
<Teleport v-if="isSearchOpen" to="#right-panel-actions">
|
|
500
553
|
<div :class="[$styles.flexColNav]">
|
|
501
554
|
<base-btn v-if="hasGBDFL" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromGBDFL')" @click="getContragentFromGBDFL" />
|
|
502
555
|
<base-btn v-if="hasInsis" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromInsis')" @click="getContragent" />
|
|
503
556
|
<base-btn v-if="hasGKB" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromGKB')" @click="getFamilyInfo" />
|
|
504
557
|
</div>
|
|
505
558
|
</Teleport>
|
|
506
|
-
<Teleport v-if="isDocumentOpen" to="#panel-actions">
|
|
559
|
+
<Teleport v-if="isDocumentOpen" to="#right-panel-actions">
|
|
507
560
|
<div :class="[$styles.flexColNav]">
|
|
508
561
|
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Открыть" @click="getFile('view')" />
|
|
509
562
|
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Скачать" @click="getFile('download')" />
|
|
510
563
|
</div>
|
|
511
564
|
</Teleport>
|
|
512
|
-
<Teleport v-if="isOtpPanelOpen && !member.hasAgreement" to="#panel-actions">
|
|
565
|
+
<Teleport v-if="isOtpPanelOpen && !member.hasAgreement" to="#right-panel-actions">
|
|
513
566
|
<div :class="[$styles.flexColNav]">
|
|
514
567
|
<base-fade-transition>
|
|
515
568
|
<base-rounded-input
|
|
@@ -527,7 +580,16 @@
|
|
|
527
580
|
<base-btn v-if="member.otpTokenId" :disabled="otpSending" :loading="otpSending" :text="$dataStore.t('buttons.check')" @click="checkOtp()" />
|
|
528
581
|
</div>
|
|
529
582
|
</Teleport>
|
|
530
|
-
<base-dialog
|
|
583
|
+
<base-dialog
|
|
584
|
+
v-model="deletionDialog"
|
|
585
|
+
:title="$dataStore.t('dialog.confirmDelete')"
|
|
586
|
+
:subtitle="$dataStore.t('dialog.delete')"
|
|
587
|
+
:confirm="$dataStore.t('confirm.delete')"
|
|
588
|
+
:icon="{ mdi: 'delete-outline', color: '#FD2D39' }"
|
|
589
|
+
@yes="deleteMember"
|
|
590
|
+
@no="deletionDialog = false"
|
|
591
|
+
/>
|
|
592
|
+
<base-dialog v-model="familyDialog" :subtitle="$dataStore.t('dialog.familyMember')" :icon="{ mdi: 'hand-pointing-up' }" actions="familyDialog">
|
|
531
593
|
<template #actions>
|
|
532
594
|
<base-family-dialog :selected="selectedFamilyMember" @selectFamilyMember="selectFamilyMember" @reset="closeFamilyDialog(true)" />
|
|
533
595
|
</template>
|
|
@@ -566,6 +628,8 @@ export default {
|
|
|
566
628
|
const isPanelLoading = ref<boolean>(false);
|
|
567
629
|
const isChangingMember = ref<boolean>(false);
|
|
568
630
|
const familyDialog = ref<boolean>(false);
|
|
631
|
+
const deletionDialog = ref<boolean>(false);
|
|
632
|
+
const selectedIndex = ref<number>(0);
|
|
569
633
|
const sameAddress = ref<boolean>(false);
|
|
570
634
|
const panelValue = ref<Value>(new Value());
|
|
571
635
|
const panelList = ref<Value[]>([]);
|
|
@@ -581,7 +645,7 @@ export default {
|
|
|
581
645
|
const isFromGBD = computed(() => !!member.value.gosPersonData);
|
|
582
646
|
const showSaveButton = computed(() => {
|
|
583
647
|
const generalCondition = !isDisabled.value && !!isTask.value && !!dataStore.isInitiator();
|
|
584
|
-
const
|
|
648
|
+
const perMemberCondition = () => {
|
|
585
649
|
switch (whichForm.value) {
|
|
586
650
|
case formStore.policyholderFormKey:
|
|
587
651
|
return true;
|
|
@@ -594,7 +658,7 @@ export default {
|
|
|
594
658
|
return false;
|
|
595
659
|
}
|
|
596
660
|
};
|
|
597
|
-
return generalCondition &&
|
|
661
|
+
return generalCondition && perMemberCondition();
|
|
598
662
|
});
|
|
599
663
|
|
|
600
664
|
const hasGBDFL = computed(() => {
|
|
@@ -607,9 +671,17 @@ export default {
|
|
|
607
671
|
if (dataStore.isBolashak || dataStore.isGons) {
|
|
608
672
|
return false;
|
|
609
673
|
}
|
|
674
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
675
|
+
return false;
|
|
676
|
+
}
|
|
677
|
+
return true;
|
|
678
|
+
}
|
|
679
|
+
case formStore.insuredFormKey: {
|
|
680
|
+
if (dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
681
|
+
return false;
|
|
682
|
+
}
|
|
610
683
|
return true;
|
|
611
684
|
}
|
|
612
|
-
case formStore.insuredFormKey:
|
|
613
685
|
case formStore.beneficialOwnerFormKey:
|
|
614
686
|
case formStore.policyholdersRepresentativeFormKey:
|
|
615
687
|
return true;
|
|
@@ -640,8 +712,26 @@ export default {
|
|
|
640
712
|
};
|
|
641
713
|
return dataStore.controls.hasGKB && !!dataStore.isTask() && perMemberCondition();
|
|
642
714
|
});
|
|
643
|
-
|
|
715
|
+
const hasMemberSearch = computed(() => showSaveButton.value && (hasGBDFL.value || hasGKB.value || hasInsis.value));
|
|
716
|
+
const hasMiddleName = computed(() => {
|
|
717
|
+
if (dataStore.isLifetrip) {
|
|
718
|
+
return false;
|
|
719
|
+
}
|
|
720
|
+
return true;
|
|
721
|
+
});
|
|
722
|
+
const hasRelationDegree = computed(() => {
|
|
723
|
+
if (dataStore.isLifetrip) {
|
|
724
|
+
return false;
|
|
725
|
+
}
|
|
726
|
+
if ((whichForm.value === formStore.beneficiaryFormKey || whichForm.value === formStore.insuredFormKey) && member.value.iin !== formStore.policyholderForm.iin) {
|
|
727
|
+
return true;
|
|
728
|
+
}
|
|
729
|
+
return false;
|
|
730
|
+
});
|
|
644
731
|
const hasFamilyStatus = computed(() => {
|
|
732
|
+
if (dataStore.isLifetrip) {
|
|
733
|
+
return false;
|
|
734
|
+
}
|
|
645
735
|
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
646
736
|
if (dataStore.isBolashak) {
|
|
647
737
|
return false;
|
|
@@ -658,7 +748,7 @@ export default {
|
|
|
658
748
|
return false;
|
|
659
749
|
});
|
|
660
750
|
const hasSignOfIPDL = computed(() => {
|
|
661
|
-
if (dataStore.isGons) {
|
|
751
|
+
if (dataStore.isGons || dataStore.isLifetrip) {
|
|
662
752
|
return false;
|
|
663
753
|
}
|
|
664
754
|
return true;
|
|
@@ -667,7 +757,7 @@ export default {
|
|
|
667
757
|
|
|
668
758
|
const birthDateRule = computed(() => {
|
|
669
759
|
const baseDateRule = dataStore.rules.required.concat(dataStore.rules.birthDate);
|
|
670
|
-
const
|
|
760
|
+
const byMemberAndProductRule = () => {
|
|
671
761
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
672
762
|
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek) {
|
|
673
763
|
return dataStore.rules.age18ByDate;
|
|
@@ -677,10 +767,13 @@ export default {
|
|
|
677
767
|
if (dataStore.isBolashak || dataStore.isBaiterek) {
|
|
678
768
|
return dataStore.rules.age18ByDate;
|
|
679
769
|
}
|
|
770
|
+
if (dataStore.isLifetrip) {
|
|
771
|
+
return dataStore.rules.ageExceeds80ByDate;
|
|
772
|
+
}
|
|
680
773
|
}
|
|
681
774
|
return [];
|
|
682
775
|
};
|
|
683
|
-
return baseDateRule.concat(
|
|
776
|
+
return baseDateRule.concat(byMemberAndProductRule());
|
|
684
777
|
});
|
|
685
778
|
const ageRule = computed(() => {
|
|
686
779
|
const baseAgeRule = dataStore.rules.numbers;
|
|
@@ -711,10 +804,13 @@ export default {
|
|
|
711
804
|
if (dataStore.isGons || dataStore.isBolashak) {
|
|
712
805
|
return [];
|
|
713
806
|
}
|
|
714
|
-
if (
|
|
807
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
715
808
|
return [];
|
|
716
809
|
}
|
|
717
810
|
}
|
|
811
|
+
if (member.value.isInsuredUnderage) {
|
|
812
|
+
return [];
|
|
813
|
+
}
|
|
718
814
|
return basePhoneRule;
|
|
719
815
|
});
|
|
720
816
|
|
|
@@ -725,6 +821,9 @@ export default {
|
|
|
725
821
|
return baseResidencyRule.concat(dataStore.rules.noResident);
|
|
726
822
|
}
|
|
727
823
|
}
|
|
824
|
+
if (dataStore.isLifetrip) {
|
|
825
|
+
return baseResidencyRule.concat(dataStore.rules.noResidentOffline);
|
|
826
|
+
}
|
|
728
827
|
return baseResidencyRule;
|
|
729
828
|
});
|
|
730
829
|
|
|
@@ -742,6 +841,8 @@ export default {
|
|
|
742
841
|
const otpCondition = computed(() => {
|
|
743
842
|
// Add conditions by product
|
|
744
843
|
if (member.value.hasAgreement) return false;
|
|
844
|
+
if (whichForm.value === formStore.beneficiaryFormKey && member.value.age !== null && Number(member.value.age) < 18) return false;
|
|
845
|
+
if (dataStore.isLifetrip && whichForm.value === formStore.insuredFormKey && member.value.isInsuredUnderage) return false;
|
|
745
846
|
if (!member.value.phoneNumber || (member.value.phoneNumber && member.value.phoneNumber.length !== useMask().phone.length)) return false;
|
|
746
847
|
return getOtpConditionByMember();
|
|
747
848
|
});
|
|
@@ -749,8 +850,8 @@ export default {
|
|
|
749
850
|
const searchMember = async () => {
|
|
750
851
|
if (!isDisabled.value) {
|
|
751
852
|
dataStore.panelAction = null;
|
|
752
|
-
dataStore.
|
|
753
|
-
dataStore.
|
|
853
|
+
dataStore.rightPanel.title = 'Поиск контрагента';
|
|
854
|
+
dataStore.rightPanel.open = true;
|
|
754
855
|
isSearchOpen.value = true;
|
|
755
856
|
isDocumentOpen.value = false;
|
|
756
857
|
isOtpPanelOpen.value = false;
|
|
@@ -767,20 +868,20 @@ export default {
|
|
|
767
868
|
const openCustomPanel = (type: 'document' | 'otp' = 'document') => {
|
|
768
869
|
dataStore.panelAction = null;
|
|
769
870
|
if (type === 'document' && memberDocument.value) {
|
|
770
|
-
dataStore.
|
|
871
|
+
dataStore.rightPanel.title = memberDocument.value.fileTypeName!;
|
|
771
872
|
isDocumentOpen.value = true;
|
|
772
873
|
isSearchOpen.value = false;
|
|
773
874
|
isPanelOpen.value = false;
|
|
774
875
|
isOtpPanelOpen.value = false;
|
|
775
876
|
}
|
|
776
877
|
if (type === 'otp') {
|
|
777
|
-
dataStore.
|
|
878
|
+
dataStore.rightPanel.title = dataStore.t('form.otpCode');
|
|
778
879
|
isOtpPanelOpen.value = true;
|
|
779
880
|
isDocumentOpen.value = false;
|
|
780
881
|
isSearchOpen.value = false;
|
|
781
882
|
isPanelOpen.value = false;
|
|
782
883
|
}
|
|
783
|
-
dataStore.
|
|
884
|
+
dataStore.rightPanel.open = true;
|
|
784
885
|
};
|
|
785
886
|
|
|
786
887
|
const openPanel = async (title: string, list: Value[], key: string, asyncFunction?: Function, filterKey?: string) => {
|
|
@@ -798,8 +899,8 @@ export default {
|
|
|
798
899
|
currentPanel.value = key as keyof typeof member.value;
|
|
799
900
|
isPanelOpen.value = true;
|
|
800
901
|
dataStore.panelAction = null;
|
|
801
|
-
dataStore.
|
|
802
|
-
dataStore.
|
|
902
|
+
dataStore.rightPanel.open = true;
|
|
903
|
+
dataStore.rightPanel.title = title;
|
|
803
904
|
|
|
804
905
|
let newList = list;
|
|
805
906
|
if (asyncFunction) {
|
|
@@ -832,7 +933,7 @@ export default {
|
|
|
832
933
|
|
|
833
934
|
const pickPanelValue = (item: Value) => {
|
|
834
935
|
if (formStore.isDisabled[whichForm.value as keyof typeof formStore.isDisabled] === false) {
|
|
835
|
-
dataStore.
|
|
936
|
+
dataStore.rightPanel.open = false;
|
|
836
937
|
isPanelOpen.value = false;
|
|
837
938
|
// @ts-ignore
|
|
838
939
|
member.value[currentPanel.value] = item.nameRu === null ? new Value() : item;
|
|
@@ -904,7 +1005,7 @@ export default {
|
|
|
904
1005
|
familyDialog.value = false;
|
|
905
1006
|
selectedFamilyMember.value = {};
|
|
906
1007
|
isButtonLoading.value = false;
|
|
907
|
-
dataStore.
|
|
1008
|
+
dataStore.rightPanel.open = false;
|
|
908
1009
|
isSearchOpen.value = false;
|
|
909
1010
|
};
|
|
910
1011
|
|
|
@@ -921,20 +1022,20 @@ export default {
|
|
|
921
1022
|
}
|
|
922
1023
|
familyDialog.value = false;
|
|
923
1024
|
isButtonLoading.value = false;
|
|
924
|
-
dataStore.
|
|
1025
|
+
dataStore.rightPanel.open = false;
|
|
925
1026
|
isSearchOpen.value = false;
|
|
926
1027
|
};
|
|
927
1028
|
|
|
928
1029
|
const getContragentFromGBDFL = async () => {
|
|
929
1030
|
if (member.value.hasAgreement !== true) {
|
|
930
1031
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
931
|
-
dataStore.
|
|
1032
|
+
dataStore.rightPanel.open = false;
|
|
932
1033
|
isSearchOpen.value = false;
|
|
933
1034
|
return;
|
|
934
1035
|
}
|
|
935
1036
|
if (!member.value.iin || member.value.iin.length !== useMask().iin.length || !member.value.phoneNumber || member.value.phoneNumber.length !== useMask().phone.length) {
|
|
936
1037
|
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'Номер телефона, ИИН' }), 5000);
|
|
937
|
-
dataStore.
|
|
1038
|
+
dataStore.rightPanel.open = false;
|
|
938
1039
|
isSearchOpen.value = false;
|
|
939
1040
|
return;
|
|
940
1041
|
}
|
|
@@ -944,7 +1045,7 @@ export default {
|
|
|
944
1045
|
if (response === true) {
|
|
945
1046
|
member.value.gotFromInsis = true;
|
|
946
1047
|
}
|
|
947
|
-
dataStore.
|
|
1048
|
+
dataStore.rightPanel.open = false;
|
|
948
1049
|
isSearchOpen.value = false;
|
|
949
1050
|
}
|
|
950
1051
|
isButtonLoading.value = false;
|
|
@@ -953,20 +1054,20 @@ export default {
|
|
|
953
1054
|
const getContragent = async () => {
|
|
954
1055
|
if (member.value.hasAgreement !== true) {
|
|
955
1056
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
956
|
-
dataStore.
|
|
1057
|
+
dataStore.rightPanel.open = false;
|
|
957
1058
|
isSearchOpen.value = false;
|
|
958
1059
|
return;
|
|
959
1060
|
}
|
|
960
1061
|
if (!member.value.iin || member.value.iin.length !== useMask().iin.length) {
|
|
961
1062
|
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'ИИН' }), 5000);
|
|
962
|
-
dataStore.
|
|
1063
|
+
dataStore.rightPanel.open = false;
|
|
963
1064
|
isSearchOpen.value = false;
|
|
964
1065
|
return;
|
|
965
1066
|
}
|
|
966
1067
|
isButtonLoading.value = true;
|
|
967
1068
|
await dataStore.getContragent(member.value, false);
|
|
968
1069
|
isButtonLoading.value = false;
|
|
969
|
-
dataStore.
|
|
1070
|
+
dataStore.rightPanel.open = false;
|
|
970
1071
|
isSearchOpen.value = false;
|
|
971
1072
|
};
|
|
972
1073
|
|
|
@@ -1036,14 +1137,17 @@ export default {
|
|
|
1036
1137
|
if (!isSaved) return false;
|
|
1037
1138
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
1038
1139
|
if (isInsured === true || remoteIsInsured.value === true) {
|
|
1039
|
-
formStore.insuredForm
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1140
|
+
const insuredFormIndex = remoteIsInsured.value === true ? 0 : isInsured === true ? formStore.insuredForm.findIndex(i => i.iin === formStore.policyholderForm.iin) : -1;
|
|
1141
|
+
if (insuredFormIndex !== -1) {
|
|
1142
|
+
formStore.insuredForm[insuredFormIndex] = formStore.policyholderForm;
|
|
1143
|
+
const isInsuredSaved = await dataStore.saveMember(
|
|
1144
|
+
member.value,
|
|
1145
|
+
memberStore.getMemberCode(formStore.insuredFormKey)!,
|
|
1146
|
+
memberStore.getMemberFromApplication(formStore.insuredFormKey, insuredFormIndex),
|
|
1147
|
+
);
|
|
1148
|
+
if (!isInsuredSaved) return false;
|
|
1149
|
+
wasInsuredAction.value = true;
|
|
1150
|
+
}
|
|
1047
1151
|
}
|
|
1048
1152
|
}
|
|
1049
1153
|
if (whichForm.value === formStore.insuredFormKey) {
|
|
@@ -1056,8 +1160,8 @@ export default {
|
|
|
1056
1160
|
await dataStore.getApplicationData(route.params.taskId as string, false, false, true, wasInsuredAction.value);
|
|
1057
1161
|
if (dataStore.controls.hasCalculator) {
|
|
1058
1162
|
if (formStore.additionalInsuranceTermsWithout && formStore.additionalInsuranceTermsWithout.length !== 0) {
|
|
1059
|
-
formStore.additionalInsuranceTerms.forEach(
|
|
1060
|
-
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(
|
|
1163
|
+
formStore.additionalInsuranceTerms.forEach(term => {
|
|
1164
|
+
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(i => i.coverTypeId === term.coverTypeId);
|
|
1061
1165
|
if (defaultTerm) {
|
|
1062
1166
|
term.coverSumName = defaultTerm.coverSumName;
|
|
1063
1167
|
term.coverSumId = defaultTerm.coverSumId;
|
|
@@ -1071,14 +1175,13 @@ export default {
|
|
|
1071
1175
|
};
|
|
1072
1176
|
|
|
1073
1177
|
const validateAgreement = () => {
|
|
1074
|
-
if (
|
|
1075
|
-
if (
|
|
1076
|
-
// TODO уточнить
|
|
1178
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
1179
|
+
if (member.value.age !== null && Number(member.value.age) < 18) {
|
|
1077
1180
|
return true;
|
|
1078
1181
|
}
|
|
1079
1182
|
}
|
|
1080
|
-
if (
|
|
1081
|
-
if (
|
|
1183
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
1184
|
+
if (dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
1082
1185
|
return true;
|
|
1083
1186
|
}
|
|
1084
1187
|
}
|
|
@@ -1096,9 +1199,14 @@ export default {
|
|
|
1096
1199
|
if (v.valid) {
|
|
1097
1200
|
isSubmittingForm.value = true;
|
|
1098
1201
|
const docType = member.value.documentType.ids;
|
|
1099
|
-
if (member.value.gotFromInsis === true && (docType === '1UDL' || docType === 'SBI')) {
|
|
1202
|
+
if (member.value.gotFromInsis === true && (docType === '1UDL' || docType === 'SBI' || docType === 'PS')) {
|
|
1100
1203
|
dataStore.isLoading = true;
|
|
1101
|
-
const
|
|
1204
|
+
const docTypeCodes = {
|
|
1205
|
+
'1UDL': 1,
|
|
1206
|
+
PS: 2,
|
|
1207
|
+
SBI: 3,
|
|
1208
|
+
};
|
|
1209
|
+
const ESBDResponse = await validateESBD(docTypeCodes[docType]);
|
|
1102
1210
|
if (!ESBDResponse) {
|
|
1103
1211
|
dataStore.isLoading = false;
|
|
1104
1212
|
return;
|
|
@@ -1153,7 +1261,7 @@ export default {
|
|
|
1153
1261
|
}
|
|
1154
1262
|
otpSending.value = false;
|
|
1155
1263
|
if (checked === true) {
|
|
1156
|
-
dataStore.
|
|
1264
|
+
dataStore.rightPanel.open = false;
|
|
1157
1265
|
}
|
|
1158
1266
|
};
|
|
1159
1267
|
|
|
@@ -1163,7 +1271,7 @@ export default {
|
|
|
1163
1271
|
if (response) {
|
|
1164
1272
|
if (member.value.hasAgreement === null) member.value.hasAgreement = response.otpStatus;
|
|
1165
1273
|
if (response.otpStatus === true) {
|
|
1166
|
-
dataStore.
|
|
1274
|
+
dataStore.rightPanel.open = false;
|
|
1167
1275
|
}
|
|
1168
1276
|
}
|
|
1169
1277
|
otpSending.value = false;
|
|
@@ -1177,6 +1285,15 @@ export default {
|
|
|
1177
1285
|
if (setDefaults.percentage) {
|
|
1178
1286
|
setPercentage();
|
|
1179
1287
|
}
|
|
1288
|
+
if (setDefaults.signOfResidency) {
|
|
1289
|
+
setSignOfResidency();
|
|
1290
|
+
}
|
|
1291
|
+
if (setDefaults.countryOfTaxResidency) {
|
|
1292
|
+
setCountryOfTaxResidency();
|
|
1293
|
+
}
|
|
1294
|
+
if (setDefaults.countryOfCitizenship) {
|
|
1295
|
+
setCountryOfCitizenship();
|
|
1296
|
+
}
|
|
1180
1297
|
};
|
|
1181
1298
|
|
|
1182
1299
|
const setSectorCode = async () => {
|
|
@@ -1186,7 +1303,27 @@ export default {
|
|
|
1186
1303
|
member.value.economySectorCode = defaultValue ? defaultValue : new Value();
|
|
1187
1304
|
}
|
|
1188
1305
|
};
|
|
1189
|
-
|
|
1306
|
+
const setSignOfResidency = async () => {
|
|
1307
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1308
|
+
const residents = await dataStore.getResidents();
|
|
1309
|
+
const defaultValue = residents.find(item => String(item.nameRu).match(new RegExp('Резидент', 'i'))) as Value;
|
|
1310
|
+
member.value.signOfResidency = defaultValue ? defaultValue : new Value();
|
|
1311
|
+
}
|
|
1312
|
+
};
|
|
1313
|
+
const setCountryOfTaxResidency = async () => {
|
|
1314
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1315
|
+
const taxCountries = await dataStore.getTaxCountries();
|
|
1316
|
+
const defaultValue = taxCountries.find(item => String(item.nameRu).match(new RegExp('Казахстан', 'i'))) as Value;
|
|
1317
|
+
member.value.countryOfTaxResidency = defaultValue ? defaultValue : new Value();
|
|
1318
|
+
}
|
|
1319
|
+
};
|
|
1320
|
+
const setCountryOfCitizenship = async () => {
|
|
1321
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1322
|
+
const citizenshipCountries = await dataStore.getCitizenshipCountries();
|
|
1323
|
+
const defaultValue = citizenshipCountries.find(item => String(item.nameRu).match(new RegExp('Казахстан', 'i'))) as Value;
|
|
1324
|
+
member.value.countryOfCitizenship = defaultValue ? defaultValue : new Value();
|
|
1325
|
+
}
|
|
1326
|
+
};
|
|
1190
1327
|
const setPercentage = () => {
|
|
1191
1328
|
if (whichForm.value === formStore.beneficiaryFormKey && member.value.id === 0 && route.query.id === '0' && member.value.percentageOfPayoutAmount === null) {
|
|
1192
1329
|
if (dataStore.members.beneficiaryApp.isMultiple) {
|
|
@@ -1203,7 +1340,7 @@ export default {
|
|
|
1203
1340
|
};
|
|
1204
1341
|
|
|
1205
1342
|
const selectMember = async (index: number, update?: boolean) => {
|
|
1206
|
-
dataStore.
|
|
1343
|
+
dataStore.rightPanel.open = false;
|
|
1207
1344
|
isButtonLoading.value = true;
|
|
1208
1345
|
isChangingMember.value = true;
|
|
1209
1346
|
//@ts-ignore
|
|
@@ -1212,13 +1349,19 @@ export default {
|
|
|
1212
1349
|
isButtonLoading.value = false;
|
|
1213
1350
|
};
|
|
1214
1351
|
|
|
1215
|
-
const
|
|
1216
|
-
|
|
1352
|
+
const openDeletionDialog = (index: number) => {
|
|
1353
|
+
deletionDialog.value = true;
|
|
1354
|
+
selectedIndex.value = index;
|
|
1355
|
+
};
|
|
1356
|
+
|
|
1357
|
+
const deleteMember = async () => {
|
|
1358
|
+
await memberStore.deleteMember(route.params.taskId as string, whichForm.value, selectedIndex.value);
|
|
1217
1359
|
const currentIndex = Number(whichIndex.value);
|
|
1218
|
-
if (
|
|
1360
|
+
if (selectedIndex.value <= currentIndex) {
|
|
1219
1361
|
const newIndex = ref<number>(currentIndex - 1 > 0 ? currentIndex - 1 : 0);
|
|
1220
|
-
await selectMember(newIndex.value,
|
|
1362
|
+
await selectMember(newIndex.value, selectedIndex.value === currentIndex ? true : undefined);
|
|
1221
1363
|
}
|
|
1364
|
+
deletionDialog.value = false;
|
|
1222
1365
|
};
|
|
1223
1366
|
|
|
1224
1367
|
const onInit = async () => {
|
|
@@ -1302,9 +1445,9 @@ export default {
|
|
|
1302
1445
|
};
|
|
1303
1446
|
|
|
1304
1447
|
watch(
|
|
1305
|
-
() => dataStore.
|
|
1448
|
+
() => dataStore.rightPanel.open,
|
|
1306
1449
|
() => {
|
|
1307
|
-
if (dataStore.
|
|
1450
|
+
if (dataStore.rightPanel.open === false) {
|
|
1308
1451
|
isPanelOpen.value = false;
|
|
1309
1452
|
isDocumentOpen.value = false;
|
|
1310
1453
|
isSearchOpen.value = false;
|
|
@@ -1320,6 +1463,30 @@ export default {
|
|
|
1320
1463
|
searchQuery.value = '';
|
|
1321
1464
|
}
|
|
1322
1465
|
});
|
|
1466
|
+
if (dataStore.isLifetrip) {
|
|
1467
|
+
watch(
|
|
1468
|
+
() => member.value.age,
|
|
1469
|
+
val => {
|
|
1470
|
+
if (val && Number(val) >= 18) {
|
|
1471
|
+
if (member.value.hasAgreement !== true) {
|
|
1472
|
+
member.value.hasAgreement = false;
|
|
1473
|
+
}
|
|
1474
|
+
} else {
|
|
1475
|
+
member.value.hasAgreement = true;
|
|
1476
|
+
}
|
|
1477
|
+
member.value.isInsuredUnderage = Number(val) >= 18 ? false : true;
|
|
1478
|
+
},
|
|
1479
|
+
);
|
|
1480
|
+
watch(
|
|
1481
|
+
() => member.value.isInsuredUnderage,
|
|
1482
|
+
val => {
|
|
1483
|
+
if (val === true && Number(member.value.age) >= 18) {
|
|
1484
|
+
member.value.isInsuredUnderage = false;
|
|
1485
|
+
return dataStore.showToaster('error', dataStore.t('toaster.underageShouldBeLess18'), 3000);
|
|
1486
|
+
}
|
|
1487
|
+
},
|
|
1488
|
+
);
|
|
1489
|
+
}
|
|
1323
1490
|
|
|
1324
1491
|
return {
|
|
1325
1492
|
// State
|
|
@@ -1342,6 +1509,8 @@ export default {
|
|
|
1342
1509
|
Value,
|
|
1343
1510
|
memberDocument,
|
|
1344
1511
|
familyDialog,
|
|
1512
|
+
deletionDialog,
|
|
1513
|
+
selectedIndex,
|
|
1345
1514
|
selectedFamilyMember,
|
|
1346
1515
|
sameAddress,
|
|
1347
1516
|
|
|
@@ -1359,10 +1528,13 @@ export default {
|
|
|
1359
1528
|
hasGBDFL,
|
|
1360
1529
|
hasInsis,
|
|
1361
1530
|
hasGKB,
|
|
1531
|
+
hasMiddleName,
|
|
1532
|
+
hasRelationDegree,
|
|
1362
1533
|
hasFamilyStatus,
|
|
1363
1534
|
hasInsurancePay,
|
|
1364
1535
|
hasSignOfIPDL,
|
|
1365
1536
|
hasSameAddressToggle,
|
|
1537
|
+
hasMemberSearch,
|
|
1366
1538
|
|
|
1367
1539
|
// Rules
|
|
1368
1540
|
ageRule,
|
|
@@ -1385,6 +1557,7 @@ export default {
|
|
|
1385
1557
|
getFile,
|
|
1386
1558
|
selectFamilyMember,
|
|
1387
1559
|
closeFamilyDialog,
|
|
1560
|
+
openDeletionDialog,
|
|
1388
1561
|
scrollForm,
|
|
1389
1562
|
onIinInput,
|
|
1390
1563
|
onOtpCodeInput,
|