hl-core 0.0.7-beta.18 → 0.0.7-beta.19

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 CHANGED
@@ -262,7 +262,7 @@ export class ApiClass {
262
262
  });
263
263
  }
264
264
 
265
- async getTaskList(data: any) {
265
+ async getTaskList(data: any): Promise<{ items: TaskListItem[]; totalItems: number }> {
266
266
  return this.axiosCall({
267
267
  method: Methods.POST,
268
268
  url: `/Arm/api/Bpm/TaskList`,
@@ -270,7 +270,7 @@ export class ApiClass {
270
270
  });
271
271
  }
272
272
 
273
- async getProcessHistory(id: any) {
273
+ async getProcessHistory(id: string): Promise<TaskHistory[]> {
274
274
  return this.axiosCall({
275
275
  url: `/Arm/api/Bpm/GetProcessHistory?processInstanceId=${id}`,
276
276
  });
@@ -30,8 +30,6 @@ import { DocumentItem } from '@/composables/classes';
30
30
 
31
31
  export default defineComponent({
32
32
  setup() {
33
- type FileActions = 'view' | 'download';
34
-
35
33
  const dataStore = useDataStore();
36
34
  const formStore = useFormStore();
37
35
  const currentDocument = ref<DocumentItem>(new DocumentItem());
@@ -56,6 +56,8 @@
56
56
  </template>
57
57
 
58
58
  <script lang="ts">
59
+ import { Member } from '@/composables/classes';
60
+
59
61
  export default defineComponent({
60
62
  props: {
61
63
  title: {
@@ -67,7 +69,7 @@ export default defineComponent({
67
69
  default: '',
68
70
  },
69
71
  whichForm: {
70
- type: String as PropType<'policyholderForm' | 'insuredForm' | 'beneficiaryForm' | 'beneficialOwnerForm' | 'policyholdersRepresentativeForm' | 'productConditionsForm'>,
72
+ type: String as PropType<MemberFormTypes>,
71
73
  default: '',
72
74
  },
73
75
  more: {
@@ -84,14 +86,14 @@ export default defineComponent({
84
86
  const isMultiple = ref(multipleMembers.includes(props.whichForm));
85
87
  const member = formStore[props.whichForm as keyof typeof formStore];
86
88
 
87
- const getMemberInfo = (memberData: any) => {
89
+ const getMemberInfo = (memberData: Member) => {
88
90
  return {
89
91
  fullName: computed(() => (memberData && memberData.getFullNameShorted() ? memberData.getFullNameShorted() : null)).value,
90
92
  iin: computed(() => (memberData && memberData.iin ? memberData.iin : null)).value,
91
- gender: computed(() => (memberData && memberData.gender.nameRu ? memberData.gender.nameRu.charAt(0) : null)).value,
93
+ gender: computed(() => (memberData && memberData.gender.nameRu ? (memberData.gender.nameRu as string).charAt(0) : null)).value,
92
94
  birthDate: computed(() => (memberData && memberData.birthDate ? memberData.birthDate : null)).value,
93
- birthPlace: computed(() => (memberData && memberData.birthPlace.nameRu ? memberData.birthPlace.nameRu.substr(0, 3) : null)).value,
94
- sectorCode: computed(() => (memberData && memberData.economySectorCode.ids ? memberData.economySectorCode.ids.slice(-1) : null)).value,
95
+ birthPlace: computed(() => (memberData && memberData.birthPlace.nameRu ? (memberData.birthPlace.nameRu as string).substring(0, 3) : null)).value,
96
+ sectorCode: computed(() => (memberData && memberData.economySectorCode.ids ? (memberData.economySectorCode.ids as string).slice(-1) : null)).value,
95
97
  };
96
98
  };
97
99
 
@@ -2,6 +2,7 @@
2
2
  <div class="flex flex-col justify-between rounded-lg" :class="[$libStyles.whiteBg]">
3
3
  <span v-if="title" class="p-4" :class="[$libStyles.textTitle]">{{ title }}</span>
4
4
  <span v-if="subtitle" class="p-4 text-[#99A3B3] border-t-[1px]" :class="[$libStyles.textSimple]">{{ subtitle }}</span>
5
+ <slot></slot>
5
6
  </div>
6
7
  </template>
7
8
 
@@ -5,7 +5,7 @@
5
5
  <base-form-input
6
6
  v-model="member.iin"
7
7
  :label="$t('form.iin')"
8
- maska="###-###-###-###"
8
+ :maska="$maska.iin"
9
9
  :readonly="isDisabled || isIinPhoneDisabled"
10
10
  :clearable="!isDisabled"
11
11
  append-inner-icon="mdi mdi-magnify"
@@ -15,7 +15,7 @@
15
15
  <base-form-input
16
16
  v-model="member.phoneNumber"
17
17
  :label="$t('form.phoneNumber')"
18
- maska="+7 (7##) ### ## ##"
18
+ :maska="$maska.phone"
19
19
  :readonly="isDisabled || isIinPhoneDisabled"
20
20
  :clearable="!isDisabled"
21
21
  :append-inner-icon="otpCondition ? 'mdi mdi-phone-message' : ''"
@@ -28,7 +28,7 @@
28
28
  v-if="otpCondition && member.otpTokenId"
29
29
  v-model="member.otpCode"
30
30
  :label="$t('form.otpCode')"
31
- maska="# # # #"
31
+ :maska="$maska.otp"
32
32
  :append-inner-icon="hasOtp ? 'mdi mdi-check' : ''"
33
33
  @keyup.enter.prevent="hasOtp ? checkOtp() : null"
34
34
  ></base-form-input>
@@ -60,7 +60,7 @@
60
60
  :clearable="!isDisabled"
61
61
  :label="$t('form.birthDate')"
62
62
  :rules="$rules.required.concat($rules.birthDate)"
63
- maska="##.##.####"
63
+ :maska="$maska.date"
64
64
  append-inner-icon="mdi mdi-calendar-blank-outline"
65
65
  ></base-form-input>
66
66
  <base-form-input
@@ -153,7 +153,7 @@
153
153
  :readonly="isDisabled"
154
154
  :clearable="!isDisabled"
155
155
  :rules="$rules.date"
156
- maska="##.##.####"
156
+ :maska="$maska.date"
157
157
  append-inner-icon="mdi mdi-calendar-blank-outline"
158
158
  ></base-form-input>
159
159
  <base-form-input
@@ -162,7 +162,7 @@
162
162
  :readonly="isDisabled"
163
163
  :clearable="!isDisabled"
164
164
  :rules="$rules.date"
165
- maska="##.##.####"
165
+ :maska="$maska.date"
166
166
  append-inner-icon="mdi mdi-calendar-blank-outline"
167
167
  ></base-form-input>
168
168
  <base-form-input v-model="member.migrationCard" :label="$t('policyholdersRepresentative.numberVisa')"></base-form-input>
@@ -172,7 +172,7 @@
172
172
  :readonly="isDisabled"
173
173
  :clearable="!isDisabled"
174
174
  :rules="$rules.date"
175
- maska="##.##.####"
175
+ :maska="$maska.date"
176
176
  append-inner-icon="mdi mdi-calendar-blank-outline"
177
177
  ></base-form-input>
178
178
  <base-form-input
@@ -181,7 +181,7 @@
181
181
  :readonly="isDisabled"
182
182
  :clearable="!isDisabled"
183
183
  :rules="$rules.date"
184
- maska="##.##.####"
184
+ :maska="$maska.date"
185
185
  append-inner-icon="mdi mdi-calendar-blank-outline"
186
186
  ></base-form-input>
187
187
  <base-form-toggle
@@ -217,7 +217,7 @@
217
217
  :readonly="isDisabled"
218
218
  :clearable="!isDisabled"
219
219
  :rules="formStore.policyholdersRepresentativeForm.isNotary ? $rules.required.concat($rules.date) : []"
220
- maska="##.##.####"
220
+ :maska="$maska.date"
221
221
  append-inner-icon="mdi mdi-calendar-blank-outline"
222
222
  ></base-form-input>
223
223
  </base-form-section>
@@ -281,7 +281,7 @@
281
281
  @append="openPanel($t('form.City'), [], 'registrationCity', $dataStore.getCities, 'registrationProvince')"
282
282
  ></base-panel-input>
283
283
  <!-- <base-form-input v-if="$dataStore.isGons" v-model="member.postIndex" :readonly="isDisabled"
284
- :clearable="!isDisabled" :label="$t('form.postIndex')" maska="######"></base-form-input> -->
284
+ :clearable="!isDisabled" :label="$t('form.postIndex')" :maska="$maska.post"></base-form-input> -->
285
285
  <base-form-input v-model="member.registrationQuarter" :readonly="isDisabled" :clearable="!isDisabled" :label="$t('form.Quarter')"></base-form-input>
286
286
  <base-form-input v-model="member.registrationMicroDistrict" :readonly="isDisabled" :clearable="!isDisabled" :label="$t('form.MicroDistrict')"></base-form-input>
287
287
  <base-form-input
@@ -364,7 +364,7 @@
364
364
  :readonly="isDisabled"
365
365
  :clearable="!isDisabled"
366
366
  :rules="$rules.required.concat($rules.date)"
367
- maska="##.##.####"
367
+ :maska="$maska.date"
368
368
  append-inner-icon="mdi mdi-calendar-blank-outline"
369
369
  ></base-form-input>
370
370
  <base-fade-transition>
@@ -375,7 +375,7 @@
375
375
  :readonly="isDisabled"
376
376
  :clearable="!isDisabled"
377
377
  :rules="$rules.required.concat($rules.date)"
378
- maska="##.##.####"
378
+ :maska="$maska.date"
379
379
  append-inner-icon="mdi mdi-calendar-blank-outline"
380
380
  ></base-form-input>
381
381
  </base-fade-transition>
@@ -446,7 +446,7 @@
446
446
  <base-form-section :title="$t('form.contactsData')" v-if="$dataStore.hasContactSection(whichForm)">
447
447
  <base-form-input
448
448
  v-model="member.homePhone"
449
- maska="+7 (7##) ### ## ##"
449
+ :maska="$maska.phone"
450
450
  placeholder="+7 7"
451
451
  :label="$t('form.homePhone')"
452
452
  :readonly="isDisabled"
@@ -456,7 +456,7 @@
456
456
  <base-form-input v-model.trim="member.email" :label="$t('form.email')" :rules="$rules.email"></base-form-input>
457
457
  </base-form-section>
458
458
  </v-form>
459
- <base-btn v-if="!isDisabled && isTask && $dataStore.isInitiator()" :loading="isButtonLoading || isSubmittingForm" :text="$t('buttons.save')" @click="submitForm"></base-btn>
459
+ <base-btn v-if="showSaveButton" :loading="isButtonLoading || isSubmittingForm" :text="$t('buttons.save')" @click="submitForm"></base-btn>
460
460
  <Teleport v-if="isPanelOpen" to="#panel-actions">
461
461
  <div :class="[$libStyles.scrollPage]" class="flex flex-col items-center">
462
462
  <base-rounded-input v-model="searchQuery" :label="$t('labels.search')" class="w-full p-2" :hide-details="true"></base-rounded-input>
@@ -495,8 +495,6 @@ import { uuid } from 'vue-uuid';
495
495
 
496
496
  export default {
497
497
  setup() {
498
- type FileActions = 'view' | 'download';
499
-
500
498
  const vForm = ref<any>();
501
499
  const route = useRoute();
502
500
  const router = useRouter();
@@ -522,22 +520,36 @@ export default {
522
520
 
523
521
  const whichForm = computed(() => route.query.tab);
524
522
  const whichIndex = computed(() => route.query.i);
525
- const hasOtp = computed(() => member.value.otpCode && member.value.otpCode.length === 7);
523
+ const hasOtp = computed(() => member.value.otpCode && member.value.otpCode.length === useMask().otp.length);
526
524
  const isDisabled = computed(() => !memberStore.isStatementEditible(whichForm.value as string));
527
525
  const isTask = computed(() => route.params.taskId === '0' || dataStore.isTask());
528
526
  const isIinPhoneDisabled = computed(() => formStore.applicationData && 'regNumber' in formStore.applicationData && whichForm.value === formStore.policyholderFormKey);
529
527
  const isFromGBD = computed(() => !!member.value.gosPersonData);
528
+ const showSaveButton = computed(() => {
529
+ const generalCondition = !isDisabled.value && !!isTask.value && !!dataStore.isInitiator();
530
+ const perMemberCondtion = () => {
531
+ switch (whichForm.value) {
532
+ case formStore.policyholderFormKey:
533
+ return true;
534
+ case formStore.insuredFormKey:
535
+ case formStore.beneficiaryFormKey:
536
+ case formStore.beneficialOwnerFormKey:
537
+ case formStore.policyholdersRepresentativeFormKey:
538
+ return route.params.taskId !== '0';
539
+ default:
540
+ return false;
541
+ }
542
+ };
543
+ return generalCondition && perMemberCondtion();
544
+ });
530
545
 
531
546
  const getOtpConditionByMember = () => {
532
547
  switch (whichForm.value) {
533
548
  case formStore.policyholderFormKey:
534
549
  return route.params.taskId === '0';
535
550
  case formStore.policyholdersRepresentativeFormKey:
536
- return route.query.id === '0';
537
551
  case formStore.insuredFormKey:
538
- return route.query.id === '0';
539
552
  case formStore.beneficiaryFormKey:
540
- return route.query.id === '0';
541
553
  case formStore.beneficialOwnerFormKey:
542
554
  return route.query.id === '0';
543
555
  }
@@ -545,7 +557,7 @@ export default {
545
557
  const otpCondition = computed(() => {
546
558
  // Add conditions by product
547
559
  if (member.value.hasAgreement) return false;
548
- if (!member.value.phoneNumber || (member.value.phoneNumber && member.value.phoneNumber.length !== 18)) return false;
560
+ if (!member.value.phoneNumber || (member.value.phoneNumber && member.value.phoneNumber.length !== useMask().phone.length)) return false;
549
561
  return getOtpConditionByMember();
550
562
  });
551
563
 
@@ -622,7 +634,7 @@ export default {
622
634
  if (fileData.value) {
623
635
  Object.values(fileData.value.file).map((value: any) => {
624
636
  formData.append('file', value);
625
- const ext = value.name.substr(value.name.lastIndexOf('.'));
637
+ const ext = value.name.substring(value.name.lastIndexOf('.'));
626
638
  information.push({
627
639
  identifier: `${uuidV4}${ext}`,
628
640
  iin: member.value.iin ? member.value.iin.replaceAll('-', '') : null,
@@ -661,7 +673,7 @@ export default {
661
673
  dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
662
674
  return;
663
675
  }
664
- if (!member.value.iin || member.value.iin.length !== 15 || !member.value.phoneNumber || member.value.phoneNumber.length !== 18) {
676
+ if (!member.value.iin || member.value.iin.length !== useMask().iin.length || !member.value.phoneNumber || member.value.phoneNumber.length !== useMask().phone.length) {
665
677
  dataStore.showToaster('error', dataStore.t('toaster.errorFormField').replace('{text}', 'Номер телефона, ИИН'), 5000);
666
678
  return;
667
679
  }
@@ -678,7 +690,7 @@ export default {
678
690
  dataStore.showToaster('error', dataStore.t('toaster.needAgreement'), 3000);
679
691
  return;
680
692
  }
681
- if (!member.value.iin || member.value.iin.length !== 15) {
693
+ if (!member.value.iin || member.value.iin.length !== useMask().iin.length) {
682
694
  dataStore.showToaster('error', dataStore.t('toaster.errorFormField').replace('{text}', 'ИИН'), 5000);
683
695
  return;
684
696
  }
@@ -774,7 +786,7 @@ export default {
774
786
  }
775
787
  dataStore.showToaster('success', dataStore.t('toaster.successSaved'));
776
788
  dataStore.isLoading = false;
777
- window.scrollTo({ top: 0, behavior: 'smooth' });
789
+ vForm.value.scrollTo({ top: 0, behavior: 'smooth' });
778
790
  };
779
791
 
780
792
  const submitForm = async () => {
@@ -832,7 +844,7 @@ export default {
832
844
  };
833
845
 
834
846
  const checkOtp = async () => {
835
- if (!member.value.otpCode || member.value.iin?.length !== 15 || member.value.phoneNumber?.length !== 18) {
847
+ if (!member.value.otpCode || member.value.iin?.length !== useMask().iin.length || member.value.phoneNumber?.length !== useMask().phone.length ) {
836
848
  dataStore.showToaster('error', dataStore.t('toaster.errorFormField').replace('{text}', dataStore.t('form.otpCode')), 3000);
837
849
  return;
838
850
  }
@@ -902,7 +914,7 @@ export default {
902
914
  watch(
903
915
  () => member.value.birthDate,
904
916
  val => {
905
- if (val && val.length === 10) {
917
+ if (val && val.length === useMask().date.length) {
906
918
  const calculatedAge = member.value.getAgeByBirthDate();
907
919
  if (calculatedAge) member.value.age = calculatedAge;
908
920
  }
@@ -912,7 +924,7 @@ export default {
912
924
  watch(
913
925
  () => member.value.otpCode,
914
926
  async () => {
915
- if (member.value.otpCode && member.value.otpCode.length === 7) {
927
+ if (member.value.otpCode && member.value.otpCode.length === useMask().otp.length) {
916
928
  await checkOtp();
917
929
  }
918
930
  },
@@ -965,6 +977,7 @@ export default {
965
977
  isTask,
966
978
  isIinPhoneDisabled,
967
979
  isFromGBD,
980
+ showSaveButton,
968
981
 
969
982
  // Functions
970
983
  searchMember,
@@ -17,7 +17,7 @@
17
17
  <div v-if="isRecalculation && $route.params.taskId === '0'">
18
18
  <base-form-input
19
19
  v-model="formStore.productConditionsForm.signDate"
20
- maska="##.##.####"
20
+ :maska="$maska.date"
21
21
  :clearable="false"
22
22
  :readonly="true"
23
23
  :label="$t('form.signDate')"
@@ -25,7 +25,7 @@
25
25
  ></base-form-input>
26
26
  <base-form-input
27
27
  v-model="formStore.productConditionsForm.birthDate"
28
- maska="##.##.####"
28
+ :maska="$maska.date"
29
29
  :readonly="isDisabled"
30
30
  :clearable="!isDisabled"
31
31
  :label="$t('form.birthDate')"
@@ -45,7 +45,7 @@
45
45
  </div>
46
46
  <base-form-input
47
47
  v-model="formStore.productConditionsForm.coverPeriod"
48
- maska="#*"
48
+ :maska="$maska.numbers"
49
49
  :readonly="isDisabled"
50
50
  :clearable="!isDisabled"
51
51
  :rules="$rules.required.concat($rules.numbers, $rules.coverPeriodFrom3to20)"
@@ -35,10 +35,8 @@
35
35
  </template>
36
36
 
37
37
  <script lang="ts">
38
- import { InputTypes } from '@/composables/models';
39
-
40
38
  export default defineComponent({
41
- name: 'BaseRoundedInput',
39
+ name: 'BaseFormInput',
42
40
  props: {
43
41
  modelValue: {
44
42
  required: false,
@@ -87,7 +85,7 @@ export default defineComponent({
87
85
  default: 'text',
88
86
  },
89
87
  variant: {
90
- type: String as PropType<'solo' | 'filled' | 'outlined' | 'plain' | 'underlined'>,
88
+ type: String as PropType<InputVariants>,
91
89
  default: 'solo',
92
90
  },
93
91
  color: {
@@ -37,11 +37,10 @@
37
37
  </template>
38
38
 
39
39
  <script lang="ts">
40
- import { InputTypes } from '@/composables/models';
41
40
  import { Value } from '@/composables/classes';
42
41
 
43
42
  export default defineComponent({
44
- name: 'BaseRoundedInput',
43
+ name: 'BasePanelInput',
45
44
  props: {
46
45
  modelValue: {
47
46
  required: false,
@@ -90,7 +89,7 @@ export default defineComponent({
90
89
  default: 'text',
91
90
  },
92
91
  variant: {
93
- type: String as PropType<'solo' | 'filled' | 'outlined' | 'plain' | 'underlined'>,
92
+ type: String as PropType<InputVariants>,
94
93
  default: 'solo',
95
94
  },
96
95
  color: {
@@ -34,10 +34,7 @@
34
34
  </template>
35
35
 
36
36
  <script lang="ts">
37
- import { InputTypes } from '@/composables/models';
38
-
39
37
  export default defineComponent({
40
- extends: {},
41
38
  name: 'BaseRoundedInput',
42
39
  props: {
43
40
  modelValue: {
@@ -84,7 +81,7 @@ export default defineComponent({
84
81
  default: 'text',
85
82
  },
86
83
  variant: {
87
- type: String as PropType<'solo' | 'filled' | 'outlined' | 'plain' | 'underlined'>,
84
+ type: String as PropType<InputVariants>,
88
85
  default: 'solo',
89
86
  },
90
87
  color: {
@@ -22,7 +22,7 @@ export default defineComponent({
22
22
  default: '',
23
23
  },
24
24
  whichPanel: {
25
- type: String as PropType<'settings' | 'panel'>,
25
+ type: String as PropType<PanelTypes>,
26
26
  default: 'panel',
27
27
  },
28
28
  },
@@ -807,7 +807,7 @@ export class DataStoreClass {
807
807
  historyTotalItems: number;
808
808
  isColumnAsc = { ...InitialColumns() };
809
809
  idleKey: number;
810
- processList: any[] | null;
810
+ processList: Item[] | null;
811
811
  countries: Value[];
812
812
  citizenshipCountries: Value[];
813
813
  taxCountries: Value[];
@@ -839,13 +839,13 @@ export class DataStoreClass {
839
839
  processPaymentPeriod: any[];
840
840
  additionalInsuranceTerms: any[];
841
841
  additionalInsuranceTermsWithout: any[];
842
- taskList: any[];
843
- processHistory: any[];
842
+ taskList: TaskListItem[];
843
+ processHistory: TaskHistory[];
844
844
  contragentList: any[];
845
845
  contragentFormKey: string;
846
846
  processCode: number | null;
847
847
  groupCode: string;
848
- userGroups: any[];
848
+ userGroups: Item[];
849
849
  onMainPage: boolean;
850
850
  signUrl: string | null;
851
851
  SaleChanellPolicyList: any[];
@@ -872,7 +872,7 @@ export class DataStoreClass {
872
872
  this.controls = {
873
873
  onAuth: false,
874
874
  hasGBDFL: true,
875
- hasInsis: true,
875
+ hasInsis: false,
876
876
  hasCalculator: false,
877
877
  };
878
878
  this.hasLayoutMargins = true;
@@ -30,6 +30,7 @@ export const constants = Object.freeze({
30
30
  supervisor: 'Supervisor',
31
31
  support: 'Support',
32
32
  managerHalykBank: 'ManagerHalykBank',
33
+ serviceManager: 'ServiceManager',
33
34
  },
34
35
  actions: {
35
36
  accept: 'accept',
@@ -3,6 +3,17 @@ import jwt_decode from 'jwt-decode';
3
3
  import { XMLParser } from 'fast-xml-parser';
4
4
  import { AxiosError } from 'axios';
5
5
 
6
+ export class Masks {
7
+ numbers: string = '#*';
8
+ otp: string = '# # # #';
9
+ iin: string = '###-###-###-###';
10
+ phone: string = '+7 (7##) ### ## ##';
11
+ date: string = '##.##.####';
12
+ post: string = '######';
13
+ }
14
+
15
+ export const useMask = () => new Masks();
16
+
6
17
  export const useDisplayInfo = useDisplay;
7
18
 
8
19
  export const capitalize = (word: string): string => (word ? word.charAt(0).toUpperCase() + word.slice(1).toLowerCase() : word);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hl-core",
3
- "version": "0.0.7-beta.18",
3
+ "version": "0.0.7-beta.19",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "nuxt.config.ts",
@@ -1,5 +1,6 @@
1
- import { capitalize, getFullNameShorted, reformatIin } from '../composables';
1
+ import { capitalize, getFullNameShorted, reformatIin, Masks } from '../composables';
2
2
  import { constants } from '../composables/constants';
3
+ import { Styles } from '../composables/styles';
3
4
  import Vidle from 'v-idle-3';
4
5
  import Maska from 'maska';
5
6
 
@@ -11,6 +12,8 @@ export default defineNuxtPlugin(nuxtApp => {
11
12
  provide: {
12
13
  capitalize: capitalize,
13
14
  getFullNameShorted: getFullNameShorted,
15
+ libStyles: new Styles(),
16
+ maska: new Masks(),
14
17
  reformatIin: reformatIin,
15
18
  constants: constants,
16
19
  },
@@ -1,7 +1,8 @@
1
1
  import { useDataStore } from '../store/data.store';
2
- import { Styles } from '../composables/styles';
3
2
 
4
3
  export default defineNuxtPlugin(nuxtApp => {
4
+ const dataStore = useDataStore();
5
+
5
6
  nuxtApp.vueApp.use(useDataStore().toast.default, {
6
7
  transition: 'Vue-Toastification__fade',
7
8
  maxToasts: 5,
@@ -10,11 +11,10 @@ export default defineNuxtPlugin(nuxtApp => {
10
11
 
11
12
  return {
12
13
  provide: {
13
- dataStore: useDataStore(),
14
- rules: useDataStore().rules,
15
- libStyles: new Styles(),
16
- t: useDataStore().t,
17
- toast: useDataStore().showToaster,
14
+ dataStore: dataStore,
15
+ rules: dataStore.rules,
16
+ t: dataStore.t,
17
+ toast: dataStore.showToaster,
18
18
  },
19
19
  };
20
20
  });
@@ -52,8 +52,11 @@ export const useDataStore = defineStore('data', {
52
52
  sendToParent(action, value) {
53
53
  window.parent.postMessage({ action: action, value: value }, '*');
54
54
  },
55
+ getChildIframe() {
56
+ return document.getElementById('product-iframe');
57
+ },
55
58
  sendToChild(action, value) {
56
- const childFrame = document.getElementById('product-iframe');
59
+ const childFrame = this.getChildIframe();
57
60
  if (childFrame && childFrame.contentWindow && childFrame.contentWindow.postMessage) {
58
61
  childFrame.contentWindow.postMessage({ action: action, value: value }, '*');
59
62
  }
@@ -107,18 +110,15 @@ export const useDataStore = defineStore('data', {
107
110
  }
108
111
  if (this.controls.onAuth) {
109
112
  const hasPermission =
110
- this.isManager() ||
113
+ this.isInitiator() ||
111
114
  this.isUnderwriter() ||
112
115
  this.isAdmin() ||
113
- this.isAgent() ||
114
116
  this.isCompliance() ||
115
- this.isAgentMycar() ||
116
117
  this.isAnalyst() ||
117
118
  this.isUpk() ||
118
119
  this.isFinanceCenter() ||
119
120
  this.isSupervisor() ||
120
- this.isSupport() ||
121
- this.isManagerHalykBank();
121
+ this.isSupport();
122
122
  if (hasPermission) {
123
123
  localStorage.setItem('accessToken', this.accessToken);
124
124
  localStorage.setItem('refreshToken', this.refreshToken);
@@ -159,7 +159,7 @@ export const useDataStore = defineStore('data', {
159
159
  return !!isRole;
160
160
  },
161
161
  isInitiator() {
162
- return this.isManager() || this.isAgent() || this.isAgentMycar() || this.isManagerHalykBank();
162
+ return this.isManager() || this.isAgent() || this.isAgentMycar() || this.isManagerHalykBank() || this.isServiceManager();
163
163
  },
164
164
  isManager() {
165
165
  return this.isRole(constants.roles.manager);
@@ -176,6 +176,9 @@ export const useDataStore = defineStore('data', {
176
176
  isManagerHalykBank() {
177
177
  return this.isRole(constants.roles.managerHalykBank);
178
178
  },
179
+ isServiceManager() {
180
+ return this.isRole(constants.roles.serviceManager);
181
+ },
179
182
  isUnderwriter() {
180
183
  return this.isRole(constants.roles.underwriter);
181
184
  },
@@ -219,7 +219,7 @@ export const useMemberStore = defineStore('members', {
219
219
  let otpStatus: boolean = false;
220
220
  let otpResponse: any = {};
221
221
  try {
222
- if (member.iin && member.phoneNumber && member.iin.length === 15 && member.phoneNumber.length === 18) {
222
+ if (member.iin && member.phoneNumber && member.iin.length === useMask().iin.length && member.phoneNumber.length === useMask().phone.length) {
223
223
  const status = await this.getOtpStatus(member.iin, member.phoneNumber, processInstanceId);
224
224
  if (status === true) {
225
225
  this.dataStore.showToaster('success', this.dataStore.t('toaster.hasSuccessOtp'), 3000);
package/store/messages.ts CHANGED
@@ -101,6 +101,7 @@ export const messages = {
101
101
  tokenExpire: 'Истекло время ожидания',
102
102
  },
103
103
  buttons: {
104
+ createStatement: 'Создать заявку',
104
105
  add: 'Добавить',
105
106
  userLogin: 'Логин',
106
107
  password: 'Пароль',
package/store/rules.js CHANGED
@@ -63,7 +63,7 @@ export const rules = {
63
63
  ],
64
64
  iinRight: [
65
65
  v => {
66
- if (v.length !== 15) {
66
+ if (v.length !== useMask().iin.length) {
67
67
  return t('rules.iinRight');
68
68
  }
69
69
  return true;
@@ -75,7 +75,7 @@ export const rules = {
75
75
  if (v === null || v == '') {
76
76
  return true;
77
77
  }
78
- if (v && v.length === 18) {
78
+ if (v && v.length === useMask().phone.length) {
79
79
  return true;
80
80
  } else {
81
81
  return t('rules.phoneFormat');
@@ -1,43 +0,0 @@
1
- export type InputTypes =
2
- | 'button'
3
- | 'checkbox'
4
- | 'color'
5
- | 'date'
6
- | 'datetime-local'
7
- | 'email'
8
- | 'file'
9
- | 'hidden'
10
- | 'image'
11
- | 'month'
12
- | 'number'
13
- | 'password'
14
- | 'radio'
15
- | 'range'
16
- | 'reset'
17
- | 'search'
18
- | 'submit'
19
- | 'tel'
20
- | 'text'
21
- | 'time'
22
- | 'url'
23
- | 'week';
24
-
25
- export type TaskListItem = {
26
- addRegNumber: string | number;
27
- applicationTaskId: string;
28
- dateCreated: string;
29
- historyStatus: string;
30
- historyStatusTitle: string;
31
- id: string;
32
- iin: string;
33
- insurerIin: string;
34
- insurerLongName: string;
35
- isTask: boolean | number;
36
- longName: string;
37
- number: string;
38
- processCode: number;
39
- processCodeTitle: string;
40
- status: string;
41
- userId: string;
42
- userName: string;
43
- };