hl-core 0.0.10-beta.85 → 0.0.10-beta.86

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 CHANGED
@@ -327,16 +327,11 @@ export class ApiClass {
327
327
  url: '/Arm/api/Dictionary/GetDictionaryItems/DicFileType',
328
328
  });
329
329
  }
330
- async getDicCoverType() {
331
- return await this.axiosCall<Value[]>({
332
- method: Methods.GET,
333
- url: '/Arm/api/Dictionary/GetDictionaryItems/DicCoverType',
334
- });
335
- }
336
- async getProgramType(type: number) {
330
+
331
+ async getProgramType() {
337
332
  return await this.axiosCall<Value[]>({
338
333
  method: Methods.GET,
339
- url: `/Arm/api/Dictionary/GetProcessProgramTypes/${type}`,
334
+ url: '/Arm/api/Dictionary/GetDictionaryItems/DicProgramType',
340
335
  });
341
336
  }
342
337
  async getSource() {
@@ -566,14 +561,6 @@ export class ApiClass {
566
561
  });
567
562
  }
568
563
 
569
- async sendToEpayPension(processInstanceId: string | number) {
570
- return await this.axiosCall<Types.EpayShortResponse>({
571
- method: Methods.POST,
572
- url: `/Arm/api/Invoice/sendToEpayPension/${processInstanceId}`,
573
- data: {},
574
- });
575
- }
576
-
577
564
  async calculateWithoutApplication(data: Types.RecalculationDataType, product: string | undefined | null = this.productUrl, processCodeEnum?: number) {
578
565
  const params = processCodeEnum !== undefined ? { processCodeEnum } : undefined;
579
566
  return await this.axiosCall<Types.RecalculationResponseType>({
@@ -111,11 +111,9 @@ export default defineComponent({
111
111
  <style>
112
112
  .base-dialog .v-card-title {
113
113
  font-size: 18px;
114
- line-height: 120%;
115
114
  }
116
115
  .base-dialog .v-card-subtitle {
117
116
  font-size: 14px;
118
- margin-top: 5px;
119
117
  }
120
118
 
121
119
  .no-hover:hover {
@@ -1,37 +1,34 @@
1
1
  <template>
2
- <div :class="[$styles.flexColNav]">
3
- <base-form-section class="!mt-0">
4
- <v-expansion-panels :flat="true">
5
- <v-expansion-panel class="!rounded-[8px]">
6
- <v-expansion-panel-title class="!text-[12px]">{{ $appContextStore.t('howToGetDigitalDocument') }}</v-expansion-panel-title>
7
- <v-expansion-panel-text class="text-[12px] text-[#464f60]">
8
- 1. {{ $appContextStore.t('selectDocumentType') }} <br /><br />
9
- 2. {{ $appContextStore.t('viaEGovMobileAndOtherApps') }}: <br />
10
- • {{ $appContextStore.t('openDigitalDocumentsSection') }} <br />
11
- • {{ $appContextStore.t('selectDocumentAndGrantAccess') }} <br />
12
- • {{ $appContextStore.t('enter6DigitCodeInConfirmationField') }} <br />
13
- {{ $appContextStore.t('clickGetDocument') }} <br /><br />
14
- 3. {{ $appContextStore.t('viaSms') }}: <br />
15
- • {{ $appContextStore.t('clickSendCode') }} <br />
16
- • {{ $appContextStore.t('enterReceivedSmsCode') }} <br />
17
- {{ $appContextStore.t('clickGetDocument') }} <br /><br />
18
- <template v-if="currentLocale === 'kz'">
19
- 4. Қате жағдайда <a href="javascript:void(0);" class="text-blue-600" @click.prevent="emit('updateDigitalDocuments')">профильді жаңартуды</a> басыңыз<br />
20
- </template>
21
- <template v-else>
22
- 4. При ошибке нажмите <a href="javascript:void(0);" class="text-blue-600" @click.prevent="emit('updateDigitalDocuments')">обновить профиль</a><br />
23
- </template>
24
- </v-expansion-panel-text>
25
- </v-expansion-panel>
26
- </v-expansion-panels>
27
- </base-form-section>
28
- <div class="p-4 d-flex flex-col gap-0.5" :class="[$styles.blueBgLight, $styles.rounded]">
2
+ <div class="flex flex-col gap-[10px] w-full align-center">
3
+ <v-expansion-panels :flat="true">
4
+ <v-expansion-panel class="!rounded-[8px]">
5
+ <v-expansion-panel-title class="!text-[12px] border border-[#00000014]">{{ $appContextStore.t('howToGetDigitalDocument') }}</v-expansion-panel-title>
6
+ <v-expansion-panel-text class="text-[12px] text-[#464f60]">
7
+ 1. {{ $appContextStore.t('selectDocumentType') }} <br /><br />
8
+ 2. {{ $appContextStore.t('viaEGovMobileAndOtherApps') }}: <br />
9
+ {{ $appContextStore.t('openDigitalDocumentsSection') }} <br />
10
+ • {{ $appContextStore.t('selectDocumentAndGrantAccess') }} <br />
11
+ • {{ $appContextStore.t('enter6DigitCodeInConfirmationField') }} <br />
12
+ • {{ $appContextStore.t('clickGetDocument') }} <br /><br />
13
+ 3. {{ $appContextStore.t('viaSms') }}: <br />
14
+ {{ $appContextStore.t('clickSendCode') }} <br />
15
+ • {{ $appContextStore.t('enterReceivedSmsCode') }} <br />
16
+ • {{ $appContextStore.t('clickGetDocument') }} <br /><br />
17
+ <template v-if="currentLocale === 'kz'">
18
+ 4. Қате жағдайда <a href="javascript:void(0);" class="text-blue-600" @click.prevent="emit('updateDigitalDocuments')">профильді жаңартуды</a> басыңыз<br />
19
+ </template>
20
+ <template v-else>
21
+ 4. При ошибке нажмите <a href="javascript:void(0);" class="text-blue-600" @click.prevent="emit('updateDigitalDocuments')">обновить профиль</a><br />
22
+ </template>
23
+ </v-expansion-panel-text>
24
+ </v-expansion-panel>
25
+ </v-expansion-panels>
26
+ <div class="d-flex flex-col gap-0.5 w-full">
29
27
  <base-rounded-select v-model="documentType" class="document-type-select" :items="documentItems" :label="$appContextStore.t('form.documentType')" hide-details />
30
28
  <div class="digital-document-otp flex flex-col">
31
29
  <base-otp-input v-model="otpCode" @keyup.enter.prevent="otpCode.length === otpLength && emitGetCode()" />
32
- <div v-if="!loading">
33
- <span v-if="otpSendDisabled" class="block text-center" :class="[$styles.mutedText]">
34
- <template v-if="currentLocale === 'kz'">
30
+ <span v-if="!loading && otpSendDisabled" class="text-center" :class="[$styles.mutedText]">
31
+ <template v-if="currentLocale === 'kz'">
35
32
  <span class="underline underline-offset-2">eGov Mobile</span> немесе <span class="underline underline-offset-2">банк қосымшасынан</span> алынған цифрлық құжат кодын
36
33
  енгізіңіз.
37
34
  </template>
@@ -39,23 +36,11 @@
39
36
  Введите код цифрового документа из <span class="underline underline-offset-2">eGov Mobile</span> или
40
37
  <span class="underline underline-offset-2">банковского приложения</span>.
41
38
  </template>
42
- </span>
43
- <template v-else>
44
- <span v-if="isActive" class="block text-center" :class="[$styles.mutedText]">
45
- Отправить код повторно через
46
- <br />
47
- <span :class="[$styles.greenText]">{{ timeLeft }} сек</span>
48
- </span>
49
- <span v-if="canResend" class="block text-center" :class="[$styles.mutedText]">
50
- Не получили код?
51
- <span class="underline underline-offset-2 cursor-pointer" @click="emitGetCode">Отправить код заново</span>
52
- </span>
53
- </template>
54
- </div>
39
+ </span>
55
40
  </div>
56
41
  </div>
57
- <div class="w-full d-flex flex-col gap-4">
58
- <base-btn v-if="!otpSendDisabled" :disabled="loading || isActive" :loading="loading" :btn="$styles.greenLightBtn" :text="$appContextStore.t('sendSmsCode')" @click="emitGetCode" />
42
+ <div class="w-full d-flex flex-col sm:flex-row gap-4">
43
+ <base-btn v-if="!otpSendDisabled" :disabled="loading" :loading="loading" :btn="$styles.whiteBorderBtn" :text="$appContextStore.t('sendSmsCode')" @click="emitGetCode" />
59
44
  <base-btn :disabled="loading" :loading="loading" :text="$appContextStore.t('getDocument')" @click="emitGetDocument" />
60
45
  </div>
61
46
  </div>
@@ -63,7 +48,6 @@
63
48
 
64
49
  <script setup lang="ts">
65
50
  import type { DigitalDocTypes } from '../../types';
66
- import { useOtpTimer } from '../../composables/index';
67
51
  import { useI18n } from 'vue-i18n';
68
52
 
69
53
  const props = defineProps({
@@ -84,9 +68,9 @@ const props = defineProps({
84
68
  default: false,
85
69
  },
86
70
  });
87
- const { timeLeft, canResend, isActive, startTimer } = useOtpTimer(60);
88
71
  const emit = defineEmits(['getCode', 'getDigitalDocument', 'updateDigitalDocuments']);
89
72
 
73
+ const dataStore = useDataStore();
90
74
  const documentType = ref<DigitalDocTypes | null>(null);
91
75
  const otpCode = ref<string>('');
92
76
  const appContextStore = useAppContextStore();
@@ -96,12 +80,8 @@ const emitGetCode = () => {
96
80
  showToaster('error', appContextStore.t('selectDocumentType'), 3000);
97
81
  return;
98
82
  }
99
- emit('getCode', {
100
- type: documentType.value,
101
- onSuccess: () => {
102
- startTimer();
103
- },
104
- });
83
+
84
+ emit('getCode', documentType.value);
105
85
  };
106
86
 
107
87
  const emitGetDocument = () => {
@@ -116,8 +96,12 @@ const emitGetDocument = () => {
116
96
 
117
97
  <style scoped>
118
98
  :deep(.v-otp-input__content) {
119
- max-width: 100%;
120
- gap: 10px !important;
99
+ max-width: 360px;
100
+ gap: 12px !important;
101
+ @media (max-width: 768px) {
102
+ max-width: 100%;
103
+ gap: 8px !important;
104
+ }
121
105
  }
122
106
  .v-expansion-panel-title {
123
107
  height: 60px !important;
@@ -128,7 +112,7 @@ const emitGetDocument = () => {
128
112
  }
129
113
  .document-type-select:deep(.v-field) {
130
114
  height: 60px;
131
- border: none !important;
115
+ border: 1px solid #dadada !important;
132
116
  }
133
117
  .document-type-select:deep(.v-label.v-field-label--floating) {
134
118
  top: 0;
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="rounded-lg border-[1px]" :class="[$styles.whiteBg, disabled && $styles.disabled]">
3
- <v-expansion-panels v-model="panel">
3
+ <v-expansion-panels>
4
4
  <v-expansion-panel class="rounded-lg" elevation="0">
5
5
  <v-expansion-panel-title :class="[$styles.textTitle, $styles.greenText]">
6
6
  {{ $appContextStore.t('form.attachManager') }}
@@ -43,14 +43,6 @@
43
43
  append-inner-icon="mdi mdi-chevron-right"
44
44
  @append="openPanel('ManagerPolicy', $appContextStore.t('form.manager'))"
45
45
  />
46
- <a
47
- href="javascript:void(0);"
48
- v-if="formStore.ManagerPolicy.nameRu === null && !!currentManager"
49
- class="py-1 px-4 text-[14px]"
50
- :class="[$styles.blueText]"
51
- @click="assignToMe"
52
- >Назначить себя</a
53
- >
54
46
  <base-panel-input
55
47
  v-if="isAgentShown"
56
48
  class="pl-1 pt-1"
@@ -119,6 +111,7 @@
119
111
  </div>
120
112
  </div>
121
113
  </div>
114
+
122
115
  <base-loader v-if="isPanelLoading" class="absolute mt-10" :size="50" />
123
116
  </div>
124
117
  </Teleport>
@@ -140,10 +133,6 @@ export default defineComponent({
140
133
  type: Boolean,
141
134
  default: false,
142
135
  },
143
- isOpen: {
144
- type: Boolean,
145
- default: false,
146
- },
147
136
  },
148
137
  setup(props) {
149
138
  type ManagerAttachmentFiels = 'SaleChanellPolicy' | 'RegionPolicy' | 'ManagerPolicy' | 'AgentData' | 'ExecutorGPH';
@@ -158,8 +147,6 @@ export default defineComponent({
158
147
  const panelValue = ref<FieldTypes>(new Value());
159
148
  const searchQuery = ref<string>('');
160
149
  const currentDictName = ref<ManagerAttachmentFiels>();
161
- const currentManager = ref<Value | null>(null);
162
- const panel = ref(props.isOpen ? 0 : null);
163
150
 
164
151
  const isReadonly = computed(
165
152
  () =>
@@ -205,11 +192,10 @@ export default defineComponent({
205
192
  const isAgentReadonly = computed(() => {
206
193
  if (!isReadonly.value) {
207
194
  if (dataStore.isTravelAgent()) return true;
208
- if (appContextStore.isLifetrip && (formStore.SaleChanellPolicy.ids == 'ПП' || formStore.SaleChanellPolicy.ids == 'ХЛ')) return true;
195
+ if (appContextStore.isPension) return true;
209
196
  if (appContextStore.isGons) {
210
197
  return !dataStore.isServiceManager() && !dataStore.isChiefManagerNSZH() && !dataStore.isChiefSalesManager() && !dataStore.isSalesManager() && !dataStore.isManager();
211
198
  }
212
- if (appContextStore.isPension) return true;
213
199
  }
214
200
  return isReadonly.value;
215
201
  });
@@ -253,11 +239,6 @@ export default defineComponent({
253
239
  if (currentDict === 'ManagerPolicy' && formStore.RegionPolicy.ids) {
254
240
  isPanelLoading.value = true;
255
241
  await dictionariesStore.filterManagerByRegion(formStore.RegionPolicy.ids as string);
256
- if (!currentManager.value) {
257
- currentManager.value =
258
- (dictionariesStore.ManagerPolicy.find(m => m.code === dataStore.user.code) as Value) ||
259
- (dictionariesStore.ManagerPolicy.find(m => m.nameRu?.includes(dataStore.user.fullName as string)) as Value);
260
- }
261
242
  }
262
243
  if (currentDict === 'ExecutorGPH' && formStore.RegionPolicy.ids) {
263
244
  isPanelLoading.value = true;
@@ -280,23 +261,7 @@ export default defineComponent({
280
261
  }
281
262
  };
282
263
 
283
- const pickPanelValue = async (answer: FieldTypes) => {
284
- if (
285
- currentDictName.value === 'AgentData' &&
286
- appContextStore.isLifetrip &&
287
- formStore.SaleChanellPolicy.ids == 'ТАТО' &&
288
- 'saleChannel' in answer &&
289
- answer.saleChannel !== formStore.SaleChanellPolicy.ids
290
- ) {
291
- return showToaster('error', 'Выберите агента из того же канала продаж');
292
- }
293
-
294
- if (currentDictName.value === 'SaleChanellPolicy' && appContextStore.isLifetrip && 'ids' in answer && (answer.ids == 'ПП' || answer.ids == 'ХЛ')) {
295
- await dataStore.searchAgentByName('Без агента');
296
- const noAgent = dataStore.AgentData.filter(i => String(i.officeId) === String(formStore.RegionPolicy.ids))[0];
297
- // @ts-ignore
298
- formStore.AgentData = noAgent ? noAgent : new Value();
299
- }
264
+ const pickPanelValue = (answer: FieldTypes) => {
300
265
  // @ts-ignore
301
266
  formStore[currentDictName.value] = answer;
302
267
  isPanelOpen.value = false;
@@ -304,19 +269,13 @@ export default defineComponent({
304
269
  searchQuery.value = '';
305
270
  };
306
271
 
307
- const assignToMe = () => {
308
- formStore.ManagerPolicy = currentManager.value as Value;
309
- if (isPanelOpen.value === true) {
310
- isPanelOpen.value = false;
311
- dataStore.rightPanel.open = false;
312
- }
313
- };
314
-
315
272
  watchDebounced(
316
273
  searchQuery,
317
274
  async searchQuery => {
318
- const query = searchQuery ?? '';
319
- if (!!query && currentDictName.value === 'AgentData') {
275
+ if (searchQuery === null) {
276
+ searchQuery = '';
277
+ }
278
+ if (!!searchQuery && currentDictName.value === 'AgentData') {
320
279
  await searchAgent();
321
280
  }
322
281
  },
@@ -344,15 +303,6 @@ export default defineComponent({
344
303
  { immediate: true },
345
304
  );
346
305
 
347
- onMounted(async () => {
348
- if (dictionariesStore.ManagerPolicy.length === 0 && route.params.taskId !== '0') {
349
- await dictionariesStore.filterManagerByRegion(formStore.RegionPolicy.ids as string);
350
- }
351
- currentManager.value =
352
- (dictionariesStore.ManagerPolicy.find(m => m.code === dataStore.user.code) as Value) ||
353
- (dictionariesStore.ManagerPolicy.find(m => m.nameRu?.includes(dataStore.user.fullName as string)) as Value);
354
- });
355
-
356
306
  onBeforeUnmount(() => {
357
307
  if (!isReadonly.value) {
358
308
  const areValid = !!formStore.SaleChanellPolicy.nameRu && !!formStore.RegionPolicy.nameRu && !!formStore.ManagerPolicy.nameRu && !!formStore.AgentData.fullName;
@@ -364,14 +314,12 @@ export default defineComponent({
364
314
 
365
315
  return {
366
316
  // State
367
- panel,
368
317
  formStore,
369
318
  isPanelOpen,
370
319
  isPanelLoading,
371
320
  panelValue,
372
321
  searchQuery,
373
322
  Value,
374
- currentManager,
375
323
  currentDictName,
376
324
 
377
325
  // Computed
@@ -390,7 +338,6 @@ export default defineComponent({
390
338
 
391
339
  // Functions
392
340
  openPanel,
393
- assignToMe,
394
341
  searchAgent,
395
342
  pickPanelValue,
396
343
  };
@@ -7,7 +7,7 @@
7
7
  :rules="rules"
8
8
  :loading="loading"
9
9
  :placeholder="placeholder"
10
- :label="undefined"
10
+ :label="label"
11
11
  :messages="messages"
12
12
  :type="type"
13
13
  :variant="variant"
@@ -33,17 +33,6 @@
33
33
  @focus="isFocused = true"
34
34
  @blur="isFocused = false"
35
35
  >
36
- <template #label>
37
- <div class="flex items-center gap-1 tooltip-label-wrapper">
38
- <span>{{ label }}</span>
39
- <v-tooltip v-if="!!tooltip" location="top">
40
- <template #activator="{ props: tooltipProps }">
41
- <v-icon v-bind="tooltipProps" :icon="tooltipIcon" class="cursor-pointer !text-[18px] label-tooltip-icon" color="#a0b3d8" />
42
- </template>
43
- <span>{{ tooltip }}</span>
44
- </v-tooltip>
45
- </div>
46
- </template>
47
36
  <template v-if="appendInnerIcon && appendInnerIcon.length" v-slot:append-inner>
48
37
  <v-icon
49
38
  v-if="appendInnerIcon.includes('mdi-calendar-blank-outline') === false"
@@ -164,14 +153,6 @@ export default defineComponent({
164
153
  bgColor: {
165
154
  type: String,
166
155
  },
167
- tooltip: {
168
- type: String,
169
- default: '',
170
- },
171
- tooltipIcon: {
172
- type: String,
173
- default: 'mdi-information-outline',
174
- },
175
156
  },
176
157
  emits: ['update:modelValue', 'submitted', 'prepend', 'append', 'prepend-out', 'append-out', 'input', 'on-clear'],
177
158
 
@@ -241,10 +222,4 @@ export default defineComponent({
241
222
  color: #000000 !important;
242
223
  font-size: 16px !important;
243
224
  }
244
- .tooltip-label-wrapper {
245
- pointer-events: auto !important;
246
- }
247
- .label-tooltip-icon {
248
- pointer-events: auto !important;
249
- }
250
225
  </style>
@@ -8,7 +8,6 @@
8
8
  :readonly="props.readonly"
9
9
  :color="color"
10
10
  :rows="rows"
11
- :rules="rules"
12
11
  @update:modelValue="$emit('update:modelValue', $event)"
13
12
  auto-grow
14
13
  ></v-textarea>
@@ -46,10 +45,6 @@ export default defineComponent({
46
45
  type: Number,
47
46
  default: 5,
48
47
  },
49
- rules: {
50
- type: Array<any>,
51
- default: [],
52
- },
53
48
  },
54
49
  emits: ['update:modelValue'],
55
50
 
@@ -5,7 +5,7 @@
5
5
  <v-tooltip v-if="hasMore" :text="$dataStore.isSupport() ? `Нажатий: ${homeClickCount}` : ''" :disabled="!$dataStore.isSupport()">
6
6
  <template #activator="{ props: tooltipProps }">
7
7
  <v-btn v-bind="tooltipProps" variant="text" size="32" :ripple="false" class="absolute z-10" @click="onHomeClick" @mouseenter="onHomeHover">
8
- <img src="~/public/favicon.svg" class="w-6 h-6" alt="home" />
8
+ <img src="~/assets/favicon.svg" class="w-6 h-6" alt="home" />
9
9
  </v-btn>
10
10
  </template>
11
11
  </v-tooltip>
@@ -74,6 +74,22 @@ export default defineComponent({
74
74
  setup(props) {
75
75
  const dataStore = useDataStore();
76
76
 
77
+ const homeClickCount = ref(0);
78
+ const COUNTER_URL = `${import.meta.env.VITE_COUNTER_URL ?? 'http://localhost:3001'}/counter`;
79
+
80
+ const onHomeClick = async () => {
81
+ // umTrackEvent('click-logo', {
82
+ // user: dataStore.user.fullName,
83
+ // branch: dataStore.user.branchCode,
84
+ // });
85
+ };
86
+
87
+ const onHomeHover = async () => {
88
+ if (!dataStore.isSupport()) return;
89
+ try {
90
+ } catch {}
91
+ };
92
+
77
93
  const onClickOutside = () => {
78
94
  dataStore.settings.open = false;
79
95
  };
@@ -106,7 +122,12 @@ export default defineComponent({
106
122
  backIconAnim,
107
123
  moreIconAnim,
108
124
 
125
+ // Counter
126
+ homeClickCount,
127
+
109
128
  // Functions
129
+ onHomeClick,
130
+ onHomeHover,
110
131
  onClickOutside,
111
132
  };
112
133
  },
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <v-menu v-if="items.length" :activator="activator" location="bottom center" :offset="top" transition="scale-transition">
3
3
  <base-form-text-section class="p-4 border-[1px] flex flex-col gap-3 elevation-3 w-[250px]">
4
- <div v-for="item of items.filter(i => $dataStore.filters.show(i))" :key="item.id ?? ''">
5
- <base-menu-nav-item :class="[$styles.textSimple]" :menu-item="item" @click="$emit(String(item.id!))" />
4
+ <div v-for="item of items.filter(i => $dataStore.filters.show(i))" :key="(item as any).id">
5
+ <base-menu-nav-item :class="[$styles.textSimple]" :menu-item="item" @click="$emit((item as any).id)" />
6
6
  </div>
7
7
  </base-form-text-section>
8
8
  </v-menu>
@@ -19,7 +19,7 @@
19
19
  <slot name="start"></slot>
20
20
  <base-fade-transition>
21
21
  <div v-if="$dataStore.menuItems && $dataStore.menuItems.length" class="flex flex-col gap-[10px]">
22
- <div v-for="(item, index) of $dataStore.menuItems.filter(i => $dataStore.filters.show(i as any))" :key="index">
22
+ <div v-for="(item, index) of $dataStore.menuItems.filter(i => $dataStore.filters.show(i))" :key="index">
23
23
  <base-menu-nav-item
24
24
  :menu-item="item"
25
25
  :selected="!!selected.title && !!item.title && selected.title === item.title"