medical-form-wrapper(
id="insurance",
title="Страховка",
:is-loading-data="isLoadingData",
:is-check-change="isCheckChange",
:is-edit="isEdit",
:open-edit="openEdit",
:save="saveChange",
:cancel="cancelEdit"
)
q-form.form-wrap.gap-6.w-full(ref="insuranceForm", :no-error-focus="true")
.flex.flex-col.gap-2(v-for="insurance in insuranceConfig", :key="insurance.insuranceKey")
.font-semibold.text-sm.whitespace-nowrap {{insurance.insuranceLabel}}
.flex.w-full.items-center.gap-4(
v-for="field in insurance.fields",
:key="insurance.insuranceKey + field.key",
:style="{marginTop: field.label === 'Документы' ? '20px' : null}"
)
.label-field.font-sm.text-sm.whitespace-nowrap {{`${field.label} :`}}
.flex.gap-3.items-center.h-10(
v-if="field.type === 'photo'",
)
.flex.w-10.h-10.relative(v-if="insuranceData[insurance.insuranceKey]?.attachments?.photo")
img.rounded.avatar.object-cover(
:src="insuranceData[insurance.insuranceKey]?.attachments?.photo",
alt="AV"
)
q-badge.delete(
floating,
v-if="isEdit",
@click="removeImage(insurance?.insuranceKey, field?.key)",
rounded,
:style="{padding: 0}"
)
q-icon.cancel-icon(name="app:cancel-mini", size="16px")
.replace-photo.font-medium.text-base.cursor-pointer(
v-if="isEdit",
@click="changeModal(insurance.insuranceKey)"
) {{ insuranceData[insurance.insuranceKey]?.attachments?.photo ? "Заменить фото" : "Добавить фото" }}
base-modal(
v-if="insurance.insuranceKey === photoId"
v-model="showModal",
title="Загрузить изображение"
)
base-upload-photo(
:key="insurance.insuranceKey"
v-model="insuranceData[photoId][field.key]"
:confirm-upload="confirmChangePhoto"
)
.flex.h-10.relative.gap-x-2.w-full(v-else-if="field.type === 'select'")
.w-full.flex.items-center.change.px-4.rounded {{selectCategory(basic[insurance.insuranceKey][field.key])}}
q-btn.change.flex.w-7.h-9.rounded-md(
v-if="isEdit",
@click="openModalCategories",
dense,
padding="8px"
)
q-icon.icon(name="app:folder", size="24px")
base-modal(
default-padding,
hide-header,
v-model="showModalCategories",
title="Категории"
)
base-category-selection(
:benefit-data="benefitData",
:close-modal-categories="closeModalCategories",
:save-categories="saveCategories",
:show-modal="showModalCategories",
:basic="basic.benefit",
@search="filterDataBenefit"
)
.flex.font-medium.text-smm.absolute.top-11(
v-if="basic?.benefit[insurance?.discount]",
:style="{color: 'var(--font-grey-color)'}"
)
span Процент скидки:
span(
:style="{color: 'var(--font-dark-blue-color)'}"
) {{"\xa0" + basic?.benefit[insurance?.discount] + "%"}}
.w-full.flex.flex-col.relative(v-else)
base-input(
v-model="insuranceData[insurance.insuranceKey][field.key]",
@update:model-value="checkChangeInput",
:readonly="!isEdit",
size="M",
width="100%",
:name="insurance.insuranceKey + ':' + field.key",
:rule="[(val) => checkFields(val, insurance.insuranceKey, field.rules)]"
)
q-icon.my-auto.cursor-pointer.copy(
size="20px",
name="app:copy",
v-if="checkCopiedFields(field.key, insuranceData[insurance.insuranceKey])",
@click="copyValue(insuranceData[insurance.insuranceKey][field.key])"
)