hl-core 0.0.10-beta.7 → 0.0.10-beta.70
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/README.md +0 -2
- package/api/base.api.ts +425 -134
- package/api/interceptors.ts +162 -62
- package/components/Dialog/Dialog.vue +5 -1
- package/components/Dialog/DigitalDocumentsDialog.vue +129 -0
- package/components/Dialog/FamilyDialog.vue +15 -4
- package/components/Form/DigitalDocument.vue +52 -0
- package/components/Form/FormSource.vue +30 -0
- package/components/Form/ManagerAttachment.vue +85 -11
- package/components/Form/ProductConditionsBlock.vue +12 -6
- package/components/Input/Datepicker.vue +5 -0
- package/components/Input/FileInput.vue +1 -1
- package/components/Input/FormInput.vue +7 -0
- package/components/Input/OtpInput.vue +25 -0
- package/components/Input/RoundedInput.vue +2 -0
- package/components/Input/RoundedSelect.vue +2 -0
- package/components/Input/TextAreaField.vue +71 -0
- package/components/Input/TextHint.vue +13 -0
- package/components/Layout/SettingsPanel.vue +2 -1
- package/components/Menu/MenuNav.vue +2 -1
- package/components/Pages/Anketa.vue +207 -176
- package/components/Pages/Auth.vue +10 -3
- package/components/Pages/ContragentForm.vue +24 -18
- package/components/Pages/Documents.vue +488 -66
- package/components/Pages/MemberForm.vue +1009 -268
- package/components/Pages/ProductConditions.vue +1424 -273
- package/components/Panel/PanelHandler.vue +329 -126
- package/components/Utilities/Chip.vue +1 -1
- package/components/Utilities/JsonViewer.vue +1 -2
- package/composables/classes.ts +136 -20
- package/composables/constants.ts +168 -1
- package/composables/index.ts +467 -9
- package/composables/styles.ts +8 -24
- package/configs/i18n.ts +2 -0
- package/configs/pwa.ts +1 -7
- package/layouts/clear.vue +1 -1
- package/layouts/default.vue +2 -2
- package/layouts/full.vue +1 -1
- package/locales/kz.json +1239 -0
- package/locales/ru.json +133 -21
- package/nuxt.config.ts +8 -6
- package/package.json +14 -13
- package/plugins/head.ts +7 -1
- package/plugins/helperFunctionsPlugins.ts +1 -0
- package/store/data.store.ts +1080 -552
- package/store/member.store.ts +19 -8
- package/store/rules.ts +75 -8
- package/types/enum.ts +52 -2
- package/types/index.ts +143 -6
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
v-model="formStore.applicationData.insuredApp.iin"
|
|
36
36
|
:maska="$maska.iin"
|
|
37
37
|
:readonly="isDisabled"
|
|
38
|
-
:clearable="
|
|
38
|
+
:clearable="!isDisabled"
|
|
39
39
|
:label="$dataStore.t('pension.insuredIIN')"
|
|
40
40
|
append-inner-icon="mdi mdi-chevron-right"
|
|
41
41
|
@append="searchMember"
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
</base-fade-transition>
|
|
45
45
|
</base-form-section>
|
|
46
46
|
<base-form-section
|
|
47
|
+
v-if="$dataStore.hasPersonalDataSection(whichForm)"
|
|
47
48
|
:title="$dataStore.t('form.personalData')"
|
|
48
49
|
:class="[memberSetting && memberSetting.has === true && memberSetting.isMultiple === true ? 'rounded-t-0 !mt-[-5px]' : 'mt-[14px]']"
|
|
49
50
|
>
|
|
@@ -58,61 +59,88 @@
|
|
|
58
59
|
append-inner-icon="mdi mdi-chevron-right"
|
|
59
60
|
@append="openPanel($dataStore.t('form.signOfResidency'), [], 'signOfResidency', $dataStore.getResidents)"
|
|
60
61
|
/>
|
|
62
|
+
<base-panel-input
|
|
63
|
+
v-if="hasGKB"
|
|
64
|
+
v-model="member.relationDegree"
|
|
65
|
+
:value="member.relationDegree?.nameRu"
|
|
66
|
+
:readonly="isDisabled"
|
|
67
|
+
:clearable="!isDisabled"
|
|
68
|
+
:label="$dataStore.t('form.relations')"
|
|
69
|
+
:rules="$rules.objectRequired"
|
|
70
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
71
|
+
@append="openPanel($dataStore.t('form.relations'), filteredRelationsData, 'relationDegree')"
|
|
72
|
+
/>
|
|
61
73
|
<base-form-toggle
|
|
62
74
|
v-if="$dataStore.isLifetrip && whichForm === 'insuredForm'"
|
|
63
75
|
v-model="member.isInsuredUnderage"
|
|
64
76
|
:title="$dataStore.t('isInsuredUnderage')"
|
|
65
77
|
:has-border="false"
|
|
66
78
|
/>
|
|
79
|
+
<base-panel-input
|
|
80
|
+
v-if="whichForm === formStore.beneficiaryFormKey && ($dataStore.isGons || $dataStore.isBolashak)"
|
|
81
|
+
v-model="member.chooseChild"
|
|
82
|
+
:value="member.chooseChild"
|
|
83
|
+
:label="$dataStore.t('form.chooseChild')"
|
|
84
|
+
:readonly="isDisabled"
|
|
85
|
+
:clearable="!isDisabled"
|
|
86
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
87
|
+
@append="getFamilyInfo"
|
|
88
|
+
/>
|
|
67
89
|
<base-form-input
|
|
90
|
+
:key="String(member.signOfResidency.nameRu)"
|
|
68
91
|
v-model="member.phoneNumber"
|
|
69
92
|
:label="$dataStore.t('form.phoneNumber')"
|
|
70
|
-
:maska="$maska.phone"
|
|
93
|
+
:maska="$dataStore.isPension && member.signOfResidency.nameRu === 'Нерезидент' ? $maska.phoneNonResident : $maska.phone"
|
|
71
94
|
:readonly="!!isDisabled || !!isIinPhoneDisabled"
|
|
72
|
-
:clearable="!isDisabled"
|
|
95
|
+
:clearable="!isDisabled && !isIinPhoneDisabled"
|
|
73
96
|
:append-inner-icon="otpCondition ? `${$dataStore.isPension ? 'mdi-message-text' : 'mdi mdi-phone-message'}` : ''"
|
|
74
97
|
@append="openCustomPanel('otp')"
|
|
75
98
|
@keyup.enter.prevent="otpCondition ? openCustomPanel('otp') : null"
|
|
76
99
|
:rules="phoneRule"
|
|
77
100
|
/>
|
|
78
|
-
<base-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
101
|
+
<base-animation>
|
|
102
|
+
<base-form-input
|
|
103
|
+
v-if="!isNonResident"
|
|
104
|
+
v-model="member.iin"
|
|
105
|
+
:label="$dataStore.t('form.iin')"
|
|
106
|
+
:maska="$maska.iin"
|
|
107
|
+
:readonly="!!isDisabled || !!isIinPhoneDisabled || !!member.parsedDocument?.iin"
|
|
108
|
+
:clearable="!isDisabled && !isIinPhoneDisabled && !member.parsedDocument?.iin"
|
|
109
|
+
:append-inner-icon="hasMemberSearch || !isNonResident ? 'mdi mdi-magnify' : ''"
|
|
110
|
+
@append="searchMember"
|
|
111
|
+
@input="onIinInput"
|
|
112
|
+
:rules="isNonResident ? [] : $rules.required.concat($rules.iinRight)"
|
|
113
|
+
/>
|
|
114
|
+
</base-animation>
|
|
89
115
|
<base-form-input
|
|
90
116
|
v-model.trim="member.lastName"
|
|
91
|
-
:readonly="isDisabled ||
|
|
92
|
-
:clearable="!isDisabled"
|
|
117
|
+
:readonly="isDisabled || isDataFromGov || !!member.parsedDocument?.lastName"
|
|
118
|
+
:clearable="!isDisabled && !isDataFromGov && !member.parsedDocument?.lastName"
|
|
93
119
|
:label="$dataStore.t('form.lastName')"
|
|
94
120
|
:rules="$rules.required.concat($rules.cyrillic)"
|
|
95
121
|
/>
|
|
96
122
|
<base-form-input
|
|
97
123
|
v-model.trim="member.firstName"
|
|
98
|
-
:readonly="isDisabled ||
|
|
99
|
-
:clearable="!isDisabled"
|
|
124
|
+
:readonly="isDisabled || isDataFromGov || !!member.parsedDocument?.firstName"
|
|
125
|
+
:clearable="!isDisabled && !isDataFromGov && !member.parsedDocument?.firstName"
|
|
100
126
|
:label="$dataStore.t('form.firstName')"
|
|
101
127
|
:rules="$rules.required.concat($rules.cyrillic)"
|
|
128
|
+
:append-inner-icon="isNonResident ? 'mdi mdi-magnify' : ''"
|
|
129
|
+
@append="searchMember"
|
|
102
130
|
/>
|
|
103
131
|
<base-form-input
|
|
104
132
|
v-if="hasMiddleName"
|
|
105
133
|
v-model.trim="member.middleName"
|
|
106
|
-
:readonly="isDisabled ||
|
|
107
|
-
:clearable="!isDisabled"
|
|
134
|
+
:readonly="isDisabled || !!member.parsedDocument?.middleName || (isDataFromGov && !middleNameIsEditable)"
|
|
135
|
+
:clearable="(!isDisabled && !member.parsedDocument?.middleName && !isDataFromGov) || !!middleNameIsEditable"
|
|
108
136
|
:label="$dataStore.t('form.middleName')"
|
|
109
137
|
:rules="$rules.cyrillicNonRequired"
|
|
110
138
|
/>
|
|
111
139
|
<base-form-input
|
|
112
140
|
v-if="$dataStore.isLifetrip"
|
|
113
141
|
v-model.trim="member.lastNameLat"
|
|
114
|
-
:readonly="isDisabled ||
|
|
115
|
-
:clearable="!isDisabled"
|
|
142
|
+
:readonly="isDisabled || isDataFromGov"
|
|
143
|
+
:clearable="!isDisabled && !isDataFromGov"
|
|
116
144
|
:label="$dataStore.t('form.lastNameLat')"
|
|
117
145
|
:rules="$rules.required.concat($rules.latin)"
|
|
118
146
|
:hint="$dataStore.t('labels.checkWithDoc')"
|
|
@@ -120,16 +148,16 @@
|
|
|
120
148
|
<base-form-input
|
|
121
149
|
v-if="$dataStore.isLifetrip"
|
|
122
150
|
v-model.trim="member.firstNameLat"
|
|
123
|
-
:readonly="isDisabled ||
|
|
124
|
-
:clearable="!isDisabled"
|
|
151
|
+
:readonly="isDisabled || isDataFromGov"
|
|
152
|
+
:clearable="!isDisabled && !isDataFromGov"
|
|
125
153
|
:label="$dataStore.t('form.firstNameLat')"
|
|
126
154
|
:rules="$rules.required.concat($rules.latin)"
|
|
127
155
|
:hint="$dataStore.t('labels.checkWithDoc')"
|
|
128
156
|
/>
|
|
129
157
|
<base-form-input
|
|
130
158
|
v-model="member.birthDate"
|
|
131
|
-
:readonly="isDisabled ||
|
|
132
|
-
:clearable="!isDisabled"
|
|
159
|
+
:readonly="isDisabled || isDataFromGov || !!member.parsedDocument?.birthDate"
|
|
160
|
+
:clearable="!isDisabled && !isDataFromGov && !member.parsedDocument?.birthDate"
|
|
133
161
|
:label="$dataStore.t('form.birthDate')"
|
|
134
162
|
:rules="birthDateRule"
|
|
135
163
|
:maska="$maska.date"
|
|
@@ -157,12 +185,12 @@
|
|
|
157
185
|
@append="openPanel($dataStore.t('form.Country'), [], 'birthPlace', $dataStore.getCountries)"
|
|
158
186
|
/>
|
|
159
187
|
</div>
|
|
160
|
-
<base-form-input v-if="!$dataStore.isPension" v-model="member.age" :label="$dataStore.t('form.age')" :readonly="true" :clearable="
|
|
188
|
+
<base-form-input v-if="!$dataStore.isPension" v-model="member.age" :label="$dataStore.t('form.age')" :readonly="true" :clearable="false" :rules="ageRule" />
|
|
161
189
|
<base-panel-input
|
|
162
190
|
v-model="member.gender"
|
|
163
191
|
:value="member.gender?.nameRu"
|
|
164
|
-
:readonly="isDisabled ||
|
|
165
|
-
:clearable="!isDisabled && !
|
|
192
|
+
:readonly="isDisabled || isDataFromGov"
|
|
193
|
+
:clearable="!isDisabled && !isDataFromGov"
|
|
166
194
|
:label="$dataStore.t('form.gender')"
|
|
167
195
|
:rules="$rules.objectRequired"
|
|
168
196
|
append-inner-icon="mdi mdi-chevron-right"
|
|
@@ -183,12 +211,12 @@
|
|
|
183
211
|
v-if="hasRelationDegree"
|
|
184
212
|
v-model="member.relationDegree"
|
|
185
213
|
:value="member.relationDegree?.nameRu"
|
|
186
|
-
:readonly="isDisabled"
|
|
187
|
-
:clearable="!isDisabled"
|
|
214
|
+
:readonly="isDisabled || !isChooseChild"
|
|
215
|
+
:clearable="!isDisabled && !!isChooseChild"
|
|
188
216
|
:label="$dataStore.t('form.relations')"
|
|
189
217
|
:rules="$rules.objectRequired"
|
|
190
218
|
append-inner-icon="mdi mdi-chevron-right"
|
|
191
|
-
@append="openPanel($dataStore.t('form.relations'),
|
|
219
|
+
@append="openPanel($dataStore.t('form.relations'), filteredRelationsData, 'relationDegree')"
|
|
192
220
|
/>
|
|
193
221
|
<base-form-input
|
|
194
222
|
v-if="whichForm === formStore.beneficiaryFormKey"
|
|
@@ -199,8 +227,11 @@
|
|
|
199
227
|
:rules="$rules.required.concat($rules.numbers)"
|
|
200
228
|
/>
|
|
201
229
|
</base-form-section>
|
|
202
|
-
<base-form-section
|
|
203
|
-
|
|
230
|
+
<base-form-section
|
|
231
|
+
v-if="$dataStore.isPension && (whichForm === formStore.insuredFormKey || $route.query.tab === 'slaveInsuredForm')"
|
|
232
|
+
:title="$dataStore.t('pension.disabilityInfo')"
|
|
233
|
+
>
|
|
234
|
+
<base-form-toggle v-model="member.isDisability" :title="$dataStore.t('pension.ifHasDisabilityAlways')" :disabled="isDisabled" :has-border="false" />
|
|
204
235
|
<base-animation>
|
|
205
236
|
<base-panel-input
|
|
206
237
|
v-if="member.isDisability"
|
|
@@ -256,8 +287,9 @@
|
|
|
256
287
|
:label="$dataStore.t('form.documentDate')"
|
|
257
288
|
:readonly="isDisabled"
|
|
258
289
|
:clearable="!isDisabled"
|
|
259
|
-
:rules="$rules.date"
|
|
290
|
+
:rules="$rules.date.concat($rules.checkPastOrToday)"
|
|
260
291
|
:maska="$maska.date"
|
|
292
|
+
:max-date="getToday()"
|
|
261
293
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
262
294
|
/>
|
|
263
295
|
<base-form-input
|
|
@@ -265,8 +297,9 @@
|
|
|
265
297
|
:label="$dataStore.t('form.documentExpire')"
|
|
266
298
|
:readonly="isDisabled"
|
|
267
299
|
:clearable="!isDisabled"
|
|
268
|
-
:rules="$rules.date"
|
|
300
|
+
:rules="$rules.date.concat($rules.checkTodayOrFuture)"
|
|
269
301
|
:maska="$maska.date"
|
|
302
|
+
:min-date="getToday()"
|
|
270
303
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
271
304
|
/>
|
|
272
305
|
<base-form-input v-model.trim="member.migrationCard" :label="$dataStore.t('policyholdersRepresentative.numberVisa')" />
|
|
@@ -331,10 +364,10 @@
|
|
|
331
364
|
v-if="hasWorkPositionDict"
|
|
332
365
|
v-model.trim="member.jobPosition"
|
|
333
366
|
:label="$dataStore.t('form.jobPosition')"
|
|
334
|
-
:readonly="isDisabled || member.positionCode !== 'other'"
|
|
335
367
|
:clearable="!isDisabled"
|
|
336
368
|
:rules="$rules.required"
|
|
337
369
|
append-inner-icon="mdi-chevron-right"
|
|
370
|
+
readonly
|
|
338
371
|
@click="openCustomPanel('workPosition')"
|
|
339
372
|
/>
|
|
340
373
|
<base-form-input
|
|
@@ -347,7 +380,7 @@
|
|
|
347
380
|
/>
|
|
348
381
|
<base-form-input v-model.trim="member.jobPlace" :label="$dataStore.t('form.jobPlace')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
349
382
|
</base-form-section>
|
|
350
|
-
<base-form-section
|
|
383
|
+
<base-form-section v-if="$dataStore.hasPlaceRegistrationSection(whichForm)" :title="$dataStore.t('form.placeRegistration')">
|
|
351
384
|
<base-form-toggle v-if="hasSameAddressToggle" v-model="sameAddress" :disabled="isDisabled" :has-border="false" :title="$dataStore.t('form.sameAddress')" />
|
|
352
385
|
<base-panel-input
|
|
353
386
|
v-model="member.registrationCountry"
|
|
@@ -365,9 +398,9 @@
|
|
|
365
398
|
v-model="member.registrationProvince"
|
|
366
399
|
:value="member.registrationProvince?.nameRu"
|
|
367
400
|
:label="$dataStore.t('form.Province')"
|
|
368
|
-
:readonly="isDisabled"
|
|
369
|
-
:clearable="!isDisabled"
|
|
370
|
-
:rules="$rules.objectRequired"
|
|
401
|
+
:readonly="isDisabled || isRegionDisabled"
|
|
402
|
+
:clearable="!isDisabled && !isRegionDisabled"
|
|
403
|
+
:rules="isRegionDisabled ? [] : $rules.objectRequired"
|
|
371
404
|
append-inner-icon="mdi mdi-chevron-right"
|
|
372
405
|
@append="openPanel($dataStore.t('form.Province'), [], 'registrationProvince', $dataStore.getStates, 'registrationCountry')"
|
|
373
406
|
/>
|
|
@@ -415,7 +448,7 @@
|
|
|
415
448
|
/>
|
|
416
449
|
<base-form-input
|
|
417
450
|
v-model.trim="member.registrationNumberHouse"
|
|
418
|
-
:rules="$rules.
|
|
451
|
+
:rules="[...$rules.required, $rules.lengthLimit(member.registrationNumberHouse, 10)]"
|
|
419
452
|
:readonly="isDisabled"
|
|
420
453
|
:clearable="!isDisabled"
|
|
421
454
|
:label="$dataStore.t('form.NumberHouse')"
|
|
@@ -447,7 +480,7 @@
|
|
|
447
480
|
@append="openPanel($dataStore.t('form.Region'), [], 'birthRegion', $dataStore.getRegions)"
|
|
448
481
|
/> -->
|
|
449
482
|
</base-form-section>
|
|
450
|
-
<base-form-section
|
|
483
|
+
<base-form-section v-if="$dataStore.hasDocumentDataSection(whichForm)" :title="$dataStore.t('form.documentData')">
|
|
451
484
|
<base-panel-input
|
|
452
485
|
v-if="gbdDocuments && gbdDocuments.length"
|
|
453
486
|
value="Список документов из ГБДФЛ"
|
|
@@ -461,8 +494,8 @@
|
|
|
461
494
|
v-model="member.documentType"
|
|
462
495
|
:value="member.documentType?.nameRu"
|
|
463
496
|
:label="$dataStore.t('form.documentType')"
|
|
464
|
-
:readonly="isDisabled"
|
|
465
|
-
:clearable="!isDisabled"
|
|
497
|
+
:readonly="isDisabled || isDataFromGov"
|
|
498
|
+
:clearable="!isDisabled && !isDataFromGov"
|
|
466
499
|
:rules="$rules.objectRequired"
|
|
467
500
|
append-inner-icon="mdi mdi-chevron-right"
|
|
468
501
|
@append="openPanel($dataStore.t('form.documentType'), [], 'documentType', $dataStore.getDocumentTypes)"
|
|
@@ -470,8 +503,8 @@
|
|
|
470
503
|
<base-form-input
|
|
471
504
|
v-model.trim="member.documentNumber"
|
|
472
505
|
:label="$dataStore.t('form.documentNumber')"
|
|
473
|
-
:readonly="isDisabled || !!member.parsedDocument?.documentNumber"
|
|
474
|
-
:clearable="!isDisabled"
|
|
506
|
+
:readonly="isDisabled || !!member.parsedDocument?.documentNumber || isDataFromGov"
|
|
507
|
+
:clearable="!isDisabled && !member.parsedDocument?.documentNumber && !isDataFromGov"
|
|
475
508
|
:rules="$rules.required"
|
|
476
509
|
/>
|
|
477
510
|
<!-- <base-file-input v-if="!memberDocument" :disabled="isDisabled" :clearable="!isDisabled" @input="attachFile($event)" />
|
|
@@ -483,17 +516,42 @@
|
|
|
483
516
|
v-model="member.documentIssuers"
|
|
484
517
|
:value="member.documentIssuers?.nameRu"
|
|
485
518
|
:label="$dataStore.t('form.documentIssuers')"
|
|
486
|
-
:readonly="isDisabled || !!member.parsedDocument?.documentIssuer"
|
|
487
|
-
:clearable="!isDisabled"
|
|
519
|
+
:readonly="isDisabled || !!member.parsedDocument?.documentIssuer || (isDataFromGov && !documentIssuerIsEditable)"
|
|
520
|
+
:clearable="(!isDisabled && !member.parsedDocument?.documentIssuer && !isDataFromGov) || !!documentIssuerIsEditable"
|
|
488
521
|
:rules="$rules.objectRequired"
|
|
489
522
|
append-inner-icon="mdi mdi-chevron-right"
|
|
490
523
|
@append="openPanel($dataStore.t('form.documentIssuers'), [], 'documentIssuers', $dataStore.getDocumentIssuers)"
|
|
491
524
|
/>
|
|
525
|
+
<base-animation>
|
|
526
|
+
<div v-if="hasIssuerOther" class="flex flex-col gap-[1px]">
|
|
527
|
+
<base-form-input
|
|
528
|
+
v-model="member.documentIssuers.issuerOtherName"
|
|
529
|
+
:label="$dataStore.t('form.issuerOtherName')"
|
|
530
|
+
:readonly="isDisabled"
|
|
531
|
+
:clearable="!isDisabled"
|
|
532
|
+
:rules="$rules.required.concat($rules.onlySymbols)"
|
|
533
|
+
/>
|
|
534
|
+
<base-form-input
|
|
535
|
+
v-model="member.documentIssuers.issuerOtherNameOrig"
|
|
536
|
+
:label="$dataStore.t('form.issuerOtherNameOrig')"
|
|
537
|
+
:readonly="isDisabled"
|
|
538
|
+
:clearable="!isDisabled"
|
|
539
|
+
:rules="$rules.required"
|
|
540
|
+
/>
|
|
541
|
+
<base-form-input
|
|
542
|
+
v-model="member.documentIssuers.issuerOtherNameRu"
|
|
543
|
+
:label="$dataStore.t('form.issuerOtherNameRu')"
|
|
544
|
+
:readonly="isDisabled"
|
|
545
|
+
:clearable="!isDisabled"
|
|
546
|
+
:rules="$rules.required.concat($rules.cyrillic)"
|
|
547
|
+
/>
|
|
548
|
+
</div>
|
|
549
|
+
</base-animation>
|
|
492
550
|
<base-form-input
|
|
493
551
|
v-model="member.documentDate"
|
|
494
552
|
:label="$dataStore.t('form.documentDate')"
|
|
495
|
-
:readonly="isDisabled || !!member.parsedDocument?.documentIssueDate"
|
|
496
|
-
:clearable="!isDisabled"
|
|
553
|
+
:readonly="isDisabled || !!member.parsedDocument?.documentIssueDate || isDataFromGov"
|
|
554
|
+
:clearable="!isDisabled && !member.parsedDocument?.documentIssueDate && !isDataFromGov"
|
|
497
555
|
:rules="$rules.required.concat($rules.date)"
|
|
498
556
|
:maska="$maska.date"
|
|
499
557
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
@@ -503,8 +561,8 @@
|
|
|
503
561
|
v-if="member.documentType.ids !== 'SBI'"
|
|
504
562
|
v-model="member.documentExpire"
|
|
505
563
|
:label="$dataStore.t('form.documentExpire')"
|
|
506
|
-
:readonly="isDisabled || !!member.parsedDocument?.documentExpireDate"
|
|
507
|
-
:clearable="!isDisabled"
|
|
564
|
+
:readonly="isDisabled || !!member.parsedDocument?.documentExpireDate || isDataFromGov"
|
|
565
|
+
:clearable="!isDisabled && !member.parsedDocument?.documentExpireDate && !isDataFromGov"
|
|
508
566
|
:rules="$rules.required.concat($rules.date)"
|
|
509
567
|
:maska="$maska.date"
|
|
510
568
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
@@ -601,47 +659,19 @@
|
|
|
601
659
|
v-model="member.bankInfo.bankName"
|
|
602
660
|
:value="member.bankInfo.bankName.nameRu"
|
|
603
661
|
:label="$dataStore.t('clients.form.nameBank')"
|
|
604
|
-
:readonly="
|
|
605
|
-
:clearable="
|
|
662
|
+
:readonly="true"
|
|
663
|
+
:clearable="false"
|
|
606
664
|
:rules="$rules.objectRequired"
|
|
607
|
-
append-inner-icon="mdi mdi-chevron-right"
|
|
608
|
-
@append="openPanel($dataStore.t('clients.form.nameBank'), [], 'bankInfo', $dataStore.getBanks, '', 'bankName')"
|
|
609
665
|
/>
|
|
610
666
|
<base-form-input
|
|
611
667
|
v-model.trim="member.bankInfo.bin"
|
|
612
|
-
:label="$dataStore.t('form.bin')"
|
|
613
668
|
:maska="$maska.iin"
|
|
614
|
-
:
|
|
615
|
-
:
|
|
669
|
+
:label="$dataStore.t('form.bin')"
|
|
670
|
+
:readonly="true"
|
|
671
|
+
:clearable="false"
|
|
616
672
|
:rules="$rules.required.concat($rules.iinRight)"
|
|
617
673
|
/>
|
|
618
|
-
<base-form-input v-model="member.bankInfo.bik" :label="$dataStore.t('clients.form.bik')" :readonly="
|
|
619
|
-
</base-form-section>
|
|
620
|
-
<base-form-section v-if="$dataStore.hasAdditionalDocumentsSection(whichForm)" :title="$dataStore.t('form.phDocuments')">
|
|
621
|
-
<base-file-input
|
|
622
|
-
:label="$dataStore.t('form.identyDocument')"
|
|
623
|
-
:disabled="isDisabled"
|
|
624
|
-
:clearable="!isDisabled"
|
|
625
|
-
icon="mdi-paperclip"
|
|
626
|
-
@input="attachFile($event, '1')"
|
|
627
|
-
:rules="$rules.required"
|
|
628
|
-
/>
|
|
629
|
-
<base-file-input
|
|
630
|
-
:label="$dataStore.t('form.bankStatement')"
|
|
631
|
-
:disabled="isDisabled"
|
|
632
|
-
:clearable="!isDisabled"
|
|
633
|
-
icon="mdi-paperclip"
|
|
634
|
-
@input="attachFile($event, '10')"
|
|
635
|
-
:rules="$rules.required"
|
|
636
|
-
/>
|
|
637
|
-
<base-file-input
|
|
638
|
-
:label="$dataStore.t('pension.ENPFnote')"
|
|
639
|
-
:disabled="isDisabled"
|
|
640
|
-
:clearable="!isDisabled"
|
|
641
|
-
icon="mdi-paperclip"
|
|
642
|
-
@input="attachFile($event, '8')"
|
|
643
|
-
:rules="$rules.required"
|
|
644
|
-
/>
|
|
674
|
+
<base-form-input v-model="member.bankInfo.bik" :label="$dataStore.t('clients.form.bik')" :readonly="true" :clearable="false" :rules="$rules.required" />
|
|
645
675
|
</base-form-section>
|
|
646
676
|
<base-form-section :title="$dataStore.t('form.contactsData')" v-if="$dataStore.hasContactSection(whichForm)">
|
|
647
677
|
<base-form-input
|
|
@@ -655,6 +685,24 @@
|
|
|
655
685
|
/>
|
|
656
686
|
<base-form-input v-model.trim="member.email" :label="$dataStore.t('form.email')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.email" />
|
|
657
687
|
</base-form-section>
|
|
688
|
+
<base-form-section
|
|
689
|
+
v-if="$dataStore.isMycar && whichForm === formStore.beneficiaryFormKey"
|
|
690
|
+
:title="$dataStore.t('form.personalData')"
|
|
691
|
+
>
|
|
692
|
+
<base-form-input
|
|
693
|
+
v-model="member.iin"
|
|
694
|
+
:label="$dataStore.t('form.bin')"
|
|
695
|
+
:maska="$maska.iin"
|
|
696
|
+
:readonly="true"
|
|
697
|
+
:clearable="false"
|
|
698
|
+
/>
|
|
699
|
+
<base-form-input
|
|
700
|
+
v-model.trim="member.lastName"
|
|
701
|
+
:readonly="true"
|
|
702
|
+
:clearable="false"
|
|
703
|
+
:label="$dataStore.t('aml.legalName')"
|
|
704
|
+
/>
|
|
705
|
+
</base-form-section>
|
|
658
706
|
</v-form>
|
|
659
707
|
<base-btn v-if="showSaveButton" :loading="isButtonLoading || isSubmittingForm" :text="$dataStore.t('buttons.save')" @click="submitForm" />
|
|
660
708
|
<Teleport v-if="isPanelOpen" to="#right-panel-actions">
|
|
@@ -675,45 +723,38 @@
|
|
|
675
723
|
</Teleport>
|
|
676
724
|
<Teleport v-if="isSearchOpen" to="#right-panel-actions">
|
|
677
725
|
<div :class="[$styles.flexColNav]">
|
|
678
|
-
<
|
|
679
|
-
<
|
|
680
|
-
<
|
|
681
|
-
|
|
682
|
-
<base-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
/>
|
|
691
|
-
</base-form-section>
|
|
692
|
-
<base-animation>
|
|
693
|
-
<base-btn v-if="hasDocumentReader && imageDataList && !!imageDataList.length" :loading="isButtonLoading" text="Получить данные" @click="getDocumentReader" />
|
|
694
|
-
</base-animation>
|
|
726
|
+
<b class="d-block text-[14px] text-center">Получение персональных данных</b>
|
|
727
|
+
<b class="text-[12px]">Выберите тип:</b>
|
|
728
|
+
<div class="flex flex-col gap-[30px]">
|
|
729
|
+
<base-btn v-if="hasGBDFL" :loading="isButtonLoading" class="before-divider" :text="$dataStore.t('buttons.fromGBDFL')" @click="getContragentFromGBDFL" />
|
|
730
|
+
<base-btn v-if="hasInsis" :loading="isButtonLoading" class="before-divider" :text="$dataStore.t('buttons.fromInsis')" @click="getContragent" />
|
|
731
|
+
<div v-if="hasDigitalDocument" class="before-divider">
|
|
732
|
+
<small class="mb-1 d-block leading-tight">Внимание, выберите этот вариант если не приходит смс от 1414</small>
|
|
733
|
+
<base-btn :loading="isButtonLoading" :text="$dataStore.t('buttons.fromDD')" @click="startGettingDigitalDocument" />
|
|
734
|
+
</div>
|
|
735
|
+
<base-btn v-if="hasGKB" :loading="isButtonLoading" class="before-divider" :text="$dataStore.t('buttons.childData')" @click="getFamilyInfo" />
|
|
736
|
+
<base-btn v-if="isNonResident" :loading="isButtonLoading" class="before-divider" :text="$dataStore.t('buttons.searchByFio')" @click="getContragent" />
|
|
737
|
+
</div>
|
|
695
738
|
</div>
|
|
696
739
|
</Teleport>
|
|
697
740
|
<Teleport v-if="isDocumentOpen" to="#right-panel-actions">
|
|
698
741
|
<div :class="[$styles.flexColNav]">
|
|
699
|
-
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Открыть" @click="
|
|
700
|
-
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Скачать" @click="
|
|
742
|
+
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Открыть" @click="getDoc('view')" />
|
|
743
|
+
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Скачать" @click="getDoc('download')" />
|
|
701
744
|
</div>
|
|
702
745
|
</Teleport>
|
|
703
746
|
<Teleport v-if="isOtpPanelOpen && !member.hasAgreement" to="#right-panel-actions">
|
|
704
747
|
<div :class="[$styles.flexColNav]">
|
|
705
|
-
<base-
|
|
706
|
-
<
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
:
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
/>
|
|
716
|
-
</base-fade-transition>
|
|
748
|
+
<base-animation>
|
|
749
|
+
<div v-if="otpCondition && member.otpTokenId" class="flex flex-col">
|
|
750
|
+
<base-form-section class="mt-0 py-2">
|
|
751
|
+
<base-otp-input v-model="member.otpCode" :length="4" @keyup.enter.prevent="hasOtp && checkOtp()" @input="onOtpCodeInput" />
|
|
752
|
+
</base-form-section>
|
|
753
|
+
<span class="text-center cursor-pointer mt-2" :class="[$styles.mutedText]" @click="sendOtp(false)"
|
|
754
|
+
>Не получили код? <span class="underline underline-offset-2">Отправить код заново</span></span
|
|
755
|
+
>
|
|
756
|
+
</div>
|
|
757
|
+
</base-animation>
|
|
717
758
|
<base-btn v-if="!member.otpTokenId" :disabled="otpSending" :loading="otpSending" :text="$dataStore.t('buttons.sendOtp')" @click="sendOtp(false)" />
|
|
718
759
|
<base-btn v-if="member.otpTokenId" :disabled="otpSending" :loading="otpSending" :text="$dataStore.t('buttons.check')" @click="checkOtp()" />
|
|
719
760
|
</div>
|
|
@@ -721,12 +762,12 @@
|
|
|
721
762
|
<Teleport v-if="isPositionPanelOpen" to="#right-panel-actions">
|
|
722
763
|
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
723
764
|
<base-rounded-input
|
|
724
|
-
v-model="searchQuery"
|
|
725
|
-
|
|
765
|
+
v-model.trim="searchQuery"
|
|
766
|
+
label="Выполните поиск должностей"
|
|
726
767
|
class="w-full p-2"
|
|
727
768
|
:hide-details="searchQuery.length >= 4"
|
|
728
|
-
:rules="[searchQuery.length < 4 ? $dataStore.t('rules.searchQueryLen', { len:
|
|
729
|
-
|
|
769
|
+
:rules="[searchQuery.length < 4 ? $dataStore.t('rules.searchQueryLen', { len: 4 }) : true]"
|
|
770
|
+
append-inner-icon="mdi mdi-magnify"
|
|
730
771
|
@append="searchPositions"
|
|
731
772
|
/>
|
|
732
773
|
<base-animation>
|
|
@@ -745,7 +786,7 @@
|
|
|
745
786
|
/>
|
|
746
787
|
</div>
|
|
747
788
|
<div v-if="searchQuery && positionsList !== null && !positionsList.length && isPanelLoading === false" class="w-full flex flex-col items-center gap-2 px-2">
|
|
748
|
-
<base-btn :text="$dataStore.t('buttons.add')" @click="pickPosition({ workPositionName: searchQuery, workPositionCode: 'other' })" />
|
|
789
|
+
<!-- <base-btn :text="$dataStore.t('buttons.add')" @click="pickPosition({ workPositionName: searchQuery, workPositionCode: 'other' })" /> -->
|
|
749
790
|
<span :class="[$styles.mutedText]">{{ $dataStore.t('toaster.notFound') }}</span>
|
|
750
791
|
</div>
|
|
751
792
|
</base-animation>
|
|
@@ -763,9 +804,68 @@
|
|
|
763
804
|
@yes="deleteMember"
|
|
764
805
|
@no="deletionDialog = false"
|
|
765
806
|
/>
|
|
766
|
-
<base-dialog
|
|
807
|
+
<base-dialog
|
|
808
|
+
v-model="familyDialog"
|
|
809
|
+
:subtitle="isOwnChild ? $dataStore.t('dialog.familyMember') : $dataStore.t('dialog.enterParentIin')"
|
|
810
|
+
:icon="{ mdi: 'hand-pointing-up' }"
|
|
811
|
+
actions="familyDialog"
|
|
812
|
+
>
|
|
767
813
|
<template #actions>
|
|
768
|
-
<
|
|
814
|
+
<div class="flex flex-col gap-[36px] w-full">
|
|
815
|
+
<base-rounded-input
|
|
816
|
+
v-if="!isOwnChild"
|
|
817
|
+
v-model="parentIin"
|
|
818
|
+
:label="$dataStore.t('labels.parentIin')"
|
|
819
|
+
class="p-2 w-full h-[60px]"
|
|
820
|
+
:hide-details="true"
|
|
821
|
+
:maska="$maska.iin"
|
|
822
|
+
:readonly="childrenLoaded"
|
|
823
|
+
:clearable="false"
|
|
824
|
+
/>
|
|
825
|
+
<v-list lines="two" v-if="formStore.children && formStore.children.length" class="w-full !py-0">
|
|
826
|
+
<v-list-item
|
|
827
|
+
v-for="familyMember of formStore.children"
|
|
828
|
+
:key="familyMember.id"
|
|
829
|
+
@click="selectedFamilyMember = familyMember"
|
|
830
|
+
:append-icon="
|
|
831
|
+
familyMember && selectedFamilyMember && typeof selectedFamilyMember === 'object' && selectedFamilyMember.id === familyMember.id
|
|
832
|
+
? `mdi-radiobox-marked ${$styles.greenText}`
|
|
833
|
+
: 'mdi-radiobox-blank text-[#636363]'
|
|
834
|
+
"
|
|
835
|
+
>
|
|
836
|
+
<v-list-item-title :class="[$styles.greenText, $styles.textTitle]">
|
|
837
|
+
{{ `${familyMember.lastName} ${familyMember.firstName} ${familyMember.middleName ? familyMember.middleName : ''}` }}
|
|
838
|
+
</v-list-item-title>
|
|
839
|
+
<v-list-item-subtitle :class="[$styles.textSimple]">
|
|
840
|
+
<span>{{ `${$dataStore.t('form.birthDate')}:` }}</span>
|
|
841
|
+
{{ `${reformatDate(familyMember.birthDate!)}` }}
|
|
842
|
+
</v-list-item-subtitle>
|
|
843
|
+
</v-list-item>
|
|
844
|
+
</v-list>
|
|
845
|
+
<base-list-empty v-if="isEmpty" />
|
|
846
|
+
<div class="flex gap-4">
|
|
847
|
+
<base-btn class="px-6" size="sm" :text="$dataStore.t('confirm.cancel')" :btn="$styles.whiteBorderBtn" :classes="$styles.blueText" @click="closeFamilyDialog" />
|
|
848
|
+
<base-btn
|
|
849
|
+
v-if="isOwnChild || (!isOwnChild && childrenLoaded)"
|
|
850
|
+
class="px-6"
|
|
851
|
+
size="sm"
|
|
852
|
+
text="Подтвердить"
|
|
853
|
+
:btn="$styles.blueBtn"
|
|
854
|
+
:loading="$dataStore.isButtonsLoading"
|
|
855
|
+
@click="selectFamilyMember"
|
|
856
|
+
/>
|
|
857
|
+
<base-btn
|
|
858
|
+
v-if="!isOwnChild && !childrenLoaded"
|
|
859
|
+
class="px-6"
|
|
860
|
+
size="sm"
|
|
861
|
+
text="Отправить запрос"
|
|
862
|
+
:btn="$styles.blueBtn"
|
|
863
|
+
:loading="$dataStore.isButtonsLoading"
|
|
864
|
+
:disabled="$maska.iin.length !== parentIin.length"
|
|
865
|
+
@click="getChildren"
|
|
866
|
+
/>
|
|
867
|
+
</div>
|
|
868
|
+
</div>
|
|
769
869
|
</template>
|
|
770
870
|
</base-dialog>
|
|
771
871
|
<base-dialog v-model="documentChooseDialog" :subtitle="$dataStore.t('labels.chooseDoc')" :icon="{ mdi: 'file-document-outline' }" actions="documentChooseDialog">
|
|
@@ -783,18 +883,70 @@
|
|
|
783
883
|
<base-list-empty class="w-full" v-else @click="documentChooseDialog = false" />
|
|
784
884
|
</template>
|
|
785
885
|
</base-dialog>
|
|
886
|
+
<base-dialog
|
|
887
|
+
v-model="fioChooseDialog"
|
|
888
|
+
:title="$dataStore.t('pension.contragentSelect')"
|
|
889
|
+
:icon="{ mdi: 'format-list-bulleted-type', color: '#A0B3D8' }"
|
|
890
|
+
actions="fioChooseDialog"
|
|
891
|
+
:persistent="false"
|
|
892
|
+
>
|
|
893
|
+
<template #actions>
|
|
894
|
+
<v-list lines="two" v-if="contragents && contragents.length" class="w-full !py-0">
|
|
895
|
+
<v-list-item v-for="person of contragents" :key="person.id" @click="getContragentClick(person)">
|
|
896
|
+
<v-list-item-title :class="[$styles.greenText, $styles.textTitle]">
|
|
897
|
+
{{ person.longName }}
|
|
898
|
+
</v-list-item-title>
|
|
899
|
+
<v-list-item-subtitle :class="[$styles.textSimple]">
|
|
900
|
+
{{ reformatDate(person.birthDate) }} - {{ person.genderName }} - Рег: {{ reformatDate(person.registrationDate) }}
|
|
901
|
+
</v-list-item-subtitle>
|
|
902
|
+
</v-list-item>
|
|
903
|
+
</v-list>
|
|
904
|
+
<base-list-empty class="w-full" v-else @click="fioChooseDialog = false" />
|
|
905
|
+
</template>
|
|
906
|
+
</base-dialog>
|
|
907
|
+
<base-dialog
|
|
908
|
+
v-model="$dataStore.quitDialog"
|
|
909
|
+
:title="$dataStore.t('dialog.exit')"
|
|
910
|
+
:subtitle="$dataStore.t('dialog.dataWillNotSave')"
|
|
911
|
+
:confirm="$dataStore.t('confirm.yes')"
|
|
912
|
+
:icon="{ mdi: 'delete-outline', color: '#FD2D39' }"
|
|
913
|
+
@yes="discardAndContinue"
|
|
914
|
+
@no="stayHere"
|
|
915
|
+
/>
|
|
916
|
+
<base-dialog
|
|
917
|
+
v-model="digitalDocumentDialog"
|
|
918
|
+
title="Получить цифровой документ"
|
|
919
|
+
subtitle="Выберите тип документа и введите код"
|
|
920
|
+
:icon="{ mdi: 'file-document', color: '#A0B3D8' }"
|
|
921
|
+
actions="digitalDocumentDialog"
|
|
922
|
+
:persistent="false"
|
|
923
|
+
>
|
|
924
|
+
<template #actions>
|
|
925
|
+
<base-digital-documents-dialog
|
|
926
|
+
:document-items="documentItems"
|
|
927
|
+
:loading="documentLoading"
|
|
928
|
+
:otp-send-disabled="$dataStore.isLifetrip && digitalDocumentOwnerType === 'child'"
|
|
929
|
+
@getCode="getCode"
|
|
930
|
+
@getDigitalDocument="getDigitalDocument"
|
|
931
|
+
@updateDigitalDocuments="updateDigitalDocuments"
|
|
932
|
+
/>
|
|
933
|
+
</template>
|
|
934
|
+
</base-dialog>
|
|
786
935
|
</section>
|
|
787
936
|
<base-scroll-buttons @up="scrollForm('up')" @down="scrollForm('down')" />
|
|
788
937
|
</template>
|
|
789
938
|
|
|
790
939
|
<script lang="ts">
|
|
940
|
+
import { onBeforeRouteLeave } from 'vue-router';
|
|
791
941
|
import { Value, DocumentItem, Member } from '../../composables/classes';
|
|
792
942
|
import { uuid } from 'vue-uuid';
|
|
793
|
-
import { StoreMembers,
|
|
794
|
-
import type {
|
|
943
|
+
import { StoreMembers, CoreEnums } from '../../types/enum';
|
|
944
|
+
import type { DigitalDocNames, DigitalDocTypes } from '../../types';
|
|
945
|
+
import type { Api, ContragentType, Dicts, ESBDValidationType, FileActions, MultipleMember } from '../../types';
|
|
795
946
|
|
|
796
947
|
export default {
|
|
797
|
-
|
|
948
|
+
emits: ['updateTab'],
|
|
949
|
+
setup(_: any, { emit }: any) {
|
|
798
950
|
const vForm = ref<any>();
|
|
799
951
|
const route = useRoute();
|
|
800
952
|
const router = useRouter();
|
|
@@ -803,9 +955,10 @@ export default {
|
|
|
803
955
|
const memberStore = useMemberStore();
|
|
804
956
|
const whichForm = computed(() => route.query.tab as keyof typeof StoreMembers);
|
|
805
957
|
const whichIndex = computed(() => route.query.i as string);
|
|
806
|
-
const getMember = (whichForm: keyof typeof StoreMembers, whichIndex?: string) =>
|
|
958
|
+
const getMember = (whichForm: keyof typeof StoreMembers | 'slaveInsuredForm', whichIndex?: string) =>
|
|
959
|
+
memberStore.getMemberFromStore(whichForm, Number((whichIndex ? whichIndex : '0') as string))!;
|
|
807
960
|
const member = ref(getMember(whichForm.value, whichIndex.value));
|
|
808
|
-
const selectedFamilyMember = ref<Api.
|
|
961
|
+
const selectedFamilyMember = ref<Api.Child>({});
|
|
809
962
|
const isPanelOpen = ref<boolean>(false);
|
|
810
963
|
const memberDocument = ref<DocumentItem>();
|
|
811
964
|
const isButtonLoading = ref<boolean>(false);
|
|
@@ -818,9 +971,41 @@ export default {
|
|
|
818
971
|
const isPositionPanelOpen = ref<boolean>(false);
|
|
819
972
|
const isPanelLoading = ref<boolean>(false);
|
|
820
973
|
const isChangingMember = ref<boolean>(false);
|
|
974
|
+
const isNonResident = computed(() => dataStore.isPension && member.value.signOfResidency.ids === '500011.2');
|
|
975
|
+
const initialMember = ref<Member>(new Member());
|
|
976
|
+
const pendingRoute = ref<any>(null);
|
|
977
|
+
const subMemberRoute = ref<any>(null);
|
|
978
|
+
const isReady = ref(false);
|
|
979
|
+
if (member.value.id === 0) {
|
|
980
|
+
setTimeout(() => {
|
|
981
|
+
isReady.value = true;
|
|
982
|
+
}, 1000);
|
|
983
|
+
} else {
|
|
984
|
+
initialMember.value = JSON.parse(JSON.stringify(member.value));
|
|
985
|
+
nextTick(() => {
|
|
986
|
+
isReady.value = true;
|
|
987
|
+
});
|
|
988
|
+
}
|
|
989
|
+
// временное отключение сервиса, соответственно ручной ввод тоже
|
|
990
|
+
// member.value.verifyType === 'GBDFL' || member.value.verifyType === 'ESBD' || !!member.value.gosPersonData
|
|
991
|
+
const isDataFromGov = computed(() => {
|
|
992
|
+
if (dataStore.isAulettiParent) {
|
|
993
|
+
return false;
|
|
994
|
+
}
|
|
995
|
+
if (dataStore.isPension && member.value.signOfResidency.nameRu === 'Нерезидент') {
|
|
996
|
+
return false;
|
|
997
|
+
}
|
|
998
|
+
return true;
|
|
999
|
+
});
|
|
1000
|
+
const documentIssuerIsEditable = computed(() => {
|
|
1001
|
+
return documentIssuerNotFoundName.value;
|
|
1002
|
+
});
|
|
1003
|
+
const documentIssuerNotFoundName = ref<string>('');
|
|
1004
|
+
const middleNameIsEditable = ref<boolean>(false);
|
|
821
1005
|
const familyDialog = ref<boolean>(false);
|
|
822
1006
|
const deletionDialog = ref<boolean>(false);
|
|
823
1007
|
const documentChooseDialog = ref<boolean>(false);
|
|
1008
|
+
const fioChooseDialog = ref<boolean>(false);
|
|
824
1009
|
const selectedIndex = ref<number>(0);
|
|
825
1010
|
const sameAddress = ref<boolean>(false);
|
|
826
1011
|
const panelValue = ref<Value>(new Value());
|
|
@@ -831,16 +1016,42 @@ export default {
|
|
|
831
1016
|
const fileData = ref<{ file: any }>();
|
|
832
1017
|
const imageDataList = ref<string[]>([]);
|
|
833
1018
|
const isRelative = ref<boolean>(false);
|
|
834
|
-
|
|
1019
|
+
const additionalDocuments = ref<any[]>([]);
|
|
1020
|
+
const contragents = ref<ContragentType[]>([]);
|
|
1021
|
+
const filteredRelationsData = ref<Value[]>(dataStore.relations);
|
|
835
1022
|
const currentPanelDeep = ref<string>();
|
|
836
1023
|
const currentPanelSubDeep = ref<string>();
|
|
837
|
-
|
|
1024
|
+
const selectedChild = ref<Api.Child | null>(null);
|
|
1025
|
+
const documentItems = computed(() => {
|
|
1026
|
+
if (dataStore.isLifetrip) {
|
|
1027
|
+
return [{ title: 'Паспорт', value: 'Passport' }];
|
|
1028
|
+
}
|
|
1029
|
+
return digitalDocumentOwnerType.value === 'adult'
|
|
1030
|
+
? [
|
|
1031
|
+
{ title: 'Удостоверение личности', value: 'IdentityCard' },
|
|
1032
|
+
{ title: 'Паспорт', value: 'Passport' },
|
|
1033
|
+
{ title: 'Вид на жительство иностранного гражданина', value: 'Vnzh' },
|
|
1034
|
+
]
|
|
1035
|
+
: [{ title: 'Свидетельство о рождении', value: 'BirthCertificate' }];
|
|
1036
|
+
});
|
|
1037
|
+
const digitalDocumentDialog = ref<boolean>(false);
|
|
1038
|
+
const parentIin = ref<string>('');
|
|
1039
|
+
const childrenLoaded = ref(false);
|
|
1040
|
+
const digitalDocumentOwnerType = ref('');
|
|
838
1041
|
const memberSetting = computed(() => dataStore.members[memberStore.getMemberApplicationCode(whichForm.value)!]);
|
|
839
1042
|
const hasOtp = computed(() => member.value.otpCode && member.value.otpCode.length === useMask().otp.length);
|
|
840
1043
|
const isDisabled = computed(() => !memberStore.isStatementEditible(whichForm.value));
|
|
1044
|
+
const isChooseChild = computed(() => {
|
|
1045
|
+
if (dataStore.isGons) return member.value.chooseChild === dataStore.t('form.addBeneficiary');
|
|
1046
|
+
return true;
|
|
1047
|
+
});
|
|
1048
|
+
const isRegionDisabled = computed(() => ['Алматы', 'Астана', 'Шымкент'].includes(member.value.registrationCity?.nameRu as string));
|
|
1049
|
+
const getToday = (): Date => {
|
|
1050
|
+
return new Date(new Date().setHours(0, 0, 0, 0));
|
|
1051
|
+
};
|
|
1052
|
+
|
|
841
1053
|
const isTask = computed(() => route.params.taskId === '0' || dataStore.isTask());
|
|
842
1054
|
const isIinPhoneDisabled = computed(() => member.value.hasAgreement);
|
|
843
|
-
const isFromGBD = computed(() => !!member.value.gosPersonData);
|
|
844
1055
|
const gbdDocuments = computed(() => {
|
|
845
1056
|
if (hasGBDFLDocSelection && !!member.value.gosPersonData && !!member.value.gosPersonData.documents) {
|
|
846
1057
|
const documents = Array.isArray(member.value.gosPersonData.documents.document)
|
|
@@ -866,6 +1077,7 @@ export default {
|
|
|
866
1077
|
case formStore.policyholdersRepresentativeFormKey:
|
|
867
1078
|
return route.params.taskId !== '0';
|
|
868
1079
|
default:
|
|
1080
|
+
if (route.query.tab === 'slaveInsuredForm') return true;
|
|
869
1081
|
return false;
|
|
870
1082
|
}
|
|
871
1083
|
};
|
|
@@ -900,9 +1112,9 @@ export default {
|
|
|
900
1112
|
return true;
|
|
901
1113
|
}
|
|
902
1114
|
};
|
|
903
|
-
return dataStore.
|
|
1115
|
+
return dataStore.controls.hasGBDFL && perMemberCondition();
|
|
904
1116
|
});
|
|
905
|
-
const hasGBDFLDocSelection = dataStore.isLifetrip
|
|
1117
|
+
const hasGBDFLDocSelection = dataStore.isLifetrip;
|
|
906
1118
|
const hasInsis = computed(() => dataStore.controls.hasInsis);
|
|
907
1119
|
const hasGKB = computed(() => {
|
|
908
1120
|
const perMemberCondition = () => {
|
|
@@ -913,8 +1125,12 @@ export default {
|
|
|
913
1125
|
}
|
|
914
1126
|
return member.value.id === 0;
|
|
915
1127
|
}
|
|
1128
|
+
case formStore.insuredFormKey: {
|
|
1129
|
+
if (dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
1130
|
+
return true;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
916
1133
|
case formStore.policyholderFormKey:
|
|
917
|
-
case formStore.insuredFormKey:
|
|
918
1134
|
case formStore.beneficialOwnerFormKey:
|
|
919
1135
|
case formStore.policyholdersRepresentativeFormKey:
|
|
920
1136
|
return false;
|
|
@@ -922,12 +1138,17 @@ export default {
|
|
|
922
1138
|
return false;
|
|
923
1139
|
}
|
|
924
1140
|
};
|
|
925
|
-
return dataStore.
|
|
1141
|
+
return dataStore.controls.hasGKB && !!dataStore.isTask() && perMemberCondition();
|
|
926
1142
|
});
|
|
927
|
-
const
|
|
928
|
-
|
|
1143
|
+
const hasDigitalDocument = computed(() => {
|
|
1144
|
+
if (whichForm.value === formStore.beneficiaryFormKey && (dataStore.isBolashak || dataStore.isGons)) {
|
|
1145
|
+
return false;
|
|
1146
|
+
} else if (whichForm.value === formStore.insuredFormKey && dataStore.isLifetrip && member.value.isInsuredUnderage) {
|
|
1147
|
+
return false;
|
|
1148
|
+
}
|
|
1149
|
+
return true;
|
|
929
1150
|
});
|
|
930
|
-
const hasMemberSearch = computed(() => showSaveButton.value && (hasGBDFL.value || hasGKB.value || hasInsis.value
|
|
1151
|
+
const hasMemberSearch = computed(() => showSaveButton.value && (hasGBDFL.value || hasGKB.value || hasInsis.value));
|
|
931
1152
|
const hasMiddleName = computed(() => {
|
|
932
1153
|
if (dataStore.isLifetrip) {
|
|
933
1154
|
return false;
|
|
@@ -938,7 +1159,11 @@ export default {
|
|
|
938
1159
|
if (dataStore.isLifetrip || dataStore.isPension) {
|
|
939
1160
|
return false;
|
|
940
1161
|
}
|
|
941
|
-
if (
|
|
1162
|
+
if (
|
|
1163
|
+
(whichForm.value === formStore.beneficiaryFormKey || whichForm.value === formStore.insuredFormKey) &&
|
|
1164
|
+
member.value.iin !== formStore.policyholderForm.iin &&
|
|
1165
|
+
!hasGKB.value
|
|
1166
|
+
) {
|
|
942
1167
|
return true;
|
|
943
1168
|
}
|
|
944
1169
|
return false;
|
|
@@ -973,18 +1198,24 @@ export default {
|
|
|
973
1198
|
(whichForm.value === formStore.beneficiaryFormKey && member.value.iin !== formStore.policyholderForm.iin) ||
|
|
974
1199
|
(dataStore.isLifetrip && whichForm.value === formStore.insuredFormKey && member.value.isInsuredUnderage),
|
|
975
1200
|
);
|
|
976
|
-
const hasWorkPositionDict =
|
|
977
|
-
|
|
1201
|
+
const hasWorkPositionDict = dataStore.isBaiterek;
|
|
1202
|
+
const hasIssuerOther = computed(() => (useEnv().isProduction ? dataStore.isPension : true) && member.value.documentIssuers && member.value.documentIssuers.nameRu === 'Другое');
|
|
1203
|
+
const isCurrentFormMatch = computed(() => {
|
|
1204
|
+
if (dataStore.isPension) {
|
|
1205
|
+
return whichForm.value === formStore.insuredFormKey;
|
|
1206
|
+
}
|
|
1207
|
+
return whichForm.value === formStore.policyholderFormKey;
|
|
1208
|
+
});
|
|
978
1209
|
const birthDateRule = computed(() => {
|
|
979
1210
|
const baseDateRule = dataStore.rules.required.concat(dataStore.rules.birthDate);
|
|
980
1211
|
const byMemberAndProductRule = () => {
|
|
981
1212
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
982
|
-
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek) {
|
|
1213
|
+
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek || dataStore.isMycar) {
|
|
983
1214
|
return dataStore.rules.age18ByDate;
|
|
984
1215
|
}
|
|
985
1216
|
}
|
|
986
1217
|
if (whichForm.value === formStore.insuredFormKey) {
|
|
987
|
-
if (dataStore.isBolashak || dataStore.isBaiterek) {
|
|
1218
|
+
if (dataStore.isBolashak || dataStore.isBaiterek || dataStore.isMycar) {
|
|
988
1219
|
return dataStore.rules.age18ByDate;
|
|
989
1220
|
}
|
|
990
1221
|
if (dataStore.isLifetrip) {
|
|
@@ -999,17 +1230,17 @@ export default {
|
|
|
999
1230
|
const baseAgeRule = dataStore.rules.numbers;
|
|
1000
1231
|
const byMemberAndProductRule = () => {
|
|
1001
1232
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
1002
|
-
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek) {
|
|
1233
|
+
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek || dataStore.isMycar) {
|
|
1003
1234
|
return dataStore.rules.age18;
|
|
1004
1235
|
}
|
|
1005
1236
|
}
|
|
1006
1237
|
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
1007
|
-
if (dataStore.isBolashak) {
|
|
1238
|
+
if (dataStore.isGons || dataStore.isBolashak) {
|
|
1008
1239
|
return dataStore.rules.beneficiaryAgeLimit;
|
|
1009
1240
|
}
|
|
1010
1241
|
}
|
|
1011
1242
|
if (whichForm.value === formStore.insuredFormKey) {
|
|
1012
|
-
if (dataStore.isBaiterek || dataStore.isBolashak) {
|
|
1243
|
+
if (dataStore.isBaiterek || dataStore.isMycar || dataStore.isBolashak) {
|
|
1013
1244
|
return dataStore.rules.age18;
|
|
1014
1245
|
}
|
|
1015
1246
|
}
|
|
@@ -1031,13 +1262,16 @@ export default {
|
|
|
1031
1262
|
if (member.value.isInsuredUnderage) {
|
|
1032
1263
|
return [];
|
|
1033
1264
|
}
|
|
1265
|
+
if (dataStore.isPension && member.value.signOfResidency.nameRu === 'Нерезидент') {
|
|
1266
|
+
return dataStore.rules.phoneNonResidentFormat;
|
|
1267
|
+
}
|
|
1034
1268
|
return basePhoneRule;
|
|
1035
1269
|
});
|
|
1036
1270
|
|
|
1037
1271
|
const residencyRule = computed(() => {
|
|
1038
1272
|
const baseResidencyRule = dataStore.rules.objectRequired;
|
|
1039
1273
|
if (whichForm.value === formStore.policyholderFormKey) {
|
|
1040
|
-
if (dataStore.isBolashak || dataStore.isBaiterek) {
|
|
1274
|
+
if (dataStore.isBolashak || dataStore.isBaiterek || dataStore.isMycar) {
|
|
1041
1275
|
return baseResidencyRule.concat(dataStore.rules.noResident);
|
|
1042
1276
|
}
|
|
1043
1277
|
}
|
|
@@ -1048,16 +1282,18 @@ export default {
|
|
|
1048
1282
|
});
|
|
1049
1283
|
|
|
1050
1284
|
const getOtpConditionByMember = () => {
|
|
1051
|
-
|
|
1285
|
+
const which = whichForm.value as keyof typeof StoreMembers | 'slaveInsuredForm';
|
|
1286
|
+
switch (which) {
|
|
1052
1287
|
case formStore.policyholderFormKey:
|
|
1053
1288
|
return route.params.taskId === '0';
|
|
1054
1289
|
case formStore.insuredFormKey:
|
|
1055
|
-
|
|
1056
|
-
return route.query.id === '0';
|
|
1290
|
+
case 'slaveInsuredForm':
|
|
1057
1291
|
case formStore.policyholdersRepresentativeFormKey:
|
|
1058
1292
|
case formStore.beneficiaryFormKey:
|
|
1059
1293
|
case formStore.beneficialOwnerFormKey:
|
|
1060
1294
|
return route.query.id === '0';
|
|
1295
|
+
default:
|
|
1296
|
+
return dataStore.isPension && route.query.id === '0' && formStore.applicationData.processCode === 24;
|
|
1061
1297
|
}
|
|
1062
1298
|
};
|
|
1063
1299
|
const otpCondition = computed(() => {
|
|
@@ -1066,13 +1302,22 @@ export default {
|
|
|
1066
1302
|
if (whichForm.value === formStore.beneficiaryFormKey && member.value.age !== null && Number(member.value.age) < 18) return false;
|
|
1067
1303
|
if (dataStore.isLifetrip && whichForm.value === formStore.insuredFormKey && member.value.isInsuredUnderage) return false;
|
|
1068
1304
|
if (!member.value.phoneNumber || (member.value.phoneNumber && member.value.phoneNumber.length !== useMask().phone.length)) return false;
|
|
1305
|
+
if (route.query.tab === 'slaveInsuredForm' && route.query.id === '0') return true;
|
|
1069
1306
|
return getOtpConditionByMember();
|
|
1070
1307
|
});
|
|
1308
|
+
const isOwnChild = computed(() => {
|
|
1309
|
+
//в справочнике relations 9-ребенок, 12-сын, 13-дочь
|
|
1310
|
+
const childIds = [9, 12, 13];
|
|
1311
|
+
return !!childIds.includes(Number(member.value.relationDegree.ids));
|
|
1312
|
+
});
|
|
1313
|
+
const isEmpty = computed(() => {
|
|
1314
|
+
return isOwnChild.value ? formStore.children?.length === 0 : childrenLoaded.value && formStore.children?.length === 0;
|
|
1315
|
+
});
|
|
1071
1316
|
|
|
1072
|
-
const searchMember = async () => {
|
|
1317
|
+
const searchMember = async (title: string = 'Поиск контрагента') => {
|
|
1073
1318
|
if (!isDisabled.value) {
|
|
1074
1319
|
dataStore.panelAction = null;
|
|
1075
|
-
dataStore.rightPanel.title =
|
|
1320
|
+
dataStore.rightPanel.title = title;
|
|
1076
1321
|
dataStore.rightPanel.open = true;
|
|
1077
1322
|
isSearchOpen.value = true;
|
|
1078
1323
|
isDocumentOpen.value = false;
|
|
@@ -1085,6 +1330,10 @@ export default {
|
|
|
1085
1330
|
};
|
|
1086
1331
|
|
|
1087
1332
|
const searchPositions = async () => {
|
|
1333
|
+
if (searchQuery.value.length < 4) {
|
|
1334
|
+
dataStore.showToaster('error', dataStore.t('rules.searchQueryLen', { len: 4 }));
|
|
1335
|
+
return;
|
|
1336
|
+
}
|
|
1088
1337
|
if (!isDisabled.value) {
|
|
1089
1338
|
isPanelLoading.value = true;
|
|
1090
1339
|
positionsList.value = await dataStore.getWorkPosition(searchQuery.value);
|
|
@@ -1123,6 +1372,7 @@ export default {
|
|
|
1123
1372
|
isPositionPanelOpen.value = false;
|
|
1124
1373
|
}
|
|
1125
1374
|
if (type === 'workPosition') {
|
|
1375
|
+
dataStore.rightPanel.title = dataStore.t('form.jobPosition');
|
|
1126
1376
|
isPositionPanelOpen.value = true;
|
|
1127
1377
|
isOtpPanelOpen.value = false;
|
|
1128
1378
|
isDocumentOpen.value = false;
|
|
@@ -1193,7 +1443,7 @@ export default {
|
|
|
1193
1443
|
if (dataStore.isBolashak) {
|
|
1194
1444
|
if (key === 'relationDegree') {
|
|
1195
1445
|
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
1196
|
-
const beneficiaryRelations = [12, 13, 14, 15, 20, 21, 22, 23];
|
|
1446
|
+
const beneficiaryRelations = [9, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25];
|
|
1197
1447
|
return list.filter(i => beneficiaryRelations.includes(Number(i.ids)));
|
|
1198
1448
|
}
|
|
1199
1449
|
if (whichForm.value === formStore.insuredFormKey) {
|
|
@@ -1202,6 +1452,14 @@ export default {
|
|
|
1202
1452
|
}
|
|
1203
1453
|
}
|
|
1204
1454
|
}
|
|
1455
|
+
if (dataStore.isGons && key === 'relationDegree' && whichForm.value === formStore.beneficiaryFormKey) {
|
|
1456
|
+
const beneficiaryRelations = [9, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25];
|
|
1457
|
+
return list.filter(i => beneficiaryRelations.includes(Number(i.ids)));
|
|
1458
|
+
}
|
|
1459
|
+
if (dataStore.isBaiterek && key === 'relationDegree') {
|
|
1460
|
+
const relations = [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27];
|
|
1461
|
+
return list.filter(i => relations.includes(Number(i.ids)));
|
|
1462
|
+
}
|
|
1205
1463
|
return list;
|
|
1206
1464
|
};
|
|
1207
1465
|
|
|
@@ -1221,6 +1479,10 @@ export default {
|
|
|
1221
1479
|
} else {
|
|
1222
1480
|
// @ts-ignore
|
|
1223
1481
|
member.value[currentPanel.value] = item.nameRu === null ? new Value() : item;
|
|
1482
|
+
if (currentPanel.value === 'documentIssuers' && documentIssuerIsEditable.value) {
|
|
1483
|
+
const id = Number(item.ids);
|
|
1484
|
+
dataStore.saveDocumentIssuer(documentIssuerNotFoundName.value, id);
|
|
1485
|
+
}
|
|
1224
1486
|
}
|
|
1225
1487
|
currentPanelDeep.value = '';
|
|
1226
1488
|
currentPanelSubDeep.value = '';
|
|
@@ -1252,12 +1514,35 @@ export default {
|
|
|
1252
1514
|
}
|
|
1253
1515
|
};
|
|
1254
1516
|
|
|
1255
|
-
const
|
|
1517
|
+
const uploadAdditionalFiles = async (processInstanceId: string | number) => {
|
|
1518
|
+
const formData = new FormData();
|
|
1519
|
+
const information: any = [];
|
|
1520
|
+
const uuidV4 = uuid.v4();
|
|
1521
|
+
if (additionalDocuments.value) {
|
|
1522
|
+
Object.values(additionalDocuments.value).map((value: any) => {
|
|
1523
|
+
formData.append('file', value);
|
|
1524
|
+
const ext = value.name.substring(value.name.lastIndexOf('.'));
|
|
1525
|
+
const selectedDocument = dataStore.dicFileTypeList.find((i: Value) => i.code === value.code);
|
|
1526
|
+
information.push({
|
|
1527
|
+
identifier: `${uuidV4}${ext}`,
|
|
1528
|
+
iin: member.value.iin ? member.value.iin.replaceAll('-', '') : null,
|
|
1529
|
+
processInstanceId: processInstanceId,
|
|
1530
|
+
fileTypeCode: selectedDocument ? selectedDocument.code : null,
|
|
1531
|
+
fileTypeId: selectedDocument ? selectedDocument.id : null,
|
|
1532
|
+
fileName: value.name,
|
|
1533
|
+
});
|
|
1534
|
+
});
|
|
1535
|
+
formData.append('fileData', JSON.stringify(information));
|
|
1536
|
+
await dataStore.uploadFiles(formData, false);
|
|
1537
|
+
}
|
|
1538
|
+
};
|
|
1539
|
+
|
|
1540
|
+
const attachFile = (event: InputEvent) => {
|
|
1256
1541
|
if (event.target) {
|
|
1257
|
-
fileData.value =
|
|
1542
|
+
fileData.value = { file: (event.target as HTMLInputElement).files };
|
|
1258
1543
|
} else {
|
|
1259
1544
|
if (event.dataTransfer) {
|
|
1260
|
-
fileData.value =
|
|
1545
|
+
fileData.value = { file: (event.dataTransfer as DataTransfer).files };
|
|
1261
1546
|
}
|
|
1262
1547
|
}
|
|
1263
1548
|
};
|
|
@@ -1326,7 +1611,7 @@ export default {
|
|
|
1326
1611
|
if (parsedDocument.middleName) member.value.middleName = parsedDocument.middleName;
|
|
1327
1612
|
if (parsedDocument.fullName) member.value.longName = parsedDocument.fullName;
|
|
1328
1613
|
if (parsedDocument.documentName && parsedDocument.documentName.startsWith('Kazakhstan - Id Card')) {
|
|
1329
|
-
const documentType = dataStore.documentTypes.find((i: Value) => i.ids ===
|
|
1614
|
+
const documentType = dataStore.documentTypes.find((i: Value) => i.ids === CoreEnums.Insis.DocTypes['1UDL']);
|
|
1330
1615
|
if (documentType) member.value.documentType = documentType;
|
|
1331
1616
|
}
|
|
1332
1617
|
if (!!parsedDocument.documentIssuer) {
|
|
@@ -1351,55 +1636,78 @@ export default {
|
|
|
1351
1636
|
}
|
|
1352
1637
|
};
|
|
1353
1638
|
|
|
1354
|
-
const
|
|
1639
|
+
const getDoc = async (type: FileActions) => {
|
|
1355
1640
|
if (memberDocument.value) {
|
|
1356
1641
|
documentLoading.value = true;
|
|
1357
1642
|
const fileExtension = memberDocument.value.fileName!.match(/\.([0-9a-z]+)(?:[\?#]|$)/i)![1];
|
|
1358
|
-
await dataStore.
|
|
1643
|
+
await dataStore.getDoc(memberDocument.value, type, fileExtension);
|
|
1359
1644
|
documentLoading.value = false;
|
|
1360
1645
|
}
|
|
1361
1646
|
};
|
|
1362
1647
|
|
|
1363
1648
|
const getFamilyInfo = async () => {
|
|
1364
|
-
if (
|
|
1365
|
-
if (
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1649
|
+
if (isButtonLoading.value) return;
|
|
1650
|
+
if (!member.value.relationDegree?.nameRu) {
|
|
1651
|
+
dataStore.showToaster('error', dataStore.t('toaster.needSelectRelationDegree'));
|
|
1652
|
+
return;
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
if (isOwnChild.value) {
|
|
1656
|
+
if (!formStore.policyholderForm.iin) return;
|
|
1657
|
+
if (formStore.children.length === 0) {
|
|
1658
|
+
isButtonLoading.value = true;
|
|
1659
|
+
await dataStore.getChildren(formStore.policyholderForm.iin);
|
|
1660
|
+
childrenLoaded.value = true;
|
|
1370
1661
|
}
|
|
1371
|
-
} else {
|
|
1372
|
-
familyDialog.value = true;
|
|
1373
1662
|
}
|
|
1663
|
+
parentIin.value = '';
|
|
1664
|
+
familyDialog.value = true;
|
|
1374
1665
|
isButtonLoading.value = false;
|
|
1375
1666
|
};
|
|
1376
1667
|
|
|
1668
|
+
const getChildren = async () => {
|
|
1669
|
+
dataStore.isButtonsLoading = true;
|
|
1670
|
+
try {
|
|
1671
|
+
const iinChecked = await dataStore.checkIIN(parentIin.value.replace(/-/g, ''));
|
|
1672
|
+
if (!iinChecked) {
|
|
1673
|
+
dataStore.showToaster('error', `Некорректный ИИН`);
|
|
1674
|
+
return;
|
|
1675
|
+
}
|
|
1676
|
+
await dataStore.getChildren(parentIin.value);
|
|
1677
|
+
childrenLoaded.value = true;
|
|
1678
|
+
} finally {
|
|
1679
|
+
dataStore.isButtonsLoading = false;
|
|
1680
|
+
}
|
|
1681
|
+
};
|
|
1682
|
+
|
|
1377
1683
|
const closeFamilyDialog = (resetMember = false) => {
|
|
1378
1684
|
if (resetMember === true) {
|
|
1379
1685
|
member.value.resetMember();
|
|
1380
1686
|
}
|
|
1687
|
+
formStore.children = [];
|
|
1688
|
+
childrenLoaded.value = false;
|
|
1381
1689
|
familyDialog.value = false;
|
|
1382
|
-
selectedFamilyMember.value = {};
|
|
1383
1690
|
isButtonLoading.value = false;
|
|
1384
1691
|
dataStore.rightPanel.open = false;
|
|
1385
1692
|
isSearchOpen.value = false;
|
|
1693
|
+
if (dataStore.isGons && resetMember) {
|
|
1694
|
+
member.value.chooseChild = '';
|
|
1695
|
+
}
|
|
1386
1696
|
};
|
|
1387
1697
|
|
|
1388
|
-
const selectFamilyMember = (
|
|
1389
|
-
if (
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
selectedFamilyMember.value = familyMember;
|
|
1393
|
-
member.value.iin = reformatIin(selectedFamilyMember.value.childIIN!);
|
|
1394
|
-
member.value.firstName = selectedFamilyMember.value.childName!;
|
|
1395
|
-
member.value.lastName = selectedFamilyMember.value.childSurName!;
|
|
1396
|
-
member.value.middleName = selectedFamilyMember.value.childPatronymic ?? '';
|
|
1397
|
-
member.value.birthDate = reformatDate(selectedFamilyMember.value.childBirthDate!);
|
|
1698
|
+
const selectFamilyMember = () => {
|
|
1699
|
+
if (Object.keys(selectedFamilyMember.value).length === 0) {
|
|
1700
|
+
dataStore.showToaster('error', 'Нужно выбрать ребенка');
|
|
1701
|
+
return;
|
|
1398
1702
|
}
|
|
1703
|
+
member.value.chooseChildId = selectedFamilyMember.value.id!;
|
|
1704
|
+
selectedChild.value = selectedFamilyMember.value;
|
|
1705
|
+
|
|
1399
1706
|
familyDialog.value = false;
|
|
1400
1707
|
isButtonLoading.value = false;
|
|
1401
1708
|
dataStore.rightPanel.open = false;
|
|
1402
1709
|
isSearchOpen.value = false;
|
|
1710
|
+
openDigitalDocumentModal('child');
|
|
1403
1711
|
};
|
|
1404
1712
|
|
|
1405
1713
|
const getContragentFromGBDFL = async () => {
|
|
@@ -1430,7 +1738,9 @@ export default {
|
|
|
1430
1738
|
|
|
1431
1739
|
const selectGbdDocument = (document: Api.GBD.Document) => {
|
|
1432
1740
|
if (document) {
|
|
1433
|
-
const documentType = dataStore.documentTypes.find(
|
|
1741
|
+
const documentType = dataStore.documentTypes.find(
|
|
1742
|
+
(i: Value) => i.ids === Object.keys(CoreEnums.GBD.DocTypes)[Object.values(CoreEnums.GBD.DocTypes).indexOf(document.type.code)],
|
|
1743
|
+
);
|
|
1434
1744
|
if (documentType) member.value.documentType = documentType;
|
|
1435
1745
|
const documentNumber = document.number;
|
|
1436
1746
|
if (documentNumber) member.value.documentNumber = documentNumber;
|
|
@@ -1447,28 +1757,56 @@ export default {
|
|
|
1447
1757
|
isSearchOpen.value = false;
|
|
1448
1758
|
};
|
|
1449
1759
|
|
|
1760
|
+
const getContragentClick = async (contragent: ContragentType) => {
|
|
1761
|
+
isButtonLoading.value = true;
|
|
1762
|
+
await dataStore.serializeContragentData(member.value, contragent);
|
|
1763
|
+
fioChooseDialog.value = false;
|
|
1764
|
+
isButtonLoading.value = false;
|
|
1765
|
+
dataStore.rightPanel.open = false;
|
|
1766
|
+
isSearchOpen.value = false;
|
|
1767
|
+
};
|
|
1768
|
+
|
|
1450
1769
|
const getContragent = async () => {
|
|
1451
|
-
if (
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1770
|
+
if (isNonResident.value) {
|
|
1771
|
+
if (!member.value.lastName || !member.value.firstName) {
|
|
1772
|
+
dataStore.showToaster('error', 'Заполните поля Имя и Фамилия', 3000);
|
|
1773
|
+
dataStore.rightPanel.open = false;
|
|
1774
|
+
isSearchOpen.value = false;
|
|
1775
|
+
return;
|
|
1776
|
+
}
|
|
1777
|
+
} else {
|
|
1778
|
+
if (member.value.hasAgreement !== true) {
|
|
1779
|
+
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
1780
|
+
dataStore.rightPanel.open = false;
|
|
1781
|
+
isSearchOpen.value = false;
|
|
1782
|
+
return;
|
|
1783
|
+
}
|
|
1784
|
+
if (!member.value.iin || member.value.iin.length !== useMask().iin.length) {
|
|
1785
|
+
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'ИИН' }), 5000);
|
|
1786
|
+
dataStore.rightPanel.open = false;
|
|
1787
|
+
isSearchOpen.value = false;
|
|
1788
|
+
return;
|
|
1789
|
+
}
|
|
1462
1790
|
}
|
|
1463
1791
|
isButtonLoading.value = true;
|
|
1464
|
-
|
|
1792
|
+
if (isNonResident.value) {
|
|
1793
|
+
const response = await dataStore.getContragent(member.value, false);
|
|
1794
|
+
if (response) contragents.value = response.items;
|
|
1795
|
+
else dataStore.showToaster('error', 'Не найдено совпадений', 3000);
|
|
1796
|
+
fioChooseDialog.value = true;
|
|
1797
|
+
} else {
|
|
1798
|
+
await dataStore.getContragent(member.value, false);
|
|
1799
|
+
}
|
|
1465
1800
|
isButtonLoading.value = false;
|
|
1466
1801
|
dataStore.rightPanel.open = false;
|
|
1467
1802
|
isSearchOpen.value = false;
|
|
1468
1803
|
};
|
|
1469
1804
|
|
|
1470
1805
|
const validateESBD = async (docTypeNumber: number) => {
|
|
1471
|
-
|
|
1806
|
+
if (!dataStore.checkWithESBD) {
|
|
1807
|
+
return true;
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1472
1810
|
const data: ESBDValidationType = {
|
|
1473
1811
|
personType: 1,
|
|
1474
1812
|
iin: member.value.iin!.replaceAll('-', ''),
|
|
@@ -1486,7 +1824,21 @@ export default {
|
|
|
1486
1824
|
resident: member.value.signOfResidency.ids === '500011.2' || member.value.signOfResidency.ids === null ? 0 : 1,
|
|
1487
1825
|
countryId: member.value.countryOfTaxResidency.ids !== '500014.3' ? Number(String(member.value.countryOfTaxResidency.ids).at(-1)) : 2,
|
|
1488
1826
|
};
|
|
1489
|
-
|
|
1827
|
+
const ESBDResponse = await dataStore.getValidateClientESBD(data);
|
|
1828
|
+
if (!ESBDResponse) {
|
|
1829
|
+
dataStore.isLoading = false;
|
|
1830
|
+
isSubmittingForm.value = false;
|
|
1831
|
+
return false;
|
|
1832
|
+
}
|
|
1833
|
+
const initialPoint = `${member.value.iin!.replaceAll('-', '')}.`;
|
|
1834
|
+
const RESPONSE = ESBDMessage(ESBDResponse, initialPoint);
|
|
1835
|
+
let errorMessage = RESPONSE !== false ? RESPONSE : 'Что-то произошло не так';
|
|
1836
|
+
if (typeof ESBDResponse !== 'object' || ESBDResponse.errorCode !== 0) {
|
|
1837
|
+
dataStore.isLoading = false;
|
|
1838
|
+
dataStore.showToaster('error', errorMessage, 5000);
|
|
1839
|
+
return false;
|
|
1840
|
+
}
|
|
1841
|
+
return true;
|
|
1490
1842
|
};
|
|
1491
1843
|
|
|
1492
1844
|
const saveMember = async () => {
|
|
@@ -1497,10 +1849,11 @@ export default {
|
|
|
1497
1849
|
}
|
|
1498
1850
|
const isInsured = formStore.isPolicyholderInsured;
|
|
1499
1851
|
const remoteIsInsured = ref<boolean | null>(null);
|
|
1852
|
+
const isNewApplication = route.params.taskId === '0';
|
|
1500
1853
|
if (whichForm.value == formStore.policyholderFormKey || (dataStore.isPension && whichForm.value == formStore.insuredFormKey)) {
|
|
1501
1854
|
if (route.params.taskId === '0') {
|
|
1502
1855
|
try {
|
|
1503
|
-
const taskId = await dataStore.startApplication(member.value, dataStore.isPension ? (String(route.query.type) === 'joint' ?
|
|
1856
|
+
const taskId = await dataStore.startApplication(member.value, dataStore.isPension ? (String(route.query.type) === 'joint' ? 25 : 19) : undefined);
|
|
1504
1857
|
if (typeof taskId === 'string') {
|
|
1505
1858
|
await dataStore.getApplicationData(taskId, false, false, false, false);
|
|
1506
1859
|
remoteIsInsured.value = formStore.applicationData.clientApp.isInsured;
|
|
@@ -1524,6 +1877,13 @@ export default {
|
|
|
1524
1877
|
if (fileData.value && fileData.value.file) {
|
|
1525
1878
|
await uploadFile(formStore.applicationData.processInstanceId);
|
|
1526
1879
|
}
|
|
1880
|
+
if (additionalDocuments.value && additionalDocuments.value.length) {
|
|
1881
|
+
if (
|
|
1882
|
+
(!formStore.applicationData.isEnpfSum && formStore.applicationData?.pensionApp.transferContracts && formStore.applicationData?.pensionApp.transferContracts.length) ||
|
|
1883
|
+
(formStore.applicationData?.pensionApp.compulsoryProfMonthCount && formStore.applicationData?.pensionApp.compulsoryProfMonthCount >= 60)
|
|
1884
|
+
)
|
|
1885
|
+
await uploadAdditionalFiles(formStore.applicationData.processInstanceId);
|
|
1886
|
+
}
|
|
1527
1887
|
}
|
|
1528
1888
|
const memberFromApplicaiton = memberStore.getMemberFromApplication(whichForm.value, whichIndex.value ? Number(whichIndex.value) : undefined);
|
|
1529
1889
|
if (typeof member.value.id !== 'number' || (typeof member.value.id === 'number' && member.value.id > 0 === false)) {
|
|
@@ -1547,30 +1907,43 @@ export default {
|
|
|
1547
1907
|
}
|
|
1548
1908
|
}
|
|
1549
1909
|
}
|
|
1550
|
-
if (
|
|
1910
|
+
if (
|
|
1911
|
+
whichForm.value === formStore.insuredFormKey ||
|
|
1912
|
+
(memberFromApplicaiton &&
|
|
1913
|
+
memberFromApplicaiton.processInstanceId &&
|
|
1914
|
+
formStore.applicationData.slave &&
|
|
1915
|
+
memberFromApplicaiton.processInstanceId === formStore.applicationData.slave.processInstanceId)
|
|
1916
|
+
) {
|
|
1551
1917
|
wasInsuredAction.value = true;
|
|
1552
1918
|
if (dataStore.isPension) {
|
|
1553
|
-
|
|
1919
|
+
let data = {
|
|
1554
1920
|
...formStore.applicationData.pensionApp,
|
|
1555
|
-
|
|
1556
|
-
bankBik: member.value.bankInfo.bik,
|
|
1557
|
-
bankBin: member.value.bankInfo.bankName.ids,
|
|
1558
|
-
bankId: member.value.bankInfo.bankName.id,
|
|
1559
|
-
bankName: member.value.bankInfo.bankName.nameRu,
|
|
1560
|
-
guaranteedPeriod: 0,
|
|
1561
|
-
amount: 0,
|
|
1562
|
-
compulsoryContractAmount: 0,
|
|
1563
|
-
voluntaryContractAmount: 0,
|
|
1564
|
-
ownFundsRaisAmount: 0,
|
|
1565
|
-
compulsoryProfContractAmount: 0,
|
|
1921
|
+
slave: formStore.applicationData.slave?.pensionApp ?? undefined,
|
|
1566
1922
|
};
|
|
1567
|
-
const
|
|
1568
|
-
|
|
1569
|
-
|
|
1923
|
+
const bankinfo = {
|
|
1924
|
+
account: member.value.bankInfo.iik ?? '',
|
|
1925
|
+
bankBik: member.value.bankInfo.bik ?? '',
|
|
1926
|
+
bankBin: member.value.bankInfo.bin ? String(member.value.bankInfo.bin).replaceAll('-', '') : '',
|
|
1927
|
+
bankId: Number(member.value.bankInfo.bankName.id) ?? 0,
|
|
1928
|
+
bankName: member.value.bankInfo.bankName.nameRu ?? '',
|
|
1570
1929
|
};
|
|
1930
|
+
if (route.query.tab === 'slaveInsuredForm') {
|
|
1931
|
+
data.slave = { ...data.slave, ...bankinfo };
|
|
1932
|
+
} else {
|
|
1933
|
+
data = { ...data, ...bankinfo };
|
|
1934
|
+
}
|
|
1935
|
+
const pensionKeysWithSpace = ['compulsoryContractAmount', 'compulsoryProfContractAmount', 'voluntaryContractAmount', 'ownFundsRaisAmount'];
|
|
1936
|
+
pensionKeysWithSpace.forEach(key => {
|
|
1937
|
+
if (/\s/g.test(data[key]) === true) data[key] = formatSpacedNumber(data[key]);
|
|
1938
|
+
});
|
|
1939
|
+
if (data.slave)
|
|
1940
|
+
pensionKeysWithSpace.forEach(key => {
|
|
1941
|
+
if (/\s/g.test(data.slave[key]) === true) data.slave[key] = formatSpacedNumber(data.slave[key]);
|
|
1942
|
+
});
|
|
1571
1943
|
const isApplicationSaved = await dataStore.setApplication(data);
|
|
1944
|
+
if (!isNewApplication) dataStore.showToaster('info', dataStore.t('toaster.needToRecalculate'), 5000);
|
|
1572
1945
|
if (isApplicationSaved === false) return;
|
|
1573
|
-
dataStore.
|
|
1946
|
+
await dataStore.saveMember(member.value, 'Client', memberFromApplicaiton);
|
|
1574
1947
|
}
|
|
1575
1948
|
}
|
|
1576
1949
|
await router.replace({
|
|
@@ -1609,6 +1982,7 @@ export default {
|
|
|
1609
1982
|
}
|
|
1610
1983
|
}
|
|
1611
1984
|
if (member.value.hasAgreement !== true) {
|
|
1985
|
+
if (isNonResident.value) return true;
|
|
1612
1986
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'));
|
|
1613
1987
|
return false;
|
|
1614
1988
|
}
|
|
@@ -1623,53 +1997,62 @@ export default {
|
|
|
1623
1997
|
isSubmittingForm.value = true;
|
|
1624
1998
|
const docType = member.value.documentType.ids;
|
|
1625
1999
|
if (
|
|
2000
|
+
!isNonResident.value &&
|
|
1626
2001
|
member.value.gotFromInsis === true &&
|
|
1627
|
-
(docType ===
|
|
2002
|
+
(docType === CoreEnums.Insis.DocTypes['1UDL'] ||
|
|
2003
|
+
docType === CoreEnums.Insis.DocTypes.SBI ||
|
|
2004
|
+
docType === CoreEnums.Insis.DocTypes.PS ||
|
|
2005
|
+
docType === CoreEnums.Insis.DocTypes.VNZ)
|
|
1628
2006
|
) {
|
|
1629
2007
|
dataStore.isLoading = true;
|
|
1630
2008
|
const docTypeCodes = {
|
|
1631
2009
|
'1UDL': 1,
|
|
1632
|
-
PS:
|
|
2010
|
+
PS: 11,
|
|
1633
2011
|
SBI: 3,
|
|
1634
2012
|
VNZ: 4,
|
|
1635
2013
|
};
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
2014
|
+
|
|
2015
|
+
const isESBDValid = await validateESBD(docTypeCodes[docType]);
|
|
2016
|
+
if (isESBDValid === false) return;
|
|
2017
|
+
|
|
2018
|
+
if (member.value.bankInfo.iik.length === useMask().iik.length) {
|
|
2019
|
+
const isValidIik = await dataStore.checkAccountNumber(member.value.bankInfo.iik);
|
|
2020
|
+
if (isValidIik === false) {
|
|
2021
|
+
dataStore.showToaster('error', dataStore.t('error.notValidIik'));
|
|
2022
|
+
member.value.bankInfo.iik = '';
|
|
2023
|
+
isSubmittingForm.value = false;
|
|
2024
|
+
return;
|
|
2025
|
+
}
|
|
2026
|
+
if (formStore.pensionApp && whichForm.value === 'insuredForm') {
|
|
2027
|
+
formStore.pensionApp.account = member.value.bankInfo.iik;
|
|
2028
|
+
formStore.pensionApp.bankBik = member.value.bankInfo.bik;
|
|
2029
|
+
formStore.pensionApp.bankBin = member.value.bankInfo.bin;
|
|
2030
|
+
formStore.pensionApp.bankId = Number(member.value.bankInfo.bankName.id);
|
|
2031
|
+
}
|
|
1641
2032
|
}
|
|
1642
|
-
const
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
if (formStore.applicationData.pensionApp) {
|
|
1658
|
-
formStore.applicationData.pensionApp.account = member.value.bankInfo.iik;
|
|
1659
|
-
formStore.applicationData.pensionApp.bankBik = member.value.bankInfo.bik;
|
|
1660
|
-
formStore.applicationData.pensionApp.bankBin = member.value.bankInfo.bin;
|
|
1661
|
-
formStore.applicationData.pensionApp.bankId = member.value.bankInfo.bankName.id;
|
|
1662
|
-
}
|
|
2033
|
+
const hasMemberSaved = await saveMember();
|
|
2034
|
+
} else if (isNonResident.value) {
|
|
2035
|
+
if (member.value.bankInfo.iik.length === useMask().iik.length) {
|
|
2036
|
+
const isValidIik = await dataStore.checkAccountNumber(member.value.bankInfo.iik);
|
|
2037
|
+
if (isValidIik === false) {
|
|
2038
|
+
dataStore.showToaster('error', dataStore.t('error.notValidIik'));
|
|
2039
|
+
member.value.bankInfo.iik = '';
|
|
2040
|
+
isSubmittingForm.value = false;
|
|
2041
|
+
return;
|
|
2042
|
+
}
|
|
2043
|
+
if (formStore.pensionApp && whichForm.value === 'insuredForm') {
|
|
2044
|
+
formStore.pensionApp.account = member.value.bankInfo.iik;
|
|
2045
|
+
formStore.pensionApp.bankBik = member.value.bankInfo.bik;
|
|
2046
|
+
formStore.pensionApp.bankBin = member.value.bankInfo.bin;
|
|
2047
|
+
formStore.pensionApp.bankId = Number(member.value.bankInfo.bankName.id);
|
|
1663
2048
|
}
|
|
1664
|
-
const hasMemberSaved = await saveMember();
|
|
1665
|
-
} else {
|
|
1666
|
-
dataStore.isLoading = false;
|
|
1667
|
-
dataStore.showToaster('error', errorMessage, 5000);
|
|
1668
2049
|
}
|
|
2050
|
+
const hasMemberSaved = await saveMember();
|
|
1669
2051
|
} else {
|
|
1670
2052
|
member.value.gotFromInsis = true;
|
|
1671
2053
|
const hasMemberSaved = await saveMember();
|
|
1672
2054
|
}
|
|
2055
|
+
dataStore.isDirty = false;
|
|
1673
2056
|
isSubmittingForm.value = false;
|
|
1674
2057
|
} else {
|
|
1675
2058
|
const errors = document.querySelector('.v-input--error');
|
|
@@ -1711,6 +2094,15 @@ export default {
|
|
|
1711
2094
|
|
|
1712
2095
|
const sendOtp = async (onInit = false) => {
|
|
1713
2096
|
otpSending.value = true;
|
|
2097
|
+
if (isCurrentFormMatch.value && member.value.iin && member.value.iin.length === useMask().iin.length) {
|
|
2098
|
+
const iin = member.value.iin.replace(/-/g, '');
|
|
2099
|
+
const type = String(route.query.type) === 'joint' ? 25 : 19;
|
|
2100
|
+
const response = await dataStore.checkExistProcess(iin, dataStore.isPension ? type : constants.products[dataStore.product as keyof typeof constants.products]);
|
|
2101
|
+
if (response) {
|
|
2102
|
+
otpSending.value = false;
|
|
2103
|
+
return;
|
|
2104
|
+
}
|
|
2105
|
+
}
|
|
1714
2106
|
const response = await memberStore.sendOtp(member.value, formStore.applicationData.processInstanceId, onInit);
|
|
1715
2107
|
if (response) {
|
|
1716
2108
|
if (member.value.hasAgreement === null) member.value.hasAgreement = response.otpStatus;
|
|
@@ -1784,6 +2176,12 @@ export default {
|
|
|
1784
2176
|
};
|
|
1785
2177
|
|
|
1786
2178
|
const selectMember = async (index: number, update?: boolean) => {
|
|
2179
|
+
if (dataStore.isDirty === true) {
|
|
2180
|
+
dataStore.quitDialog = true;
|
|
2181
|
+
//@ts-ignore
|
|
2182
|
+
subMemberRoute.value = { query: { ...route.query, i: index, id: getMember(route.query.tab, index).id, upd: update } };
|
|
2183
|
+
return;
|
|
2184
|
+
}
|
|
1787
2185
|
dataStore.rightPanel.open = false;
|
|
1788
2186
|
isButtonLoading.value = true;
|
|
1789
2187
|
isChangingMember.value = true;
|
|
@@ -1808,6 +2206,178 @@ export default {
|
|
|
1808
2206
|
deletionDialog.value = false;
|
|
1809
2207
|
};
|
|
1810
2208
|
|
|
2209
|
+
const startGettingDigitalDocument = () => {
|
|
2210
|
+
if (member.value.hasAgreement !== true) {
|
|
2211
|
+
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
2212
|
+
dataStore.rightPanel.open = false;
|
|
2213
|
+
isSearchOpen.value = false;
|
|
2214
|
+
return;
|
|
2215
|
+
}
|
|
2216
|
+
if (!member.value.iin || member.value.iin.length !== useMask().iin.length || !member.value.phoneNumber || member.value.phoneNumber.length !== useMask().phone.length) {
|
|
2217
|
+
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'Номер телефона, ИИН' }), 5000);
|
|
2218
|
+
dataStore.rightPanel.open = false;
|
|
2219
|
+
isSearchOpen.value = false;
|
|
2220
|
+
return;
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2223
|
+
openDigitalDocumentModal('adult');
|
|
2224
|
+
};
|
|
2225
|
+
|
|
2226
|
+
const openDigitalDocumentModal = (type: 'child' | 'adult') => {
|
|
2227
|
+
digitalDocumentOwnerType.value = type;
|
|
2228
|
+
digitalDocumentDialog.value = true;
|
|
2229
|
+
};
|
|
2230
|
+
|
|
2231
|
+
const getCode = (documentType: string) => {
|
|
2232
|
+
if (!digitalDocumentOwnerType.value) return;
|
|
2233
|
+
if (digitalDocumentOwnerType.value === 'child') {
|
|
2234
|
+
getCodeForChild(documentType);
|
|
2235
|
+
} else {
|
|
2236
|
+
getCodeForAdult(documentType);
|
|
2237
|
+
}
|
|
2238
|
+
};
|
|
2239
|
+
|
|
2240
|
+
const getCodeForChild = async (documentType: string) => {
|
|
2241
|
+
const iin = isOwnChild.value ? formStore.policyholderForm.iin : parentIin.value;
|
|
2242
|
+
if (!iin) return;
|
|
2243
|
+
|
|
2244
|
+
documentLoading.value = true;
|
|
2245
|
+
try {
|
|
2246
|
+
const response = await dataStore.getOnlineChildAccess(iin!, documentType, member.value.chooseChildId!);
|
|
2247
|
+
if (response) {
|
|
2248
|
+
dataStore.showToaster('success', dataStore.t('toaster.successOtp'), 3000);
|
|
2249
|
+
}
|
|
2250
|
+
} finally {
|
|
2251
|
+
documentLoading.value = false;
|
|
2252
|
+
}
|
|
2253
|
+
};
|
|
2254
|
+
|
|
2255
|
+
const getCodeForAdult = async (documentType: string) => {
|
|
2256
|
+
documentLoading.value = true;
|
|
2257
|
+
try {
|
|
2258
|
+
const response = await dataStore.getOnlineAccess(member.value.iin!, documentType);
|
|
2259
|
+
if (response) {
|
|
2260
|
+
dataStore.showToaster('success', dataStore.t('toaster.successOtp'), 3000);
|
|
2261
|
+
}
|
|
2262
|
+
} finally {
|
|
2263
|
+
documentLoading.value = false;
|
|
2264
|
+
}
|
|
2265
|
+
};
|
|
2266
|
+
|
|
2267
|
+
const getDigitalDocument = async (otpCode: string) => {
|
|
2268
|
+
if (!digitalDocumentOwnerType.value) return;
|
|
2269
|
+
let iin = '';
|
|
2270
|
+
if (digitalDocumentOwnerType.value === 'child') {
|
|
2271
|
+
iin = isOwnChild.value ? formStore.policyholderForm.iin! : parentIin.value!;
|
|
2272
|
+
} else {
|
|
2273
|
+
iin = member.value.iin!;
|
|
2274
|
+
}
|
|
2275
|
+
if (!iin) return;
|
|
2276
|
+
|
|
2277
|
+
documentLoading.value = true;
|
|
2278
|
+
try {
|
|
2279
|
+
const response = await dataStore.getDigitalDocuments(iin!, otpCode);
|
|
2280
|
+
|
|
2281
|
+
if (response?.parsingResponseContent) {
|
|
2282
|
+
const responseData = JSON.parse(response.parsingResponseContent);
|
|
2283
|
+
|
|
2284
|
+
if (
|
|
2285
|
+
digitalDocumentOwnerType.value !== 'child' &&
|
|
2286
|
+
member.value.iin &&
|
|
2287
|
+
responseData.iin &&
|
|
2288
|
+
reformatIin(responseData.iin) &&
|
|
2289
|
+
member.value.iin.length === useMask().iin.length &&
|
|
2290
|
+
reformatIin(responseData.iin).length === useMask().iin.length &&
|
|
2291
|
+
member.value.iin !== reformatIin(responseData.iin)
|
|
2292
|
+
) {
|
|
2293
|
+
dataStore.showToaster('error', 'Не совпадают ИИН');
|
|
2294
|
+
documentLoading.value = false;
|
|
2295
|
+
return;
|
|
2296
|
+
}
|
|
2297
|
+
|
|
2298
|
+
if (digitalDocumentOwnerType.value === 'child' && selectedChild.value && responseData) {
|
|
2299
|
+
const { firstName, lastName, birthDate } = selectedChild.value;
|
|
2300
|
+
|
|
2301
|
+
const birthDateMatch =
|
|
2302
|
+
birthDate && responseData.birthDate ? new Date(birthDate).toISOString().split('T')[0] === new Date(responseData.birthDate).toISOString().split('T')[0] : true;
|
|
2303
|
+
|
|
2304
|
+
if (firstName !== responseData.firstName || lastName !== responseData.lastName || !birthDateMatch) {
|
|
2305
|
+
dataStore.showToaster('error', `Выбранный ребёнок (${lastName} ${firstName}) и полученные данные (${responseData.lastName} ${responseData.firstName}) не совпадают.`);
|
|
2306
|
+
return;
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
|
|
2310
|
+
if (dataStore.isLifetrip) {
|
|
2311
|
+
if (response.digitalDocuments.documentType.code !== 'Passport') {
|
|
2312
|
+
dataStore.showToaster('error', 'Допустимый тип документа — только Паспорт.');
|
|
2313
|
+
return;
|
|
2314
|
+
}
|
|
2315
|
+
}
|
|
2316
|
+
|
|
2317
|
+
await dataStore.getContragent(member.value, false, false);
|
|
2318
|
+
|
|
2319
|
+
if (responseData.firstName && responseData.lastName) {
|
|
2320
|
+
member.value.chooseChild = `${responseData.lastName} ${responseData.firstName} ${responseData.middleName ? responseData.middleName : ''}`;
|
|
2321
|
+
}
|
|
2322
|
+
if (responseData.iin) member.value.iin = reformatIin(responseData.iin);
|
|
2323
|
+
if (responseData.firstName) member.value.firstName = responseData.firstName;
|
|
2324
|
+
if (responseData.lastName) member.value.lastName = responseData.lastName;
|
|
2325
|
+
if (responseData.firstNameLatin && dataStore.isLifetrip) member.value.firstNameLat = responseData.firstNameLatin;
|
|
2326
|
+
if (responseData.lastNameLatin && dataStore.isLifetrip) member.value.lastNameLat = responseData.lastNameLatin;
|
|
2327
|
+
if (responseData.middleName) member.value.middleName = responseData.middleName;
|
|
2328
|
+
if (responseData.birthDate) member.value.birthDate = reformatDate(responseData.birthDate);
|
|
2329
|
+
if (responseData.sex) {
|
|
2330
|
+
const sex = responseData.sex.toUpperCase();
|
|
2331
|
+
const genderId = sex === 'M' ? 1 : 2;
|
|
2332
|
+
const gender = dataStore.gender.find(item => item.id === genderId);
|
|
2333
|
+
if (gender) member.value.gender = gender;
|
|
2334
|
+
}
|
|
2335
|
+
if (responseData.documentNumber) member.value.documentNumber = responseData.documentNumber;
|
|
2336
|
+
if (responseData.issueDate) member.value.documentDate = reformatDate(responseData.issueDate);
|
|
2337
|
+
if (responseData.expireDate) member.value.documentExpire = reformatDate(responseData.expireDate);
|
|
2338
|
+
|
|
2339
|
+
const documentIssuer = dataStore.documentIssuers.find(i => i.ids === responseData.givedById);
|
|
2340
|
+
if (documentIssuer) {
|
|
2341
|
+
member.value.documentIssuers = documentIssuer;
|
|
2342
|
+
} else {
|
|
2343
|
+
documentIssuerNotFoundName.value = responseData.givedBy;
|
|
2344
|
+
}
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2347
|
+
if (response?.digitalDocuments?.responseCode === 'SUCCESS') {
|
|
2348
|
+
let fileTypeCode = '';
|
|
2349
|
+
switch (response.digitalDocuments.documentType.code) {
|
|
2350
|
+
case 'IdentityCard':
|
|
2351
|
+
fileTypeCode = '1UDL';
|
|
2352
|
+
break;
|
|
2353
|
+
case 'Passport':
|
|
2354
|
+
fileTypeCode = 'PS';
|
|
2355
|
+
middleNameIsEditable.value = true;
|
|
2356
|
+
break;
|
|
2357
|
+
case 'BirthCertificate':
|
|
2358
|
+
fileTypeCode = 'SBI';
|
|
2359
|
+
break;
|
|
2360
|
+
case 'Vnzh':
|
|
2361
|
+
fileTypeCode = 'VNZ';
|
|
2362
|
+
break;
|
|
2363
|
+
default:
|
|
2364
|
+
fileTypeCode = '';
|
|
2365
|
+
break;
|
|
2366
|
+
}
|
|
2367
|
+
member.value.documentType = dataStore.documentTypes.find(item => item.ids === fileTypeCode) || new Value();
|
|
2368
|
+
}
|
|
2369
|
+
} finally {
|
|
2370
|
+
digitalDocumentDialog.value = false;
|
|
2371
|
+
dataStore.rightPanel.open = false;
|
|
2372
|
+
isSearchOpen.value = false;
|
|
2373
|
+
documentLoading.value = false;
|
|
2374
|
+
}
|
|
2375
|
+
};
|
|
2376
|
+
|
|
2377
|
+
const updateDigitalDocuments = () => {
|
|
2378
|
+
dataStore.updateDigitalDocumentsProfile(member.value.iin!);
|
|
2379
|
+
};
|
|
2380
|
+
|
|
1811
2381
|
const onInit = async () => {
|
|
1812
2382
|
// if (route.params.taskId === '0' || (route.params.taskId !== '0' && dataStore.isProcessEditable(formStore.applicationData.statusCode))) {
|
|
1813
2383
|
// await dataStore.getSignedDocList(formStore.applicationData.processInstanceId);
|
|
@@ -1819,14 +2389,21 @@ export default {
|
|
|
1819
2389
|
}
|
|
1820
2390
|
if (!member.value.id) {
|
|
1821
2391
|
await router.replace({ query: { ...route.query, id: 0 } });
|
|
2392
|
+
if (dataStore.isPension) {
|
|
2393
|
+
switch (whichForm.value) {
|
|
2394
|
+
case formStore.insuredFormKey:
|
|
2395
|
+
setSignOfResidency();
|
|
2396
|
+
break;
|
|
2397
|
+
}
|
|
2398
|
+
}
|
|
1822
2399
|
} else {
|
|
1823
2400
|
if (route.query.id !== String(member.value.id)) await router.replace({ query: { ...route.query, id: member.value.id } });
|
|
1824
2401
|
if (dataStore.isLifetrip) {
|
|
1825
2402
|
const documentByPriority = (() => {
|
|
1826
2403
|
if (whichForm.value !== formStore.policyholderFormKey || formStore.isPolicyholderInsured === true) {
|
|
1827
|
-
return member.value.documentsList.find(i => i.type ===
|
|
2404
|
+
return member.value.documentsList.find(i => i.type === CoreEnums.Insis.DocTypes.PS);
|
|
1828
2405
|
}
|
|
1829
|
-
return member.value.documentsList.find(i => i.type ===
|
|
2406
|
+
return member.value.documentsList.find(i => i.type === CoreEnums.Insis.DocTypes['1UDL']);
|
|
1830
2407
|
})();
|
|
1831
2408
|
const userDocument = documentByPriority ? documentByPriority : member.value.documentsList[0];
|
|
1832
2409
|
const documentType = dataStore.documentTypes.find((i: Value) => i.ids === userDocument.type);
|
|
@@ -1837,12 +2414,10 @@ export default {
|
|
|
1837
2414
|
member.value.documentDate = reformatDate(userDocument.issueDate);
|
|
1838
2415
|
member.value.documentExpire = reformatDate(userDocument.expireDate);
|
|
1839
2416
|
}
|
|
1840
|
-
|
|
1841
|
-
// const filteredDocuments: DocumentItem[] = dataStore.getFilesByIIN(member.value.iin!.replace(/-/g, '')) as DocumentItem[];
|
|
2417
|
+
// const filteredDocuments: DocumentItem[] = dataStore.getDocsByIIN(member.value.iin!.replace(/-/g, '')) as DocumentItem[];
|
|
1842
2418
|
// if (filteredDocuments && filteredDocuments.length) memberDocument.value = filteredDocuments[0];
|
|
1843
2419
|
}
|
|
1844
2420
|
await setDefaultValues();
|
|
1845
|
-
if (Number(formStore.applicationData.processCode) === 4) dataStore.members.insuredApp.isMultiple = true;
|
|
1846
2421
|
if (hasWorkPositionDict && member.value.positionCode === null) member.value.jobPosition = null;
|
|
1847
2422
|
};
|
|
1848
2423
|
onMounted(async () => {
|
|
@@ -1891,8 +2466,42 @@ export default {
|
|
|
1891
2466
|
},
|
|
1892
2467
|
);
|
|
1893
2468
|
|
|
2469
|
+
if (dataStore.isGons) {
|
|
2470
|
+
watch(
|
|
2471
|
+
() => member.value.chooseChild,
|
|
2472
|
+
val => {
|
|
2473
|
+
if (val === dataStore.t('form.addBeneficiary')) {
|
|
2474
|
+
const idsToFind = ['14', '15', '21', '20', '24', '25', '27'];
|
|
2475
|
+
const filteredData = dataStore.relations.filter(item => idsToFind.includes(item.ids as string));
|
|
2476
|
+
filteredRelationsData.value = filteredData;
|
|
2477
|
+
} else {
|
|
2478
|
+
filteredRelationsData.value = dataStore.relations;
|
|
2479
|
+
}
|
|
2480
|
+
},
|
|
2481
|
+
{ immediate: true },
|
|
2482
|
+
);
|
|
2483
|
+
}
|
|
2484
|
+
|
|
2485
|
+
watch(
|
|
2486
|
+
() => member.value.registrationProvince,
|
|
2487
|
+
(val, oldVal) => {
|
|
2488
|
+
if (val.nameRu !== null && val.nameRu !== oldVal.nameRu && val.ids !== member.value.registrationCity.code) {
|
|
2489
|
+
member.value.registrationCity = new Value();
|
|
2490
|
+
}
|
|
2491
|
+
},
|
|
2492
|
+
);
|
|
2493
|
+
|
|
2494
|
+
watch(
|
|
2495
|
+
() => isRegionDisabled.value,
|
|
2496
|
+
val => {
|
|
2497
|
+
if (val) {
|
|
2498
|
+
member.value.registrationProvince = new Value();
|
|
2499
|
+
}
|
|
2500
|
+
},
|
|
2501
|
+
);
|
|
2502
|
+
|
|
1894
2503
|
const onIinInput = () => {
|
|
1895
|
-
if (!!member.value.iin && member.value.iin.length === useMask().iin.length && memberSetting.value
|
|
2504
|
+
if (!!member.value.iin && member.value.iin.length === useMask().iin.length && memberSetting.value?.isMultiple === true) {
|
|
1896
2505
|
const alreadyInStatement = formStore[whichForm.value as MultipleMember].findIndex((i: Member) => i.iin === member.value.iin);
|
|
1897
2506
|
if (alreadyInStatement !== -1 && alreadyInStatement !== Number(whichIndex.value)) {
|
|
1898
2507
|
dataStore.showToaster('error', dataStore.t('toaster.hasAlreadyMember'), 3000);
|
|
@@ -1929,17 +2538,31 @@ export default {
|
|
|
1929
2538
|
searchQuery.value = '';
|
|
1930
2539
|
}
|
|
1931
2540
|
});
|
|
1932
|
-
|
|
2541
|
+
|
|
2542
|
+
watch(familyDialog, val => {
|
|
2543
|
+
if (!val) {
|
|
2544
|
+
closeFamilyDialog();
|
|
2545
|
+
}
|
|
2546
|
+
});
|
|
2547
|
+
|
|
2548
|
+
watch(digitalDocumentDialog, val => {
|
|
2549
|
+
if (!val) {
|
|
2550
|
+
digitalDocumentOwnerType.value = '';
|
|
2551
|
+
}
|
|
2552
|
+
});
|
|
2553
|
+
|
|
2554
|
+
if (dataStore.isLifetrip && whichForm.value === 'insuredForm') {
|
|
1933
2555
|
watch(
|
|
1934
2556
|
() => member.value.age,
|
|
1935
2557
|
val => {
|
|
1936
|
-
if (val
|
|
1937
|
-
if (member.value.hasAgreement !== true) {
|
|
2558
|
+
if (val) {
|
|
2559
|
+
if (Number(val) >= 18 && member.value.hasAgreement !== true) {
|
|
1938
2560
|
member.value.hasAgreement = false;
|
|
2561
|
+
} else {
|
|
2562
|
+
member.value.hasAgreement = true;
|
|
1939
2563
|
}
|
|
1940
|
-
} else {
|
|
1941
|
-
member.value.hasAgreement = true;
|
|
1942
2564
|
}
|
|
2565
|
+
|
|
1943
2566
|
member.value.isInsuredUnderage = Number(val) >= 18 ? false : true;
|
|
1944
2567
|
},
|
|
1945
2568
|
{ immediate: true },
|
|
@@ -1955,15 +2578,35 @@ export default {
|
|
|
1955
2578
|
);
|
|
1956
2579
|
}
|
|
1957
2580
|
if (dataStore.isPension) {
|
|
1958
|
-
|
|
1959
|
-
(
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
2581
|
+
if (member.value.bankInfo) {
|
|
2582
|
+
watch(
|
|
2583
|
+
() => member.value.bankInfo.iik,
|
|
2584
|
+
async val => {
|
|
2585
|
+
if (val && val.length === 20) {
|
|
2586
|
+
if (
|
|
2587
|
+
route.query.tab === 'slaveInsuredForm'
|
|
2588
|
+
? formStore.insuredForm.some(i => i.bankInfo.iik === val)
|
|
2589
|
+
: formStore.applicationData.processCode === 25 && val === formStore.slaveInsuredForm.bankInfo.iik
|
|
2590
|
+
) {
|
|
2591
|
+
dataStore.showToaster('error', `ИИК: "${val}" уже имеется в заявке`);
|
|
2592
|
+
member.value.bankInfo = new BankInfoClass();
|
|
2593
|
+
return;
|
|
2594
|
+
}
|
|
2595
|
+
isButtonLoading.value = true;
|
|
2596
|
+
const bank = await dataStore.getBankByAccountNumber(val);
|
|
2597
|
+
if (bank) {
|
|
2598
|
+
member.value.bankInfo.bik = String(bank.code);
|
|
2599
|
+
member.value.bankInfo.bin = member.value.bankInfo.bankName.ids = reformatIin(String(bank.ids));
|
|
2600
|
+
member.value.bankInfo.bankName.nameRu = String(bank.nameRu);
|
|
2601
|
+
member.value.bankInfo.bankName.id = Number(bank.id);
|
|
2602
|
+
} else member.value.bankInfo = new BankInfoClass();
|
|
2603
|
+
isButtonLoading.value = false;
|
|
2604
|
+
} else if (!val) {
|
|
2605
|
+
member.value.bankInfo = new BankInfoClass();
|
|
2606
|
+
}
|
|
2607
|
+
},
|
|
2608
|
+
);
|
|
2609
|
+
}
|
|
1967
2610
|
watch(
|
|
1968
2611
|
() => member.value.isDisability,
|
|
1969
2612
|
val => {
|
|
@@ -1974,6 +2617,63 @@ export default {
|
|
|
1974
2617
|
},
|
|
1975
2618
|
);
|
|
1976
2619
|
}
|
|
2620
|
+
watch(
|
|
2621
|
+
member.value,
|
|
2622
|
+
() => {
|
|
2623
|
+
if (!isReady.value) return;
|
|
2624
|
+
dataStore.isDirty = true;
|
|
2625
|
+
},
|
|
2626
|
+
{ deep: true },
|
|
2627
|
+
);
|
|
2628
|
+
watch(
|
|
2629
|
+
() => member.value.documentType,
|
|
2630
|
+
val => {
|
|
2631
|
+
if (val && val.ids !== 'PS') {
|
|
2632
|
+
middleNameIsEditable.value = false;
|
|
2633
|
+
}
|
|
2634
|
+
},
|
|
2635
|
+
);
|
|
2636
|
+
onBeforeRouteLeave((to, from, next) => {
|
|
2637
|
+
if (dataStore.isDirty) {
|
|
2638
|
+
dataStore.quitDialog = true;
|
|
2639
|
+
pendingRoute.value = to;
|
|
2640
|
+
next(false);
|
|
2641
|
+
} else {
|
|
2642
|
+
next();
|
|
2643
|
+
}
|
|
2644
|
+
});
|
|
2645
|
+
const discardAndContinue = async () => {
|
|
2646
|
+
dataStore.quitDialog = false;
|
|
2647
|
+
dataStore.isDirty = false;
|
|
2648
|
+
|
|
2649
|
+
if (member.value.id === 0) {
|
|
2650
|
+
Object.assign(member.value, JSON.parse(JSON.stringify(initialMember.value)));
|
|
2651
|
+
isReady.value = false;
|
|
2652
|
+
}
|
|
2653
|
+
if (member.value.id !== 0) {
|
|
2654
|
+
Object.assign(member.value, JSON.parse(JSON.stringify(initialMember.value)));
|
|
2655
|
+
initialMember.value = new Member();
|
|
2656
|
+
isReady.value = false;
|
|
2657
|
+
}
|
|
2658
|
+
if (pendingRoute.value) {
|
|
2659
|
+
await router.replace(pendingRoute.value);
|
|
2660
|
+
pendingRoute.value = null;
|
|
2661
|
+
}
|
|
2662
|
+
if (dataStore.pendingTab) {
|
|
2663
|
+
dataStore.menu.selectedItem = dataStore.pendingTab;
|
|
2664
|
+
emit('updateTab', dataStore.pendingTab);
|
|
2665
|
+
dataStore.pendingTab = null;
|
|
2666
|
+
}
|
|
2667
|
+
if (subMemberRoute.value) {
|
|
2668
|
+
await router.replace(subMemberRoute.value);
|
|
2669
|
+
subMemberRoute.value = null;
|
|
2670
|
+
}
|
|
2671
|
+
};
|
|
2672
|
+
const stayHere = () => {
|
|
2673
|
+
dataStore.quitDialog = false;
|
|
2674
|
+
pendingRoute.value = null;
|
|
2675
|
+
dataStore.pendingTab = null;
|
|
2676
|
+
};
|
|
1977
2677
|
|
|
1978
2678
|
return {
|
|
1979
2679
|
// State
|
|
@@ -2000,11 +2700,20 @@ export default {
|
|
|
2000
2700
|
familyDialog,
|
|
2001
2701
|
deletionDialog,
|
|
2002
2702
|
documentChooseDialog,
|
|
2703
|
+
fioChooseDialog,
|
|
2003
2704
|
selectedIndex,
|
|
2004
2705
|
selectedFamilyMember,
|
|
2005
2706
|
sameAddress,
|
|
2006
2707
|
isRelative,
|
|
2007
2708
|
imageDataList,
|
|
2709
|
+
contragents,
|
|
2710
|
+
filteredRelationsData,
|
|
2711
|
+
digitalDocumentDialog,
|
|
2712
|
+
parentIin,
|
|
2713
|
+
childrenLoaded,
|
|
2714
|
+
middleNameIsEditable,
|
|
2715
|
+
digitalDocumentOwnerType,
|
|
2716
|
+
|
|
2008
2717
|
// Computed
|
|
2009
2718
|
whichForm,
|
|
2010
2719
|
whichIndex,
|
|
@@ -2013,23 +2722,31 @@ export default {
|
|
|
2013
2722
|
hasOtp,
|
|
2014
2723
|
isDisabled,
|
|
2015
2724
|
isTask,
|
|
2725
|
+
isRegionDisabled,
|
|
2016
2726
|
isIinPhoneDisabled,
|
|
2017
|
-
isFromGBD,
|
|
2018
2727
|
showSaveButton,
|
|
2019
2728
|
hasGBDFL,
|
|
2020
2729
|
hasInsis,
|
|
2021
2730
|
hasGKB,
|
|
2022
|
-
hasDocumentReader,
|
|
2023
2731
|
hasMiddleName,
|
|
2024
2732
|
hasRelationDegree,
|
|
2025
2733
|
hasFamilyStatus,
|
|
2026
2734
|
hasInsurancePay,
|
|
2027
2735
|
hasSignOfIPDL,
|
|
2028
2736
|
hasSameAddressToggle,
|
|
2737
|
+
hasIssuerOther,
|
|
2029
2738
|
hasMemberSearch,
|
|
2030
2739
|
hasWorkPositionDict,
|
|
2031
2740
|
gbdDocuments,
|
|
2032
2741
|
hasGBDFLDocSelection,
|
|
2742
|
+
isNonResident,
|
|
2743
|
+
isDataFromGov,
|
|
2744
|
+
isChooseChild,
|
|
2745
|
+
documentIssuerIsEditable,
|
|
2746
|
+
hasDigitalDocument,
|
|
2747
|
+
isOwnChild,
|
|
2748
|
+
isEmpty,
|
|
2749
|
+
documentItems,
|
|
2033
2750
|
|
|
2034
2751
|
// Rules
|
|
2035
2752
|
ageRule,
|
|
@@ -2038,6 +2755,7 @@ export default {
|
|
|
2038
2755
|
birthDateRule,
|
|
2039
2756
|
|
|
2040
2757
|
// Functions
|
|
2758
|
+
getToday,
|
|
2041
2759
|
searchMember,
|
|
2042
2760
|
openPanel,
|
|
2043
2761
|
openCustomPanel,
|
|
@@ -2051,7 +2769,7 @@ export default {
|
|
|
2051
2769
|
attachFile,
|
|
2052
2770
|
attachDocumentReader,
|
|
2053
2771
|
getDocumentReader,
|
|
2054
|
-
|
|
2772
|
+
getDoc,
|
|
2055
2773
|
selectFamilyMember,
|
|
2056
2774
|
closeFamilyDialog,
|
|
2057
2775
|
openDeletionDialog,
|
|
@@ -2063,7 +2781,30 @@ export default {
|
|
|
2063
2781
|
searchPositions,
|
|
2064
2782
|
selectGbdDocument,
|
|
2065
2783
|
pickPosition,
|
|
2784
|
+
stayHere,
|
|
2785
|
+
discardAndContinue,
|
|
2786
|
+
getContragentClick,
|
|
2787
|
+
getCode,
|
|
2788
|
+
getDigitalDocument,
|
|
2789
|
+
startGettingDigitalDocument,
|
|
2790
|
+
updateDigitalDocuments,
|
|
2791
|
+
getChildren,
|
|
2066
2792
|
};
|
|
2067
2793
|
},
|
|
2068
2794
|
};
|
|
2069
2795
|
</script>
|
|
2796
|
+
|
|
2797
|
+
<style scoped>
|
|
2798
|
+
.before-divider {
|
|
2799
|
+
position: relative;
|
|
2800
|
+
}
|
|
2801
|
+
.before-divider + .before-divider:before {
|
|
2802
|
+
content: '';
|
|
2803
|
+
position: absolute;
|
|
2804
|
+
top: -15px;
|
|
2805
|
+
left: 0;
|
|
2806
|
+
width: 100%;
|
|
2807
|
+
height: 1px;
|
|
2808
|
+
background-color: #e5e7eb;
|
|
2809
|
+
}
|
|
2810
|
+
</style>
|