hl-core 0.0.10-beta.20 → 0.0.10-beta.21

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.
@@ -1,181 +1,179 @@
1
1
  <template>
2
- <base-fade-transition>
3
- <section v-if="firstQuestionList && firstQuestionList.length && (isFirstPanelOnRight ? true : !firstPanel) && !secondPanel" class="flex flex-col shrink grow max-h-[90vh]">
4
- <base-form-section v-if="$dataStore.isUnderwriter()" class="mx-[10px]">
5
- <base-rounded-select v-model="filterType" class="w-[200px]" :items="filterItems" :label="$dataStore.t('labels.filter')" hide-details />
6
- </base-form-section>
7
- <section :class="[$styles.blueBgLight, $styles.rounded]" class="mx-[10px] my-[14px] p-4 flex flex-col gap-4">
8
- <base-form-toggle
9
- v-model="answerToAll"
10
- :title="$dataStore.t('questionnaireType.answerAllNo')"
11
- :disabled="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
12
- :has-border="false"
13
- @clicked="handleToggler"
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
- <v-form ref="vForm" class="grow shrink overflow-y-scroll" @submit="submitForm">
17
- <section
18
- v-if="firstQuestionList.filter(i => i.first.definedAnswers === 'N').length"
19
- :class="[$styles.blueBgLight, $styles.rounded]"
20
- class="mx-[10px] p-4 flex flex-col gap-4"
21
- >
22
- <base-form-input
23
- v-for="(question, index) in firstQuestionList.filter(i => i.first.definedAnswers === 'N')"
24
- :key="index"
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-form-text-section
84
- v-for="(question, index) in firstQuestions.filter(i => i.first.definedAnswers === 'D')"
85
- :key="index"
86
- :class="[currentQuestion?.first.id === question.first.id && $dataStore.rightPanel.open ? $styles.greenBorder : '']"
87
- >
88
- <span :class="[$styles.textTitle]" class="border-b-[1px] border-b-[#F3F6FC] p-6 flex items-center justify-between"> {{ question.first.name }} </span>
89
- <div class="flex items-center justify-start gap-5 px-4 pt-4" :class="[$styles.textSimple]">
90
- <v-radio-group
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
- <div v-if="question.first.answerName === 'Да'" :class="[$styles.whiteText, $styles.textSimple]">
105
- <base-form-input
106
- v-model="question.first.answerText"
107
- :label="$dataStore.t('labels.inDetails')"
108
- :readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
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
- </base-form-text-section>
114
- </section>
115
- </v-form>
116
- <div class="px-[14px]">
117
- <base-btn
118
- class="my-[14px] self-center"
119
- :loading="isButtonLoading"
120
- :disabled="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
121
- @click="submitForm"
122
- :text="$dataStore.t('buttons.save')"
123
- />
124
- </div>
125
- </section>
126
- <base-btn
127
- v-if="currentQuestion && currentQuestion.second && currentQuestion.second.length && isFirstPanelOnRight ? false : firstPanel"
128
- class="!absolute z-10 self-center w-[96%] bottom-0"
129
- :text="$dataStore.t('buttons.save')"
130
- @click="submitSecondaryForm"
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 v-for="question in currentQuestion.second" :title="question.name" :key="question.name">
146
- <div v-if="question.definedAnswers === 'N'">
147
- <base-form-input
148
- v-if="question.answerType === 'T' || question.answerType === 'N'"
149
- v-model="question.answerText"
150
- class="border-t-[1px] border-t-[#F3F6FC]"
151
- :placeholder="$dataStore.t('labels.inputText')"
152
- :readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
153
- :rules="isSecondRequired ? $rules.required : []"
154
- />
155
- <base-form-input
156
- v-if="question.answerType === 'D'"
157
- v-model="question.answerText"
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
- :rules="isSecondRequired ? $rules.date : []"
162
- :maska="$maska.date"
163
- append-inner-icon="mdi mdi-calendar-blank-outline"
164
- />
96
+ inline
97
+ >
98
+ <v-radio label="Да" value="Да" />
99
+ <v-radio label="Нет" value="Нет" />
100
+ </v-radio-group>
165
101
  </div>
166
- <base-panel-input
167
- v-else
168
- :class="[$styles.textTitle, $styles.greenText]"
169
- :value="question.answerName ? question.answerName : 'Выбрать вариант ответа'"
170
- :readonly="formStore.isDisabled[whichSurvey] || !$dataStore.isTask()"
171
- :clearable="false"
172
- :error-messages="isSecondRequired ? (question.answerName ? [] : ['Выбрать вариант ответа']) : []"
173
- @click="openSecondPanel(question)"
174
- ></base-panel-input>
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
- </v-form>
177
- </section>
178
- </base-fade-transition>
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,7 +232,7 @@
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">
@@ -271,7 +271,7 @@ export default defineComponent({
271
271
  (formStore.applicationData.statusCode === 'Completed' || formStore.applicationData.statusCode === 'PreparationDossierForm' || dataStore.isActuary()),
272
272
  );
273
273
  const noDocuments = computed(() => {
274
- if (dataStore.isPension) return !showContract.value;
274
+ if (dataStore.isPension && (!formStore.signedDocumentList || !formStore.signedDocumentList.length)) return !showContract.value;
275
275
  return !formStore.signedDocumentList || !formStore.signedDocumentList.length;
276
276
  });
277
277
  const isUnderwriterDocuments = computed(