hl-core 0.0.8 → 0.0.9-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/index.ts +202 -161
- package/api/interceptors.ts +23 -17
- package/components/Button/Btn.vue +4 -4
- package/components/Button/ScrollButtons.vue +2 -2
- package/components/Complex/ContentBlock.vue +1 -1
- package/components/Complex/MessageBlock.vue +26 -0
- package/components/Complex/Page.vue +8 -2
- package/components/Complex/WhiteBlock.vue +7 -0
- package/components/Dialog/Dialog.vue +9 -39
- package/components/Dialog/FamilyDialog.vue +10 -7
- package/components/Form/FormBlock.vue +91 -45
- package/components/Form/FormSection.vue +5 -2
- package/components/Form/FormTextSection.vue +3 -3
- package/components/Form/FormToggle.vue +4 -5
- package/components/Form/ManagerAttachment.vue +210 -0
- package/components/Form/ProductConditionsBlock.vue +70 -16
- package/components/Input/Datepicker.vue +45 -0
- package/components/Input/EmptyFormField.vue +1 -1
- package/components/Input/FileInput.vue +2 -3
- package/components/Input/FormInput.vue +31 -7
- package/components/Input/PanelInput.vue +7 -2
- package/components/Input/RoundedEmptyField.vue +5 -0
- package/components/Input/RoundedInput.vue +2 -2
- package/components/Input/RoundedSelect.vue +150 -0
- package/components/Layout/Drawer.vue +5 -2
- package/components/Layout/Header.vue +41 -5
- package/components/Layout/Loader.vue +1 -1
- package/components/Layout/SettingsPanel.vue +47 -13
- package/components/List/ListEmpty.vue +1 -1
- package/components/Menu/MenuHover.vue +30 -0
- package/components/Menu/MenuNav.vue +30 -14
- package/components/Menu/MenuNavItem.vue +10 -7
- package/components/Pages/Anketa.vue +68 -47
- package/components/Pages/Auth.vue +139 -46
- package/components/Pages/ContragentForm.vue +505 -0
- package/components/Pages/Documents.vue +11 -11
- package/components/Pages/InvoiceInfo.vue +30 -0
- package/components/Pages/MemberForm.vue +574 -316
- package/components/Pages/ProductAgreement.vue +2 -2
- package/components/Pages/ProductConditions.vue +671 -78
- package/components/Panel/PanelHandler.vue +309 -0
- package/components/Panel/PanelSelectItem.vue +3 -3
- package/components/Transitions/SlideTransition.vue +5 -0
- package/components/Utilities/Chip.vue +27 -0
- package/components/Utilities/IconBorder.vue +17 -0
- package/components/Utilities/JsonViewer.vue +27 -0
- package/composables/axios.ts +2 -2
- package/composables/classes.ts +227 -107
- package/composables/constants.ts +31 -51
- package/composables/index.ts +106 -2
- package/composables/styles.ts +33 -11
- package/configs/i18n.ts +15 -0
- package/layouts/default.vue +11 -8
- package/layouts/full.vue +1 -1
- package/locales/ru.json +647 -0
- package/nuxt.config.ts +14 -2
- package/package.json +35 -12
- package/pages/500.vue +4 -4
- package/pages/Token.vue +52 -0
- package/plugins/helperFunctionsPlugins.ts +11 -6
- package/plugins/storePlugin.ts +0 -1
- package/plugins/vuetifyPlugin.ts +8 -1
- package/store/data.store.ts +2666 -0
- package/store/form.store.ts +1 -1
- package/store/member.store.ts +164 -52
- package/store/rules.ts +193 -0
- package/types/enum.ts +83 -0
- package/types/env.d.ts +10 -0
- package/types/index.ts +279 -8
- package/components/Button/BtnIcon.vue +0 -47
- package/store/data.store.js +0 -2482
- package/store/messages.ts +0 -429
- package/store/rules.js +0 -153
|
@@ -1,498 +1,545 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section class="flex flex-col gap-4 px-[10px]">
|
|
3
3
|
<v-form v-if="member" ref="vForm" @submit="submitForm" class="max-h-[82svh] overflow-y-scroll">
|
|
4
|
-
<
|
|
4
|
+
<div v-if="memberSetting && memberSetting.has === true && memberSetting.isMultiple === true" class="flex items-center mt-[14px] min-h-[54px]">
|
|
5
|
+
<div :class="[$styles.blueBgLight]" class="flex flex-wrap items-center gap-2 p-1 rounded-t-[8px] h-full">
|
|
6
|
+
<div
|
|
7
|
+
v-for="(each, index) of formStore[whichForm]"
|
|
8
|
+
:key="index"
|
|
9
|
+
class="pl-3 pr-1 py-1 rounded-[8px] cursor-pointer flex items-center"
|
|
10
|
+
:class="[Number(whichIndex) === index ? `${$styles.blueBg} ${$styles.whiteText}` : '', $styles.textSimple]"
|
|
11
|
+
@click.self="index !== Number(whichIndex) ? selectMember(index) : null"
|
|
12
|
+
>
|
|
13
|
+
{{ `${$dataStore.menu.selectedItem.title} ${index + 1}` }}
|
|
14
|
+
<v-btn
|
|
15
|
+
icon="mdi-close !text-[20px]"
|
|
16
|
+
size="x-small"
|
|
17
|
+
:disabled="!memberStore.canMemberDeleted(whichForm, index) && !memberStore.canMemberCleared(whichForm, index)"
|
|
18
|
+
variant="plain"
|
|
19
|
+
:color="Number(whichIndex) === index ? '#FFF' : '#A0B3D8'"
|
|
20
|
+
@click.prevent="memberStore.canMemberDeleted(whichForm, index) || memberStore.canMemberCleared(whichForm, index) ? deleteMember(index) : null"
|
|
21
|
+
/>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
<v-btn class="ml-2" icon="mdi-plus !text-[24px]" @click="memberStore.addMember(whichForm)" size="small" color="#A0B3D8" variant="tonal" />
|
|
25
|
+
</div>
|
|
26
|
+
<base-form-section
|
|
27
|
+
:title="$dataStore.t('form.personalData')"
|
|
28
|
+
:class="[memberSetting && memberSetting.has === true && memberSetting.isMultiple === true ? 'rounded-t-0 !mt-[-5px]' : 'mt-[14px]']"
|
|
29
|
+
>
|
|
30
|
+
<base-form-input
|
|
31
|
+
v-model="member.phoneNumber"
|
|
32
|
+
:label="$dataStore.t('form.phoneNumber')"
|
|
33
|
+
:maska="$maska.phone"
|
|
34
|
+
:readonly="!!isDisabled || !!isIinPhoneDisabled"
|
|
35
|
+
:clearable="!isDisabled"
|
|
36
|
+
:append-inner-icon="otpCondition ? 'mdi mdi-phone-message' : ''"
|
|
37
|
+
@append="openCustomPanel('otp')"
|
|
38
|
+
@keyup.enter.prevent="otpCondition ? openCustomPanel('otp') : null"
|
|
39
|
+
:rules="phoneRule"
|
|
40
|
+
/>
|
|
5
41
|
<base-form-input
|
|
6
42
|
v-model="member.iin"
|
|
7
|
-
:label="$t('form.iin')"
|
|
43
|
+
:label="$dataStore.t('form.iin')"
|
|
8
44
|
:maska="$maska.iin"
|
|
9
|
-
:readonly="isDisabled || isIinPhoneDisabled"
|
|
45
|
+
:readonly="!!isDisabled || !!isIinPhoneDisabled"
|
|
10
46
|
:clearable="!isDisabled"
|
|
11
47
|
:append-inner-icon="showSaveButton ? 'mdi mdi-magnify' : ''"
|
|
12
48
|
@append="searchMember"
|
|
49
|
+
@input="onIinInput"
|
|
13
50
|
:rules="$rules.required.concat($rules.iinRight)"
|
|
14
|
-
|
|
51
|
+
/>
|
|
15
52
|
<base-form-input
|
|
16
|
-
v-model="member.
|
|
17
|
-
:label="$t('form.phoneNumber')"
|
|
18
|
-
:maska="$maska.phone"
|
|
19
|
-
:readonly="isDisabled || isIinPhoneDisabled"
|
|
20
|
-
:clearable="!isDisabled"
|
|
21
|
-
:append-inner-icon="otpCondition ? 'mdi mdi-phone-message' : ''"
|
|
22
|
-
@append="sendOtp(false)"
|
|
23
|
-
@keyup.enter.prevent="otpCondition ? sendOtp(false) : null"
|
|
24
|
-
:rules="phoneRule"
|
|
25
|
-
></base-form-input>
|
|
26
|
-
<base-fade-transition>
|
|
27
|
-
<base-form-input
|
|
28
|
-
v-if="otpCondition && member.otpTokenId"
|
|
29
|
-
v-model="member.otpCode"
|
|
30
|
-
:label="$t('form.otpCode')"
|
|
31
|
-
:maska="$maska.otp"
|
|
32
|
-
:append-inner-icon="hasOtp ? 'mdi mdi-check' : ''"
|
|
33
|
-
@keyup.enter.prevent="hasOtp ? checkOtp() : null"
|
|
34
|
-
></base-form-input>
|
|
35
|
-
</base-fade-transition>
|
|
36
|
-
<base-form-input
|
|
37
|
-
v-model="member.lastName"
|
|
53
|
+
v-model.trim="member.lastName"
|
|
38
54
|
:readonly="isDisabled || isFromGBD"
|
|
39
55
|
:clearable="!isDisabled"
|
|
40
|
-
:label="$t('form.lastName')"
|
|
56
|
+
:label="$dataStore.t('form.lastName')"
|
|
41
57
|
:rules="$rules.required.concat($rules.cyrillic)"
|
|
42
|
-
|
|
58
|
+
/>
|
|
43
59
|
<base-form-input
|
|
44
|
-
v-model="member.firstName"
|
|
60
|
+
v-model.trim="member.firstName"
|
|
45
61
|
:readonly="isDisabled || isFromGBD"
|
|
46
62
|
:clearable="!isDisabled"
|
|
47
|
-
:label="$t('form.firstName')"
|
|
63
|
+
:label="$dataStore.t('form.firstName')"
|
|
48
64
|
:rules="$rules.required.concat($rules.cyrillic)"
|
|
49
|
-
|
|
65
|
+
/>
|
|
50
66
|
<base-form-input
|
|
51
|
-
v-model="member.middleName"
|
|
67
|
+
v-model.trim="member.middleName"
|
|
52
68
|
:readonly="isDisabled || isFromGBD"
|
|
53
69
|
:clearable="!isDisabled"
|
|
54
|
-
:label="$t('form.middleName')"
|
|
55
|
-
:rules="$rules.
|
|
56
|
-
|
|
70
|
+
:label="$dataStore.t('form.middleName')"
|
|
71
|
+
:rules="$rules.cyrillicNonRequired"
|
|
72
|
+
/>
|
|
57
73
|
<base-form-input
|
|
58
74
|
v-model="member.birthDate"
|
|
59
75
|
:readonly="isDisabled || isFromGBD"
|
|
60
76
|
:clearable="!isDisabled"
|
|
61
|
-
:label="$t('form.birthDate')"
|
|
62
|
-
:rules="
|
|
77
|
+
:label="$dataStore.t('form.birthDate')"
|
|
78
|
+
:rules="birthDateRule"
|
|
63
79
|
:maska="$maska.date"
|
|
64
80
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
65
|
-
|
|
66
|
-
<base-form-input v-model="member.age" :label="$t('form.age')" :readonly="
|
|
81
|
+
/>
|
|
82
|
+
<base-form-input v-model="member.age" :label="$dataStore.t('form.age')" :readonly="true" :clearable="!isDisabled" :rules="ageRule" />
|
|
67
83
|
<base-panel-input
|
|
68
84
|
v-model="member.gender"
|
|
69
|
-
:value="member.gender
|
|
85
|
+
:value="member.gender?.nameRu"
|
|
70
86
|
:readonly="isDisabled || isFromGBD"
|
|
71
87
|
:clearable="!isDisabled"
|
|
72
|
-
:label="$t('form.gender')"
|
|
88
|
+
:label="$dataStore.t('form.gender')"
|
|
73
89
|
:rules="$rules.objectRequired"
|
|
74
90
|
append-inner-icon="mdi mdi-chevron-right"
|
|
75
|
-
@append="openPanel($t('form.gender'), $dataStore.gender, 'gender')"
|
|
76
|
-
|
|
91
|
+
@append="openPanel($dataStore.t('form.gender'), $dataStore.gender, 'gender')"
|
|
92
|
+
/>
|
|
77
93
|
<base-panel-input
|
|
94
|
+
v-if="hasFamilyStatus"
|
|
78
95
|
v-model="member.familyStatus"
|
|
79
|
-
:value="member.familyStatus
|
|
96
|
+
:value="member.familyStatus?.nameRu"
|
|
80
97
|
:readonly="isDisabled"
|
|
81
98
|
:clearable="!isDisabled"
|
|
82
|
-
:label="$t('form.familyStatus')"
|
|
99
|
+
:label="$dataStore.t('form.familyStatus')"
|
|
83
100
|
:rules="$rules.objectRequired"
|
|
84
101
|
append-inner-icon="mdi mdi-chevron-right"
|
|
85
|
-
@append="openPanel($t('form.familyStatus'), [], 'familyStatus', $dataStore.getFamilyStatuses)"
|
|
86
|
-
|
|
102
|
+
@append="openPanel($dataStore.t('form.familyStatus'), [], 'familyStatus', $dataStore.getFamilyStatuses)"
|
|
103
|
+
/>
|
|
87
104
|
<base-panel-input
|
|
88
105
|
v-if="(whichForm === formStore.beneficiaryFormKey || whichForm === formStore.insuredFormKey) && member.iin !== formStore.policyholderForm.iin"
|
|
89
106
|
v-model="member.relationDegree"
|
|
90
|
-
:value="member.relationDegree
|
|
107
|
+
:value="member.relationDegree?.nameRu"
|
|
91
108
|
:readonly="isDisabled"
|
|
92
109
|
:clearable="!isDisabled"
|
|
93
|
-
:label="$t('form.relations')"
|
|
110
|
+
:label="$dataStore.t('form.relations')"
|
|
94
111
|
:rules="$rules.objectRequired"
|
|
95
112
|
append-inner-icon="mdi mdi-chevron-right"
|
|
96
|
-
@append="openPanel($t('form.relations'), [], 'relationDegree', $dataStore.getRelationTypes)"
|
|
97
|
-
|
|
113
|
+
@append="openPanel($dataStore.t('form.relations'), [], 'relationDegree', $dataStore.getRelationTypes)"
|
|
114
|
+
/>
|
|
98
115
|
<base-form-input
|
|
99
116
|
v-if="whichForm === formStore.beneficiaryFormKey"
|
|
100
117
|
v-model="member.percentageOfPayoutAmount"
|
|
101
118
|
:readonly="isDisabled"
|
|
102
119
|
:clearable="!isDisabled"
|
|
103
|
-
:label="$t('form.percentageOfPayoutAmount')"
|
|
120
|
+
:label="$dataStore.t('form.percentageOfPayoutAmount')"
|
|
104
121
|
:rules="$rules.required.concat($rules.numbers)"
|
|
105
|
-
|
|
106
|
-
<base-form-toggle v-if="$dataStore.isGons" :disabled="isDisabled" :has-border="false" v-model="member.isPdl" :title="$dataStore.t('isMemberIPDL')"></base-form-toggle>
|
|
122
|
+
/>
|
|
107
123
|
</base-form-section>
|
|
108
|
-
<base-form-section :title="$t('policyholdersRepresentative.PowerOfAttorney')" v-if="whichForm === formStore.policyholdersRepresentativeFormKey">
|
|
124
|
+
<base-form-section :title="$dataStore.t('policyholdersRepresentative.PowerOfAttorney')" v-if="whichForm === formStore.policyholdersRepresentativeFormKey">
|
|
109
125
|
<base-form-input
|
|
110
|
-
v-model="member.fullNameRod"
|
|
111
|
-
:label="$t('policyholdersRepresentative.NameParentCase')"
|
|
126
|
+
v-model.trim="member.fullNameRod"
|
|
127
|
+
:label="$dataStore.t('policyholdersRepresentative.NameParentCase')"
|
|
112
128
|
:readonly="isDisabled"
|
|
113
129
|
:clearable="!isDisabled"
|
|
114
130
|
:rules="$rules.required"
|
|
115
|
-
|
|
131
|
+
/>
|
|
116
132
|
<base-form-input
|
|
117
|
-
v-model="member.confirmDocTypeKz"
|
|
118
|
-
:label="$t('policyholdersRepresentative.basisDocKz')"
|
|
133
|
+
v-model.trim="member.confirmDocTypeKz"
|
|
134
|
+
:label="$dataStore.t('policyholdersRepresentative.basisDocKz')"
|
|
119
135
|
:readonly="isDisabled"
|
|
120
136
|
:clearable="!isDisabled"
|
|
121
137
|
:rules="$rules.required"
|
|
122
|
-
|
|
138
|
+
/>
|
|
123
139
|
<base-form-input
|
|
124
|
-
v-model="member.confirmDocType"
|
|
125
|
-
:label="$t('policyholdersRepresentative.basisDocRu')"
|
|
140
|
+
v-model.trim="member.confirmDocType"
|
|
141
|
+
:label="$dataStore.t('policyholdersRepresentative.basisDocRu')"
|
|
126
142
|
:readonly="isDisabled"
|
|
127
143
|
:clearable="!isDisabled"
|
|
128
144
|
:rules="$rules.required"
|
|
129
|
-
|
|
145
|
+
/>
|
|
130
146
|
<base-form-input
|
|
131
|
-
v-model="member.confirmDocTypeRod"
|
|
132
|
-
:label="$t('policyholdersRepresentative.basisDocRuParentCase')"
|
|
147
|
+
v-model.trim="member.confirmDocTypeRod"
|
|
148
|
+
:label="$dataStore.t('policyholdersRepresentative.basisDocRuParentCase')"
|
|
133
149
|
:readonly="isDisabled"
|
|
134
150
|
:clearable="!isDisabled"
|
|
135
151
|
:rules="$rules.required"
|
|
136
|
-
|
|
152
|
+
/>
|
|
137
153
|
<base-form-input
|
|
138
|
-
v-model="member.confirmDocNumber"
|
|
139
|
-
:label="$t('policyholdersRepresentative.numberDoc')"
|
|
154
|
+
v-model.trim="member.confirmDocNumber"
|
|
155
|
+
:label="$dataStore.t('policyholdersRepresentative.numberDoc')"
|
|
140
156
|
:readonly="isDisabled"
|
|
141
157
|
:clearable="!isDisabled"
|
|
142
158
|
:rules="$rules.required"
|
|
143
|
-
|
|
159
|
+
/>
|
|
144
160
|
<base-form-input
|
|
145
161
|
v-model="member.confirmDocIssueDate"
|
|
146
|
-
:label="$t('form.documentDate')"
|
|
162
|
+
:label="$dataStore.t('form.documentDate')"
|
|
147
163
|
:readonly="isDisabled"
|
|
148
164
|
:clearable="!isDisabled"
|
|
149
165
|
:rules="$rules.date"
|
|
150
166
|
:maska="$maska.date"
|
|
151
167
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
152
|
-
|
|
168
|
+
/>
|
|
153
169
|
<base-form-input
|
|
154
170
|
v-model="member.confirmDocExpireDate"
|
|
155
|
-
:label="$t('form.documentExpire')"
|
|
171
|
+
:label="$dataStore.t('form.documentExpire')"
|
|
156
172
|
:readonly="isDisabled"
|
|
157
173
|
:clearable="!isDisabled"
|
|
158
174
|
:rules="$rules.date"
|
|
159
175
|
:maska="$maska.date"
|
|
160
176
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
161
|
-
|
|
162
|
-
<base-form-input v-model="member.migrationCard" :label="$t('policyholdersRepresentative.numberVisa')"
|
|
177
|
+
/>
|
|
178
|
+
<base-form-input v-model.trim="member.migrationCard" :label="$dataStore.t('policyholdersRepresentative.numberVisa')" />
|
|
163
179
|
<base-form-input
|
|
164
180
|
v-model="member.migrationCardIssueDate"
|
|
165
|
-
:label="$t('form.documentDate')"
|
|
181
|
+
:label="$dataStore.t('form.documentDate')"
|
|
166
182
|
:readonly="isDisabled"
|
|
167
183
|
:clearable="!isDisabled"
|
|
168
184
|
:rules="$rules.date"
|
|
169
185
|
:maska="$maska.date"
|
|
170
186
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
171
|
-
|
|
187
|
+
/>
|
|
172
188
|
<base-form-input
|
|
173
189
|
v-model="member.migrationCardExpireDate"
|
|
174
|
-
:label="$t('form.documentExpire')"
|
|
190
|
+
:label="$dataStore.t('form.documentExpire')"
|
|
175
191
|
:readonly="isDisabled"
|
|
176
192
|
:clearable="!isDisabled"
|
|
177
193
|
:rules="$rules.date"
|
|
178
194
|
:maska="$maska.date"
|
|
179
195
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
180
|
-
|
|
196
|
+
/>
|
|
181
197
|
<base-form-toggle
|
|
182
198
|
v-model="formStore.policyholdersRepresentativeForm.isNotary"
|
|
183
199
|
:disabled="isDisabled"
|
|
184
200
|
:has-border="false"
|
|
185
|
-
:title="$t('policyholdersRepresentative.confirmAuthority')"
|
|
186
|
-
|
|
201
|
+
:title="$dataStore.t('policyholdersRepresentative.confirmAuthority')"
|
|
202
|
+
/>
|
|
187
203
|
<base-form-input
|
|
188
|
-
v-model="member.notaryLongName"
|
|
189
|
-
:label="$t('policyholdersRepresentative.name')"
|
|
204
|
+
v-model.trim="member.notaryLongName"
|
|
205
|
+
:label="$dataStore.t('policyholdersRepresentative.name')"
|
|
190
206
|
:readonly="isDisabled"
|
|
191
207
|
:clearable="!isDisabled"
|
|
192
208
|
:rules="formStore.policyholdersRepresentativeForm.isNotary ? $rules.required : []"
|
|
193
|
-
|
|
209
|
+
/>
|
|
194
210
|
<base-form-input
|
|
195
|
-
v-model="member.notaryLicenseNumber"
|
|
196
|
-
:label="$t('policyholdersRepresentative.numberLicense')"
|
|
211
|
+
v-model.trim="member.notaryLicenseNumber"
|
|
212
|
+
:label="$dataStore.t('policyholdersRepresentative.numberLicense')"
|
|
197
213
|
:readonly="isDisabled"
|
|
198
214
|
:clearable="!isDisabled"
|
|
199
215
|
:rules="formStore.policyholdersRepresentativeForm.isNotary ? $rules.required : []"
|
|
200
|
-
|
|
216
|
+
/>
|
|
201
217
|
<base-form-input
|
|
202
|
-
v-model="member.notaryLicenseIssuer"
|
|
203
|
-
:label="$t('policyholdersRepresentative.documentIssuers')"
|
|
218
|
+
v-model.trim="member.notaryLicenseIssuer"
|
|
219
|
+
:label="$dataStore.t('policyholdersRepresentative.documentIssuers')"
|
|
204
220
|
:readonly="isDisabled"
|
|
205
221
|
:clearable="!isDisabled"
|
|
206
222
|
:rules="formStore.policyholdersRepresentativeForm.isNotary ? $rules.required : []"
|
|
207
|
-
|
|
223
|
+
/>
|
|
208
224
|
<base-form-input
|
|
209
225
|
v-model="member.notaryLicenseDate"
|
|
210
|
-
:label="$t('form.documentDate')"
|
|
226
|
+
:label="$dataStore.t('form.documentDate')"
|
|
211
227
|
:readonly="isDisabled"
|
|
212
228
|
:clearable="!isDisabled"
|
|
213
229
|
:rules="formStore.policyholdersRepresentativeForm.isNotary ? $rules.required.concat($rules.date) : []"
|
|
214
230
|
:maska="$maska.date"
|
|
215
231
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
216
|
-
|
|
232
|
+
/>
|
|
217
233
|
</base-form-section>
|
|
218
|
-
<base-form-section :title="$t('form.jobData')" v-if="$dataStore.hasJobSection(whichForm)">
|
|
219
|
-
<base-form-input v-model="member.job" :label="$t('form.job')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required"
|
|
220
|
-
<base-form-input v-model="member.jobPosition" :label="$t('form.jobPosition')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required"
|
|
221
|
-
<base-form-input v-model="member.jobPlace" :label="$t('form.jobPlace')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required"
|
|
234
|
+
<base-form-section :title="$dataStore.t('form.jobData')" v-if="$dataStore.hasJobSection(whichForm)">
|
|
235
|
+
<base-form-input v-model.trim="member.job" :label="$dataStore.t('form.job')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
236
|
+
<base-form-input v-model.trim="member.jobPosition" :label="$dataStore.t('form.jobPosition')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
237
|
+
<base-form-input v-model.trim="member.jobPlace" :label="$dataStore.t('form.jobPlace')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.required" />
|
|
222
238
|
</base-form-section>
|
|
223
|
-
<base-form-section :title="$t('form.placeRegistration')" v-if="$dataStore.hasPlaceSection(whichForm)">
|
|
239
|
+
<base-form-section :title="$dataStore.t('form.placeRegistration')" v-if="$dataStore.hasPlaceSection(whichForm)">
|
|
240
|
+
<base-form-toggle v-if="hasSameAddressToggle" v-model="sameAddress" :disabled="isDisabled" :has-border="false" :title="$dataStore.t('form.sameAddress')" />
|
|
224
241
|
<base-panel-input
|
|
225
242
|
v-model="member.registrationCountry"
|
|
226
|
-
:value="member.registrationCountry
|
|
243
|
+
:value="member.registrationCountry?.nameRu"
|
|
227
244
|
:readonly="isDisabled"
|
|
228
245
|
:clearable="!isDisabled"
|
|
229
|
-
:label="$t('form.Country')"
|
|
246
|
+
:label="$dataStore.t('form.Country')"
|
|
230
247
|
:rules="$rules.objectRequired"
|
|
231
248
|
append-inner-icon="mdi mdi-chevron-right"
|
|
232
|
-
@append="openPanel($t('form.Country'), [], 'registrationCountry', $dataStore.getCountries)"
|
|
233
|
-
|
|
249
|
+
@append="openPanel($dataStore.t('form.Country'), [], 'registrationCountry', $dataStore.getCountries)"
|
|
250
|
+
/>
|
|
234
251
|
<base-fade-transition>
|
|
235
252
|
<div class="flex flex-col gap-[1px]" v-if="member.registrationCountry.nameRu === 'Казахстан' || member.registrationCountry.nameRu === null">
|
|
236
253
|
<base-panel-input
|
|
237
254
|
v-model="member.registrationProvince"
|
|
238
|
-
:value="member.registrationProvince
|
|
239
|
-
:label="$t('form.Province')"
|
|
255
|
+
:value="member.registrationProvince?.nameRu"
|
|
256
|
+
:label="$dataStore.t('form.Province')"
|
|
240
257
|
:readonly="isDisabled"
|
|
241
258
|
:clearable="!isDisabled"
|
|
242
259
|
:rules="$rules.objectRequired"
|
|
243
260
|
append-inner-icon="mdi mdi-chevron-right"
|
|
244
|
-
@append="openPanel($t('form.Province'), [], 'registrationProvince', $dataStore.getStates, 'registrationCountry')"
|
|
245
|
-
|
|
261
|
+
@append="openPanel($dataStore.t('form.Province'), [], 'registrationProvince', $dataStore.getStates, 'registrationCountry')"
|
|
262
|
+
/>
|
|
246
263
|
<base-panel-input
|
|
247
264
|
v-model="member.registrationRegionType"
|
|
248
|
-
:value="member.registrationRegionType
|
|
249
|
-
:label="$t('form.RegionType')"
|
|
265
|
+
:value="member.registrationRegionType?.nameRu"
|
|
266
|
+
:label="$dataStore.t('form.RegionType')"
|
|
250
267
|
:readonly="isDisabled"
|
|
251
268
|
:clearable="!isDisabled"
|
|
252
269
|
:rules="$rules.objectRequired"
|
|
253
270
|
append-inner-icon="mdi mdi-chevron-right"
|
|
254
|
-
@append="openPanel($t('form.RegionType'), [], 'registrationRegionType', $dataStore.getLocalityTypes)"
|
|
255
|
-
|
|
271
|
+
@append="openPanel($dataStore.t('form.RegionType'), [], 'registrationRegionType', $dataStore.getLocalityTypes)"
|
|
272
|
+
/>
|
|
256
273
|
<base-panel-input
|
|
257
274
|
v-if="member.registrationRegionType.nameRu !== 'город'"
|
|
258
275
|
v-model="member.registrationRegion"
|
|
259
|
-
:value="member.registrationRegion
|
|
260
|
-
:label="$t('form.Region')"
|
|
276
|
+
:value="member.registrationRegion?.nameRu"
|
|
277
|
+
:label="$dataStore.t('form.Region')"
|
|
261
278
|
:readonly="isDisabled"
|
|
262
279
|
:clearable="!isDisabled"
|
|
263
280
|
:rules="$rules.objectRequired"
|
|
264
281
|
append-inner-icon="mdi mdi-chevron-right"
|
|
265
|
-
@append="openPanel($t('form.Region'), [], 'registrationRegion', $dataStore.getRegions, 'registrationProvince')"
|
|
266
|
-
|
|
282
|
+
@append="openPanel($dataStore.t('form.Region'), [], 'registrationRegion', $dataStore.getRegions, 'registrationProvince')"
|
|
283
|
+
/>
|
|
267
284
|
<base-panel-input
|
|
268
285
|
v-model="member.registrationCity"
|
|
269
|
-
:value="member.registrationCity
|
|
270
|
-
:label="$t('form.City')"
|
|
286
|
+
:value="member.registrationCity?.nameRu"
|
|
287
|
+
:label="$dataStore.t('form.City')"
|
|
271
288
|
:readonly="isDisabled"
|
|
272
289
|
:clearable="!isDisabled"
|
|
273
290
|
:rules="$rules.objectRequired"
|
|
274
291
|
append-inner-icon="mdi mdi-chevron-right"
|
|
275
|
-
@append="openPanel($t('form.City'), [], 'registrationCity', $dataStore.getCities, 'registrationProvince')"
|
|
276
|
-
|
|
292
|
+
@append="openPanel($dataStore.t('form.City'), [], 'registrationCity', $dataStore.getCities, 'registrationProvince')"
|
|
293
|
+
/>
|
|
277
294
|
<!-- <base-form-input v-if="$dataStore.isGons" v-model="member.postIndex" :readonly="isDisabled"
|
|
278
|
-
:clearable="!isDisabled" :label="$t('form.postIndex')" :maska="$maska.post"
|
|
279
|
-
<base-form-input v-model="member.registrationQuarter" :readonly="isDisabled" :clearable="!isDisabled" :label="$t('form.Quarter')"
|
|
280
|
-
<base-form-input v-model="member.registrationMicroDistrict" :readonly="isDisabled" :clearable="!isDisabled" :label="$t('form.MicroDistrict')"
|
|
295
|
+
:clearable="!isDisabled" :label="$dataStore.t('form.postIndex')" :maska="$maska.post"/> -->
|
|
296
|
+
<base-form-input v-model.trim="member.registrationQuarter" :readonly="isDisabled" :clearable="!isDisabled" :label="$dataStore.t('form.Quarter')" />
|
|
297
|
+
<base-form-input v-model.trim="member.registrationMicroDistrict" :readonly="isDisabled" :clearable="!isDisabled" :label="$dataStore.t('form.MicroDistrict')" />
|
|
281
298
|
<base-form-input
|
|
282
|
-
v-model="member.registrationStreet"
|
|
299
|
+
v-model.trim="member.registrationStreet"
|
|
283
300
|
:rules="$rules.required"
|
|
284
301
|
:readonly="isDisabled"
|
|
285
302
|
:clearable="!isDisabled"
|
|
286
|
-
:label="$t('form.Street')"
|
|
287
|
-
|
|
303
|
+
:label="$dataStore.t('form.Street')"
|
|
304
|
+
/>
|
|
288
305
|
<base-form-input
|
|
289
|
-
v-model="member.registrationNumberHouse"
|
|
306
|
+
v-model.trim="member.registrationNumberHouse"
|
|
290
307
|
:rules="$rules.required"
|
|
291
308
|
:readonly="isDisabled"
|
|
292
309
|
:clearable="!isDisabled"
|
|
293
|
-
:label="$t('form.NumberHouse')"
|
|
294
|
-
|
|
295
|
-
<base-form-input v-model="member.registrationNumberApartment" :readonly="isDisabled" :clearable="!isDisabled" :label="$t('form.NumberApartment')"
|
|
310
|
+
:label="$dataStore.t('form.NumberHouse')"
|
|
311
|
+
/>
|
|
312
|
+
<base-form-input v-model.trim="member.registrationNumberApartment" :readonly="isDisabled" :clearable="!isDisabled" :label="$dataStore.t('form.NumberApartment')" />
|
|
296
313
|
</div>
|
|
297
314
|
</base-fade-transition>
|
|
298
315
|
</base-form-section>
|
|
299
|
-
<base-form-section :title="$t('form.birthData')" v-if="$dataStore.hasBirthSection(whichForm)">
|
|
316
|
+
<base-form-section :title="$dataStore.t('form.birthData')" v-if="$dataStore.hasBirthSection(whichForm)">
|
|
300
317
|
<base-panel-input
|
|
301
318
|
v-model="member.birthPlace"
|
|
302
|
-
:value="member.birthPlace
|
|
303
|
-
:label="$t('form.Country')"
|
|
319
|
+
:value="member.birthPlace?.nameRu"
|
|
320
|
+
:label="$dataStore.t('form.Country')"
|
|
304
321
|
:readonly="isDisabled"
|
|
305
322
|
:clearable="!isDisabled"
|
|
306
323
|
:rules="$rules.objectRequired"
|
|
307
324
|
append-inner-icon="mdi mdi-chevron-right"
|
|
308
|
-
@append="openPanel($t('form.Country'), [], 'birthPlace', $dataStore.getCountries)"
|
|
309
|
-
|
|
325
|
+
@append="openPanel($dataStore.t('form.Country'), [], 'birthPlace', $dataStore.getCountries)"
|
|
326
|
+
/>
|
|
310
327
|
<!-- TODO -->
|
|
311
328
|
<!-- <base-panel-input
|
|
312
329
|
v-model="member.birthRegion"
|
|
313
|
-
:value="member.birthRegion
|
|
314
|
-
:label="$t('form.Region')"
|
|
330
|
+
:value="member.birthRegion?.nameRu"
|
|
331
|
+
:label="$dataStore.t('form.Region')"
|
|
315
332
|
:readonly="isDisabled"
|
|
316
333
|
:clearable="!isDisabled"
|
|
317
334
|
:rules="$rules.objectRequired"
|
|
318
335
|
append-inner-icon="mdi mdi-chevron-right"
|
|
319
|
-
@append="openPanel($t('form.Region'), [], 'birthRegion', $dataStore.getRegions)"
|
|
320
|
-
|
|
336
|
+
@append="openPanel($dataStore.t('form.Region'), [], 'birthRegion', $dataStore.getRegions)"
|
|
337
|
+
/> -->
|
|
321
338
|
</base-form-section>
|
|
322
|
-
<base-form-section :title="$t('form.documentData')" v-if="$dataStore.hasDocumentSection(whichForm)">
|
|
339
|
+
<base-form-section :title="$dataStore.t('form.documentData')" v-if="$dataStore.hasDocumentSection(whichForm)">
|
|
323
340
|
<base-panel-input
|
|
324
341
|
v-model="member.documentType"
|
|
325
|
-
:value="member.documentType
|
|
326
|
-
:label="$t('form.documentType')"
|
|
342
|
+
:value="member.documentType?.nameRu"
|
|
343
|
+
:label="$dataStore.t('form.documentType')"
|
|
327
344
|
:readonly="isDisabled"
|
|
328
345
|
:clearable="!isDisabled"
|
|
329
346
|
:rules="$rules.objectRequired"
|
|
330
347
|
append-inner-icon="mdi mdi-chevron-right"
|
|
331
|
-
@append="openPanel($t('form.documentType'), [], 'documentType', $dataStore.getDocumentTypes)"
|
|
332
|
-
|
|
348
|
+
@append="openPanel($dataStore.t('form.documentType'), [], 'documentType', $dataStore.getDocumentTypes)"
|
|
349
|
+
/>
|
|
333
350
|
<base-form-input
|
|
334
|
-
v-model="member.documentNumber"
|
|
335
|
-
:label="$t('form.documentNumber')"
|
|
351
|
+
v-model.trim="member.documentNumber"
|
|
352
|
+
:label="$dataStore.t('form.documentNumber')"
|
|
336
353
|
:readonly="isDisabled"
|
|
337
354
|
:clearable="!isDisabled"
|
|
338
355
|
:rules="$rules.required"
|
|
339
|
-
|
|
340
|
-
<base-file-input v-if="!memberDocument" :disabled="isDisabled" :clearable="!isDisabled" @input="attachFile($event)"
|
|
356
|
+
/>
|
|
357
|
+
<!-- <base-file-input v-if="!memberDocument" :disabled="isDisabled" :clearable="!isDisabled" @input="attachFile($event)" />
|
|
341
358
|
<base-empty-form-field v-if="memberDocument" @click="!isDisabled && openCustomPanel('document')" class="justify-between">
|
|
342
359
|
{{ `${memberDocument.fileTypeName} - ${memberDocument.fileName}` }}
|
|
343
360
|
<i class="cursor-pointer mdi mdi-file-document mr-6 text-[#a0b3d8] text-xl"></i>
|
|
344
|
-
</base-empty-form-field>
|
|
361
|
+
</base-empty-form-field> -->
|
|
345
362
|
<base-panel-input
|
|
346
363
|
v-model="member.documentIssuers"
|
|
347
|
-
:value="member.documentIssuers
|
|
348
|
-
:label="$t('form.documentIssuers')"
|
|
364
|
+
:value="member.documentIssuers?.nameRu"
|
|
365
|
+
:label="$dataStore.t('form.documentIssuers')"
|
|
349
366
|
:readonly="isDisabled"
|
|
350
367
|
:clearable="!isDisabled"
|
|
351
368
|
:rules="$rules.objectRequired"
|
|
352
369
|
append-inner-icon="mdi mdi-chevron-right"
|
|
353
|
-
@append="openPanel($t('form.documentIssuers'), [], 'documentIssuers', $dataStore.getDocumentIssuers)"
|
|
354
|
-
|
|
370
|
+
@append="openPanel($dataStore.t('form.documentIssuers'), [], 'documentIssuers', $dataStore.getDocumentIssuers)"
|
|
371
|
+
/>
|
|
355
372
|
<base-form-input
|
|
356
373
|
v-model="member.documentDate"
|
|
357
|
-
:label="$t('form.documentDate')"
|
|
374
|
+
:label="$dataStore.t('form.documentDate')"
|
|
358
375
|
:readonly="isDisabled"
|
|
359
376
|
:clearable="!isDisabled"
|
|
360
377
|
:rules="$rules.required.concat($rules.date)"
|
|
361
378
|
:maska="$maska.date"
|
|
362
379
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
363
|
-
|
|
380
|
+
/>
|
|
364
381
|
<base-fade-transition>
|
|
365
382
|
<base-form-input
|
|
366
383
|
v-if="member.documentType.ids !== 'SBI' && member.documentType.ids !== 'VNZ'"
|
|
367
384
|
v-model="member.documentExpire"
|
|
368
|
-
:label="$t('form.documentExpire')"
|
|
385
|
+
:label="$dataStore.t('form.documentExpire')"
|
|
369
386
|
:readonly="isDisabled"
|
|
370
387
|
:clearable="!isDisabled"
|
|
371
388
|
:rules="$rules.required.concat($rules.date)"
|
|
372
389
|
:maska="$maska.date"
|
|
373
390
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
374
|
-
|
|
391
|
+
/>
|
|
375
392
|
</base-fade-transition>
|
|
376
393
|
<base-panel-input
|
|
377
394
|
v-model="member.signOfResidency"
|
|
378
|
-
:value="member.signOfResidency
|
|
379
|
-
:label="$t('form.signOfResidency')"
|
|
395
|
+
:value="member.signOfResidency?.nameRu"
|
|
396
|
+
:label="$dataStore.t('form.signOfResidency')"
|
|
380
397
|
:readonly="isDisabled"
|
|
381
398
|
:clearable="!isDisabled"
|
|
382
|
-
:rules="
|
|
399
|
+
:rules="residencyRule"
|
|
383
400
|
append-inner-icon="mdi mdi-chevron-right"
|
|
384
|
-
@append="openPanel($t('form.signOfResidency'), [], 'signOfResidency', $dataStore.getResidents)"
|
|
385
|
-
|
|
401
|
+
@append="openPanel($dataStore.t('form.signOfResidency'), [], 'signOfResidency', $dataStore.getResidents)"
|
|
402
|
+
/>
|
|
386
403
|
<base-panel-input
|
|
387
404
|
v-model="member.countryOfTaxResidency"
|
|
388
|
-
:value="member.countryOfTaxResidency
|
|
389
|
-
:label="$t('form.countryOfTaxResidency')"
|
|
405
|
+
:value="member.countryOfTaxResidency?.nameRu"
|
|
406
|
+
:label="$dataStore.t('form.countryOfTaxResidency')"
|
|
390
407
|
:readonly="isDisabled"
|
|
391
408
|
:clearable="!isDisabled"
|
|
392
409
|
:rules="$rules.objectRequired"
|
|
393
410
|
append-inner-icon="mdi mdi-chevron-right"
|
|
394
|
-
@append="openPanel($t('form.countryOfTaxResidency'), [], 'countryOfTaxResidency', $dataStore.getTaxCountries)"
|
|
395
|
-
|
|
411
|
+
@append="openPanel($dataStore.t('form.countryOfTaxResidency'), [], 'countryOfTaxResidency', $dataStore.getTaxCountries)"
|
|
412
|
+
/>
|
|
396
413
|
<base-fade-transition>
|
|
397
414
|
<base-panel-input
|
|
398
415
|
v-if="member.countryOfTaxResidency.ids === '500014.3'"
|
|
399
416
|
v-model="member.addTaxResidency"
|
|
400
|
-
:value="member.addTaxResidency
|
|
401
|
-
:label="$t('form.addTaxResidency')"
|
|
417
|
+
:value="member.addTaxResidency?.nameRu"
|
|
418
|
+
:label="$dataStore.t('form.addTaxResidency')"
|
|
402
419
|
:readonly="isDisabled"
|
|
403
420
|
:clearable="!isDisabled"
|
|
404
421
|
:rules="$rules.objectRequired"
|
|
405
422
|
append-inner-icon="mdi mdi-chevron-right"
|
|
406
|
-
@append="openPanel($t('form.addTaxResidency'), [], 'addTaxResidency', $dataStore.getAdditionalTaxCountries)"
|
|
407
|
-
|
|
423
|
+
@append="openPanel($dataStore.t('form.addTaxResidency'), [], 'addTaxResidency', $dataStore.getAdditionalTaxCountries)"
|
|
424
|
+
/>
|
|
408
425
|
</base-fade-transition>
|
|
409
426
|
<base-panel-input
|
|
427
|
+
v-if="hasSignOfIPDL"
|
|
410
428
|
v-model="member.signOfIPDL"
|
|
411
|
-
:value="member.signOfIPDL
|
|
412
|
-
:label="$t('form.signOfIPDL')"
|
|
429
|
+
:value="member.signOfIPDL?.nameRu"
|
|
430
|
+
:label="$dataStore.t('form.signOfIPDL')"
|
|
413
431
|
:readonly="isDisabled"
|
|
414
432
|
:clearable="!isDisabled"
|
|
415
433
|
:rules="$rules.objectRequired"
|
|
416
434
|
append-inner-icon="mdi mdi-chevron-right"
|
|
417
|
-
@append="openPanel($t('form.signOfIPDL'), $dataStore.ipdl, 'signOfIPDL')"
|
|
418
|
-
|
|
435
|
+
@append="openPanel($dataStore.t('form.signOfIPDL'), $dataStore.ipdl, 'signOfIPDL')"
|
|
436
|
+
/>
|
|
419
437
|
<base-panel-input
|
|
420
438
|
v-model="member.countryOfCitizenship"
|
|
421
|
-
:value="member.countryOfCitizenship
|
|
422
|
-
:label="$t('form.countryOfCitizenship')"
|
|
439
|
+
:value="member.countryOfCitizenship?.nameRu"
|
|
440
|
+
:label="$dataStore.t('form.countryOfCitizenship')"
|
|
423
441
|
:readonly="isDisabled"
|
|
424
442
|
:clearable="!isDisabled"
|
|
425
443
|
:rules="$rules.objectRequired"
|
|
426
444
|
append-inner-icon="mdi mdi-chevron-right"
|
|
427
|
-
@append="openPanel($t('form.countryOfCitizenship'), [], 'countryOfCitizenship', $dataStore.getCitizenshipCountries)"
|
|
428
|
-
|
|
445
|
+
@append="openPanel($dataStore.t('form.countryOfCitizenship'), [], 'countryOfCitizenship', $dataStore.getCitizenshipCountries)"
|
|
446
|
+
/>
|
|
429
447
|
<base-panel-input
|
|
430
448
|
v-model="member.economySectorCode"
|
|
431
|
-
:value="member.economySectorCode
|
|
432
|
-
:label="$t('form.economySectorCode')"
|
|
449
|
+
:value="member.economySectorCode?.nameRu"
|
|
450
|
+
:label="$dataStore.t('form.economySectorCode')"
|
|
433
451
|
:readonly="isDisabled"
|
|
434
452
|
:clearable="!isDisabled"
|
|
435
453
|
:rules="$rules.objectRequired"
|
|
436
454
|
append-inner-icon="mdi mdi-chevron-right"
|
|
437
|
-
@append="openPanel($t('form.economySectorCode'), [], 'economySectorCode', $dataStore.getSectorCodeList)"
|
|
438
|
-
|
|
455
|
+
@append="openPanel($dataStore.t('form.economySectorCode'), [], 'economySectorCode', $dataStore.getSectorCodeList)"
|
|
456
|
+
/>
|
|
457
|
+
<base-panel-input
|
|
458
|
+
v-if="hasInsurancePay"
|
|
459
|
+
v-model="member.insurancePay"
|
|
460
|
+
:value="member.insurancePay?.nameRu"
|
|
461
|
+
:readonly="isDisabled"
|
|
462
|
+
:clearable="!isDisabled"
|
|
463
|
+
:rules="$rules.objectRequired"
|
|
464
|
+
:label="$dataStore.t('form.insurancePay')"
|
|
465
|
+
append-inner-icon="mdi mdi-chevron-right"
|
|
466
|
+
@append="openPanel($dataStore.t('form.insurancePay'), $dataStore.insurancePay, 'insurancePay', $dataStore.getInsurancePay)"
|
|
467
|
+
/>
|
|
439
468
|
</base-form-section>
|
|
440
|
-
<base-form-section :title="$t('form.contactsData')" v-if="$dataStore.hasContactSection(whichForm)">
|
|
469
|
+
<base-form-section :title="$dataStore.t('form.contactsData')" v-if="$dataStore.hasContactSection(whichForm)">
|
|
441
470
|
<base-form-input
|
|
442
471
|
v-model="member.homePhone"
|
|
443
472
|
:maska="$maska.phone"
|
|
444
473
|
placeholder="+7 7"
|
|
445
|
-
:label="$t('form.homePhone')"
|
|
474
|
+
:label="$dataStore.t('form.homePhone')"
|
|
446
475
|
:readonly="isDisabled"
|
|
447
476
|
:clearable="!isDisabled"
|
|
448
477
|
:rules="whichForm === formStore.beneficiaryFormKey ? [] : $rules.phoneFormat"
|
|
449
|
-
|
|
450
|
-
<base-form-input v-model.trim="member.email" :label="$t('form.email')" :rules="$rules.email"
|
|
478
|
+
/>
|
|
479
|
+
<base-form-input v-model.trim="member.email" :label="$dataStore.t('form.email')" :rules="$rules.email" />
|
|
451
480
|
</base-form-section>
|
|
452
481
|
</v-form>
|
|
453
|
-
<base-btn v-if="showSaveButton" :loading="isButtonLoading || isSubmittingForm" :text="$t('buttons.save')" @click="submitForm"
|
|
482
|
+
<base-btn v-if="showSaveButton" :loading="isButtonLoading || isSubmittingForm" :text="$dataStore.t('buttons.save')" @click="submitForm" />
|
|
454
483
|
<Teleport v-if="isPanelOpen" to="#panel-actions">
|
|
455
|
-
<div :class="[$
|
|
456
|
-
<base-rounded-input v-model="searchQuery" :label="$t('labels.search')" class="w-full p-2" :hide-details="true"
|
|
484
|
+
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
485
|
+
<base-rounded-input v-model="searchQuery" :label="$dataStore.t('labels.search')" class="w-full p-2" :hide-details="true" />
|
|
457
486
|
<div v-if="panelList && isPanelLoading === false" class="w-full flex flex-col gap-2 p-2">
|
|
458
|
-
<base-panel-select-item :text="$t('form.notChosen')" :selected="panelValue.nameRu === null" @click="pickPanelValue(new Value())"
|
|
487
|
+
<base-panel-select-item :text="$dataStore.t('form.notChosen')" :selected="panelValue.nameRu === null" @click="pickPanelValue(new Value())" />
|
|
459
488
|
<base-panel-select-item
|
|
460
489
|
v-for="(item, index) of panelList.filter(i => i.nameRu && (i.nameRu as string).match(new RegExp(searchQuery, 'i')))"
|
|
461
490
|
:key="index"
|
|
462
|
-
:text="item.nameRu as string"
|
|
491
|
+
:text="(item.nameRu as string)"
|
|
463
492
|
:selected="item.nameRu === panelValue.nameRu"
|
|
464
493
|
@click="pickPanelValue(item)"
|
|
465
|
-
|
|
494
|
+
/>
|
|
466
495
|
</div>
|
|
467
|
-
<base-loader v-if="isPanelLoading" class="absolute mt-10" :size="50"
|
|
496
|
+
<base-loader v-if="isPanelLoading" class="absolute mt-10" :size="50" />
|
|
468
497
|
</div>
|
|
469
498
|
</Teleport>
|
|
470
499
|
<Teleport v-if="isSearchOpen" to="#panel-actions">
|
|
471
|
-
<div :class="[$
|
|
472
|
-
<base-btn v-if="hasGBDFL" :loading="isButtonLoading" :text="$t('buttons.fromGBDFL')" @click="getContragentFromGBDFL"
|
|
473
|
-
<base-btn v-if="hasInsis" :loading="isButtonLoading" :text="$t('buttons.fromInsis')" @click="getContragent"
|
|
474
|
-
<base-btn v-if="hasGKB" :loading="isButtonLoading" :text="$t('buttons.fromGKB')" @click="getFamilyInfo"
|
|
500
|
+
<div :class="[$styles.flexColNav]">
|
|
501
|
+
<base-btn v-if="hasGBDFL" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromGBDFL')" @click="getContragentFromGBDFL" />
|
|
502
|
+
<base-btn v-if="hasInsis" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromInsis')" @click="getContragent" />
|
|
503
|
+
<base-btn v-if="hasGKB" :loading="isButtonLoading" :text="$dataStore.t('buttons.fromGKB')" @click="getFamilyInfo" />
|
|
475
504
|
</div>
|
|
476
505
|
</Teleport>
|
|
477
506
|
<Teleport v-if="isDocumentOpen" to="#panel-actions">
|
|
478
|
-
<div :class="[$
|
|
479
|
-
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Открыть" @click="getFile('view')"
|
|
480
|
-
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Скачать" @click="getFile('download')"
|
|
507
|
+
<div :class="[$styles.flexColNav]">
|
|
508
|
+
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Открыть" @click="getFile('view')" />
|
|
509
|
+
<base-btn :disabled="documentLoading" :loading="documentLoading" text="Скачать" @click="getFile('download')" />
|
|
481
510
|
</div>
|
|
482
511
|
</Teleport>
|
|
483
|
-
<
|
|
512
|
+
<Teleport v-if="isOtpPanelOpen && !member.hasAgreement" to="#panel-actions">
|
|
513
|
+
<div :class="[$styles.flexColNav]">
|
|
514
|
+
<base-fade-transition>
|
|
515
|
+
<base-rounded-input
|
|
516
|
+
v-if="otpCondition && member.otpTokenId"
|
|
517
|
+
v-model="member.otpCode"
|
|
518
|
+
:label="$dataStore.t('form.otpCode')"
|
|
519
|
+
:maska="$maska.otp"
|
|
520
|
+
:append-inner-icon="hasOtp ? 'mdi-cellphone-message text-[17px]' : ''"
|
|
521
|
+
hide-details
|
|
522
|
+
@keyup.enter.prevent="hasOtp ? checkOtp() : null"
|
|
523
|
+
@input="onOtpCodeInput"
|
|
524
|
+
/>
|
|
525
|
+
</base-fade-transition>
|
|
526
|
+
<base-btn v-if="!member.otpTokenId" :disabled="otpSending" :loading="otpSending" :text="$dataStore.t('buttons.sendOtp')" @click="sendOtp(false)" />
|
|
527
|
+
<base-btn v-if="member.otpTokenId" :disabled="otpSending" :loading="otpSending" :text="$dataStore.t('buttons.check')" @click="checkOtp()" />
|
|
528
|
+
</div>
|
|
529
|
+
</Teleport>
|
|
530
|
+
<base-dialog v-model="familyDialog" :title="$dataStore.t('dialog.familyMember')" actions="familyDialog">
|
|
484
531
|
<template #actions>
|
|
485
|
-
<base-family-dialog :selected="selectedFamilyMember" @selectFamilyMember="selectFamilyMember" @reset="closeFamilyDialog(true)"
|
|
532
|
+
<base-family-dialog :selected="selectedFamilyMember" @selectFamilyMember="selectFamilyMember" @reset="closeFamilyDialog(true)" />
|
|
486
533
|
</template>
|
|
487
534
|
</base-dialog>
|
|
488
535
|
</section>
|
|
489
|
-
<base-scroll-buttons @up="scrollForm('up')" @down="scrollForm('down')"
|
|
536
|
+
<base-scroll-buttons @up="scrollForm('up')" @down="scrollForm('down')" />
|
|
490
537
|
</template>
|
|
491
538
|
|
|
492
539
|
<script lang="ts">
|
|
493
|
-
import {
|
|
494
|
-
import { Value, DocumentItem } from '@/composables/classes';
|
|
540
|
+
import { Value, DocumentItem, Member } from '../../composables/classes';
|
|
495
541
|
import { uuid } from 'vue-uuid';
|
|
542
|
+
import { StoreMembers } from '../../types/enum';
|
|
496
543
|
|
|
497
544
|
export default {
|
|
498
545
|
setup() {
|
|
@@ -502,31 +549,35 @@ export default {
|
|
|
502
549
|
const dataStore = useDataStore();
|
|
503
550
|
const formStore = useFormStore();
|
|
504
551
|
const memberStore = useMemberStore();
|
|
505
|
-
const
|
|
506
|
-
|
|
507
|
-
const
|
|
552
|
+
const whichForm = computed(() => route.query.tab as keyof typeof StoreMembers);
|
|
553
|
+
const whichIndex = computed(() => route.query.i as string);
|
|
554
|
+
const getMember = (whichForm: keyof typeof StoreMembers, whichIndex?: string) => memberStore.getMemberFromStore(whichForm, Number((whichIndex ? whichIndex : '0') as string))!;
|
|
555
|
+
const member = ref(getMember(whichForm.value, whichIndex.value));
|
|
508
556
|
const selectedFamilyMember = ref<BirthInfoGKB>({});
|
|
509
557
|
const isPanelOpen = ref<boolean>(false);
|
|
510
558
|
const memberDocument = ref<DocumentItem>();
|
|
511
559
|
const isButtonLoading = ref<boolean>(false);
|
|
512
560
|
const isSubmittingForm = ref<boolean>(false);
|
|
513
561
|
const documentLoading = ref<boolean>(false);
|
|
562
|
+
const otpSending = ref<boolean>(false);
|
|
514
563
|
const isSearchOpen = ref<boolean>(false);
|
|
515
564
|
const isDocumentOpen = ref<boolean>(false);
|
|
565
|
+
const isOtpPanelOpen = ref<boolean>(false);
|
|
516
566
|
const isPanelLoading = ref<boolean>(false);
|
|
567
|
+
const isChangingMember = ref<boolean>(false);
|
|
517
568
|
const familyDialog = ref<boolean>(false);
|
|
569
|
+
const sameAddress = ref<boolean>(false);
|
|
518
570
|
const panelValue = ref<Value>(new Value());
|
|
519
571
|
const panelList = ref<Value[]>([]);
|
|
520
572
|
const currentPanel = ref<keyof typeof member.value>();
|
|
521
573
|
const searchQuery = ref<string>('');
|
|
522
574
|
const fileData = ref<{ file: any }>();
|
|
523
575
|
|
|
524
|
-
const
|
|
525
|
-
const whichIndex = computed(() => route.query.i);
|
|
576
|
+
const memberSetting = computed(() => dataStore.members[memberStore.getMemberApplicationCode(whichForm.value)!]);
|
|
526
577
|
const hasOtp = computed(() => member.value.otpCode && member.value.otpCode.length === useMask().otp.length);
|
|
527
|
-
const isDisabled = computed(() => !memberStore.isStatementEditible(whichForm.value
|
|
578
|
+
const isDisabled = computed(() => !memberStore.isStatementEditible(whichForm.value));
|
|
528
579
|
const isTask = computed(() => route.params.taskId === '0' || dataStore.isTask());
|
|
529
|
-
const isIinPhoneDisabled = computed(() =>
|
|
580
|
+
const isIinPhoneDisabled = computed(() => member.value.hasAgreement);
|
|
530
581
|
const isFromGBD = computed(() => !!member.value.gosPersonData);
|
|
531
582
|
const showSaveButton = computed(() => {
|
|
532
583
|
const generalCondition = !isDisabled.value && !!isTask.value && !!dataStore.isInitiator();
|
|
@@ -546,14 +597,38 @@ export default {
|
|
|
546
597
|
return generalCondition && perMemberCondtion();
|
|
547
598
|
});
|
|
548
599
|
|
|
549
|
-
const hasGBDFL = computed(() =>
|
|
600
|
+
const hasGBDFL = computed(() => {
|
|
601
|
+
const perMemberCondition = () => {
|
|
602
|
+
switch (whichForm.value) {
|
|
603
|
+
case formStore.beneficiaryFormKey: {
|
|
604
|
+
if (dataStore.isKazyna || dataStore.isLiferenta) {
|
|
605
|
+
return !!member.value.iin;
|
|
606
|
+
}
|
|
607
|
+
if (dataStore.isBolashak || dataStore.isGons) {
|
|
608
|
+
return false;
|
|
609
|
+
}
|
|
610
|
+
return true;
|
|
611
|
+
}
|
|
612
|
+
case formStore.insuredFormKey:
|
|
613
|
+
case formStore.beneficialOwnerFormKey:
|
|
614
|
+
case formStore.policyholdersRepresentativeFormKey:
|
|
615
|
+
return true;
|
|
616
|
+
default:
|
|
617
|
+
return true;
|
|
618
|
+
}
|
|
619
|
+
};
|
|
620
|
+
return dataStore.controls.hasGBDFL && perMemberCondition();
|
|
621
|
+
});
|
|
550
622
|
const hasInsis = computed(() => dataStore.controls.hasInsis);
|
|
551
623
|
const hasGKB = computed(() => {
|
|
552
|
-
const byProductCondition = dataStore.isGons || dataStore.isBolashak;
|
|
553
624
|
const perMemberCondition = () => {
|
|
554
625
|
switch (whichForm.value) {
|
|
555
|
-
case formStore.beneficiaryFormKey:
|
|
626
|
+
case formStore.beneficiaryFormKey: {
|
|
627
|
+
if (dataStore.isKazyna || dataStore.isLiferenta) {
|
|
628
|
+
return !member.value.iin;
|
|
629
|
+
}
|
|
556
630
|
return member.value.id === 0;
|
|
631
|
+
}
|
|
557
632
|
case formStore.policyholderFormKey:
|
|
558
633
|
case formStore.insuredFormKey:
|
|
559
634
|
case formStore.beneficialOwnerFormKey:
|
|
@@ -563,48 +638,94 @@ export default {
|
|
|
563
638
|
return false;
|
|
564
639
|
}
|
|
565
640
|
};
|
|
566
|
-
return dataStore.controls.hasGKB && !!dataStore.isTask() &&
|
|
641
|
+
return dataStore.controls.hasGKB && !!dataStore.isTask() && perMemberCondition();
|
|
567
642
|
});
|
|
568
643
|
|
|
644
|
+
const hasFamilyStatus = computed(() => {
|
|
645
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
646
|
+
if (dataStore.isBolashak) {
|
|
647
|
+
return false;
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
return true;
|
|
651
|
+
});
|
|
652
|
+
const hasInsurancePay = computed(() => {
|
|
653
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
654
|
+
if (dataStore.isBolashak || dataStore.isLiferenta) {
|
|
655
|
+
return true;
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
return false;
|
|
659
|
+
});
|
|
660
|
+
const hasSignOfIPDL = computed(() => {
|
|
661
|
+
if (dataStore.isGons) {
|
|
662
|
+
return false;
|
|
663
|
+
}
|
|
664
|
+
return true;
|
|
665
|
+
});
|
|
666
|
+
const hasSameAddressToggle = computed(() => whichForm.value === formStore.beneficiaryFormKey && member.value.iin !== formStore.policyholderForm.iin);
|
|
667
|
+
|
|
668
|
+
const birthDateRule = computed(() => {
|
|
669
|
+
const baseDateRule = dataStore.rules.required.concat(dataStore.rules.birthDate);
|
|
670
|
+
const byMemverAndProductRule = () => {
|
|
671
|
+
if (whichForm.value === formStore.policyholderFormKey) {
|
|
672
|
+
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek) {
|
|
673
|
+
return dataStore.rules.age18ByDate;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
677
|
+
if (dataStore.isBolashak || dataStore.isBaiterek) {
|
|
678
|
+
return dataStore.rules.age18ByDate;
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
return [];
|
|
682
|
+
};
|
|
683
|
+
return baseDateRule.concat(byMemverAndProductRule());
|
|
684
|
+
});
|
|
569
685
|
const ageRule = computed(() => {
|
|
570
|
-
const baseAgeRule = dataStore.rules.
|
|
686
|
+
const baseAgeRule = dataStore.rules.numbers;
|
|
571
687
|
const byMemberAndProductRule = () => {
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
return dataStore.rules.policyholderAgeLimit;
|
|
576
|
-
} else {
|
|
577
|
-
return [];
|
|
578
|
-
}
|
|
688
|
+
if (whichForm.value === formStore.policyholderFormKey) {
|
|
689
|
+
if (dataStore.isGons || dataStore.isBolashak || dataStore.isBaiterek) {
|
|
690
|
+
return dataStore.rules.age18;
|
|
579
691
|
}
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
return [];
|
|
585
|
-
}
|
|
692
|
+
}
|
|
693
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
694
|
+
if (dataStore.isBolashak) {
|
|
695
|
+
return dataStore.rules.beneficiaryAgeLimit;
|
|
586
696
|
}
|
|
587
|
-
default:
|
|
588
|
-
return [];
|
|
589
697
|
}
|
|
698
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
699
|
+
if (dataStore.isBaiterek || dataStore.isBolashak) {
|
|
700
|
+
return dataStore.rules.age18;
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
return [];
|
|
590
704
|
};
|
|
591
705
|
return baseAgeRule.concat(byMemberAndProductRule());
|
|
592
706
|
});
|
|
593
707
|
|
|
594
708
|
const phoneRule = computed(() => {
|
|
595
709
|
const basePhoneRule = dataStore.rules.required.concat(dataStore.rules.phoneFormat);
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
if (dataStore.isGons || dataStore.isBolashak) {
|
|
600
|
-
return [];
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
default:
|
|
604
|
-
return basePhoneRule;
|
|
710
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
711
|
+
if (dataStore.isGons || dataStore.isBolashak) {
|
|
712
|
+
return [];
|
|
605
713
|
}
|
|
606
|
-
|
|
607
|
-
|
|
714
|
+
if ((dataStore.isKazyna || dataStore.isLiferenta) && Number(member.value.age) < 18) {
|
|
715
|
+
return [];
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
return basePhoneRule;
|
|
719
|
+
});
|
|
720
|
+
|
|
721
|
+
const residencyRule = computed(() => {
|
|
722
|
+
const baseResidencyRule = dataStore.rules.objectRequired;
|
|
723
|
+
if (whichForm.value === formStore.policyholderFormKey) {
|
|
724
|
+
if (dataStore.isBolashak || dataStore.isBaiterek) {
|
|
725
|
+
return baseResidencyRule.concat(dataStore.rules.noResident);
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
return baseResidencyRule;
|
|
608
729
|
});
|
|
609
730
|
|
|
610
731
|
const getOtpConditionByMember = () => {
|
|
@@ -628,10 +749,11 @@ export default {
|
|
|
628
749
|
const searchMember = async () => {
|
|
629
750
|
if (!isDisabled.value) {
|
|
630
751
|
dataStore.panelAction = null;
|
|
631
|
-
dataStore.panel.title = 'Поиск
|
|
752
|
+
dataStore.panel.title = 'Поиск контрагента';
|
|
632
753
|
dataStore.panel.open = true;
|
|
633
754
|
isSearchOpen.value = true;
|
|
634
755
|
isDocumentOpen.value = false;
|
|
756
|
+
isOtpPanelOpen.value = false;
|
|
635
757
|
isPanelOpen.value = false;
|
|
636
758
|
} else {
|
|
637
759
|
dataStore.showToaster('error', dataStore.t('toaster.viewErrorText'));
|
|
@@ -642,13 +764,21 @@ export default {
|
|
|
642
764
|
vForm.value.scrollTo({ top: direction === 'up' ? 0 : screen.height * 10, behavior: 'smooth' });
|
|
643
765
|
};
|
|
644
766
|
|
|
645
|
-
const openCustomPanel = (type: 'document' = 'document') => {
|
|
767
|
+
const openCustomPanel = (type: 'document' | 'otp' = 'document') => {
|
|
646
768
|
dataStore.panelAction = null;
|
|
647
769
|
if (type === 'document' && memberDocument.value) {
|
|
648
770
|
dataStore.panel.title = memberDocument.value.fileTypeName!;
|
|
649
771
|
isDocumentOpen.value = true;
|
|
650
772
|
isSearchOpen.value = false;
|
|
651
773
|
isPanelOpen.value = false;
|
|
774
|
+
isOtpPanelOpen.value = false;
|
|
775
|
+
}
|
|
776
|
+
if (type === 'otp') {
|
|
777
|
+
dataStore.panel.title = dataStore.t('form.otpCode');
|
|
778
|
+
isOtpPanelOpen.value = true;
|
|
779
|
+
isDocumentOpen.value = false;
|
|
780
|
+
isSearchOpen.value = false;
|
|
781
|
+
isPanelOpen.value = false;
|
|
652
782
|
}
|
|
653
783
|
dataStore.panel.open = true;
|
|
654
784
|
};
|
|
@@ -657,6 +787,7 @@ export default {
|
|
|
657
787
|
if (!isDisabled.value) {
|
|
658
788
|
isSearchOpen.value = false;
|
|
659
789
|
isDocumentOpen.value = false;
|
|
790
|
+
isOtpPanelOpen.value = false;
|
|
660
791
|
// Feature
|
|
661
792
|
// const notAllowedToChange = ['gender', 'documentType', 'documentIssuers'];
|
|
662
793
|
// if (member.value.gotFromInsis === false && notAllowedToChange.includes(key)) {
|
|
@@ -675,7 +806,7 @@ export default {
|
|
|
675
806
|
isPanelLoading.value = true;
|
|
676
807
|
newList = await asyncFunction(filterKey, member.value);
|
|
677
808
|
}
|
|
678
|
-
panelList.value = newList;
|
|
809
|
+
panelList.value = filterList(newList, key);
|
|
679
810
|
panelValue.value = member.value[currentPanel.value];
|
|
680
811
|
isPanelLoading.value = false;
|
|
681
812
|
} else {
|
|
@@ -683,6 +814,22 @@ export default {
|
|
|
683
814
|
}
|
|
684
815
|
};
|
|
685
816
|
|
|
817
|
+
const filterList = (list: Value[], key: string) => {
|
|
818
|
+
if (dataStore.isBolashak) {
|
|
819
|
+
if (key === 'relationDegree') {
|
|
820
|
+
if (whichForm.value === formStore.beneficiaryFormKey) {
|
|
821
|
+
const beneficiaryRelations = [12, 13, 14, 15, 20, 21, 22, 23];
|
|
822
|
+
return list.filter(i => beneficiaryRelations.includes(Number(i.ids)));
|
|
823
|
+
}
|
|
824
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
825
|
+
const insuredRelations = [6, 7, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23];
|
|
826
|
+
return list.filter(i => insuredRelations.includes(Number(i.ids)));
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
return list;
|
|
831
|
+
};
|
|
832
|
+
|
|
686
833
|
const pickPanelValue = (item: Value) => {
|
|
687
834
|
if (formStore.isDisabled[whichForm.value as keyof typeof formStore.isDisabled] === false) {
|
|
688
835
|
dataStore.panel.open = false;
|
|
@@ -737,6 +884,7 @@ export default {
|
|
|
737
884
|
};
|
|
738
885
|
|
|
739
886
|
const getFamilyInfo = async () => {
|
|
887
|
+
if (!formStore.policyholderForm.iin || !formStore.policyholderForm.phoneNumber) return;
|
|
740
888
|
if (formStore.birthInfos.length === 0) {
|
|
741
889
|
isButtonLoading.value = true;
|
|
742
890
|
await dataStore.getFamilyInfo(formStore.policyholderForm.iin, formStore.policyholderForm.phoneNumber);
|
|
@@ -778,59 +926,63 @@ export default {
|
|
|
778
926
|
};
|
|
779
927
|
|
|
780
928
|
const getContragentFromGBDFL = async () => {
|
|
781
|
-
if (member.value.hasAgreement
|
|
929
|
+
if (member.value.hasAgreement !== true) {
|
|
782
930
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
783
931
|
dataStore.panel.open = false;
|
|
784
932
|
isSearchOpen.value = false;
|
|
785
933
|
return;
|
|
786
934
|
}
|
|
787
935
|
if (!member.value.iin || member.value.iin.length !== useMask().iin.length || !member.value.phoneNumber || member.value.phoneNumber.length !== useMask().phone.length) {
|
|
788
|
-
dataStore.showToaster('error', dataStore.t('toaster.errorFormField'
|
|
936
|
+
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'Номер телефона, ИИН' }), 5000);
|
|
789
937
|
dataStore.panel.open = false;
|
|
790
938
|
isSearchOpen.value = false;
|
|
791
939
|
return;
|
|
792
940
|
}
|
|
793
941
|
isButtonLoading.value = true;
|
|
794
|
-
await dataStore.getContragentFromGBDFL(member.value
|
|
795
|
-
|
|
942
|
+
const response = await dataStore.getContragentFromGBDFL(member.value);
|
|
943
|
+
if (typeof response === 'boolean') {
|
|
944
|
+
if (response === true) {
|
|
945
|
+
member.value.gotFromInsis = true;
|
|
946
|
+
}
|
|
947
|
+
dataStore.panel.open = false;
|
|
948
|
+
isSearchOpen.value = false;
|
|
949
|
+
}
|
|
796
950
|
isButtonLoading.value = false;
|
|
797
|
-
dataStore.panel.open = false;
|
|
798
|
-
isSearchOpen.value = false;
|
|
799
951
|
};
|
|
800
952
|
|
|
801
953
|
const getContragent = async () => {
|
|
802
|
-
if (member.value.hasAgreement
|
|
954
|
+
if (member.value.hasAgreement !== true) {
|
|
803
955
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
|
|
804
956
|
dataStore.panel.open = false;
|
|
805
957
|
isSearchOpen.value = false;
|
|
806
958
|
return;
|
|
807
959
|
}
|
|
808
960
|
if (!member.value.iin || member.value.iin.length !== useMask().iin.length) {
|
|
809
|
-
dataStore.showToaster('error', dataStore.t('toaster.errorFormField'
|
|
961
|
+
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: 'ИИН' }), 5000);
|
|
810
962
|
dataStore.panel.open = false;
|
|
811
963
|
isSearchOpen.value = false;
|
|
812
964
|
return;
|
|
813
965
|
}
|
|
814
966
|
isButtonLoading.value = true;
|
|
815
|
-
await dataStore.getContragent(member.value,
|
|
967
|
+
await dataStore.getContragent(member.value, false);
|
|
816
968
|
isButtonLoading.value = false;
|
|
817
969
|
dataStore.panel.open = false;
|
|
818
970
|
isSearchOpen.value = false;
|
|
819
971
|
};
|
|
820
972
|
|
|
821
973
|
const validateESBD = async (docTypeNumber: number) => {
|
|
822
|
-
const data = {
|
|
974
|
+
const data: ESBDValidationType = {
|
|
823
975
|
personType: 1,
|
|
824
976
|
iin: member.value.iin!.replaceAll('-', ''),
|
|
825
|
-
lastName: member.value.lastName,
|
|
826
|
-
firstName: member.value.firstName,
|
|
827
|
-
middleName: member.value.middleName,
|
|
828
|
-
birthDate: member.value.getDateByKey('birthDate'),
|
|
829
|
-
sex: member.value.gender.id,
|
|
977
|
+
lastName: member.value.lastName ?? '',
|
|
978
|
+
firstName: member.value.firstName ?? '',
|
|
979
|
+
middleName: member.value.middleName ?? '',
|
|
980
|
+
birthDate: member.value.getDateByKey('birthDate') ?? '',
|
|
981
|
+
sex: Number(member.value.gender.id),
|
|
830
982
|
docType: docTypeNumber,
|
|
831
|
-
docNumber: member.value.documentNumber,
|
|
832
|
-
docIssuedDate: member.value.getDateByKey('documentDate'),
|
|
833
|
-
docIssuedBy: member.value.documentIssuers.nameRu,
|
|
983
|
+
docNumber: member.value.documentNumber ?? '',
|
|
984
|
+
docIssuedDate: member.value.getDateByKey('documentDate') ?? '',
|
|
985
|
+
docIssuedBy: member.value.documentIssuers.nameRu ?? '',
|
|
834
986
|
activityKindId: 0,
|
|
835
987
|
economicsSectorId: Number((member.value.economySectorCode.ids! as string).at(-1)),
|
|
836
988
|
resident: member.value.signOfResidency.ids === '500011.2' || member.value.signOfResidency.ids === null ? 0 : 1,
|
|
@@ -840,18 +992,20 @@ export default {
|
|
|
840
992
|
};
|
|
841
993
|
|
|
842
994
|
const saveMember = async () => {
|
|
843
|
-
const hasSaved = await dataStore.saveContragent(member.value, whichForm.value, whichIndex.value, true);
|
|
995
|
+
const hasSaved = await dataStore.saveContragent(member.value, whichForm.value, whichIndex.value ? Number(whichIndex.value) : null, true);
|
|
844
996
|
if (hasSaved === false) {
|
|
845
997
|
dataStore.isLoading = false;
|
|
846
998
|
return false;
|
|
847
999
|
}
|
|
848
1000
|
const isInsured = formStore.isPolicyholderInsured;
|
|
1001
|
+
const remoteIsInsured = ref<boolean | null>(null);
|
|
849
1002
|
if (whichForm.value == formStore.policyholderFormKey) {
|
|
850
1003
|
if (route.params.taskId === '0') {
|
|
851
1004
|
try {
|
|
852
1005
|
const taskId = await dataStore.startApplication(member.value);
|
|
853
|
-
if (taskId) {
|
|
1006
|
+
if (typeof taskId === 'string') {
|
|
854
1007
|
await dataStore.getApplicationData(taskId, false, false, false, false);
|
|
1008
|
+
remoteIsInsured.value = formStore.applicationData.clientApp.isInsured;
|
|
855
1009
|
await router.replace({
|
|
856
1010
|
name: route.name!,
|
|
857
1011
|
params: { taskId: taskId as string },
|
|
@@ -873,27 +1027,37 @@ export default {
|
|
|
873
1027
|
await uploadFile(formStore.applicationData.processInstanceId);
|
|
874
1028
|
}
|
|
875
1029
|
}
|
|
876
|
-
const memberFromApplicaiton = memberStore.getMemberFromApplication(whichForm.value
|
|
877
|
-
|
|
1030
|
+
const memberFromApplicaiton = memberStore.getMemberFromApplication(whichForm.value, whichIndex.value ? Number(whichIndex.value) : undefined);
|
|
1031
|
+
if (typeof member.value.id !== 'number' || (typeof member.value.id === 'number' && member.value.id > 0 === false)) {
|
|
1032
|
+
return false;
|
|
1033
|
+
}
|
|
1034
|
+
const wasInsuredAction = ref<boolean>(false);
|
|
1035
|
+
const isSaved = await dataStore.saveMember(member.value, memberStore.getMemberCode(whichForm.value)!, memberFromApplicaiton);
|
|
878
1036
|
if (!isSaved) return false;
|
|
879
|
-
if (whichForm.value === formStore.policyholderFormKey
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
1037
|
+
if (whichForm.value === formStore.policyholderFormKey) {
|
|
1038
|
+
if (isInsured === true || remoteIsInsured.value === true) {
|
|
1039
|
+
formStore.insuredForm[0] = formStore.policyholderForm;
|
|
1040
|
+
const isInsuredSaved = await dataStore.saveMember(
|
|
1041
|
+
member.value,
|
|
1042
|
+
memberStore.getMemberCode(formStore.insuredFormKey)!,
|
|
1043
|
+
memberStore.getMemberFromApplication(formStore.insuredFormKey, formStore.insuredFormIndex),
|
|
1044
|
+
);
|
|
1045
|
+
if (!isInsuredSaved) return false;
|
|
1046
|
+
wasInsuredAction.value = true;
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
if (whichForm.value === formStore.insuredFormKey) {
|
|
1050
|
+
wasInsuredAction.value = true;
|
|
887
1051
|
}
|
|
888
1052
|
await router.replace({
|
|
889
1053
|
name: route.name!,
|
|
890
1054
|
query: { ...route.query, id: member.value.id },
|
|
891
1055
|
});
|
|
892
|
-
await dataStore.getApplicationData(route.params.taskId, false, false,
|
|
1056
|
+
await dataStore.getApplicationData(route.params.taskId as string, false, false, true, wasInsuredAction.value);
|
|
893
1057
|
if (dataStore.controls.hasCalculator) {
|
|
894
1058
|
if (formStore.additionalInsuranceTermsWithout && formStore.additionalInsuranceTermsWithout.length !== 0) {
|
|
895
|
-
formStore.additionalInsuranceTerms.forEach(
|
|
896
|
-
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(
|
|
1059
|
+
formStore.additionalInsuranceTerms.forEach(term => {
|
|
1060
|
+
const defaultTerm = formStore.additionalInsuranceTermsWithout.find(i => i.coverTypeId === term.coverTypeId);
|
|
897
1061
|
if (defaultTerm) {
|
|
898
1062
|
term.coverSumName = defaultTerm.coverSumName;
|
|
899
1063
|
term.coverSumId = defaultTerm.coverSumId;
|
|
@@ -913,7 +1077,12 @@ export default {
|
|
|
913
1077
|
return true;
|
|
914
1078
|
}
|
|
915
1079
|
}
|
|
916
|
-
if (
|
|
1080
|
+
if (dataStore.isKazyna || dataStore.isLiferenta) {
|
|
1081
|
+
if (whichForm.value === formStore.beneficiaryFormKey && Number(member.value.age) < 18) {
|
|
1082
|
+
return true;
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
if (member.value.hasAgreement !== true) {
|
|
917
1086
|
dataStore.showToaster('error', dataStore.t('toaster.needAgreement'));
|
|
918
1087
|
return false;
|
|
919
1088
|
}
|
|
@@ -937,7 +1106,7 @@ export default {
|
|
|
937
1106
|
const initialPoint = `${member.value.iin!.replaceAll('-', '')}.`;
|
|
938
1107
|
const RESPONSE = ESBDMessage(ESBDResponse, initialPoint);
|
|
939
1108
|
let errorMessage = RESPONSE !== false ? RESPONSE : 'Что-то произошло не так';
|
|
940
|
-
if (ESBDResponse.errorCode === 0) {
|
|
1109
|
+
if (typeof ESBDResponse === 'object' && ESBDResponse.errorCode === 0) {
|
|
941
1110
|
member.value.verifyType = 'ESBD';
|
|
942
1111
|
member.value.verifyDate = ESBDResponse.verifiedDate;
|
|
943
1112
|
const hasMemberSaved = await saveMember();
|
|
@@ -955,11 +1124,11 @@ export default {
|
|
|
955
1124
|
if (errors) {
|
|
956
1125
|
const errorText = errors.querySelector('.v-label.v-field-label');
|
|
957
1126
|
if (errorText) {
|
|
958
|
-
dataStore.showToaster('error', dataStore.t('toaster.errorFormField'
|
|
1127
|
+
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: errorText.innerHTML?.replace(/[-<>!//.]/g, '') }));
|
|
959
1128
|
} else {
|
|
960
1129
|
const errorFieldText = errors.querySelector('.v-input__control');
|
|
961
1130
|
if (errorFieldText) {
|
|
962
|
-
dataStore.showToaster('error', dataStore.t('toaster.errorFormField'
|
|
1131
|
+
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: errorFieldText.innerHTML?.replace(/[-<>!//.]/g, '') }));
|
|
963
1132
|
}
|
|
964
1133
|
}
|
|
965
1134
|
errors.scrollIntoView({
|
|
@@ -974,67 +1143,133 @@ export default {
|
|
|
974
1143
|
|
|
975
1144
|
const checkOtp = async () => {
|
|
976
1145
|
if (!member.value.otpCode || member.value.iin?.length !== useMask().iin.length || member.value.phoneNumber?.length !== useMask().phone.length) {
|
|
977
|
-
dataStore.showToaster('error', dataStore.t('toaster.errorFormField'
|
|
1146
|
+
dataStore.showToaster('error', dataStore.t('toaster.errorFormField', { text: dataStore.t('form.otpCode') }), 3000);
|
|
978
1147
|
return;
|
|
979
1148
|
}
|
|
1149
|
+
otpSending.value = true;
|
|
980
1150
|
const checked = await memberStore.checkOtp(member.value);
|
|
981
1151
|
if (typeof checked !== 'undefined') {
|
|
982
1152
|
member.value.hasAgreement = checked;
|
|
983
1153
|
}
|
|
1154
|
+
otpSending.value = false;
|
|
1155
|
+
if (checked === true) {
|
|
1156
|
+
dataStore.panel.open = false;
|
|
1157
|
+
}
|
|
984
1158
|
};
|
|
985
1159
|
|
|
986
1160
|
const sendOtp = async (onInit = false) => {
|
|
1161
|
+
otpSending.value = true;
|
|
987
1162
|
const response = await memberStore.sendOtp(member.value, formStore.applicationData.processInstanceId, onInit);
|
|
988
1163
|
if (response) {
|
|
989
1164
|
if (member.value.hasAgreement === null) member.value.hasAgreement = response.otpStatus;
|
|
1165
|
+
if (response.otpStatus === true) {
|
|
1166
|
+
dataStore.panel.open = false;
|
|
1167
|
+
}
|
|
990
1168
|
}
|
|
1169
|
+
otpSending.value = false;
|
|
991
1170
|
};
|
|
992
1171
|
|
|
993
|
-
const
|
|
994
|
-
|
|
995
|
-
|
|
1172
|
+
const setDefaultValues = async () => {
|
|
1173
|
+
const setDefaults = dataStore.controls.setDefaults;
|
|
1174
|
+
if (setDefaults.sectorCode) {
|
|
1175
|
+
await setSectorCode();
|
|
1176
|
+
}
|
|
1177
|
+
if (setDefaults.percentage) {
|
|
1178
|
+
setPercentage();
|
|
996
1179
|
}
|
|
1180
|
+
};
|
|
1181
|
+
|
|
1182
|
+
const setSectorCode = async () => {
|
|
1183
|
+
if (member.value.id === 0 && route.query.id === '0') {
|
|
1184
|
+
const sectorList = await dataStore.getSectorCodeList();
|
|
1185
|
+
const defaultValue = sectorList.find(item => item.ids === '500003.9') as Value;
|
|
1186
|
+
member.value.economySectorCode = defaultValue ? defaultValue : new Value();
|
|
1187
|
+
}
|
|
1188
|
+
};
|
|
1189
|
+
|
|
1190
|
+
const setPercentage = () => {
|
|
1191
|
+
if (whichForm.value === formStore.beneficiaryFormKey && member.value.id === 0 && route.query.id === '0' && member.value.percentageOfPayoutAmount === null) {
|
|
1192
|
+
if (dataStore.members.beneficiaryApp.isMultiple) {
|
|
1193
|
+
const availablePercentage =
|
|
1194
|
+
100 -
|
|
1195
|
+
formStore.beneficiaryForm.reduce((sum: number, member: Member) => {
|
|
1196
|
+
return sum + Number(member.percentageOfPayoutAmount);
|
|
1197
|
+
}, 0);
|
|
1198
|
+
if (availablePercentage >= 0 && availablePercentage <= 100) member.value.percentageOfPayoutAmount = availablePercentage;
|
|
1199
|
+
} else {
|
|
1200
|
+
member.value.percentageOfPayoutAmount = 100;
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
};
|
|
1204
|
+
|
|
1205
|
+
const selectMember = async (index: number, update?: boolean) => {
|
|
1206
|
+
dataStore.panel.open = false;
|
|
1207
|
+
isButtonLoading.value = true;
|
|
1208
|
+
isChangingMember.value = true;
|
|
1209
|
+
//@ts-ignore
|
|
1210
|
+
await router.replace({ query: { ...route.query, i: index, id: getMember(route.query.tab, index).id, upd: update } });
|
|
1211
|
+
isChangingMember.value = false;
|
|
1212
|
+
isButtonLoading.value = false;
|
|
1213
|
+
};
|
|
1214
|
+
|
|
1215
|
+
const deleteMember = async (index: number) => {
|
|
1216
|
+
await memberStore.deleteMember(route.params.taskId as string, whichForm.value, index);
|
|
1217
|
+
const currentIndex = Number(whichIndex.value);
|
|
1218
|
+
if (index <= currentIndex) {
|
|
1219
|
+
const newIndex = ref<number>(currentIndex - 1 > 0 ? currentIndex - 1 : 0);
|
|
1220
|
+
await selectMember(newIndex.value, index === currentIndex ? true : undefined);
|
|
1221
|
+
}
|
|
1222
|
+
};
|
|
1223
|
+
|
|
1224
|
+
const onInit = async () => {
|
|
1225
|
+
// if (route.params.taskId === '0' || (route.params.taskId !== '0' && dataStore.isProcessEditable(formStore.applicationData.statusCode))) {
|
|
1226
|
+
// await dataStore.getSignedDocList(formStore.applicationData.processInstanceId);
|
|
1227
|
+
// }
|
|
997
1228
|
if (getOtpConditionByMember()) {
|
|
998
1229
|
await sendOtp(true);
|
|
999
1230
|
} else {
|
|
1000
1231
|
if (member.value.hasAgreement === null) member.value.hasAgreement = true;
|
|
1001
1232
|
}
|
|
1002
|
-
if (
|
|
1003
|
-
await
|
|
1004
|
-
}
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
query: { ...route.query, id: member.value.id },
|
|
1009
|
-
});
|
|
1010
|
-
}
|
|
1011
|
-
if (member.value.id) {
|
|
1012
|
-
const filteredDocuments: DocumentItem[] = dataStore.getFilesByIIN(member.value.iin!.replace(/-/g, '')) as DocumentItem[];
|
|
1013
|
-
if (filteredDocuments && filteredDocuments.length) memberDocument.value = filteredDocuments[0];
|
|
1233
|
+
if (!member.value.id) {
|
|
1234
|
+
await router.replace({ query: { ...route.query, id: 0 } });
|
|
1235
|
+
} else {
|
|
1236
|
+
if (route.query.id !== String(member.value.id)) await router.replace({ query: { ...route.query, id: member.value.id } });
|
|
1237
|
+
// const filteredDocuments: DocumentItem[] = dataStore.getFilesByIIN(member.value.iin!.replace(/-/g, '')) as DocumentItem[];
|
|
1238
|
+
// if (filteredDocuments && filteredDocuments.length) memberDocument.value = filteredDocuments[0];
|
|
1014
1239
|
}
|
|
1240
|
+
await setDefaultValues();
|
|
1015
1241
|
};
|
|
1016
1242
|
|
|
1017
1243
|
onMounted(async () => {
|
|
1018
1244
|
await onInit();
|
|
1019
1245
|
});
|
|
1020
1246
|
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1247
|
+
watch(
|
|
1248
|
+
() => sameAddress.value,
|
|
1249
|
+
() => {
|
|
1250
|
+
if (whichForm.value === formStore.beneficiaryFormKey) setAddressBeneficiary(Number(whichIndex.value), sameAddress.value);
|
|
1251
|
+
},
|
|
1252
|
+
);
|
|
1026
1253
|
|
|
1027
1254
|
watch(
|
|
1028
1255
|
() => member.value.percentageOfPayoutAmount,
|
|
1029
1256
|
val => {
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
if (percentage
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1257
|
+
if (whichForm.value === formStore.beneficiaryFormKey && !isDisabled.value) {
|
|
1258
|
+
const percentage = typeof val === 'string' ? Number(val) : val;
|
|
1259
|
+
if (typeof percentage === 'number') {
|
|
1260
|
+
if (memberSetting.value.isMultiple) {
|
|
1261
|
+
if (percentage < 0) {
|
|
1262
|
+
member.value.percentageOfPayoutAmount = 0;
|
|
1263
|
+
dataStore.showToaster('error', dataStore.t('toaster.incorrectInput'), 1000);
|
|
1264
|
+
} else if (percentage > 100) {
|
|
1265
|
+
member.value.percentageOfPayoutAmount = 100;
|
|
1266
|
+
dataStore.showToaster('error', dataStore.t('toaster.incorrectInput'), 1000);
|
|
1267
|
+
}
|
|
1268
|
+
} else {
|
|
1269
|
+
if (member.value.percentageOfPayoutAmount !== 100) {
|
|
1270
|
+
member.value.percentageOfPayoutAmount = 100;
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1038
1273
|
}
|
|
1039
1274
|
}
|
|
1040
1275
|
},
|
|
@@ -1050,14 +1285,21 @@ export default {
|
|
|
1050
1285
|
},
|
|
1051
1286
|
);
|
|
1052
1287
|
|
|
1053
|
-
|
|
1054
|
-
(
|
|
1055
|
-
|
|
1056
|
-
if (
|
|
1057
|
-
|
|
1288
|
+
const onIinInput = () => {
|
|
1289
|
+
if (!!member.value.iin && member.value.iin.length === useMask().iin.length && memberSetting.value.isMultiple === true) {
|
|
1290
|
+
const alreadyInStatement = formStore[whichForm.value as MultipleMember].findIndex((i: Member) => i.iin === member.value.iin);
|
|
1291
|
+
if (alreadyInStatement !== -1 && alreadyInStatement !== Number(whichIndex.value)) {
|
|
1292
|
+
dataStore.showToaster('error', dataStore.t('toaster.hasAlreadyMember'), 3000);
|
|
1293
|
+
member.value.iin = null;
|
|
1058
1294
|
}
|
|
1059
|
-
}
|
|
1060
|
-
|
|
1295
|
+
}
|
|
1296
|
+
};
|
|
1297
|
+
|
|
1298
|
+
const onOtpCodeInput = async () => {
|
|
1299
|
+
if (member.value.otpCode && member.value.otpCode.length === useMask().otp.length) {
|
|
1300
|
+
await checkOtp();
|
|
1301
|
+
}
|
|
1302
|
+
};
|
|
1061
1303
|
|
|
1062
1304
|
watch(
|
|
1063
1305
|
() => dataStore.panel.open,
|
|
@@ -1066,6 +1308,7 @@ export default {
|
|
|
1066
1308
|
isPanelOpen.value = false;
|
|
1067
1309
|
isDocumentOpen.value = false;
|
|
1068
1310
|
isSearchOpen.value = false;
|
|
1311
|
+
isOtpPanelOpen.value = false;
|
|
1069
1312
|
dataStore.panelAction = null;
|
|
1070
1313
|
}
|
|
1071
1314
|
},
|
|
@@ -1087,10 +1330,12 @@ export default {
|
|
|
1087
1330
|
isPanelOpen,
|
|
1088
1331
|
isSearchOpen,
|
|
1089
1332
|
isDocumentOpen,
|
|
1333
|
+
isOtpPanelOpen,
|
|
1090
1334
|
isPanelLoading,
|
|
1091
1335
|
isButtonLoading,
|
|
1092
1336
|
isSubmittingForm,
|
|
1093
1337
|
documentLoading,
|
|
1338
|
+
otpSending,
|
|
1094
1339
|
panelValue,
|
|
1095
1340
|
panelList,
|
|
1096
1341
|
searchQuery,
|
|
@@ -1098,10 +1343,12 @@ export default {
|
|
|
1098
1343
|
memberDocument,
|
|
1099
1344
|
familyDialog,
|
|
1100
1345
|
selectedFamilyMember,
|
|
1346
|
+
sameAddress,
|
|
1101
1347
|
|
|
1102
1348
|
// Computed
|
|
1103
1349
|
whichForm,
|
|
1104
1350
|
whichIndex,
|
|
1351
|
+
memberSetting,
|
|
1105
1352
|
otpCondition,
|
|
1106
1353
|
hasOtp,
|
|
1107
1354
|
isDisabled,
|
|
@@ -1112,9 +1359,16 @@ export default {
|
|
|
1112
1359
|
hasGBDFL,
|
|
1113
1360
|
hasInsis,
|
|
1114
1361
|
hasGKB,
|
|
1362
|
+
hasFamilyStatus,
|
|
1363
|
+
hasInsurancePay,
|
|
1364
|
+
hasSignOfIPDL,
|
|
1365
|
+
hasSameAddressToggle,
|
|
1366
|
+
|
|
1115
1367
|
// Rules
|
|
1116
1368
|
ageRule,
|
|
1117
1369
|
phoneRule,
|
|
1370
|
+
residencyRule,
|
|
1371
|
+
birthDateRule,
|
|
1118
1372
|
|
|
1119
1373
|
// Functions
|
|
1120
1374
|
searchMember,
|
|
@@ -1132,6 +1386,10 @@ export default {
|
|
|
1132
1386
|
selectFamilyMember,
|
|
1133
1387
|
closeFamilyDialog,
|
|
1134
1388
|
scrollForm,
|
|
1389
|
+
onIinInput,
|
|
1390
|
+
onOtpCodeInput,
|
|
1391
|
+
deleteMember,
|
|
1392
|
+
selectMember,
|
|
1135
1393
|
};
|
|
1136
1394
|
},
|
|
1137
1395
|
};
|