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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/components/Button/Btn.vue +1 -1
  2. package/components/Complex/ContentBlock.vue +1 -1
  3. package/components/Complex/MessageBlock.vue +1 -1
  4. package/components/Complex/Page.vue +7 -1
  5. package/components/Complex/WhiteBlock.vue +7 -0
  6. package/components/Dialog/Dialog.vue +2 -2
  7. package/components/Dialog/FamilyDialog.vue +5 -5
  8. package/components/Form/FormBlock.vue +25 -27
  9. package/components/Form/FormSection.vue +2 -2
  10. package/components/Form/FormTextSection.vue +3 -3
  11. package/components/Form/FormToggle.vue +3 -3
  12. package/components/Form/ManagerAttachment.vue +5 -5
  13. package/components/Form/ProductConditionsBlock.vue +16 -16
  14. package/components/Input/EmptyFormField.vue +1 -1
  15. package/components/Layout/Header.vue +1 -1
  16. package/components/Layout/SettingsPanel.vue +5 -9
  17. package/components/List/ListEmpty.vue +1 -1
  18. package/components/Menu/MenuHover.vue +1 -1
  19. package/components/Menu/MenuNav.vue +1 -1
  20. package/components/Menu/MenuNavItem.vue +4 -4
  21. package/components/Pages/Anketa.vue +11 -16
  22. package/components/Pages/Auth.vue +9 -9
  23. package/components/Pages/ContragentForm.vue +426 -0
  24. package/components/Pages/Documents.vue +5 -5
  25. package/components/Pages/InvoiceInfo.vue +1 -1
  26. package/components/Pages/MemberForm.vue +14 -7
  27. package/components/Pages/ProductAgreement.vue +1 -3
  28. package/components/Pages/ProductConditions.vue +7 -12
  29. package/components/Panel/PanelHandler.vue +13 -13
  30. package/components/Panel/PanelSelectItem.vue +3 -3
  31. package/components/Utilities/IconBorder.vue +17 -0
  32. package/composables/classes.ts +5 -7
  33. package/composables/constants.ts +5 -0
  34. package/composables/index.ts +20 -4
  35. package/configs/i18n.ts +0 -2
  36. package/layouts/default.vue +2 -2
  37. package/layouts/full.vue +1 -1
  38. package/locales/ru.json +10 -1
  39. package/package.json +9 -20
  40. package/pages/500.vue +2 -2
  41. package/pages/Token.vue +1 -0
  42. package/plugins/helperFunctionsPlugins.ts +6 -4
  43. package/store/data.store.ts +46 -34
  44. package/types/index.ts +40 -26
  45. package/components/Button/BtnIcon.vue +0 -47
  46. package/locales/kz.json +0 -585
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <section v-if="sendingActions">
3
- <div :class="[$libStyles.flexColNav]">
3
+ <div :class="[$styles.flexColNav]">
4
4
  <v-form ref="vForm">
5
5
  <base-rounded-input v-model.trim="actionCause" placeholder="Причина" :rules="$rules.required" />
6
6
  </v-form>
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
  </section>
10
10
  <section v-if="acceptAction">
11
- <div :class="[$libStyles.flexColNav]">
11
+ <div :class="[$styles.flexColNav]">
12
12
  <base-content-block v-if="hasConditionsInfo" class="flex flex-col gap-3">
13
13
  <span
14
14
  >{{ `Сумма страховой премии ${paymentPeriod}:` }} <b>{{ `${insurancePremiumPerMonth}₸` }}</b></span
@@ -18,21 +18,21 @@
18
18
  </span>
19
19
  </base-content-block>
20
20
  <base-btn :text="$dataStore.t('confirm.yes')" @click="handleTask" />
21
- <base-btn :btn="$libStyles.blueLightBtn" :text="$dataStore.t('confirm.no')" @click="closePanel" />
21
+ <base-btn :btn="$styles.blueLightBtn" :text="$dataStore.t('confirm.no')" @click="closePanel" />
22
22
  </div>
23
23
  </section>
24
24
  <section v-if="signingActions" class="relative">
25
25
  <div>
26
26
  <base-fade-transition>
27
- <div v-if="!isSendNumberOpen" :class="[$libStyles.flexColNav]">
28
- <div :class="[$libStyles.blueBgLight]" class="rounded-lg p-4">
27
+ <div v-if="!isSendNumberOpen" :class="[$styles.flexColNav]">
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="$libStyles.textTitle">{{ `${signUrl.longName} - ${signUrl.iin}` }}</v-expansion-panel-title>
31
+ <v-expansion-panel-title class="h-[80px]" :class="$styles.textTitle">{{ `${signUrl.longName} - ${signUrl.iin}` }}</v-expansion-panel-title>
32
32
  <v-expansion-panel-text class="border-t-[1px]">
33
- <section class="flex flex-col gap-4 py-3" :class="$libStyles.textSimple">
33
+ <section class="flex flex-col gap-4 py-3" :class="$styles.textSimple">
34
34
  <base-btn :loading="loading" :text="$dataStore.t('sign.copyCloud')" @click="$dataStore.copyToClipboard(signUrl.uri)" />
35
- <base-btn :loading="loading" :btn="$libStyles.blueLightBtn" :text="$dataStore.t('sign.recipientNumber')" @click="openSmsPanel(signUrl)" />
35
+ <base-btn :loading="loading" :btn="$styles.blueLightBtn" :text="$dataStore.t('sign.recipientNumber')" @click="openSmsPanel(signUrl)" />
36
36
  </section>
37
37
  </v-expansion-panel-text>
38
38
  </v-expansion-panel>
@@ -40,7 +40,7 @@
40
40
  <base-list-empty v-else />
41
41
  </div>
42
42
  </div>
43
- <div v-if="isSendNumberOpen" :class="[$libStyles.flexColNav]">
43
+ <div v-if="isSendNumberOpen" :class="[$styles.flexColNav]">
44
44
  <i
45
45
  class="mdi mdi-arrow-left cursor-pointer absolute text-xl left-0 top-0 rounded-br-full bg-white border-[1px] pb-3 pt-1 pl-1 pr-3"
46
46
  @click="isSendNumberOpen = false"
@@ -64,11 +64,11 @@
64
64
  <section v-if="payingActions" class="relative">
65
65
  <div>
66
66
  <base-fade-transition>
67
- <div v-if="!isSendNumberOpen" :class="[$libStyles.flexColNav]">
67
+ <div v-if="!isSendNumberOpen" :class="[$styles.flexColNav]">
68
68
  <base-btn :loading="loading" :text="$dataStore.t('payment.copyUrl')" @click="$dataStore.copyToClipboard(formStore.epayLink)" />
69
- <base-btn :loading="loading" :btn="$libStyles.blueLightBtn" :text="$dataStore.t('payment.recipientNumber')" @click="openEpayPanel" />
69
+ <base-btn :loading="loading" :btn="$styles.blueLightBtn" :text="$dataStore.t('payment.recipientNumber')" @click="openEpayPanel" />
70
70
  </div>
71
- <div v-if="isSendNumberOpen" :class="[$libStyles.flexColNav]">
71
+ <div v-if="isSendNumberOpen" :class="[$styles.flexColNav]">
72
72
  <i
73
73
  class="mdi mdi-arrow-left cursor-pointer absolute text-xl left-0 top-0 rounded-br-full bg-white border-[1px] pb-3 pt-1 pl-1 pr-3"
74
74
  @click="isSendNumberOpen = false"
@@ -90,7 +90,7 @@
90
90
  </div>
91
91
  </section>
92
92
  <section v-if="affiliateActions">
93
- <div :class="[$libStyles.flexColNav]">
93
+ <div :class="[$styles.flexColNav]">
94
94
  <v-form ref="vForm">
95
95
  <base-content-block class="flex flex-col gap-3">
96
96
  <base-form-input v-model.trim="formStore.affilationResolution.number" :rules="$rules.required" :label="$dataStore.t('form.documentNumber')" />
@@ -1,7 +1,7 @@
1
1
  <template>
2
- <div class="flex justify-between p-4 items-center cursor-pointer" :class="[$libStyles.rounded, $libStyles.blueBgLight, $libStyles.blueBgLightHover]">
3
- <span :class="[$libStyles.textSimple]">{{ text }}</span>
4
- <i class="mdi text-xl" :class="[selected ? `mdi-radiobox-marked ${$libStyles.greenText}` : 'mdi-radiobox-blank text-[#636363]']"></i>
2
+ <div class="flex justify-between p-4 items-center cursor-pointer" :class="[$styles.rounded, $styles.blueBgLight, $styles.blueBgLightHover]">
3
+ <span :class="[$styles.textSimple]">{{ text }}</span>
4
+ <i class="mdi text-xl" :class="[selected ? `mdi-radiobox-marked ${$styles.greenText}` : 'mdi-radiobox-blank text-[#636363]']"></i>
5
5
  </div>
6
6
  </template>
7
7
 
@@ -0,0 +1,17 @@
1
+ <template>
2
+ <div class="border-[1px] border-[#F1F2F6] rounded-[12px] p-[10px]">
3
+ <slot v-if="!icon"></slot>
4
+ <i v-else :class="icon"></i>
5
+ </div>
6
+ </template>
7
+
8
+ <script lang="ts">
9
+ export default defineComponent({
10
+ props: {
11
+ icon: {
12
+ type: String,
13
+ default: '',
14
+ },
15
+ },
16
+ });
17
+ </script>
@@ -405,11 +405,11 @@ export class Member extends Person {
405
405
  registrationRegion: Value;
406
406
  registrationRegionType: Value;
407
407
  registrationCity: Value;
408
- registrationQuarter: string | null;
409
- registrationMicroDistrict: string | null;
410
- registrationStreet: string | null;
411
- registrationNumberHouse: string | null;
412
- registrationNumberApartment: string | null;
408
+ registrationQuarter?: string | null;
409
+ registrationMicroDistrict?: string | null;
410
+ registrationStreet?: string | null;
411
+ registrationNumberHouse?: string | null;
412
+ registrationNumberApartment?: string | null;
413
413
  birthRegion: Value;
414
414
  documentType: Value;
415
415
  documentNumber: string | null;
@@ -891,7 +891,6 @@ export class DataStoreClass {
891
891
  user: User;
892
892
  accessToken: string | null = null;
893
893
  refreshToken: string | null = null;
894
- processCoverTypeSum: Value[];
895
894
  processIndexRate: Value[];
896
895
  processPaymentPeriod: Value[];
897
896
  dicAnnuityTypeList: Value[];
@@ -1031,7 +1030,6 @@ export class DataStoreClass {
1031
1030
  this.user = new User();
1032
1031
  this.accessToken = null;
1033
1032
  this.refreshToken = null;
1034
- this.processCoverTypeSum = [];
1035
1033
  this.taskList = [];
1036
1034
  this.processHistory = [];
1037
1035
  this.contragentList = [];
@@ -9,6 +9,11 @@ export const constants = Object.freeze({
9
9
  liferenta: 9,
10
10
  gons: 10,
11
11
  halykkazyna: 11,
12
+ lifebusiness: 14,
13
+ },
14
+ amlProducts: {
15
+ checkcontragent: 1,
16
+ checkcontract: 2,
12
17
  },
13
18
  editableStatuses: [Statuses.StartForm, Statuses.EditBeneficiaryForm, Statuses.EditForm],
14
19
  documentsLinkVisibleStatuses: [
@@ -229,13 +229,19 @@ export const setAddressBeneficiary = (whichIndex: number, sameAddress: boolean)
229
229
  } else {
230
230
  if (beneficiary.response && beneficiary.response.addresses && beneficiary.response.addresses.length) {
231
231
  const benAddress = beneficiary.response.addresses;
232
- const country = dataStore.countries.find(i => (i.nameRu as string).match(new RegExp(benAddress[0].countryName, 'i')));
233
- const city = dataStore.cities.find(i => i.nameRu === benAddress[0].cityName.replace('г.', ''));
232
+ const countryName = benAddress[0].countryName;
233
+ const cityName = benAddress[0].cityName;
234
+ if (countryName) {
235
+ const country = dataStore.countries.find(i => (i.nameRu as string).match(new RegExp(countryName, 'i')));
236
+ beneficiary.registrationCountry = country ?? new Value();
237
+ }
238
+ if (cityName) {
239
+ const city = dataStore.cities.find(i => i.nameRu === cityName.replace('г.', ''));
240
+ beneficiary.registrationCity = city ?? new Value();
241
+ }
234
242
  const province = dataStore.states.find(i => i.ids === benAddress[0].stateCode);
235
243
  const localityType = dataStore.localityTypes.find(i => i.nameRu === benAddress[0].cityTypeName);
236
244
  const region = dataStore.regions.find(i => i.ids == benAddress[0].regionCode);
237
- beneficiary.registrationCountry = country ?? new Value();
238
- beneficiary.registrationCity = city ?? new Value();
239
245
  beneficiary.registrationMicroDistrict = beneficiary.response?.addresses[0].microRaion ?? '';
240
246
  beneficiary.registrationNumberApartment = beneficiary.response?.addresses[0].apartmentNumber ?? '';
241
247
  beneficiary.registrationNumberHouse = beneficiary.response?.addresses[0].blockNumber ?? '';
@@ -248,3 +254,13 @@ export const setAddressBeneficiary = (whichIndex: number, sameAddress: boolean)
248
254
  }
249
255
  }
250
256
  };
257
+
258
+ export const changeBridge = async (toBridge: 'efo' | 'lka', token: string) => {
259
+ const bridgeUrl = import.meta.env[`VITE_${toBridge.toUpperCase()}_URL`] as string;
260
+ if (!toBridge) return;
261
+ if (!bridgeUrl || !token) {
262
+ useDataStore().showToaster('error', `${useDataStore().t('toaster.noUrl')} [import.meta.env.VITE_${toBridge.toUpperCase()}_URL]`);
263
+ return;
264
+ }
265
+ window.open(`${bridgeUrl}/#/Token?token=${token}`, '_blank');
266
+ };
package/configs/i18n.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { createI18n } from 'vue-i18n';
2
2
  import ru from '../locales/ru.json';
3
- import kz from '../locales/kz.json';
4
3
 
5
4
  const instance = createI18n({
6
5
  legacy: false,
@@ -8,7 +7,6 @@ const instance = createI18n({
8
7
  locale: 'ru',
9
8
  messages: {
10
9
  ru,
11
- kz,
12
10
  },
13
11
  });
14
12
 
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="h-full z-[1]" :class="[$dataStore.hasLayoutMargins ? 'lg:mx-[22px] lg:my-[33px] lg:shadow-xl' : '']">
3
- <div :class="[$libStyles.greenBg]" class="hidden z-[-1] lg:block absolute left-0 top-0 h-[200px] w-full"></div>
4
- <section class="flex h-full" :class="$libStyles.blueBgLight">
3
+ <div :class="[$styles.greenBg]" class="hidden z-[-1] lg:block absolute left-0 top-0 h-[200px] w-full"></div>
4
+ <section class="flex h-full" :class="$styles.blueBgLight">
5
5
  <base-menu-nav
6
6
  v-if="$dataStore.showNav"
7
7
  :selected="$dataStore.menu.selectedItem"
package/layouts/full.vue CHANGED
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="h-full z-[1]" :class="[$dataStore.hasLayoutMargins ? 'lg:mx-[22px] lg:my-[33px] lg:shadow-xl' : '']">
3
- <div :class="[$libStyles.greenBg]" class="hidden lg:block absolute z-[-1] left-0 top-0 h-[200px] w-full"></div>
3
+ <div :class="[$styles.greenBg]" class="hidden lg:block absolute z-[-1] left-0 top-0 h-[200px] w-full"></div>
4
4
  <slot></slot>
5
5
  </div>
6
6
  </template>
package/locales/ru.json CHANGED
@@ -305,12 +305,16 @@
305
305
  "report": "Отчет",
306
306
  "notifications": "Уведомления",
307
307
  "support": "Тех. поддержка",
308
+ "makePolicy": "Заключить полис",
309
+ "done": "Оформлено",
310
+ "noChildAgents": "Отсутствуют суб-агенты",
308
311
  "agentsInfo": "Сведения о страховых агентах",
312
+ "personalData": "Личные данные",
309
313
  "info": "Данные об агенте",
310
314
  "about": "Сведения об Агенте",
311
315
  "level": "Уровень",
312
316
  "subAgents": "Суб-агенты",
313
- "done": "Оформлено договоров",
317
+ "doneStatements": "Оформлено договоров",
314
318
  "myContracts": "Оформлено договоров",
315
319
  "nextLevel": "Следующий уровень {text}",
316
320
  "leftMy": "Осталось оформить лично",
@@ -393,6 +397,11 @@
393
397
  "dicts": "Справочники",
394
398
  "aml": "AML",
395
399
  "amlLong": "Противодействие отмыву денег",
400
+ "checkContract": "Присвоение уровня риска",
401
+ "checkContragent": "Проверка Контрагента",
402
+ "riskPoint": "Уровень риска",
403
+ "comment": "Комментарий",
404
+ "matchWith": "Совпадение по",
396
405
  "efoLong": "Единое фронтальное окно",
397
406
  "efo": "ЕФО",
398
407
  "lkaLong": "Личный кабинет Агента",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hl-core",
3
- "version": "0.0.9-beta.2",
3
+ "version": "0.0.9-beta.4",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "nuxt.config.ts",
@@ -28,27 +28,16 @@
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 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 core",
31
33
  "update:core": "git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main",
32
- "update:aml": "cd .. && cd aml && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
33
- "update:baiterek": "cd .. && cd baiterek && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
34
- "update:bolashak": "cd .. && cd bolashak && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
35
- "update:calculator": "cd .. && cd calculator && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
36
- "update:efo": "cd .. && cd efo && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
37
- "update:gons": "cd .. && cd gons && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
38
- "update:kazyna": "cd .. && cd kazyna && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
39
- "update:liferenta": "cd .. && cd liferenta && yarn && git checkout -b %npm_package_version% && git add . && git commit -m \"%npm_package_version%\" && git push && git checkout main && cd .. && cd core",
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",
40
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",
41
- "update:all": "yarn update:aml && yarn update:baiterek && yarn update:bolashak && yarn update:calculator && yarn update:efo && yarn update:gons && yarn update:kazyna && yarn update:liferenta && yarn update:lka",
42
- "pull:aml": "cd .. && cd aml && git pull && cd .. && cd core",
43
- "pull:baiterek": "cd .. && cd baiterek && git pull && cd .. && cd core",
44
- "pull:bolashak": "cd .. && cd bolashak && git pull && cd .. && cd core",
45
- "pull:calculator": "cd .. && cd calculator && git pull && cd .. && cd core",
46
- "pull:efo": "cd .. && cd efo && git pull && cd .. && cd core",
47
- "pull:gons": "cd .. && cd gons && git pull && cd .. && cd core",
48
- "pull:kazyna": "cd .. && cd kazyna && git pull && cd .. && cd core",
49
- "pull:liferenta": "cd .. && cd liferenta && git pull && cd .. && cd core",
50
- "pull:lka": "cd .. && cd lka && git pull && cd .. && cd core",
51
- "pull:all": "cd .. && cd aml && git pull && cd .. && cd baiterek && git pull && cd .. && cd bolashak && git pull && cd .. && cd calculator && git pull && cd .. && cd efo && git pull && cd .. && cd gons && git pull && cd .. && cd kazyna && git pull && cd .. && cd liferenta && git pull && cd .. && cd lka && git pull && cd ..",
36
+ "update:all": "yarn update:aml && yarn update:lka",
37
+ "pull:core": "git pull && git fetch",
38
+ "pull:aml": "cd ../../aml && git pull && cd ../efo/core",
39
+ "pull:lka": "cd ../../lka && git pull && cd ../efo/core",
40
+ "pull:all": "yarn pull:core && yarn pull:aml && yarn pull:lka",
52
41
  "typecheck": "nuxt typecheck"
53
42
  },
54
43
  "devDependencies": {
package/pages/500.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <base-content class="!w-full flex-col justify-center items-center gap-[100px]" :class="[$libStyles.blueBgLight]">
2
+ <base-content class="!w-full flex-col justify-center items-center gap-[100px]" :class="[$styles.blueBgLight]">
3
3
  <svg class="w-[240px] lg:w-[330px]" draggable="false" width="277" height="99" viewBox="0 0 277 99" fill="none" xmlns="http://www.w3.org/2000/svg">
4
4
  <path
5
5
  fill-rule="evenodd"
@@ -39,7 +39,7 @@
39
39
  />
40
40
  </svg>
41
41
  <div class="text-center">
42
- <h2 :class="[$libStyles.blackText]" class="text-[26px] leading-5 mb-5">Сервис временно не доступен</h2>
42
+ <h2 :class="[$styles.blackText]" class="text-[26px] leading-5 mb-5">Сервис временно не доступен</h2>
43
43
  <p v-if="errorStack.length" class="mt-4 flex flex-col">
44
44
  <span v-for="(error, index) of errorStack" :key="error">
45
45
  <i v-if="index !== 0" class="mdi mdi-arrow-right"></i>
package/pages/Token.vue CHANGED
@@ -22,6 +22,7 @@ export default defineComponent({
22
22
  if (dataStore.isAML) {
23
23
  return 'Main';
24
24
  }
25
+ return 'index';
25
26
  };
26
27
 
27
28
  onMounted(async () => {
@@ -16,12 +16,14 @@ export default defineNuxtPlugin(nuxtApp => {
16
16
 
17
17
  return {
18
18
  provide: {
19
- capitalize: capitalize,
20
- getFullNameShorted: getFullNameShorted,
21
- libStyles: new Styles(),
19
+ env: useEnv(),
22
20
  maska: new Masks(),
23
- reformatIin: reformatIin,
21
+ styles: new Styles(),
24
22
  constants: constants,
23
+ capitalize: capitalize,
24
+ display: useDisplayInfo,
25
+ reformatIin: reformatIin,
26
+ getFullNameShorted: getFullNameShorted,
25
27
  },
26
28
  };
27
29
  });
@@ -39,12 +39,14 @@ export const useDataStore = defineStore('data', {
39
39
  isBaiterek: state => state.product === 'baiterek',
40
40
  isBolashak: state => state.product === 'bolashak',
41
41
  isMycar: state => state.product === 'mycar',
42
+ isLifeBusiness: state => state.product === 'lifebusiness',
42
43
  isLifetrip: state => state.product === 'lifetrip',
43
44
  isLiferenta: state => state.product === 'liferenta',
44
45
  isGons: state => state.product === 'gons',
45
46
  isKazyna: state => state.product === 'halykkazyna',
46
47
  isCalculator: state => state.product === 'calculator',
47
- isComplianceWindow: state => state.product === 'compliance',
48
+ isCheckContract: state => state.product === 'checkcontract',
49
+ isCheckContragent: state => state.product === 'checkcontragent',
48
50
  isEveryFormDisabled: state => Object.values(state.formStore.isDisabled).every(i => i === true),
49
51
  hasClientAnketa: state => state.formStore.additionalInsuranceTerms.find(i => i.coverTypeCode === 10),
50
52
  isClientAnketaCondition: state =>
@@ -478,12 +480,15 @@ export const useDataStore = defineStore('data', {
478
480
  }
479
481
  if ('address' in user && user.address && user.address.length) {
480
482
  const userAddress = user.address[0];
481
- const country = this.countries.find(i => i.nameRu?.match(new RegExp(userAddress.countryName, 'i')));
483
+ const countryName = userAddress.countryName;
484
+ if (countryName) {
485
+ const country = this.countries.find(i => i.nameRu?.match(new RegExp(countryName, 'i')));
486
+ member.registrationCountry = country ? country : new Value();
487
+ }
482
488
  const province = this.states.find(i => i.ids === userAddress.stateCode);
483
489
  const localityType = this.localityTypes.find(i => i.nameRu === userAddress.cityTypeName);
484
490
  const city = this.cities.find(i => !!userAddress.cityName && i.nameRu === userAddress.cityName.replace('г.', ''));
485
491
  const region = this.regions.find(i => !!userAddress.regionCode && i.ids == userAddress.regionCode);
486
- member.registrationCountry = country ? country : new Value();
487
492
  member.registrationStreet = userAddress.streetName;
488
493
  member.registrationCity = city ? city : new Value();
489
494
  member.registrationNumberApartment = userAddress.apartmentNumber;
@@ -582,7 +587,7 @@ export const useDataStore = defineStore('data', {
582
587
  this.contragentList = [];
583
588
  }
584
589
  },
585
- async saveContragent(user: Member, whichForm: keyof typeof StoreMembers, whichIndex: number | null, onlySaveAction: boolean = true) {
590
+ async saveContragent(user: Member, whichForm: keyof typeof StoreMembers | 'contragent', whichIndex: number | null, onlySaveAction: boolean = true) {
586
591
  this.isLoading = !onlySaveAction;
587
592
  const hasInsisId = await this.alreadyInInsis(user);
588
593
  if (typeof hasInsisId === 'number') {
@@ -636,7 +641,7 @@ export const useDataStore = defineStore('data', {
636
641
  }))(user);
637
642
  const questionariesData: ContragentQuestionaries[] = Object.values(userQuestionnaires).map(question => {
638
643
  let questName = '';
639
- let questionId = parseInt(String(question.ids)).toString();
644
+ let questionId = parseInt(question.ids as string).toString();
640
645
  if (questionId === '500003') {
641
646
  questName = 'Код сектора экономики';
642
647
  } else if (questionId === '500011') {
@@ -659,11 +664,11 @@ export const useDataStore = defineStore('data', {
659
664
  user.addTaxResidency = new Value();
660
665
  }
661
666
  const addTaxResidency = userResponseQuestionnaires !== null ? userResponseQuestionnaires.find(i => i.questId === '507777') : undefined;
662
- if (user.addTaxResidency.nameRu !== null) {
667
+ if (user.addTaxResidency.nameRu !== null && user.addTaxResidency.ids) {
663
668
  questionariesData.push({
664
669
  id: addTaxResidency ? addTaxResidency.id : 0,
665
670
  contragentId: Number(user.id),
666
- questAnswer: String(user.addTaxResidency.ids ?? ''),
671
+ questAnswer: user.addTaxResidency.ids,
667
672
  questAnswerName: user.addTaxResidency.nameRu,
668
673
  questName: 'Указать если налоговое резиденство выбрано другое',
669
674
  questId: '507777',
@@ -735,7 +740,7 @@ export const useDataStore = defineStore('data', {
735
740
  issuerNameRu: user.documentIssuers.nameRu,
736
741
  note: null,
737
742
  number: user.documentNumber,
738
- type: user.documentType.ids ? String(user.documentType.ids) : '',
743
+ type: user.documentType.ids ? (user.documentType.ids as string) : undefined,
739
744
  typeName: user.documentType.nameRu,
740
745
  serial: null,
741
746
  verifyType: user.verifyType,
@@ -753,13 +758,13 @@ export const useDataStore = defineStore('data', {
753
758
  addressData.push({
754
759
  id: userResponseAddress !== null ? userResponseAddress[0].id : 0,
755
760
  contragentId: Number(user.id),
756
- countryCode: String(user.registrationCountry.ids ?? ''),
761
+ countryCode: user.registrationCountry.ids ?? undefined,
757
762
  countryName: user.registrationCountry.nameRu ?? '',
758
- stateCode: String(user.registrationProvince.ids ?? ''),
763
+ stateCode: user.registrationProvince.ids ?? undefined,
759
764
  stateName: user.registrationProvince.nameRu ?? '',
760
- cityCode: String(user.registrationCity.code ?? ''),
765
+ cityCode: user.registrationCity.code ?? undefined,
761
766
  cityName: user.registrationCity.nameRu ?? '',
762
- regionCode: String(user.registrationRegion.ids ?? ''),
767
+ regionCode: user.registrationRegion.ids ?? undefined,
763
768
  regionName: user.registrationRegion.nameRu,
764
769
  streetName: user.registrationStreet ?? '',
765
770
  kvartal: user.registrationQuarter,
@@ -784,8 +789,12 @@ export const useDataStore = defineStore('data', {
784
789
 
785
790
  const personId = await this.api.saveContragent(data);
786
791
  if (personId > 0) {
787
- await this.getContragentById(personId, whichForm, false, whichIndex);
788
- user.otpTokenId = null;
792
+ if (this.isLKA || whichForm === 'contragent') {
793
+ return personId;
794
+ } else {
795
+ await this.getContragentById(personId, whichForm, false, whichIndex);
796
+ user.otpTokenId = null;
797
+ }
789
798
  } else {
790
799
  return false;
791
800
  }
@@ -942,9 +951,9 @@ export const useDataStore = defineStore('data', {
942
951
  payPeriod: this.formStore.productConditionsForm.coverPeriod,
943
952
  annualIncome: this.formStore.productConditionsForm.annualIncome ? Number(this.formStore.productConditionsForm.annualIncome.replace(/\s/g, '')) : null,
944
953
  indexRateId: this.formStore.productConditionsForm.processIndexRate?.id
945
- ? String(this.formStore.productConditionsForm.processIndexRate.id)
946
- : String(this.processIndexRate.find(i => i.code === '0')?.id ?? ''),
947
- paymentPeriodId: String(this.formStore.productConditionsForm.paymentPeriod.id ?? ''),
954
+ ? this.formStore.productConditionsForm.processIndexRate.id ?? undefined
955
+ : this.processIndexRate.find(i => i.code === '0')?.id ?? undefined,
956
+ paymentPeriodId: this.formStore.productConditionsForm.paymentPeriod.id ?? undefined,
948
957
  lifeMultiply: formatProcents(this.formStore.productConditionsForm.lifeMultiply ?? ''),
949
958
  lifeAdditive: formatProcents(this.formStore.productConditionsForm.lifeAdditive ?? ''),
950
959
  adbMultiply: formatProcents(this.formStore.productConditionsForm.adbMultiply ?? ''),
@@ -962,9 +971,9 @@ export const useDataStore = defineStore('data', {
962
971
  }
963
972
  if (this.isLiferenta) {
964
973
  conditionsData.policyAppDto.guaranteedPaymentPeriod = this.formStore.productConditionsForm.guaranteedPeriod || 0;
965
- conditionsData.policyAppDto.annuityTypeId = String(this.formStore.productConditionsForm.typeAnnuityInsurance.id ?? '');
974
+ conditionsData.policyAppDto.annuityTypeId = (this.formStore.productConditionsForm.typeAnnuityInsurance.id as string) ?? undefined;
966
975
  conditionsData.policyAppDto.paymentPeriod = Number(this.formStore.productConditionsForm.termAnnuityPayments);
967
- conditionsData.policyAppDto.annuityPaymentPeriodId = String(this.formStore.productConditionsForm.periodAnnuityPayment.id ?? '');
976
+ conditionsData.policyAppDto.annuityPaymentPeriodId = (this.formStore.productConditionsForm.periodAnnuityPayment.id as string) ?? undefined;
968
977
  }
969
978
  return conditionsData;
970
979
  },
@@ -1052,11 +1061,11 @@ export const useDataStore = defineStore('data', {
1052
1061
  salesChannel: this.formStore.applicationData.insisWorkDataApp.salesChannel,
1053
1062
  salesChannelName: this.formStore.applicationData.insisWorkDataApp.salesChannelName,
1054
1063
  insrType: this.formStore.applicationData.insisWorkDataApp.insrType,
1055
- saleChanellPolicy: String(this.formStore.SaleChanellPolicy.ids ?? ''),
1064
+ saleChanellPolicy: (this.formStore.SaleChanellPolicy.ids as string) ?? undefined,
1056
1065
  saleChanellPolicyName: this.formStore.SaleChanellPolicy.nameRu ?? '',
1057
- regionPolicy: String(this.formStore.RegionPolicy.ids ?? ''),
1066
+ regionPolicy: (this.formStore.RegionPolicy.ids as string) ?? undefined,
1058
1067
  regionPolicyName: this.formStore.RegionPolicy.nameRu ?? '',
1059
- managerPolicy: String(this.formStore.ManagerPolicy.ids),
1068
+ managerPolicy: this.formStore.ManagerPolicy.ids as string,
1060
1069
  managerPolicyName: this.formStore.ManagerPolicy.nameRu ?? '',
1061
1070
  insuranceProgramType: this.formStore.applicationData.insisWorkDataApp.insuranceProgramType,
1062
1071
  };
@@ -1090,7 +1099,7 @@ export const useDataStore = defineStore('data', {
1090
1099
  async getFromApi(whichField: string, whichRequest: string, parameter?: any, reset: boolean = false): Promise<Value[]> {
1091
1100
  const storageValue = JSON.parse(localStorage.getItem(whichField) || 'null');
1092
1101
  const currentHour = new Date().getHours();
1093
- const currentMinutePart = Math.ceil((new Date().getMinutes() + 1) / 15);
1102
+ const currentMinutePart = Math.ceil((new Date().getMinutes() + 1) / (this.isLKA ? 60 : 15));
1094
1103
 
1095
1104
  const getDataCondition = () => {
1096
1105
  if (!storageValue) return true;
@@ -1206,13 +1215,14 @@ export const useDataStore = defineStore('data', {
1206
1215
  return await this.getFromApi('relations', 'getRelationTypes');
1207
1216
  },
1208
1217
  async getProcessIndexRate() {
1209
- return await this.getFromApi('processIndexRate', 'getProcessIndexRate', this.processCode);
1210
- },
1211
- async getProcessCoverTypeSum(type?: any) {
1212
- return await this.getFromApi('processCoverTypeSum', 'getProcessCoverTypeSum', type);
1218
+ if (this.processCode) {
1219
+ return await this.getFromApi('processIndexRate', 'getProcessIndexRate', this.processCode);
1220
+ }
1213
1221
  },
1214
1222
  async getProcessPaymentPeriod() {
1215
- return await this.getFromApi('processPaymentPeriod', 'getProcessPaymentPeriod', this.processCode);
1223
+ if (this.processCode) {
1224
+ return await this.getFromApi('processPaymentPeriod', 'getProcessPaymentPeriod', this.processCode);
1225
+ }
1216
1226
  },
1217
1227
  async getQuestionRefs(id?: string) {
1218
1228
  return await this.getFromApi('questionRefs', 'getQuestionRefs', id, true);
@@ -1224,7 +1234,9 @@ export const useDataStore = defineStore('data', {
1224
1234
  return await this.getFromApi('dicAnnuityTypeList', 'getDicAnnuityTypeList');
1225
1235
  },
1226
1236
  async getProcessAnnuityPaymentPeriod() {
1227
- return await this.getFromApi('processAnnuityPaymentPeriod', 'getProcessAnnuityPaymentPeriod', this.processCode);
1237
+ if (this.processCode) {
1238
+ return await this.getFromApi('processAnnuityPaymentPeriod', 'getProcessAnnuityPaymentPeriod', this.processCode);
1239
+ }
1228
1240
  },
1229
1241
  async getInsurancePay() {
1230
1242
  return await this.getFromApi('insurancePay', 'getInsurancePay');
@@ -1514,9 +1526,9 @@ export const useDataStore = defineStore('data', {
1514
1526
  coverPeriod: Number(this.formStore.productConditionsForm.coverPeriod),
1515
1527
  payPeriod: Number(this.formStore.productConditionsForm.coverPeriod),
1516
1528
  indexRateId: this.formStore.productConditionsForm.processIndexRate?.id
1517
- ? String(this.formStore.productConditionsForm.processIndexRate.id)
1518
- : String(this.processIndexRate.find(i => i.code === '0')?.id),
1519
- paymentPeriodId: String(this.formStore.productConditionsForm.paymentPeriod.id),
1529
+ ? this.formStore.productConditionsForm.processIndexRate.id ?? undefined
1530
+ : this.processIndexRate.find(i => i.code === '0')?.id ?? undefined,
1531
+ paymentPeriodId: (this.formStore.productConditionsForm.paymentPeriod.id as string) ?? undefined,
1520
1532
  addCovers: this.formStore.additionalInsuranceTermsWithout,
1521
1533
  };
1522
1534
  if (this.isKazyna || product === 'halykkazyna') {
@@ -1526,9 +1538,9 @@ export const useDataStore = defineStore('data', {
1526
1538
  }
1527
1539
  if (this.isLiferenta) {
1528
1540
  calculationData.guaranteedPaymentPeriod = this.formStore.productConditionsForm.guaranteedPeriod || 0;
1529
- calculationData.annuityTypeId = String(this.formStore.productConditionsForm.typeAnnuityInsurance.id);
1541
+ calculationData.annuityTypeId = (this.formStore.productConditionsForm.typeAnnuityInsurance.id as string) ?? undefined;
1530
1542
  calculationData.paymentPeriod = Number(this.formStore.productConditionsForm.termAnnuityPayments);
1531
- calculationData.annuityPaymentPeriodId = String(this.formStore.productConditionsForm.periodAnnuityPayment.id);
1543
+ calculationData.annuityPaymentPeriodId = (this.formStore.productConditionsForm.periodAnnuityPayment.id as string) ?? undefined;
1532
1544
  }
1533
1545
  const calculationResponse = await this.api.calculateWithoutApplication(calculationData, this.isCalculator ? product : undefined);
1534
1546
  this.formStore.productConditionsForm.requestedSumInsured = this.getNumberWithSpaces(calculationResponse.amount);