hl-core 0.0.9-beta.2 → 0.0.9-beta.21

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 (63) hide show
  1. package/api/base.api.ts +684 -0
  2. package/api/index.ts +2 -620
  3. package/api/interceptors.ts +58 -14
  4. package/components/Button/Btn.vue +3 -3
  5. package/components/Complex/ContentBlock.vue +1 -1
  6. package/components/Complex/MessageBlock.vue +1 -1
  7. package/components/Complex/Page.vue +7 -1
  8. package/components/Complex/WhiteBlock.vue +7 -0
  9. package/components/Dialog/Dialog.vue +2 -2
  10. package/components/Dialog/FamilyDialog.vue +5 -5
  11. package/components/Form/FormBlock.vue +36 -29
  12. package/components/Form/FormSection.vue +2 -2
  13. package/components/Form/FormTextSection.vue +3 -3
  14. package/components/Form/FormToggle.vue +3 -3
  15. package/components/Form/ManagerAttachment.vue +55 -42
  16. package/components/Form/ProductConditionsBlock.vue +73 -20
  17. package/components/Input/EmptyFormField.vue +1 -1
  18. package/components/Input/FileInput.vue +8 -3
  19. package/components/Input/Monthpicker.vue +33 -0
  20. package/components/Input/PanelInput.vue +5 -1
  21. package/components/Input/RoundedEmptyField.vue +5 -0
  22. package/components/Input/RoundedSelect.vue +13 -0
  23. package/components/Layout/Drawer.vue +2 -1
  24. package/components/Layout/Header.vue +1 -1
  25. package/components/Layout/SettingsPanel.vue +5 -9
  26. package/components/List/ListEmpty.vue +1 -1
  27. package/components/Menu/MenuHover.vue +1 -1
  28. package/components/Menu/MenuNav.vue +1 -1
  29. package/components/Menu/MenuNavItem.vue +4 -4
  30. package/components/Pages/Anketa.vue +88 -47
  31. package/components/Pages/Auth.vue +21 -10
  32. package/components/Pages/ContragentForm.vue +505 -0
  33. package/components/Pages/Documents.vue +5 -5
  34. package/components/Pages/InvoiceInfo.vue +2 -2
  35. package/components/Pages/MemberForm.vue +215 -59
  36. package/components/Pages/ProductAgreement.vue +1 -3
  37. package/components/Pages/ProductConditions.vue +677 -151
  38. package/components/Panel/PanelHandler.vue +86 -21
  39. package/components/Panel/PanelSelectItem.vue +18 -3
  40. package/components/Utilities/IconBorder.vue +17 -0
  41. package/composables/axios.ts +1 -1
  42. package/composables/classes.ts +276 -11
  43. package/composables/constants.ts +43 -0
  44. package/composables/index.ts +40 -4
  45. package/composables/styles.ts +20 -10
  46. package/configs/i18n.ts +0 -2
  47. package/layouts/default.vue +5 -2
  48. package/layouts/full.vue +1 -1
  49. package/locales/ru.json +221 -6
  50. package/nuxt.config.ts +1 -1
  51. package/package.json +30 -39
  52. package/pages/500.vue +2 -2
  53. package/pages/Token.vue +1 -0
  54. package/plugins/helperFunctionsPlugins.ts +6 -7
  55. package/plugins/vuetifyPlugin.ts +2 -0
  56. package/store/data.store.ts +561 -226
  57. package/store/form.store.ts +11 -1
  58. package/store/member.store.ts +1 -1
  59. package/store/rules.ts +37 -2
  60. package/types/enum.ts +6 -0
  61. package/types/index.ts +145 -31
  62. package/components/Button/BtnIcon.vue +0 -47
  63. package/locales/kz.json +0 -585
@@ -71,6 +71,13 @@ export class Value {
71
71
  this.ids = ids;
72
72
  }
73
73
  }
74
+ export class CountryValue extends Value {
75
+ countryTypeCode: string | number | null;
76
+ constructor(countryTypeCode = null, ...args: any) {
77
+ super(...args);
78
+ this.countryTypeCode = countryTypeCode;
79
+ }
80
+ }
74
81
 
75
82
  export class IDocument {
76
83
  id?: string;
@@ -194,6 +201,8 @@ class Person {
194
201
  longName: string | null;
195
202
  lastName: string | null;
196
203
  firstName: string | null;
204
+ firstNameLat?: string | null;
205
+ lastNameLat?: string | null;
197
206
  middleName: string | null;
198
207
  birthDate: string | null;
199
208
  gender: Value;
@@ -405,11 +414,11 @@ export class Member extends Person {
405
414
  registrationRegion: Value;
406
415
  registrationRegionType: Value;
407
416
  registrationCity: Value;
408
- registrationQuarter: string | null;
409
- registrationMicroDistrict: string | null;
410
- registrationStreet: string | null;
411
- registrationNumberHouse: string | null;
412
- registrationNumberApartment: string | null;
417
+ registrationQuarter?: string | null;
418
+ registrationMicroDistrict?: string | null;
419
+ registrationStreet?: string | null;
420
+ registrationNumberHouse?: string | null;
421
+ registrationNumberApartment?: string | null;
413
422
  birthRegion: Value;
414
423
  documentType: Value;
415
424
  documentNumber: string | null;
@@ -442,6 +451,7 @@ export class Member extends Person {
442
451
  otpTokenId: string | null;
443
452
  otpCode: string | null;
444
453
  documentsList: ContragentDocuments[];
454
+ isInsuredUnderage?: boolean = false;
445
455
  constructor(
446
456
  id = 0,
447
457
  type = 1,
@@ -660,6 +670,43 @@ export class Member extends Person {
660
670
  }
661
671
  }
662
672
 
673
+ export class CalculatorForm {
674
+ country: Value;
675
+ countries: CountryValue[] | null;
676
+ purpose: Value;
677
+ workType: Value;
678
+ sportsType: Value;
679
+ type: Value;
680
+ days: string | number | null;
681
+ maxDays: Value;
682
+ age: string | null;
683
+ price: string | null;
684
+ professionType: Value;
685
+ amount: Value;
686
+ startDate: string | null;
687
+ endDate: string | null;
688
+ period: Value;
689
+ currency: string | null;
690
+ constructor() {
691
+ this.country = new Value();
692
+ this.countries = [];
693
+ this.purpose = new Value();
694
+ this.workType = new Value();
695
+ this.sportsType = new Value();
696
+ this.type = new Value();
697
+ this.days = null;
698
+ this.maxDays = new Value();
699
+ this.age = null;
700
+ this.price = null;
701
+ this.professionType = new Value();
702
+ this.amount = new Value();
703
+ this.startDate = null;
704
+ this.endDate = null;
705
+ this.period = new Value();
706
+ this.currency = null;
707
+ }
708
+ }
709
+
663
710
  export class ProductConditions {
664
711
  signDate: string | null;
665
712
  birthDate: string | null;
@@ -700,6 +747,12 @@ export class ProductConditions {
700
747
  termAnnuityPayments: number | string | null;
701
748
  periodAnnuityPayment: Value;
702
749
  amountAnnuityPayments: number | string | null;
750
+ isRecalculated: boolean;
751
+ totalAmount5: number | string | null;
752
+ totalAmount7: number | string | null;
753
+ statePremium5: number | string | null;
754
+ statePremium7: number | string | null;
755
+ calculatorForm: CalculatorForm;
703
756
  constructor(
704
757
  insuranceCase = null,
705
758
  coverPeriod = null,
@@ -735,6 +788,12 @@ export class ProductConditions {
735
788
  termAnnuityPayments = null,
736
789
  periodAnnuityPayment = new Value(),
737
790
  amountAnnuityPayments = null,
791
+ isRecalculated = false,
792
+ totalAmount5 = null,
793
+ totalAmount7 = null,
794
+ statePremium5 = null,
795
+ statePremium7 = null,
796
+ calculatorForm = new CalculatorForm(),
738
797
  ) {
739
798
  this.requestedSumInsuredInDollar = null;
740
799
  this.insurancePremiumPerMonthInDollar = null;
@@ -775,6 +834,25 @@ export class ProductConditions {
775
834
  this.termAnnuityPayments = termAnnuityPayments;
776
835
  this.periodAnnuityPayment = periodAnnuityPayment;
777
836
  this.amountAnnuityPayments = amountAnnuityPayments;
837
+ this.isRecalculated = isRecalculated;
838
+ this.totalAmount5 = totalAmount5;
839
+ this.totalAmount7 = totalAmount7;
840
+ this.statePremium5 = statePremium5;
841
+ this.statePremium7 = statePremium7;
842
+ this.calculatorForm = calculatorForm;
843
+ }
844
+ getSingleTripDays() {
845
+ if (this.calculatorForm.startDate && this.calculatorForm.endDate) {
846
+ const date1 = formatDate(this.calculatorForm.startDate);
847
+ const date2 = formatDate(this.calculatorForm.endDate);
848
+ if (date1 && date2) {
849
+ const days = Math.ceil((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)) + 1;
850
+ if (days > 0) {
851
+ return days;
852
+ }
853
+ }
854
+ }
855
+ return null;
778
856
  }
779
857
  }
780
858
 
@@ -804,6 +882,9 @@ export class DataStoreClass {
804
882
  setDefaults: {
805
883
  sectorCode: boolean;
806
884
  percentage: boolean;
885
+ signOfResidency: boolean;
886
+ countryOfTaxResidency: boolean;
887
+ countryOfCitizenship: boolean;
807
888
  };
808
889
  // Проверка на роль при авторизации
809
890
  onAuth: boolean;
@@ -811,6 +892,8 @@ export class DataStoreClass {
811
892
  hasAgreement: boolean;
812
893
  // Наличие анкеты
813
894
  hasAnketa: boolean;
895
+ // Обязательность доп анкеты
896
+ isSecondAnketaRequired: boolean;
814
897
  // Подтягивание с ГБДФЛ
815
898
  hasGBDFL: boolean;
816
899
  // Подтягивание с ГКБ
@@ -879,6 +962,8 @@ export class DataStoreClass {
879
962
  documentIssuers: Value[];
880
963
  familyStatuses: Value[];
881
964
  relations: Value[];
965
+ banks: Value[];
966
+ processTariff: Value[];
882
967
  insurancePay: Value[];
883
968
  questionRefs: Value[];
884
969
  residents: Value[];
@@ -891,7 +976,6 @@ export class DataStoreClass {
891
976
  user: User;
892
977
  accessToken: string | null = null;
893
978
  refreshToken: string | null = null;
894
- processCoverTypeSum: Value[];
895
979
  processIndexRate: Value[];
896
980
  processPaymentPeriod: Value[];
897
981
  dicAnnuityTypeList: Value[];
@@ -917,6 +1001,17 @@ export class DataStoreClass {
917
1001
  show: (item: MenuItem) => boolean;
918
1002
  disabled: (item: MenuItem) => boolean;
919
1003
  };
1004
+ amountArray: Value[];
1005
+ currency: string | number | null;
1006
+ periodArray: Value[];
1007
+ maxDaysAllArray: Value[];
1008
+ maxDaysFiltered: Value[];
1009
+ dicAllCountries: CountryValue[];
1010
+ dicCountries: CountryValue[];
1011
+ types: Value[];
1012
+ workTypes: Value[];
1013
+ sportsTypes: Value[];
1014
+ purposes: Value[];
920
1015
  constructor() {
921
1016
  this.filters = {
922
1017
  show: (item: MenuItem) => {
@@ -947,9 +1042,13 @@ export class DataStoreClass {
947
1042
  setDefaults: {
948
1043
  sectorCode: true,
949
1044
  percentage: true,
1045
+ signOfResidency: false,
1046
+ countryOfTaxResidency: false,
1047
+ countryOfCitizenship: false,
950
1048
  },
951
1049
  onAuth: false,
952
1050
  hasAnketa: true,
1051
+ isSecondAnketaRequired: true,
953
1052
  hasAgreement: true,
954
1053
  hasGBDFL: true,
955
1054
  hasGKB: false,
@@ -1020,6 +1119,8 @@ export class DataStoreClass {
1020
1119
  this.documentIssuers = [];
1021
1120
  this.familyStatuses = [];
1022
1121
  this.relations = [];
1122
+ this.processTariff = [];
1123
+ this.banks = [];
1023
1124
  this.insurancePay = [];
1024
1125
  this.residents = [];
1025
1126
  this.ipdl = [new Value(1, null), new Value(2, 'Да'), new Value(3, 'Нет')];
@@ -1031,7 +1132,6 @@ export class DataStoreClass {
1031
1132
  this.user = new User();
1032
1133
  this.accessToken = null;
1033
1134
  this.refreshToken = null;
1034
- this.processCoverTypeSum = [];
1035
1135
  this.taskList = [];
1036
1136
  this.processHistory = [];
1037
1137
  this.contragentList = [];
@@ -1077,10 +1177,31 @@ export class DataStoreClass {
1077
1177
  ids: '',
1078
1178
  },
1079
1179
  ];
1180
+ this.amountArray = [];
1181
+ this.currency = null;
1182
+ this.maxDaysAllArray = [];
1183
+ this.periodArray = [];
1184
+ this.maxDaysFiltered = [];
1185
+ this.dicCountries = [];
1186
+ this.dicAllCountries = [];
1187
+ this.types = [];
1188
+ this.purposes = [];
1189
+ this.workTypes = [];
1190
+ this.sportsTypes = [];
1080
1191
  }
1081
1192
  }
1082
1193
 
1083
1194
  export class FormStoreClass {
1195
+ lfb: {
1196
+ insurers: ClientV2[];
1197
+ fixInsAmount: Value[];
1198
+ policyholder: PolicyholderV2;
1199
+ toggleAccidents: boolean;
1200
+ policyholderActivities: PolicyholderActivity[];
1201
+ beneficialOwners: BeneficialOwner[];
1202
+ beneficialOwnersIndex: number;
1203
+ isPolicyholderBeneficialOwner: boolean;
1204
+ };
1084
1205
  additionalInsuranceTerms: AddCover[];
1085
1206
  additionalInsuranceTermsWithout: AddCover[];
1086
1207
  signUrls: SignUrlType[];
@@ -1102,8 +1223,6 @@ export class FormStoreClass {
1102
1223
  surveyByHealthBasePolicyholder: AnketaFirst | null;
1103
1224
  surveyByCriticalBase: AnketaFirst | null;
1104
1225
  surveyByCriticalBasePolicyholder: AnketaFirst | null;
1105
- surveyByHealthSecond: AnketaSecond[] | null;
1106
- surveyByCriticalSecond: AnketaSecond[] | null;
1107
1226
  definedAnswersId: {
1108
1227
  surveyByHealthBase: any;
1109
1228
  surveyByCriticalBase: any;
@@ -1122,6 +1241,7 @@ export class FormStoreClass {
1122
1241
  insuredForm: boolean;
1123
1242
  policyholdersRepresentativeForm: boolean;
1124
1243
  productConditionsForm: boolean;
1244
+ calculatorForm: boolean;
1125
1245
  recalculationForm: boolean;
1126
1246
  surveyByHealthBase: boolean;
1127
1247
  surveyByCriticalBase: boolean;
@@ -1167,6 +1287,16 @@ export class FormStoreClass {
1167
1287
  canBeClaimed: boolean | null;
1168
1288
  applicationTaskId: string | null;
1169
1289
  constructor(procuctConditionsTitle?: string) {
1290
+ this.lfb = {
1291
+ insurers: [],
1292
+ fixInsAmount: [],
1293
+ policyholder: new PolicyholderV2(),
1294
+ toggleAccidents: false,
1295
+ policyholderActivities: [new PolicyholderActivity()],
1296
+ beneficialOwners: [new BeneficialOwner()],
1297
+ beneficialOwnersIndex: 0,
1298
+ isPolicyholderBeneficialOwner: false,
1299
+ };
1170
1300
  this.additionalInsuranceTerms = [];
1171
1301
  this.additionalInsuranceTermsWithout = [];
1172
1302
  this.signUrls = [];
@@ -1188,8 +1318,6 @@ export class FormStoreClass {
1188
1318
  this.surveyByHealthBasePolicyholder = null;
1189
1319
  this.surveyByCriticalBase = null;
1190
1320
  this.surveyByCriticalBasePolicyholder = null;
1191
- this.surveyByHealthSecond = null;
1192
- this.surveyByCriticalSecond = null;
1193
1321
  this.definedAnswersId = {
1194
1322
  surveyByHealthBase: {},
1195
1323
  surveyByCriticalBase: {},
@@ -1216,6 +1344,7 @@ export class FormStoreClass {
1216
1344
  insuredForm: true,
1217
1345
  policyholdersRepresentativeForm: true,
1218
1346
  productConditionsForm: true,
1347
+ calculatorForm: true,
1219
1348
  recalculationForm: true,
1220
1349
  surveyByHealthBase: true,
1221
1350
  surveyByCriticalBase: true,
@@ -1249,3 +1378,139 @@ export class FormStoreClass {
1249
1378
  this.applicationTaskId = null;
1250
1379
  }
1251
1380
  }
1381
+
1382
+ export class PolicyholderV2 {
1383
+ placeholderGrounds: string | null;
1384
+ documentNumber: string | null;
1385
+ date: string | null;
1386
+ document: any;
1387
+ phoneNumber: string | null;
1388
+ iin: string | null;
1389
+ lastName: string | null;
1390
+ firstName: string | null;
1391
+ middleName: string | null;
1392
+ countryOfCitizenship: Value;
1393
+ namePosition: string | null;
1394
+ email: string | null;
1395
+ involvementForeignOfficial: boolean;
1396
+ bin: string | null;
1397
+ fullOrganizationName: string | null;
1398
+ iik: string | null;
1399
+ nameBank: Value;
1400
+ bik: string | null;
1401
+ kbe: string | null;
1402
+ signOfResidency: Value;
1403
+ countryOfTaxResidency: Value;
1404
+ economySectorCode: Value;
1405
+ typeEconomicActivity: string | null;
1406
+ legalAddress: Address;
1407
+ actualAddress: Address;
1408
+ sameAddress: boolean;
1409
+
1410
+ constructor() {
1411
+ this.placeholderGrounds = null;
1412
+ this.documentNumber = null;
1413
+ this.date = null;
1414
+ this.document = null;
1415
+ this.phoneNumber = null;
1416
+ this.iin = null;
1417
+ this.lastName = null;
1418
+ this.firstName = null;
1419
+ this.middleName = null;
1420
+ this.countryOfCitizenship = new Value();
1421
+ this.namePosition = null;
1422
+ this.email = null;
1423
+ this.involvementForeignOfficial = false;
1424
+ this.bin = null;
1425
+ this.fullOrganizationName = null;
1426
+ this.iik = null;
1427
+ this.nameBank = new Value();
1428
+ this.bik = null;
1429
+ this.kbe = null;
1430
+ this.signOfResidency = new Value();
1431
+ this.countryOfTaxResidency = new Value();
1432
+ this.economySectorCode = new Value();
1433
+ this.typeEconomicActivity = null;
1434
+ this.legalAddress = new Address();
1435
+ this.actualAddress = new Address();
1436
+ this.sameAddress = true;
1437
+ }
1438
+ }
1439
+
1440
+ export class Address {
1441
+ registrationCountry: Value;
1442
+ registrationProvince: Value;
1443
+ registrationRegionType: Value;
1444
+ registrationCity: Value;
1445
+ registrationQuarter: string | null;
1446
+ registrationMicroDistrict: string | null;
1447
+ registrationStreet: string | null;
1448
+ registrationNumberHouse: string | null;
1449
+ constructor() {
1450
+ this.registrationCountry = new Value();
1451
+ this.registrationProvince = new Value();
1452
+ this.registrationRegionType = new Value();
1453
+ this.registrationCity = new Value();
1454
+ this.registrationQuarter = null;
1455
+ this.registrationMicroDistrict = null;
1456
+ this.registrationStreet = null;
1457
+ this.registrationNumberHouse = null;
1458
+ }
1459
+ }
1460
+
1461
+ export class PolicyholderActivity {
1462
+ typeActivity: string | null;
1463
+ numberEmp: string | null;
1464
+ constructor() {
1465
+ this.typeActivity = null;
1466
+ this.numberEmp = null;
1467
+ }
1468
+ }
1469
+
1470
+ export class BeneficialOwner {
1471
+ informationBO: { id: number; name: string; value: string }[];
1472
+ isFirstManager: boolean;
1473
+ iin: string | null;
1474
+ lastName: string | null;
1475
+ firstName: string | null;
1476
+ middleName: string | null;
1477
+ citizenship: Value;
1478
+ isPublicForeignOfficial: boolean;
1479
+ documentType: Value;
1480
+ documentNumber: string | null;
1481
+ series: string | null;
1482
+ documentIssuers: Value;
1483
+ documentExpire: string | null;
1484
+
1485
+ constructor() {
1486
+ this.informationBO = [
1487
+ {
1488
+ id: 1,
1489
+ name: 'Отметка о наличии/отсутствии физического лица (лиц), которому прямо или косвенно принадлежат более 25 % долей участия в уставном капитале либо размещенных (за вычетом привилегированных и выкупленных обществом) акций юридического лица',
1490
+ value: '',
1491
+ },
1492
+ {
1493
+ id: 2,
1494
+ name: 'Отметка о наличии/отсутствии физического лица (лиц), осуществляющего контроль над юридическим лицом по иным основаниям',
1495
+ value: '',
1496
+ },
1497
+ {
1498
+ id: 3,
1499
+ name: 'Отметка о наличии/отсутствии физического лица (лиц) в интересах которого юридическим лицом устанавливаются деловые отношения (совершаются операции)',
1500
+ value: '',
1501
+ },
1502
+ ];
1503
+ this.isFirstManager = false;
1504
+ this.iin = null;
1505
+ this.lastName = null;
1506
+ this.firstName = null;
1507
+ this.middleName = null;
1508
+ this.citizenship = new Value();
1509
+ this.isPublicForeignOfficial = false;
1510
+ this.documentType = new Value();
1511
+ this.documentNumber = null;
1512
+ this.series = null;
1513
+ this.documentIssuers = new Value();
1514
+ this.documentExpire = null;
1515
+ }
1516
+ }
@@ -9,6 +9,12 @@ export const constants = Object.freeze({
9
9
  liferenta: 9,
10
10
  gons: 10,
11
11
  halykkazyna: 11,
12
+ daskamkorlyk: 13,
13
+ lifebusiness: 14,
14
+ },
15
+ amlProducts: {
16
+ checkcontragent: 1,
17
+ checkcontract: 2,
12
18
  },
13
19
  editableStatuses: [Statuses.StartForm, Statuses.EditBeneficiaryForm, Statuses.EditForm],
14
20
  documentsLinkVisibleStatuses: [
@@ -37,4 +43,41 @@ export const constants = Object.freeze({
37
43
  kzt: '₸',
38
44
  usd: '$',
39
45
  },
46
+ fixInsAmount: [
47
+ {
48
+ code: '500000',
49
+ id: '1',
50
+ nameKz: '500 000',
51
+ nameRu: '500 000',
52
+ ids: '',
53
+ },
54
+ {
55
+ code: '1000000',
56
+ id: '2',
57
+ nameKz: '1 000 000',
58
+ nameRu: '1 000 000',
59
+ ids: '',
60
+ },
61
+ {
62
+ code: '1500000',
63
+ id: '3',
64
+ nameKz: '1 500 000',
65
+ nameRu: '1 500 000',
66
+ ids: '',
67
+ },
68
+ {
69
+ code: '2000000',
70
+ id: '4',
71
+ nameKz: '2 000 000',
72
+ nameRu: '2 000 000',
73
+ ids: '',
74
+ },
75
+ {
76
+ code: '2500000',
77
+ id: '5',
78
+ nameKz: '2 500 000',
79
+ nameRu: '2 500 000',
80
+ ids: '',
81
+ },
82
+ ],
40
83
  });
@@ -30,6 +30,7 @@ export class Masks {
30
30
  date: string = '##.##.####';
31
31
  post: string = '######';
32
32
  threeDigit: string = '###';
33
+ iik: string = 'KZ################';
33
34
  }
34
35
 
35
36
  export const useMask = () => new Masks();
@@ -229,13 +230,19 @@ export const setAddressBeneficiary = (whichIndex: number, sameAddress: boolean)
229
230
  } else {
230
231
  if (beneficiary.response && beneficiary.response.addresses && beneficiary.response.addresses.length) {
231
232
  const benAddress = beneficiary.response.addresses;
232
- const country = dataStore.countries.find(i => (i.nameRu as string).match(new RegExp(benAddress[0].countryName, 'i')));
233
- const city = dataStore.cities.find(i => i.nameRu === benAddress[0].cityName.replace('г.', ''));
233
+ const countryName = benAddress[0].countryName;
234
+ const cityName = benAddress[0].cityName;
235
+ if (countryName) {
236
+ const country = dataStore.countries.find(i => (i.nameRu as string).match(new RegExp(countryName, 'i')));
237
+ beneficiary.registrationCountry = country ?? new Value();
238
+ }
239
+ if (cityName) {
240
+ const city = dataStore.cities.find(i => i.nameRu === cityName.replace('г.', ''));
241
+ beneficiary.registrationCity = city ?? new Value();
242
+ }
234
243
  const province = dataStore.states.find(i => i.ids === benAddress[0].stateCode);
235
244
  const localityType = dataStore.localityTypes.find(i => i.nameRu === benAddress[0].cityTypeName);
236
245
  const region = dataStore.regions.find(i => i.ids == benAddress[0].regionCode);
237
- beneficiary.registrationCountry = country ?? new Value();
238
- beneficiary.registrationCity = city ?? new Value();
239
246
  beneficiary.registrationMicroDistrict = beneficiary.response?.addresses[0].microRaion ?? '';
240
247
  beneficiary.registrationNumberApartment = beneficiary.response?.addresses[0].apartmentNumber ?? '';
241
248
  beneficiary.registrationNumberHouse = beneficiary.response?.addresses[0].blockNumber ?? '';
@@ -248,3 +255,32 @@ export const setAddressBeneficiary = (whichIndex: number, sameAddress: boolean)
248
255
  }
249
256
  }
250
257
  };
258
+
259
+ export const changeBridge = async (toBridge: 'efo' | 'lka', token: string) => {
260
+ const bridgeUrl = ref<string>(import.meta.env[`VITE_${toBridge.toUpperCase()}_URL`] as string);
261
+ if (!toBridge) return;
262
+ if (!bridgeUrl.value || !token) {
263
+ useDataStore().showToaster('error', `${useDataStore().t('toaster.noUrl')} [import.meta.env.VITE_${toBridge.toUpperCase()}_URL]`);
264
+ return;
265
+ }
266
+ const host = window.location.hostname;
267
+ if (toBridge === 'efo') {
268
+ if (host.startsWith('bpmsrv02') && bridgeUrl.value !== 'http://bpmsrv02:88') bridgeUrl.value = 'http://bpmsrv02:88';
269
+ if (host.startsWith('vega') && bridgeUrl.value !== 'http://vega:800') bridgeUrl.value = 'http://vega:800';
270
+ }
271
+ if (toBridge === 'lka') {
272
+ if (host.startsWith('bpmsrv02') && bridgeUrl.value !== 'http://bpmsrv02:890') bridgeUrl.value = 'http://bpmsrv02:890';
273
+ if (host.startsWith('vega') && bridgeUrl.value !== 'http://vega:890') bridgeUrl.value = 'http://vega:890';
274
+ }
275
+ window.open(`${bridgeUrl.value}/#/Token?token=${token}`, '_blank');
276
+ };
277
+
278
+ export const getFirstDayOfMonth = (year: number, month: number) => {
279
+ const date = new Date();
280
+ return new Date(year, month, 1, (date.getTimezoneOffset() / 60) * -1).toISOString();
281
+ };
282
+
283
+ export const getLastDayOfMonth = (year: number, month: number) => {
284
+ const date = new Date();
285
+ return new Date(year, month + 1, 0, (date.getTimezoneOffset() / 60) * -1).toISOString();
286
+ };
@@ -1,8 +1,8 @@
1
1
  export class Styles {
2
2
  // Base
3
- whiteBg: string = 'bg-white';
4
- whiteText: string = 'text-white';
5
- blackText: string = 'text-black';
3
+ whiteBg: string = 'bg-[#FFF]';
4
+ whiteText: string = '!text-[#FFF]';
5
+ blackText: string = '!text-[#000]';
6
6
  bodyBg: string = '!bg-[#F5F5F5]';
7
7
 
8
8
  whiteTextHover: string = 'hover:text-[#FFFFFF]';
@@ -11,7 +11,7 @@ export class Styles {
11
11
  blueBgHover: string = 'hover:bg-[#96abd6]';
12
12
  blueBgLight: string = 'bg-[#F3F6FC]';
13
13
  blueBgLightHover: string = 'hover:bg-[#f5f8fd]';
14
- blueText: string = 'text-[#A0B3D8]';
14
+ blueText: string = '!text-[#A0B3D8]';
15
15
  blueTextLight: string = 'text-[#F3F6FC]';
16
16
 
17
17
  // Green
@@ -23,13 +23,13 @@ export class Styles {
23
23
  greenBgLightHover: string = 'hover:bg-[#dbf0e4]';
24
24
 
25
25
  // Yellow
26
- yellowText: string = 'text-[#FAB31C]';
26
+ yellowText: string = '!text-[#FAB31C]';
27
27
  yellowBg: string = 'bg-[#FAB31C]';
28
28
  yellowBgHover: string = 'hover:bg-[#FAB31C]';
29
29
 
30
30
  // Grey
31
31
  greyBg: string = 'bg-[#B8B8B8]';
32
- greyText: string = 'text-[#B8B8B8]';
32
+ greyText: string = '!text-[#B8B8B8]';
33
33
  greyTextLight: string = 'text-[#B8B8B8]';
34
34
  greyIcon: string = 'text-[#DADADA]';
35
35
  greyIconBg: string = 'bg-[#DADADA]';
@@ -39,15 +39,22 @@ export class Styles {
39
39
  greyTextDark: string = 'text-[#9197A1]';
40
40
 
41
41
  // Red
42
- redText: string = 'text-[#FD2D39]';
42
+ redText: string = '!text-[#FD2D39]';
43
43
  redBg: string = 'bg-[#FF897D]';
44
44
  redBgHover: string = 'hover:bg-[#ff9b91]';
45
45
  // Error
46
46
  errorBg: string = 'bg-[#FF5449]';
47
- errorText: string = 'text-[#FF5449]';
47
+ errorText: string = '!text-[#FF5449]';
48
48
 
49
49
  // Border
50
50
  rounded: string = 'rounded-[8px]';
51
+ roundedT: string = 'rounded-t-[8px]';
52
+ roundedB: string = 'rounded-b-[8px]';
53
+ blueBorder: string = 'border-[1px] border-[#A0B3D8]';
54
+ blueLightBorder: string = 'border-[1px] border-[#F3F6FC]';
55
+ greenBorder: string = 'border-[1px] border-[#009C73]';
56
+ redBorder: string = 'border-[1px] border-[#FD2D39]';
57
+ yellowBorder: string = 'border-[1px] border-[#FAB31C]';
51
58
 
52
59
  // Text
53
60
  textSimple: string = 'text-[14px] leading-5';
@@ -63,6 +70,7 @@ export class Styles {
63
70
  redBtn: string;
64
71
  yellowBtn: string;
65
72
  whiteBtn: string;
73
+ whiteBtnBlueBr: string;
66
74
  blueLightBtn: string;
67
75
  greenLightBtn: string;
68
76
 
@@ -70,9 +78,10 @@ export class Styles {
70
78
  flexColNav: string;
71
79
  emptyBlockCol: string;
72
80
  scrollPage: string;
81
+ flexCenter: string = 'flex items-center justify-center';
73
82
 
74
83
  // Muted or disabled
75
- mutedText: string = 'text-[#99A3B3]';
84
+ mutedText: string = '!text-[#99A3B3]';
76
85
  disabled: string = 'cursor-not-allowed opacity-50';
77
86
 
78
87
  constructor() {
@@ -81,6 +90,7 @@ export class Styles {
81
90
  this.redBtn = `${this.redBg} ${this.whiteText} ${this.textTitle} ${this.rounded} w-full ${this.redBgHover}`;
82
91
  this.yellowBtn = `${this.yellowBg} ${this.whiteText} ${this.textTitle} ${this.rounded} w-full ${this.yellowBgHover}`;
83
92
  this.blueBtn = `${this.blueBg} ${this.whiteText} ${this.textTitle} ${this.rounded} w-full ${this.blueBgHover}`;
93
+ this.whiteBtnBlueBr = `${this.whiteBg} ${this.blueText} ${this.textTitle} ${this.rounded} w-full ${this.blueBgLightHover} ${this.blueBorder}`;
84
94
  this.whiteBtn = ` ${this.blackText} ${this.textTitle} ${this.rounded} w-full ${this.blueLightBgHover}`;
85
95
  this.blueLightBtn = `${this.blueBgLight} ${this.greyTextLight} ${this.textTitle} ${this.rounded} w-full ${this.blueBgLightHover}`;
86
96
  this.greenLightBtn = `${this.greenBgLight} ${this.greenText} ${this.textTitle} ${this.rounded} w-full ${this.greenBgLightHover}`;
@@ -88,7 +98,7 @@ export class Styles {
88
98
  // Complex
89
99
  this.flexColNav = 'flex flex-col gap-[10px] px-2 pt-[14px]';
90
100
  this.emptyBlockCol = 'w-[60px] sm:w-[100px] h-[30%] rounded-[8px] bg-[#f5f5f5]';
91
- this.scrollPage = 'max-h-[90vh] overflow-y-scroll';
101
+ this.scrollPage = 'max-h-[85svh] overflow-y-scroll';
92
102
  }
93
103
  }
94
104
 
package/configs/i18n.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { createI18n } from 'vue-i18n';
2
2
  import ru from '../locales/ru.json';
3
- import kz from '../locales/kz.json';
4
3
 
5
4
  const instance = createI18n({
6
5
  legacy: false,
@@ -8,7 +7,6 @@ const instance = createI18n({
8
7
  locale: 'ru',
9
8
  messages: {
10
9
  ru,
11
- kz,
12
10
  },
13
11
  });
14
12
 
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="h-full z-[1]" :class="[$dataStore.hasLayoutMargins ? 'lg:mx-[22px] lg:my-[33px] lg:shadow-xl' : '']">
3
- <div :class="[$libStyles.greenBg]" class="hidden z-[-1] lg:block absolute left-0 top-0 h-[200px] w-full"></div>
4
- <section class="flex h-full" :class="$libStyles.blueBgLight">
3
+ <div :class="[$styles.greenBg]" class="hidden z-[-1] lg:block absolute left-0 top-0 h-[200px] w-full"></div>
4
+ <section class="flex h-full" :class="$styles.blueBgLight">
5
5
  <base-menu-nav
6
6
  v-if="$dataStore.showNav"
7
7
  :selected="$dataStore.menu.selectedItem"
@@ -72,4 +72,7 @@ label .v-label .v-field-label,
72
72
  /* line-height: v-bind('dataStore.fontSize*1 + "px"') !important; */
73
73
  padding-bottom: 3px;
74
74
  }
75
+ .v-card {
76
+ border-radius: 8px !important;
77
+ }
75
78
  </style>
package/layouts/full.vue CHANGED
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="h-full z-[1]" :class="[$dataStore.hasLayoutMargins ? 'lg:mx-[22px] lg:my-[33px] lg:shadow-xl' : '']">
3
- <div :class="[$libStyles.greenBg]" class="hidden lg:block absolute z-[-1] left-0 top-0 h-[200px] w-full"></div>
3
+ <div :class="[$styles.greenBg]" class="hidden lg:block absolute z-[-1] left-0 top-0 h-[200px] w-full"></div>
4
4
  <slot></slot>
5
5
  </div>
6
6
  </template>