hl-core 0.0.10-beta.4 → 0.0.10-beta.40
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/README.md +0 -2
- package/api/base.api.ts +331 -191
- package/api/interceptors.ts +3 -5
- package/components/Complex/TextBlock.vue +2 -0
- package/components/Dialog/Dialog.vue +7 -1
- package/components/Dialog/FamilyDialog.vue +2 -0
- package/components/Form/DigitalDocument.vue +52 -0
- package/components/Form/DynamicForm.vue +1 -0
- package/components/Form/FormData.vue +1 -0
- package/components/Form/ManagerAttachment.vue +17 -8
- package/components/Form/ProductConditionsBlock.vue +12 -6
- package/components/Input/Datepicker.vue +5 -0
- package/components/Input/DynamicInput.vue +2 -0
- package/components/Input/FormInput.vue +7 -0
- package/components/Input/OtpInput.vue +25 -0
- package/components/Input/PanelInput.vue +1 -0
- package/components/Input/RoundedInput.vue +4 -0
- package/components/Input/RoundedSelect.vue +4 -0
- package/components/Input/SwitchInput.vue +2 -0
- package/components/Input/TextAreaField.vue +71 -0
- package/components/Input/TextInput.vue +2 -0
- package/components/Layout/Drawer.vue +2 -0
- package/components/Menu/MenuNav.vue +1 -1
- package/components/Pages/Anketa.vue +168 -169
- package/components/Pages/Auth.vue +2 -0
- package/components/Pages/ContragentForm.vue +2 -1
- package/components/Pages/Documents.vue +432 -59
- package/components/Pages/MemberForm.vue +334 -160
- package/components/Pages/ProductConditions.vue +800 -226
- package/components/Panel/PanelHandler.vue +280 -121
- package/components/Transitions/Animation.vue +2 -0
- package/components/Utilities/Chip.vue +3 -1
- package/components/Utilities/JsonViewer.vue +1 -2
- package/composables/classes.ts +133 -49
- package/composables/constants.ts +43 -0
- package/composables/fields.ts +6 -4
- package/composables/index.ts +293 -7
- package/composables/styles.ts +8 -24
- package/configs/pwa.ts +1 -7
- package/layouts/clear.vue +1 -1
- package/layouts/default.vue +1 -1
- package/layouts/full.vue +1 -1
- package/locales/ru.json +79 -19
- package/nuxt.config.ts +10 -13
- package/package.json +12 -12
- package/plugins/head.ts +2 -1
- package/store/data.store.ts +765 -530
- package/store/member.store.ts +18 -6
- package/store/rules.ts +22 -2
- package/types/enum.ts +32 -2
- package/types/env.d.ts +2 -2
- package/types/form.ts +71 -74
- package/types/index.ts +921 -873
|
@@ -1,181 +1,179 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
<section v-if="
|
|
4
|
-
<base-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
<section v-if="firstQuestionList && firstQuestionList.length && (isFirstPanelOnRight ? true : !firstPanel) && !secondPanel" class="flex flex-col shrink grow max-h-[85svh]">
|
|
3
|
+
<base-form-section v-if="$dataStore.isUnderwriter()" class="mx-[10px]">
|
|
4
|
+
<base-rounded-select v-model="filterType" class="w-[200px]" :items="filterItems" :label="$dataStore.t('labels.filter')" hide-details />
|
|
5
|
+
</base-form-section>
|
|
6
|
+
<section :class="[$styles.blueBgLight, $styles.rounded]" class="mx-[10px] my-[14px] p-4 flex flex-col gap-4">
|
|
7
|
+
<base-form-toggle
|
|
8
|
+
v-model="answerToAll"
|
|
9
|
+
:title="$dataStore.t('questionnaireType.answerAllNo')"
|
|
10
|
+
:disabled="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
11
|
+
:has-border="false"
|
|
12
|
+
@clicked="handleToggler"
|
|
13
|
+
/>
|
|
14
|
+
</section>
|
|
15
|
+
<v-form ref="vForm" class="grow shrink overflow-y-scroll" @submit="submitForm">
|
|
16
|
+
<section
|
|
17
|
+
v-if="firstQuestionList.filter(i => i.first.definedAnswers === 'N').length"
|
|
18
|
+
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
19
|
+
class="mx-[10px] p-4 flex flex-col gap-4"
|
|
20
|
+
>
|
|
21
|
+
<base-form-input
|
|
22
|
+
v-for="(question, index) in firstQuestionList.filter(i => i.first.definedAnswers === 'N')"
|
|
23
|
+
:key="index"
|
|
24
|
+
v-model="question.first.answerText"
|
|
25
|
+
:label="question.first.name"
|
|
26
|
+
:maska="$maska.threeDigit"
|
|
27
|
+
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
28
|
+
:rules="$rules.required"
|
|
14
29
|
/>
|
|
15
30
|
</section>
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
v-model="question.first.answerText"
|
|
26
|
-
:label="question.first.name"
|
|
27
|
-
:maska="$maska.threeDigit"
|
|
28
|
-
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
29
|
-
:rules="$rules.required"
|
|
30
|
-
/>
|
|
31
|
-
</section>
|
|
32
|
-
<section
|
|
33
|
-
v-if="firstQuestions.filter(i => i.first.definedAnswers === 'Y').length"
|
|
34
|
-
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
35
|
-
class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4"
|
|
36
|
-
>
|
|
37
|
-
<base-form-text-section
|
|
38
|
-
v-for="(question, index) in firstQuestions.filter(i => i.first.definedAnswers === 'Y')"
|
|
39
|
-
:key="index"
|
|
40
|
-
:class="[currentQuestion?.first.id === question.first.id && $dataStore.rightPanel.open ? $styles.greenBorder : '']"
|
|
41
|
-
>
|
|
42
|
-
<base-animation>
|
|
43
|
-
<div
|
|
44
|
-
v-if="question.first.answerName === 'Да' && question.second"
|
|
45
|
-
:class="[$styles.greenBg, $styles.whiteText, $styles.textSimple]"
|
|
46
|
-
class="rounded-t-lg pl-6 py-1 cursor-pointer"
|
|
47
|
-
@click="openFirstPanel(question)"
|
|
48
|
-
>
|
|
49
|
-
{{ $dataStore.t('questionnaireType.pleaseAnswer', { text: question.second.length }) }}
|
|
50
|
-
</div>
|
|
51
|
-
</base-animation>
|
|
52
|
-
<span :class="[$styles.textTitle]" class="border-b-[1px] border-b-[#F3F6FC] p-6 flex items-center justify-between">
|
|
53
|
-
{{ question.first.name }}
|
|
54
|
-
<base-animation>
|
|
55
|
-
<i
|
|
56
|
-
v-if="question.first.answerName === 'Да' && question.second && question.second.length"
|
|
57
|
-
class="mdi mdi-chevron-right text-2xl cursor-pointer"
|
|
58
|
-
@click="openFirstPanel(question)"
|
|
59
|
-
></i>
|
|
60
|
-
</base-animation>
|
|
61
|
-
</span>
|
|
62
|
-
<div class="flex items-center justify-start gap-5 px-4 pt-4" :class="[$styles.textSimple]">
|
|
63
|
-
<v-radio-group
|
|
64
|
-
v-model="question.first.answerName"
|
|
65
|
-
class="anketa-radio"
|
|
66
|
-
:true-icon="`mdi-radiobox-marked ${$styles.greenText}`"
|
|
67
|
-
false-icon="mdi-radiobox-blank text-[#636363]"
|
|
68
|
-
:rules="$rules.required"
|
|
69
|
-
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
70
|
-
inline
|
|
71
|
-
>
|
|
72
|
-
<v-radio label="Да" value="Да" />
|
|
73
|
-
<v-radio label="Нет" value="Нет" />
|
|
74
|
-
</v-radio-group>
|
|
75
|
-
</div>
|
|
76
|
-
</base-form-text-section>
|
|
77
|
-
</section>
|
|
78
|
-
<section
|
|
79
|
-
v-if="firstQuestions.filter(i => i.first.definedAnswers === 'D').length"
|
|
80
|
-
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
81
|
-
class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4"
|
|
31
|
+
<section
|
|
32
|
+
v-if="firstQuestions.filter(i => i.first.definedAnswers === 'Y').length"
|
|
33
|
+
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
34
|
+
class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4"
|
|
35
|
+
>
|
|
36
|
+
<base-form-text-section
|
|
37
|
+
v-for="(question, index) in firstQuestions.filter(i => i.first.definedAnswers === 'Y')"
|
|
38
|
+
:key="index"
|
|
39
|
+
:class="[currentQuestion?.first.id === question.first.id && $dataStore.rightPanel.open ? $styles.greenBorder : '']"
|
|
82
40
|
>
|
|
83
|
-
<base-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
v-model="question.first.answerName"
|
|
92
|
-
class="anketa-radio"
|
|
93
|
-
:true-icon="`mdi-radiobox-marked ${$styles.greenText}`"
|
|
94
|
-
false-icon="mdi-radiobox-blank text-[#636363]"
|
|
95
|
-
:rules="$rules.required"
|
|
96
|
-
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
97
|
-
inline
|
|
98
|
-
>
|
|
99
|
-
<v-radio label="Да" value="Да" />
|
|
100
|
-
<v-radio label="Нет" value="Нет" />
|
|
101
|
-
</v-radio-group>
|
|
41
|
+
<base-animation>
|
|
42
|
+
<div
|
|
43
|
+
v-if="question.first.answerName === 'Да' && question.second"
|
|
44
|
+
:class="[$styles.greenBg, $styles.whiteText, $styles.textSimple]"
|
|
45
|
+
class="rounded-t-lg pl-6 py-1 cursor-pointer"
|
|
46
|
+
@click="openFirstPanel(question)"
|
|
47
|
+
>
|
|
48
|
+
{{ $dataStore.t('questionnaireType.pleaseAnswer', { text: question.second.length }) }}
|
|
102
49
|
</div>
|
|
50
|
+
</base-animation>
|
|
51
|
+
<span :class="[$styles.textTitle]" class="border-b-[1px] border-b-[#F3F6FC] p-6 flex items-center justify-between">
|
|
52
|
+
{{ question.first.name }}
|
|
103
53
|
<base-animation>
|
|
104
|
-
<
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
:rules="$rules.required"
|
|
110
|
-
/>
|
|
111
|
-
</div>
|
|
54
|
+
<i
|
|
55
|
+
v-if="question.first.answerName === 'Да' && question.second && question.second.length"
|
|
56
|
+
class="mdi mdi-chevron-right text-2xl cursor-pointer"
|
|
57
|
+
@click="openFirstPanel(question)"
|
|
58
|
+
></i>
|
|
112
59
|
</base-animation>
|
|
113
|
-
</
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
<section
|
|
133
|
-
ref="firstPanelSection"
|
|
134
|
-
v-if="currentQuestion && currentQuestion.second && isFirstPanelOnRight ? false : firstPanel"
|
|
135
|
-
class="flex flex-col px-[10px] pb-[14px]"
|
|
136
|
-
:class="[$styles.scrollPage]"
|
|
137
|
-
>
|
|
138
|
-
<v-form
|
|
139
|
-
v-if="currentQuestion"
|
|
60
|
+
</span>
|
|
61
|
+
<div class="flex items-center justify-start gap-5 px-4 pt-4" :class="[$styles.textSimple]">
|
|
62
|
+
<v-radio-group
|
|
63
|
+
v-model="question.first.answerName"
|
|
64
|
+
class="anketa-radio"
|
|
65
|
+
:true-icon="`mdi-radiobox-marked ${$styles.greenText}`"
|
|
66
|
+
false-icon="mdi-radiobox-blank text-[#636363]"
|
|
67
|
+
:rules="$rules.required"
|
|
68
|
+
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
69
|
+
inline
|
|
70
|
+
>
|
|
71
|
+
<v-radio label="Да" value="Да" />
|
|
72
|
+
<v-radio label="Нет" value="Нет" />
|
|
73
|
+
</v-radio-group>
|
|
74
|
+
</div>
|
|
75
|
+
</base-form-text-section>
|
|
76
|
+
</section>
|
|
77
|
+
<section
|
|
78
|
+
v-if="firstQuestions.filter(i => i.first.definedAnswers === 'D').length"
|
|
140
79
|
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
141
80
|
class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4"
|
|
142
|
-
ref="vSecondaryForm"
|
|
143
|
-
@submit="submitSecondaryForm"
|
|
144
81
|
>
|
|
145
|
-
<base-form-text-section
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
class="border-t-[1px] border-t-[#F3F6FC]"
|
|
159
|
-
:placeholder="$dataStore.t('form.date')"
|
|
82
|
+
<base-form-text-section
|
|
83
|
+
v-for="(question, index) in firstQuestions.filter(i => i.first.definedAnswers === 'D')"
|
|
84
|
+
:key="index"
|
|
85
|
+
:class="[currentQuestion?.first.id === question.first.id && $dataStore.rightPanel.open ? $styles.greenBorder : '']"
|
|
86
|
+
>
|
|
87
|
+
<span :class="[$styles.textTitle]" class="border-b-[1px] border-b-[#F3F6FC] p-6 flex items-center justify-between"> {{ question.first.name }} </span>
|
|
88
|
+
<div class="flex items-center justify-start gap-5 px-4 pt-4" :class="[$styles.textSimple]">
|
|
89
|
+
<v-radio-group
|
|
90
|
+
v-model="question.first.answerName"
|
|
91
|
+
class="anketa-radio"
|
|
92
|
+
:true-icon="`mdi-radiobox-marked ${$styles.greenText}`"
|
|
93
|
+
false-icon="mdi-radiobox-blank text-[#636363]"
|
|
94
|
+
:rules="$rules.required"
|
|
160
95
|
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
96
|
+
inline
|
|
97
|
+
>
|
|
98
|
+
<v-radio label="Да" value="Да" />
|
|
99
|
+
<v-radio label="Нет" value="Нет" />
|
|
100
|
+
</v-radio-group>
|
|
165
101
|
</div>
|
|
166
|
-
<base-
|
|
167
|
-
v-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
102
|
+
<base-animation>
|
|
103
|
+
<div v-if="question.first.answerName === 'Да'" :class="[$styles.whiteText, $styles.textSimple]">
|
|
104
|
+
<base-form-input
|
|
105
|
+
v-model="question.first.answerText"
|
|
106
|
+
:label="$dataStore.t('labels.inDetails')"
|
|
107
|
+
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
108
|
+
:rules="$rules.required"
|
|
109
|
+
/>
|
|
110
|
+
</div>
|
|
111
|
+
</base-animation>
|
|
175
112
|
</base-form-text-section>
|
|
176
|
-
</
|
|
177
|
-
</
|
|
178
|
-
|
|
113
|
+
</section>
|
|
114
|
+
</v-form>
|
|
115
|
+
<div class="px-[14px]">
|
|
116
|
+
<base-btn
|
|
117
|
+
class="my-[14px] self-center"
|
|
118
|
+
:loading="isButtonLoading"
|
|
119
|
+
:disabled="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
120
|
+
@click="submitForm"
|
|
121
|
+
:text="$dataStore.t('buttons.save')"
|
|
122
|
+
/>
|
|
123
|
+
</div>
|
|
124
|
+
</section>
|
|
125
|
+
<base-btn
|
|
126
|
+
v-if="currentQuestion && currentQuestion.second && currentQuestion.second.length && isFirstPanelOnRight ? false : firstPanel"
|
|
127
|
+
class="!absolute z-10 self-center w-[96%] bottom-0"
|
|
128
|
+
:text="$dataStore.t('buttons.save')"
|
|
129
|
+
@click="submitSecondaryForm"
|
|
130
|
+
/>
|
|
131
|
+
<section
|
|
132
|
+
ref="firstPanelSection"
|
|
133
|
+
v-if="currentQuestion && currentQuestion.second && isFirstPanelOnRight ? false : firstPanel"
|
|
134
|
+
class="flex flex-col px-[10px] pb-[14px]"
|
|
135
|
+
:class="[$styles.scrollPage]"
|
|
136
|
+
>
|
|
137
|
+
<v-form
|
|
138
|
+
v-if="currentQuestion"
|
|
139
|
+
:class="[$styles.blueBgLight, $styles.rounded]"
|
|
140
|
+
class="mx-[10px] mt-[14px] p-4 flex flex-col gap-4"
|
|
141
|
+
ref="vSecondaryForm"
|
|
142
|
+
@submit="submitSecondaryForm"
|
|
143
|
+
>
|
|
144
|
+
<base-form-text-section v-for="question in currentQuestion.second" :title="question.name" :key="question.name">
|
|
145
|
+
<div v-if="question.definedAnswers === 'N'">
|
|
146
|
+
<base-form-input
|
|
147
|
+
v-if="question.answerType === 'T' || question.answerType === 'N'"
|
|
148
|
+
v-model="question.answerText"
|
|
149
|
+
class="border-t-[1px] border-t-[#F3F6FC]"
|
|
150
|
+
:placeholder="$dataStore.t('labels.inputText')"
|
|
151
|
+
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
152
|
+
:rules="isSecondRequired ? $rules.required : []"
|
|
153
|
+
/>
|
|
154
|
+
<base-form-input
|
|
155
|
+
v-if="question.answerType === 'D'"
|
|
156
|
+
v-model="question.answerText"
|
|
157
|
+
class="border-t-[1px] border-t-[#F3F6FC]"
|
|
158
|
+
:placeholder="$dataStore.t('form.date')"
|
|
159
|
+
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
160
|
+
:rules="isSecondRequired ? $rules.date : []"
|
|
161
|
+
:maska="$maska.date"
|
|
162
|
+
append-inner-icon="mdi mdi-calendar-blank-outline"
|
|
163
|
+
/>
|
|
164
|
+
</div>
|
|
165
|
+
<base-panel-input
|
|
166
|
+
v-else
|
|
167
|
+
:class="[$styles.textTitle, $styles.greenText]"
|
|
168
|
+
:value="question.answerName ? question.answerName : 'Выбрать вариант ответа'"
|
|
169
|
+
:readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
|
|
170
|
+
:clearable="false"
|
|
171
|
+
:error-messages="isSecondRequired ? (question.answerName ? [] : ['Выбрать вариант ответа']) : []"
|
|
172
|
+
@click="openSecondPanel(question)"
|
|
173
|
+
></base-panel-input>
|
|
174
|
+
</base-form-text-section>
|
|
175
|
+
</v-form>
|
|
176
|
+
</section>
|
|
179
177
|
<Teleport v-if="secondPanel" to="#right-panel-actions">
|
|
180
178
|
<div :class="[$styles.scrollPage]" class="flex flex-col items-center">
|
|
181
179
|
<base-rounded-input v-model="searchQuery" :label="$dataStore.t('labels.search')" class="w-full p-2" :hide-details="true" />
|
|
@@ -234,11 +232,12 @@
|
|
|
234
232
|
</v-form>
|
|
235
233
|
</div>
|
|
236
234
|
</Teleport>
|
|
237
|
-
<base-scroll-buttons v-if="firstQuestionList && firstQuestionList.length" @up="scrollForm('up')" @down="scrollForm('down')" />
|
|
235
|
+
<base-scroll-buttons v-if="firstQuestionList && firstQuestionList.length" class="bottom-[20%]" @up="scrollForm('up')" @down="scrollForm('down')" />
|
|
238
236
|
</template>
|
|
239
237
|
|
|
240
238
|
<script lang="ts">
|
|
241
239
|
import { Value } from '../../composables/classes';
|
|
240
|
+
import type { AnketaBody, AnketaSecond, AnswerName } from '../../types';
|
|
242
241
|
|
|
243
242
|
export default defineComponent({
|
|
244
243
|
setup() {
|
|
@@ -274,7 +273,7 @@ export default defineComponent({
|
|
|
274
273
|
const currentSecond = ref<AnketaSecond>();
|
|
275
274
|
const isPanelLoading = ref<boolean>(false);
|
|
276
275
|
const searchQuery = ref<string>('');
|
|
277
|
-
const isFirstPanelOnRight = dataStore.isUnderwriter()
|
|
276
|
+
const isFirstPanelOnRight = dataStore.isUnderwriter();
|
|
278
277
|
|
|
279
278
|
const whichMember = computed(() => ('member' in route.query && !!route.query.member ? (route.query.member as 'insured' | 'policyholder') : 'insured'));
|
|
280
279
|
const isSecondRequired = computed(() => dataStore.controls.isSecondAnketaRequired);
|
|
@@ -423,7 +422,7 @@ export default defineComponent({
|
|
|
423
422
|
if (firstQuestionList.value) {
|
|
424
423
|
if (answerToAll.value) {
|
|
425
424
|
firstQuestionList.value.forEach((question: AnketaBody, index: number) => {
|
|
426
|
-
if (question.first.answerType === 'T') {
|
|
425
|
+
if (question.first.answerType === 'T' || question.first.answerType === 'D') {
|
|
427
426
|
firstQuestionList.value![index].first.answerName = 'Нет' as AnswerName;
|
|
428
427
|
}
|
|
429
428
|
});
|
|
@@ -433,7 +432,7 @@ export default defineComponent({
|
|
|
433
432
|
}
|
|
434
433
|
} else {
|
|
435
434
|
firstQuestionList.value.forEach((question: AnketaBody, index: number) => {
|
|
436
|
-
if (question.first.answerType === 'T') {
|
|
435
|
+
if (question.first.answerType === 'T' || question.first.answerType === 'D') {
|
|
437
436
|
firstQuestionList.value![index].first.answerName = null;
|
|
438
437
|
}
|
|
439
438
|
});
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
<base-form-input v-model.trim="member.registrationStreet" :rules="$rules.required" :label="$dataStore.t('form.Street')" :readonly="disabled" :clearable="!disabled" />
|
|
125
125
|
<base-form-input
|
|
126
126
|
v-model.trim="member.registrationNumberHouse"
|
|
127
|
-
:rules="$rules.
|
|
127
|
+
:rules="[...$rules.required, $rules.lengthLimit(member.registrationNumberHouse, 10)]"
|
|
128
128
|
:label="$dataStore.t('form.NumberHouse')"
|
|
129
129
|
:readonly="disabled"
|
|
130
130
|
:clearable="!disabled"
|
|
@@ -289,6 +289,7 @@
|
|
|
289
289
|
<script lang="ts">
|
|
290
290
|
import { StoreMembers } from '../../types/enum';
|
|
291
291
|
import { Member, Value } from '../../composables/classes';
|
|
292
|
+
import type { ESBDValidationType } from '../../types';
|
|
292
293
|
|
|
293
294
|
export default defineComponent({
|
|
294
295
|
props: {
|