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.
- package/api/base.api.ts +684 -0
- package/api/index.ts +2 -620
- package/api/interceptors.ts +58 -14
- package/components/Button/Btn.vue +3 -3
- package/components/Complex/ContentBlock.vue +1 -1
- package/components/Complex/MessageBlock.vue +1 -1
- package/components/Complex/Page.vue +7 -1
- package/components/Complex/WhiteBlock.vue +7 -0
- package/components/Dialog/Dialog.vue +2 -2
- package/components/Dialog/FamilyDialog.vue +5 -5
- package/components/Form/FormBlock.vue +36 -29
- package/components/Form/FormSection.vue +2 -2
- package/components/Form/FormTextSection.vue +3 -3
- package/components/Form/FormToggle.vue +3 -3
- package/components/Form/ManagerAttachment.vue +55 -42
- package/components/Form/ProductConditionsBlock.vue +73 -20
- package/components/Input/EmptyFormField.vue +1 -1
- package/components/Input/FileInput.vue +8 -3
- package/components/Input/Monthpicker.vue +33 -0
- package/components/Input/PanelInput.vue +5 -1
- package/components/Input/RoundedEmptyField.vue +5 -0
- package/components/Input/RoundedSelect.vue +13 -0
- package/components/Layout/Drawer.vue +2 -1
- package/components/Layout/Header.vue +1 -1
- package/components/Layout/SettingsPanel.vue +5 -9
- package/components/List/ListEmpty.vue +1 -1
- package/components/Menu/MenuHover.vue +1 -1
- package/components/Menu/MenuNav.vue +1 -1
- package/components/Menu/MenuNavItem.vue +4 -4
- package/components/Pages/Anketa.vue +88 -47
- package/components/Pages/Auth.vue +21 -10
- package/components/Pages/ContragentForm.vue +505 -0
- package/components/Pages/Documents.vue +5 -5
- package/components/Pages/InvoiceInfo.vue +2 -2
- package/components/Pages/MemberForm.vue +215 -59
- package/components/Pages/ProductAgreement.vue +1 -3
- package/components/Pages/ProductConditions.vue +677 -151
- package/components/Panel/PanelHandler.vue +86 -21
- package/components/Panel/PanelSelectItem.vue +18 -3
- package/components/Utilities/IconBorder.vue +17 -0
- package/composables/axios.ts +1 -1
- package/composables/classes.ts +276 -11
- package/composables/constants.ts +43 -0
- package/composables/index.ts +40 -4
- package/composables/styles.ts +20 -10
- package/configs/i18n.ts +0 -2
- package/layouts/default.vue +5 -2
- package/layouts/full.vue +1 -1
- package/locales/ru.json +221 -6
- package/nuxt.config.ts +1 -1
- package/package.json +30 -39
- package/pages/500.vue +2 -2
- package/pages/Token.vue +1 -0
- package/plugins/helperFunctionsPlugins.ts +6 -7
- package/plugins/vuetifyPlugin.ts +2 -0
- package/store/data.store.ts +561 -226
- package/store/form.store.ts +11 -1
- package/store/member.store.ts +1 -1
- package/store/rules.ts +37 -2
- package/types/enum.ts +6 -0
- package/types/index.ts +145 -31
- package/components/Button/BtnIcon.vue +0 -47
- package/locales/kz.json +0 -585
package/composables/classes.ts
CHANGED
|
@@ -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
|
|
409
|
-
registrationMicroDistrict
|
|
410
|
-
registrationStreet
|
|
411
|
-
registrationNumberHouse
|
|
412
|
-
registrationNumberApartment
|
|
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
|
+
}
|
package/composables/constants.ts
CHANGED
|
@@ -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
|
});
|
package/composables/index.ts
CHANGED
|
@@ -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
|
|
233
|
-
const
|
|
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
|
+
};
|
package/composables/styles.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class Styles {
|
|
2
2
|
// Base
|
|
3
|
-
whiteBg: string = 'bg-
|
|
4
|
-
whiteText: string = 'text-
|
|
5
|
-
blackText: string = 'text-
|
|
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-[
|
|
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
|
|
package/layouts/default.vue
CHANGED
|
@@ -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="[$
|
|
4
|
-
<section class="flex h-full" :class="$
|
|
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="[$
|
|
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>
|