hl-core 0.0.10-beta.4 → 0.0.10-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/api/base.api.ts +331 -191
- package/api/interceptors.ts +3 -5
- package/components/Complex/TextBlock.vue +2 -0
- package/components/Dialog/Dialog.vue +7 -1
- package/components/Dialog/FamilyDialog.vue +2 -0
- package/components/Form/DigitalDocument.vue +52 -0
- package/components/Form/DynamicForm.vue +1 -0
- package/components/Form/FormData.vue +1 -0
- package/components/Form/ManagerAttachment.vue +17 -8
- package/components/Form/ProductConditionsBlock.vue +12 -6
- package/components/Input/Datepicker.vue +5 -0
- package/components/Input/DynamicInput.vue +2 -0
- package/components/Input/FormInput.vue +7 -0
- package/components/Input/OtpInput.vue +25 -0
- package/components/Input/PanelInput.vue +1 -0
- package/components/Input/RoundedInput.vue +4 -0
- package/components/Input/RoundedSelect.vue +4 -0
- package/components/Input/SwitchInput.vue +2 -0
- package/components/Input/TextAreaField.vue +71 -0
- package/components/Input/TextInput.vue +2 -0
- package/components/Layout/Drawer.vue +2 -0
- package/components/Menu/MenuNav.vue +1 -1
- package/components/Pages/Anketa.vue +168 -169
- package/components/Pages/Auth.vue +2 -0
- package/components/Pages/ContragentForm.vue +2 -1
- package/components/Pages/Documents.vue +432 -59
- package/components/Pages/MemberForm.vue +334 -160
- package/components/Pages/ProductConditions.vue +800 -226
- package/components/Panel/PanelHandler.vue +280 -121
- package/components/Transitions/Animation.vue +2 -0
- package/components/Utilities/Chip.vue +3 -1
- package/components/Utilities/JsonViewer.vue +1 -2
- package/composables/classes.ts +133 -49
- package/composables/constants.ts +43 -0
- package/composables/fields.ts +6 -4
- package/composables/index.ts +293 -7
- package/composables/styles.ts +8 -24
- package/configs/pwa.ts +1 -7
- package/layouts/clear.vue +1 -1
- package/layouts/default.vue +1 -1
- package/layouts/full.vue +1 -1
- package/locales/ru.json +79 -19
- package/nuxt.config.ts +10 -13
- package/package.json +12 -12
- package/plugins/head.ts +2 -1
- package/store/data.store.ts +765 -530
- package/store/member.store.ts +18 -6
- package/store/rules.ts +22 -2
- package/types/enum.ts +32 -2
- package/types/env.d.ts +2 -2
- package/types/form.ts +71 -74
- package/types/index.ts +921 -873
package/store/member.store.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { ErrorHandler } from '../composables';
|
|
|
5
5
|
import { AxiosError } from 'axios';
|
|
6
6
|
import { Member } from '../composables/classes';
|
|
7
7
|
import { MemberAppCodes, MemberCodes, StoreMembers } from '../types/enum';
|
|
8
|
+
import type { MultipleMember, SendOtpResponse } from '../types';
|
|
8
9
|
|
|
9
10
|
export const useMemberStore = defineStore('members', {
|
|
10
11
|
state: () => ({
|
|
@@ -61,7 +62,7 @@ export const useMemberStore = defineStore('members', {
|
|
|
61
62
|
}
|
|
62
63
|
return false;
|
|
63
64
|
},
|
|
64
|
-
getMemberFromStore(whichForm: keyof typeof StoreMembers, whichIndex?: number): Member | null {
|
|
65
|
+
getMemberFromStore(whichForm: keyof typeof StoreMembers | 'slaveInsuredForm', whichIndex?: number): Member | null {
|
|
65
66
|
switch (whichForm) {
|
|
66
67
|
case this.formStore.policyholderFormKey:
|
|
67
68
|
return this.formStore.policyholderForm;
|
|
@@ -69,6 +70,8 @@ export const useMemberStore = defineStore('members', {
|
|
|
69
70
|
return this.formStore.policyholdersRepresentativeForm;
|
|
70
71
|
case this.formStore.insuredFormKey:
|
|
71
72
|
return this.formStore.insuredForm[whichIndex!];
|
|
73
|
+
case 'slaveInsuredForm':
|
|
74
|
+
return this.formStore.slaveInsuredForm;
|
|
72
75
|
case this.formStore.beneficiaryFormKey:
|
|
73
76
|
return this.formStore.beneficiaryForm[whichIndex!];
|
|
74
77
|
case this.formStore.beneficialOwnerFormKey:
|
|
@@ -77,8 +80,11 @@ export const useMemberStore = defineStore('members', {
|
|
|
77
80
|
return null;
|
|
78
81
|
}
|
|
79
82
|
},
|
|
80
|
-
getMemberFromApplication(whichForm: keyof typeof StoreMembers, whichIndex?: number) {
|
|
81
|
-
const id =
|
|
83
|
+
getMemberFromApplication(whichForm: keyof typeof StoreMembers | 'slaveInsuredForm', whichIndex?: number) {
|
|
84
|
+
const id =
|
|
85
|
+
whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm' && whichForm !== 'slaveInsuredForm'
|
|
86
|
+
? this.formStore[whichForm][whichIndex!]?.id
|
|
87
|
+
: this.formStore[whichForm]?.id;
|
|
82
88
|
switch (whichForm) {
|
|
83
89
|
case this.formStore.policyholderFormKey:
|
|
84
90
|
return this.formStore.applicationData.clientApp;
|
|
@@ -88,6 +94,10 @@ export const useMemberStore = defineStore('members', {
|
|
|
88
94
|
const inStore = this.formStore.applicationData.insuredApp.find((member: any) => member.insisId === id);
|
|
89
95
|
return !!inStore ? inStore : false;
|
|
90
96
|
}
|
|
97
|
+
case 'slaveInsuredForm': {
|
|
98
|
+
const inStore = this.formStore.applicationData.slave.insuredApp[0];
|
|
99
|
+
return !!inStore ? inStore : false;
|
|
100
|
+
}
|
|
91
101
|
case this.formStore.beneficiaryFormKey: {
|
|
92
102
|
const inStore = this.formStore.applicationData.beneficiaryApp.find((member: any) => member.insisId === id);
|
|
93
103
|
return !!inStore ? inStore : false;
|
|
@@ -98,12 +108,14 @@ export const useMemberStore = defineStore('members', {
|
|
|
98
108
|
}
|
|
99
109
|
}
|
|
100
110
|
},
|
|
101
|
-
getMemberCode(whichForm: keyof typeof StoreMembers) {
|
|
111
|
+
getMemberCode(whichForm: keyof typeof StoreMembers | 'slaveInsuredForm') {
|
|
102
112
|
switch (whichForm) {
|
|
103
113
|
case this.formStore.policyholderFormKey:
|
|
104
114
|
return MemberCodes.Client;
|
|
105
115
|
case this.formStore.insuredFormKey:
|
|
106
116
|
return MemberCodes.Insured;
|
|
117
|
+
case 'slaveInsuredForm':
|
|
118
|
+
return MemberCodes.Insured;
|
|
107
119
|
case this.formStore.beneficiaryFormKey:
|
|
108
120
|
return MemberCodes.Beneficiary;
|
|
109
121
|
case this.formStore.beneficialOwnerFormKey:
|
|
@@ -307,11 +319,11 @@ export const useMemberStore = defineStore('members', {
|
|
|
307
319
|
// TODO Доработать и менять значение hasAgreement.value => true
|
|
308
320
|
this.dataStore.showToaster(otpResponse.status !== 2 ? 'error' : 'success', otpResponse.statusName, 3000);
|
|
309
321
|
if (otpResponse.status === 2) {
|
|
310
|
-
member.otpCode =
|
|
322
|
+
member.otpCode = '';
|
|
311
323
|
return true;
|
|
312
324
|
}
|
|
313
325
|
if (otpResponse.status === 4 || otpResponse.status === 5) {
|
|
314
|
-
member.otpCode =
|
|
326
|
+
member.otpCode = '';
|
|
315
327
|
member.otpTokenId = null;
|
|
316
328
|
return false;
|
|
317
329
|
}
|
package/store/rules.ts
CHANGED
|
@@ -6,6 +6,7 @@ const t = i18n.t;
|
|
|
6
6
|
export const rules = {
|
|
7
7
|
recalculationMultiply: [(v: any) => (v !== null && v !== '' && v >= 100) || t('toaster.valueShouldBeHigher', { text: '100' })],
|
|
8
8
|
recalculationMultiplyBetween: [(v: any) => (v !== null && v !== '' && v >= 100 && v <= 200) || t('toaster.recalculationMultiplyBetween', { floor: '100', ceil: '200' })],
|
|
9
|
+
recalculationMultiplyBetween50And200: [(v: any) => (v !== null && v !== '' && v >= 50 && v <= 200) || t('toaster.recalculationMultiplyBetween', { floor: '50', ceil: '200' })],
|
|
9
10
|
recalculationAdditive: [(v: any) => (v !== null && v !== '' && v <= 100 && v >= 0) || t('toaster.valueShouldBeBetween', { floor: '0', ceil: '100' })],
|
|
10
11
|
required: [(v: any) => !!v || t('rules.required')],
|
|
11
12
|
notZero: [(v: any) => Number(v) !== 0 || 'Не может быть равно нулю'],
|
|
@@ -53,6 +54,7 @@ export const rules = {
|
|
|
53
54
|
cyrillic: [(v: any) => v === null || /^[\u0400-\u04FF -]+$/.test(v) || t('rules.cyrillic')],
|
|
54
55
|
latin: [(v: any) => v === null || /^[a-zA-Z]+$/.test(v) || t('rules.latin')],
|
|
55
56
|
latinAndNumber: [(v: any) => v === null || /^[0-9a-zA-Z]+$/.test(v) || t('rules.latinAndNumber')],
|
|
57
|
+
latinNumberSymbol: [(v: any) => v === null || /^[0-9a-zA-Z-/]+$/.test(v) || t('rules.latinNumberSymbol')],
|
|
56
58
|
cyrillicNonRequired: [
|
|
57
59
|
(v: any) => {
|
|
58
60
|
if (!v) return true;
|
|
@@ -85,8 +87,8 @@ export const rules = {
|
|
|
85
87
|
ageExceeds80ByDate: [(v: any) => Math.abs(new Date(Date.now() - new Date(formatDate(v)!).getTime()).getUTCFullYear() - 1970) <= 80 || t('rules.ageExceeds80')],
|
|
86
88
|
sums: [
|
|
87
89
|
(v: any) => {
|
|
88
|
-
let str = v.replace(/\s/g, '');
|
|
89
|
-
if (/^[0-9]+$/.test(str)) {
|
|
90
|
+
let str = String(v ?? '').replace(/\s/g, '');
|
|
91
|
+
if (!str || /^[0-9]+$/.test(str)) {
|
|
90
92
|
return true;
|
|
91
93
|
}
|
|
92
94
|
return t('rules.sums');
|
|
@@ -271,6 +273,18 @@ export const rules = {
|
|
|
271
273
|
}
|
|
272
274
|
},
|
|
273
275
|
],
|
|
276
|
+
checkPastDate: [
|
|
277
|
+
(v: any) => {
|
|
278
|
+
let today = new Date();
|
|
279
|
+
const yourDate = new Date(formatDate(v)!);
|
|
280
|
+
today.setHours(0, 0, 0, 0);
|
|
281
|
+
if (yourDate >= today) {
|
|
282
|
+
return true;
|
|
283
|
+
} else {
|
|
284
|
+
return t('rules.checkDate');
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
],
|
|
274
288
|
fileRequired: [(v: any) => !!v || t('rules.fileRequired'), (v: any) => (v && v.length > 0) || t('rules.fileRequired')],
|
|
275
289
|
guaranteedPeriodLimit(v: any, termAnnuityPayments: any) {
|
|
276
290
|
if (Number(v) > Number(termAnnuityPayments)) {
|
|
@@ -284,4 +298,10 @@ export const rules = {
|
|
|
284
298
|
}
|
|
285
299
|
return true;
|
|
286
300
|
},
|
|
301
|
+
lengthLimit(v: any, limit: number) {
|
|
302
|
+
if (!!v && typeof v === 'string' && v.length <= limit) {
|
|
303
|
+
return true;
|
|
304
|
+
}
|
|
305
|
+
return t('rules.lengthLimit', { len: limit });
|
|
306
|
+
},
|
|
287
307
|
};
|
package/types/enum.ts
CHANGED
|
@@ -51,6 +51,18 @@ export enum Actions {
|
|
|
51
51
|
|
|
52
52
|
payed = 'payed',
|
|
53
53
|
payedCustom = 'payedCustom',
|
|
54
|
+
|
|
55
|
+
rejectDocument = 'rejectDocument',
|
|
56
|
+
rejectDocumentCustom = 'rejectDocumentCustom',
|
|
57
|
+
|
|
58
|
+
recalc = 'recalc',
|
|
59
|
+
recalcCustom = 'recalcCustom',
|
|
60
|
+
|
|
61
|
+
annulment = 'annulment',
|
|
62
|
+
annulmentCustom = 'annulmentCustom',
|
|
63
|
+
|
|
64
|
+
otrs = 'otrs',
|
|
65
|
+
otrsCustom = 'otrsCustom',
|
|
54
66
|
}
|
|
55
67
|
|
|
56
68
|
export enum PostActions {
|
|
@@ -60,6 +72,7 @@ export enum PostActions {
|
|
|
60
72
|
applicationCreated = 'applicationCreated',
|
|
61
73
|
clipboard = 'clipboard',
|
|
62
74
|
toHomePage = 'toHomePage',
|
|
75
|
+
toHistory = 'toHistory',
|
|
63
76
|
toStatementHistory = 'toStatementHistory',
|
|
64
77
|
toAuth = 'toAuth',
|
|
65
78
|
DOMevent = 'DOMevent',
|
|
@@ -90,13 +103,20 @@ export enum Roles {
|
|
|
90
103
|
HeadManager = 'HeadManager',
|
|
91
104
|
AgentAuletti = 'AgentAuletti',
|
|
92
105
|
USNS = 'USNS',
|
|
106
|
+
USNSsanctioner = 'USNSsanctioner',
|
|
93
107
|
Accountant = 'Accountant',
|
|
94
108
|
BranchDirector = 'BranchDirector',
|
|
95
109
|
USNSACCINS = 'USNSACCINS',
|
|
96
110
|
Dsuio = 'Dsuio',
|
|
97
|
-
|
|
111
|
+
HEADDSO = 'HEADDSO',
|
|
112
|
+
SettlementLosses = 'SettlementLosses',
|
|
113
|
+
HeadSettlementLosses = 'HeadSettlementLosses',
|
|
98
114
|
DsoDirector = 'DsoDirector',
|
|
115
|
+
Archivist = 'Archivist',
|
|
99
116
|
AccountantDirector = 'AccountantDirector',
|
|
117
|
+
ManagerAuletti = 'ManagerAuletti',
|
|
118
|
+
HeadOfDso = 'HeadOfDso',
|
|
119
|
+
URSP = 'URSP',
|
|
100
120
|
}
|
|
101
121
|
|
|
102
122
|
export enum Statuses {
|
|
@@ -120,6 +140,7 @@ export enum Statuses {
|
|
|
120
140
|
ControllerDpForm = 'ControllerDpForm',
|
|
121
141
|
ActuaryForm = 'ActuaryForm',
|
|
122
142
|
DsoUsnsForm = 'DsoUsnsForm',
|
|
143
|
+
JuristForm = 'JuristForm',
|
|
123
144
|
AccountantForm = 'AccountantForm',
|
|
124
145
|
HeadManagerForm = 'HeadManagerForm',
|
|
125
146
|
}
|
|
@@ -145,7 +166,7 @@ export enum Methods {
|
|
|
145
166
|
POST = 'POST',
|
|
146
167
|
}
|
|
147
168
|
|
|
148
|
-
export namespace
|
|
169
|
+
export namespace CoreEnums {
|
|
149
170
|
export namespace GBD {
|
|
150
171
|
export enum DocTypes {
|
|
151
172
|
'PS' = '001',
|
|
@@ -161,4 +182,13 @@ export namespace Enums {
|
|
|
161
182
|
'SBI' = 'SBI',
|
|
162
183
|
}
|
|
163
184
|
}
|
|
185
|
+
export namespace Sign {
|
|
186
|
+
export enum Types {
|
|
187
|
+
electronic = 1,
|
|
188
|
+
scans = 2,
|
|
189
|
+
qr = 3,
|
|
190
|
+
qrXml = 5,
|
|
191
|
+
nclayer = 6,
|
|
192
|
+
}
|
|
193
|
+
}
|
|
164
194
|
}
|
package/types/env.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="vite/client" />
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
interface ImportMetaEnv {
|
|
4
4
|
readonly VITE_MODE: EnvModes;
|
|
5
5
|
readonly VITE_PRODUCT?: Projects;
|
|
6
6
|
readonly VITE_PARENT_PRODUCT?: 'efo' | 'auletti';
|
|
7
7
|
readonly VITE_COMMIT_VERSION?: string;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
interface ImportMeta {
|
|
11
11
|
readonly env: ImportMetaEnv;
|
|
12
12
|
}
|
package/types/form.ts
CHANGED
|
@@ -6,88 +6,85 @@ export enum FieldTypes {
|
|
|
6
6
|
PASSWORD = 'password',
|
|
7
7
|
FILE = 'file',
|
|
8
8
|
}
|
|
9
|
-
export {};
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export type Suffix = 'kzt' | 'usd' | 'percent' | null;
|
|
10
|
+
export type InputType = TextInput | NumberInput | FileInput | SwitchInput;
|
|
11
|
+
export type FormMasks = 'numbers' | 'iin' | 'otp' | 'phone' | 'date' | 'post' | 'threeDigit' | 'iik';
|
|
12
|
+
export type FormIcons = 'arrowRight' | 'search' | 'sms' | null;
|
|
13
|
+
export type Suffix = 'kzt' | 'usd' | 'percent' | null;
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
15
|
+
export type FetchFunctions =
|
|
16
|
+
| 'getResidents'
|
|
17
|
+
| 'getFamilyStatuses'
|
|
18
|
+
| 'getRelationTypes'
|
|
19
|
+
| 'getCountries'
|
|
20
|
+
| 'getStates'
|
|
21
|
+
| 'getLocalityTypes'
|
|
22
|
+
| 'getRegions'
|
|
23
|
+
| 'getCities'
|
|
24
|
+
| 'getDocumentTypes'
|
|
25
|
+
| 'getTaxCountries'
|
|
26
|
+
| 'getCitizenshipCountries'
|
|
27
|
+
| 'getSectorCodeList'
|
|
28
|
+
| 'getInsurancePay'
|
|
29
|
+
| 'getEconomicActivityType'
|
|
30
|
+
| 'getBanks'
|
|
31
|
+
| 'getDocumentIssuers'
|
|
32
|
+
| 'getGenderList';
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
export interface DynamicForm {
|
|
35
|
+
formRef: any;
|
|
36
|
+
sections: SectionType[];
|
|
37
|
+
fieldOrder?: string[];
|
|
38
|
+
}
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
40
|
+
export type InputBase = {
|
|
41
|
+
key?: any;
|
|
42
|
+
modelValue?: any;
|
|
43
|
+
clearable?: boolean;
|
|
44
|
+
label?: string;
|
|
45
|
+
placeholder?: string;
|
|
46
|
+
readonly?: boolean;
|
|
47
|
+
disabled?: boolean;
|
|
48
|
+
arrowRight?: boolean;
|
|
49
|
+
maxLength?: number | null;
|
|
50
|
+
rules?: ValidationRule[];
|
|
51
|
+
iconName?: FormIcons;
|
|
52
|
+
value?: number;
|
|
53
|
+
suffix?: Suffix | null;
|
|
54
|
+
hint?: string | undefined;
|
|
55
|
+
maska?: FormMasks | null;
|
|
56
|
+
fetchFrom?: FetchFunctions | null;
|
|
57
|
+
};
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
export type FormControl<T extends InputType> = T & {
|
|
60
|
+
valid: boolean;
|
|
61
|
+
dirty: boolean;
|
|
62
|
+
touched: boolean;
|
|
63
|
+
};
|
|
66
64
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
export type FileInput = InputBase & {
|
|
66
|
+
type: FieldTypes.FILE;
|
|
67
|
+
};
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
export type TextInput = InputBase & {
|
|
70
|
+
type: FieldTypes.TEXT;
|
|
71
|
+
};
|
|
74
72
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
export type SwitchInput = InputBase & {
|
|
74
|
+
type: FieldTypes.SWITCH;
|
|
75
|
+
labeling: boolean | null;
|
|
76
|
+
direction: 'horizontal' | 'vertical';
|
|
77
|
+
falseValue: boolean | string | null;
|
|
78
|
+
trueValue: boolean | string | null;
|
|
79
|
+
};
|
|
82
80
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
export type NumberInput = InputBase & {
|
|
82
|
+
type: FieldTypes.NUMBER;
|
|
83
|
+
};
|
|
86
84
|
|
|
87
|
-
|
|
85
|
+
export type ValidationRule = (value: string) => boolean | string;
|
|
88
86
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
87
|
+
export type SectionType = {
|
|
88
|
+
title?: string;
|
|
89
|
+
fields: InputType[];
|
|
90
|
+
};
|