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.
- package/components/Button/Btn.vue +1 -1
- package/components/Complex/ContentBlock.vue +1 -1
- package/components/Complex/MessageBlock.vue +1 -1
- package/components/Complex/Page.vue +7 -1
- package/components/Complex/WhiteBlock.vue +7 -0
- package/components/Dialog/Dialog.vue +2 -2
- package/components/Dialog/FamilyDialog.vue +5 -5
- package/components/Form/FormBlock.vue +25 -27
- package/components/Form/FormSection.vue +2 -2
- package/components/Form/FormTextSection.vue +3 -3
- package/components/Form/FormToggle.vue +3 -3
- package/components/Form/ManagerAttachment.vue +5 -5
- package/components/Form/ProductConditionsBlock.vue +16 -16
- package/components/Input/EmptyFormField.vue +1 -1
- package/components/Layout/Header.vue +1 -1
- package/components/Layout/SettingsPanel.vue +5 -9
- package/components/List/ListEmpty.vue +1 -1
- package/components/Menu/MenuHover.vue +1 -1
- package/components/Menu/MenuNav.vue +1 -1
- package/components/Menu/MenuNavItem.vue +4 -4
- package/components/Pages/Anketa.vue +11 -16
- package/components/Pages/Auth.vue +9 -9
- package/components/Pages/ContragentForm.vue +426 -0
- package/components/Pages/Documents.vue +5 -5
- package/components/Pages/InvoiceInfo.vue +1 -1
- package/components/Pages/MemberForm.vue +14 -7
- package/components/Pages/ProductAgreement.vue +1 -3
- package/components/Pages/ProductConditions.vue +7 -12
- package/components/Panel/PanelHandler.vue +13 -13
- package/components/Panel/PanelSelectItem.vue +3 -3
- package/components/Utilities/IconBorder.vue +17 -0
- package/composables/classes.ts +5 -7
- package/composables/constants.ts +5 -0
- package/composables/index.ts +20 -4
- package/configs/i18n.ts +0 -2
- package/layouts/default.vue +2 -2
- package/layouts/full.vue +1 -1
- package/locales/ru.json +10 -1
- package/package.json +9 -20
- package/pages/500.vue +2 -2
- package/pages/Token.vue +1 -0
- package/plugins/helperFunctionsPlugins.ts +6 -4
- package/store/data.store.ts +46 -34
- package/types/index.ts +40 -26
- package/components/Button/BtnIcon.vue +0 -47
- package/locales/kz.json +0 -585
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
disabled ? 'disabled' : '',
|
|
9
9
|
classes,
|
|
10
10
|
btn,
|
|
11
|
-
$
|
|
11
|
+
$styles[`btnH${$capitalize(size)}` as keyof typeof $styles],
|
|
12
12
|
]"
|
|
13
13
|
>
|
|
14
14
|
<base-loader v-if="loading" :size="24" color="#FFF" bg-color="" :width="2" />
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<base-content class="flex-col" :class="[$
|
|
2
|
+
<base-content class="flex-col" :class="[$styles.whiteBg]">
|
|
3
3
|
<base-header
|
|
4
|
+
v-if="customHeader === false"
|
|
4
5
|
class="justify-center lg:pl-14"
|
|
5
6
|
:has-back="hasBack"
|
|
6
7
|
:back-icon="backIcon"
|
|
@@ -10,6 +11,7 @@
|
|
|
10
11
|
@onBack="$emit('onBack')"
|
|
11
12
|
@onMore="$emit('onMore')"
|
|
12
13
|
/>
|
|
14
|
+
<slot name="header"></slot>
|
|
13
15
|
<slot></slot>
|
|
14
16
|
</base-content>
|
|
15
17
|
</template>
|
|
@@ -37,6 +39,10 @@ export default defineComponent({
|
|
|
37
39
|
type: String,
|
|
38
40
|
default: '',
|
|
39
41
|
},
|
|
42
|
+
customHeader: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
default: false,
|
|
45
|
+
},
|
|
40
46
|
},
|
|
41
47
|
emits: ['onBack', 'onMore'],
|
|
42
48
|
});
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
{{ subtitle }}
|
|
12
12
|
</v-card-subtitle>
|
|
13
13
|
<v-card-actions class="gap-[16px] m-2">
|
|
14
|
-
<base-btn v-if="actions === 'default'" class="!w-fit px-6" size="sm" :text="$dataStore.t('confirm.yes')" :btn="$
|
|
15
|
-
<base-btn v-if="actions === 'default'" class="!w-fit px-6" size="sm" :text="$dataStore.t('confirm.no')" :btn="$
|
|
14
|
+
<base-btn v-if="actions === 'default'" class="!w-fit px-6" size="sm" :text="$dataStore.t('confirm.yes')" :btn="$styles.blueBtn" @click="$emit('yes')" />
|
|
15
|
+
<base-btn v-if="actions === 'default'" class="!w-fit px-6" size="sm" :text="$dataStore.t('confirm.no')" :btn="$styles.blueBtn" @click="$emit('no')" />
|
|
16
16
|
<slot v-if="actions !== 'default'" name="actions"></slot>
|
|
17
17
|
</v-card-actions>
|
|
18
18
|
</v-card>
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
<v-list lines="two" v-if="formStore.birthInfos && formStore.birthInfos.length" class="w-full !py-0">
|
|
3
3
|
<v-list-item
|
|
4
4
|
@click="$emit('reset')"
|
|
5
|
-
:append-icon="selected && Object.keys(selected).length === 0 ? `mdi-radiobox-marked ${$
|
|
5
|
+
:append-icon="selected && Object.keys(selected).length === 0 ? `mdi-radiobox-marked ${$styles.greenText}` : 'mdi-radiobox-blank text-[#636363]'"
|
|
6
6
|
>
|
|
7
|
-
<v-list-item-title :class="[$
|
|
7
|
+
<v-list-item-title :class="[$styles.greenText, $styles.textTitle]">{{ $dataStore.t('form.notChosen') }}</v-list-item-title>
|
|
8
8
|
</v-list-item>
|
|
9
9
|
<v-list-item
|
|
10
10
|
v-for="familyMember of formStore.birthInfos"
|
|
11
11
|
:key="familyMember.childIIN"
|
|
12
12
|
@click="$emit('selectFamilyMember', familyMember)"
|
|
13
|
-
:append-icon="familyMember && selected && selected.childIIN === familyMember.childIIN ? `mdi-radiobox-marked ${$
|
|
13
|
+
:append-icon="familyMember && selected && selected.childIIN === familyMember.childIIN ? `mdi-radiobox-marked ${$styles.greenText}` : 'mdi-radiobox-blank text-[#636363]'"
|
|
14
14
|
>
|
|
15
|
-
<v-list-item-title :class="[$
|
|
15
|
+
<v-list-item-title :class="[$styles.greenText, $styles.textTitle]">{{
|
|
16
16
|
`${familyMember.childSurName} ${familyMember.childName} ${familyMember.childPatronymic ? familyMember.childPatronymic : ''}`
|
|
17
17
|
}}</v-list-item-title>
|
|
18
|
-
<v-list-item-subtitle :class="[$
|
|
18
|
+
<v-list-item-subtitle :class="[$styles.textSimple]"
|
|
19
19
|
><span>{{ `${$dataStore.t('form.iin')}:` }}</span
|
|
20
20
|
>{{ ` ${$reformatIin(familyMember.childIIN!)}` }}</v-list-item-subtitle
|
|
21
21
|
>
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="pt-3 rounded-lg border-[1px]" :class="[$
|
|
2
|
+
<div class="pt-3 rounded-lg border-[1px]" :class="[$styles.whiteBg, disabled && $styles.disabled]">
|
|
3
3
|
<div class="ml-5">
|
|
4
4
|
<div class="flex justify-between mr-5">
|
|
5
|
-
<p :class="[$
|
|
5
|
+
<p :class="[$styles.textTitle, $styles.greenText]">{{ title }}</p>
|
|
6
6
|
<div
|
|
7
7
|
v-if="isMultiple && more && !isShort && isActionsAvailable"
|
|
8
|
-
:class="[$
|
|
8
|
+
:class="[$styles.blueBg, $styles.whiteText, $styles.textSimple, disabled ? $styles.disabled : 'cursor-pointer']"
|
|
9
9
|
class="lg:flex transition-all rounded-lg h-[36px] flex items-center font-medium justify-center opacity-50 hover:opacity-90 w-[120px]"
|
|
10
10
|
@click="!disabled && memberStore.addMember(whichForm)"
|
|
11
11
|
>
|
|
12
12
|
{{ $dataStore.t('buttons.add') }}
|
|
13
13
|
</div>
|
|
14
14
|
</div>
|
|
15
|
-
<p v-if="!!subtitle" :class="[$
|
|
15
|
+
<p v-if="!!subtitle" :class="[$styles.greyText, $styles.textSimple]">{{ subtitle }}</p>
|
|
16
16
|
</div>
|
|
17
17
|
<div
|
|
18
18
|
class="ml-5 mt-6 grid auto-rows-fr items-center"
|
|
19
19
|
:class="[isShort ? 'grid-cols-2 md:gap-5 md:grid-cols-2 lg:grid-cols-2 mb-6' : 'grid-cols-4 md:gap-5 md:grid-cols-4 lg:grid-cols-7 ']"
|
|
20
20
|
>
|
|
21
|
-
<span :class="[$
|
|
22
|
-
<span :class="[$
|
|
23
|
-
<span v-if="!isShort" :class="[$
|
|
24
|
-
<span v-if="!isShort" :class="[$
|
|
25
|
-
<span v-if="!isShort" :class="[$
|
|
26
|
-
<span v-if="!isShort" :class="[$
|
|
21
|
+
<span :class="[$styles.textSimple]" class="font-medium">{{ $dataStore.t('form.fullName') }}</span>
|
|
22
|
+
<span :class="[$styles.textSimple]" class="font-medium">{{ $dataStore.t('form.iin') }}</span>
|
|
23
|
+
<span v-if="!isShort" :class="[$styles.textSimple]" class="font-medium hidden lg:block"> {{ $dataStore.t('form.gender') }}</span>
|
|
24
|
+
<span v-if="!isShort" :class="[$styles.textSimple]" class="font-medium"> {{ $dataStore.t('form.birthDate') }} </span>
|
|
25
|
+
<span v-if="!isShort" :class="[$styles.textSimple]" class="font-medium hidden lg:block">{{ $dataStore.t('form.Country') }} </span>
|
|
26
|
+
<span v-if="!isShort" :class="[$styles.textSimple]" class="font-medium hidden lg:block"> {{ $dataStore.t('code') }}</span>
|
|
27
27
|
</div>
|
|
28
28
|
<div v-if="isMultiple && multipleMember !== null" class="ml-5 flex flex-col" :class="[isShort ? 'mb-6' : '']">
|
|
29
29
|
<div
|
|
@@ -32,16 +32,16 @@
|
|
|
32
32
|
class="grid auto-rows-fr items-center relative"
|
|
33
33
|
:class="[isShort ? 'grid-cols-2 md:gap-5 md:grid-cols-2 lg:grid-cols-2' : 'grid-cols-4 md:gap-5 md:grid-cols-4 lg:grid-cols-7']"
|
|
34
34
|
>
|
|
35
|
-
<span :class="[getMemberInfo(each).fullName === null && $
|
|
36
|
-
<span :class="[getMemberInfo(each).iin === null && $
|
|
37
|
-
<span v-if="!isShort" :class="[getMemberInfo(each).gender === null && $
|
|
38
|
-
<span v-if="!isShort" :class="[getMemberInfo(each).birthDate === null && $
|
|
39
|
-
<span v-if="!isShort" :class="[getMemberInfo(each).birthPlace === null && $
|
|
40
|
-
<span v-if="!isShort" :class="[getMemberInfo(each).sectorCode === null && $
|
|
35
|
+
<span :class="[getMemberInfo(each).fullName === null && $styles.emptyBlockCol]">{{ getMemberInfo(each).fullName }}</span>
|
|
36
|
+
<span :class="[getMemberInfo(each).iin === null && $styles.emptyBlockCol]">{{ getMemberInfo(each).iin }}</span>
|
|
37
|
+
<span v-if="!isShort" :class="[getMemberInfo(each).gender === null && $styles.emptyBlockCol]" class="hidden lg:block">{{ getMemberInfo(each).gender }} </span>
|
|
38
|
+
<span v-if="!isShort" :class="[getMemberInfo(each).birthDate === null && $styles.emptyBlockCol]"> {{ getMemberInfo(each).birthDate }} </span>
|
|
39
|
+
<span v-if="!isShort" :class="[getMemberInfo(each).birthPlace === null && $styles.emptyBlockCol]" class="hidden lg:block"> {{ getMemberInfo(each).birthPlace }} </span>
|
|
40
|
+
<span v-if="!isShort" :class="[getMemberInfo(each).sectorCode === null && $styles.emptyBlockCol]" class="hidden lg:block"> {{ getMemberInfo(each).sectorCode }} </span>
|
|
41
41
|
<div
|
|
42
42
|
v-if="!isShort"
|
|
43
43
|
class="rounded-br-lg transition-all h-[70px] w-[60px] place-self-end"
|
|
44
|
-
:class="[$
|
|
44
|
+
:class="[$styles.blueBgLight, $styles.blueBgLightHover, disabled ? $styles.disabled : 'cursor-pointer']"
|
|
45
45
|
@click="!disabled && $emit('onMore', { whichForm, index })"
|
|
46
46
|
>
|
|
47
47
|
<i class="mdi mdi-dots-vertical text-xl absolute top-[20px] right-[20px]"></i>
|
|
@@ -53,22 +53,20 @@
|
|
|
53
53
|
class="ml-5 grid auto-rows-fr items-center relative"
|
|
54
54
|
:class="[isShort ? 'grid-cols-2 md:gap-5 md:grid-cols-2 lg:grid-cols-2' : 'grid-cols-4 md:gap-5 md:grid-cols-4 lg:grid-cols-7']"
|
|
55
55
|
>
|
|
56
|
-
<span :class="[getMemberInfo(singleMember).fullName === null && $
|
|
57
|
-
<span :class="[getMemberInfo(singleMember).iin === null && $
|
|
58
|
-
<span v-if="!isShort" :class="[getMemberInfo(singleMember).gender === null && $
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
<span v-if="!isShort" :class="[getMemberInfo(singleMember).birthDate === null && $libStyles.emptyBlockCol]"> {{ getMemberInfo(singleMember).birthDate }} </span>
|
|
62
|
-
<span v-if="!isShort" :class="[getMemberInfo(singleMember).birthPlace === null && $libStyles.emptyBlockCol]" class="hidden lg:block">
|
|
56
|
+
<span :class="[getMemberInfo(singleMember).fullName === null && $styles.emptyBlockCol]">{{ getMemberInfo(singleMember).fullName }}</span>
|
|
57
|
+
<span :class="[getMemberInfo(singleMember).iin === null && $styles.emptyBlockCol]">{{ getMemberInfo(singleMember).iin }}</span>
|
|
58
|
+
<span v-if="!isShort" :class="[getMemberInfo(singleMember).gender === null && $styles.emptyBlockCol]" class="hidden lg:block">{{ getMemberInfo(singleMember).gender }} </span>
|
|
59
|
+
<span v-if="!isShort" :class="[getMemberInfo(singleMember).birthDate === null && $styles.emptyBlockCol]"> {{ getMemberInfo(singleMember).birthDate }} </span>
|
|
60
|
+
<span v-if="!isShort" :class="[getMemberInfo(singleMember).birthPlace === null && $styles.emptyBlockCol]" class="hidden lg:block">
|
|
63
61
|
{{ getMemberInfo(singleMember).birthPlace }}
|
|
64
62
|
</span>
|
|
65
|
-
<span v-if="!isShort" :class="[getMemberInfo(singleMember).sectorCode === null && $
|
|
63
|
+
<span v-if="!isShort" :class="[getMemberInfo(singleMember).sectorCode === null && $styles.emptyBlockCol]" class="hidden lg:block">
|
|
66
64
|
{{ getMemberInfo(singleMember).sectorCode }}
|
|
67
65
|
</span>
|
|
68
66
|
<div
|
|
69
67
|
v-if="!isShort"
|
|
70
68
|
class="rounded-br-lg transition-all h-[70px] w-[60px] place-self-end"
|
|
71
|
-
:class="[$
|
|
69
|
+
:class="[$styles.blueBgLight, $styles.blueBgLightHover, disabled ? $styles.disabled : 'cursor-pointer']"
|
|
72
70
|
@click="!disabled && $emit('onMore', { whichForm })"
|
|
73
71
|
>
|
|
74
72
|
<i class="mdi mdi-dots-vertical text-xl absolute top-[20px] right-[20px]"></i>
|
|
@@ -76,7 +74,7 @@
|
|
|
76
74
|
</div>
|
|
77
75
|
<div
|
|
78
76
|
v-if="isMultiple && more && !isShort && isActionsAvailable"
|
|
79
|
-
:class="[$
|
|
77
|
+
:class="[$styles.blueBg, $styles.whiteText, $styles.textSimple, disabled ? $styles.disabled : 'cursor-pointer']"
|
|
80
78
|
class="lg:hidden transition-all rounded-b-lg h-[36px] flex items-center font-medium justify-center opacity-50 hover:opacity-90"
|
|
81
79
|
@click="!disabled && memberStore.addMember(whichForm)"
|
|
82
80
|
>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section :class="[$
|
|
3
|
-
<h2 :class="[$
|
|
2
|
+
<section :class="[$styles.blueBgLight, $styles.rounded]" class="mt-[14px] p-4 flex flex-col gap-[1px]">
|
|
3
|
+
<h2 :class="[$styles.textTitle]" class="font-medium text-center w-full mb-4">
|
|
4
4
|
{{ title }}
|
|
5
5
|
<slot name="icon"></slot>
|
|
6
6
|
</h2>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="flex flex-col justify-between rounded-lg" :class="[$
|
|
3
|
-
<span v-if="title" class="p-4" :class="[$
|
|
4
|
-
<span v-if="subtitle" class="p-4 text-[#99A3B3] border-t-[1px]" :class="[$
|
|
2
|
+
<div class="flex flex-col justify-between rounded-lg" :class="[$styles.whiteBg]">
|
|
3
|
+
<span v-if="title" class="p-4" :class="[$styles.textTitle]">{{ title }}</span>
|
|
4
|
+
<span v-if="subtitle" class="p-4 text-[#99A3B3] border-t-[1px]" :class="[$styles.textSimple]">{{ subtitle }}</span>
|
|
5
5
|
<slot></slot>
|
|
6
6
|
</div>
|
|
7
7
|
</template>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
class="h-[74px] !pl-2 md:!pl-5 flex items-center justify-start gap-4"
|
|
4
|
-
:class="[$
|
|
4
|
+
:class="[$styles.whiteBg, hasBorder ? 'border-[1px] rounded-lg' : 'border-b-[1px] border-b-[#f3f6fc] rounded']"
|
|
5
5
|
>
|
|
6
6
|
<v-switch
|
|
7
7
|
class="base-toggle"
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
hide-details
|
|
15
15
|
:disabled="disabled"
|
|
16
16
|
/>
|
|
17
|
-
<p :class="[$
|
|
18
|
-
<p class="mr-3" :class="[modelValue ? $
|
|
17
|
+
<p :class="[$styles.textSimple]">{{ `${title}` }}</p>
|
|
18
|
+
<p class="mr-3" :class="[modelValue ? $styles.greenText : '', $styles.textSimple]">{{ `${modelValue ? $dataStore.t('confirm.yes') : $dataStore.t('confirm.no')}` }}</p>
|
|
19
19
|
</div>
|
|
20
20
|
</template>
|
|
21
21
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="rounded-lg border-[1px]" :class="[$
|
|
2
|
+
<div class="rounded-lg border-[1px]" :class="[$styles.whiteBg, disabled && $styles.disabled]">
|
|
3
3
|
<div class="mt-3 ml-5">
|
|
4
|
-
<p :class="[$
|
|
4
|
+
<p :class="[$styles.textTitle, $styles.greenText]">{{ $dataStore.t('form.attachManager') }}</p>
|
|
5
5
|
</div>
|
|
6
6
|
<v-form ref="vForm" class="flex flex-col mt-1">
|
|
7
7
|
<base-panel-input
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
/>
|
|
51
51
|
</v-form>
|
|
52
52
|
<Teleport v-if="isPanelOpen" to="#panel-actions">
|
|
53
|
-
<div :class="[$
|
|
53
|
+
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
54
54
|
<base-rounded-input
|
|
55
55
|
v-model.trim="searchQuery"
|
|
56
56
|
:label="$dataStore.t('labels.search')"
|
|
@@ -129,9 +129,9 @@ export default defineComponent({
|
|
|
129
129
|
dataStore.panel.title = title;
|
|
130
130
|
currentDictName.value = currentDict;
|
|
131
131
|
|
|
132
|
-
if (currentDict === 'ManagerPolicy') {
|
|
132
|
+
if (currentDict === 'ManagerPolicy' && formStore.RegionPolicy.ids) {
|
|
133
133
|
isPanelLoading.value = true;
|
|
134
|
-
await dataStore.filterManagerByRegion(
|
|
134
|
+
await dataStore.filterManagerByRegion(formStore.RegionPolicy.ids as string);
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
isPanelOpen.value = true;
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="pt-3 pl-5 rounded-lg border-[1px]" :class="[$
|
|
2
|
+
<div class="pt-3 pl-5 rounded-lg border-[1px]" :class="[$styles.whiteBg, disabled && $styles.disabled]">
|
|
3
3
|
<div>
|
|
4
|
-
<p :class="[$
|
|
4
|
+
<p :class="[$styles.textTitle, $styles.greenText]">
|
|
5
5
|
{{ $dataStore.t('productConditions') }}
|
|
6
6
|
</p>
|
|
7
|
-
<p v-if="!!subtitle" :class="[$
|
|
7
|
+
<p v-if="!!subtitle" :class="[$styles.greyText, $styles.textSimple]">{{ subtitle }}</p>
|
|
8
8
|
</div>
|
|
9
9
|
<div class="mt-6 grid grid-cols-3 lg:grid-cols-5 auto-rows-fr items-center">
|
|
10
|
-
<span v-if="hasSum" :class="[$
|
|
11
|
-
<span v-if="hasPremium" :class="[$
|
|
12
|
-
<span v-if="hasPolicyNumber" :class="[$
|
|
13
|
-
<span v-if="hasContractDate" :class="[$
|
|
14
|
-
<span v-if="hasCoverPeriod" :class="[$
|
|
15
|
-
<span v-if="hasPayPeriod" :class="[$
|
|
10
|
+
<span v-if="hasSum" :class="[$styles.textSimple]" class="font-medium">{{ $dataStore.t('productConditionsForm.requestedSumInsured') }}</span>
|
|
11
|
+
<span v-if="hasPremium" :class="[$styles.textSimple]" class="font-medium">{{ $dataStore.t('productConditionsForm.insurancePremiumPerMonth') }}</span>
|
|
12
|
+
<span v-if="hasPolicyNumber" :class="[$styles.textSimple]" class="font-medium hidden lg:block">{{ $dataStore.t('buttons.InsuranceContract') }}</span>
|
|
13
|
+
<span v-if="hasContractDate" :class="[$styles.textSimple]" class="font-medium hidden lg:block">{{ $dataStore.t('productConditionsForm.contractDate') }}</span>
|
|
14
|
+
<span v-if="hasCoverPeriod" :class="[$styles.textSimple]" class="font-medium hidden lg:block">{{ $dataStore.t('productConditionsForm.coverPeriod') }}</span>
|
|
15
|
+
<span v-if="hasPayPeriod" :class="[$styles.textSimple]" class="font-medium hidden lg:block">{{ $dataStore.t('productConditionsForm.payPeriod') }}</span>
|
|
16
16
|
</div>
|
|
17
17
|
<div class="grid grid-cols-3 lg:grid-cols-5 auto-rows-fr items-center">
|
|
18
|
-
<span v-if="hasSum" :class="[amount === null && $
|
|
19
|
-
<span v-if="hasPremium" :class="[premium === null && $
|
|
20
|
-
<span v-if="hasPolicyNumber" :class="[policyNumber === null && $
|
|
21
|
-
<span v-if="hasContractDate" :class="[policyNumber === null && $
|
|
22
|
-
<span v-if="hasCoverPeriod" :class="[coverPeriod === null && $
|
|
23
|
-
<span v-if="hasPayPeriod" :class="[paymentPeriod === null && $
|
|
18
|
+
<span v-if="hasSum" :class="[amount === null && $styles.emptyBlockCol]">{{ amount }} </span>
|
|
19
|
+
<span v-if="hasPremium" :class="[premium === null && $styles.emptyBlockCol]"> {{ premium }}</span>
|
|
20
|
+
<span v-if="hasPolicyNumber" :class="[policyNumber === null && $styles.emptyBlockCol]" class="hidden lg:block"> {{ policyNumber }}</span>
|
|
21
|
+
<span v-if="hasContractDate" :class="[policyNumber === null && $styles.emptyBlockCol]" class="hidden lg:block"> {{ contractDate }}</span>
|
|
22
|
+
<span v-if="hasCoverPeriod" :class="[coverPeriod === null && $styles.emptyBlockCol]" class="hidden lg:block">{{ coverPeriod }} </span>
|
|
23
|
+
<span v-if="hasPayPeriod" :class="[paymentPeriod === null && $styles.emptyBlockCol]" class="hidden lg:block">
|
|
24
24
|
{{ paymentPeriod }}
|
|
25
25
|
</span>
|
|
26
26
|
<div
|
|
27
27
|
class="rounded-br-lg transition-all h-[70px] w-[60px] relative place-self-end"
|
|
28
|
-
:class="[$
|
|
28
|
+
:class="[$styles.blueBgLight, $styles.blueBgLightHover, disabled ? $styles.disabled : 'cursor-pointer']"
|
|
29
29
|
@click="!disabled && $emit('onMore', { whichForm: 'productConditions' })"
|
|
30
30
|
>
|
|
31
31
|
<i class="mdi mdi-dots-vertical text-xl absolute top-[20px] right-[20px]"></i>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="h-[60px] bg-white rounded border-b-[1px] border-b-[#f3f6fc] flex items-center pl-4" :class="[$
|
|
2
|
+
<div class="h-[60px] bg-white rounded border-b-[1px] border-b-[#f3f6fc] flex items-center pl-4" :class="[$styles.textTitle]">
|
|
3
3
|
<slot></slot>
|
|
4
4
|
</div>
|
|
5
5
|
</template>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<header class="relative w-full h-[70px] text-center font-medium align-middle flex items-center border-b-[1px]" :class="[$
|
|
2
|
+
<header class="relative w-full h-[70px] text-center font-medium align-middle flex items-center border-b-[1px]" :class="[$styles.blueBgLight, $styles.textSimple]">
|
|
3
3
|
<i v-if="hasBack" @click="$emit('onBack')" class="absolute left-5 mdi text-xl cursor-pointer transition-all" :class="[backIcon, backIconAnim]"></i>
|
|
4
4
|
<span class="mx-10">{{ title }}</span>
|
|
5
5
|
<i
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
<v-text-field v-model="$dataStore.user.fullName" :readonly="true" hide-details variant="plain" :label="$dataStore.user.roles?.join(', ')" />
|
|
10
10
|
<i class="mdi mdi-account-outline text-2xl text-[#A0B3D8]"></i
|
|
11
11
|
></base-panel-item>
|
|
12
|
-
<base-panel-item v-if="$dataStore.isEFO && !isProduction" @click="changeBridge('lka')" class="cursor-pointer">
|
|
12
|
+
<base-panel-item v-if="$dataStore.isEFO && !isProduction && $dataStore.accessToken" @click="changeBridge('lka', $dataStore.accessToken)" class="cursor-pointer">
|
|
13
13
|
{{ $dataStore.t('labels.lkaLong') }}
|
|
14
14
|
<i class="mdi mdi-chevron-right text-2xl text-[#A0B3D8]"></i
|
|
15
15
|
></base-panel-item>
|
|
16
|
-
<base-panel-item v-if="$dataStore.isLKA" @click="changeBridge('efo')" class="cursor-pointer">
|
|
16
|
+
<base-panel-item v-if="$dataStore.isLKA && $dataStore.accessToken" @click="changeBridge('efo', $dataStore.accessToken)" class="cursor-pointer">
|
|
17
17
|
{{ $dataStore.t('labels.efoLong') }}
|
|
18
18
|
<i class="mdi mdi-web text-2xl text-[#A0B3D8]"></i
|
|
19
19
|
></base-panel-item>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
{{ $dataStore.t('historyStatementsAndStatuses') }}
|
|
31
31
|
<i class="mdi mdi-history text-xl text-[#A0B3D8]"></i>
|
|
32
32
|
</base-panel-item>
|
|
33
|
-
<base-panel-item @click="dialogSignOut = true" class="cursor-pointer" :class="[$
|
|
33
|
+
<base-panel-item @click="dialogSignOut = true" class="cursor-pointer" :class="[$styles.redText]">
|
|
34
34
|
{{ $dataStore.t('buttons.logout') }}
|
|
35
35
|
<i class="mdi mdi-logout text-xl"></i>
|
|
36
36
|
</base-panel-item>
|
|
@@ -49,6 +49,8 @@
|
|
|
49
49
|
</template>
|
|
50
50
|
|
|
51
51
|
<script lang="ts" setup>
|
|
52
|
+
import { changeBridge } from '#imports';
|
|
53
|
+
|
|
52
54
|
import pkg from '../../package.json';
|
|
53
55
|
const dialogSignOut = ref(false);
|
|
54
56
|
const dataStore = useDataStore();
|
|
@@ -77,10 +79,4 @@ const hasHistory = computed(() => {
|
|
|
77
79
|
const openHistory = async () => {
|
|
78
80
|
dataStore.sendToParent(constants.postActions.toStatementHistory, dataStore.isBridge ? '' : dataStore.product);
|
|
79
81
|
};
|
|
80
|
-
|
|
81
|
-
const changeBridge = async (toBridge: 'efo' | 'lka') => {
|
|
82
|
-
const bridgeUrl = import.meta.env[`VITE_${toBridge.toUpperCase()}_URL`] as string;
|
|
83
|
-
if (!bridgeUrl) return;
|
|
84
|
-
window.open(`${bridgeUrl}/#/Token?token=${dataStore.accessToken}`, '_blank');
|
|
85
|
-
};
|
|
86
82
|
</script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="border-[1px] rounded-lg h-[80px] mx-[10px] mt-[14px] flex place-content-center" :class="[$
|
|
2
|
+
<div class="border-[1px] rounded-lg h-[80px] mx-[10px] mt-[14px] flex place-content-center" :class="[$styles.blueBgLight, $styles.textTitle]">
|
|
3
3
|
<div class="flex justify-center items-center font-medium gap-2 opacity-40">
|
|
4
4
|
{{ text }}
|
|
5
5
|
<i class="text-2xl mdi" :class="[icon ? icon : 'mdi-database-off-outline']"></i>
|
|
@@ -2,7 +2,7 @@
|
|
|
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
4
|
<div v-for="item of items.filter(i => $dataStore.filters.show(i))" :key="item.id">
|
|
5
|
-
<base-menu-nav-item :class="[$
|
|
5
|
+
<base-menu-nav-item :class="[$styles.textSimple]" :menu-item="item" @click="$emit(item.id)" />
|
|
6
6
|
</div>
|
|
7
7
|
</base-form-text-section>
|
|
8
8
|
</v-menu>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
@onMore="$emit('onMore')"
|
|
13
13
|
/>
|
|
14
14
|
<slot key="slot-content" name="content"></slot>
|
|
15
|
-
<section key="main" :class="[$
|
|
15
|
+
<section key="main" :class="[$styles.flexColNav]">
|
|
16
16
|
<slot name="start"></slot>
|
|
17
17
|
<base-fade-transition>
|
|
18
18
|
<div v-if="$dataStore.menuItems && $dataStore.menuItems.length" class="flex flex-col gap-[10px]">
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
:class="[
|
|
4
|
-
selected ? $
|
|
5
|
-
selected ? $
|
|
6
|
-
$
|
|
7
|
-
$
|
|
4
|
+
selected ? $styles.blueBg : $styles.blueBgLight,
|
|
5
|
+
selected ? $styles.whiteText : $styles.blackText,
|
|
6
|
+
$styles.rounded,
|
|
7
|
+
$styles.textSimple,
|
|
8
8
|
disabled ? 'cursor-not-allowed opacity-50' : '',
|
|
9
9
|
]"
|
|
10
10
|
class="h-[60px] flex items-center justify-between hover:bg-[#A0B3D8] hover:!text-white pl-4 cursor-pointer transition-all group"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<base-fade-transition>
|
|
3
3
|
<section v-if="firstQuestionList && firstQuestionList.length && !firstPanel && !secondPanel" class="flex flex-col">
|
|
4
|
-
<section :class="[$
|
|
4
|
+
<section :class="[$styles.blueBgLight, $styles.rounded]" class="mx-[10px] my-[14px] p-4 flex flex-col gap-4">
|
|
5
5
|
<base-form-toggle
|
|
6
6
|
v-model="answerToAll"
|
|
7
7
|
:title="$dataStore.t('questionnaireType.answerAllNo')"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<v-form ref="vForm" class="max-h-[70vh] overflow-y-scroll" @submit="submitForm">
|
|
14
14
|
<section
|
|
15
15
|
v-if="firstQuestionList.filter(i => i.first.definedAnswers === 'N').length"
|
|
16
|
-
:class="[$
|
|
16
|
+
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
17
17
|
class="mx-[10px] p-4 flex flex-col gap-4"
|
|
18
18
|
>
|
|
19
19
|
<base-form-input
|
|
@@ -28,21 +28,21 @@
|
|
|
28
28
|
</section>
|
|
29
29
|
<section
|
|
30
30
|
v-if="firstQuestionList.filter(i => i.first.definedAnswers === 'Y').length"
|
|
31
|
-
:class="[$
|
|
31
|
+
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
32
32
|
class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4"
|
|
33
33
|
>
|
|
34
34
|
<base-form-text-section v-for="(question, index) in firstQuestionList.filter(i => i.first.definedAnswers === 'Y')" :key="index">
|
|
35
35
|
<base-fade-transition>
|
|
36
36
|
<div
|
|
37
37
|
v-if="question.first.answerName === 'Да' && secondQuestionList"
|
|
38
|
-
:class="[$
|
|
38
|
+
:class="[$styles.greenBg, $styles.whiteText, $styles.textSimple]"
|
|
39
39
|
class="rounded-t-lg pl-6 py-1 cursor-pointer"
|
|
40
40
|
@click="openFirstPanel(question)"
|
|
41
41
|
>
|
|
42
42
|
{{ $dataStore.t('questionnaireType.pleaseAnswer', { text: secondQuestionList.length }) }}
|
|
43
43
|
</div>
|
|
44
44
|
</base-fade-transition>
|
|
45
|
-
<span :class="[$
|
|
45
|
+
<span :class="[$styles.textTitle]" class="border-b-[1px] border-b-[#F3F6FC] p-6 flex items-center justify-between">
|
|
46
46
|
{{ question.first.name }}
|
|
47
47
|
<base-fade-transition>
|
|
48
48
|
<i
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
></i>
|
|
53
53
|
</base-fade-transition>
|
|
54
54
|
</span>
|
|
55
|
-
<div class="flex items-center justify-start gap-5 px-4 pt-4" :class="[$
|
|
55
|
+
<div class="flex items-center justify-start gap-5 px-4 pt-4" :class="[$styles.textSimple]">
|
|
56
56
|
<v-radio-group
|
|
57
57
|
v-model="question.first.answerName"
|
|
58
58
|
class="anketa-radio"
|
|
59
|
-
:true-icon="`mdi-radiobox-marked ${$
|
|
59
|
+
:true-icon="`mdi-radiobox-marked ${$styles.greenText}`"
|
|
60
60
|
false-icon="mdi-radiobox-blank text-[#636363]"
|
|
61
61
|
:rules="$rules.required"
|
|
62
62
|
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
@@ -86,13 +86,8 @@
|
|
|
86
86
|
secondPanel = false;
|
|
87
87
|
"
|
|
88
88
|
/>
|
|
89
|
-
<section
|
|
90
|
-
|
|
91
|
-
v-if="secondQuestionList && secondQuestionList.length && firstPanel"
|
|
92
|
-
class="flex flex-col px-[10px] pb-[14px]"
|
|
93
|
-
:class="[$libStyles.scrollPage]"
|
|
94
|
-
>
|
|
95
|
-
<section v-if="currentQuestion" :class="[$libStyles.blueBgLight, $libStyles.rounded]" class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4">
|
|
89
|
+
<section ref="firstPanelSection" v-if="secondQuestionList && secondQuestionList.length && firstPanel" class="flex flex-col px-[10px] pb-[14px]" :class="[$styles.scrollPage]">
|
|
90
|
+
<section v-if="currentQuestion" :class="[$styles.blueBgLight, $styles.rounded]" class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4">
|
|
96
91
|
<base-form-text-section v-for="question in currentQuestion.second" :title="question.name" :key="question.name">
|
|
97
92
|
<base-form-input
|
|
98
93
|
v-if="question.definedAnswers === 'N'"
|
|
@@ -101,7 +96,7 @@
|
|
|
101
96
|
placeholder="Введите текст"
|
|
102
97
|
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
103
98
|
/>
|
|
104
|
-
<span v-else class="flex items-center justify-between p-4 cursor-pointer" :class="[$
|
|
99
|
+
<span v-else class="flex items-center justify-between p-4 cursor-pointer" :class="[$styles.textTitle, $styles.greenText]" @click="openSecondPanel(question)">
|
|
105
100
|
{{ question.answerName ? question.answerName : 'Выбрать вариант ответа' }}
|
|
106
101
|
<i class="mdi mdi-chevron-right text-[28px]"></i>
|
|
107
102
|
</span>
|
|
@@ -110,7 +105,7 @@
|
|
|
110
105
|
</section>
|
|
111
106
|
</base-fade-transition>
|
|
112
107
|
<Teleport v-if="secondPanel" to="#panel-actions">
|
|
113
|
-
<div :class="[$
|
|
108
|
+
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
114
109
|
<base-rounded-input v-model="searchQuery" :label="$dataStore.t('labels.search')" class="w-full p-2" :hide-details="true" />
|
|
115
110
|
<div v-if="$dataStore.questionRefs && $dataStore.questionRefs.length && isPanelLoading === false" class="w-full flex flex-col gap-2 p-2">
|
|
116
111
|
<base-panel-select-item
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<section class="flex h-full" :class="$
|
|
2
|
+
<section class="flex h-full" :class="$styles.blueBgLight">
|
|
3
3
|
<!-- @vue-ignore -->
|
|
4
4
|
<aside :class="{ '!hidden': !$display().lgAndUp.value }" class="w-full lg:w-1/4 bg-white flex flex-col justify-between border-r-2 relative px-8">
|
|
5
5
|
<img draggable="false" class="w-[50%] mt-8" src="~/assets/auth-logo.svg" />
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<img :class="{ '!block': !$display().lgAndUp.value }" draggable="false" class="hidden w-2/4 sm:w-1/3 mb-10 self-center" src="~/assets/auth-logo.svg" />
|
|
22
22
|
<div class="flex flex-col items-center mb-8 text-center">
|
|
23
23
|
<h1 class="text-[28px] font-medium mb-1">{{ $dataStore.t('labels.welcomeHL') }}</h1>
|
|
24
|
-
<span :class="[$
|
|
24
|
+
<span :class="[$styles.greyTextDark]" class="text-[16px]">{{ $dataStore.t('labels.needAuth') }}</span>
|
|
25
25
|
</div>
|
|
26
26
|
<v-form ref="vForm" class="w-2/3 lg:w-[25vw] self-center">
|
|
27
27
|
<base-rounded-input class="mb-1" v-model.trim="login" :rules="$rules.required" :loading="authLoading" :placeholder="$dataStore.t('buttons.userLogin')" type="text" />
|
|
@@ -35,19 +35,19 @@
|
|
|
35
35
|
@append="showPassword = !showPassword"
|
|
36
36
|
:type="showPassword ? ('' as InputTypes) : 'password'"
|
|
37
37
|
/>
|
|
38
|
-
<span v-if="$dataStore.isLKA" class="inline-block w-full text-end mb-4" :class="[$
|
|
38
|
+
<span v-if="$dataStore.isLKA" class="inline-block w-full text-end mb-4" :class="[$styles.textSimple, $styles.greyTextDark]" @click="isLogin = false">{{
|
|
39
39
|
$dataStore.t('labels.resetPassword')
|
|
40
40
|
}}</span>
|
|
41
|
-
<base-btn :text="$dataStore.t('buttons.login')" :disabled="authLoading" :btn="$
|
|
41
|
+
<base-btn :text="$dataStore.t('buttons.login')" :disabled="authLoading" :btn="$styles.greenBtn" @click="submitAuthForm" />
|
|
42
42
|
</v-form>
|
|
43
43
|
</section>
|
|
44
44
|
<section v-if="isLogin === false" class="w-full lg:w-3/4 flex flex-col justify-center items-center">
|
|
45
45
|
<div class="flex flex-col items-center mb-4">
|
|
46
46
|
<h1 class="text-[28px] font-medium mb-1">{{ $dataStore.t('labels.resetPassword') }}</h1>
|
|
47
|
-
<span :class="[$
|
|
47
|
+
<span :class="[$styles.greyTextDark]" class="text-[16px]">{{ $dataStore.t('labels.resetType') }}</span>
|
|
48
48
|
</div>
|
|
49
|
-
<div class="p-[2px] mb-8 rounded-[12px] border-[1px] w-2/3 lg:w-[25vw]" :class="[$
|
|
50
|
-
<v-tabs v-model="resetPasswordType" density="compact" slider-color="#009c73" class="w-full base-reset-password rounded-[12px]" :class="[$
|
|
49
|
+
<div class="p-[2px] mb-8 rounded-[12px] border-[1px] w-2/3 lg:w-[25vw]" :class="[$styles.whiteBg]">
|
|
50
|
+
<v-tabs v-model="resetPasswordType" density="compact" slider-color="#009c73" class="w-full base-reset-password rounded-[12px]" :class="[$styles.whiteBg]">
|
|
51
51
|
<v-tab :ripple="false" value="phone"> {{ $dataStore.t('form.phoneNumber') }} </v-tab>
|
|
52
52
|
<v-tab :ripple="false" value="email"> {{ $dataStore.t('form.email') }} </v-tab>
|
|
53
53
|
</v-tabs>
|
|
@@ -70,8 +70,8 @@
|
|
|
70
70
|
:placeholder="$dataStore.t('form.email')"
|
|
71
71
|
type="text"
|
|
72
72
|
/>
|
|
73
|
-
<span class="inline-block w-full text-end mb-4" :class="[$
|
|
74
|
-
<base-btn :text="$dataStore.t('buttons.reset')" :disabled="authLoading" :btn="$
|
|
73
|
+
<span class="inline-block w-full text-end mb-4" :class="[$styles.textSimple, $styles.greyTextDark]" @click="isLogin = true">{{ $dataStore.t('buttons.login') }}</span>
|
|
74
|
+
<base-btn :text="$dataStore.t('buttons.reset')" :disabled="authLoading" :btn="$styles.greenBtn" @click="submitAuthForm" />
|
|
75
75
|
</v-form>
|
|
76
76
|
</section>
|
|
77
77
|
</section>
|