hl-core 0.0.10-beta.3 → 0.0.10-beta.31
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 +300 -190
- 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/TextInput.vue +2 -0
- package/components/Layout/Drawer.vue +2 -0
- package/components/Pages/Anketa.vue +166 -167
- package/components/Pages/Auth.vue +2 -0
- package/components/Pages/ContragentForm.vue +2 -1
- package/components/Pages/Documents.vue +429 -59
- package/components/Pages/MemberForm.vue +327 -159
- package/components/Pages/ProductConditions.vue +681 -150
- package/components/Panel/PanelHandler.vue +261 -114
- 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 -42
- package/composables/constants.ts +41 -0
- package/composables/fields.ts +6 -4
- package/composables/index.ts +246 -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 +44 -14
- package/nuxt.config.ts +10 -13
- package/package.json +13 -12
- package/plugins/head.ts +2 -1
- package/store/data.store.ts +670 -480
- package/store/member.store.ts +18 -6
- package/store/rules.ts +21 -2
- package/tsconfig.json +3 -0
- package/types/enum.ts +20 -2
- package/types/env.d.ts +2 -2
- package/types/form.ts +71 -74
- package/types/index.ts +916 -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
|
@@ -53,6 +53,7 @@ export const rules = {
|
|
|
53
53
|
cyrillic: [(v: any) => v === null || /^[\u0400-\u04FF -]+$/.test(v) || t('rules.cyrillic')],
|
|
54
54
|
latin: [(v: any) => v === null || /^[a-zA-Z]+$/.test(v) || t('rules.latin')],
|
|
55
55
|
latinAndNumber: [(v: any) => v === null || /^[0-9a-zA-Z]+$/.test(v) || t('rules.latinAndNumber')],
|
|
56
|
+
latinNumberSymbol: [(v: any) => v === null || /^[0-9a-zA-Z-/]+$/.test(v) || t('rules.latinNumberSymbol')],
|
|
56
57
|
cyrillicNonRequired: [
|
|
57
58
|
(v: any) => {
|
|
58
59
|
if (!v) return true;
|
|
@@ -85,8 +86,8 @@ export const rules = {
|
|
|
85
86
|
ageExceeds80ByDate: [(v: any) => Math.abs(new Date(Date.now() - new Date(formatDate(v)!).getTime()).getUTCFullYear() - 1970) <= 80 || t('rules.ageExceeds80')],
|
|
86
87
|
sums: [
|
|
87
88
|
(v: any) => {
|
|
88
|
-
let str = v.replace(/\s/g, '');
|
|
89
|
-
if (/^[0-9]+$/.test(str)) {
|
|
89
|
+
let str = String(v ?? '').replace(/\s/g, '');
|
|
90
|
+
if (!str || /^[0-9]+$/.test(str)) {
|
|
90
91
|
return true;
|
|
91
92
|
}
|
|
92
93
|
return t('rules.sums');
|
|
@@ -271,6 +272,18 @@ export const rules = {
|
|
|
271
272
|
}
|
|
272
273
|
},
|
|
273
274
|
],
|
|
275
|
+
checkPastDate: [
|
|
276
|
+
(v: any) => {
|
|
277
|
+
let today = new Date();
|
|
278
|
+
const yourDate = new Date(formatDate(v)!);
|
|
279
|
+
today.setHours(0, 0, 0, 0);
|
|
280
|
+
if (yourDate >= today) {
|
|
281
|
+
return true;
|
|
282
|
+
} else {
|
|
283
|
+
return t('rules.checkDate');
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
],
|
|
274
287
|
fileRequired: [(v: any) => !!v || t('rules.fileRequired'), (v: any) => (v && v.length > 0) || t('rules.fileRequired')],
|
|
275
288
|
guaranteedPeriodLimit(v: any, termAnnuityPayments: any) {
|
|
276
289
|
if (Number(v) > Number(termAnnuityPayments)) {
|
|
@@ -284,4 +297,10 @@ export const rules = {
|
|
|
284
297
|
}
|
|
285
298
|
return true;
|
|
286
299
|
},
|
|
300
|
+
lengthLimit(v: any, limit: number) {
|
|
301
|
+
if (!!v && typeof v === 'string' && v.length <= limit) {
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
return t('rules.lengthLimit', { len: limit });
|
|
305
|
+
},
|
|
287
306
|
};
|
package/tsconfig.json
ADDED
package/types/enum.ts
CHANGED
|
@@ -51,6 +51,9 @@ export enum Actions {
|
|
|
51
51
|
|
|
52
52
|
payed = 'payed',
|
|
53
53
|
payedCustom = 'payedCustom',
|
|
54
|
+
|
|
55
|
+
rejectDocument = 'rejectDocument',
|
|
56
|
+
rejectDocumentCustom = 'rejectDocumentCustom',
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
export enum PostActions {
|
|
@@ -60,6 +63,7 @@ export enum PostActions {
|
|
|
60
63
|
applicationCreated = 'applicationCreated',
|
|
61
64
|
clipboard = 'clipboard',
|
|
62
65
|
toHomePage = 'toHomePage',
|
|
66
|
+
toHistory = 'toHistory',
|
|
63
67
|
toStatementHistory = 'toStatementHistory',
|
|
64
68
|
toAuth = 'toAuth',
|
|
65
69
|
DOMevent = 'DOMevent',
|
|
@@ -94,9 +98,13 @@ export enum Roles {
|
|
|
94
98
|
BranchDirector = 'BranchDirector',
|
|
95
99
|
USNSACCINS = 'USNSACCINS',
|
|
96
100
|
Dsuio = 'Dsuio',
|
|
97
|
-
|
|
101
|
+
SettlementLosses = 'SettlementLosses',
|
|
102
|
+
HeadSettlementLosses = 'HeadSettlementLosses',
|
|
98
103
|
DsoDirector = 'DsoDirector',
|
|
99
104
|
AccountantDirector = 'AccountantDirector',
|
|
105
|
+
ManagerAuletti = 'ManagerAuletti',
|
|
106
|
+
HeadOfDso = 'HeadOfDso',
|
|
107
|
+
URSP = 'URSP',
|
|
100
108
|
}
|
|
101
109
|
|
|
102
110
|
export enum Statuses {
|
|
@@ -120,6 +128,7 @@ export enum Statuses {
|
|
|
120
128
|
ControllerDpForm = 'ControllerDpForm',
|
|
121
129
|
ActuaryForm = 'ActuaryForm',
|
|
122
130
|
DsoUsnsForm = 'DsoUsnsForm',
|
|
131
|
+
JuristForm = 'JuristForm',
|
|
123
132
|
AccountantForm = 'AccountantForm',
|
|
124
133
|
HeadManagerForm = 'HeadManagerForm',
|
|
125
134
|
}
|
|
@@ -145,7 +154,7 @@ export enum Methods {
|
|
|
145
154
|
POST = 'POST',
|
|
146
155
|
}
|
|
147
156
|
|
|
148
|
-
export namespace
|
|
157
|
+
export namespace CoreEnums {
|
|
149
158
|
export namespace GBD {
|
|
150
159
|
export enum DocTypes {
|
|
151
160
|
'PS' = '001',
|
|
@@ -161,4 +170,13 @@ export namespace Enums {
|
|
|
161
170
|
'SBI' = 'SBI',
|
|
162
171
|
}
|
|
163
172
|
}
|
|
173
|
+
export namespace Sign {
|
|
174
|
+
export enum Types {
|
|
175
|
+
electronic = 1,
|
|
176
|
+
scans = 2,
|
|
177
|
+
qr = 3,
|
|
178
|
+
qrXml = 5,
|
|
179
|
+
nclayer = 6,
|
|
180
|
+
}
|
|
181
|
+
}
|
|
164
182
|
}
|
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
|
+
};
|