hl-core 0.0.9-beta.11 → 0.0.9-beta.13
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 +624 -0
- package/api/efo.api.ts +27 -0
- package/api/index.ts +3 -620
- package/components/Form/FormBlock.vue +12 -3
- package/components/Input/FileInput.vue +8 -3
- package/components/Pages/Anketa.vue +2 -2
- package/components/Pages/ContragentForm.vue +1 -1
- package/components/Pages/InvoiceInfo.vue +1 -1
- package/components/Pages/MemberForm.vue +25 -17
- package/components/Pages/ProductConditions.vue +130 -53
- package/components/Panel/PanelHandler.vue +48 -12
- package/composables/constants.ts +1 -0
- package/composables/styles.ts +1 -1
- package/locales/ru.json +38 -9
- package/package.json +7 -7
- package/store/data.store.ts +60 -42
- package/types/enum.ts +6 -0
- package/types/index.ts +10 -3
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
<div :class="[$styles.blueBgLight]" class="rounded-lg p-4">
|
|
29
29
|
<v-expansion-panels v-if="formStore.signUrls && formStore.signUrls.length" variant="accordion" multiple>
|
|
30
30
|
<v-expansion-panel v-for="signUrl of formStore.signUrls" :key="signUrl.iin!" class="border-[1px]" elevation="0" bg-color="#FFF">
|
|
31
|
-
<v-expansion-panel-title class="h-[80px]" :class="$styles.textTitle">
|
|
31
|
+
<v-expansion-panel-title class="h-[80px]" :class="$styles.textTitle">
|
|
32
|
+
{{ `${signUrl.longName} - ${signUrl.iin}` }}
|
|
33
|
+
</v-expansion-panel-title>
|
|
32
34
|
<v-expansion-panel-text class="border-t-[1px]">
|
|
33
35
|
<section class="flex flex-col gap-4 py-3" :class="$styles.textSimple">
|
|
34
36
|
<base-btn :loading="loading" :text="$dataStore.t('sign.copyCloud')" @click="$dataStore.copyToClipboard(signUrl.uri)" />
|
|
@@ -55,8 +57,8 @@
|
|
|
55
57
|
placeholder="+7 7"
|
|
56
58
|
/>
|
|
57
59
|
</v-form>
|
|
58
|
-
<base-btn :text="$dataStore.t('buttons.sendSMS')" :loading="loading" @click="submitForm"
|
|
59
|
-
|
|
60
|
+
<base-btn :text="$dataStore.t('buttons.sendSMS')" :loading="loading" @click="submitForm" />
|
|
61
|
+
</base-form-section>
|
|
60
62
|
</div>
|
|
61
63
|
</base-fade-transition>
|
|
62
64
|
</div>
|
|
@@ -99,20 +101,37 @@
|
|
|
99
101
|
:maska="$maska.date"
|
|
100
102
|
:rules="$rules.required"
|
|
101
103
|
:label="$dataStore.t('form.date')"
|
|
102
|
-
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
104
|
+
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
105
|
+
/>
|
|
103
106
|
<base-file-input v-if="!affiliationDocument" @input.prevent="onFileChange($event)" />
|
|
104
107
|
<base-empty-form-field v-if="affiliationDocument" class="justify-between">
|
|
105
108
|
{{ `${affiliationDocument.fileTypeName} - ${affiliationDocument.fileName}` }}
|
|
106
|
-
<i class="cursor-pointer mdi mdi-file-document mr-6 text-[#a0b3d8] text-xl"></i
|
|
107
|
-
|
|
109
|
+
<i class="cursor-pointer mdi mdi-file-document mr-6 text-[#a0b3d8] text-xl"></i
|
|
110
|
+
></base-empty-form-field>
|
|
111
|
+
</base-content-block>
|
|
108
112
|
</v-form>
|
|
109
113
|
<base-btn :text="buttonText" :loading="loading" @click="submitForm" />
|
|
110
114
|
</div>
|
|
111
115
|
</section>
|
|
116
|
+
<section v-if="templateAction">
|
|
117
|
+
<div :class="[$styles.flexColNav]">
|
|
118
|
+
<base-content-block>
|
|
119
|
+
<base-panel-item class="cursor-pointer bg-white mb-4 border-b-0 rounded">
|
|
120
|
+
{{ $dataStore.t('downloadDocument') }}
|
|
121
|
+
<i class="mdi mdi-download text-2xl text-[#A0B3D8]"></i
|
|
122
|
+
></base-panel-item>
|
|
123
|
+
<v-form ref="vForm">
|
|
124
|
+
<base-form-input v-model.trim="actionCause" :label="$dataStore.t('form.email')" :rules="$rules.required" />
|
|
125
|
+
</v-form>
|
|
126
|
+
</base-content-block>
|
|
127
|
+
<base-btn :text="buttonText" :loading="loading" @click="submitForm" />
|
|
128
|
+
</div>
|
|
129
|
+
</section>
|
|
112
130
|
</template>
|
|
113
131
|
|
|
114
132
|
<script lang="ts">
|
|
115
133
|
import { DocumentItem } from '../../composables/classes';
|
|
134
|
+
|
|
116
135
|
export default defineComponent({
|
|
117
136
|
emits: ['task'],
|
|
118
137
|
setup(props, { emit }) {
|
|
@@ -199,11 +218,12 @@ export default defineComponent({
|
|
|
199
218
|
|
|
200
219
|
const handleTask = async () => {
|
|
201
220
|
loading.value = true;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
221
|
+
// Пока не нужно, на всякий оставить
|
|
222
|
+
// if (needRecalculation.value) {
|
|
223
|
+
// dataStore.showToaster('info', dataStore.t('toaster.needToRecalculate'));
|
|
224
|
+
// loading.value = false;
|
|
225
|
+
// return;
|
|
226
|
+
// }
|
|
207
227
|
if (dataStore.isAML || dataStore.isCheckContract || dataStore.isCheckContragent) {
|
|
208
228
|
emit('task', [dataStore.panelAction, route.params.taskId as string, actionCause.value]);
|
|
209
229
|
} else {
|
|
@@ -228,20 +248,31 @@ export default defineComponent({
|
|
|
228
248
|
case constants.actions.register:
|
|
229
249
|
return dataStore.t('buttons.register');
|
|
230
250
|
case constants.actions.affiliate:
|
|
251
|
+
case constants.actions.template:
|
|
231
252
|
return dataStore.t('buttons.send');
|
|
253
|
+
default:
|
|
254
|
+
return dataStore.t('buttons.send');
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
const panelTitle = computed(() => {
|
|
259
|
+
if (dataStore.isLifeBusiness && dataStore.panelAction === constants.actions.template) {
|
|
260
|
+
return dataStore.t('template');
|
|
232
261
|
}
|
|
262
|
+
return buttonText.value;
|
|
233
263
|
});
|
|
234
264
|
|
|
235
265
|
watch(
|
|
236
266
|
() => dataStore.panelAction,
|
|
237
267
|
val => {
|
|
238
268
|
if (!!val) {
|
|
239
|
-
dataStore.panel.title =
|
|
269
|
+
dataStore.panel.title = panelTitle.value;
|
|
240
270
|
dataStore.panel.open = true;
|
|
241
271
|
}
|
|
242
272
|
},
|
|
243
273
|
{ immediate: true },
|
|
244
274
|
);
|
|
275
|
+
|
|
245
276
|
const needRecalculation = computed(
|
|
246
277
|
() =>
|
|
247
278
|
dataStore.isGons &&
|
|
@@ -253,6 +284,7 @@ export default defineComponent({
|
|
|
253
284
|
() => dataStore.panelAction === constants.actions.reject || dataStore.panelAction === constants.actions.return || dataStore.panelAction === constants.actions.rejectclient,
|
|
254
285
|
);
|
|
255
286
|
const acceptAction = computed(() => dataStore.panelAction === constants.actions.accept);
|
|
287
|
+
const templateAction = computed(() => dataStore.panelAction === constants.actions.template);
|
|
256
288
|
const signingActions = computed(() => dataStore.panelAction === constants.actions.sign);
|
|
257
289
|
const payingActions = computed(() => dataStore.panelAction === constants.actions.pay);
|
|
258
290
|
const affiliateActions = computed(() => dataStore.panelAction === constants.actions.affiliate);
|
|
@@ -296,6 +328,7 @@ export default defineComponent({
|
|
|
296
328
|
requestedSumInsured,
|
|
297
329
|
affiliationDocument,
|
|
298
330
|
hasConditionsInfo,
|
|
331
|
+
templateAction,
|
|
299
332
|
};
|
|
300
333
|
},
|
|
301
334
|
});
|
|
@@ -305,16 +338,19 @@ export default defineComponent({
|
|
|
305
338
|
.v-expansion-panel-title__overlay {
|
|
306
339
|
background: #ffffff;
|
|
307
340
|
}
|
|
341
|
+
|
|
308
342
|
.v-expansion-panel-title {
|
|
309
343
|
height: 70px !important;
|
|
310
344
|
padding: 10px 20px !important;
|
|
311
345
|
}
|
|
346
|
+
|
|
312
347
|
.v-expansion-panels--variant-accordion > :last-child {
|
|
313
348
|
border-top-left-radius: 0.5rem !important;
|
|
314
349
|
border-top-right-radius: 0.5rem !important;
|
|
315
350
|
border-top-left-radius: 0.5rem !important;
|
|
316
351
|
border-radius: 0.5rem !important;
|
|
317
352
|
}
|
|
353
|
+
|
|
318
354
|
.v-expansion-panel-text__wrapper {
|
|
319
355
|
padding: 10px 20px !important;
|
|
320
356
|
}
|
package/composables/constants.ts
CHANGED
package/composables/styles.ts
CHANGED
|
@@ -98,7 +98,7 @@ export class Styles {
|
|
|
98
98
|
// Complex
|
|
99
99
|
this.flexColNav = 'flex flex-col gap-[10px] px-2 pt-[14px]';
|
|
100
100
|
this.emptyBlockCol = 'w-[60px] sm:w-[100px] h-[30%] rounded-[8px] bg-[#f5f5f5]';
|
|
101
|
-
this.scrollPage = 'max-h-[
|
|
101
|
+
this.scrollPage = 'max-h-[85svh] overflow-y-scroll';
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
package/locales/ru.json
CHANGED
|
@@ -111,7 +111,8 @@
|
|
|
111
111
|
"underageShouldBeLess18": "Несовершеннолетний не может быть старше 18 лет",
|
|
112
112
|
"needAgent": "Поле агент должно быть заполнено",
|
|
113
113
|
"tripInsuredAmountCalculated": "Высчитана страховая сумма для выбора",
|
|
114
|
-
"calcSumForUnder":"Внимание! Требуется пересчет страховой суммы андеррайтером. Заявка будет направлена Андеррайтеру"
|
|
114
|
+
"calcSumForUnder": "Внимание! Требуется пересчет страховой суммы андеррайтером. Заявка будет направлена Андеррайтеру",
|
|
115
|
+
"doesHaveActiveContract": "Заключение договора невозможно. У Выгодоприобретателя имеется действующий договор"
|
|
115
116
|
},
|
|
116
117
|
"buttons": {
|
|
117
118
|
"dataInput": "Ввод данных",
|
|
@@ -263,7 +264,10 @@
|
|
|
263
264
|
"recalculation": "Перерасчет",
|
|
264
265
|
"survey": "Анкета",
|
|
265
266
|
"calculationAnnuityPayments": "Расчет аннуитетных выплат",
|
|
266
|
-
"preliminaryCalculation":"Расчет предварительный. Требуется заполнить все необходимые данные",
|
|
267
|
+
"preliminaryCalculation": "Расчет предварительный. Требуется заполнить все необходимые данные",
|
|
268
|
+
"createNewApp": "Создать новую заявку",
|
|
269
|
+
"template": "Шаблон",
|
|
270
|
+
"downloadDocument": "Скачать документ",
|
|
267
271
|
"productConditionsForm": {
|
|
268
272
|
"coverPeriod": "Срок страхования",
|
|
269
273
|
"payPeriod": "Период оплаты страховой премии",
|
|
@@ -272,10 +276,10 @@
|
|
|
272
276
|
"requestedSumInsured": "Страховая сумма",
|
|
273
277
|
"requestedSumInsuredInTenge": "Страховая сумма в тенге",
|
|
274
278
|
"requestedSumInsuredInDollar": "Страховая сумма в долларах",
|
|
275
|
-
"totalAmount5":"Общая сумма (страховая сумма с учетом Гос. премии 5 %)",
|
|
276
|
-
"totalAmount7":"Общая сумма (страховая сумма с учетом Гос. премии 7 %)",
|
|
277
|
-
"statePremium5":"Гос. премия (5 %)",
|
|
278
|
-
"statePremium7":"Гос. премия (7 %)",
|
|
279
|
+
"totalAmount5": "Общая сумма (страховая сумма с учетом Гос. премии 5 %)",
|
|
280
|
+
"totalAmount7": "Общая сумма (страховая сумма с учетом Гос. премии 7 %)",
|
|
281
|
+
"statePremium5": "Гос. премия (5 %)",
|
|
282
|
+
"statePremium7": "Гос. премия (7 %)",
|
|
279
283
|
"sumInsured": "Страховая сумма",
|
|
280
284
|
"insurancePremiumPerMonth": "Страховая премия",
|
|
281
285
|
"hint": "Сумма рассчитывается автоматически",
|
|
@@ -296,7 +300,10 @@
|
|
|
296
300
|
"typeAnnuityInsurance": "Запрашиваемый вид аннуитетного страхования",
|
|
297
301
|
"termAnnuityPayments": "Запрашиваемый срок аннуитетных выплат",
|
|
298
302
|
"periodAnnuityPayment": "Запрашиваемый период аннуитетной выплаты",
|
|
299
|
-
"amountAnnuityPayments": "Запрашиваемый размер аннуитетных выплат"
|
|
303
|
+
"amountAnnuityPayments": "Запрашиваемый размер аннуитетных выплат",
|
|
304
|
+
"coverPeriodMonth": "Срок страхования (в месяцах)",
|
|
305
|
+
"totalRequestedSumInsured": "Общая страховая сумма",
|
|
306
|
+
"totalInsurancePremiumAmount": "Общая страховая премия"
|
|
300
307
|
},
|
|
301
308
|
"calculatorForm": {
|
|
302
309
|
"country": "Страна поездки",
|
|
@@ -337,7 +344,15 @@
|
|
|
337
344
|
"contractSignDate": "Дата заключение контракта",
|
|
338
345
|
"contractEndDate": "Дата завершения контракта",
|
|
339
346
|
"insuranceEndPeriod": "Срок действия страховой защиты",
|
|
340
|
-
"payPeriods": "Период уплаты страховых взносов"
|
|
347
|
+
"payPeriods": "Период уплаты страховых взносов",
|
|
348
|
+
"citizenship": "Гражданство",
|
|
349
|
+
"branch": "Филиал",
|
|
350
|
+
"branchCode": "Код филиала",
|
|
351
|
+
"applicationStage": "Стадия заявки",
|
|
352
|
+
"generalApplicationNumber": "Внешний номер заявки",
|
|
353
|
+
"productCode": "Код продукта",
|
|
354
|
+
"contract": "Контракт",
|
|
355
|
+
"checks": "Проверки"
|
|
341
356
|
},
|
|
342
357
|
"agent": {
|
|
343
358
|
"currency": "Валюта",
|
|
@@ -590,7 +605,8 @@
|
|
|
590
605
|
"noResident": "Нерезидентам отказано",
|
|
591
606
|
"policyholderAgeLimit": "Возраст Застрахованного должен быть не менее 18-ти лет",
|
|
592
607
|
"beneficiaryAgeLimit": "На дату подписания полиса возраст Выгодоприобретателя должен быть не более 15 лет",
|
|
593
|
-
"guaranteedPeriodLimit": "Период гарантированного срока не может быть больше срока аннуитетных выплат"
|
|
608
|
+
"guaranteedPeriodLimit": "Период гарантированного срока не может быть больше срока аннуитетных выплат",
|
|
609
|
+
"calculationPreliminary": "Расчет предварительный. Требуется заполнить все необходимые данные"
|
|
594
610
|
},
|
|
595
611
|
"code": "КЭС",
|
|
596
612
|
"fontSize": "Размер шрифта",
|
|
@@ -684,6 +700,19 @@
|
|
|
684
700
|
"agent": "Агент",
|
|
685
701
|
"insurancePay": "Страховая выплата подлежит осуществлению"
|
|
686
702
|
},
|
|
703
|
+
"insurers": {
|
|
704
|
+
"listInsured": "Список Застрахованных",
|
|
705
|
+
"templateInsured": "Шаблон для заполнения данных Застрахованных",
|
|
706
|
+
"sendListToFill": "Отправить список Страхователю для заполнения",
|
|
707
|
+
"completedListInsured": "Заполненный список Застрахованных",
|
|
708
|
+
"userFullName": "ФИО",
|
|
709
|
+
"iin": "ИИН",
|
|
710
|
+
"gender": "Пол",
|
|
711
|
+
"birthDate": "Дата рождения",
|
|
712
|
+
"insuranceAmount": "Страховая сумма",
|
|
713
|
+
"totalInsurancePremium": "Страховая премия",
|
|
714
|
+
"position": "Должность"
|
|
715
|
+
},
|
|
687
716
|
"agreementBlock": {
|
|
688
717
|
"title": "Согласие на сбор и обработку пресональных данных",
|
|
689
718
|
"text": "Я, предоставляю АО «Халык-Life» (БИН 051140004354) и (или) организациям, входящими в состав финансовой Группы «Халык» (Акционеру АО «Халык-Life» (БИН 940140000385) и его дочерним организациям), перестраховочным организациям, организации по формированию и ведению базы данных по страхованию (БИН 120940011577), юридическому лицу, осуществляющему деятельность по привлечению пенсионных взносов и пенсионным выплатам (БИН 971240002115), юридическому лицу, осуществляющему по решению Правительства Республики Казахстан деятельность по оказанию государственных услуг (БИН 160440007161), операторам/владельцам государственных баз данных согласие на сбор и обработку, трансграничную передачу и распространение моих персональных данных и информации, связанных со мной и моими близкими родственниками, из всех источников и баз данных, в том числе содержащих врачебную, налоговую, банковскую тайну, тайну пенсионных накоплений, и иную охраняемую законом тайну, зафиксированных на электронном, бумажном и (или) ином материальном носителе, с целью оказания АО «Халык-Life» функций страховой организации и вышеуказанными организациями финансовых и иных услуг, в том числе необходимых для заполнения/формирования заявлений и договоров, а также моей надлежащей идентификации, включая, но не ограничиваясь: фамилия, имя, отчество, гражданство, данные документа, удостоверяющего личность, индивидуальный идентификационный номер, дата и данные о рождении, пол, национальность, фото, биометрические данные, состояние здоровья, банковские реквизиты, сведения о дееспособности, сведения, необходимые для поддержания связи, сведения о размере суммы пенсионных накоплений и размере выкупной суммы, иные данные/информация, полученные и переданные на текущий момент и которые могут быть получены и переданы в будущем, из всех/во все возможных(-хабарлама ые) источников(-хабарлама и), в том числе любых(-хабарлама е) баз(-хабарлама ы) данных, в том числе баз данных: владельцев государственных баз данных, организации по формированию и ведению базы данных по страхованию, юридического лица, осуществляющего деятельность по привлечению пенсионных взносов и пенсионным выплатам, юридического лица, осуществляющего по решению Правительства Республики Казахстан деятельность по оказанию государственных услуг, которые будут или стали известны АО «Халык-Life» в процессе его деятельности и/или в рамках гражданско-хабарлама правовых и иных отношений с контрагентами в рамках соответствующего договора, предоставляю АО «Халык-Life» возможность передачи моих персональных данных уполномоченным органам, Акционеру АО «Халык-Life» и его дочерним организациям, аффилированным лицам АО «Халык-Life», организации по формированию и ведению базы данных по страхованию, операторам государственных баз данных, и иным третьим лицам, связанным, как в настоящее время, так и в будущем, с АО «Халык-Life» обстоятельствами или правоотношениями, и любым третьим лицам, когда АО «Халык-Life» обязан или вправе совершить такие действия в соответствии с требованиями законодательства и (или) внутренними документами. Настоящее согласие действует в период правоспособности АО «Халык-Life» (его правопреемника)."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hl-core",
|
|
3
|
-
"version": "0.0.9-beta.
|
|
3
|
+
"version": "0.0.9-beta.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "nuxt.config.ts",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"dev": "nuxt dev",
|
|
29
29
|
"generate": "nuxt generate",
|
|
30
30
|
"preview": "nuxt preview",
|
|
31
|
-
"tk:all": "cd .. && cd baiterek && yarn typecheck && cd .. && cd bolashak && yarn typecheck && cd .. && cd calculator && yarn typecheck && cd .. && cd efo && yarn typecheck && cd .. && cd gons && yarn typecheck && cd .. && cd kazyna && yarn typecheck && cd .. && cd lifebusiness && yarn typecheck && cd .. && cd liferenta && yarn typecheck && cd .. && cd lifetrip && yarn typecheck && cd .. && cd core",
|
|
32
|
-
"i:all": "cd .. && cd baiterek && yarn && cd .. && cd bolashak && yarn && cd .. && cd calculator && yarn && cd .. && cd efo && yarn && cd .. && cd gons && yarn && cd .. && cd kazyna && yarn && cd .. && cd lifebusiness && yarn && cd .. && cd liferenta && yarn && cd .. && cd lifetrip && yarn && cd .. && cd core",
|
|
31
|
+
"tk:all": "cd .. && cd baiterek && yarn typecheck && cd .. && cd bolashak && yarn typecheck && cd .. && cd calculator && yarn typecheck && cd .. && cd daskamkorlyk && yarn typecheck && cd .. && cd efo && yarn typecheck && cd .. && cd gons && yarn typecheck && cd .. && cd kazyna && yarn typecheck && cd .. && cd lifebusiness && yarn typecheck && cd .. && cd liferenta && yarn typecheck && cd .. && cd lifetrip && yarn typecheck && cd .. && cd core",
|
|
32
|
+
"i:all": "cd .. && cd baiterek && yarn && cd .. && cd bolashak && yarn && cd .. && cd calculator && yarn && cd .. && cd daskamkorlyk && yarn && cd .. && cd efo && yarn && cd .. && cd gons && yarn && cd .. && cd kazyna && yarn && cd .. && cd lifebusiness && yarn && cd .. && cd liferenta && yarn && cd .. && cd lifetrip && yarn && cd .. && cd core",
|
|
33
33
|
"update:core": "git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main",
|
|
34
34
|
"update:aml": "cd ../../aml/aml && yarn && cd ../checkcontract && yarn && cd ../checkcontragent && yarn && cd.. && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd ../efo/core",
|
|
35
35
|
"update:lka": "cd .. && cd lka && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@nuxt/devtools": "^0.4.5",
|
|
45
|
-
"@vueuse/components": "^10.
|
|
46
|
-
"@vueuse/core": "^10.
|
|
47
|
-
"@vueuse/nuxt": "^10.
|
|
45
|
+
"@vueuse/components": "^10.3.0",
|
|
46
|
+
"@vueuse/core": "^10.3.0",
|
|
47
|
+
"@vueuse/nuxt": "^10.3.0",
|
|
48
48
|
"nuxt": "^3.6.2",
|
|
49
49
|
"prettier": "^2.8.8"
|
|
50
50
|
},
|
|
@@ -66,6 +66,6 @@
|
|
|
66
66
|
"vue-json-pretty": "^2.2.4",
|
|
67
67
|
"vue-toastification": "^2.0.0-rc.5",
|
|
68
68
|
"vue-uuid": "^3.0.0",
|
|
69
|
-
"vuetify": "^3.3.
|
|
69
|
+
"vuetify": "^3.3.11"
|
|
70
70
|
}
|
|
71
71
|
}
|
package/store/data.store.ts
CHANGED
|
@@ -44,6 +44,7 @@ export const useDataStore = defineStore('data', {
|
|
|
44
44
|
isLiferenta: state => state.product === 'liferenta',
|
|
45
45
|
isGons: state => state.product === 'gons',
|
|
46
46
|
isKazyna: state => state.product === 'halykkazyna',
|
|
47
|
+
isDas: state => state.product === 'daskamkorlyk',
|
|
47
48
|
isCalculator: state => state.product === 'calculator',
|
|
48
49
|
isCheckContract: state => state.product === 'checkcontract',
|
|
49
50
|
isCheckContragent: state => state.product === 'checkcontragent',
|
|
@@ -588,6 +589,13 @@ export const useDataStore = defineStore('data', {
|
|
|
588
589
|
}
|
|
589
590
|
},
|
|
590
591
|
async saveContragent(user: Member, whichForm: keyof typeof StoreMembers | 'contragent', whichIndex: number | null, onlySaveAction: boolean = true) {
|
|
592
|
+
if (this.isGons && user.iin) {
|
|
593
|
+
const doesHaveActiveContract = await this.api.checkBeneficiariesInActualPolicy(user.iin.replace(/-/g, ''));
|
|
594
|
+
if (doesHaveActiveContract) {
|
|
595
|
+
this.showToaster('error', this.t('toaster.doesHaveActiveContract'), 6000);
|
|
596
|
+
return false;
|
|
597
|
+
}
|
|
598
|
+
}
|
|
591
599
|
this.isLoading = !onlySaveAction;
|
|
592
600
|
const hasInsisId = await this.alreadyInInsis(user);
|
|
593
601
|
if (typeof hasInsisId === 'number') {
|
|
@@ -1288,33 +1296,29 @@ export const useDataStore = defineStore('data', {
|
|
|
1288
1296
|
baseField: 'surveyByHealthBase' | 'surveyByCriticalBase' | 'surveyByHealthBasePolicyholder' | 'surveyByCriticalBasePolicyholder',
|
|
1289
1297
|
whichMember: 'insured' | 'policyholder' = 'insured',
|
|
1290
1298
|
) {
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
i.second = structuredClone(secondaryQuestions.value);
|
|
1311
|
-
}
|
|
1312
|
-
});
|
|
1313
|
-
}
|
|
1299
|
+
try {
|
|
1300
|
+
const [baseQuestions, secondaryQuestions] = await Promise.allSettled([
|
|
1301
|
+
whichMember === 'insured' ? this.api.getQuestionList(surveyType, processInstanceId, insuredId) : this.api.getClientQuestionList(surveyType, processInstanceId, insuredId),
|
|
1302
|
+
whichMember === 'insured'
|
|
1303
|
+
? this.api.getQuestionListSecond(`${surveyType}second`, processInstanceId, insuredId)
|
|
1304
|
+
: this.api.getClientQuestionListSecond(`${surveyType}second`, processInstanceId, insuredId),
|
|
1305
|
+
,
|
|
1306
|
+
]);
|
|
1307
|
+
if (baseQuestions.status === 'fulfilled') {
|
|
1308
|
+
this.formStore[baseField] = baseQuestions.value;
|
|
1309
|
+
}
|
|
1310
|
+
if (secondaryQuestions.status === 'fulfilled') {
|
|
1311
|
+
const baseAnketa = this.formStore[baseField];
|
|
1312
|
+
if (baseAnketa && baseAnketa.body && baseAnketa.body.length) {
|
|
1313
|
+
baseAnketa.body.forEach(i => {
|
|
1314
|
+
if (i.first.definedAnswers === 'Y' && i.second === null && secondaryQuestions.value) {
|
|
1315
|
+
i.second = structuredClone(secondaryQuestions.value);
|
|
1316
|
+
}
|
|
1317
|
+
});
|
|
1314
1318
|
}
|
|
1315
|
-
} catch (err) {
|
|
1316
|
-
ErrorHandler(err);
|
|
1317
1319
|
}
|
|
1320
|
+
} catch (err) {
|
|
1321
|
+
ErrorHandler(err);
|
|
1318
1322
|
}
|
|
1319
1323
|
return this.formStore[baseField];
|
|
1320
1324
|
},
|
|
@@ -2274,11 +2278,10 @@ export const useDataStore = defineStore('data', {
|
|
|
2274
2278
|
const areMembersValid = await this.validateAllMembers(taskId);
|
|
2275
2279
|
if (areMembersValid) {
|
|
2276
2280
|
if (!!this.formStore.productConditionsForm.insurancePremiumPerMonth && !!this.formStore.productConditionsForm.requestedSumInsured) {
|
|
2277
|
-
const hasCritical = this.formStore.additionalInsuranceTerms?.find(cover => cover.coverTypeName
|
|
2278
|
-
if (hasCritical && hasCritical.coverSumName.match(new RegExp('не включено', 'i'))) {
|
|
2281
|
+
const hasCritical = this.formStore.additionalInsuranceTerms?.find(cover => cover.coverTypeName.match(new RegExp('Критическое заболевание Застрахованного', 'i'))) ?? null;
|
|
2282
|
+
if (hasCritical === null || (hasCritical && hasCritical.coverSumName.match(new RegExp('не включено', 'i')))) {
|
|
2279
2283
|
await Promise.allSettled([
|
|
2280
2284
|
this.getQuestionList('health', this.formStore.applicationData.processInstanceId, this.formStore.applicationData.insuredApp[0].id, 'surveyByHealthBase'),
|
|
2281
|
-
this.getQuestionList('critical', this.formStore.applicationData.processInstanceId, this.formStore.applicationData.insuredApp[0].id, 'surveyByCriticalBase'),
|
|
2282
2285
|
this.isClientAnketaCondition &&
|
|
2283
2286
|
this.getQuestionList(
|
|
2284
2287
|
'health',
|
|
@@ -2287,30 +2290,26 @@ export const useDataStore = defineStore('data', {
|
|
|
2287
2290
|
'surveyByHealthBasePolicyholder',
|
|
2288
2291
|
'policyholder',
|
|
2289
2292
|
),
|
|
2293
|
+
,
|
|
2290
2294
|
]);
|
|
2291
2295
|
this.isClientAnketaCondition
|
|
2292
2296
|
? await Promise.allSettled([
|
|
2293
2297
|
...this.formStore.surveyByHealthBase!.body.map(async question => {
|
|
2294
2298
|
await this.definedAnswers(question.first.id, 'surveyByHealthBase');
|
|
2295
2299
|
}),
|
|
2296
|
-
...this.formStore.surveyByCriticalBase!.body.map(async question => {
|
|
2297
|
-
await this.definedAnswers(question.first.id, 'surveyByCriticalBase');
|
|
2298
|
-
}),
|
|
2299
2300
|
...this.formStore.surveyByHealthBasePolicyholder!.body.map(async question => {
|
|
2300
2301
|
await this.definedAnswers(question.first.id, 'surveyByHealthBasePolicyholder');
|
|
2301
2302
|
}),
|
|
2302
2303
|
])
|
|
2303
|
-
: await Promise.allSettled(
|
|
2304
|
-
|
|
2304
|
+
: await Promise.allSettled(
|
|
2305
|
+
this.formStore.surveyByHealthBase!.body.map(async question => {
|
|
2305
2306
|
await this.definedAnswers(question.first.id, 'surveyByHealthBase');
|
|
2306
2307
|
}),
|
|
2307
|
-
|
|
2308
|
-
await this.definedAnswers(question.first.id, 'surveyByCriticalBase');
|
|
2309
|
-
}),
|
|
2310
|
-
]);
|
|
2308
|
+
);
|
|
2311
2309
|
} else {
|
|
2312
2310
|
await Promise.allSettled([
|
|
2313
2311
|
this.getQuestionList('health', this.formStore.applicationData.processInstanceId, this.formStore.applicationData.insuredApp[0].id, 'surveyByHealthBase'),
|
|
2312
|
+
this.getQuestionList('critical', this.formStore.applicationData.processInstanceId, this.formStore.applicationData.insuredApp[0].id, 'surveyByCriticalBase'),
|
|
2314
2313
|
this.isClientAnketaCondition &&
|
|
2315
2314
|
this.getQuestionList(
|
|
2316
2315
|
'health',
|
|
@@ -2319,26 +2318,31 @@ export const useDataStore = defineStore('data', {
|
|
|
2319
2318
|
'surveyByHealthBasePolicyholder',
|
|
2320
2319
|
'policyholder',
|
|
2321
2320
|
),
|
|
2322
|
-
,
|
|
2323
2321
|
]);
|
|
2324
2322
|
this.isClientAnketaCondition
|
|
2325
2323
|
? await Promise.allSettled([
|
|
2326
2324
|
...this.formStore.surveyByHealthBase!.body.map(async question => {
|
|
2327
2325
|
await this.definedAnswers(question.first.id, 'surveyByHealthBase');
|
|
2328
2326
|
}),
|
|
2327
|
+
...this.formStore.surveyByCriticalBase!.body.map(async question => {
|
|
2328
|
+
await this.definedAnswers(question.first.id, 'surveyByCriticalBase');
|
|
2329
|
+
}),
|
|
2329
2330
|
...this.formStore.surveyByHealthBasePolicyholder!.body.map(async question => {
|
|
2330
2331
|
await this.definedAnswers(question.first.id, 'surveyByHealthBasePolicyholder');
|
|
2331
2332
|
}),
|
|
2332
2333
|
])
|
|
2333
|
-
: await Promise.allSettled(
|
|
2334
|
-
this.formStore.surveyByHealthBase!.body.map(async question => {
|
|
2334
|
+
: await Promise.allSettled([
|
|
2335
|
+
...this.formStore.surveyByHealthBase!.body.map(async question => {
|
|
2335
2336
|
await this.definedAnswers(question.first.id, 'surveyByHealthBase');
|
|
2336
2337
|
}),
|
|
2337
|
-
|
|
2338
|
+
...this.formStore.surveyByCriticalBase!.body.map(async question => {
|
|
2339
|
+
await this.definedAnswers(question.first.id, 'surveyByCriticalBase');
|
|
2340
|
+
}),
|
|
2341
|
+
]);
|
|
2338
2342
|
}
|
|
2339
2343
|
if (this.validateAnketa('surveyByHealthBase')) {
|
|
2340
2344
|
let hasCriticalAndItsValid = null;
|
|
2341
|
-
if (hasCritical && hasCritical.coverSumName
|
|
2345
|
+
if (hasCritical && hasCritical.coverSumName.match(new RegExp('не включено', 'i')) === null) {
|
|
2342
2346
|
if (this.validateAnketa('surveyByCriticalBase')) {
|
|
2343
2347
|
hasCriticalAndItsValid = true;
|
|
2344
2348
|
} else {
|
|
@@ -2447,6 +2451,20 @@ export const useDataStore = defineStore('data', {
|
|
|
2447
2451
|
this.isLoading = false;
|
|
2448
2452
|
return false;
|
|
2449
2453
|
}
|
|
2454
|
+
if (!gbdResponse.content) {
|
|
2455
|
+
let errMsg: string = '';
|
|
2456
|
+
if (gbdResponse.status) {
|
|
2457
|
+
errMsg += gbdResponse.status;
|
|
2458
|
+
}
|
|
2459
|
+
if (gbdResponse.statusName) {
|
|
2460
|
+
errMsg += gbdResponse.statusName;
|
|
2461
|
+
}
|
|
2462
|
+
if (!!errMsg) {
|
|
2463
|
+
this.showToaster('error', errMsg, 5000);
|
|
2464
|
+
}
|
|
2465
|
+
this.isLoading = false;
|
|
2466
|
+
return false;
|
|
2467
|
+
}
|
|
2450
2468
|
const { person } = parseXML(gbdResponse.content, true, 'person');
|
|
2451
2469
|
const { responseInfo } = parseXML(gbdResponse.content, true, 'responseInfo');
|
|
2452
2470
|
if (member.gosPersonData !== null && member.gosPersonData.iin !== member.iin!.replace(/-/g, '')) {
|
package/types/enum.ts
CHANGED
|
@@ -17,6 +17,7 @@ export enum Actions {
|
|
|
17
17
|
register = 'register',
|
|
18
18
|
send = 'send',
|
|
19
19
|
affiliate = 'affiliate',
|
|
20
|
+
template = 'template',
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export enum PostActions {
|
|
@@ -81,3 +82,8 @@ export enum MemberAppCodes {
|
|
|
81
82
|
beneficialOwnerApp = 'beneficialOwnerApp',
|
|
82
83
|
spokesmanApp = 'spokesmanApp',
|
|
83
84
|
}
|
|
85
|
+
|
|
86
|
+
export enum Methods {
|
|
87
|
+
GET = 'GET',
|
|
88
|
+
POST = 'POST',
|
|
89
|
+
}
|
package/types/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { RouteLocationNormalizedLoaded, RouteLocationNormalized } from 'vue-router';
|
|
2
|
+
import { AxiosRequestConfig } from 'axios';
|
|
3
|
+
import { Methods } from './enum';
|
|
2
4
|
|
|
3
5
|
export {};
|
|
4
6
|
|
|
@@ -18,7 +20,8 @@ declare global {
|
|
|
18
20
|
| 'lka'
|
|
19
21
|
| 'mycar'
|
|
20
22
|
| 'checkcontract'
|
|
21
|
-
| 'checkcontragent'
|
|
23
|
+
| 'checkcontragent'
|
|
24
|
+
| 'daskamkorlyk';
|
|
22
25
|
type MemberKeys = keyof ReturnType<typeof useFormStore>;
|
|
23
26
|
type MemberFormTypes = 'policyholderForm' | 'insuredForm' | 'beneficiaryForm' | 'beneficialOwnerForm' | 'policyholdersRepresentativeForm' | 'productConditionsForm';
|
|
24
27
|
type SingleMember = 'policyholderForm' | 'policyholdersRepresentativeForm';
|
|
@@ -262,7 +265,7 @@ declare global {
|
|
|
262
265
|
annuityMonthPay: string | number | null;
|
|
263
266
|
};
|
|
264
267
|
|
|
265
|
-
|
|
268
|
+
interface AddCover {
|
|
266
269
|
id: string | null;
|
|
267
270
|
processInstanceId: string;
|
|
268
271
|
coverTypeId: string;
|
|
@@ -274,7 +277,7 @@ declare global {
|
|
|
274
277
|
amount: number;
|
|
275
278
|
premium: number;
|
|
276
279
|
isMigrate: boolean;
|
|
277
|
-
}
|
|
280
|
+
}
|
|
278
281
|
|
|
279
282
|
type SignUrlType = {
|
|
280
283
|
uri: string;
|
|
@@ -522,4 +525,8 @@ declare global {
|
|
|
522
525
|
managerPolicyName?: string;
|
|
523
526
|
insuranceProgramType?: string;
|
|
524
527
|
};
|
|
528
|
+
|
|
529
|
+
interface AxiosRequestLocalConfig extends AxiosRequestConfig {
|
|
530
|
+
method: Methods | keyof typeof Methods;
|
|
531
|
+
}
|
|
525
532
|
}
|