hl-core 0.0.8-beta.14 → 0.0.8-beta.15
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/index.ts +8 -1
- package/api/interceptors.ts +1 -1
- package/components/Form/ProductConditionsBlock.vue +56 -8
- package/components/Layout/SettingsPanel.vue +1 -1
- package/components/Pages/Auth.vue +147 -30
- package/components/Pages/MemberForm.vue +1 -1
- package/components/Pages/ProductConditions.vue +10 -0
- package/components/Panel/PanelHandler.vue +8 -1
- package/composables/classes.ts +1 -0
- package/composables/styles.ts +2 -0
- package/locales/en.json +9 -2
- package/locales/kz.json +10 -3
- package/locales/ru.json +10 -3
- package/package.json +1 -1
- package/pages/500.vue +1 -1
- package/store/data.store.js +11 -5
package/api/index.ts
CHANGED
|
@@ -13,7 +13,7 @@ export class ApiClass {
|
|
|
13
13
|
|
|
14
14
|
private async axiosCall<T>(config: AxiosRequestConfig): Promise<T> {
|
|
15
15
|
const dataStore = useDataStore();
|
|
16
|
-
if ((
|
|
16
|
+
if ((dataStore.isBridge && !this.baseURL) || (!dataStore.isEFO && !dataStore.isAML && !dataStore.isLKA && (!this.baseURL || !this.productUrl))) {
|
|
17
17
|
console.error('No Axios baseURL or productURL');
|
|
18
18
|
}
|
|
19
19
|
const { data } = await useAxios(this.baseURL).request<T>(config);
|
|
@@ -411,6 +411,13 @@ export class ApiClass {
|
|
|
411
411
|
});
|
|
412
412
|
}
|
|
413
413
|
|
|
414
|
+
async getProcessHistoryLog(historyId: string) {
|
|
415
|
+
return this.axiosCall({
|
|
416
|
+
method: Methods.GET,
|
|
417
|
+
url: `/Arm/api/Bpm/ProcessHistoryLog/${historyId}`,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
|
|
414
421
|
async createInvoice(processInstanceId: string, amount: number | string): Promise<string> {
|
|
415
422
|
return this.axiosCall({
|
|
416
423
|
method: Methods.POST,
|
package/api/interceptors.ts
CHANGED
|
@@ -21,7 +21,7 @@ export default function (axios: AxiosInstance) {
|
|
|
21
21
|
if (error.response.status === 401) {
|
|
22
22
|
dataStore.$reset();
|
|
23
23
|
localStorage.clear();
|
|
24
|
-
if (dataStore.
|
|
24
|
+
if (dataStore.isBridge) {
|
|
25
25
|
router.push({ name: 'Auth', query: { error: 401 } });
|
|
26
26
|
} else {
|
|
27
27
|
dataStore.sendToParent(constants.postActions.Error401, 401);
|
|
@@ -7,16 +7,20 @@
|
|
|
7
7
|
<p v-if="!!subtitle" :class="[$libStyles.greyText, $libStyles.textSimple]">{{ subtitle }}</p>
|
|
8
8
|
</div>
|
|
9
9
|
<div class="mt-6 grid grid-cols-3 lg:grid-cols-5 auto-rows-fr items-center">
|
|
10
|
-
<span :class="[$libStyles.textSimple]" class="font-medium">{{ $t('productConditionsForm.requestedSumInsured') }}</span>
|
|
11
|
-
<span :class="[$libStyles.textSimple]" class="font-medium">{{ $t('productConditionsForm.insurancePremiumPerMonth') }}</span>
|
|
12
|
-
<span :class="[$libStyles.textSimple]" class="font-medium
|
|
13
|
-
<span :class="[$libStyles.textSimple]" class="font-medium
|
|
10
|
+
<span v-if="hasSum" :class="[$libStyles.textSimple]" class="font-medium">{{ $t('productConditionsForm.requestedSumInsured') }}</span>
|
|
11
|
+
<span v-if="hasPremium" :class="[$libStyles.textSimple]" class="font-medium">{{ $t('productConditionsForm.insurancePremiumPerMonth') }}</span>
|
|
12
|
+
<span v-if="hasPolicyNumber" :class="[$libStyles.textSimple]" class="font-medium">{{ $t('buttons.InsuranceContract') }}</span>
|
|
13
|
+
<span v-if="hasContractDate" :class="[$libStyles.textSimple]" class="font-medium">{{ $t('productConditionsForm.contractDate') }}</span>
|
|
14
|
+
<span v-if="hasCoverPeriod" :class="[$libStyles.textSimple]" class="font-medium hidden lg:block">{{ $t('productConditionsForm.coverPeriod') }}</span>
|
|
15
|
+
<span v-if="hasPayPeriod" :class="[$libStyles.textSimple]" class="font-medium hidden lg:block">{{ $t('productConditionsForm.payPeriod') }}</span>
|
|
14
16
|
</div>
|
|
15
17
|
<div class="grid grid-cols-3 lg:grid-cols-5 auto-rows-fr items-center">
|
|
16
|
-
<span :class="[amount === null && $libStyles.emptyBlockCol]">{{ amount }} </span>
|
|
17
|
-
<span :class="[premium === null && $libStyles.emptyBlockCol]"> {{ premium }}</span>
|
|
18
|
-
<span :class="[
|
|
19
|
-
<span :class="[
|
|
18
|
+
<span v-if="hasSum" :class="[amount === null && $libStyles.emptyBlockCol]">{{ amount }} </span>
|
|
19
|
+
<span v-if="hasPremium" :class="[premium === null && $libStyles.emptyBlockCol]"> {{ premium }}</span>
|
|
20
|
+
<span v-if="hasPolicyNumber" :class="[policyNumber === null && $libStyles.emptyBlockCol]"> {{ policyNumber }}</span>
|
|
21
|
+
<span v-if="hasContractDate" :class="[policyNumber === null && $libStyles.emptyBlockCol]"> {{ contractDate }}</span>
|
|
22
|
+
<span v-if="hasCoverPeriod" :class="[coverPeriod === null && $libStyles.emptyBlockCol]" class="hidden lg:block">{{ coverPeriod }} </span>
|
|
23
|
+
<span v-if="hasPayPeriod" :class="[paymentPeriod === null && $libStyles.emptyBlockCol]" class="hidden lg:block">
|
|
20
24
|
{{ paymentPeriod }}
|
|
21
25
|
</span>
|
|
22
26
|
<div
|
|
@@ -43,6 +47,7 @@ export default defineComponent({
|
|
|
43
47
|
},
|
|
44
48
|
},
|
|
45
49
|
setup() {
|
|
50
|
+
const dataStore = useDataStore();
|
|
46
51
|
const formStore = useFormStore();
|
|
47
52
|
|
|
48
53
|
const amount = computed(() =>
|
|
@@ -51,12 +56,47 @@ export default defineComponent({
|
|
|
51
56
|
const premium = computed(() =>
|
|
52
57
|
formStore.productConditionsForm && formStore.productConditionsForm.insurancePremiumPerMonth ? formStore.productConditionsForm.insurancePremiumPerMonth : null,
|
|
53
58
|
);
|
|
59
|
+
const policyNumber = computed(() => (formStore.applicationData && formStore.applicationData.policyAppDto ? formStore.applicationData.policyAppDto.policyNumber : null));
|
|
60
|
+
const contractDate = computed(() =>
|
|
61
|
+
formStore.applicationData && formStore.applicationData.policyAppDto ? reformatDate(formStore.applicationData.policyAppDto.contractDate) : null,
|
|
62
|
+
);
|
|
54
63
|
const coverPeriod = computed(() => (formStore.productConditionsForm && formStore.productConditionsForm.coverPeriod ? formStore.productConditionsForm.coverPeriod : null));
|
|
55
64
|
const paymentPeriod = computed(() =>
|
|
56
65
|
formStore.productConditionsForm && formStore.productConditionsForm.paymentPeriod && !!formStore.productConditionsForm.paymentPeriod.nameRu
|
|
57
66
|
? formStore.productConditionsForm.paymentPeriod.nameRu
|
|
58
67
|
: null,
|
|
59
68
|
);
|
|
69
|
+
|
|
70
|
+
const hasSum = computed(() => {
|
|
71
|
+
return true;
|
|
72
|
+
});
|
|
73
|
+
const hasPremium = computed(() => {
|
|
74
|
+
return true;
|
|
75
|
+
});
|
|
76
|
+
const hasPolicyNumber = computed(() => {
|
|
77
|
+
if (dataStore.isFinCenter()) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
});
|
|
82
|
+
const hasContractDate = computed(() => {
|
|
83
|
+
if (dataStore.isFinCenter()) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
return false;
|
|
87
|
+
});
|
|
88
|
+
const hasCoverPeriod = computed(() => {
|
|
89
|
+
if (dataStore.isFinCenter()) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
});
|
|
94
|
+
const hasPayPeriod = computed(() => {
|
|
95
|
+
if (dataStore.isFinCenter()) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
});
|
|
60
100
|
return {
|
|
61
101
|
// State
|
|
62
102
|
formStore,
|
|
@@ -64,8 +104,16 @@ export default defineComponent({
|
|
|
64
104
|
// Computed
|
|
65
105
|
amount,
|
|
66
106
|
premium,
|
|
107
|
+
policyNumber,
|
|
108
|
+
contractDate,
|
|
67
109
|
coverPeriod,
|
|
68
110
|
paymentPeriod,
|
|
111
|
+
hasSum,
|
|
112
|
+
hasPremium,
|
|
113
|
+
hasPolicyNumber,
|
|
114
|
+
hasContractDate,
|
|
115
|
+
hasPayPeriod,
|
|
116
|
+
hasCoverPeriod,
|
|
69
117
|
};
|
|
70
118
|
},
|
|
71
119
|
});
|
|
@@ -34,7 +34,7 @@ const dataStore = useDataStore();
|
|
|
34
34
|
const handleFontSize = (action: 'increase' | 'decrease') => {
|
|
35
35
|
if (action === 'increase' && dataStore.fontSize < 24) dataStore.fontSize += 2;
|
|
36
36
|
if (action === 'decrease' && dataStore.fontSize > 14) dataStore.fontSize -= 2;
|
|
37
|
-
if (dataStore.
|
|
37
|
+
if (dataStore.isBridge) {
|
|
38
38
|
dataStore.sendToChild(constants.postActions.font, dataStore.fontSize);
|
|
39
39
|
} else {
|
|
40
40
|
dataStore.sendToParent(constants.postActions.font, dataStore.fontSize);
|
|
@@ -1,27 +1,88 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section class="flex
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
<base-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
2
|
+
<section class="flex h-full" :class="$libStyles.blueBgLight">
|
|
3
|
+
<aside :class="{ '!hidden': !$display().lgAndUp.value }" class="w-full lg:w-1/4 bg-white flex flex-col justify-between border-r-2 relative px-8">
|
|
4
|
+
<img draggable="false" class="w-[50%] mt-8" src="~/assets/auth-logo.svg" />
|
|
5
|
+
<div class="self-center flex flex-col items-center justify-center base-auth">
|
|
6
|
+
<v-carousel :show-arrows="false" color="#009C73">
|
|
7
|
+
<v-carousel-item v-for="(item, index) of carouselItems" :key="index">
|
|
8
|
+
<img draggable="false" class="mx-auto" :src="item.img" />
|
|
9
|
+
<div class="flex flex-col items-center justify-center mt-12 mb-8 text-center">
|
|
10
|
+
<h2 class="text-[22px] font-medium mb-1">{{ item.title }}</h2>
|
|
11
|
+
<h4 class="text-[16px]">{{ item.subtitle }}</h4>
|
|
12
|
+
</div>
|
|
13
|
+
</v-carousel-item>
|
|
14
|
+
</v-carousel>
|
|
15
|
+
</div>
|
|
16
|
+
<base-btn :text="$t('buttons.more')" :disabled="true" class="mb-28"></base-btn>
|
|
17
|
+
</aside>
|
|
18
|
+
<section v-if="isLogin" class="w-full lg:w-3/4 flex flex-col justify-center">
|
|
19
|
+
<img :class="{ '!block': !$display().lgAndUp.value }" draggable="false" class="hidden w-2/4 sm:w-1/3 mb-10 self-center" src="~/assets/auth-logo.svg" />
|
|
20
|
+
<div class="flex flex-col items-center mb-8">
|
|
21
|
+
<h1 class="text-[28px] font-medium mb-1">{{ $t('labels.welcomeHL') }}</h1>
|
|
22
|
+
<span :class="[$libStyles.greyTextDark]" class="text-[16px]">{{ $t('labels.needAuth') }}</span>
|
|
23
|
+
</div>
|
|
24
|
+
<v-form ref="vForm" class="w-2/3 lg:w-[25vw] self-center">
|
|
25
|
+
<base-rounded-input
|
|
26
|
+
class="mb-1"
|
|
27
|
+
v-model="login"
|
|
28
|
+
:rules="$rules.required"
|
|
29
|
+
:loading="authLoading"
|
|
30
|
+
:placeholder="$t('buttons.userLogin')"
|
|
31
|
+
type="text"
|
|
32
|
+
@submitted="submitAuthForm"
|
|
33
|
+
></base-rounded-input>
|
|
34
|
+
<base-rounded-input
|
|
35
|
+
class="mb-1"
|
|
36
|
+
v-model="password"
|
|
37
|
+
:rules="$rules.required"
|
|
38
|
+
:loading="authLoading"
|
|
39
|
+
:placeholder="$t('buttons.password')"
|
|
40
|
+
:append-inner-icon="showPassword ? 'mdi-eye-outline' : 'mdi-eye-off-outline'"
|
|
41
|
+
@append="showPassword = !showPassword"
|
|
42
|
+
:type="showPassword ? ('' as InputTypes) : 'password'"
|
|
43
|
+
@submitted="submitAuthForm"
|
|
44
|
+
></base-rounded-input>
|
|
45
|
+
<span v-if="$dataStore.isLKA" class="inline-block w-full text-end mb-4" :class="[$libStyles.textSimple, $libStyles.greyTextDark]" @click="isLogin = false">{{
|
|
46
|
+
$t('labels.resetPassword')
|
|
47
|
+
}}</span>
|
|
48
|
+
<base-btn :text="$t('buttons.login')" :disabled="authLoading" :btn="$libStyles.greenBtn" @click="submitAuthForm"></base-btn>
|
|
49
|
+
</v-form>
|
|
50
|
+
</section>
|
|
51
|
+
<section v-if="isLogin === false" class="w-full lg:w-3/4 flex flex-col justify-center items-center">
|
|
52
|
+
<div class="flex flex-col items-center mb-4">
|
|
53
|
+
<h1 class="text-[28px] font-medium mb-1">{{ $t('labels.resetPassword') }}</h1>
|
|
54
|
+
<span :class="[$libStyles.greyTextDark]" class="text-[16px]">{{ $t('labels.resetType') }}</span>
|
|
55
|
+
</div>
|
|
56
|
+
<div class="p-[2px] mb-8 rounded-[12px] border-[1px]" :class="[$libStyles.whiteBg]">
|
|
57
|
+
<v-tabs v-model="resetPasswordType" density="compact" slider-color="#009c73" class="base-reset-password rounded-[12px] w-2/3 lg:w-[25vw]" :class="[$libStyles.whiteBg]">
|
|
58
|
+
<v-tab :ripple="false" value="phone"> {{ $t('form.phoneNumber') }} </v-tab>
|
|
59
|
+
<v-tab :ripple="false" value="email"> {{ $t('form.email') }} </v-tab>
|
|
60
|
+
</v-tabs>
|
|
61
|
+
</div>
|
|
62
|
+
<v-form ref="vForm" class="w-2/3 lg:w-[25vw] self-center">
|
|
63
|
+
<base-rounded-input
|
|
64
|
+
v-if="resetPasswordType === 'phone'"
|
|
65
|
+
v-model="phone"
|
|
66
|
+
:maska="$maska.phone"
|
|
67
|
+
:rules="$rules.required.concat($rules.phoneFormat)"
|
|
68
|
+
:loading="authLoading"
|
|
69
|
+
:placeholder="$t('form.phoneNumber')"
|
|
70
|
+
type="text"
|
|
71
|
+
@submitted="submitAuthForm"
|
|
72
|
+
></base-rounded-input>
|
|
73
|
+
<base-rounded-input
|
|
74
|
+
v-if="resetPasswordType === 'email'"
|
|
75
|
+
v-model="email"
|
|
76
|
+
:rules="$rules.required.concat($rules.email)"
|
|
77
|
+
:loading="authLoading"
|
|
78
|
+
:placeholder="$t('form.email')"
|
|
79
|
+
type="text"
|
|
80
|
+
@submitted="submitAuthForm"
|
|
81
|
+
></base-rounded-input>
|
|
82
|
+
<span class="inline-block w-full text-end mb-4" :class="[$libStyles.textSimple, $libStyles.greyTextDark]" @click="isLogin = true">{{ $t('buttons.login') }}</span>
|
|
83
|
+
<base-btn :text="$t('buttons.reset')" :disabled="authLoading" :btn="$libStyles.greenBtn" @click="submitAuthForm"></base-btn>
|
|
84
|
+
</v-form>
|
|
85
|
+
</section>
|
|
25
86
|
</section>
|
|
26
87
|
</template>
|
|
27
88
|
|
|
@@ -33,6 +94,11 @@ export default defineComponent({
|
|
|
33
94
|
const dataStore = useDataStore();
|
|
34
95
|
|
|
35
96
|
const vForm = ref<any>(null);
|
|
97
|
+
const isLogin = ref<boolean>(true);
|
|
98
|
+
const showPassword = ref<boolean>(false);
|
|
99
|
+
const phone = ref<string>();
|
|
100
|
+
const email = ref<string>();
|
|
101
|
+
const resetPasswordType = ref<string>();
|
|
36
102
|
|
|
37
103
|
const credentials = {
|
|
38
104
|
production: { login: '', password: '' },
|
|
@@ -41,6 +107,24 @@ export default defineComponent({
|
|
|
41
107
|
vercel: { login: '', password: 'asdqwe123' },
|
|
42
108
|
};
|
|
43
109
|
|
|
110
|
+
const carouselItems = [
|
|
111
|
+
{
|
|
112
|
+
title: 'Все полисы в один клик!',
|
|
113
|
+
subtitle: 'Мгновенный доступ к информации о ваших полисах',
|
|
114
|
+
img: '/left-side-1.png',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
title: 'Все полисы в один клик!',
|
|
118
|
+
subtitle: 'Мгновенный доступ к информации о ваших полисах',
|
|
119
|
+
img: '/left-side-1.png',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
title: 'Все полисы в один клик!',
|
|
123
|
+
subtitle: 'Мгновенный доступ к информации о ваших полисах',
|
|
124
|
+
img: '/left-side-1.png',
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
|
|
44
128
|
const useEnv = {
|
|
45
129
|
envMode: import.meta.env.VITE_MODE,
|
|
46
130
|
isDev: import.meta.env.VITE_MODE === 'development',
|
|
@@ -68,24 +152,57 @@ export default defineComponent({
|
|
|
68
152
|
const submitAuthForm = async () => {
|
|
69
153
|
await vForm.value.validate().then(async (v: { valid: Boolean; errors: any }) => {
|
|
70
154
|
if (v.valid) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
155
|
+
if (isLogin.value === true) {
|
|
156
|
+
authLoading.value = true;
|
|
157
|
+
await dataStore.loginUser(login.value, password.value, numAttempts.value);
|
|
158
|
+
numAttempts.value++;
|
|
159
|
+
authLoading.value = false;
|
|
160
|
+
if (!!dataStore.user.id) {
|
|
161
|
+
router.push({ name: 'index' });
|
|
162
|
+
}
|
|
163
|
+
} else {
|
|
164
|
+
// TODO Reset password
|
|
77
165
|
}
|
|
78
166
|
}
|
|
79
167
|
});
|
|
80
168
|
};
|
|
81
169
|
|
|
82
170
|
return {
|
|
171
|
+
// State
|
|
83
172
|
login,
|
|
84
|
-
password,
|
|
85
173
|
vForm,
|
|
174
|
+
phone,
|
|
175
|
+
email,
|
|
176
|
+
isLogin,
|
|
177
|
+
password,
|
|
86
178
|
authLoading,
|
|
179
|
+
showPassword,
|
|
180
|
+
carouselItems,
|
|
181
|
+
resetPasswordType,
|
|
182
|
+
|
|
183
|
+
// Functions
|
|
87
184
|
submitAuthForm,
|
|
88
185
|
};
|
|
89
186
|
},
|
|
90
187
|
});
|
|
91
188
|
</script>
|
|
189
|
+
|
|
190
|
+
<style>
|
|
191
|
+
.base-auth .v-carousel__controls {
|
|
192
|
+
background: white !important;
|
|
193
|
+
}
|
|
194
|
+
.base-reset-password .v-tab__slider {
|
|
195
|
+
z-index: -1;
|
|
196
|
+
height: 100% !important;
|
|
197
|
+
border-radius: 12px;
|
|
198
|
+
}
|
|
199
|
+
.base-reset-password .v-tab {
|
|
200
|
+
width: 50%;
|
|
201
|
+
color: #566681;
|
|
202
|
+
text-transform: unset;
|
|
203
|
+
font-size: 12px;
|
|
204
|
+
}
|
|
205
|
+
.base-reset-password .v-tab--selected {
|
|
206
|
+
color: white !important;
|
|
207
|
+
}
|
|
208
|
+
</style>
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
@append="openPanel($t('form.relations'), [], 'relationDegree', $dataStore.getRelationTypes)"
|
|
97
97
|
></base-panel-input>
|
|
98
98
|
<base-form-input
|
|
99
|
-
v-if="whichForm === formStore.beneficiaryFormKey
|
|
99
|
+
v-if="whichForm === formStore.beneficiaryFormKey"
|
|
100
100
|
v-model="member.percentageOfPayoutAmount"
|
|
101
101
|
:readonly="isDisabled"
|
|
102
102
|
:clearable="!isDisabled"
|
|
@@ -13,6 +13,16 @@
|
|
|
13
13
|
subtitle="Если несовершеннолетний не достиг возраста 14 лет - законному представителю в соответствии с законодательством Республики Казахстан"
|
|
14
14
|
></base-form-text-section>
|
|
15
15
|
</base-form-section>
|
|
16
|
+
<base-form-section v-if="isUnderwriterRole && $dataStore.members.insuredApp.has === true" :title="$t('insuredForm')">
|
|
17
|
+
<div v-for="(insured, index) of formStore.insuredForm" :key="index">
|
|
18
|
+
<base-form-input v-model="insured.longName" :label="$t('labels.insurerLongName')" :readonly="true"> </base-form-input>
|
|
19
|
+
<base-form-input v-model="insured.job" :label="$t('form.job')" :readonly="true"> </base-form-input>
|
|
20
|
+
<base-form-input v-model="insured.jobPosition" :label="$t('form.jobPosition')" :readonly="true"> </base-form-input>
|
|
21
|
+
<base-form-input v-model="insured.birthDate" :label="$t('form.birthDate')" :readonly="true"> </base-form-input>
|
|
22
|
+
<base-form-input v-model="insured.age" :label="$t('form.age')" :readonly="true"> </base-form-input>
|
|
23
|
+
<base-form-input v-model="insured.gender.nameRu" class="mb-4" :label="$t('form.gender')" :readonly="true"> </base-form-input>
|
|
24
|
+
</div>
|
|
25
|
+
</base-form-section>
|
|
16
26
|
<base-form-section v-if="isUnderwriterRole" :title="$t('recalculationInfo')">
|
|
17
27
|
<base-form-input
|
|
18
28
|
v-model="productConditionsForm.lifeMultiply"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</section>
|
|
10
10
|
<section v-if="acceptAction">
|
|
11
11
|
<div :class="[$libStyles.flexColNav]">
|
|
12
|
-
<base-content-block class="flex flex-col gap-3">
|
|
12
|
+
<base-content-block v-if="hasConditionsInfo" class="flex flex-col gap-3">
|
|
13
13
|
<span
|
|
14
14
|
>{{ `Сумма страховой премии ${paymentPeriod}:` }} <b>{{ `${insurancePremiumPerMonth}₸` }}</b></span
|
|
15
15
|
>
|
|
@@ -242,6 +242,12 @@ export default defineComponent({
|
|
|
242
242
|
const paymentPeriod = computed(() => formStore.productConditionsForm.paymentPeriod.nameRu);
|
|
243
243
|
const insurancePremiumPerMonth = computed(() => dataStore.getNumberWithSpaces(formStore.productConditionsForm.insurancePremiumPerMonth));
|
|
244
244
|
const requestedSumInsured = computed(() => dataStore.getNumberWithSpaces(formStore.productConditionsForm.requestedSumInsured));
|
|
245
|
+
const hasConditionsInfo = computed(() => {
|
|
246
|
+
if (dataStore.isFinCenter()) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
return true;
|
|
250
|
+
});
|
|
245
251
|
|
|
246
252
|
return {
|
|
247
253
|
// State
|
|
@@ -272,6 +278,7 @@ export default defineComponent({
|
|
|
272
278
|
insurancePremiumPerMonth,
|
|
273
279
|
requestedSumInsured,
|
|
274
280
|
affiliationDocument,
|
|
281
|
+
hasConditionsInfo,
|
|
275
282
|
};
|
|
276
283
|
},
|
|
277
284
|
});
|
package/composables/classes.ts
CHANGED
package/composables/styles.ts
CHANGED
|
@@ -36,6 +36,8 @@ export class Styles {
|
|
|
36
36
|
greyBtnBg: string = 'bg-[#EEE6E6]';
|
|
37
37
|
greyBtnDisabledBg: string = 'bg-[#919191]';
|
|
38
38
|
blueLightBgHover: string = 'hover:bg-[#F3F6FC]';
|
|
39
|
+
greyTextDark: string = 'text-[#9197A1]';
|
|
40
|
+
|
|
39
41
|
// Red
|
|
40
42
|
redText: string = 'text-[#FF897D]';
|
|
41
43
|
redBg: string = 'bg-[#FF897D]';
|
package/locales/en.json
CHANGED
|
@@ -141,7 +141,9 @@
|
|
|
141
141
|
"register": "Registration reestr number",
|
|
142
142
|
"send": "Send",
|
|
143
143
|
"toStatement": "Continue checkout",
|
|
144
|
-
"affiliate": "Attach Underwriter CD"
|
|
144
|
+
"affiliate": "Attach Underwriter CD",
|
|
145
|
+
"more": "More",
|
|
146
|
+
"reset": "Reset"
|
|
145
147
|
},
|
|
146
148
|
"dialog": {
|
|
147
149
|
"title": "Confirmation",
|
|
@@ -251,7 +253,8 @@
|
|
|
251
253
|
"insurancePremiumAmount": "Insurance Premium Amount",
|
|
252
254
|
"insurancePremiumAmountInDollar": "Amount of the Insurance premium (insurance fee) in dollars",
|
|
253
255
|
"coverPeriodFrom2to22": "Cover Period (from 2y to 20y)",
|
|
254
|
-
"dollarExchangeRateNBRK": "NBRK dollar exchange rate"
|
|
256
|
+
"dollarExchangeRateNBRK": "NBRK dollar exchange rate",
|
|
257
|
+
"contractDate": "Contract date"
|
|
255
258
|
},
|
|
256
259
|
"history": {
|
|
257
260
|
"addRegNumber": "Number",
|
|
@@ -269,6 +272,10 @@
|
|
|
269
272
|
"userFullName": "Assignee"
|
|
270
273
|
},
|
|
271
274
|
"labels": {
|
|
275
|
+
"needAuth": "You are required to authorize",
|
|
276
|
+
"welcomeHL": "Welcome to Halyk Life",
|
|
277
|
+
"resetType": "Pick resetting method",
|
|
278
|
+
"resetPassword": "Forgot password?",
|
|
272
279
|
"search": "Search",
|
|
273
280
|
"searchByIIN": "Search by IIN",
|
|
274
281
|
"chooseScannedDoc": "Choose scanned document",
|
package/locales/kz.json
CHANGED
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"add": "Добавить",
|
|
97
97
|
"userLogin": "Логин",
|
|
98
98
|
"password": "Пароль",
|
|
99
|
-
"login": "
|
|
99
|
+
"login": "Войти в систему",
|
|
100
100
|
"save": "Сохранить",
|
|
101
101
|
"back": "Назад",
|
|
102
102
|
"sign": "Подписать",
|
|
@@ -141,7 +141,9 @@
|
|
|
141
141
|
"register": "Укажите номер регистрации реестра",
|
|
142
142
|
"send": "Отправить",
|
|
143
143
|
"toStatement": "Продолжить оформление",
|
|
144
|
-
"affiliate": "Добавить решение АС"
|
|
144
|
+
"affiliate": "Добавить решение АС",
|
|
145
|
+
"more": "Подробнее",
|
|
146
|
+
"reset": "Восстановить"
|
|
145
147
|
},
|
|
146
148
|
"dialog": {
|
|
147
149
|
"title": "Подтверждение",
|
|
@@ -251,7 +253,8 @@
|
|
|
251
253
|
"coverPeriodFrom2to22": "Срок страхования (от 2-х до 20 лет)",
|
|
252
254
|
"insurancePremiumAmount": "Размер Страховой премии (страховой взнос)",
|
|
253
255
|
"insurancePremiumAmountInDollar": "Размер Страховой премии (страховой взнос) в долларах",
|
|
254
|
-
"dollarExchangeRateNBRK": "Курс доллара НБРК"
|
|
256
|
+
"dollarExchangeRateNBRK": "Курс доллара НБРК",
|
|
257
|
+
"contractDate": "Дата контракта"
|
|
255
258
|
},
|
|
256
259
|
"history": {
|
|
257
260
|
"addRegNumber": "Номер",
|
|
@@ -269,6 +272,10 @@
|
|
|
269
272
|
"userFullName": "Исполнитель"
|
|
270
273
|
},
|
|
271
274
|
"labels": {
|
|
275
|
+
"needAuth": "Для получения доступа Вам необходимо авторизоваться",
|
|
276
|
+
"welcomeHL": "Добро пожаловать в Halyk Life",
|
|
277
|
+
"resetType": "Выберите способ восстановление пароля",
|
|
278
|
+
"resetPassword": "Забыли пароль?",
|
|
272
279
|
"search": "Поиск",
|
|
273
280
|
"searchByIIN": "Поиск по ИИН",
|
|
274
281
|
"chooseScannedDoc": "Выбрать отсканированный документ",
|
package/locales/ru.json
CHANGED
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"add": "Добавить",
|
|
97
97
|
"userLogin": "Логин",
|
|
98
98
|
"password": "Пароль",
|
|
99
|
-
"login": "
|
|
99
|
+
"login": "Войти в систему",
|
|
100
100
|
"save": "Сохранить",
|
|
101
101
|
"back": "Назад",
|
|
102
102
|
"sign": "Подписать",
|
|
@@ -141,7 +141,9 @@
|
|
|
141
141
|
"register": "Укажите номер регистрации реестра",
|
|
142
142
|
"send": "Отправить",
|
|
143
143
|
"toStatement": "Продолжить оформление",
|
|
144
|
-
"affiliate": "Добавить решение АС"
|
|
144
|
+
"affiliate": "Добавить решение АС",
|
|
145
|
+
"more": "Подробнее",
|
|
146
|
+
"reset": "Восстановить"
|
|
145
147
|
},
|
|
146
148
|
"dialog": {
|
|
147
149
|
"title": "Подтверждение",
|
|
@@ -251,7 +253,8 @@
|
|
|
251
253
|
"coverPeriodFrom2to22": "Срок страхования (от 2-х до 20 лет)",
|
|
252
254
|
"insurancePremiumAmount": "Размер Страховой премии (страховой взнос)",
|
|
253
255
|
"insurancePremiumAmountInDollar": "Размер Страховой премии (страховой взнос) в долларах",
|
|
254
|
-
"dollarExchangeRateNBRK": "Курс доллара НБРК"
|
|
256
|
+
"dollarExchangeRateNBRK": "Курс доллара НБРК",
|
|
257
|
+
"contractDate": "Дата контракта"
|
|
255
258
|
},
|
|
256
259
|
"history": {
|
|
257
260
|
"addRegNumber": "Номер",
|
|
@@ -269,6 +272,10 @@
|
|
|
269
272
|
"userFullName": "Исполнитель"
|
|
270
273
|
},
|
|
271
274
|
"labels": {
|
|
275
|
+
"needAuth": "Для получения доступа Вам необходимо авторизоваться",
|
|
276
|
+
"welcomeHL": "Добро пожаловать в Halyk Life",
|
|
277
|
+
"resetType": "Выберите способ восстановление пароля",
|
|
278
|
+
"resetPassword": "Забыли пароль?",
|
|
272
279
|
"search": "Поиск",
|
|
273
280
|
"searchByIIN": "Поиск по ИИН",
|
|
274
281
|
"chooseScannedDoc": "Выбрать отсканированный документ",
|
package/package.json
CHANGED
package/pages/500.vue
CHANGED
package/store/data.store.js
CHANGED
|
@@ -32,6 +32,8 @@ export const useDataStore = defineStore('data', {
|
|
|
32
32
|
getters: {
|
|
33
33
|
isEFO: state => state.product === 'efo',
|
|
34
34
|
isAML: state => state.product === 'aml',
|
|
35
|
+
isLKA: state => state.product === 'lka',
|
|
36
|
+
isBridge: state => state.product === 'efo' || state.product === 'aml' || state.product === 'lka',
|
|
35
37
|
isBaiterek: state => state.product === 'baiterek',
|
|
36
38
|
isBolashak: state => state.product === 'bolashak',
|
|
37
39
|
isMycar: state => state.product === 'mycar',
|
|
@@ -65,7 +67,7 @@ export const useDataStore = defineStore('data', {
|
|
|
65
67
|
},
|
|
66
68
|
copyToClipboard(text) {
|
|
67
69
|
if (typeof text === 'string' || typeof text === 'number') {
|
|
68
|
-
if (this.
|
|
70
|
+
if (this.isBridge) {
|
|
69
71
|
navigator.clipboard.writeText(text);
|
|
70
72
|
} else {
|
|
71
73
|
this.sendToParent(constants.postActions.clipboard, text);
|
|
@@ -1639,6 +1641,13 @@ export const useDataStore = defineStore('data', {
|
|
|
1639
1641
|
this.isLoading = false;
|
|
1640
1642
|
}
|
|
1641
1643
|
},
|
|
1644
|
+
async getProcessHistoryLog(taskId) {
|
|
1645
|
+
try {
|
|
1646
|
+
return await this.api.getProcessHistoryLog(taskId);
|
|
1647
|
+
} catch (err) {
|
|
1648
|
+
ErrorHandler(err);
|
|
1649
|
+
}
|
|
1650
|
+
},
|
|
1642
1651
|
async setApplication() {
|
|
1643
1652
|
try {
|
|
1644
1653
|
await this.api.setApplication(this.formStore.applicationData);
|
|
@@ -1910,7 +1919,7 @@ export const useDataStore = defineStore('data', {
|
|
|
1910
1919
|
const sumOfPercentage = localMembers.reduce((sum, member) => {
|
|
1911
1920
|
return sum + Number(member.percentageOfPayoutAmount);
|
|
1912
1921
|
}, 0);
|
|
1913
|
-
if (sumOfPercentage !== 100
|
|
1922
|
+
if (sumOfPercentage !== 100) {
|
|
1914
1923
|
this.showToaster('error', this.t('toaster.errorSumOrPercentage'), 3000);
|
|
1915
1924
|
return false;
|
|
1916
1925
|
}
|
|
@@ -2344,9 +2353,6 @@ export const useDataStore = defineStore('data', {
|
|
|
2344
2353
|
}
|
|
2345
2354
|
},
|
|
2346
2355
|
hasPercentageOfPayoutAmount() {
|
|
2347
|
-
if (this.isKazyna) {
|
|
2348
|
-
return false;
|
|
2349
|
-
}
|
|
2350
2356
|
return true;
|
|
2351
2357
|
},
|
|
2352
2358
|
canViewInvoiceInfo() {
|