[WIP] Добавил модальное окно создания тэга на форму данных обследования, фикс компонента
This commit is contained in:
@@ -61,8 +61,9 @@
|
||||
)
|
||||
.name.flex.items-center.font-medium.text-smm {{ name }}
|
||||
.flex.h-10.w-10.absolute.right-4.bottom-4
|
||||
q-btn(color="primary", dense, padding="4px 12px")
|
||||
q-btn(@click="showModal = true", color="primary", dense, padding="4px 12px")
|
||||
q-icon(name="app:icon-plus", size="17px")
|
||||
tag-creation-form(:show-modal="showModal", :close-modal="closeModal", :create-tag="createTag")
|
||||
.flex.gap-x-20.w-full(v-if="change || fillInspection")
|
||||
.flex.flex-col.gap-y-3.w-full(v-for="file in protocolData[data.state].files")
|
||||
.title.text-smm.font-semibold {{file.name}}
|
||||
@@ -97,13 +98,14 @@
|
||||
|
||||
<script>
|
||||
import MedicalFormWrapper from "@/pages/newMedicalCard/components/MedicalFormWrapper.vue";
|
||||
import TagCreationForm from "@/pages/newMedicalCard/components/InitialInspectionProtocol/Forms/TagCreationForm.vue";
|
||||
import BaseButton from "@/components/base/BaseButton.vue";
|
||||
import BaseInput from "@/components/base/BaseInput.vue";
|
||||
import { mapState } from "vuex";
|
||||
|
||||
export default {
|
||||
name: "DataForm",
|
||||
components: { MedicalFormWrapper, BaseButton, BaseInput },
|
||||
components: { MedicalFormWrapper, BaseButton, BaseInput, TagCreationForm },
|
||||
props: {
|
||||
abc: Array,
|
||||
data: Object,
|
||||
@@ -113,6 +115,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
change: false,
|
||||
showModal: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -183,6 +186,13 @@ export default {
|
||||
reader.readAsDataURL(file);
|
||||
});
|
||||
},
|
||||
closeModal() {
|
||||
this.showModal = false;
|
||||
},
|
||||
createTag(model) {
|
||||
this.showModal = false;
|
||||
this.protocolData[this.data.state].complaints.push(model.tag);
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
fillInspection: {
|
||||
|
||||
@@ -50,8 +50,7 @@
|
||||
.flex.h-10.w-10.absolute.right-4.bottom-4
|
||||
q-btn(@click="showModal = true", color="primary", dense, padding="4px 12px")
|
||||
q-icon(name="app:icon-plus", size="17px")
|
||||
base-modal(v-model="showModal", title="Создание тега", modal-padding)
|
||||
tag-creation-form(:close-modal="closeModal", :create-tag="createTag")
|
||||
tag-creation-form(:show-modal="showModal", :close-modal="closeModal", :create-tag="createTag")
|
||||
.flex(v-if="data.title === 'Осмотр полости рта' && (fillInspection || change)", :style="{color: 'var(--btn-blue-color)'}")
|
||||
q-btn(no-caps, flat padding="2px 4px")
|
||||
q-icon(left, name="app:plus", size="11px")
|
||||
@@ -64,7 +63,6 @@ import BaseInput from "@/components/base/BaseInput.vue";
|
||||
import MedicalFormWrapper from "@/pages/newMedicalCard/components/MedicalFormWrapper.vue";
|
||||
import TagCreationForm from "@/pages/newMedicalCard/components/InitialInspectionProtocol/Forms/TagCreationForm.vue";
|
||||
import { mapState } from "vuex";
|
||||
import BaseModal from "@/components/base/BaseModal.vue";
|
||||
|
||||
export default {
|
||||
name: "MedicalFormTag",
|
||||
@@ -73,7 +71,6 @@ export default {
|
||||
BaseInput,
|
||||
MedicalFormWrapper,
|
||||
TagCreationForm,
|
||||
BaseModal,
|
||||
},
|
||||
props: { data: Object, abc: Array, fillInspection: Boolean },
|
||||
data() {
|
||||
|
||||
@@ -1,66 +1,69 @@
|
||||
<template lang="pug">
|
||||
.flex.flex-col
|
||||
.flex.flex-col.justify-between.py-6(:style="{height: '194px'}")
|
||||
.flex.flex-col(class="gap-y-1.5")
|
||||
.label.font-semibold.text-smm Категория
|
||||
.select.flex.items-center.justify-between.cursor-pointer.py-2.px-4.rounded(
|
||||
:class="{'open-select': isOpen}",
|
||||
@click="openMenu",
|
||||
v-click-outside="closeMenu"
|
||||
) {{model.category ? model.category : "Выберите категорию"}}
|
||||
.flex.duration-100(:class="{'open-menu': isOpen}")
|
||||
q-icon(name="app:down-arrow")
|
||||
q-menu(
|
||||
v-if="isOpen",
|
||||
:style="{rowGap: '6px'}",
|
||||
style="margin-top: 4px !important",
|
||||
fit,
|
||||
anchor="bottom left",
|
||||
self="top left"
|
||||
)
|
||||
.menu-wrapper.flex.flex-col.h-40.overflow-y-auto
|
||||
.options.flex(v-for="item in options")
|
||||
.item.flex.py-2.px-4.items-center.cursor-pointer(
|
||||
@click="selected(item.label)"
|
||||
) {{item.label}}
|
||||
.tag.item.flex.py-2.px-4.items-center.cursor-pointer.w-full.gap-x-2(
|
||||
@click="addCategory"
|
||||
base-modal(v-model="showModal", title="Создание тега", modal-padding)
|
||||
.flex.flex-col
|
||||
.flex.flex-col.justify-between.py-6(:style="{height: '194px'}")
|
||||
.flex.flex-col(class="gap-y-1.5")
|
||||
.label.font-semibold.text-smm Категория
|
||||
.select.flex.items-center.justify-between.cursor-pointer.py-2.px-4.rounded(
|
||||
:class="{'open-select': isOpen}",
|
||||
@click="openMenu",
|
||||
v-click-outside="closeMenu"
|
||||
) {{model.category ? model.category : "Выберите категорию"}}
|
||||
.flex.duration-100(:class="{'open-menu': isOpen}")
|
||||
q-icon(name="app:down-arrow")
|
||||
q-menu(
|
||||
v-if="isOpen",
|
||||
:style="{rowGap: '6px'}",
|
||||
style="margin-top: 4px !important",
|
||||
fit,
|
||||
anchor="bottom left",
|
||||
self="top left"
|
||||
)
|
||||
q-icon(name="app:icon-plus", size="10px",)
|
||||
span Добавить категорию
|
||||
.flex.flex-col(class="gap-x-1.5")
|
||||
base-input(v-model="model.tag", label="Текст тега", placeholder="Введите тэг", outlined)
|
||||
.buttons-group.flex
|
||||
q-btn(
|
||||
@click="closeModal",
|
||||
color="primary",
|
||||
outline,
|
||||
size="16px",
|
||||
no-caps,
|
||||
label="Отменить",
|
||||
:style="{width: '100%', height: '40px'}",
|
||||
padding="10px 24px"
|
||||
)
|
||||
q-btn(
|
||||
@click="createTag(model)",
|
||||
color="primary",
|
||||
size="16px",
|
||||
no-caps,
|
||||
label="Создать"
|
||||
:style="{width: '100%', height: '40px'}",
|
||||
padding="10px 24px"
|
||||
)
|
||||
.menu-wrapper.flex.flex-col.h-40.overflow-y-auto
|
||||
.options.flex(v-for="item in options")
|
||||
.item.flex.py-2.px-4.items-center.cursor-pointer(
|
||||
@click="selected(item.label)"
|
||||
) {{item.label}}
|
||||
.tag.item.flex.py-2.px-4.items-center.cursor-pointer.w-full.gap-x-2(
|
||||
@click="addCategory"
|
||||
)
|
||||
q-icon(name="app:icon-plus", size="10px",)
|
||||
span Добавить категорию
|
||||
.flex.flex-col(class="gap-x-1.5")
|
||||
base-input(v-model="model.tag", label="Текст тега", placeholder="Введите тэг", outlined)
|
||||
.buttons-group.flex
|
||||
q-btn(
|
||||
@click="closeModal",
|
||||
color="primary",
|
||||
outline,
|
||||
size="16px",
|
||||
no-caps,
|
||||
label="Отменить",
|
||||
:style="{width: '100%', height: '40px'}",
|
||||
padding="10px 24px"
|
||||
)
|
||||
q-btn(
|
||||
@click="createTag(model)",
|
||||
color="primary",
|
||||
size="16px",
|
||||
no-caps,
|
||||
label="Создать"
|
||||
:style="{width: '100%', height: '40px'}",
|
||||
padding="10px 24px"
|
||||
)
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import BaseInput from "@/components/base/BaseInput.vue";
|
||||
import BaseModal from "@/components/base/BaseModal.vue";
|
||||
|
||||
export default {
|
||||
name: "TagCreationForm",
|
||||
components: { BaseInput },
|
||||
components: { BaseInput, BaseModal },
|
||||
props: {
|
||||
closeModal: Function,
|
||||
createTag: Function,
|
||||
showModal: Boolean,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user