hl-core 0.0.10-beta.5 → 0.0.10-beta.50

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.
Files changed (41) hide show
  1. package/README.md +0 -2
  2. package/api/base.api.ts +327 -137
  3. package/api/interceptors.ts +3 -5
  4. package/components/Dialog/Dialog.vue +5 -1
  5. package/components/Form/DigitalDocument.vue +52 -0
  6. package/components/Form/FormSource.vue +30 -0
  7. package/components/Form/ManagerAttachment.vue +60 -11
  8. package/components/Form/ProductConditionsBlock.vue +12 -6
  9. package/components/Input/Datepicker.vue +5 -0
  10. package/components/Input/FileInput.vue +1 -1
  11. package/components/Input/FormInput.vue +5 -0
  12. package/components/Input/OtpInput.vue +25 -0
  13. package/components/Input/RoundedInput.vue +2 -0
  14. package/components/Input/RoundedSelect.vue +2 -0
  15. package/components/Input/TextAreaField.vue +71 -0
  16. package/components/Menu/MenuNav.vue +1 -1
  17. package/components/Pages/Anketa.vue +207 -176
  18. package/components/Pages/ContragentForm.vue +1 -1
  19. package/components/Pages/Documents.vue +436 -64
  20. package/components/Pages/MemberForm.vue +343 -170
  21. package/components/Pages/ProductConditions.vue +895 -241
  22. package/components/Panel/PanelHandler.vue +282 -124
  23. package/components/Utilities/Chip.vue +1 -1
  24. package/components/Utilities/JsonViewer.vue +1 -2
  25. package/composables/classes.ts +121 -20
  26. package/composables/constants.ts +45 -1
  27. package/composables/index.ts +333 -8
  28. package/composables/styles.ts +8 -24
  29. package/configs/pwa.ts +1 -7
  30. package/layouts/clear.vue +1 -1
  31. package/layouts/default.vue +1 -1
  32. package/layouts/full.vue +1 -1
  33. package/locales/ru.json +82 -19
  34. package/nuxt.config.ts +10 -12
  35. package/package.json +12 -12
  36. package/plugins/head.ts +7 -1
  37. package/store/data.store.ts +867 -525
  38. package/store/member.store.ts +17 -6
  39. package/store/rules.ts +23 -3
  40. package/types/enum.ts +40 -2
  41. package/types/index.ts +110 -56
@@ -62,7 +62,7 @@ export const useMemberStore = defineStore('members', {
62
62
  }
63
63
  return false;
64
64
  },
65
- getMemberFromStore(whichForm: keyof typeof StoreMembers, whichIndex?: number): Member | null {
65
+ getMemberFromStore(whichForm: keyof typeof StoreMembers | 'slaveInsuredForm', whichIndex?: number): Member | null {
66
66
  switch (whichForm) {
67
67
  case this.formStore.policyholderFormKey:
68
68
  return this.formStore.policyholderForm;
@@ -70,6 +70,8 @@ export const useMemberStore = defineStore('members', {
70
70
  return this.formStore.policyholdersRepresentativeForm;
71
71
  case this.formStore.insuredFormKey:
72
72
  return this.formStore.insuredForm[whichIndex!];
73
+ case 'slaveInsuredForm':
74
+ return this.formStore.slaveInsuredForm;
73
75
  case this.formStore.beneficiaryFormKey:
74
76
  return this.formStore.beneficiaryForm[whichIndex!];
75
77
  case this.formStore.beneficialOwnerFormKey:
@@ -78,8 +80,11 @@ export const useMemberStore = defineStore('members', {
78
80
  return null;
79
81
  }
80
82
  },
81
- getMemberFromApplication(whichForm: keyof typeof StoreMembers, whichIndex?: number) {
82
- const id = whichForm !== 'policyholderForm' && whichForm !== 'policyholdersRepresentativeForm' ? this.formStore[whichForm][whichIndex!].id : this.formStore[whichForm].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;
83
88
  switch (whichForm) {
84
89
  case this.formStore.policyholderFormKey:
85
90
  return this.formStore.applicationData.clientApp;
@@ -89,6 +94,10 @@ export const useMemberStore = defineStore('members', {
89
94
  const inStore = this.formStore.applicationData.insuredApp.find((member: any) => member.insisId === id);
90
95
  return !!inStore ? inStore : false;
91
96
  }
97
+ case 'slaveInsuredForm': {
98
+ const inStore = this.formStore.applicationData.slave.insuredApp[0];
99
+ return !!inStore ? inStore : false;
100
+ }
92
101
  case this.formStore.beneficiaryFormKey: {
93
102
  const inStore = this.formStore.applicationData.beneficiaryApp.find((member: any) => member.insisId === id);
94
103
  return !!inStore ? inStore : false;
@@ -99,12 +108,14 @@ export const useMemberStore = defineStore('members', {
99
108
  }
100
109
  }
101
110
  },
102
- getMemberCode(whichForm: keyof typeof StoreMembers) {
111
+ getMemberCode(whichForm: keyof typeof StoreMembers | 'slaveInsuredForm') {
103
112
  switch (whichForm) {
104
113
  case this.formStore.policyholderFormKey:
105
114
  return MemberCodes.Client;
106
115
  case this.formStore.insuredFormKey:
107
116
  return MemberCodes.Insured;
117
+ case 'slaveInsuredForm':
118
+ return MemberCodes.Insured;
108
119
  case this.formStore.beneficiaryFormKey:
109
120
  return MemberCodes.Beneficiary;
110
121
  case this.formStore.beneficialOwnerFormKey:
@@ -308,11 +319,11 @@ export const useMemberStore = defineStore('members', {
308
319
  // TODO Доработать и менять значение hasAgreement.value => true
309
320
  this.dataStore.showToaster(otpResponse.status !== 2 ? 'error' : 'success', otpResponse.statusName, 3000);
310
321
  if (otpResponse.status === 2) {
311
- member.otpCode = null;
322
+ member.otpCode = '';
312
323
  return true;
313
324
  }
314
325
  if (otpResponse.status === 4 || otpResponse.status === 5) {
315
- member.otpCode = null;
326
+ member.otpCode = '';
316
327
  member.otpTokenId = null;
317
328
  return false;
318
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');
@@ -225,7 +227,7 @@ export const rules = {
225
227
  },
226
228
  ],
227
229
  policyholderAgeLimit: [(v: any) => v >= 18 || t('rules.policyholderAgeLimit')],
228
- beneficiaryAgeLimit: [(v: any) => v <= 15 || t('rules.beneficiaryAgeLimit')],
230
+ beneficiaryAgeLimit: [(v: any) => v < 15 || t('rules.beneficiaryAgeLimit')],
229
231
  dateInPast: [
230
232
  (v: any) => {
231
233
  const givenDate = new Date(formatDate(v)!);
@@ -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,28 @@ 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
- Adjuster = 'Adjuster',
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',
120
+ ExecutorGPH = 'ExecutorGPH',
121
+ DsuioOrv = 'DsuioOrv',
122
+ UKP = 'UKP',
123
+ DpDirector = 'DpDirector',
124
+ Security = 'Security',
125
+ URAP = 'URAP',
126
+ TravelAgent = 'TravelAgent',
127
+ HR = 'HR',
100
128
  }
101
129
 
102
130
  export enum Statuses {
@@ -120,6 +148,7 @@ export enum Statuses {
120
148
  ControllerDpForm = 'ControllerDpForm',
121
149
  ActuaryForm = 'ActuaryForm',
122
150
  DsoUsnsForm = 'DsoUsnsForm',
151
+ JuristForm = 'JuristForm',
123
152
  AccountantForm = 'AccountantForm',
124
153
  HeadManagerForm = 'HeadManagerForm',
125
154
  }
@@ -145,7 +174,7 @@ export enum Methods {
145
174
  POST = 'POST',
146
175
  }
147
176
 
148
- export namespace Enums {
177
+ export namespace CoreEnums {
149
178
  export namespace GBD {
150
179
  export enum DocTypes {
151
180
  'PS' = '001',
@@ -161,4 +190,13 @@ export namespace Enums {
161
190
  'SBI' = 'SBI',
162
191
  }
163
192
  }
193
+ export namespace Sign {
194
+ export enum Types {
195
+ electronic = 1,
196
+ scans = 2,
197
+ qr = 3,
198
+ qrXml = 5,
199
+ nclayer = 6,
200
+ }
201
+ }
164
202
  }
package/types/index.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  import { Value } from '../composables/classes';
2
+ import type { IDocument } from '../composables/classes';
2
3
  import type { RouteLocationNormalizedLoaded, RouteLocationNormalized } from 'vue-router';
3
4
  import type { AxiosRequestConfig } from 'axios';
4
- import { Methods, Enums } from './enum';
5
+ import { Methods, CoreEnums, Actions, Statuses } from './enum';
6
+ import type { JwtPayload } from 'jwt-decode';
7
+ export { Methods, CoreEnums, Actions, Statuses };
5
8
 
6
9
  export type EnvModes = 'development' | 'test' | 'production';
7
10
  export type Projects =
@@ -27,7 +30,10 @@ export type Projects =
27
30
  | 'uu'
28
31
  | 'auletti'
29
32
  | 'lka-auletti'
30
- | 'prepensionannuity';
33
+ | 'prepensionannuity'
34
+ | 'balam'
35
+ | 'criticalillness'
36
+ | 'tumar';
31
37
  export type MemberKeys = keyof ReturnType<typeof useFormStore>;
32
38
  export type MemberFormTypes = 'policyholderForm' | 'insuredForm' | 'beneficiaryForm' | 'beneficialOwnerForm' | 'policyholdersRepresentativeForm' | 'productConditionsForm';
33
39
  export type SingleMember = 'policyholderForm' | 'policyholdersRepresentativeForm';
@@ -115,57 +121,6 @@ export type Item = {
115
121
  itemName: string;
116
122
  };
117
123
 
118
- // Remove
119
- export type GBDFLResponse = {
120
- status: string;
121
- statusName: string;
122
- content: string;
123
- };
124
-
125
- // Remove
126
- export type FamilyInfoGKB = {
127
- infoList: InfoListGKB;
128
- status: string;
129
- statusName: string;
130
- content: null;
131
- };
132
-
133
- // Remove
134
- export type InfoListGKB = {
135
- birthInfos: BirthInfoGKB[];
136
- };
137
-
138
- // Remove
139
- export type BirthInfoGKB = {
140
- actDate?: string;
141
- actNumber?: string;
142
- childBirthDate?: string;
143
- childIIN?: string;
144
- childLifeStatus?: number;
145
- childName?: string;
146
- childPatronymic?: string;
147
- childSurName?: string;
148
- fatherBirthDate?: string;
149
- fatherLifeStatus?: number;
150
- fatherIIN?: string;
151
- fatherName?: string;
152
- fatherPatronymic?: string;
153
- fatherSurName?: string;
154
- marriageActDate?: string;
155
- marriageActNumber?: string;
156
- marriageActPlace?: string;
157
- motherApplication?: number;
158
- motherBirthDate?: string;
159
- motherLifeStatus?: string | null;
160
- motherIIN?: string | null;
161
- motherName?: string | null;
162
- motherPatronymic?: string | null;
163
- motherSurName?: string | null;
164
- zagsCode?: string;
165
- zagsNameKZ?: string;
166
- zagsNameRU?: string;
167
- };
168
-
169
124
  export type AnketaBody = {
170
125
  first: EachAnketa;
171
126
  second: AnketaSecond[] | null;
@@ -184,8 +139,8 @@ export type EachAnketa = {
184
139
  };
185
140
 
186
141
  export enum AnswerName {
187
- Нет = 'Нет',
188
- Да = 'Да',
142
+ 'Жоқ/Нет' = 'Жоқ/Нет',
143
+ 'Иә/Да' = 'Иә/Да',
189
144
  }
190
145
 
191
146
  export enum AnswerType {
@@ -304,6 +259,11 @@ export interface ClientV2 {
304
259
  criticalMultiply?: string;
305
260
  criticalAdditive?: string;
306
261
  hasAttachedFile?: boolean;
262
+ insrBeginDate?: string;
263
+ insrEndDate?: string;
264
+ economySectorCode?: Value;
265
+ resident?: Value;
266
+ tableNumber?: string;
307
267
  }
308
268
 
309
269
  export type RecalculationResponseType = {
@@ -436,6 +396,7 @@ export type GetContragentRequest = {
436
396
  lastName: string;
437
397
  middleName: string;
438
398
  iin: string;
399
+ birthDate?: string;
439
400
  };
440
401
 
441
402
  export type GetContragentResponse = {
@@ -459,6 +420,8 @@ export interface ContragentType {
459
420
  registrationDate: string;
460
421
  verifyType: string;
461
422
  verifyDate: string;
423
+ notes?: string;
424
+ organorganisationStartDate?: string;
462
425
  }
463
426
 
464
427
  export interface ContragentQuestionaries {
@@ -482,6 +445,9 @@ export interface ContragentDocuments {
482
445
  issuerId: number;
483
446
  issuerName: string | null;
484
447
  issuerNameRu: string | null;
448
+ issuerOtherName?: string;
449
+ issuerOtherNameOrig?: string;
450
+ issuerOtherNameRu?: string;
485
451
  description: string | null;
486
452
  note: string | null;
487
453
  verifyType: string;
@@ -603,6 +569,7 @@ export type PolicyAppDto = {
603
569
  mainInsSum?: number | null;
604
570
  agentCommission?: number | null;
605
571
  calcDate?: string;
572
+ mainPremiumWithCommission?: number;
606
573
  };
607
574
 
608
575
  export type InsisWorkDataApp = {
@@ -619,6 +586,8 @@ export type InsisWorkDataApp = {
619
586
  regionPolicyName?: string;
620
587
  managerPolicy?: string;
621
588
  managerPolicyName?: string;
589
+ executorGPH?: string;
590
+ executorGPHName?: string;
622
591
  insuranceProgramType?: string;
623
592
  };
624
593
 
@@ -773,6 +742,34 @@ export type SignedState = {
773
742
  code: string;
774
743
  };
775
744
 
745
+ export type GetContractByBinResponse = {
746
+ bin: string;
747
+ fullName: string;
748
+ insrBegin: string;
749
+ insrEnd: string;
750
+ policyNo: string;
751
+ policyId: string;
752
+ status: string;
753
+ };
754
+
755
+ export type ParentPolicyDto = {
756
+ contractId: number;
757
+ contractInsrBegin: string;
758
+ contractInsrEnd: string;
759
+ contractNumber: string;
760
+ };
761
+
762
+ export namespace Base {
763
+ export namespace Document {
764
+ export type Digital = { iin: string; longName: string; digitalDocument: IDocument | null };
765
+ export type IssuerOther = Value & {
766
+ issuerOtherName?: string;
767
+ issuerOtherNameOrig?: string;
768
+ issuerOtherNameRu?: string;
769
+ };
770
+ }
771
+ }
772
+
776
773
  export namespace Utils {
777
774
  export type ProjectConfig = {
778
775
  version: string;
@@ -782,6 +779,22 @@ export namespace Utils {
782
779
  export type VuetifyAnimations = 'expand' | 'fab' | 'fade' | 'scale' | 'scroll-x' | 'scroll-y' | 'slide-x' | 'slide-x-r' | 'slide-y' | 'slide-y-r';
783
780
  export type LabelSize = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;
784
781
  export type VIcon = { mdi?: string; color?: string; bg?: string; size?: 'x-small' | 'small' | 'default' | 'large' | 'x-large' };
782
+ export type JwtToken = JwtPayload & {
783
+ lastName: string;
784
+ firstName: string;
785
+ middleName?: string;
786
+ code: string;
787
+ name?: string;
788
+ branchId: string;
789
+ branchCode: string;
790
+ branchName: string;
791
+ isAdmin: boolean;
792
+ iin: string;
793
+ phone: string;
794
+ email: string;
795
+ isChangePassword: boolean;
796
+ Permission: string[];
797
+ };
785
798
  }
786
799
 
787
800
  export namespace Api {
@@ -811,7 +824,7 @@ export namespace Api {
811
824
  changeDate: string;
812
825
  };
813
826
  export type Document = {
814
- type: Api.GBD.Dict & { code: Enums.GBD.DocTypes };
827
+ type: Api.GBD.Dict & { code: CoreEnums.GBD.DocTypes };
815
828
  beginDate: string;
816
829
  endDate: string;
817
830
  number: string;
@@ -905,6 +918,47 @@ export namespace Api {
905
918
  name: string;
906
919
  };
907
920
  }
921
+
922
+ export namespace Sign {
923
+ export namespace New {
924
+ export type Request = {
925
+ taskId: string;
926
+ };
927
+ export type Type = {
928
+ documentSignType: string;
929
+ documentSignTypeName: string;
930
+ documentSignTypeValue: number;
931
+ };
932
+ export type FileDatas = {
933
+ fileName: string;
934
+ fileType: number;
935
+ orderFile: number;
936
+ isSigned: boolean;
937
+ signTypes: Api.Sign.New.Type[];
938
+ };
939
+ export type GeneralResponse = {
940
+ contragentId?: string | null;
941
+ contragentType?: number;
942
+ fileDatas?: FileDatas[];
943
+ iin?: string | null;
944
+ longName?: string | null;
945
+ personId?: number;
946
+ signType?: number | null;
947
+ signatureDocumentGroupId?: string | null;
948
+ taskId: string;
949
+ };
950
+ export type Response = {
951
+ edsXmlId: string | null;
952
+ iin: string | null;
953
+ longName: string | null;
954
+ phoneNumber: string | null;
955
+ shortUri: string | null;
956
+ signIds: { id: string; fileType: string }[];
957
+ signatureDocumentGroupId: string | null;
958
+ uri: string | null;
959
+ };
960
+ }
961
+ }
908
962
  }
909
963
 
910
964
  export namespace Dicts {