diff --git a/src/components/base/BaseCategorySelection.vue b/src/components/base/BaseCategorySelection.vue index 0b78313..acd1705 100644 --- a/src/components/base/BaseCategorySelection.vue +++ b/src/components/base/BaseCategorySelection.vue @@ -5,7 +5,9 @@ base-input( placeholder="Поиск", @keyup.enter="searchCategory", + @input="searchCategory", v-model="searchBenefit", + debounce="100", outlined, :width="300", iconLeft @@ -31,13 +33,13 @@ .buttons-group.flex.py-4.px-8.justify-center base-button.text-base.font-semibold(outlined, :size="40", @click="closeModalCategories") Отменить base-button.text-base.font-semibold( - v-if="selected.length > 0", + v-if="selected[0]?.id", :size="40", @click="saveCategories(selected[0])" ) Сохранить .right-side.flex.px-14.font-bold.relative q-icon(name="app:icon-cancel").text-sm.absolute.top-4.right-4.cursor-pointer(@click="closeModalCategories") - .flex.py-10.gap-y-6.flex-col(v-if="selected.length > 0 && selected[0]?.name !== 'Без льготы'") + .flex.py-10.gap-y-6.flex-col(v-if="selected[0]?.id && selected[0]?.name !== 'Без льготы'") .flex.text-6xl {{selected[0]?.name}} .flex.text-xm.flex-col.gap-y-3 Критерии: .flex.flex-col.gap-y-2 @@ -69,6 +71,7 @@ export default { closeModalCategories: Function, saveCategories: Function, showModal: Boolean, + basic: Object, }, data() { return { @@ -103,7 +106,28 @@ export default { showModal: { immediate: true, handler(newVal) { - if (!newVal) this.searchBenefit = ""; + if (!newVal) { + this.searchBenefit = ""; + } else { + this.selected.push( + this.benefitData.find((e) => e.name === "Без льготы") + ); + } + }, + }, + benefitData: { + immediate: true, + deep: true, + handler() { + if (this.benefitData && this.showModal && !this.basic.id) { + this.selected.push( + this.benefitData.find((e) => e.name === "Без льготы") + ); + } else if (this.basic.id) { + this.selected.push( + this.benefitData.find((e) => e.id === this.basic.id) + ); + } }, }, }, diff --git a/src/components/base/BaseInput.vue b/src/components/base/BaseInput.vue index 8caeb18..8c2e7a4 100644 --- a/src/components/base/BaseInput.vue +++ b/src/components/base/BaseInput.vue @@ -24,6 +24,7 @@ :square="square", :standout="standout" :accept="accept", + :debounce="debounce", hide-bottom-space ) template(v-slot:prepend, v-if="iconLeft") @@ -75,6 +76,7 @@ export default { default: "", }, mask: String, + debounce: [String, Number], width: Number, maxLength: Number, textColor: String, diff --git a/src/pages/newMedicalCard/components/BasicDataForms/InsuranceForm.vue b/src/pages/newMedicalCard/components/BasicDataForms/InsuranceForm.vue index fd5c3f8..f194858 100644 --- a/src/pages/newMedicalCard/components/BasicDataForms/InsuranceForm.vue +++ b/src/pages/newMedicalCard/components/BasicDataForms/InsuranceForm.vue @@ -57,6 +57,7 @@ :close-modal-categories="closeModalCategories", :save-categories="saveCategories", :show-modal="showModalCategories", + :basic="basic.benefit", @search="filterDataBenefit" ) .flex.font-medium.text-smm.absolute.top-11( @@ -81,7 +82,7 @@ q-icon.my-auto.text-lg.label-field.cursor-pointer( size="18px", name="app:icon-copy", - v-if="checkCopiedFields(field.key)", + v-if="checkCopiedFields(field.key, basic[insurance.insuranceKey])", @click="copyValue(basic[insurance.insuranceKey][field.key])" ) @@ -142,8 +143,12 @@ export default { localStorage.removeItem("searchBenefit", text); } }, - checkCopiedFields(key) { - return !this.isEdit && this.copiedFields.some((elem) => elem === key); + checkCopiedFields(key, item) { + return ( + !this.isEdit && + this.copiedFields.some((elem) => elem === key) && + item[key] + ); }, copyValue(text) { navigator.clipboard.writeText(text); diff --git a/src/pages/newMedicalCard/utils/medicalConfig.js b/src/pages/newMedicalCard/utils/medicalConfig.js index 0eed8f9..a739be9 100644 --- a/src/pages/newMedicalCard/utils/medicalConfig.js +++ b/src/pages/newMedicalCard/utils/medicalConfig.js @@ -292,29 +292,6 @@ export const baseInfoMenu = [ ]; export const baseInsuranceForm = [ - { - insuranceLabel: "ДМС", - insuranceKey: "insuranceDMS", - fields: [ - { - key: "series", - label: "Серия", - type: "text", - inputMask: "####", - }, - { - key: "number", - label: "Номер", - type: "text", - inputMask: "####-####-####", - }, - { - key: "photo", - label: "Фото ДМС", - type: "avatar", - }, - ], - }, { insuranceLabel: "ОМС", insuranceKey: "insuranceOMS", @@ -338,6 +315,29 @@ export const baseInsuranceForm = [ }, ], }, + { + insuranceLabel: "ДМС", + insuranceKey: "insuranceDMS", + fields: [ + { + key: "series", + label: "Серия", + type: "text", + inputMask: "####", + }, + { + key: "number", + label: "Номер", + type: "text", + inputMask: "####-####-####", + }, + { + key: "photo", + label: "Фото ДМС", + type: "avatar", + }, + ], + }, { insuranceLabel: "Категория льготы", insuranceKey: "benefit",