medical-form-wrapper(
:title="data.title",
:is-edit="change",
:open-edit="openCard",
:cancel="closeCard",
:tag="fillInspection || change"
)
.protocol-body.flex.flex-col
.flex.items-center.gap-x-11px(:class="{'open-header': change || fillInspection}")
.flex.flex-col.gap-y-4(:class="{'changed': change || fillInspection}")
.flex.flex-col.gap-y-1(:class="{'open-textarea': change || fillInspection}")
.tag-wrap.flex.gap-x-1.gap-y-1(v-if="!fillInspection")
.tag.flex.items-center.px-3.cursor-pointer.font-medium.text-smm(
v-for="tag in data.results.tags", :key="tag.id"
) {{tag.label}}
base-input.px-3(v-if="change || fillInspection", type="textarea", autogrow, borderless, placeholder="Введите жалобу...")
template(v-if="!(change || fillInspection)", v-for="file in data.results.files")
.wrap.flex.flex-col.gap-1.gap-y-3(v-if="file?.data?.length")
.title.font-semibold.text-smm.mb-2 {{file.name}}
.wrap.flex.gap-x-1.gap-y-1
.flex.gap-x-2.items-center.pl-2.pr-4.py-2.gap-y-3(
v-for="item in file.data"
:class="{'photo-field': checkedName(file.name), 'scan-field': file.name === 'Сканы'}"
)
q-avatar(:size="checkedName(file.name) ? '24px' : '40px'", :rounded="!checkedName(file.name)")
img.h-10.w-10.object-cover(
:src="checkedName(file.name) ? data.iconDictionary[item.name.substr(item.name.lastIndexOf('.') + 1)] : item.file"
)
.doc-text.font-medium.text-smm(v-if="checkedName(file.name)") {{item.name}}
.flex.flex-col.gap-y-1(v-else)
.doc-text.font-medium.text-smm {{item.name.substr(0, item.name.lastIndexOf('.'))}}
.title.font-medium.text-xsx {{item.size + " Мб"}}
.filter.flex.flex-col.gap-y-4(v-if="change || fillInspection")
.flex.gap-x-2
base-input(placeholder="Поиск", outlined, :width="232", iconLeft)
q-icon(name="app:icon-search", size="20px", style="color: var(--font-grey-color)")
.button
q-btn(
icon="filter_alt",
:style="{width: '40px', height: '40px', color: 'var(--font-grey-color)'}",
padding="0"
)
.button
q-btn(
icon="app:sort-number",
:style="{width: '40px', height: '40px', color: 'var(--font-grey-color)'}",
padding="0"
)
.field.flex.flex-col.overflow-y-scroll
.checkbox.flex.flex-col(v-for="complaint in textSorting(data.results.complaints)")
.letter.flex.items-center.font-bold.justify-center {{ complaint.sym }}
.line.flex.gap-x-4.h-9.items-center(v-for="name in complaint?.array")
q-checkbox(
dense,
v-model="data.selected",
:val="name?.label",
:style="{border: 'none', width: '16px', height: '16px'}"
)
.name.flex.items-center.font-medium.text-smm {{ name?.label }}
.protocol-data.flex.gap-x-20(v-if="change || fillInspection")
.flex.flex-col.gap-y-3(v-for="file in data.results.files")
.title.text-smm.font-semibold {{file.name}}
.download.flex.relative
base-input(
@update:model-value="(e) => addNewFiles(e, file.name)",
doc,
:width="548",
type="file",
id="upload",
:accept="checkedName(file.name) ? '.xlsx, .xls, .doc, .docx, .pdf, .odt' : 'image/*'",
borderless,
multiple
)
.text.flex.flex-col.items-center.justify-center.absolute.font-medium.text-smm
span {{checkedName(file.name) ? 'Загрузите документ' : 'Загрузите скан документа'}}
label.label.cursor-pointer(for="upload") с компьютера
span или перетащите его в это поле
.wrap.gap-1.flex(v-if="file?.data?.length")
.flex.gap-x-2.items-center(
v-for="item in file.data",
:class="{'photo-field': checkedName(file.name), 'scan-field': file.name === 'Сканы'}"
)
q-avatar(:size="checkedName(file.name) ? '24px' : '40px'", :rounded="!checkedName(file.name)")
img.h-10.w-10.object-cover(
:src="checkedName(file.name) ? data.iconDictionary[item.name.substr(item.name.lastIndexOf('.') + 1)] : item.file"
)
.doc-text.font-medium.text-smm(v-if="checkedName(file.name)") {{item.name}}
.flex.flex-col.gap-y-1(v-else)
.doc-text.font-medium.text-smm {{item.name.substr(0, item.name.lastIndexOf('.'))}}
.title.font-medium.text-xsx {{item.size + " Мб"}}