hl-core 0.0.9-beta.6 → 0.0.9-beta.8
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/interceptors.ts +16 -14
- package/components/Button/Btn.vue +2 -2
- package/components/Complex/MessageBlock.vue +1 -1
- package/components/Form/ManagerAttachment.vue +4 -4
- package/components/Input/RoundedEmptyField.vue +5 -0
- package/components/Input/RoundedSelect.vue +13 -0
- package/components/Pages/ContragentForm.vue +116 -42
- package/components/Pages/MemberForm.vue +19 -19
- package/components/Pages/ProductConditions.vue +6 -6
- package/composables/index.ts +10 -0
- package/composables/styles.ts +19 -9
- package/layouts/default.vue +3 -0
- package/locales/ru.json +14 -0
- package/package.json +1 -1
- package/store/data.store.ts +5 -0
- package/store/rules.ts +11 -2
package/api/interceptors.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxiosInstance } from 'axios';
|
|
1
|
+
import { AxiosError, AxiosInstance } from 'axios';
|
|
2
2
|
|
|
3
3
|
export default function (axios: AxiosInstance) {
|
|
4
4
|
axios.interceptors.request.use(
|
|
@@ -9,7 +9,7 @@ export default function (axios: AxiosInstance) {
|
|
|
9
9
|
}
|
|
10
10
|
return request;
|
|
11
11
|
},
|
|
12
|
-
error => {
|
|
12
|
+
(error: AxiosError) => {
|
|
13
13
|
return Promise.reject(error);
|
|
14
14
|
},
|
|
15
15
|
);
|
|
@@ -17,22 +17,24 @@ export default function (axios: AxiosInstance) {
|
|
|
17
17
|
response => {
|
|
18
18
|
return response;
|
|
19
19
|
},
|
|
20
|
-
error => {
|
|
20
|
+
(error: AxiosError) => {
|
|
21
21
|
const dataStore = useDataStore();
|
|
22
22
|
if (!dataStore.isCalculator) {
|
|
23
23
|
const router = useRouter();
|
|
24
|
-
if (error.response.status
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
if (error && error.response && error.response.status) {
|
|
25
|
+
if (error.response.status === 401) {
|
|
26
|
+
dataStore.$reset();
|
|
27
|
+
localStorage.clear();
|
|
28
|
+
if (dataStore.isBridge) {
|
|
29
|
+
router.push({ name: 'Auth', query: { error: 401 } });
|
|
30
|
+
} else {
|
|
31
|
+
dataStore.sendToParent(constants.postActions.Error401, 401);
|
|
32
|
+
}
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
if (error.response.status >= 500) {
|
|
35
|
+
if (router.currentRoute.value.name !== 'Auth') {
|
|
36
|
+
dataStore.showToaster('error', error.stack ?? dataStore.t('toaster.error'), 5000);
|
|
37
|
+
}
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
3
|
type="button"
|
|
4
|
-
class="transition-all"
|
|
4
|
+
class="transition-all border-solid"
|
|
5
5
|
@click="$emit('clicked')"
|
|
6
6
|
:disabled="disabled || loading"
|
|
7
7
|
:class="[
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
]"
|
|
13
13
|
>
|
|
14
14
|
<base-loader v-if="loading" :size="24" color="#FFF" bg-color="" :width="2" />
|
|
15
|
-
<span v-if="!loading">{{ text }}</span>
|
|
15
|
+
<span class="!text-inherit" v-if="!loading">{{ text }}</span>
|
|
16
16
|
</button>
|
|
17
17
|
</template>
|
|
18
18
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<base-panel-input
|
|
8
8
|
class="pl-1"
|
|
9
9
|
v-model="formStore.SaleChanellPolicy"
|
|
10
|
-
:value="formStore.SaleChanellPolicy
|
|
10
|
+
:value="formStore.SaleChanellPolicy?.nameRu"
|
|
11
11
|
:readonly="isReadonly"
|
|
12
12
|
:clearable="!isReadonly"
|
|
13
13
|
:label="$dataStore.t('form.salesChanell')"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<base-panel-input
|
|
19
19
|
class="pl-1"
|
|
20
20
|
v-model="formStore.RegionPolicy"
|
|
21
|
-
:value="formStore.RegionPolicy
|
|
21
|
+
:value="formStore.RegionPolicy?.nameRu"
|
|
22
22
|
:readonly="isReadonly"
|
|
23
23
|
:clearable="!isReadonly"
|
|
24
24
|
:label="$dataStore.t('form.Region')"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<base-panel-input
|
|
30
30
|
class="pl-1"
|
|
31
31
|
v-model="formStore.ManagerPolicy"
|
|
32
|
-
:value="formStore.ManagerPolicy
|
|
32
|
+
:value="formStore.ManagerPolicy?.nameRu"
|
|
33
33
|
:readonly="isReadonly"
|
|
34
34
|
:clearable="!isReadonly"
|
|
35
35
|
:label="$dataStore.t('form.manager')"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<base-panel-input
|
|
41
41
|
class="pl-1"
|
|
42
42
|
v-model="formStore.AgentData"
|
|
43
|
-
:value="formStore.AgentData
|
|
43
|
+
:value="formStore.AgentData?.fullName"
|
|
44
44
|
:readonly="isReadonly"
|
|
45
45
|
:clearable="!isReadonly"
|
|
46
46
|
:label="$dataStore.t('form.agent')"
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
:placeholder="placeholder"
|
|
8
8
|
:label="label"
|
|
9
9
|
:variant="variant"
|
|
10
|
+
:density="(density as any)"
|
|
11
|
+
:menu-icon="menuIcon"
|
|
10
12
|
:clear-icon="clearIcon"
|
|
11
13
|
:color="color"
|
|
12
14
|
:hint="hint"
|
|
@@ -78,10 +80,18 @@ export default defineComponent({
|
|
|
78
80
|
type: String as PropType<InputVariants>,
|
|
79
81
|
default: 'solo',
|
|
80
82
|
},
|
|
83
|
+
density: {
|
|
84
|
+
type: String,
|
|
85
|
+
default: 'compact',
|
|
86
|
+
},
|
|
81
87
|
color: {
|
|
82
88
|
type: String,
|
|
83
89
|
default: '#009c73',
|
|
84
90
|
},
|
|
91
|
+
menuIcon: {
|
|
92
|
+
type: String,
|
|
93
|
+
default: 'mdi-chevron-down',
|
|
94
|
+
},
|
|
85
95
|
clearIcon: {
|
|
86
96
|
type: String,
|
|
87
97
|
default: 'mdi-close',
|
|
@@ -122,6 +132,9 @@ export default defineComponent({
|
|
|
122
132
|
border: none !important;
|
|
123
133
|
outline: none !important;
|
|
124
134
|
}
|
|
135
|
+
.rounded-select.v-input {
|
|
136
|
+
flex: unset !important;
|
|
137
|
+
}
|
|
125
138
|
.rounded-select .v-label.v-field-label {
|
|
126
139
|
top: 20px;
|
|
127
140
|
}
|
|
@@ -2,22 +2,58 @@
|
|
|
2
2
|
<section v-show="showForm" class="flex flex-col gap-4 px-[10px]">
|
|
3
3
|
<v-form v-if="member" ref="vForm" @submit="submitForm" class="max-h-[75vh] overflow-y-scroll">
|
|
4
4
|
<base-form-section :title="$dataStore.t('form.personalData')" class="mt-[14px]">
|
|
5
|
-
<base-form-input
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
<base-form-input
|
|
6
|
+
v-model="member.phoneNumber"
|
|
7
|
+
:label="$dataStore.t('form.phoneNumber')"
|
|
8
|
+
:readonly="disabled"
|
|
9
|
+
:clearable="!disabled"
|
|
10
|
+
:maska="$maska.phone"
|
|
11
|
+
:rules="$rules.required.concat($rules.phoneFormat)"
|
|
12
|
+
/>
|
|
13
|
+
<base-form-input
|
|
14
|
+
v-model="member.iin"
|
|
15
|
+
:label="$dataStore.t('form.iin')"
|
|
16
|
+
:readonly="disabled"
|
|
17
|
+
:clearable="!disabled"
|
|
18
|
+
:maska="$maska.iin"
|
|
19
|
+
:rules="$rules.required.concat($rules.iinRight)"
|
|
20
|
+
/>
|
|
21
|
+
<base-form-input
|
|
22
|
+
v-model.trim="member.lastName"
|
|
23
|
+
:label="$dataStore.t('form.lastName')"
|
|
24
|
+
:readonly="disabled"
|
|
25
|
+
:clearable="!disabled"
|
|
26
|
+
:rules="$rules.required.concat($rules.cyrillic)"
|
|
27
|
+
/>
|
|
28
|
+
<base-form-input
|
|
29
|
+
v-model.trim="member.firstName"
|
|
30
|
+
:label="$dataStore.t('form.firstName')"
|
|
31
|
+
:readonly="disabled"
|
|
32
|
+
:clearable="!disabled"
|
|
33
|
+
:rules="$rules.required.concat($rules.cyrillic)"
|
|
34
|
+
/>
|
|
35
|
+
<base-form-input
|
|
36
|
+
v-model.trim="member.middleName"
|
|
37
|
+
:label="$dataStore.t('form.middleName')"
|
|
38
|
+
:readonly="disabled"
|
|
39
|
+
:clearable="!disabled"
|
|
40
|
+
:rules="$rules.cyrillicNonRequired"
|
|
41
|
+
/>
|
|
10
42
|
<base-form-input
|
|
11
43
|
v-model="member.birthDate"
|
|
12
44
|
:label="$dataStore.t('form.birthDate')"
|
|
45
|
+
:readonly="disabled"
|
|
46
|
+
:clearable="!disabled"
|
|
13
47
|
:rules="$rules.required.concat($rules.birthDate)"
|
|
14
48
|
:maska="$maska.date"
|
|
15
49
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
16
50
|
/>
|
|
17
|
-
<base-form-input v-model="member.age" :label="$dataStore.t('form.age')" :rules="$rules.numbers.concat($rules.age18)" />
|
|
51
|
+
<base-form-input v-model="member.age" :label="$dataStore.t('form.age')" :readonly="disabled" :clearable="!disabled" :rules="$rules.numbers.concat($rules.age18)" />
|
|
18
52
|
<base-panel-input
|
|
19
53
|
v-model="member.gender"
|
|
20
|
-
:value="member.gender
|
|
54
|
+
:value="member.gender?.nameRu"
|
|
55
|
+
:readonly="disabled"
|
|
56
|
+
:clearable="!disabled"
|
|
21
57
|
:label="$dataStore.t('form.gender')"
|
|
22
58
|
:rules="$rules.objectRequired"
|
|
23
59
|
append-inner-icon="mdi mdi-chevron-right"
|
|
@@ -25,15 +61,17 @@
|
|
|
25
61
|
/>
|
|
26
62
|
</base-form-section>
|
|
27
63
|
<!-- <base-form-section :title="$dataStore.t('form.jobData')">
|
|
28
|
-
<base-form-input v-model.trim="member.job" :label="$dataStore.t('form.job')" :rules="$rules.required" />
|
|
29
|
-
<base-form-input v-model.trim="member.jobPosition" :label="$dataStore.t('form.jobPosition')" :rules="$rules.required" />
|
|
30
|
-
<base-form-input v-model.trim="member.jobPlace" :label="$dataStore.t('form.jobPlace')" :rules="$rules.required" />
|
|
64
|
+
<base-form-input v-model.trim="member.job" :label="$dataStore.t('form.job')" :readonly="disabled" :clearable="!disabled" :rules="$rules.required" />
|
|
65
|
+
<base-form-input v-model.trim="member.jobPosition" :label="$dataStore.t('form.jobPosition')" :readonly="disabled" :clearable="!disabled" :rules="$rules.required" />
|
|
66
|
+
<base-form-input v-model.trim="member.jobPlace" :label="$dataStore.t('form.jobPlace')" :readonly="disabled" :clearable="!disabled" :rules="$rules.required" />
|
|
31
67
|
</base-form-section> -->
|
|
32
68
|
<base-form-section :title="$dataStore.t('form.placeRegistration')">
|
|
33
69
|
<base-panel-input
|
|
34
70
|
v-model="member.registrationCountry"
|
|
35
|
-
:value="member.registrationCountry
|
|
71
|
+
:value="member.registrationCountry?.nameRu"
|
|
36
72
|
:label="$dataStore.t('form.Country')"
|
|
73
|
+
:readonly="disabled"
|
|
74
|
+
:clearable="!disabled"
|
|
37
75
|
:rules="$rules.objectRequired"
|
|
38
76
|
append-inner-icon="mdi mdi-chevron-right"
|
|
39
77
|
@append="openPanel($dataStore.t('form.Country'), [], 'registrationCountry', $dataStore.getCountries)"
|
|
@@ -42,16 +80,20 @@
|
|
|
42
80
|
<div class="flex flex-col gap-[1px]" v-if="member.registrationCountry.nameRu === 'Казахстан' || member.registrationCountry.nameRu === null">
|
|
43
81
|
<base-panel-input
|
|
44
82
|
v-model="member.registrationProvince"
|
|
45
|
-
:value="member.registrationProvince
|
|
83
|
+
:value="member.registrationProvince?.nameRu"
|
|
46
84
|
:label="$dataStore.t('form.Province')"
|
|
85
|
+
:readonly="disabled"
|
|
86
|
+
:clearable="!disabled"
|
|
47
87
|
:rules="$rules.objectRequired"
|
|
48
88
|
append-inner-icon="mdi mdi-chevron-right"
|
|
49
89
|
@append="openPanel($dataStore.t('form.Province'), [], 'registrationProvince', $dataStore.getStates, 'registrationCountry')"
|
|
50
90
|
/>
|
|
51
91
|
<base-panel-input
|
|
52
92
|
v-model="member.registrationRegionType"
|
|
53
|
-
:value="member.registrationRegionType
|
|
93
|
+
:value="member.registrationRegionType?.nameRu"
|
|
54
94
|
:label="$dataStore.t('form.RegionType')"
|
|
95
|
+
:readonly="disabled"
|
|
96
|
+
:clearable="!disabled"
|
|
55
97
|
:rules="$rules.objectRequired"
|
|
56
98
|
append-inner-icon="mdi mdi-chevron-right"
|
|
57
99
|
@append="openPanel($dataStore.t('form.RegionType'), [], 'registrationRegionType', $dataStore.getLocalityTypes)"
|
|
@@ -59,58 +101,62 @@
|
|
|
59
101
|
<base-panel-input
|
|
60
102
|
v-if="member.registrationRegionType.nameRu !== 'город'"
|
|
61
103
|
v-model="member.registrationRegion"
|
|
62
|
-
:value="member.registrationRegion
|
|
104
|
+
:value="member.registrationRegion?.nameRu"
|
|
63
105
|
:label="$dataStore.t('form.Region')"
|
|
106
|
+
:readonly="disabled"
|
|
107
|
+
:clearable="!disabled"
|
|
64
108
|
:rules="$rules.objectRequired"
|
|
65
109
|
append-inner-icon="mdi mdi-chevron-right"
|
|
66
110
|
@append="openPanel($dataStore.t('form.Region'), [], 'registrationRegion', $dataStore.getRegions, 'registrationProvince')"
|
|
67
111
|
/>
|
|
68
112
|
<base-panel-input
|
|
69
113
|
v-model="member.registrationCity"
|
|
70
|
-
:value="member.registrationCity
|
|
114
|
+
:value="member.registrationCity?.nameRu"
|
|
71
115
|
:label="$dataStore.t('form.City')"
|
|
116
|
+
:readonly="disabled"
|
|
117
|
+
:clearable="!disabled"
|
|
72
118
|
:rules="$rules.objectRequired"
|
|
73
119
|
append-inner-icon="mdi mdi-chevron-right"
|
|
74
120
|
@append="openPanel($dataStore.t('form.City'), [], 'registrationCity', $dataStore.getCities, 'registrationProvince')"
|
|
75
121
|
/>
|
|
76
|
-
<base-form-input v-model.trim="member.registrationQuarter" :label="$dataStore.t('form.Quarter')" />
|
|
77
|
-
<base-form-input v-model.trim="member.registrationMicroDistrict" :label="$dataStore.t('form.MicroDistrict')" />
|
|
78
|
-
<base-form-input v-model.trim="member.registrationStreet" :rules="$rules.required" :label="$dataStore.t('form.Street')" />
|
|
79
|
-
<base-form-input
|
|
80
|
-
|
|
122
|
+
<base-form-input v-model.trim="member.registrationQuarter" :label="$dataStore.t('form.Quarter')" :readonly="disabled" :clearable="!disabled" />
|
|
123
|
+
<base-form-input v-model.trim="member.registrationMicroDistrict" :label="$dataStore.t('form.MicroDistrict')" :readonly="disabled" :clearable="!disabled" />
|
|
124
|
+
<base-form-input v-model.trim="member.registrationStreet" :rules="$rules.required" :label="$dataStore.t('form.Street')" :readonly="disabled" :clearable="!disabled" />
|
|
125
|
+
<base-form-input
|
|
126
|
+
v-model.trim="member.registrationNumberHouse"
|
|
127
|
+
:rules="$rules.required"
|
|
128
|
+
:label="$dataStore.t('form.NumberHouse')"
|
|
129
|
+
:readonly="disabled"
|
|
130
|
+
:clearable="!disabled"
|
|
131
|
+
/>
|
|
132
|
+
<base-form-input v-model.trim="member.registrationNumberApartment" :label="$dataStore.t('form.NumberApartment')" :readonly="disabled" :clearable="!disabled" />
|
|
81
133
|
</div>
|
|
82
134
|
</base-fade-transition>
|
|
83
135
|
</base-form-section>
|
|
84
136
|
<base-form-section :title="$dataStore.t('form.birthData')">
|
|
85
137
|
<base-panel-input
|
|
86
138
|
v-model="member.birthPlace"
|
|
87
|
-
:value="member.birthPlace
|
|
139
|
+
:value="member.birthPlace?.nameRu"
|
|
88
140
|
:label="$dataStore.t('form.Country')"
|
|
141
|
+
:readonly="disabled"
|
|
142
|
+
:clearable="!disabled"
|
|
89
143
|
:rules="$rules.objectRequired"
|
|
90
144
|
append-inner-icon="mdi mdi-chevron-right"
|
|
91
145
|
@append="openPanel($dataStore.t('form.Country'), [], 'birthPlace', $dataStore.getCountries)"
|
|
92
146
|
/>
|
|
93
|
-
<!-- TODO -->
|
|
94
|
-
<!-- <base-panel-input
|
|
95
|
-
v-model="member.birthRegion"
|
|
96
|
-
:value="member.birthRegion.nameRu"
|
|
97
|
-
:label="$dataStore.t('form.Region')"
|
|
98
|
-
|
|
99
|
-
:rules="$rules.objectRequired"
|
|
100
|
-
append-inner-icon="mdi mdi-chevron-right"
|
|
101
|
-
@append="openPanel($dataStore.t('form.Region'), [], 'birthRegion', $dataStore.getRegions)"
|
|
102
|
-
/> -->
|
|
103
147
|
</base-form-section>
|
|
104
148
|
<base-form-section :title="$dataStore.t('form.documentData')">
|
|
105
149
|
<base-panel-input
|
|
106
150
|
v-model="member.documentType"
|
|
107
|
-
:value="member.documentType
|
|
151
|
+
:value="member.documentType?.nameRu"
|
|
108
152
|
:label="$dataStore.t('form.documentType')"
|
|
153
|
+
:readonly="disabled"
|
|
154
|
+
:clearable="!disabled"
|
|
109
155
|
:rules="$rules.objectRequired"
|
|
110
156
|
append-inner-icon="mdi mdi-chevron-right"
|
|
111
157
|
@append="openPanel($dataStore.t('form.documentType'), [], 'documentType', $dataStore.getDocumentTypes)"
|
|
112
158
|
/>
|
|
113
|
-
<base-form-input v-model.trim="member.documentNumber" :label="$dataStore.t('form.documentNumber')" :rules="$rules.required" />
|
|
159
|
+
<base-form-input v-model.trim="member.documentNumber" :label="$dataStore.t('form.documentNumber')" :readonly="disabled" :clearable="!disabled" :rules="$rules.required" />
|
|
114
160
|
<!-- <base-file-input v-if="!memberDocument" :disabled="isDisabled" :clearable="!isDisabled" @input="attachFile($event)" />
|
|
115
161
|
<base-empty-form-field v-if="memberDocument" @click="!isDisabled && openCustomPanel('document')" class="justify-between">
|
|
116
162
|
{{ `${memberDocument.fileTypeName} - ${memberDocument.fileName}` }}
|
|
@@ -118,8 +164,10 @@
|
|
|
118
164
|
</base-empty-form-field> -->
|
|
119
165
|
<base-panel-input
|
|
120
166
|
v-model="member.documentIssuers"
|
|
121
|
-
:value="member.documentIssuers
|
|
167
|
+
:value="member.documentIssuers?.nameRu"
|
|
122
168
|
:label="$dataStore.t('form.documentIssuers')"
|
|
169
|
+
:readonly="disabled"
|
|
170
|
+
:clearable="!disabled"
|
|
123
171
|
:rules="$rules.objectRequired"
|
|
124
172
|
append-inner-icon="mdi mdi-chevron-right"
|
|
125
173
|
@append="openPanel($dataStore.t('form.documentIssuers'), [], 'documentIssuers', $dataStore.getDocumentIssuers)"
|
|
@@ -128,6 +176,8 @@
|
|
|
128
176
|
v-model="member.documentDate"
|
|
129
177
|
:label="$dataStore.t('form.documentDate')"
|
|
130
178
|
:rules="$rules.required.concat($rules.date)"
|
|
179
|
+
:readonly="disabled"
|
|
180
|
+
:clearable="!disabled"
|
|
131
181
|
:maska="$maska.date"
|
|
132
182
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
133
183
|
/>
|
|
@@ -136,6 +186,8 @@
|
|
|
136
186
|
v-if="member.documentType.ids !== 'SBI' && member.documentType.ids !== 'VNZ'"
|
|
137
187
|
v-model="member.documentExpire"
|
|
138
188
|
:label="$dataStore.t('form.documentExpire')"
|
|
189
|
+
:readonly="disabled"
|
|
190
|
+
:clearable="!disabled"
|
|
139
191
|
:rules="$rules.required.concat($rules.date)"
|
|
140
192
|
:maska="$maska.date"
|
|
141
193
|
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
@@ -143,16 +195,20 @@
|
|
|
143
195
|
</base-fade-transition>
|
|
144
196
|
<base-panel-input
|
|
145
197
|
v-model="member.signOfResidency"
|
|
146
|
-
:value="member.signOfResidency
|
|
198
|
+
:value="member.signOfResidency?.nameRu"
|
|
147
199
|
:label="$dataStore.t('form.signOfResidency')"
|
|
200
|
+
:readonly="disabled"
|
|
201
|
+
:clearable="!disabled"
|
|
148
202
|
:rules="$rules.objectRequired"
|
|
149
203
|
append-inner-icon="mdi mdi-chevron-right"
|
|
150
204
|
@append="openPanel($dataStore.t('form.signOfResidency'), [], 'signOfResidency', $dataStore.getResidents)"
|
|
151
205
|
/>
|
|
152
206
|
<base-panel-input
|
|
153
207
|
v-model="member.countryOfTaxResidency"
|
|
154
|
-
:value="member.countryOfTaxResidency
|
|
208
|
+
:value="member.countryOfTaxResidency?.nameRu"
|
|
155
209
|
:label="$dataStore.t('form.countryOfTaxResidency')"
|
|
210
|
+
:readonly="disabled"
|
|
211
|
+
:clearable="!disabled"
|
|
156
212
|
:rules="$rules.objectRequired"
|
|
157
213
|
append-inner-icon="mdi mdi-chevron-right"
|
|
158
214
|
@append="openPanel($dataStore.t('form.countryOfTaxResidency'), [], 'countryOfTaxResidency', $dataStore.getTaxCountries)"
|
|
@@ -161,8 +217,10 @@
|
|
|
161
217
|
<base-panel-input
|
|
162
218
|
v-if="member.countryOfTaxResidency.ids === '500014.3'"
|
|
163
219
|
v-model="member.addTaxResidency"
|
|
164
|
-
:value="member.addTaxResidency
|
|
220
|
+
:value="member.addTaxResidency?.nameRu"
|
|
165
221
|
:label="$dataStore.t('form.addTaxResidency')"
|
|
222
|
+
:readonly="disabled"
|
|
223
|
+
:clearable="!disabled"
|
|
166
224
|
:rules="$rules.objectRequired"
|
|
167
225
|
append-inner-icon="mdi mdi-chevron-right"
|
|
168
226
|
@append="openPanel($dataStore.t('form.addTaxResidency'), [], 'addTaxResidency', $dataStore.getAdditionalTaxCountries)"
|
|
@@ -170,27 +228,39 @@
|
|
|
170
228
|
</base-fade-transition>
|
|
171
229
|
<base-panel-input
|
|
172
230
|
v-model="member.countryOfCitizenship"
|
|
173
|
-
:value="member.countryOfCitizenship
|
|
231
|
+
:value="member.countryOfCitizenship?.nameRu"
|
|
174
232
|
:label="$dataStore.t('form.countryOfCitizenship')"
|
|
233
|
+
:readonly="disabled"
|
|
234
|
+
:clearable="!disabled"
|
|
175
235
|
:rules="$rules.objectRequired"
|
|
176
236
|
append-inner-icon="mdi mdi-chevron-right"
|
|
177
237
|
@append="openPanel($dataStore.t('form.countryOfCitizenship'), [], 'countryOfCitizenship', $dataStore.getCitizenshipCountries)"
|
|
178
238
|
/>
|
|
179
239
|
<base-panel-input
|
|
180
240
|
v-model="member.economySectorCode"
|
|
181
|
-
:value="member.economySectorCode
|
|
241
|
+
:value="member.economySectorCode?.nameRu"
|
|
182
242
|
:label="$dataStore.t('form.economySectorCode')"
|
|
243
|
+
:readonly="disabled"
|
|
244
|
+
:clearable="!disabled"
|
|
183
245
|
:rules="$rules.objectRequired"
|
|
184
246
|
append-inner-icon="mdi mdi-chevron-right"
|
|
185
247
|
@append="openPanel($dataStore.t('form.economySectorCode'), [], 'economySectorCode', $dataStore.getSectorCodeList)"
|
|
186
248
|
/>
|
|
187
249
|
</base-form-section>
|
|
188
250
|
<base-form-section :title="$dataStore.t('form.contactsData')">
|
|
189
|
-
<base-form-input
|
|
190
|
-
|
|
251
|
+
<base-form-input
|
|
252
|
+
v-model="member.homePhone"
|
|
253
|
+
:maska="$maska.phone"
|
|
254
|
+
placeholder="+7 7"
|
|
255
|
+
:label="$dataStore.t('form.homePhone')"
|
|
256
|
+
:readonly="disabled"
|
|
257
|
+
:clearable="!disabled"
|
|
258
|
+
:rules="$rules.phoneFormat"
|
|
259
|
+
/>
|
|
260
|
+
<base-form-input v-model.trim="member.email" :label="$dataStore.t('form.email')" :readonly="disabled" :clearable="!disabled" :rules="$rules.email" />
|
|
191
261
|
</base-form-section>
|
|
192
262
|
</v-form>
|
|
193
|
-
<base-btn v-if="showSaveButton" :loading="isButtonLoading" :text="$dataStore.t('buttons.save')" @click="submitForm" />
|
|
263
|
+
<base-btn v-if="showSaveButton && !disabled" :loading="isButtonLoading" :text="$dataStore.t('buttons.save')" @click="submitForm" />
|
|
194
264
|
<Teleport v-if="isPanelOpen" to="#panel-actions">
|
|
195
265
|
<div :class="[$styles.scrollPage]" class="relative flex flex-col items-center">
|
|
196
266
|
<i
|
|
@@ -234,6 +304,10 @@ export default defineComponent({
|
|
|
234
304
|
type: String as PropType<'contragent' | keyof typeof StoreMembers>,
|
|
235
305
|
default: 'contragent',
|
|
236
306
|
},
|
|
307
|
+
disabled: {
|
|
308
|
+
type: Boolean,
|
|
309
|
+
default: false,
|
|
310
|
+
},
|
|
237
311
|
},
|
|
238
312
|
emits: ['success'],
|
|
239
313
|
setup(props, { emit }) {
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
<base-form-input v-model="member.age" :label="$dataStore.t('form.age')" :readonly="true" :clearable="!isDisabled" :rules="ageRule" />
|
|
83
83
|
<base-panel-input
|
|
84
84
|
v-model="member.gender"
|
|
85
|
-
:value="member.gender
|
|
85
|
+
:value="member.gender?.nameRu"
|
|
86
86
|
:readonly="isDisabled || isFromGBD"
|
|
87
87
|
:clearable="!isDisabled"
|
|
88
88
|
:label="$dataStore.t('form.gender')"
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
<base-panel-input
|
|
94
94
|
v-if="hasFamilyStatus"
|
|
95
95
|
v-model="member.familyStatus"
|
|
96
|
-
:value="member.familyStatus
|
|
96
|
+
:value="member.familyStatus?.nameRu"
|
|
97
97
|
:readonly="isDisabled"
|
|
98
98
|
:clearable="!isDisabled"
|
|
99
99
|
:label="$dataStore.t('form.familyStatus')"
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
<base-panel-input
|
|
105
105
|
v-if="(whichForm === formStore.beneficiaryFormKey || whichForm === formStore.insuredFormKey) && member.iin !== formStore.policyholderForm.iin"
|
|
106
106
|
v-model="member.relationDegree"
|
|
107
|
-
:value="member.relationDegree
|
|
107
|
+
:value="member.relationDegree?.nameRu"
|
|
108
108
|
:readonly="isDisabled"
|
|
109
109
|
:clearable="!isDisabled"
|
|
110
110
|
:label="$dataStore.t('form.relations')"
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
<base-form-toggle v-if="hasSameAddressToggle" v-model="sameAddress" :disabled="isDisabled" :has-border="false" :title="$dataStore.t('form.sameAddress')" />
|
|
241
241
|
<base-panel-input
|
|
242
242
|
v-model="member.registrationCountry"
|
|
243
|
-
:value="member.registrationCountry
|
|
243
|
+
:value="member.registrationCountry?.nameRu"
|
|
244
244
|
:readonly="isDisabled"
|
|
245
245
|
:clearable="!isDisabled"
|
|
246
246
|
:label="$dataStore.t('form.Country')"
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
<div class="flex flex-col gap-[1px]" v-if="member.registrationCountry.nameRu === 'Казахстан' || member.registrationCountry.nameRu === null">
|
|
253
253
|
<base-panel-input
|
|
254
254
|
v-model="member.registrationProvince"
|
|
255
|
-
:value="member.registrationProvince
|
|
255
|
+
:value="member.registrationProvince?.nameRu"
|
|
256
256
|
:label="$dataStore.t('form.Province')"
|
|
257
257
|
:readonly="isDisabled"
|
|
258
258
|
:clearable="!isDisabled"
|
|
@@ -262,7 +262,7 @@
|
|
|
262
262
|
/>
|
|
263
263
|
<base-panel-input
|
|
264
264
|
v-model="member.registrationRegionType"
|
|
265
|
-
:value="member.registrationRegionType
|
|
265
|
+
:value="member.registrationRegionType?.nameRu"
|
|
266
266
|
:label="$dataStore.t('form.RegionType')"
|
|
267
267
|
:readonly="isDisabled"
|
|
268
268
|
:clearable="!isDisabled"
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
<base-panel-input
|
|
274
274
|
v-if="member.registrationRegionType.nameRu !== 'город'"
|
|
275
275
|
v-model="member.registrationRegion"
|
|
276
|
-
:value="member.registrationRegion
|
|
276
|
+
:value="member.registrationRegion?.nameRu"
|
|
277
277
|
:label="$dataStore.t('form.Region')"
|
|
278
278
|
:readonly="isDisabled"
|
|
279
279
|
:clearable="!isDisabled"
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
/>
|
|
284
284
|
<base-panel-input
|
|
285
285
|
v-model="member.registrationCity"
|
|
286
|
-
:value="member.registrationCity
|
|
286
|
+
:value="member.registrationCity?.nameRu"
|
|
287
287
|
:label="$dataStore.t('form.City')"
|
|
288
288
|
:readonly="isDisabled"
|
|
289
289
|
:clearable="!isDisabled"
|
|
@@ -316,7 +316,7 @@
|
|
|
316
316
|
<base-form-section :title="$dataStore.t('form.birthData')" v-if="$dataStore.hasBirthSection(whichForm)">
|
|
317
317
|
<base-panel-input
|
|
318
318
|
v-model="member.birthPlace"
|
|
319
|
-
:value="member.birthPlace
|
|
319
|
+
:value="member.birthPlace?.nameRu"
|
|
320
320
|
:label="$dataStore.t('form.Country')"
|
|
321
321
|
:readonly="isDisabled"
|
|
322
322
|
:clearable="!isDisabled"
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
<!-- TODO -->
|
|
328
328
|
<!-- <base-panel-input
|
|
329
329
|
v-model="member.birthRegion"
|
|
330
|
-
:value="member.birthRegion
|
|
330
|
+
:value="member.birthRegion?.nameRu"
|
|
331
331
|
:label="$dataStore.t('form.Region')"
|
|
332
332
|
:readonly="isDisabled"
|
|
333
333
|
:clearable="!isDisabled"
|
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
<base-form-section :title="$dataStore.t('form.documentData')" v-if="$dataStore.hasDocumentSection(whichForm)">
|
|
340
340
|
<base-panel-input
|
|
341
341
|
v-model="member.documentType"
|
|
342
|
-
:value="member.documentType
|
|
342
|
+
:value="member.documentType?.nameRu"
|
|
343
343
|
:label="$dataStore.t('form.documentType')"
|
|
344
344
|
:readonly="isDisabled"
|
|
345
345
|
:clearable="!isDisabled"
|
|
@@ -361,7 +361,7 @@
|
|
|
361
361
|
</base-empty-form-field> -->
|
|
362
362
|
<base-panel-input
|
|
363
363
|
v-model="member.documentIssuers"
|
|
364
|
-
:value="member.documentIssuers
|
|
364
|
+
:value="member.documentIssuers?.nameRu"
|
|
365
365
|
:label="$dataStore.t('form.documentIssuers')"
|
|
366
366
|
:readonly="isDisabled"
|
|
367
367
|
:clearable="!isDisabled"
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
</base-fade-transition>
|
|
393
393
|
<base-panel-input
|
|
394
394
|
v-model="member.signOfResidency"
|
|
395
|
-
:value="member.signOfResidency
|
|
395
|
+
:value="member.signOfResidency?.nameRu"
|
|
396
396
|
:label="$dataStore.t('form.signOfResidency')"
|
|
397
397
|
:readonly="isDisabled"
|
|
398
398
|
:clearable="!isDisabled"
|
|
@@ -402,7 +402,7 @@
|
|
|
402
402
|
/>
|
|
403
403
|
<base-panel-input
|
|
404
404
|
v-model="member.countryOfTaxResidency"
|
|
405
|
-
:value="member.countryOfTaxResidency
|
|
405
|
+
:value="member.countryOfTaxResidency?.nameRu"
|
|
406
406
|
:label="$dataStore.t('form.countryOfTaxResidency')"
|
|
407
407
|
:readonly="isDisabled"
|
|
408
408
|
:clearable="!isDisabled"
|
|
@@ -414,7 +414,7 @@
|
|
|
414
414
|
<base-panel-input
|
|
415
415
|
v-if="member.countryOfTaxResidency.ids === '500014.3'"
|
|
416
416
|
v-model="member.addTaxResidency"
|
|
417
|
-
:value="member.addTaxResidency
|
|
417
|
+
:value="member.addTaxResidency?.nameRu"
|
|
418
418
|
:label="$dataStore.t('form.addTaxResidency')"
|
|
419
419
|
:readonly="isDisabled"
|
|
420
420
|
:clearable="!isDisabled"
|
|
@@ -426,7 +426,7 @@
|
|
|
426
426
|
<base-panel-input
|
|
427
427
|
v-if="hasSignOfIPDL"
|
|
428
428
|
v-model="member.signOfIPDL"
|
|
429
|
-
:value="member.signOfIPDL
|
|
429
|
+
:value="member.signOfIPDL?.nameRu"
|
|
430
430
|
:label="$dataStore.t('form.signOfIPDL')"
|
|
431
431
|
:readonly="isDisabled"
|
|
432
432
|
:clearable="!isDisabled"
|
|
@@ -436,7 +436,7 @@
|
|
|
436
436
|
/>
|
|
437
437
|
<base-panel-input
|
|
438
438
|
v-model="member.countryOfCitizenship"
|
|
439
|
-
:value="member.countryOfCitizenship
|
|
439
|
+
:value="member.countryOfCitizenship?.nameRu"
|
|
440
440
|
:label="$dataStore.t('form.countryOfCitizenship')"
|
|
441
441
|
:readonly="isDisabled"
|
|
442
442
|
:clearable="!isDisabled"
|
|
@@ -446,7 +446,7 @@
|
|
|
446
446
|
/>
|
|
447
447
|
<base-panel-input
|
|
448
448
|
v-model="member.economySectorCode"
|
|
449
|
-
:value="member.economySectorCode
|
|
449
|
+
:value="member.economySectorCode?.nameRu"
|
|
450
450
|
:label="$dataStore.t('form.economySectorCode')"
|
|
451
451
|
:readonly="isDisabled"
|
|
452
452
|
:clearable="!isDisabled"
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
<base-panel-input
|
|
458
458
|
v-if="hasInsurancePay"
|
|
459
459
|
v-model="member.insurancePay"
|
|
460
|
-
:value="member.insurancePay
|
|
460
|
+
:value="member.insurancePay?.nameRu"
|
|
461
461
|
:readonly="isDisabled"
|
|
462
462
|
:clearable="!isDisabled"
|
|
463
463
|
:rules="$rules.objectRequired"
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<base-panel-input
|
|
102
102
|
v-if="hasRiskGroup"
|
|
103
103
|
v-model="productConditionsForm.riskGroup"
|
|
104
|
-
:value="productConditionsForm.riskGroup
|
|
104
|
+
:value="productConditionsForm.riskGroup?.nameRu"
|
|
105
105
|
:label="$dataStore.t('productConditionsForm.riskGroup')"
|
|
106
106
|
:clearable="isRecalculationDisabled === false"
|
|
107
107
|
:readonly="isRecalculationDisabled"
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
/>
|
|
131
131
|
<base-panel-input
|
|
132
132
|
v-model="productConditionsForm.gender"
|
|
133
|
-
:value="productConditionsForm.gender
|
|
133
|
+
:value="productConditionsForm.gender?.nameRu"
|
|
134
134
|
:readonly="isDisabled"
|
|
135
135
|
:clearable="!isDisabled"
|
|
136
136
|
:label="$dataStore.t('form.gender')"
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
<base-panel-input
|
|
151
151
|
v-if="hasPaymentPeriod"
|
|
152
152
|
v-model="productConditionsForm.paymentPeriod"
|
|
153
|
-
:value="productConditionsForm.paymentPeriod
|
|
153
|
+
:value="productConditionsForm.paymentPeriod?.nameRu"
|
|
154
154
|
:readonly="isDisabled"
|
|
155
155
|
:clearable="!isDisabled"
|
|
156
156
|
:rules="$rules.objectRequired"
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<base-panel-input
|
|
162
162
|
v-if="hasProcessIndexRate"
|
|
163
163
|
v-model="productConditionsForm.processIndexRate"
|
|
164
|
-
:value="productConditionsForm.processIndexRate
|
|
164
|
+
:value="productConditionsForm.processIndexRate?.nameRu"
|
|
165
165
|
:readonly="isDisabled"
|
|
166
166
|
:clearable="!isDisabled"
|
|
167
167
|
:rules="$rules.objectRequired"
|
|
@@ -240,7 +240,7 @@
|
|
|
240
240
|
/>
|
|
241
241
|
<base-panel-input
|
|
242
242
|
v-model="productConditionsForm.typeAnnuityInsurance"
|
|
243
|
-
:value="productConditionsForm.typeAnnuityInsurance
|
|
243
|
+
:value="productConditionsForm.typeAnnuityInsurance?.nameRu"
|
|
244
244
|
:readonly="isDisabled"
|
|
245
245
|
:clearable="!isDisabled"
|
|
246
246
|
:rules="$rules.objectRequired"
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
/>
|
|
259
259
|
<base-panel-input
|
|
260
260
|
v-model="productConditionsForm.periodAnnuityPayment"
|
|
261
|
-
:value="productConditionsForm.periodAnnuityPayment
|
|
261
|
+
:value="productConditionsForm.periodAnnuityPayment?.nameRu"
|
|
262
262
|
:readonly="isDisabled"
|
|
263
263
|
:clearable="!isDisabled"
|
|
264
264
|
:rules="$rules.objectRequired"
|
package/composables/index.ts
CHANGED
|
@@ -264,3 +264,13 @@ export const changeBridge = async (toBridge: 'efo' | 'lka', token: string) => {
|
|
|
264
264
|
}
|
|
265
265
|
window.open(`${bridgeUrl}/#/Token?token=${token}`, '_blank');
|
|
266
266
|
};
|
|
267
|
+
|
|
268
|
+
export const getFirstDayOfMonth = (year: number, month: number) => {
|
|
269
|
+
const date = new Date();
|
|
270
|
+
return new Date(year, month, 1, (date.getTimezoneOffset() / 60) * -1).toISOString();
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
export const getLastDayOfMonth = (year: number, month: number) => {
|
|
274
|
+
const date = new Date();
|
|
275
|
+
return new Date(year, month + 1, 0, (date.getTimezoneOffset() / 60) * -1).toISOString();
|
|
276
|
+
};
|
package/composables/styles.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class Styles {
|
|
2
2
|
// Base
|
|
3
|
-
whiteBg: string = 'bg-
|
|
4
|
-
whiteText: string = 'text-
|
|
5
|
-
blackText: string = 'text-
|
|
3
|
+
whiteBg: string = 'bg-[#FFF]';
|
|
4
|
+
whiteText: string = '!text-[#FFF]';
|
|
5
|
+
blackText: string = '!text-[#000]';
|
|
6
6
|
bodyBg: string = '!bg-[#F5F5F5]';
|
|
7
7
|
|
|
8
8
|
whiteTextHover: string = 'hover:text-[#FFFFFF]';
|
|
@@ -11,7 +11,7 @@ export class Styles {
|
|
|
11
11
|
blueBgHover: string = 'hover:bg-[#96abd6]';
|
|
12
12
|
blueBgLight: string = 'bg-[#F3F6FC]';
|
|
13
13
|
blueBgLightHover: string = 'hover:bg-[#f5f8fd]';
|
|
14
|
-
blueText: string = 'text-[#A0B3D8]';
|
|
14
|
+
blueText: string = '!text-[#A0B3D8]';
|
|
15
15
|
blueTextLight: string = 'text-[#F3F6FC]';
|
|
16
16
|
|
|
17
17
|
// Green
|
|
@@ -23,13 +23,13 @@ export class Styles {
|
|
|
23
23
|
greenBgLightHover: string = 'hover:bg-[#dbf0e4]';
|
|
24
24
|
|
|
25
25
|
// Yellow
|
|
26
|
-
yellowText: string = 'text-[#FAB31C]';
|
|
26
|
+
yellowText: string = '!text-[#FAB31C]';
|
|
27
27
|
yellowBg: string = 'bg-[#FAB31C]';
|
|
28
28
|
yellowBgHover: string = 'hover:bg-[#FAB31C]';
|
|
29
29
|
|
|
30
30
|
// Grey
|
|
31
31
|
greyBg: string = 'bg-[#B8B8B8]';
|
|
32
|
-
greyText: string = 'text-[#B8B8B8]';
|
|
32
|
+
greyText: string = '!text-[#B8B8B8]';
|
|
33
33
|
greyTextLight: string = 'text-[#B8B8B8]';
|
|
34
34
|
greyIcon: string = 'text-[#DADADA]';
|
|
35
35
|
greyIconBg: string = 'bg-[#DADADA]';
|
|
@@ -39,15 +39,22 @@ export class Styles {
|
|
|
39
39
|
greyTextDark: string = 'text-[#9197A1]';
|
|
40
40
|
|
|
41
41
|
// Red
|
|
42
|
-
redText: string = 'text-[#FD2D39]';
|
|
42
|
+
redText: string = '!text-[#FD2D39]';
|
|
43
43
|
redBg: string = 'bg-[#FF897D]';
|
|
44
44
|
redBgHover: string = 'hover:bg-[#ff9b91]';
|
|
45
45
|
// Error
|
|
46
46
|
errorBg: string = 'bg-[#FF5449]';
|
|
47
|
-
errorText: string = 'text-[#FF5449]';
|
|
47
|
+
errorText: string = '!text-[#FF5449]';
|
|
48
48
|
|
|
49
49
|
// Border
|
|
50
50
|
rounded: string = 'rounded-[8px]';
|
|
51
|
+
roundedT: string = 'rounded-t-[8px]';
|
|
52
|
+
roundedB: string = 'rounded-b-[8px]';
|
|
53
|
+
blueBorder: string = 'border-[1px] border-[#A0B3D8]';
|
|
54
|
+
blueLightBorder: string = 'border-[1px] border-[#F3F6FC]';
|
|
55
|
+
greenBorder: string = 'border-[1px] border-[#009C73]';
|
|
56
|
+
redBorder: string = 'border-[1px] border-[#FD2D39]';
|
|
57
|
+
yellowBorder: string = 'border-[1px] border-[#FAB31C]';
|
|
51
58
|
|
|
52
59
|
// Text
|
|
53
60
|
textSimple: string = 'text-[14px] leading-5';
|
|
@@ -63,6 +70,7 @@ export class Styles {
|
|
|
63
70
|
redBtn: string;
|
|
64
71
|
yellowBtn: string;
|
|
65
72
|
whiteBtn: string;
|
|
73
|
+
whiteBtnBlueBr: string;
|
|
66
74
|
blueLightBtn: string;
|
|
67
75
|
greenLightBtn: string;
|
|
68
76
|
|
|
@@ -70,9 +78,10 @@ export class Styles {
|
|
|
70
78
|
flexColNav: string;
|
|
71
79
|
emptyBlockCol: string;
|
|
72
80
|
scrollPage: string;
|
|
81
|
+
flexCenter: string = 'flex items-center justify-center';
|
|
73
82
|
|
|
74
83
|
// Muted or disabled
|
|
75
|
-
mutedText: string = 'text-[#99A3B3]';
|
|
84
|
+
mutedText: string = '!text-[#99A3B3]';
|
|
76
85
|
disabled: string = 'cursor-not-allowed opacity-50';
|
|
77
86
|
|
|
78
87
|
constructor() {
|
|
@@ -81,6 +90,7 @@ export class Styles {
|
|
|
81
90
|
this.redBtn = `${this.redBg} ${this.whiteText} ${this.textTitle} ${this.rounded} w-full ${this.redBgHover}`;
|
|
82
91
|
this.yellowBtn = `${this.yellowBg} ${this.whiteText} ${this.textTitle} ${this.rounded} w-full ${this.yellowBgHover}`;
|
|
83
92
|
this.blueBtn = `${this.blueBg} ${this.whiteText} ${this.textTitle} ${this.rounded} w-full ${this.blueBgHover}`;
|
|
93
|
+
this.whiteBtnBlueBr = `${this.whiteBg} ${this.blueText} ${this.textTitle} ${this.rounded} w-full ${this.blueBgLightHover} ${this.blueBorder}`;
|
|
84
94
|
this.whiteBtn = ` ${this.blackText} ${this.textTitle} ${this.rounded} w-full ${this.blueLightBgHover}`;
|
|
85
95
|
this.blueLightBtn = `${this.blueBgLight} ${this.greyTextLight} ${this.textTitle} ${this.rounded} w-full ${this.blueBgLightHover}`;
|
|
86
96
|
this.greenLightBtn = `${this.greenBgLight} ${this.greenText} ${this.textTitle} ${this.rounded} w-full ${this.greenBgLightHover}`;
|
package/layouts/default.vue
CHANGED
package/locales/ru.json
CHANGED
|
@@ -299,6 +299,8 @@
|
|
|
299
299
|
"userFullName": "Исполнитель"
|
|
300
300
|
},
|
|
301
301
|
"agent": {
|
|
302
|
+
"currency": "Валюта",
|
|
303
|
+
"programName": "Программа",
|
|
302
304
|
"menu": "Меню",
|
|
303
305
|
"main": "Главное",
|
|
304
306
|
"reports": "Отчеты",
|
|
@@ -311,6 +313,7 @@
|
|
|
311
313
|
"agentsInfo": "Сведения о страховых агентах",
|
|
312
314
|
"personalData": "Личные данные",
|
|
313
315
|
"info": "Данные об агенте",
|
|
316
|
+
"information": "Сведения",
|
|
314
317
|
"about": "Сведения об Агенте",
|
|
315
318
|
"level": "Уровень",
|
|
316
319
|
"subAgents": "Суб-агенты",
|
|
@@ -318,10 +321,12 @@
|
|
|
318
321
|
"myContracts": "Оформлено договоров",
|
|
319
322
|
"nextLevel": "Следующий уровень {text}",
|
|
320
323
|
"leftMy": "Осталось оформить лично",
|
|
324
|
+
"leftGroup": "Осталось оформить группой",
|
|
321
325
|
"leftAll": "Осталось оформить всего",
|
|
322
326
|
"donePolicies": "Оформлено полисов",
|
|
323
327
|
"successStat": "Статистика успешных сделок",
|
|
324
328
|
"doneMy": "Оформлено лично",
|
|
329
|
+
"doneGroup": "Оформлено группой",
|
|
325
330
|
"doneAll": "Всего оформлено",
|
|
326
331
|
"progressAll": "Прогресс за все время работы",
|
|
327
332
|
"subagentsCalled": "Привлечено суб-агентов",
|
|
@@ -336,6 +341,7 @@
|
|
|
336
341
|
"reportType": "Тип отчета",
|
|
337
342
|
"reportFile": "Файл отчета",
|
|
338
343
|
"reportDate": "Отчетная дата",
|
|
344
|
+
"agentPolicy": "Личные продажи",
|
|
339
345
|
"paymentJournal": "Журнал оплаты",
|
|
340
346
|
"journal": {
|
|
341
347
|
"incomeKz": "Приходы KZT",
|
|
@@ -348,6 +354,7 @@
|
|
|
348
354
|
"unallocation": {
|
|
349
355
|
"paymentId": "ID платежа",
|
|
350
356
|
"voucherNumber": "Номер ваучера",
|
|
357
|
+
"voucherSum": "Сумма",
|
|
351
358
|
"voucherDate": "Дата ваучера",
|
|
352
359
|
"voucherStatus": "Статус ваучера"
|
|
353
360
|
},
|
|
@@ -385,6 +392,12 @@
|
|
|
385
392
|
"new": "Подать заявление"
|
|
386
393
|
},
|
|
387
394
|
"labels": {
|
|
395
|
+
"inAll": "Всего",
|
|
396
|
+
"sorting": "Сортировка",
|
|
397
|
+
"premiumSum": "Сумма премии",
|
|
398
|
+
"department": "Департамент",
|
|
399
|
+
"fromDate": "Дата с",
|
|
400
|
+
"toDate": "Дата по",
|
|
388
401
|
"newVersion": "Новая версия",
|
|
389
402
|
"code": "Код",
|
|
390
403
|
"codes": "Коды",
|
|
@@ -476,6 +489,7 @@
|
|
|
476
489
|
"rules": {
|
|
477
490
|
"required": "Поле обязательно",
|
|
478
491
|
"cyrillic": "Поле должно содержать только кириллические символы",
|
|
492
|
+
"latin": "Поле должно содержать только латинские символы",
|
|
479
493
|
"email": "Неправильный адрес электронной почты",
|
|
480
494
|
"numbers": "Поле должно содержать только цифры",
|
|
481
495
|
"numbersSymbols": "Поле должно содержать цифры",
|
package/package.json
CHANGED
package/store/data.store.ts
CHANGED
|
@@ -1330,6 +1330,11 @@ export const useDataStore = defineStore('data', {
|
|
|
1330
1330
|
getNumberWithSpaces(n: any) {
|
|
1331
1331
|
return n === null ? null : Number((typeof n === 'string' ? n : n.toFixed().toString()).replace(/[^0-9]+/g, '')).toLocaleString('ru');
|
|
1332
1332
|
},
|
|
1333
|
+
getNumberWithSpacesAfterComma(n: number) {
|
|
1334
|
+
let parts = n.toFixed(2).split('.');
|
|
1335
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
|
|
1336
|
+
return parts.join(',');
|
|
1337
|
+
},
|
|
1333
1338
|
getNumberWithDot(n: any) {
|
|
1334
1339
|
return n === null ? null : n.toLocaleString('ru', { maximumFractionDigits: 2, minimumFractionDigits: 2 }).replace(/,/g, '.');
|
|
1335
1340
|
},
|
package/store/rules.ts
CHANGED
|
@@ -96,7 +96,11 @@ export const rules = {
|
|
|
96
96
|
date: [
|
|
97
97
|
(v: any) => {
|
|
98
98
|
if (v === null || v == '') return true;
|
|
99
|
-
if (
|
|
99
|
+
if (
|
|
100
|
+
/^(?:(?:(?:(?:0[1-9]|1[0-9]|2[0-8])[\.](?:0[1-9]|1[012]))|(?:(?:29|30|31)[\.](?:0[13578]|1[02]))|(?:(?:29|30)[\.](?:0[4,6,9]|11)))[\.](?:19|[2-3][0-9])\d\d)|(?:29[\.]02[\.](?:19|[2-3][0-9])(?:00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$/.test(
|
|
101
|
+
v,
|
|
102
|
+
)
|
|
103
|
+
) {
|
|
100
104
|
return true;
|
|
101
105
|
} else {
|
|
102
106
|
return t('rules.date');
|
|
@@ -108,8 +112,13 @@ export const rules = {
|
|
|
108
112
|
age18ByDate: [(v: any) => Math.abs(new Date(Date.now() - new Date(formatDate(v)!).getTime()).getUTCFullYear() - 1970) >= 18 || t('rules.age18')],
|
|
109
113
|
birthDate: [
|
|
110
114
|
(v: any) => {
|
|
115
|
+
if (v === null || v == '') return true;
|
|
111
116
|
if (new Date(formatDate(v)!) > new Date(Date.now())) return t('rules.exceedDate');
|
|
112
|
-
if (
|
|
117
|
+
if (
|
|
118
|
+
/^(?:(?:(?:(?:0[1-9]|1[0-9]|2[0-8])[\.](?:0[1-9]|1[012]))|(?:(?:29|30|31)[\.](?:0[13578]|1[02]))|(?:(?:29|30)[\.](?:0[4,6,9]|11)))[\.](?:19|[2-3][0-9])\d\d)|(?:29[\.]02[\.](?:19|[2-3][0-9])(?:00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96))$/.test(
|
|
119
|
+
v,
|
|
120
|
+
)
|
|
121
|
+
) {
|
|
113
122
|
return true;
|
|
114
123
|
} else {
|
|
115
124
|
return t('rules.date');
|