[WIP] Добавил можальное окно создания тэга
This commit is contained in:
@@ -50,8 +50,8 @@
|
|||||||
.flex.h-10.w-10.absolute.right-4.bottom-4
|
.flex.h-10.w-10.absolute.right-4.bottom-4
|
||||||
q-btn(@click="showModal = true", 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")
|
q-icon(name="app:icon-plus", size="17px")
|
||||||
base-modal(v-model="showModal", title="Создание тега")
|
base-modal(v-model="showModal", title="Создание тега", modal-padding)
|
||||||
tag-creation-form
|
tag-creation-form(:close-modal="closeModal", :create-tag="createTag")
|
||||||
.flex(v-if="data.title === 'Осмотр полости рта' && (fillInspection || change)", :style="{color: 'var(--btn-blue-color)'}")
|
.flex(v-if="data.title === 'Осмотр полости рта' && (fillInspection || change)", :style="{color: 'var(--btn-blue-color)'}")
|
||||||
q-btn(no-caps, flat padding="2px 4px")
|
q-btn(no-caps, flat padding="2px 4px")
|
||||||
q-icon(left, name="app:plus", size="11px")
|
q-icon(left, name="app:plus", size="11px")
|
||||||
@@ -111,6 +111,13 @@ export default {
|
|||||||
closeCard() {
|
closeCard() {
|
||||||
this.change = false;
|
this.change = false;
|
||||||
},
|
},
|
||||||
|
closeModal() {
|
||||||
|
this.showModal = false;
|
||||||
|
},
|
||||||
|
createTag(model) {
|
||||||
|
this.showModal = false;
|
||||||
|
this.protocolData[this.data.state].push(model.tag);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
fillInspection: {
|
fillInspection: {
|
||||||
|
|||||||
@@ -1,17 +1,48 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.wrapper.flex.flex-col
|
.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
|
.buttons-group.flex
|
||||||
q-btn(
|
q-btn(
|
||||||
|
@click="closeModal",
|
||||||
color="primary",
|
color="primary",
|
||||||
outline,
|
outline,
|
||||||
size="16px",
|
size="16px",
|
||||||
no-caps,
|
no-caps,
|
||||||
label="Отмена",
|
label="Отменить",
|
||||||
:style="{width: '100%', height: '40px'}",
|
:style="{width: '100%', height: '40px'}",
|
||||||
padding="10px 24px"
|
padding="10px 24px"
|
||||||
)
|
)
|
||||||
q-btn(
|
q-btn(
|
||||||
|
@click="createTag(model)",
|
||||||
color="primary",
|
color="primary",
|
||||||
size="16px",
|
size="16px",
|
||||||
no-caps,
|
no-caps,
|
||||||
@@ -22,27 +53,89 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import BaseInput from "@/components/base/BaseInput.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TagCreationForm",
|
name: "TagCreationForm",
|
||||||
|
components: { BaseInput },
|
||||||
|
props: {
|
||||||
|
closeModal: Function,
|
||||||
|
createTag: Function,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
model: null,
|
model: { category: null, tag: "" },
|
||||||
options: [
|
options: [
|
||||||
{ label: "Какая-то категория 1" },
|
{ label: "Какая-то категория 1" },
|
||||||
{ label: "Какая-то категория 2" },
|
{ label: "Какая-то категория 2" },
|
||||||
{ label: "Какая-то категория 3" },
|
{ label: "Какая-то категория 3" },
|
||||||
{ label: "Какая-то категория 4" },
|
{ 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>
|
</script>
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
<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
|
.buttons-group
|
||||||
padding: 16px 168px 0px 32px
|
padding: 16px 168px 0px 32px
|
||||||
border-top: 1px solid var(--border-light-grey-color)
|
border-top: 1px solid var(--border-light-grey-color)
|
||||||
margin-left: -40px
|
margin-left: -32px
|
||||||
margin-right: -40px
|
margin-right: -32px
|
||||||
column-gap: 7px
|
column-gap: 7px
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user