hl-core 0.0.8-beta.9 → 0.0.9-beta.1
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 +100 -34
- package/api/interceptors.ts +17 -13
- package/components/Button/Btn.vue +1 -1
- package/components/Button/ScrollButtons.vue +2 -2
- package/components/Complex/Page.vue +1 -1
- package/components/Dialog/Dialog.vue +9 -39
- package/components/Dialog/FamilyDialog.vue +7 -4
- package/components/Form/FormBlock.vue +51 -28
- package/components/Form/FormSection.vue +4 -1
- package/components/Form/FormToggle.vue +2 -3
- package/components/Form/ManagerAttachment.vue +21 -20
- package/components/Form/ProductConditionsBlock.vue +60 -10
- package/components/Input/Datepicker.vue +6 -2
- package/components/Input/FileInput.vue +2 -2
- package/components/Input/FormInput.vue +29 -7
- package/components/Input/PanelInput.vue +7 -2
- package/components/Input/RoundedInput.vue +2 -2
- package/components/Input/RoundedSelect.vue +137 -0
- package/components/Layout/Drawer.vue +3 -2
- package/components/Layout/Header.vue +40 -4
- package/components/Layout/Loader.vue +1 -1
- package/components/Layout/SettingsPanel.vue +51 -13
- package/components/Menu/MenuHover.vue +30 -0
- package/components/Menu/MenuNav.vue +29 -13
- package/components/Menu/MenuNavItem.vue +6 -3
- package/components/Pages/Anketa.vue +49 -31
- package/components/Pages/Auth.vue +139 -46
- package/components/Pages/Documents.vue +6 -6
- package/components/Pages/InvoiceInfo.vue +30 -0
- package/components/Pages/MemberForm.vue +503 -343
- package/components/Pages/ProductAgreement.vue +4 -2
- package/components/Pages/ProductConditions.vue +494 -95
- package/components/Panel/PanelHandler.vue +91 -20
- package/components/Panel/PanelSelectItem.vue +1 -1
- package/components/Utilities/Chip.vue +27 -0
- package/components/Utilities/JsonViewer.vue +27 -0
- package/composables/axios.ts +1 -1
- package/composables/classes.ts +165 -81
- package/composables/constants.ts +25 -52
- package/composables/index.ts +80 -2
- package/composables/styles.ts +8 -3
- package/configs/i18n.ts +2 -4
- package/layouts/default.vue +6 -6
- package/locales/kz.json +532 -346
- package/locales/ru.json +210 -22
- package/nuxt.config.ts +1 -1
- package/package.json +38 -12
- package/pages/500.vue +2 -2
- package/pages/Token.vue +51 -0
- package/plugins/helperFunctionsPlugins.ts +2 -1
- package/plugins/vuetifyPlugin.ts +3 -1
- package/store/{data.store.js → data.store.ts} +1116 -752
- package/store/form.store.ts +1 -1
- package/store/member.store.ts +94 -72
- package/store/{rules.js → rules.ts} +54 -26
- package/types/enum.ts +83 -0
- package/types/env.d.ts +10 -0
- package/types/index.ts +197 -7
- package/locales/en.json +0 -399
package/store/form.store.ts
CHANGED
package/store/member.store.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { useFormStore } from './form.store';
|
|
|
4
4
|
import { ErrorHandler } from '../composables';
|
|
5
5
|
import { AxiosError } from 'axios';
|
|
6
6
|
import { Member } from '../composables/classes';
|
|
7
|
+
import { MemberAppCodes, MemberCodes, StoreMembers } from '../types/enum';
|
|
7
8
|
|
|
8
9
|
export const useMemberStore = defineStore('members', {
|
|
9
10
|
state: () => ({
|
|
@@ -12,7 +13,8 @@ export const useMemberStore = defineStore('members', {
|
|
|
12
13
|
formStore: useFormStore(),
|
|
13
14
|
}),
|
|
14
15
|
actions: {
|
|
15
|
-
isStatementEditible(whichForm:
|
|
16
|
+
isStatementEditible(whichForm: keyof typeof StoreMembers | 'productConditionsForm', showToaster: boolean = false) {
|
|
17
|
+
if (!this.validateInitiator(false)) return false;
|
|
16
18
|
if (this.formStore.isDisabled[whichForm as keyof typeof this.formStore.isDisabled] === true) {
|
|
17
19
|
if (showToaster) this.dataStore.showToaster('error', this.dataStore.t('toaster.viewErrorText'), 2000);
|
|
18
20
|
return false;
|
|
@@ -26,17 +28,31 @@ export const useMemberStore = defineStore('members', {
|
|
|
26
28
|
}
|
|
27
29
|
return true;
|
|
28
30
|
},
|
|
29
|
-
hasMemberData(whichForm:
|
|
30
|
-
if (!this.validateInitiator(false)) return false;
|
|
31
|
+
hasMemberData(whichForm: keyof typeof StoreMembers, whichIndex?: number, key: keyof typeof this.formStore.policyholderForm = 'id', emptyValue: any = 0) {
|
|
31
32
|
if (!this.isStatementEditible(whichForm)) return false;
|
|
32
|
-
return
|
|
33
|
+
return whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm'
|
|
34
|
+
? this.formStore[whichForm][whichIndex!][key] != emptyValue
|
|
35
|
+
: this.formStore[whichForm][key] != emptyValue;
|
|
33
36
|
},
|
|
34
|
-
|
|
37
|
+
canMemberCleared(whichForm: keyof typeof StoreMembers, whichIndex?: number) {
|
|
35
38
|
if (!whichForm) return false;
|
|
36
39
|
if (!this.isStatementEditible(whichForm)) return false;
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
if (whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm') {
|
|
41
|
+
return this.formStore[whichForm][whichIndex!].id === 0 && (!!this.formStore[whichForm][whichIndex!].iin || !!this.formStore[whichForm][whichIndex!].phoneNumber);
|
|
42
|
+
} else {
|
|
43
|
+
return this.formStore[whichForm].id === 0 && (!!this.formStore[whichForm].iin || !!this.formStore[whichForm].phoneNumber);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
canMemberDeleted(whichForm: keyof typeof StoreMembers, whichIndex?: number) {
|
|
47
|
+
if (!whichForm) return false;
|
|
48
|
+
if (!this.isStatementEditible(whichForm)) return false;
|
|
49
|
+
if (typeof whichIndex === 'number') {
|
|
50
|
+
if (whichIndex > 0) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
if (whichIndex === 0) {
|
|
54
|
+
return this.hasMemberData(whichForm, whichIndex);
|
|
55
|
+
}
|
|
40
56
|
}
|
|
41
57
|
if (this.dataStore.isTask() && this.dataStore.isProcessEditable(this.formStore.applicationData.statusCode)) {
|
|
42
58
|
if (whichForm !== this.formStore.policyholderFormKey) {
|
|
@@ -45,7 +61,7 @@ export const useMemberStore = defineStore('members', {
|
|
|
45
61
|
}
|
|
46
62
|
return false;
|
|
47
63
|
},
|
|
48
|
-
getMemberFromStore(whichForm:
|
|
64
|
+
getMemberFromStore(whichForm: keyof typeof StoreMembers, whichIndex?: number): Member | null {
|
|
49
65
|
switch (whichForm) {
|
|
50
66
|
case this.formStore.policyholderFormKey:
|
|
51
67
|
return this.formStore.policyholderForm;
|
|
@@ -61,8 +77,8 @@ export const useMemberStore = defineStore('members', {
|
|
|
61
77
|
return null;
|
|
62
78
|
}
|
|
63
79
|
},
|
|
64
|
-
getMemberFromApplication(whichForm:
|
|
65
|
-
const id =
|
|
80
|
+
getMemberFromApplication(whichForm: keyof typeof StoreMembers, whichIndex?: number) {
|
|
81
|
+
const id = whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm' ? this.formStore[whichForm][whichIndex!].id : this.formStore[whichForm].id;
|
|
66
82
|
switch (whichForm) {
|
|
67
83
|
case this.formStore.policyholderFormKey:
|
|
68
84
|
return this.formStore.applicationData.clientApp;
|
|
@@ -82,72 +98,53 @@ export const useMemberStore = defineStore('members', {
|
|
|
82
98
|
}
|
|
83
99
|
}
|
|
84
100
|
},
|
|
85
|
-
|
|
86
|
-
if (!whichForm) return false;
|
|
101
|
+
getMemberCode(whichForm: keyof typeof StoreMembers) {
|
|
87
102
|
switch (whichForm) {
|
|
88
103
|
case this.formStore.policyholderFormKey:
|
|
89
|
-
return
|
|
104
|
+
return MemberCodes.Client;
|
|
90
105
|
case this.formStore.insuredFormKey:
|
|
91
|
-
return
|
|
106
|
+
return MemberCodes.Insured;
|
|
92
107
|
case this.formStore.beneficiaryFormKey:
|
|
93
|
-
return
|
|
108
|
+
return MemberCodes.Beneficiary;
|
|
94
109
|
case this.formStore.beneficialOwnerFormKey:
|
|
95
|
-
return
|
|
110
|
+
return MemberCodes.BeneficialOwner;
|
|
96
111
|
case this.formStore.policyholdersRepresentativeFormKey:
|
|
97
|
-
return
|
|
98
|
-
default:
|
|
99
|
-
return false;
|
|
112
|
+
return MemberCodes.Spokesman;
|
|
100
113
|
}
|
|
101
114
|
},
|
|
102
|
-
|
|
115
|
+
getMemberApplicationCode(whichForm: keyof typeof StoreMembers) {
|
|
103
116
|
switch (whichForm) {
|
|
104
117
|
case this.formStore.policyholderFormKey:
|
|
105
|
-
return
|
|
118
|
+
return MemberAppCodes.clientApp;
|
|
106
119
|
case this.formStore.insuredFormKey:
|
|
107
|
-
return
|
|
120
|
+
return MemberAppCodes.insuredApp;
|
|
108
121
|
case this.formStore.beneficiaryFormKey:
|
|
109
|
-
return
|
|
122
|
+
return MemberAppCodes.beneficiaryApp;
|
|
110
123
|
case this.formStore.beneficialOwnerFormKey:
|
|
111
|
-
return
|
|
124
|
+
return MemberAppCodes.beneficialOwnerApp;
|
|
112
125
|
case this.formStore.policyholdersRepresentativeFormKey:
|
|
113
|
-
return
|
|
126
|
+
return MemberAppCodes.spokesmanApp;
|
|
114
127
|
}
|
|
115
128
|
},
|
|
116
|
-
|
|
117
|
-
switch (whichForm) {
|
|
118
|
-
case this.formStore.policyholderFormKey:
|
|
119
|
-
return 'clientApp';
|
|
120
|
-
case this.formStore.insuredFormKey:
|
|
121
|
-
return 'insuredApp';
|
|
122
|
-
case this.formStore.beneficiaryFormKey:
|
|
123
|
-
return 'beneficiaryApp';
|
|
124
|
-
case this.formStore.beneficialOwnerFormKey:
|
|
125
|
-
return 'beneficialOwnerApp';
|
|
126
|
-
case this.formStore.policyholdersRepresentativeFormKey:
|
|
127
|
-
return 'spokesmanApp';
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
clearMember(whichForm: MemberKeys, whichIndex?: number) {
|
|
129
|
+
clearMember(whichForm: keyof typeof StoreMembers, whichIndex?: number) {
|
|
131
130
|
if (!whichForm) return false;
|
|
132
131
|
if (!this.isStatementEditible(whichForm)) return false;
|
|
133
|
-
if (!this.validateInitiator()) return false;
|
|
134
132
|
if (whichForm === this.formStore.policyholderFormKey || whichForm === this.formStore.policyholdersRepresentativeFormKey) {
|
|
135
133
|
//@ts-ignore
|
|
136
|
-
this.formStore[whichForm] =
|
|
134
|
+
this.formStore[whichForm] = new Member();
|
|
137
135
|
}
|
|
138
|
-
if (
|
|
136
|
+
if (whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm') {
|
|
139
137
|
if (this.formStore[whichForm].length === 1) {
|
|
140
|
-
this.formStore[whichForm][whichIndex] =
|
|
138
|
+
this.formStore[whichForm][whichIndex!] = new Member();
|
|
141
139
|
} else {
|
|
142
|
-
this.formStore[whichForm].splice(whichIndex
|
|
140
|
+
this.formStore[whichForm].splice(whichIndex!, 1);
|
|
143
141
|
}
|
|
144
142
|
}
|
|
145
143
|
return true;
|
|
146
144
|
},
|
|
147
|
-
async deleteMember(taskId: string, whichForm:
|
|
145
|
+
async deleteMember(taskId: string, whichForm: keyof typeof StoreMembers, whichIndex?: number, refetch: boolean = true) {
|
|
148
146
|
if (!whichForm) return false;
|
|
149
147
|
if (!this.isStatementEditible(whichForm)) return false;
|
|
150
|
-
if (!this.validateInitiator()) return false;
|
|
151
148
|
try {
|
|
152
149
|
const memberCode = this.getMemberCode(whichForm);
|
|
153
150
|
const memberData = this.getMemberFromApplication(whichForm, whichIndex);
|
|
@@ -157,26 +154,33 @@ export const useMemberStore = defineStore('members', {
|
|
|
157
154
|
await this.dataStore.api.deleteMember(memberCode, this.formStore.applicationData.processInstanceId);
|
|
158
155
|
}
|
|
159
156
|
} else {
|
|
160
|
-
if (memberData)
|
|
157
|
+
if (memberData) {
|
|
158
|
+
if (whichForm === this.formStore.insuredFormKey) {
|
|
159
|
+
await this.dataStore.deleteInsuredLogic();
|
|
160
|
+
}
|
|
161
|
+
await this.dataStore.api.deleteMember(memberCode, memberData.id as number);
|
|
162
|
+
}
|
|
161
163
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
+
const cleared = this.clearMember(whichForm, whichIndex);
|
|
165
|
+
if (memberData && refetch) await this.dataStore.getApplicationData(taskId, true, true, true, true);
|
|
166
|
+
return cleared;
|
|
164
167
|
} catch (err) {
|
|
165
168
|
console.log(err);
|
|
166
169
|
return ErrorHandler(err);
|
|
167
170
|
}
|
|
168
171
|
},
|
|
169
|
-
async transferPolicyholder(to:
|
|
172
|
+
async transferPolicyholder(to: MultipleMember) {
|
|
170
173
|
if (!to) return false;
|
|
171
174
|
if (!this.validateInitiator()) return false;
|
|
172
175
|
const fromMember = this.formStore.policyholderForm;
|
|
173
176
|
const successTranser = ref<boolean>(false);
|
|
174
177
|
const toIndex = ref<number | null>(null);
|
|
175
178
|
const taskId = useRoute().params.taskId as string;
|
|
179
|
+
const deletedBefore = ref<boolean>(false);
|
|
176
180
|
|
|
177
181
|
if (this.dataStore.members[this.getMemberApplicationCode(to)!].isMultiple === false) {
|
|
178
182
|
if (this.formStore[to][0].id !== 0 && this.formStore[to][0].iin !== fromMember.iin) {
|
|
179
|
-
await this.deleteMember(taskId, to, 0, false);
|
|
183
|
+
deletedBefore.value = await this.deleteMember(taskId, to, 0, false);
|
|
180
184
|
}
|
|
181
185
|
this.formStore[to][0] = fromMember;
|
|
182
186
|
toIndex.value = 0;
|
|
@@ -202,11 +206,17 @@ export const useMemberStore = defineStore('members', {
|
|
|
202
206
|
|
|
203
207
|
if (successTranser.value === true) {
|
|
204
208
|
if (toIndex.value !== null && taskId !== '0' && this.formStore.applicationData.processInstanceId !== 0) {
|
|
205
|
-
|
|
209
|
+
if (
|
|
210
|
+
typeof this.formStore[to][toIndex.value].id !== 'number' ||
|
|
211
|
+
(typeof this.formStore[to][toIndex.value].id === 'number' && Number(this.formStore[to][toIndex.value].id) > 0 === false)
|
|
212
|
+
) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
const hasSaved = await this.dataStore.saveMember(this.formStore[to][toIndex.value], this.getMemberCode(to)!, this.getMemberFromApplication(to, toIndex.value));
|
|
206
216
|
if (hasSaved) {
|
|
207
|
-
await this.dataStore.getApplicationData(taskId, false, true, true,
|
|
217
|
+
await this.dataStore.getApplicationData(taskId, false, true, true, deletedBefore.value);
|
|
218
|
+
this.dataStore.showToaster('warning', this.dataStore.t('toaster.formFieldEmptyWarning'));
|
|
208
219
|
this.dataStore.showToaster('success', this.dataStore.t('toaster.successSaved'));
|
|
209
|
-
this.dataStore.showToaster('warning', this.dataStore.t('toaster.formFieldEmptyWarning'), 3000);
|
|
210
220
|
return true;
|
|
211
221
|
} else {
|
|
212
222
|
this.dataStore.showToaster('error', this.dataStore.t('error.memberSave'));
|
|
@@ -220,7 +230,7 @@ export const useMemberStore = defineStore('members', {
|
|
|
220
230
|
return false;
|
|
221
231
|
}
|
|
222
232
|
},
|
|
223
|
-
async retransferPolicyholder(from:
|
|
233
|
+
async retransferPolicyholder(from: MultipleMember) {
|
|
224
234
|
if (!from) return false;
|
|
225
235
|
if (!this.validateInitiator()) return false;
|
|
226
236
|
const client = this.formStore.policyholderForm;
|
|
@@ -238,14 +248,23 @@ export const useMemberStore = defineStore('members', {
|
|
|
238
248
|
}
|
|
239
249
|
} else {
|
|
240
250
|
// @ts-ignore
|
|
241
|
-
this.formStore[from] = [
|
|
251
|
+
this.formStore[from] = [new Member()];
|
|
242
252
|
}
|
|
243
253
|
},
|
|
244
|
-
addMember(whichForm:
|
|
254
|
+
addMember(whichForm: keyof typeof StoreMembers) {
|
|
245
255
|
if (!whichForm) return false;
|
|
246
256
|
if (!this.isStatementEditible(whichForm)) return false;
|
|
247
|
-
if (
|
|
248
|
-
this.
|
|
257
|
+
if (whichForm === 'policyholderForm' || whichForm === 'policyholdersRepresentativeForm') return false;
|
|
258
|
+
const limit = this.dataStore.members[this.getMemberApplicationCode(whichForm)!].limit;
|
|
259
|
+
if (typeof limit === 'number') {
|
|
260
|
+
if (this.formStore[whichForm].length < limit) {
|
|
261
|
+
this.formStore[whichForm].push(new Member());
|
|
262
|
+
} else {
|
|
263
|
+
this.dataStore.showToaster('error', this.dataStore.t('toaster.membersLimit', { text: limit }));
|
|
264
|
+
}
|
|
265
|
+
} else {
|
|
266
|
+
this.formStore[whichForm].push(new Member());
|
|
267
|
+
}
|
|
249
268
|
},
|
|
250
269
|
async getOtpStatus(iin: string, phone: string, processInstanceId: string | number | null = null) {
|
|
251
270
|
try {
|
|
@@ -280,16 +299,22 @@ export const useMemberStore = defineStore('members', {
|
|
|
280
299
|
};
|
|
281
300
|
const otpResponse = await this.dataStore.api.checkOtp(otpData);
|
|
282
301
|
if (otpResponse !== null) {
|
|
283
|
-
if ('errMessage' in otpResponse && otpResponse.errMessage
|
|
302
|
+
if ('errMessage' in otpResponse && otpResponse.errMessage) {
|
|
284
303
|
this.dataStore.showToaster('error', otpResponse.errMessage, 3000);
|
|
285
304
|
return false;
|
|
286
305
|
}
|
|
287
|
-
if ('status' in otpResponse && !!otpResponse.status) {
|
|
306
|
+
if ('status' in otpResponse && !!otpResponse.status && otpResponse.statusName) {
|
|
288
307
|
// TODO Доработать и менять значение hasAgreement.value => true
|
|
289
308
|
this.dataStore.showToaster(otpResponse.status !== 2 ? 'error' : 'success', otpResponse.statusName, 3000);
|
|
290
309
|
if (otpResponse.status === 2) {
|
|
310
|
+
member.otpCode = null;
|
|
291
311
|
return true;
|
|
292
312
|
}
|
|
313
|
+
if (otpResponse.status === 4 || otpResponse.status === 5) {
|
|
314
|
+
member.otpCode = null;
|
|
315
|
+
member.otpTokenId = null;
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
293
318
|
}
|
|
294
319
|
}
|
|
295
320
|
return false;
|
|
@@ -303,7 +328,7 @@ export const useMemberStore = defineStore('members', {
|
|
|
303
328
|
async sendOtp(member: Member, processInstanceId: string | number | null = null, onInit: boolean = false) {
|
|
304
329
|
if (!this.validateInitiator()) return null;
|
|
305
330
|
this.dataStore.isLoading = true;
|
|
306
|
-
let otpStatus: boolean =
|
|
331
|
+
let otpStatus: boolean | null = null;
|
|
307
332
|
let otpResponse: SendOtpResponse = {};
|
|
308
333
|
try {
|
|
309
334
|
if (member.iin && member.phoneNumber && member.iin.length === useMask().iin.length && member.phoneNumber.length === useMask().phone.length) {
|
|
@@ -329,27 +354,24 @@ export const useMemberStore = defineStore('members', {
|
|
|
329
354
|
);
|
|
330
355
|
this.dataStore.isLoading = false;
|
|
331
356
|
if (!!otpResponse) {
|
|
332
|
-
if ('errMessage' in otpResponse && otpResponse.errMessage
|
|
357
|
+
if ('errMessage' in otpResponse && otpResponse.errMessage) {
|
|
333
358
|
this.dataStore.showToaster('error', otpResponse.errMessage, 3000);
|
|
334
|
-
return { otpStatus };
|
|
359
|
+
return { otpStatus: false };
|
|
335
360
|
}
|
|
336
361
|
if ('result' in otpResponse && otpResponse.result === null) {
|
|
337
362
|
if ('statusName' in otpResponse && !!otpResponse.statusName) {
|
|
338
363
|
this.dataStore.showToaster('error', otpResponse.statusName, 3000);
|
|
339
|
-
return { otpStatus };
|
|
364
|
+
return { otpStatus: false };
|
|
340
365
|
}
|
|
341
366
|
if ('status' in otpResponse && !!otpResponse.status) {
|
|
342
|
-
this.dataStore.showToaster('error', otpResponse.status, 3000);
|
|
343
|
-
return { otpStatus };
|
|
367
|
+
this.dataStore.showToaster('error', String(otpResponse.status), 3000);
|
|
368
|
+
return { otpStatus: false };
|
|
344
369
|
}
|
|
345
370
|
}
|
|
346
371
|
if ('tokenId' in otpResponse && otpResponse.tokenId) {
|
|
347
372
|
member.otpTokenId = otpResponse.tokenId;
|
|
348
373
|
this.dataStore.showToaster('success', this.dataStore.t('toaster.successOtp'), 3000);
|
|
349
374
|
}
|
|
350
|
-
} else {
|
|
351
|
-
this.dataStore.showToaster('error', this.dataStore.t('error.noOtpResponse'), 3000);
|
|
352
|
-
return { otpStatus };
|
|
353
375
|
}
|
|
354
376
|
}
|
|
355
377
|
} else {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { i18n } from '
|
|
1
|
+
import { i18n } from '../configs/i18n';
|
|
2
2
|
import { formatDate } from '../composables';
|
|
3
3
|
|
|
4
4
|
const t = i18n.t;
|
|
5
5
|
|
|
6
6
|
export const rules = {
|
|
7
|
-
recalculationMultiply: [v => (v !== null && v !== '' && v >= 100) || t('toaster.valueShouldBeHigher', { text: '100' })],
|
|
8
|
-
recalculationAdditive: [v => (v !== null && v !== '' && v <= 100 && v >= 0) || t('toaster.valueShouldBeBetween', { floor: '0', ceil: '100' })],
|
|
9
|
-
required: [v => !!v || t('rules.required')],
|
|
7
|
+
recalculationMultiply: [(v: any) => (v !== null && v !== '' && v >= 100) || t('toaster.valueShouldBeHigher', { text: '100' })],
|
|
8
|
+
recalculationAdditive: [(v: any) => (v !== null && v !== '' && v <= 100 && v >= 0) || t('toaster.valueShouldBeBetween', { floor: '0', ceil: '100' })],
|
|
9
|
+
required: [(v: any) => !!v || t('rules.required')],
|
|
10
10
|
objectRequired: [
|
|
11
|
-
v => {
|
|
11
|
+
(v: any) => {
|
|
12
12
|
if (!!v && 'nameRu' in v && v.nameRu != null) {
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
@@ -16,7 +16,7 @@ export const rules = {
|
|
|
16
16
|
},
|
|
17
17
|
],
|
|
18
18
|
agentDataRequired: [
|
|
19
|
-
v => {
|
|
19
|
+
(v: any) => {
|
|
20
20
|
if (!!v && 'fullName' in v && v.fullName != null) {
|
|
21
21
|
return true;
|
|
22
22
|
}
|
|
@@ -24,7 +24,7 @@ export const rules = {
|
|
|
24
24
|
},
|
|
25
25
|
],
|
|
26
26
|
noResident: [
|
|
27
|
-
v => {
|
|
27
|
+
(v: any) => {
|
|
28
28
|
if (!!v && 'nameRu' in v && v.nameRu === 'Нерезидент') {
|
|
29
29
|
return t('rules.noResident');
|
|
30
30
|
}
|
|
@@ -34,9 +34,17 @@ export const rules = {
|
|
|
34
34
|
return t('rules.required');
|
|
35
35
|
},
|
|
36
36
|
],
|
|
37
|
-
cyrillic: [v => v === null || /^[\u0400-\u04FF ]+$/.test(v) || t('rules.cyrillic')],
|
|
37
|
+
cyrillic: [(v: any) => v === null || /^[\u0400-\u04FF ]+$/.test(v) || t('rules.cyrillic')],
|
|
38
|
+
cyrillicNonRequired: [
|
|
39
|
+
(v: any) => {
|
|
40
|
+
if (!v) return true;
|
|
41
|
+
else {
|
|
42
|
+
return /^[\u0400-\u04FF ]+$/.test(v) || t('rules.cyrillic');
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
],
|
|
38
46
|
email: [
|
|
39
|
-
v => {
|
|
47
|
+
(v: any) => {
|
|
40
48
|
if (v === '' || v === null) {
|
|
41
49
|
return true;
|
|
42
50
|
} else {
|
|
@@ -52,11 +60,11 @@ export const rules = {
|
|
|
52
60
|
}
|
|
53
61
|
},
|
|
54
62
|
],
|
|
55
|
-
numbers: [v => /^[0-9]+$/.test(v) || t('rules.numbers')],
|
|
56
|
-
numbersSymbols: [v => /^([0-9])|(\W|_)+$/.test(v) || t('rules.numbersSymbols')],
|
|
57
|
-
ageExceeds: [v => v < 50 || t('rules.ageExceeds')],
|
|
63
|
+
numbers: [(v: any) => /^[0-9]+$/.test(v) || t('rules.numbers')],
|
|
64
|
+
numbersSymbols: [(v: any) => /^([0-9])|(\W|_)+$/.test(v) || t('rules.numbersSymbols')],
|
|
65
|
+
ageExceeds: [(v: any) => v < 50 || t('rules.ageExceeds')],
|
|
58
66
|
sums: [
|
|
59
|
-
v => {
|
|
67
|
+
(v: any) => {
|
|
60
68
|
let str = v.replace(/\s/g, '');
|
|
61
69
|
if (/^[0-9]+$/.test(str)) {
|
|
62
70
|
return true;
|
|
@@ -65,16 +73,16 @@ export const rules = {
|
|
|
65
73
|
},
|
|
66
74
|
],
|
|
67
75
|
iinRight: [
|
|
68
|
-
v => {
|
|
76
|
+
(v: any) => {
|
|
69
77
|
if (v.length !== useMask().iin.length) {
|
|
70
78
|
return t('rules.iinRight');
|
|
71
79
|
}
|
|
72
80
|
return true;
|
|
73
81
|
},
|
|
74
82
|
],
|
|
75
|
-
onlySymbols: [v => !/^\d+$/.test(v) || t('rules.onlySymbols')],
|
|
83
|
+
onlySymbols: [(v: any) => !/^\d+$/.test(v) || t('rules.onlySymbols')],
|
|
76
84
|
phoneFormat: [
|
|
77
|
-
v => {
|
|
85
|
+
(v: any) => {
|
|
78
86
|
if (v === null || v == '') {
|
|
79
87
|
return true;
|
|
80
88
|
}
|
|
@@ -86,7 +94,7 @@ export const rules = {
|
|
|
86
94
|
},
|
|
87
95
|
],
|
|
88
96
|
date: [
|
|
89
|
-
v => {
|
|
97
|
+
(v: any) => {
|
|
90
98
|
if (v === null || v == '') return true;
|
|
91
99
|
if (/^(0[1-9]|1[0-9]|2[0-9]|3[0-1])(-|\.)(0[1-9]|1[0-2])(-|\.)(19[0-9]{2}|20[0-9][0-9])$/.test(v)) {
|
|
92
100
|
return true;
|
|
@@ -95,10 +103,12 @@ export const rules = {
|
|
|
95
103
|
}
|
|
96
104
|
},
|
|
97
105
|
],
|
|
98
|
-
age: [v => /^\d+$/.test(v) || t('rules.age')],
|
|
106
|
+
age: [(v: any) => /^\d+$/.test(v) || t('rules.age')],
|
|
107
|
+
age18: [(v: any) => v >= 18 || t('rules.age18')],
|
|
108
|
+
age18ByDate: [(v: any) => Math.abs(new Date(Date.now() - new Date(formatDate(v)!).getTime()).getUTCFullYear() - 1970) >= 18 || t('rules.age18')],
|
|
99
109
|
birthDate: [
|
|
100
|
-
v => {
|
|
101
|
-
if (new Date(formatDate(v)) > new Date(Date.now())) return t('rules.exceedDate');
|
|
110
|
+
(v: any) => {
|
|
111
|
+
if (new Date(formatDate(v)!) > new Date(Date.now())) return t('rules.exceedDate');
|
|
102
112
|
if (/^(0[1-9]|1[0-9]|2[0-9]|3[0-1])(-|\.)(0[1-9]|1[0-2])(-|\.)(19[0-9]{2}|20[0-9][0-9])$/.test(v)) {
|
|
103
113
|
return true;
|
|
104
114
|
} else {
|
|
@@ -107,7 +117,7 @@ export const rules = {
|
|
|
107
117
|
},
|
|
108
118
|
],
|
|
109
119
|
coverPeriod: [
|
|
110
|
-
v => {
|
|
120
|
+
(v: any) => {
|
|
111
121
|
if (v !== null) {
|
|
112
122
|
if (v < 5) {
|
|
113
123
|
return t('rules.coverPeriod');
|
|
@@ -118,8 +128,20 @@ export const rules = {
|
|
|
118
128
|
}
|
|
119
129
|
},
|
|
120
130
|
],
|
|
131
|
+
coverPeriodFrom2to20: [
|
|
132
|
+
(v: any) => {
|
|
133
|
+
if (v !== null) {
|
|
134
|
+
if (v < 2 || v > 20) {
|
|
135
|
+
return t('productConditionsForm.coverPeriodFrom2to20');
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
} else {
|
|
139
|
+
return t('productConditionsForm.coverPeriodFrom2to20');
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
],
|
|
121
143
|
coverPeriodFrom3to20: [
|
|
122
|
-
v => {
|
|
144
|
+
(v: any) => {
|
|
123
145
|
if (v !== null) {
|
|
124
146
|
if (v < 3 || v > 20) {
|
|
125
147
|
return t('productConditionsForm.coverPeriodFrom3to20');
|
|
@@ -131,7 +153,7 @@ export const rules = {
|
|
|
131
153
|
},
|
|
132
154
|
],
|
|
133
155
|
requestedSumInsuredMycar: [
|
|
134
|
-
v => {
|
|
156
|
+
(v: any) => {
|
|
135
157
|
if (v !== null) {
|
|
136
158
|
if (v.replace(/\s/g, '') > 60000000) {
|
|
137
159
|
return t('rules.requestedSumInsuredMycar');
|
|
@@ -141,7 +163,7 @@ export const rules = {
|
|
|
141
163
|
},
|
|
142
164
|
],
|
|
143
165
|
ageMycar: [
|
|
144
|
-
v => {
|
|
166
|
+
(v: any) => {
|
|
145
167
|
if (v !== null) {
|
|
146
168
|
let n = Number(v);
|
|
147
169
|
if (n <= 21 || n >= 65) {
|
|
@@ -151,6 +173,12 @@ export const rules = {
|
|
|
151
173
|
}
|
|
152
174
|
},
|
|
153
175
|
],
|
|
154
|
-
policyholderAgeLimit: [v => v >= 18 || t('rules.policyholderAgeLimit')],
|
|
155
|
-
beneficiaryAgeLimit: [v => v <= 15 || t('rules.beneficiaryAgeLimit')],
|
|
176
|
+
policyholderAgeLimit: [(v: any) => v >= 18 || t('rules.policyholderAgeLimit')],
|
|
177
|
+
beneficiaryAgeLimit: [(v: any) => v <= 15 || t('rules.beneficiaryAgeLimit')],
|
|
178
|
+
guaranteedPeriodLimit(v: any, termAnnuityPayments: any) {
|
|
179
|
+
if (Number(v) > Number(termAnnuityPayments)) {
|
|
180
|
+
return t('rules.guaranteedPeriodLimit');
|
|
181
|
+
}
|
|
182
|
+
return true;
|
|
183
|
+
},
|
|
156
184
|
};
|
package/types/enum.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export enum StoreMembers {
|
|
2
|
+
policyholderForm = 'policyholderForm',
|
|
3
|
+
insuredForm = 'insuredForm',
|
|
4
|
+
beneficiaryForm = 'beneficiaryForm',
|
|
5
|
+
beneficialOwnerForm = 'beneficialOwnerForm',
|
|
6
|
+
policyholdersRepresentativeForm = 'policyholdersRepresentativeForm',
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export enum Actions {
|
|
10
|
+
accept = 'accept',
|
|
11
|
+
rejectclient = 'rejectclient',
|
|
12
|
+
reject = 'reject',
|
|
13
|
+
return = 'return',
|
|
14
|
+
claim = 'claim',
|
|
15
|
+
sign = 'sign',
|
|
16
|
+
pay = 'pay',
|
|
17
|
+
register = 'register',
|
|
18
|
+
send = 'send',
|
|
19
|
+
affiliate = 'affiliate',
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export enum PostActions {
|
|
23
|
+
font = 'font',
|
|
24
|
+
route = 'route',
|
|
25
|
+
onRouteChange = 'onRouteChange',
|
|
26
|
+
applicationCreated = 'applicationCreated',
|
|
27
|
+
clipboard = 'clipboard',
|
|
28
|
+
toHomePage = 'toHomePage',
|
|
29
|
+
toStatementHistory = 'toStatementHistory',
|
|
30
|
+
toAuth = 'toAuth',
|
|
31
|
+
DOMevent = 'DOMevent',
|
|
32
|
+
Error401 = 'Error401',
|
|
33
|
+
Error500 = 'Error500',
|
|
34
|
+
iframeLoaded = 'iframeLoaded',
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export enum Roles {
|
|
38
|
+
Manager = 'Manager',
|
|
39
|
+
Admin = 'Admin',
|
|
40
|
+
Underwriter = 'Underwriter',
|
|
41
|
+
Agent = 'Agent',
|
|
42
|
+
Compliance = 'Compliance',
|
|
43
|
+
AgentMycar = 'AgentMycar',
|
|
44
|
+
Analyst = 'Analyst',
|
|
45
|
+
UPK = 'UPK',
|
|
46
|
+
FinCenter = 'FinCenter',
|
|
47
|
+
Supervisor = 'Supervisor',
|
|
48
|
+
Support = 'Support',
|
|
49
|
+
ManagerHalykBank = 'ManagerHalykBank',
|
|
50
|
+
ServiceManager = 'ServiceManager',
|
|
51
|
+
DRNSJ = 'DRNSJ',
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export enum Statuses {
|
|
55
|
+
StartForm = 'StartForm',
|
|
56
|
+
EditForm = 'EditForm',
|
|
57
|
+
EditBeneficiaryForm = 'EditBeneficiaryForm',
|
|
58
|
+
DocumentsSignedFrom = 'DocumentsSignedFrom',
|
|
59
|
+
UnderwriterForm = 'UnderwriterForm',
|
|
60
|
+
AffilationResolutionForm = 'AffilationResolutionForm',
|
|
61
|
+
Completed = 'Completed',
|
|
62
|
+
InsurancePremiumOnlinePaid = 'InsurancePremiumOnlinePaid',
|
|
63
|
+
ContractSignedFrom = 'ContractSignedFrom',
|
|
64
|
+
WaitingInsurancePremiumForm = 'WaitingInsurancePremiumForm',
|
|
65
|
+
CheckFinCenterForm = 'CheckFinCenterForm',
|
|
66
|
+
RegistryFinCenterForm = 'RegistryFinCenterForm',
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export enum MemberCodes {
|
|
70
|
+
Client = 'Client',
|
|
71
|
+
Insured = 'Insured',
|
|
72
|
+
Beneficiary = 'Beneficiary',
|
|
73
|
+
BeneficialOwner = 'BeneficialOwner',
|
|
74
|
+
Spokesman = 'Spokesman',
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export enum MemberAppCodes {
|
|
78
|
+
clientApp = 'clientApp',
|
|
79
|
+
insuredApp = 'insuredApp',
|
|
80
|
+
beneficiaryApp = 'beneficiaryApp',
|
|
81
|
+
beneficialOwnerApp = 'beneficialOwnerApp',
|
|
82
|
+
spokesmanApp = 'spokesmanApp',
|
|
83
|
+
}
|