hl-core 0.0.10-beta.71 → 0.0.10-beta.72
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 +5 -20
- package/components/Dialog/Dialog.vue +1 -1
- package/components/Dialog/DigitalDocumentsDialog.vue +21 -43
- package/components/Menu/MenuNavItem.vue +9 -2
- package/components/Pages/Auth.vue +7 -4
- package/components/Pages/MemberForm.vue +5 -18
- package/components/Pages/ProductConditions.vue +73 -77
- package/components/Panel/PanelHandler.vue +11 -8
- package/composables/constants.ts +43 -0
- package/composables/index.ts +5 -1
- package/package.json +2 -2
- package/plugins/head.ts +1 -1
- package/store/data.store.ts +12 -17
- package/types/enum.ts +67 -0
package/api/base.api.ts
CHANGED
|
@@ -467,13 +467,6 @@ export class ApiClass {
|
|
|
467
467
|
});
|
|
468
468
|
}
|
|
469
469
|
|
|
470
|
-
async getCalculation(id: string) {
|
|
471
|
-
return await this.axiosCall<number>({
|
|
472
|
-
method: Methods.POST,
|
|
473
|
-
url: `/${this.productUrl}/api/Application/Calculator?processInstanceId=${id}`,
|
|
474
|
-
});
|
|
475
|
-
}
|
|
476
|
-
|
|
477
470
|
async setApplication(data: Types.SetApplicationRequest) {
|
|
478
471
|
return await this.axiosCall<void>({
|
|
479
472
|
method: Methods.POST,
|
|
@@ -804,14 +797,6 @@ export class ApiClass {
|
|
|
804
797
|
});
|
|
805
798
|
}
|
|
806
799
|
|
|
807
|
-
async getCalculator(data: Types.SetApplicationRequest) {
|
|
808
|
-
return await this.axiosCall<number>({
|
|
809
|
-
method: Methods.POST,
|
|
810
|
-
url: `/${this.productUrl}/api/Application/Calculator`,
|
|
811
|
-
data: data,
|
|
812
|
-
});
|
|
813
|
-
}
|
|
814
|
-
|
|
815
800
|
async saveClient(processInstanceId: string | number, clientId: string | null, data: any) {
|
|
816
801
|
return await this.axiosCall({
|
|
817
802
|
method: Methods.POST,
|
|
@@ -976,13 +961,13 @@ export class ApiClass {
|
|
|
976
961
|
});
|
|
977
962
|
}
|
|
978
963
|
|
|
979
|
-
async
|
|
980
|
-
return await this.axiosCall({
|
|
964
|
+
async calculateApplication(processInstanceIdOrData: string | Types.SetApplicationRequest) {
|
|
965
|
+
return await this.axiosCall<number>({
|
|
981
966
|
method: Methods.POST,
|
|
982
967
|
url: `/${this.productUrl}/api/Application/Calculator`,
|
|
983
|
-
|
|
984
|
-
processInstanceId
|
|
985
|
-
|
|
968
|
+
...(typeof processInstanceIdOrData === 'string'
|
|
969
|
+
? { params: { processInstanceId: processInstanceIdOrData } }
|
|
970
|
+
: { data: processInstanceIdOrData }),
|
|
986
971
|
});
|
|
987
972
|
}
|
|
988
973
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<v-dialog class="base-dialog" :model-value="Boolean(modelValue)" @update:modelValue="$emit('update:modelValue', $event)" :persistent="persistent">
|
|
3
|
-
<v-card class="self-center w-full sm:w-4/4 md:w-2/3 lg:w-[35%] xl:w-[500px] rounded-lg !p-[36px]">
|
|
3
|
+
<v-card class="self-center w-full sm:w-4/4 md:w-2/3 lg:w-[35%] xl:w-[500px] rounded-lg !px-[15px] !py-[30px] sm:!p-[36px]">
|
|
4
4
|
<div class="flex sm:flex-row flex-col place-items-center sm:place-items-start">
|
|
5
5
|
<div class="h-20 w-20 place-items-start pt-1">
|
|
6
6
|
<div class="bg-[#F7F7F7] h-24 w-24 sm:h-16 sm:w-16 rounded grid place-items-center invisible sm:visible">
|
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
<div class="flex flex-col gap-[10px] w-full align-center">
|
|
3
3
|
<v-expansion-panels :flat="true">
|
|
4
4
|
<v-expansion-panel class="!rounded-[8px]">
|
|
5
|
-
<v-expansion-panel-title class="!text-[12px] border border-[#00000014]">
|
|
6
|
-
Как получить цифровой документ
|
|
7
|
-
</v-expansion-panel-title>
|
|
5
|
+
<v-expansion-panel-title class="!text-[12px] border border-[#00000014]"> Как получить цифровой документ </v-expansion-panel-title>
|
|
8
6
|
<v-expansion-panel-text class="text-[12px] text-[#464f60]">
|
|
9
7
|
1. Выберите тип документа.<br /><br />
|
|
10
8
|
2. Через приложение eGov mobile и другие приложения: <br />
|
|
@@ -21,42 +19,18 @@
|
|
|
21
19
|
</v-expansion-panel>
|
|
22
20
|
</v-expansion-panels>
|
|
23
21
|
<div class="d-flex flex-col gap-0.5 w-full">
|
|
24
|
-
<base-rounded-select
|
|
25
|
-
v-model="documentType"
|
|
26
|
-
class="document-type-select"
|
|
27
|
-
:items="documentItems"
|
|
28
|
-
:label="$dataStore.t('form.documentType')"
|
|
29
|
-
hide-details
|
|
30
|
-
/>
|
|
22
|
+
<base-rounded-select v-model="documentType" class="document-type-select" :items="documentItems" :label="$dataStore.t('form.documentType')" hide-details />
|
|
31
23
|
<div class="digital-document-otp flex flex-col">
|
|
32
|
-
<base-otp-input
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
v-if="!loading && otpSendDisabled"
|
|
38
|
-
class="text-center"
|
|
39
|
-
:class="[$styles.mutedText]"
|
|
40
|
-
>
|
|
41
|
-
Введите код цифрового документа из <span class="underline underline-offset-2">eGov Mobile</span> или <span class="underline underline-offset-2">банковского приложения</span>.
|
|
42
|
-
</span>
|
|
24
|
+
<base-otp-input v-model="otpCode" @keyup.enter.prevent="otpCode.length === otpLength && emitGetCode()" />
|
|
25
|
+
<span v-if="!loading && otpSendDisabled" class="text-center" :class="[$styles.mutedText]">
|
|
26
|
+
Введите код цифрового документа из <span class="underline underline-offset-2">eGov Mobile</span> или
|
|
27
|
+
<span class="underline underline-offset-2">банковского приложения</span>.
|
|
28
|
+
</span>
|
|
43
29
|
</div>
|
|
44
30
|
</div>
|
|
45
|
-
<div class="w-full d-flex gap-4">
|
|
46
|
-
<base-btn
|
|
47
|
-
|
|
48
|
-
:disabled="loading"
|
|
49
|
-
:loading="loading"
|
|
50
|
-
:btn="$styles.whiteBorderBtn"
|
|
51
|
-
text="Отправить SMS-код"
|
|
52
|
-
@click="emitGetCode"
|
|
53
|
-
/>
|
|
54
|
-
<base-btn
|
|
55
|
-
:disabled="loading"
|
|
56
|
-
:loading="loading"
|
|
57
|
-
text="Получить документ"
|
|
58
|
-
@click="emitGetDocument"
|
|
59
|
-
/>
|
|
31
|
+
<div class="w-full d-flex flex-col sm:flex-row gap-4">
|
|
32
|
+
<base-btn v-if="!otpSendDisabled" :disabled="loading" :loading="loading" :btn="$styles.whiteBorderBtn" text="Отправить SMS-код" @click="emitGetCode" />
|
|
33
|
+
<base-btn :disabled="loading" :loading="loading" text="Получить документ" @click="emitGetDocument" />
|
|
60
34
|
</div>
|
|
61
35
|
</div>
|
|
62
36
|
</template>
|
|
@@ -80,7 +54,7 @@ const props = defineProps({
|
|
|
80
54
|
otpSendDisabled: {
|
|
81
55
|
type: Boolean,
|
|
82
56
|
default: false,
|
|
83
|
-
}
|
|
57
|
+
},
|
|
84
58
|
});
|
|
85
59
|
const emit = defineEmits(['getCode', 'getDigitalDocument', 'updateDigitalDocuments']);
|
|
86
60
|
|
|
@@ -95,7 +69,7 @@ const emitGetCode = () => {
|
|
|
95
69
|
}
|
|
96
70
|
|
|
97
71
|
emit('getCode', documentType.value);
|
|
98
|
-
}
|
|
72
|
+
};
|
|
99
73
|
|
|
100
74
|
const emitGetDocument = () => {
|
|
101
75
|
if (!otpCode.value) {
|
|
@@ -104,16 +78,20 @@ const emitGetDocument = () => {
|
|
|
104
78
|
}
|
|
105
79
|
|
|
106
80
|
emit('getDigitalDocument', otpCode.value);
|
|
107
|
-
}
|
|
81
|
+
};
|
|
108
82
|
</script>
|
|
109
83
|
|
|
110
84
|
<style scoped>
|
|
111
85
|
:deep(.v-otp-input__content) {
|
|
112
86
|
max-width: 360px;
|
|
113
|
-
gap: 12px!important;
|
|
87
|
+
gap: 12px !important;
|
|
88
|
+
@media (max-width: 768px) {
|
|
89
|
+
max-width: 100%;
|
|
90
|
+
gap: 8px !important;
|
|
91
|
+
}
|
|
114
92
|
}
|
|
115
93
|
.v-expansion-panel-title {
|
|
116
|
-
height: 60px!important;
|
|
94
|
+
height: 60px !important;
|
|
117
95
|
}
|
|
118
96
|
.v-expansion-panel--active > .v-expansion-panel-title {
|
|
119
97
|
border-bottom-left-radius: inherit;
|
|
@@ -121,9 +99,9 @@ const emitGetDocument = () => {
|
|
|
121
99
|
}
|
|
122
100
|
.document-type-select:deep(.v-field) {
|
|
123
101
|
height: 60px;
|
|
124
|
-
border: 1px solid #dadada!important;
|
|
102
|
+
border: 1px solid #dadada !important;
|
|
125
103
|
}
|
|
126
104
|
.document-type-select:deep(.v-label.v-field-label--floating) {
|
|
127
105
|
top: 0;
|
|
128
106
|
}
|
|
129
|
-
</style>
|
|
107
|
+
</style>
|
|
@@ -9,10 +9,13 @@
|
|
|
9
9
|
]"
|
|
10
10
|
class="h-[60px] flex items-center justify-between hover:bg-[#A0B3D8] hover:!text-white pl-4 cursor-pointer transition-all group"
|
|
11
11
|
>
|
|
12
|
-
<
|
|
12
|
+
<div class="flex items-center gap-3">
|
|
13
|
+
<i v-if="icon || menuItem.icon" class="mdi text-xl" :class="[icon || menuItem.icon]"></i>
|
|
14
|
+
<span>{{ menuItem.title }}</span>
|
|
15
|
+
</div>
|
|
13
16
|
<div class="flex items-center">
|
|
14
|
-
<i v-if="menuItem.icon" class="mdi text-xl pr-4" :class="[menuItem.icon]"></i>
|
|
15
17
|
<base-chip :chip="menuItem.chip" />
|
|
18
|
+
<i v-if="typeof menuItem.link == 'object' || menuItem.chip" class="mdi mdi-folder-outline text-xl pl-4 pr-4"></i>
|
|
16
19
|
</div>
|
|
17
20
|
<v-tooltip v-if="menuItem.description" activator="parent" location="bottom">{{ menuItem.description }}</v-tooltip>
|
|
18
21
|
</div>
|
|
@@ -35,6 +38,10 @@ export default defineComponent({
|
|
|
35
38
|
type: Boolean,
|
|
36
39
|
default: false,
|
|
37
40
|
},
|
|
41
|
+
icon: {
|
|
42
|
+
type: String,
|
|
43
|
+
default: '',
|
|
44
|
+
},
|
|
38
45
|
},
|
|
39
46
|
});
|
|
40
47
|
</script>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
:class="{ '!hidden': !$display().lgAndUp.value }"
|
|
21
21
|
class="w-full lg:w-1/4 bg-white flex flex-col justify-between border-r-2 relative px-8"
|
|
22
22
|
>
|
|
23
|
-
<img draggable="false" class="w-[50%] mt-8" src="~/assets/
|
|
23
|
+
<img draggable="false" class="w-[50%] mt-8" src="~/assets/logo.svg" />
|
|
24
24
|
<div class="self-center flex flex-col items-center justify-center base-auth">
|
|
25
25
|
<v-carousel :show-arrows="false" color="#009C73">
|
|
26
26
|
<v-carousel-item v-for="(item, index) of carouselItems" :key="index">
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
:class="{ '!block': !$display().lgAndUp.value }"
|
|
42
42
|
draggable="false"
|
|
43
43
|
class="hidden w-2/4 sm:w-1/3 mb-10 self-center"
|
|
44
|
-
src="~/assets/
|
|
44
|
+
src="~/assets/logo.svg"
|
|
45
45
|
/>
|
|
46
46
|
<div class="flex flex-col items-center mb-8 text-center">
|
|
47
47
|
<h1 class="text-[28px] font-medium mb-1">
|
|
@@ -173,6 +173,9 @@ export default defineComponent({
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
});
|
|
176
|
+
onUnmounted(() => {
|
|
177
|
+
authLoading.value = false;
|
|
178
|
+
});
|
|
176
179
|
|
|
177
180
|
const submitAuthForm = async () => {
|
|
178
181
|
await vForm.value.validate().then(async (v: { valid: Boolean; errors: any }) => {
|
|
@@ -181,17 +184,17 @@ export default defineComponent({
|
|
|
181
184
|
authLoading.value = true;
|
|
182
185
|
await dataStore.loginUser(login.value, password.value, numAttempts.value);
|
|
183
186
|
numAttempts.value++;
|
|
184
|
-
authLoading.value = false;
|
|
185
187
|
try {
|
|
186
188
|
const redirectUrl = redirectUtils.getAndClearRedirectUrl();
|
|
187
|
-
|
|
188
189
|
if (redirectUrl) {
|
|
189
190
|
await router.push(redirectUrl);
|
|
190
191
|
} else {
|
|
191
192
|
await router.push({ name: 'index' });
|
|
192
193
|
}
|
|
194
|
+
authLoading.value = false;
|
|
193
195
|
} catch (error) {
|
|
194
196
|
console.error('Redirect error:', error);
|
|
197
|
+
authLoading.value = false;
|
|
195
198
|
await router.push({ name: 'index' });
|
|
196
199
|
}
|
|
197
200
|
}
|
|
@@ -685,23 +685,9 @@
|
|
|
685
685
|
/>
|
|
686
686
|
<base-form-input v-model.trim="member.email" :label="$dataStore.t('form.email')" :readonly="isDisabled" :clearable="!isDisabled" :rules="$rules.email" />
|
|
687
687
|
</base-form-section>
|
|
688
|
-
<base-form-section
|
|
689
|
-
v-
|
|
690
|
-
:
|
|
691
|
-
>
|
|
692
|
-
<base-form-input
|
|
693
|
-
v-model="member.iin"
|
|
694
|
-
:label="$dataStore.t('form.bin')"
|
|
695
|
-
:maska="$maska.iin"
|
|
696
|
-
:readonly="true"
|
|
697
|
-
:clearable="false"
|
|
698
|
-
/>
|
|
699
|
-
<base-form-input
|
|
700
|
-
v-model.trim="member.lastName"
|
|
701
|
-
:readonly="true"
|
|
702
|
-
:clearable="false"
|
|
703
|
-
:label="$dataStore.t('aml.legalName')"
|
|
704
|
-
/>
|
|
688
|
+
<base-form-section v-if="$dataStore.isMycar && whichForm === formStore.beneficiaryFormKey" :title="$dataStore.t('form.personalData')">
|
|
689
|
+
<base-form-input v-model="member.iin" :label="$dataStore.t('form.bin')" :maska="$maska.iin" :readonly="true" :clearable="false" />
|
|
690
|
+
<base-form-input v-model.trim="member.lastName" :readonly="true" :clearable="false" :label="$dataStore.t('aml.legalName')" />
|
|
705
691
|
</base-form-section>
|
|
706
692
|
</v-form>
|
|
707
693
|
<base-btn v-if="showSaveButton" :loading="isButtonLoading || isSubmittingForm" :text="$dataStore.t('buttons.save')" @click="submitForm" />
|
|
@@ -843,7 +829,7 @@
|
|
|
843
829
|
</v-list-item>
|
|
844
830
|
</v-list>
|
|
845
831
|
<base-list-empty v-if="isEmpty" />
|
|
846
|
-
<div class="flex gap-4">
|
|
832
|
+
<div class="flex flex-col sm:flex-row gap-4">
|
|
847
833
|
<base-btn class="px-6" size="sm" :text="$dataStore.t('confirm.cancel')" :btn="$styles.whiteBorderBtn" :classes="$styles.blueText" @click="closeFamilyDialog" />
|
|
848
834
|
<base-btn
|
|
849
835
|
v-if="isOwnChild || (!isOwnChild && childrenLoaded)"
|
|
@@ -2325,6 +2311,7 @@ export default {
|
|
|
2325
2311
|
if (responseData.firstNameLatin && dataStore.isLifetrip) member.value.firstNameLat = responseData.firstNameLatin;
|
|
2326
2312
|
if (responseData.lastNameLatin && dataStore.isLifetrip) member.value.lastNameLat = responseData.lastNameLatin;
|
|
2327
2313
|
if (responseData.middleName) member.value.middleName = responseData.middleName;
|
|
2314
|
+
member.value.longName = [responseData.lastName, responseData.firstName, responseData.middleName].filter(Boolean).join(' ');
|
|
2328
2315
|
if (responseData.birthDate) member.value.birthDate = reformatDate(responseData.birthDate);
|
|
2329
2316
|
if (responseData.sex) {
|
|
2330
2317
|
const sex = responseData.sex.toUpperCase();
|
|
@@ -347,13 +347,7 @@
|
|
|
347
347
|
:clearable="!isDisabledAgentCommission"
|
|
348
348
|
:rules="agencyPartRule"
|
|
349
349
|
/>
|
|
350
|
-
<base-form-input
|
|
351
|
-
v-if="hasTariffName"
|
|
352
|
-
v-model="productConditionsForm.tariffName"
|
|
353
|
-
:readonly="true"
|
|
354
|
-
:clearable="false"
|
|
355
|
-
label="Тариф"
|
|
356
|
-
/>
|
|
350
|
+
<base-form-input v-if="hasTariffName" v-model="productConditionsForm.tariffName" :readonly="true" :clearable="false" label="Тариф" />
|
|
357
351
|
</base-form-section>
|
|
358
352
|
<section v-if="whichProduct === 'pensionannuitynew'">
|
|
359
353
|
<base-animation>
|
|
@@ -518,12 +512,7 @@
|
|
|
518
512
|
>до {{ transferMaxDate }} включительно</span
|
|
519
513
|
>
|
|
520
514
|
</div>
|
|
521
|
-
<base-form-input
|
|
522
|
-
v-model="contract.transferContractNumber"
|
|
523
|
-
:label="$dataStore.t('pension.globalId')"
|
|
524
|
-
:readonly="isDisabled"
|
|
525
|
-
:clearable="!isDisabled"
|
|
526
|
-
/>
|
|
515
|
+
<base-form-input v-model="contract.transferContractNumber" :label="$dataStore.t('pension.globalId')" :readonly="isDisabled" :clearable="!isDisabled" />
|
|
527
516
|
<base-form-input
|
|
528
517
|
v-model="contract.transferContractRegNumber"
|
|
529
518
|
:label="$dataStore.t('pension.transferRegNumber')"
|
|
@@ -557,13 +546,13 @@
|
|
|
557
546
|
Если выкупная сумма содержит ОППВ, необходимо приложить развернутую выписку из ЕНПФ.
|
|
558
547
|
</p>
|
|
559
548
|
</div>
|
|
560
|
-
<!-- <base-form-input-->
|
|
561
|
-
<!-- v-if="contract.transferContractIsOppv"-->
|
|
562
|
-
<!-- v-model="contract.transferContractMonthCount"-->
|
|
563
|
-
<!-- :disabled="$dataStore.isLoading"-->
|
|
564
|
-
<!-- :rules="$rules.required.concat($rules.notZero, $rules.numbers)"-->
|
|
565
|
-
<!-- :label="$dataStore.t('pension.compulsoryProfMonthCount')"-->
|
|
566
|
-
<!-- />-->
|
|
549
|
+
<!-- <base-form-input-->
|
|
550
|
+
<!-- v-if="contract.transferContractIsOppv"-->
|
|
551
|
+
<!-- v-model="contract.transferContractMonthCount"-->
|
|
552
|
+
<!-- :disabled="$dataStore.isLoading"-->
|
|
553
|
+
<!-- :rules="$rules.required.concat($rules.notZero, $rules.numbers)"-->
|
|
554
|
+
<!-- :label="$dataStore.t('pension.compulsoryProfMonthCount')"-->
|
|
555
|
+
<!-- />-->
|
|
567
556
|
<base-btn
|
|
568
557
|
v-if="!isDisabled"
|
|
569
558
|
class="mt-3"
|
|
@@ -846,12 +835,7 @@
|
|
|
846
835
|
/>
|
|
847
836
|
</div>
|
|
848
837
|
<template v-if="whichProduct === 'halykkazyna'">
|
|
849
|
-
<base-form-toggle
|
|
850
|
-
v-model="productConditionsForm.managerHelped"
|
|
851
|
-
:has-border="false"
|
|
852
|
-
:title="$dataStore.t('Вам помогал менеджер?')"
|
|
853
|
-
height="min-h-[56px]"
|
|
854
|
-
/>
|
|
838
|
+
<base-form-toggle v-model="productConditionsForm.managerHelped" :has-border="false" :title="$dataStore.t('Вам помогал менеджер?')" height="min-h-[56px]" />
|
|
855
839
|
<base-panel-input
|
|
856
840
|
v-if="isDisabled"
|
|
857
841
|
v-model="productConditionsForm.hasEnhancedGift"
|
|
@@ -873,7 +857,8 @@
|
|
|
873
857
|
<div class="flex items-center gap-[8px] mt-2">
|
|
874
858
|
<v-icon class="text-[#99A3B3] text-[20px]">mdi-information-outline</v-icon>
|
|
875
859
|
<p class="font-normal text-[14px] leading-[20px] tracking-[0.25px] text-[#99A3B3]">
|
|
876
|
-
Доступно, если размер страховой премии больше {{ $dataStore.getNumberWithSpaces(minEnhancedGiftSum) }} тенге или
|
|
860
|
+
Доступно, если размер страховой премии больше {{ $dataStore.getNumberWithSpaces(minEnhancedGiftSum) }} тенге или
|
|
861
|
+
{{ $dataStore.getNumberWithSpaces(minEnhancedGiftSumInUsd) }} долларов.
|
|
877
862
|
</p>
|
|
878
863
|
</div>
|
|
879
864
|
</template>
|
|
@@ -1163,10 +1148,10 @@ export default defineComponent({
|
|
|
1163
1148
|
}
|
|
1164
1149
|
});
|
|
1165
1150
|
const enpfNoteFile = computed(() => {
|
|
1166
|
-
if(useEnv().isProduction) {
|
|
1167
|
-
return formStore.signedDocumentList.find(i => i.fileTypeCode === '8' && i.iin === contragentData.value?.iin)
|
|
1151
|
+
if (useEnv().isProduction) {
|
|
1152
|
+
return formStore.signedDocumentList.find(i => i.fileTypeCode === '8' && i.iin === contragentData.value?.iin);
|
|
1168
1153
|
} else {
|
|
1169
|
-
return formStore.signedDocumentList.find(i => i.fileTypeCode === '8')
|
|
1154
|
+
return formStore.signedDocumentList.find(i => i.fileTypeCode === '8');
|
|
1170
1155
|
}
|
|
1171
1156
|
});
|
|
1172
1157
|
const isEnpfSum = pensionForm.value?.isEnpfSum ?? false;
|
|
@@ -1185,7 +1170,7 @@ export default defineComponent({
|
|
|
1185
1170
|
const firstAmount = ref<boolean>(true);
|
|
1186
1171
|
const isHalykBank = formStore.lfb.policyholder.clientData.iin.replace(/-/g, '') === '940140000385';
|
|
1187
1172
|
const closeDate = ref<any>('');
|
|
1188
|
-
const minEnhancedGiftSum = 10_000_000
|
|
1173
|
+
const minEnhancedGiftSum = 10_000_000;
|
|
1189
1174
|
|
|
1190
1175
|
const checkTransferContractDate = (val: any) => {
|
|
1191
1176
|
if (val) {
|
|
@@ -1200,16 +1185,21 @@ export default defineComponent({
|
|
|
1200
1185
|
};
|
|
1201
1186
|
|
|
1202
1187
|
const minEnhancedGiftSumInUsd = computed(() => {
|
|
1203
|
-
if(typeof dataStore.currencies.usd === 'number') {
|
|
1204
|
-
return Math.round(minEnhancedGiftSum / dataStore.currencies.usd)
|
|
1188
|
+
if (typeof dataStore.currencies.usd === 'number') {
|
|
1189
|
+
return Math.round(minEnhancedGiftSum / dataStore.currencies.usd);
|
|
1205
1190
|
}
|
|
1206
|
-
})
|
|
1191
|
+
});
|
|
1207
1192
|
const enhancedGiftDisabled = computed(() => {
|
|
1208
|
-
const insurancePremium = parseAmount(productConditionsForm.insurancePremiumPerMonth)
|
|
1193
|
+
const insurancePremium = parseAmount(productConditionsForm.insurancePremiumPerMonth);
|
|
1209
1194
|
|
|
1210
|
-
return (
|
|
1211
|
-
|
|
1212
|
-
|
|
1195
|
+
return (
|
|
1196
|
+
!insurancePremium ||
|
|
1197
|
+
insurancePremium < minEnhancedGiftSum ||
|
|
1198
|
+
!productConditionsForm.coverPeriod ||
|
|
1199
|
+
productConditionsForm.coverPeriod < 1 ||
|
|
1200
|
+
productConditionsForm.coverPeriod > 5
|
|
1201
|
+
);
|
|
1202
|
+
});
|
|
1213
1203
|
const isShownAdditionalTerms = computed(() => {
|
|
1214
1204
|
if (whichProduct.value === 'gons') {
|
|
1215
1205
|
return false;
|
|
@@ -1277,7 +1267,7 @@ export default defineComponent({
|
|
|
1277
1267
|
return !!productConditionsForm.insurancePremiumPerMonth;
|
|
1278
1268
|
}
|
|
1279
1269
|
if (whichProduct.value === 'gons') {
|
|
1280
|
-
return false
|
|
1270
|
+
return false;
|
|
1281
1271
|
}
|
|
1282
1272
|
return !!productConditionsForm.requestedSumInsured && !!productConditionsForm.insurancePremiumPerMonth;
|
|
1283
1273
|
});
|
|
@@ -1592,7 +1582,7 @@ export default defineComponent({
|
|
|
1592
1582
|
return dataStore.t('generalConditions');
|
|
1593
1583
|
});
|
|
1594
1584
|
const hasInsStartDate = computed(() => {
|
|
1595
|
-
if (whichProduct.value === 'lifebusiness' || whichProduct.value === 'gns'
|
|
1585
|
+
if (whichProduct.value === 'lifebusiness' || whichProduct.value === 'gns' || whichProduct.value === 'halykmycar') {
|
|
1596
1586
|
return true;
|
|
1597
1587
|
}
|
|
1598
1588
|
return false;
|
|
@@ -1630,12 +1620,12 @@ export default defineComponent({
|
|
|
1630
1620
|
);
|
|
1631
1621
|
|
|
1632
1622
|
const isCompulsoryProfContractAmount = computed(() => {
|
|
1633
|
-
return Number(cleanWhiteSpace(pensionForm.value.compulsoryProfContractAmount)) > 0
|
|
1634
|
-
})
|
|
1623
|
+
return Number(cleanWhiteSpace(pensionForm.value.compulsoryProfContractAmount)) > 0;
|
|
1624
|
+
});
|
|
1635
1625
|
|
|
1636
1626
|
const transferContractsHasOppv = computed(() => {
|
|
1637
|
-
return transferContracts.value.length && transferContracts.value.some(item => item.transferContractIsOppv)
|
|
1638
|
-
})
|
|
1627
|
+
return transferContracts.value.length && transferContracts.value.some(item => item.transferContractIsOppv);
|
|
1628
|
+
});
|
|
1639
1629
|
|
|
1640
1630
|
const getContragent = async () => {
|
|
1641
1631
|
const data = await dataStore.api.getContragentById(
|
|
@@ -2154,35 +2144,36 @@ export default defineComponent({
|
|
|
2154
2144
|
const isTruthyNumber = (value: any): boolean => {
|
|
2155
2145
|
const num = Number(value?.toString().replace(/\s/g, ''));
|
|
2156
2146
|
return !!num;
|
|
2157
|
-
}
|
|
2147
|
+
};
|
|
2158
2148
|
|
|
2159
2149
|
const doesNeedEnpfNoteFile = (): boolean => {
|
|
2160
|
-
let needFile = false
|
|
2150
|
+
let needFile = false;
|
|
2161
2151
|
|
|
2162
|
-
if(
|
|
2152
|
+
if (
|
|
2163
2153
|
dataStore.isProcessEditable(formStore.applicationData.statusCode) &&
|
|
2164
|
-
(isTruthyNumber(pensionForm.value.compulsoryProfContractAmount) ||
|
|
2165
|
-
isTruthyNumber(pensionForm.value.compulsoryContractAmount) ||
|
|
2166
|
-
transferContractsHasOppv.value
|
|
2167
|
-
)
|
|
2154
|
+
(isTruthyNumber(pensionForm.value.compulsoryProfContractAmount) || isTruthyNumber(pensionForm.value.compulsoryContractAmount) || transferContractsHasOppv.value)
|
|
2168
2155
|
) {
|
|
2169
|
-
needFile = true
|
|
2156
|
+
needFile = true;
|
|
2170
2157
|
}
|
|
2171
2158
|
|
|
2172
2159
|
return needFile;
|
|
2173
|
-
}
|
|
2160
|
+
};
|
|
2174
2161
|
|
|
2175
2162
|
const submitForm = async () => {
|
|
2176
2163
|
if (whichProduct.value === 'pensionannuitynew') {
|
|
2177
|
-
const needsEnpfNoteFile = doesNeedEnpfNoteFile()
|
|
2178
|
-
if(needsEnpfNoteFile && !enpfNoteFile.value) {
|
|
2164
|
+
const needsEnpfNoteFile = doesNeedEnpfNoteFile();
|
|
2165
|
+
if (needsEnpfNoteFile && !enpfNoteFile.value) {
|
|
2179
2166
|
dataStore.showToaster('error', 'Необходимо вложить Выписка ЕНПФ');
|
|
2180
2167
|
return;
|
|
2181
2168
|
}
|
|
2182
|
-
const isValid = !!(
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2169
|
+
const isValid = !!(
|
|
2170
|
+
formatSpacedNumber(pensionForm.value.compulsoryContractAmount) ||
|
|
2171
|
+
formatSpacedNumber(pensionForm.value.compulsoryProfContractAmount) ||
|
|
2172
|
+
transferContracts.value?.length
|
|
2173
|
+
);
|
|
2174
|
+
if (formStore.applicationData.processCode !== 24 && !isValid) {
|
|
2175
|
+
dataStore.showToaster('error', 'Отказ');
|
|
2176
|
+
return;
|
|
2186
2177
|
}
|
|
2187
2178
|
}
|
|
2188
2179
|
vForm.value.validate().then(async (v: { valid: Boolean; errors: any }) => {
|
|
@@ -2450,10 +2441,10 @@ export default defineComponent({
|
|
|
2450
2441
|
}
|
|
2451
2442
|
dataStore.isLoading = true;
|
|
2452
2443
|
try {
|
|
2453
|
-
if(isCompulsoryProfContractAmount.value || transferContractsHasOppv.value) {
|
|
2454
|
-
await setOppvCount(file)
|
|
2444
|
+
if (isCompulsoryProfContractAmount.value || transferContractsHasOppv.value) {
|
|
2445
|
+
await setOppvCount(file);
|
|
2455
2446
|
} else {
|
|
2456
|
-
await uploadFile(file)
|
|
2447
|
+
await uploadFile(file);
|
|
2457
2448
|
}
|
|
2458
2449
|
await dataStore.getSignedDocList(formStore.applicationData.processInstanceId, formStore.applicationData.slave?.processInstanceId);
|
|
2459
2450
|
dataStore.showToaster('success', dataStore.t('toaster.successOperation'));
|
|
@@ -2471,7 +2462,7 @@ export default defineComponent({
|
|
|
2471
2462
|
if (typeof result === 'number') {
|
|
2472
2463
|
pensionForm.value.compulsoryProfMonthCount = result;
|
|
2473
2464
|
}
|
|
2474
|
-
}
|
|
2465
|
+
};
|
|
2475
2466
|
const uploadFile = async (file: File) => {
|
|
2476
2467
|
const formData = new FormData();
|
|
2477
2468
|
const information: any = [];
|
|
@@ -2482,14 +2473,14 @@ export default defineComponent({
|
|
|
2482
2473
|
information.push({
|
|
2483
2474
|
identifier: `${uuidV4}${ext}`,
|
|
2484
2475
|
iin: contragentData.value?.iin ? contragentData.value?.iin.replaceAll('-', '') : null,
|
|
2485
|
-
processInstanceId: formStore.applicationData.processInstanceId,
|
|
2476
|
+
processInstanceId: isSlavePensionForm.value ? formStore.applicationData.slave.processInstanceId : formStore.applicationData.processInstanceId,
|
|
2486
2477
|
fileTypeCode: selectedDocument ? selectedDocument.code : null,
|
|
2487
2478
|
fileTypeId: selectedDocument ? selectedDocument.id : null,
|
|
2488
2479
|
fileName: file.name,
|
|
2489
2480
|
});
|
|
2490
2481
|
formData.append('fileData', JSON.stringify(information));
|
|
2491
2482
|
await dataStore.uploadFiles(formData, false);
|
|
2492
|
-
}
|
|
2483
|
+
};
|
|
2493
2484
|
const openFileActionsPanel = async (document: DocumentItem) => {
|
|
2494
2485
|
dataStore.rightPanel.title = document.fileTypeName!;
|
|
2495
2486
|
dataStore.rightPanel.open = true;
|
|
@@ -2512,12 +2503,14 @@ export default defineComponent({
|
|
|
2512
2503
|
iin: enpfNoteFile.value.iin ?? '',
|
|
2513
2504
|
};
|
|
2514
2505
|
await dataStore.deleteFile(data);
|
|
2515
|
-
formStore.signedDocumentList = formStore.signedDocumentList.filter(doc => doc.id !== data.id)
|
|
2506
|
+
formStore.signedDocumentList = formStore.signedDocumentList.filter(doc => doc.id !== data.id);
|
|
2516
2507
|
deletionDialog.value = false;
|
|
2517
2508
|
isFileActionsPanelOpen.value = false;
|
|
2518
2509
|
dataStore.rightPanel.open = false;
|
|
2519
2510
|
dataStore.panelAction = null;
|
|
2520
|
-
await dataStore.api.pensionannuityNew.resetApplicationData(
|
|
2511
|
+
await dataStore.api.pensionannuityNew.resetApplicationData(
|
|
2512
|
+
isSlavePensionForm.value ? formStore.applicationData.slave.processInstanceId : formStore.applicationData.processInstanceId,
|
|
2513
|
+
);
|
|
2521
2514
|
await dataStore.getApplicationData(String(route.params.taskId), false, false, false, true);
|
|
2522
2515
|
await dataStore.getSignedDocList(formStore.applicationData.processInstanceId, formStore.applicationData.slave?.processInstanceId);
|
|
2523
2516
|
}
|
|
@@ -2571,6 +2564,9 @@ export default defineComponent({
|
|
|
2571
2564
|
if (!!productConditionsForm.insurancePremiumPerMonth) {
|
|
2572
2565
|
whichSum.value = 'insurancePremiumPerMonth';
|
|
2573
2566
|
}
|
|
2567
|
+
if (whichProduct.value === 'lifebusiness') {
|
|
2568
|
+
whichSum.value = 'requestedSumInsured';
|
|
2569
|
+
}
|
|
2574
2570
|
if (whichProduct.value === 'lifebusiness' || whichProduct.value === 'gns') {
|
|
2575
2571
|
if (!productConditionsForm.requestedSumInsured) {
|
|
2576
2572
|
whichSum.value = 'requestedSumInsured';
|
|
@@ -2825,23 +2821,23 @@ export default defineComponent({
|
|
|
2825
2821
|
);
|
|
2826
2822
|
}
|
|
2827
2823
|
|
|
2828
|
-
if(whichProduct.value === 'halykkazyna') {
|
|
2824
|
+
if (whichProduct.value === 'halykkazyna') {
|
|
2829
2825
|
watch(
|
|
2830
2826
|
() => productConditionsForm.coverPeriod,
|
|
2831
|
-
|
|
2832
|
-
if(!val || val > 5) {
|
|
2833
|
-
productConditionsForm.hasEnhancedGift = false
|
|
2827
|
+
val => {
|
|
2828
|
+
if (!val || val > 5) {
|
|
2829
|
+
productConditionsForm.hasEnhancedGift = false;
|
|
2834
2830
|
}
|
|
2835
|
-
}
|
|
2831
|
+
},
|
|
2836
2832
|
);
|
|
2837
2833
|
watch(
|
|
2838
2834
|
() => productConditionsForm.insurancePremiumPerMonth,
|
|
2839
|
-
|
|
2840
|
-
if(!val || Number(val) < minEnhancedGiftSum) {
|
|
2841
|
-
productConditionsForm.hasEnhancedGift = false
|
|
2835
|
+
val => {
|
|
2836
|
+
if (!val || Number(val) < minEnhancedGiftSum) {
|
|
2837
|
+
productConditionsForm.hasEnhancedGift = false;
|
|
2842
2838
|
}
|
|
2843
|
-
}
|
|
2844
|
-
)
|
|
2839
|
+
},
|
|
2840
|
+
);
|
|
2845
2841
|
}
|
|
2846
2842
|
|
|
2847
2843
|
const copyRedirect = async () => {
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
>
|
|
24
24
|
</base-content-block>
|
|
25
25
|
<div class="flex flex-col gap-3" v-if="hasConditionsAction">
|
|
26
|
-
<base-btn :text="$dataStore.t('confirm.yes')" :loading="
|
|
27
|
-
<base-btn :btn="$styles.blueLightBtn" :loading="
|
|
26
|
+
<base-btn :text="$dataStore.t('confirm.yes')" :loading="loading" @click="handleTask" />
|
|
27
|
+
<base-btn :btn="$styles.blueLightBtn" :loading="loading" :text="$dataStore.t('confirm.no')" @click="closePanel" />
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
30
30
|
</section>
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
<base-btn v-if="!useEnv().isProduction" :text="$dataStore.t('buttons.sendEgovMob')" :disabled="isQrDisabled" :loading="loading" @click="handleSignAction('qr')" />
|
|
37
37
|
</div>
|
|
38
38
|
<div v-if="isPaperContract" :class="[$styles.flexColNav]">
|
|
39
|
-
<base-btn :text="$dataStore.t('buttons.downloadContract')" :loading="
|
|
39
|
+
<base-btn :text="$dataStore.t('buttons.downloadContract')" :loading="loading" @click="generateDocument" />
|
|
40
40
|
</div>
|
|
41
41
|
<div v-if="isScansDocuments" :class="[$styles.flexColNav]">
|
|
42
42
|
<div v-if="isNewSign">
|
|
43
43
|
<div class="flex flex-col gap-2">
|
|
44
|
-
<base-btn v-for="file in getFilesDownloadButtons" :text="`Скачать ${file.fileName}`" :loading="
|
|
44
|
+
<base-btn v-for="file in getFilesDownloadButtons" :text="`Скачать ${file.fileName}`" :loading="loading" @click="getDocNew(file)" />
|
|
45
45
|
<base-form-section class="mt-4 flex flex-col !gap-2" :title="$dataStore.t('clients.attachScansSignDocs')">
|
|
46
46
|
<base-file-input v-for="file in signingFiles" :label="`Вложить ${file.fileName}`" @input.prevent="onFileChangeScansNew($event, file)" @onClear="onClearFileNew(file)" />
|
|
47
47
|
</base-form-section>
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
<base-file-input :label="$dataStore.t('labels.attachPowerOfAttorney')" @input.prevent="onFileChangeScans($event, 'attorney')" @onClear="onClearFile('attorney')" />
|
|
59
59
|
</base-form-section>
|
|
60
60
|
</div>
|
|
61
|
-
<base-btn :text="$dataStore.t('buttons.sign')" :loading="
|
|
61
|
+
<base-btn :text="$dataStore.t('buttons.sign')" :loading="loading || loading" @click="isNewSign ? sendFilesNew() : sendFiles()" />
|
|
62
62
|
<base-btn :text="$dataStore.t('buttons.cancel')" :btn="$styles.whiteBtn" @click="isScansDocuments = false" />
|
|
63
63
|
<base-btn
|
|
64
64
|
v-if="isOnlineEnpf === false && $dataStore.isPension && formStore.applicationData.statusCode === 'AttachAppContractForm'"
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
<i class="mdi mdi-download text-2xl text-[#A0B3D8]"></i
|
|
145
145
|
></base-panel-item>
|
|
146
146
|
</base-form-section>
|
|
147
|
-
<base-btn :text="$dataStore.t('buttons.send')" :loading="
|
|
147
|
+
<base-btn :text="$dataStore.t('buttons.send')" :loading="loading" @click="sendInvoiceToEmail" />
|
|
148
148
|
</div>
|
|
149
149
|
</section>
|
|
150
150
|
<section v-if="signingActions" class="relative">
|
|
@@ -450,6 +450,7 @@ export default defineComponent({
|
|
|
450
450
|
dataStore.showToaster('warning', dataStore.t('toaster.notAllDocumentsAttached'));
|
|
451
451
|
return;
|
|
452
452
|
}
|
|
453
|
+
loading.value = true;
|
|
453
454
|
try {
|
|
454
455
|
await Promise.allSettled(
|
|
455
456
|
Object.values(scansFiles.value).map(async f => {
|
|
@@ -461,16 +462,18 @@ export default defineComponent({
|
|
|
461
462
|
isScansDocuments.value = false;
|
|
462
463
|
dataStore.showToaster('info', 'Документы загружены успешно');
|
|
463
464
|
} catch (err) {
|
|
465
|
+
loading.value = false;
|
|
464
466
|
return ErrorHandler(err);
|
|
465
467
|
}
|
|
468
|
+
loading.value = false;
|
|
466
469
|
};
|
|
467
470
|
|
|
468
471
|
const sendFiles = async () => {
|
|
469
|
-
loading.value = true;
|
|
470
472
|
if (scansFiles.value.length !== 4) {
|
|
471
473
|
dataStore.showToaster('warning', dataStore.t('toaster.notAllDocumentsAttached'));
|
|
472
474
|
return;
|
|
473
475
|
}
|
|
476
|
+
loading.value = true;
|
|
474
477
|
for (const item of scansFiles.value) {
|
|
475
478
|
scansFormData.value.append('file', item.file);
|
|
476
479
|
scansFormData.value.append('fileData', item.fileData);
|
|
@@ -540,7 +543,7 @@ export default defineComponent({
|
|
|
540
543
|
|
|
541
544
|
const onInit = async () => {
|
|
542
545
|
if (dataStore.controls.hasChooseSign) {
|
|
543
|
-
if (dataStore.isBaiterek
|
|
546
|
+
if (dataStore.isBaiterek || dataStore.isMycar || dataStore.isGons || dataStore.isLifeBusiness || dataStore.isPension || dataStore.isGns) {
|
|
544
547
|
isElectronicContract.value = false;
|
|
545
548
|
}
|
|
546
549
|
}
|
package/composables/constants.ts
CHANGED
|
@@ -76,6 +76,49 @@ export const constants = Object.freeze({
|
|
|
76
76
|
Statuses.ContractSignedFrom,
|
|
77
77
|
Statuses.AttachAppContractForm,
|
|
78
78
|
],
|
|
79
|
+
taskSuccessStatuses: [
|
|
80
|
+
Statuses.Completed,
|
|
81
|
+
Statuses.ClientApplicationAccept,
|
|
82
|
+
Statuses.InsurancePremiumOnlinePaid,
|
|
83
|
+
Statuses.SetStatusInsurancePremiumPaid,
|
|
84
|
+
Statuses.SetStatusInsurancePremiumOnlinePaid,
|
|
85
|
+
Statuses.AccumulationTransferCompletedByENPF,
|
|
86
|
+
],
|
|
87
|
+
taskFailureStatuses: [
|
|
88
|
+
Statuses.RejectClientEdit,
|
|
89
|
+
Statuses.RejectClientSanctionList,
|
|
90
|
+
Statuses.RejectForeginList,
|
|
91
|
+
Statuses.RejectExpired,
|
|
92
|
+
Statuses.CanceledAttachAppContractForm,
|
|
93
|
+
Statuses.RejectActuary,
|
|
94
|
+
Statuses.RejectUsns,
|
|
95
|
+
Statuses.ApplicationOtpCancel,
|
|
96
|
+
Statuses.RejectUnderwriter,
|
|
97
|
+
Statuses.InsurancePremiumOnlineNotPaid,
|
|
98
|
+
Statuses.Rejected,
|
|
99
|
+
Statuses.RejectFinCenter,
|
|
100
|
+
Statuses.RejectContractCompliance,
|
|
101
|
+
Statuses.AccumulationTransferDeniedByENPF,
|
|
102
|
+
Statuses.RejectOSNS,
|
|
103
|
+
Statuses.CancelStart,
|
|
104
|
+
Statuses.ClientRejectBeneficiaryEdit,
|
|
105
|
+
Statuses.CanceledPreparationDossierForm,
|
|
106
|
+
Statuses.RejectAccountant,
|
|
107
|
+
Statuses.RejectClientNonSigned,
|
|
108
|
+
Statuses.RejectClientNonSignedContract,
|
|
109
|
+
Statuses.RegistryFinCenterReject,
|
|
110
|
+
Statuses.RejectInputData,
|
|
111
|
+
Statuses.RejectInsurerNonSigned,
|
|
112
|
+
Statuses.RejectHeadManager,
|
|
113
|
+
Statuses.RejectInsuredNotValid,
|
|
114
|
+
Statuses.RejectContragentCompliance,
|
|
115
|
+
Statuses.RejectNotMeetRequirements,
|
|
116
|
+
Statuses.NorecordEsbd,
|
|
117
|
+
Statuses.TimeTransferDenied,
|
|
118
|
+
Statuses.NoRecord,
|
|
119
|
+
Statuses.RejectMtsznNotificationMissing,
|
|
120
|
+
Statuses.RejectPush1DateMismatch,
|
|
121
|
+
],
|
|
79
122
|
gbdErrors: ['INVALID', 'TIMEOUT', 'ERROR', 'NOT_FOUND'],
|
|
80
123
|
roles: Roles,
|
|
81
124
|
actions: Actions,
|
package/composables/index.ts
CHANGED
|
@@ -897,6 +897,7 @@ export class RoleController {
|
|
|
897
897
|
isSanctioner1 = () => this.isRole(constants.roles.Sanctioner1);
|
|
898
898
|
isSanctioner2 = () => this.isRole(constants.roles.Sanctioner2);
|
|
899
899
|
isSanctioner3 = () => this.isRole(constants.roles.Sanctioner3);
|
|
900
|
+
isRegisterSanctioner = () => this.isRole(constants.roles.RegisterSanctioner);
|
|
900
901
|
hasAccess = () => {
|
|
901
902
|
const baseAccessRoles = this.isAdmin() || this.isSupport() || this.isAnalyst() || this.isDrn() || this.isDsuioOrv() || this.isAuditor();
|
|
902
903
|
return {
|
|
@@ -917,10 +918,12 @@ export class RoleController {
|
|
|
917
918
|
this.isHeadAdjuster() ||
|
|
918
919
|
this.isArchivist() ||
|
|
919
920
|
this.isSecurity() ||
|
|
921
|
+
this.isReInsurer() ||
|
|
920
922
|
this.isUnderwriter() ||
|
|
921
923
|
this.isSanctioner1() ||
|
|
922
924
|
this.isSanctioner2() ||
|
|
923
925
|
this.isSanctioner3() ||
|
|
926
|
+
this.isRegisterSanctioner() ||
|
|
924
927
|
baseAccessRoles,
|
|
925
928
|
toReinsurance: this.isReInsurer() || this.isAdjuster() || this.isHeadAdjuster() || baseAccessRoles,
|
|
926
929
|
toReporting: this.isServiceManager() || this.isManager() || this.isSalesManager() || this.isChiefSalesManager() || this.isChiefManagerNSZH() || baseAccessRoles,
|
|
@@ -936,6 +939,7 @@ export class RoleController {
|
|
|
936
939
|
this.isServiceManager() ||
|
|
937
940
|
this.isUSNSsanctioner() ||
|
|
938
941
|
this.isAccountantDirector() ||
|
|
942
|
+
this.isRegisterSanctioner() ||
|
|
939
943
|
baseAccessRoles,
|
|
940
944
|
toEFO:
|
|
941
945
|
this.isAgentAuletti() ||
|
|
@@ -1027,7 +1031,7 @@ export const redirectUtils = {
|
|
|
1027
1031
|
currentPath = window.location.pathname + window.location.search;
|
|
1028
1032
|
}
|
|
1029
1033
|
|
|
1030
|
-
const excludedPaths = ['/
|
|
1034
|
+
const excludedPaths = ['/Auth'];
|
|
1031
1035
|
|
|
1032
1036
|
console.log('Saving redirect URL:', currentPath);
|
|
1033
1037
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hl-core",
|
|
3
|
-
"version": "0.0.10-beta.
|
|
3
|
+
"version": "0.0.10-beta.72",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "nuxt.config.ts",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"nuxt": "3.10.3",
|
|
44
44
|
"prettier": "3.2.5",
|
|
45
45
|
"vue": "3.4.19",
|
|
46
|
-
"vue-tsc": "
|
|
46
|
+
"vue-tsc": "1.8.27",
|
|
47
47
|
"vue-router": "4.3.0"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
package/plugins/head.ts
CHANGED
|
@@ -5,7 +5,7 @@ export default defineNuxtPlugin(() => {
|
|
|
5
5
|
{
|
|
6
6
|
rel: 'icon',
|
|
7
7
|
type: 'image/x-icon',
|
|
8
|
-
href: import.meta.env.VITE_PARENT_PRODUCT === 'auletti' || String(import.meta.env.VITE_PRODUCT).includes('auletti') ? '/logo-auletti.svg' : '/
|
|
8
|
+
href: import.meta.env.VITE_PARENT_PRODUCT === 'auletti' || String(import.meta.env.VITE_PRODUCT).includes('auletti') ? '/logo-auletti.svg' : '/favicon.svg',
|
|
9
9
|
},
|
|
10
10
|
{ rel: 'preconnect', href: 'https://fonts.googleapis.com' },
|
|
11
11
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com' },
|
package/store/data.store.ts
CHANGED
|
@@ -703,7 +703,7 @@ export const useDataStore = defineStore('data', {
|
|
|
703
703
|
id: Number(user.id),
|
|
704
704
|
type: Number(user.type),
|
|
705
705
|
iin: user.iin ? user.iin.replace(/-/g, '') : '',
|
|
706
|
-
longName: user.longName !== null ? user.longName :
|
|
706
|
+
longName: user.longName !== null ? user.longName : [user.lastName, user.firstName, user.middleName].filter(Boolean).join(' '),
|
|
707
707
|
lastName: user.lastName ?? '',
|
|
708
708
|
firstName: user.firstName ?? '',
|
|
709
709
|
middleName: user.middleName ?? '',
|
|
@@ -1624,20 +1624,15 @@ export const useDataStore = defineStore('data', {
|
|
|
1624
1624
|
) {
|
|
1625
1625
|
try {
|
|
1626
1626
|
const basePromise: Promise<Types.AnketaFirst> =
|
|
1627
|
-
whichMember === 'insured'
|
|
1628
|
-
? this.api.getQuestionList(surveyType, processInstanceId, insuredId)
|
|
1629
|
-
: this.api.getClientQuestionList(surveyType, processInstanceId, insuredId);
|
|
1627
|
+
whichMember === 'insured' ? this.api.getQuestionList(surveyType, processInstanceId, insuredId) : this.api.getClientQuestionList(surveyType, processInstanceId, insuredId);
|
|
1630
1628
|
|
|
1631
1629
|
const secondPromise: Promise<Types.AnketaSecond[] | null> = !this.isMycar
|
|
1632
|
-
?
|
|
1630
|
+
? whichMember === 'insured'
|
|
1633
1631
|
? this.api.getQuestionListSecond(`${surveyType}second`, processInstanceId, insuredId)
|
|
1634
|
-
: this.api.getClientQuestionListSecond(`${surveyType}second`, processInstanceId, insuredId)
|
|
1632
|
+
: this.api.getClientQuestionListSecond(`${surveyType}second`, processInstanceId, insuredId)
|
|
1635
1633
|
: Promise.resolve(null);
|
|
1636
1634
|
|
|
1637
|
-
const [baseQuestions, secondaryQuestions] = await Promise.allSettled([
|
|
1638
|
-
basePromise,
|
|
1639
|
-
secondPromise,
|
|
1640
|
-
]);
|
|
1635
|
+
const [baseQuestions, secondaryQuestions] = await Promise.allSettled([basePromise, secondPromise]);
|
|
1641
1636
|
if (baseQuestions.status === 'fulfilled') {
|
|
1642
1637
|
this.formStore[baseField] = baseQuestions.value;
|
|
1643
1638
|
}
|
|
@@ -2054,7 +2049,7 @@ export const useDataStore = defineStore('data', {
|
|
|
2054
2049
|
if (!this.isPension && !(this.formStore.lfb.add && (this.isLifeBusiness || this.isGns))) await this.api.setApplication(this.getConditionsData());
|
|
2055
2050
|
const result = ref();
|
|
2056
2051
|
let applicationData = null;
|
|
2057
|
-
if (!isHalykBank) result.value = await this.api.
|
|
2052
|
+
if (!isHalykBank) result.value = await this.api.calculateApplication(String(id));
|
|
2058
2053
|
if (this.isLifeBusiness || this.isGns) {
|
|
2059
2054
|
await this.getApplicationDataV2(taskId);
|
|
2060
2055
|
return;
|
|
@@ -2235,12 +2230,12 @@ export const useDataStore = defineStore('data', {
|
|
|
2235
2230
|
}
|
|
2236
2231
|
if (this.isTask() && taskId) {
|
|
2237
2232
|
await this.api.setApplication(priceForm);
|
|
2238
|
-
await this.api.
|
|
2233
|
+
await this.api.calculateApplication(priceForm);
|
|
2239
2234
|
const applicationData = await this.api.getApplicationData(taskId);
|
|
2240
2235
|
this.formStore.applicationData = applicationData;
|
|
2241
2236
|
this.formStore.productConditionsForm.calculatorForm.price = `${Math.ceil(applicationData.lifeTripApp.totalPremiumKZT)} тг`;
|
|
2242
2237
|
} else {
|
|
2243
|
-
const result = await this.api.
|
|
2238
|
+
const result = await this.api.calculateApplication(priceForm);
|
|
2244
2239
|
this.formStore.productConditionsForm.calculatorForm.price = `${Math.ceil(result)} тг`;
|
|
2245
2240
|
}
|
|
2246
2241
|
this.showToaster('success', this.t('toaster.calculated'), 1000);
|
|
@@ -3566,9 +3561,9 @@ export const useDataStore = defineStore('data', {
|
|
|
3566
3561
|
try {
|
|
3567
3562
|
const res = await this.api.externalServices.getOnlineChildAccess({
|
|
3568
3563
|
iinBin: iin.replace(/-/g, ''),
|
|
3569
|
-
methodName:
|
|
3570
|
-
})
|
|
3571
|
-
if(res.children && res.children.length) {
|
|
3564
|
+
methodName: 'CHILDREN',
|
|
3565
|
+
});
|
|
3566
|
+
if (res.children && res.children.length) {
|
|
3572
3567
|
this.formStore.children = res.children;
|
|
3573
3568
|
}
|
|
3574
3569
|
} catch (err) {
|
|
@@ -4258,7 +4253,7 @@ export const useDataStore = defineStore('data', {
|
|
|
4258
4253
|
iinBin: iin.replaceAll('-', ''),
|
|
4259
4254
|
documentType: documentType,
|
|
4260
4255
|
childId: childId,
|
|
4261
|
-
}
|
|
4256
|
+
};
|
|
4262
4257
|
return await this.api.externalServices.getOnlineChildAccess(data);
|
|
4263
4258
|
} catch (err) {
|
|
4264
4259
|
ErrorHandler(err);
|
package/types/enum.ts
CHANGED
|
@@ -136,6 +136,7 @@ export enum Roles {
|
|
|
136
136
|
Sanctioner1 = 'Sanctioner1',
|
|
137
137
|
Sanctioner2 = 'Sanctioner2',
|
|
138
138
|
Sanctioner3 = 'Sanctioner3',
|
|
139
|
+
RegisterSanctioner = 'RegisterSanctioner',
|
|
139
140
|
}
|
|
140
141
|
|
|
141
142
|
export enum Statuses {
|
|
@@ -163,6 +164,72 @@ export enum Statuses {
|
|
|
163
164
|
AccountantForm = 'AccountantForm',
|
|
164
165
|
HeadManagerForm = 'HeadManagerForm',
|
|
165
166
|
DeferredContract = 'DeferredContract',
|
|
167
|
+
ComplianceSanctionListForm = 'ComplianceSanctionListForm',
|
|
168
|
+
ComplianceIpdlForm = 'ComplianceIpdlForm',
|
|
169
|
+
EditAddressForm = 'EditAddressForm',
|
|
170
|
+
RejectClientEdit = 'RejectClientEdit',
|
|
171
|
+
Registration = 'Registration',
|
|
172
|
+
ClientRejectBeneficiaryEdit = 'ClientRejectBeneficiaryEdit',
|
|
173
|
+
RejectClientSanctionList = 'RejectClientSanctionList',
|
|
174
|
+
RejectForeginList = 'RejectForeginList',
|
|
175
|
+
ComplianceForm = 'ComplianceForm',
|
|
176
|
+
RejectExpired = 'RejectExpired',
|
|
177
|
+
CanceledAttachAppContractForm = 'CanceledAttachAppContractForm',
|
|
178
|
+
CanceledPreparationDossierForm = 'CanceledPreparationDossierForm',
|
|
179
|
+
RejectActuary = 'RejectActuary',
|
|
180
|
+
RejectUsns = 'RejectUsns',
|
|
181
|
+
RejectAccountant = 'RejectAccountant',
|
|
182
|
+
ApplicationOtpCancel = 'ApplicationOtpCancel',
|
|
183
|
+
ApplicationOtpForm = 'ApplicationOtpForm',
|
|
184
|
+
ClientApplicationAccept = 'ClientApplicationAccept',
|
|
185
|
+
Autounderwriting = 'Autounderwriting',
|
|
186
|
+
RejectUnderwriter = 'RejectUnderwriter',
|
|
187
|
+
InsurancePremiumOnlineNotPaid = 'InsurancePremiumOnlineNotPaid',
|
|
188
|
+
RejectClientNonSigned = 'RejectClientNonSigned',
|
|
189
|
+
NoticeRegistrationForm = 'NoticeRegistrationForm',
|
|
190
|
+
SigningResponseLetterForm = 'SigningResponseLetterForm',
|
|
191
|
+
ReponseLetterRegistrationForm = 'ReponseLetterRegistrationForm',
|
|
192
|
+
RejectClientNonSignedContract = 'RejectClientNonSignedContract',
|
|
193
|
+
ChooseAdjusterForm = 'ChooseAdjusterForm',
|
|
194
|
+
AdjusterForm = 'AdjusterForm',
|
|
195
|
+
Rejected = 'Rejected',
|
|
196
|
+
CreateReserveForm = 'CreateReserveForm',
|
|
197
|
+
AcceptAdjusterRejectForm = 'AcceptAdjusterRejectForm',
|
|
198
|
+
RejectFinCenter = 'RejectFinCenter',
|
|
199
|
+
RegistryFinCenterReject = 'RegistryFinCenterReject',
|
|
200
|
+
AssignRiskLevel = 'AssignRiskLevel',
|
|
201
|
+
FinancialMonitoring = 'FinancialMonitoring',
|
|
202
|
+
RejectContractCompliance = 'RejectContractCompliance',
|
|
203
|
+
RejectInputData = 'RejectInputData',
|
|
204
|
+
SetStatusInsurancePremiumPaid = 'SetStatusInsurancePremiumPaid',
|
|
205
|
+
SetStatusInsurancePremiumOnlinePaid = 'SetStatusInsurancePremiumOnlinePaid',
|
|
206
|
+
InvoicePaymentIssued = 'InvoicePaymentIssued',
|
|
207
|
+
RejectInsurerNonSigned = 'RejectInsurerNonSigned',
|
|
208
|
+
RejectHeadManager = 'RejectHeadManager',
|
|
209
|
+
ContractProcessingByENPF = 'ContractProcessingByENPF',
|
|
210
|
+
AccumulationTransferDeniedByENPF = 'AccumulationTransferDeniedByENPF',
|
|
211
|
+
AccumulationTransferCompletedByENPF = 'AccumulationTransferCompletedByENPF',
|
|
212
|
+
RejectOSNS = 'RejectOSNS',
|
|
213
|
+
RejectInsuredNotValid = 'RejectInsuredNotValid',
|
|
214
|
+
RejectContragentCompliance = 'RejectContragentCompliance',
|
|
215
|
+
CheckFinCenter = 'CheckFinCenter',
|
|
216
|
+
RegistryFinCenter = 'RegistryFinCenter',
|
|
217
|
+
AutoSign = 'AutoSign',
|
|
218
|
+
RejectNotMeetRequirements = 'RejectNotMeetRequirements',
|
|
219
|
+
RejectOCRMNotFound = 'RejectOCRMNotFound',
|
|
220
|
+
RejectContragentNotAlive = 'RejectContragentNotAlive',
|
|
221
|
+
RejectContragenNotAlive = 'RejectContragenNotAlive',
|
|
222
|
+
RejectBINNotMatch = 'RejectBINNotMatch',
|
|
223
|
+
CancelStart = 'CancelStart',
|
|
224
|
+
NorecordEsbd = 'NorecordEsbd',
|
|
225
|
+
TimeTransferDenied = 'TimeTransferDenied',
|
|
226
|
+
Processing = 'Processing',
|
|
227
|
+
NoRecord = 'NoRecord',
|
|
228
|
+
RejectMtsznNotificationMissing = 'RejectMtsznNotificationMissing',
|
|
229
|
+
UpdatingContragentData = 'UpdatingContragentData',
|
|
230
|
+
RejectPush1DateMismatch = 'RejectPush1DateMismatch',
|
|
231
|
+
ExportData = 'ExportData',
|
|
232
|
+
ExportDataForm = 'ExportDataForm',
|
|
166
233
|
}
|
|
167
234
|
|
|
168
235
|
export enum MemberCodes {
|