[WIP] Добавил можальное окно создания тэга
This commit is contained in:
@@ -50,8 +50,8 @@
|
||||
.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="Создание тега")
|
||||
tag-creation-form
|
||||
base-modal(v-model="showModal", title="Создание тега", modal-padding)
|
||||
tag-creation-form(: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")
|
||||
@@ -111,6 +111,13 @@ export default {
|
||||
closeCard() {
|
||||
this.change = false;
|
||||
},
|
||||
closeModal() {
|
||||
this.showModal = false;
|
||||
},
|
||||
createTag(model) {
|
||||
this.showModal = false;
|
||||
this.protocolData[this.data.state].push(model.tag);
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
fillInspection: {
|
||||
|
||||
@@ -1,17 +1,48 @@
|
||||
<template lang="pug">
|
||||
.wrapper.flex.flex-col
|
||||
.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"
|
||||
)
|
||||
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="Отмена",
|
||||
label="Отменить",
|
||||
:style="{width: '100%', height: '40px'}",
|
||||
padding="10px 24px"
|
||||
)
|
||||
q-btn(
|
||||
@click="createTag(model)",
|
||||
color="primary",
|
||||
size="16px",
|
||||
no-caps,
|
||||
@@ -22,27 +53,89 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import BaseInput from "@/components/base/BaseInput.vue";
|
||||
|
||||
export default {
|
||||
name: "TagCreationForm",
|
||||
components: { BaseInput },
|
||||
props: {
|
||||
closeModal: Function,
|
||||
createTag: Function,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
model: null,
|
||||
model: { category: null, tag: "" },
|
||||
options: [
|
||||
{ label: "Какая-то категория 1" },
|
||||
{ label: "Какая-то категория 2" },
|
||||
{ label: "Какая-то категория 3" },
|
||||
{ label: "Какая-то категория 4" },
|
||||
{ label: "Какая-то категория 5" },
|
||||
{ label: "Какая-то категория 6" },
|
||||
],
|
||||
isOpen: false,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
closeMenu() {
|
||||
this.isOpen = false;
|
||||
},
|
||||
addCategory() {
|
||||
this.options.push({
|
||||
label: `Какая-то категория ${this.options.length + 1}`,
|
||||
});
|
||||
},
|
||||
openMenu() {
|
||||
this.isOpen = !this.isOpen;
|
||||
},
|
||||
selected(label) {
|
||||
this.model.category = label;
|
||||
this.isOpen = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
.label
|
||||
color: var(--font-grey-color)
|
||||
|
||||
.select
|
||||
border: 1px solid var(--border-light-grey-color)
|
||||
width: 436px
|
||||
|
||||
.open-menu
|
||||
transform: rotate(180deg)
|
||||
|
||||
.open-select
|
||||
border: 1.5px solid var(--btn-blue-color)
|
||||
|
||||
.menu-wrapper
|
||||
margin-right: 5px
|
||||
&::-webkit-scrollbar
|
||||
width: 4px
|
||||
&::-webkit-scrollbar-track:vertical
|
||||
margin-top: 23px
|
||||
|
||||
.options
|
||||
border-bottom: 1px solid var(--border-light-grey-color)
|
||||
width: 419px
|
||||
&:last-child
|
||||
border-bottom: none
|
||||
|
||||
.item
|
||||
width: 419px
|
||||
&:hover
|
||||
background: var(--bg-hover-row-table)
|
||||
|
||||
.tag
|
||||
border-top: 1px solid var(--border-light-grey-color)
|
||||
color: var(--btn-blue-color)
|
||||
|
||||
.buttons-group
|
||||
padding: 16px 168px 0px 32px
|
||||
border-top: 1px solid var(--border-light-grey-color)
|
||||
margin-left: -40px
|
||||
margin-right: -40px
|
||||
margin-left: -32px
|
||||
margin-right: -32px
|
||||
column-gap: 7px
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user