WIP Поправил таблицу зубной формулы и доработал формы информации о клиенте

This commit is contained in:
DwCay
2023-02-22 15:46:26 +03:00
parent 83449a9153
commit af47b06a7c
10 changed files with 116 additions and 28 deletions

View File

@@ -1,10 +1,15 @@
<template lang="pug">
.section-wrapper.flex.flex-col.h-fit.cursor-pointer(:style="{height: `${height}px`}")
.section-header.flex.items-center.justify-between.pl-4.pr-3.py-4.mb-3
.section-wrapper.flex.flex-col.h-fit.cursor-pointer
.section-header.flex.items-center.justify-between.pl-4.pr-3.py-3
span.text-sm.font-semibold.whitespace-normal {{title}}
.flex.flex-col.items-center.gap-y-4.px-4
slot(v-if="!isNoData")
.flex.gap-y-4.px-4.py-3(
:style="{height: `${height}px`}"
v-if="!isNoData"
:class="{'flex-col': !directionRow}"
)
slot
.section-add.flex.justify-center.items-center.cursor-pointer(
:style="{height: `${height}px`}"
v-if="isNoData"
@click="openAddDoc"
) Добавить данные
@@ -17,6 +22,7 @@ export default {
title: String,
height: Number,
data: Object,
directionRow: Boolean,
},
data() {
return {

View File

@@ -3,17 +3,19 @@
span.title-section.font-semibold.text-xs(v-if="field.title" ) {{field.title}}
.flex.items-center(v-if="field.type === 'text' || field.type === 'textarea'" class="gap-x-2.5")
span.w-4.icon(v-if="field.icon" :class="field.icon")
base-input(v-model="data[field.label]" :with-icon="field.copy", outlined)
base-input(v-model="data[field.label]" :with-icon="field.copy" outlined)
.flex.items-center(v-if="field.copy && data[field.label]")
.copy.icon-copy.cursor-pointer(@click="() => copyValue(data[field.label])")
base-input(v-if="field.type === 'date'" v-model="data[field.label]")
base-input(v-if="field.type === 'date'" type="date" v-model="data[field.label]" outlined)
base-radio-buttons-group(v-if="field.type === 'radio'" v-model="data[field.label]" :items="field.items" size="xs" :column-gap="14" direction-column)
</template>
<script>
import BaseInput from "@/components/base/BaseInput.vue";
import BaseRadioButtonsGroup from "@/components/base/BaseRadioButtonsGroup.vue";
export default {
name: "BaseDetailInput",
components: { BaseInput },
components: { BaseInput, BaseRadioButtonsGroup },
props: {
value: String,
field: Object,

View File

@@ -13,6 +13,9 @@
:bg-color="filled ? '' : 'white'",
:disable="disabled",
:rules="rule",
:lazy-rules="lazyRule",
:item-aligned="itemAligned",
:no-error-icon="noErrorIcon",
:mask="mask",
:maxlength="maxLength",
:autogrow="autogrow",
@@ -62,6 +65,9 @@ export default {
maxLength: Number,
textColor: String,
rule: Array,
lazyRule: [Boolean, String],
noErrorIcon: Boolean,
itemAligned: Boolean,
modelValue: [String, Date],
placeholder: String,
disabled: Boolean,

View File

@@ -5,7 +5,7 @@
)
q-option-group.flex(
class="q-gutter-md",
:style="{ columnGap: columnGap + 'px', rowGap: rowGap + 'px' }"
:style="{ columnGap: columnGap + 'px', rowGap: rowGap + 'px', flexDirection: directionColumn ? 'column' : 'row' }"
:size="size",
:options="items",
type="radio",
@@ -22,7 +22,7 @@ export default {
components: { BaseInputContainer },
emits: ["update:modelValue"],
props: {
modelValue: String,
modelValue: [String, Boolean],
radioButtonsLabel: String,
items: {
type: Array,

View File

@@ -5,9 +5,10 @@
v-model="value",
:options="items",
:disable="disable",
:behavior="behavior",
:hide-dropdown-icon="hideDropdownIcon"
:borderless="borderless",
:outlined="outlined",
bg-color="white",
outlined,
dense,
emit-value,
map-options
@@ -37,7 +38,13 @@ export default {
components: { BaseMenu, BaseInputContainer },
props: {
placeholder: String,
hideDropdownIcon: Boolean,
borderless: Boolean,
modelValue: [Object, String],
outlined: {
type: Boolean,
default: true,
},
items: {
type: Array,
default: () => [],