WIP Частично заменила инпуты

This commit is contained in:
Daria Golova
2023-07-14 18:17:57 +03:00
parent ee3c828a22
commit 27f25a8826
12 changed files with 347 additions and 225 deletions

View File

@@ -4,7 +4,7 @@
v-model="value", v-model="value",
:name="name", :name="name",
:multiple="multiple", :multiple="multiple",
:class="{'font-input': true, 'doc': doc}", :class="{'circle': circle, 'font-input': true, 'doc': doc}",
:input-style="{resize: resize,}", :input-style="{resize: resize,}",
:borderless="borderless", :borderless="borderless",
:placeholder="placeholder", :placeholder="placeholder",
@@ -78,6 +78,7 @@ export default {
name: String, name: String,
important: Boolean, important: Boolean,
size: String, size: String,
circle: Boolean,
}, },
emits: ["update:modelValue"], emits: ["update:modelValue"],
computed: { computed: {
@@ -214,4 +215,7 @@ export default {
font-weight: 500 font-weight: 500
font-size: 12px font-size: 12px
line-height: 135% !important line-height: 135% !important
.input :deep(.q-field__marginal)
height: auto !important
</style> </style>

View File

@@ -1,11 +1,11 @@
<template lang="pug"> <template lang="pug">
.flex.w-full(class="gap-x-1.5") .flex.w-full(class="gap-x-1.5")
base-select(:items="items", v-model="network.kind") base-select(:items="items", v-model="network.kind")
base-input.w-full(v-model="network.username", placeholder="Ссылкa", outlined, :rule="ruleInput", no-error-icon) base-input.w-full(v-model="network.username", placeholder="Ссылкa", :rule="ruleInput", size="M")
</template> </template>
<script> <script>
import BaseInput from "@/components/base/BaseInput"; import BaseInput from "@/components/BaseInput.vue";
import BaseSelect from "@/components/base/BaseSelect.vue"; import BaseSelect from "@/components/base/BaseSelect.vue";
export default { export default {
name: "TableAddingNetwork", name: "TableAddingNetwork",

View File

@@ -1,27 +1,18 @@
<template lang="pug"> <template lang="pug">
base-input-container.gap-y-2(:label="label", :style="{width: width + 'px' }") base-input-container.gap-y-2(:label="label", :style="{width: width + 'px', ...sizeVariable }")
q-input( q-input.input(
v-model="value", v-model="value",
:name="name", :name="name",
:class="{'circle': circle, 'font-input': true}", :input-style="{resize: resize}",
:input-style="{ color: textColor, borderColor: borderColor, resize: resize}",
:borderless="borderless",
:placeholder="placeholder", :placeholder="placeholder",
:outlined="outlined", outlined,
:dense="dense",
:readonly="readonly", :readonly="readonly",
:disable="disabled", :disable="disabled",
:filled="filled", mask="##.##.####",
mask="##.##.####"
:bg-color="filled || standout ? '' : 'white'",
:rules="[checkInput]", :rules="[checkInput]",
:lazy-rules="lazyRule", :lazy-rules="lazyRule",
:item-aligned="itemAligned", :item-aligned="itemAligned",
:no-error-icon="noErrorIcon", no-error-icon,
:maxlength="maxLength",
:autogrow="autogrow",
:square="square",
:standout="standout"
:accept="accept", :accept="accept",
:debounce="debounce", :debounce="debounce",
hide-bottom-space, hide-bottom-space,
@@ -31,60 +22,32 @@
q-icon( q-icon(
name="app:calendar", name="app:calendar",
class="cursor-pointer", class="cursor-pointer",
size="16px" size="18px"
) )
q-popup-proxy(cover, transition-show="scale", transition-hide="scale") q-menu(
q-date( :style="{'margin-top': '8px !important'}",
v-model="value", v-model="calendarVisibility",
mask="DD.MM.YYYY", transition-show="scale",
minimal transition-hide="scale",
self="top middle",
:offset="[118, 14]"
)
base-calendar(
v-model="internalDate",
:start-year="2000",
:save="closeCalendar",
@update:model-value="transmitInternalDate"
) )
.flex.items-center.justify-end
q-btn(
v-close-popup,
label="Закрыть",
color="primary",
flat,
no-caps
)
</template> </template>
<script> <script>
import BaseInputContainer from "@/components/base/BaseInputContainer.vue"; import BaseInputContainer from "@/components/base/BaseInputContainer.vue";
import * as moment from "moment/moment"; import * as moment from "moment/moment";
import BaseCalendar from "@/components/base/Calendar/BaseCalendar.vue";
export default { export default {
name: "BaseInputDate", name: "BaseInputDate",
components: { BaseInputContainer }, components: { BaseInputContainer, BaseCalendar },
props: { props: {
circle: Boolean,
dense: {
type: Boolean,
default: true,
},
outlined: {
type: Boolean,
default: false,
},
square: {
type: Boolean,
default: false,
},
filled: {
type: Boolean,
default: false,
},
borderless: {
type: Boolean,
default: false,
},
autogrow: {
type: Boolean,
default: false,
},
standout: {
type: [Boolean, String],
default: false,
},
accept: { accept: {
type: String, type: String,
default: "", default: "",
@@ -95,11 +58,7 @@ export default {
}, },
debounce: [String, Number], debounce: [String, Number],
width: Number, width: Number,
maxLength: Number,
textColor: String,
borderColor: String,
lazyRule: [Boolean, String], lazyRule: [Boolean, String],
noErrorIcon: Boolean,
itemAligned: Boolean, itemAligned: Boolean,
modelValue: Date, modelValue: Date,
placeholder: String, placeholder: String,
@@ -108,18 +67,30 @@ export default {
readonly: Boolean, readonly: Boolean,
iconLeft: Boolean, iconLeft: Boolean,
name: String, name: String,
size: String,
}, },
emits: ["update:modelValue"], emits: ["update:modelValue"],
data() {
return {
calendarVisibility: false,
internalDate: null,
};
},
computed: { computed: {
value: { value: {
get() { get() {
if ( if (
moment(this.modelValue).isValid() && moment(this.modelValue).isValid() &&
typeof this.modelValue === "object" typeof this.modelValue === "object"
) ) {
this.changeInternalDate(moment(this.modelValue));
return moment(this.modelValue).format("DD.MM.YYYY"); return moment(this.modelValue).format("DD.MM.YYYY");
if (moment(this.convertFormat(this.modelValue)).isValid()) }
if (moment(this.convertFormat(this.modelValue)).isValid()) {
this.changeInternalDate(moment(this.modelValue));
return this.modelValue; return this.modelValue;
}
this.changeInternalDate(null);
return null; return null;
}, },
set(value) { set(value) {
@@ -131,6 +102,50 @@ export default {
); );
}, },
}, },
sizeVariable() {
switch (this.size) {
case "XS":
return {
"--input-height": "28px",
"--text-size": "12px",
"--line-height": "135%",
"--px": "0 8px",
"--py": "10px 0",
};
case "S":
return {
"--input-height": "32px",
"--text-size": "12px",
"--line-height": "135%",
"--px": "0 8px",
"--py": "10px 0",
};
case "M":
return {
"--input-height": "40px",
"--text-size": "16px",
"--line-height": "normal",
"--px": "0 16px",
"--py": "8px 0",
};
case "L":
return {
"--input-height": "48px",
"--text-size": "16px",
"--line-height": "normal",
"--px": "0 16px",
"--py": "8px 0",
};
default:
return {
"--input-height": "56px",
"--text-size": "16px",
"--line-height": "normal",
"--px": "0 16px",
"--py": "8px 0",
};
}
},
}, },
methods: { methods: {
convertFormat(date) { convertFormat(date) {
@@ -141,6 +156,15 @@ export default {
checkInput(val) { checkInput(val) {
return moment(this.convertFormat(val)).isValid(); return moment(this.convertFormat(val)).isValid();
}, },
closeCalendar() {
this.calendarVisibility = false;
},
changeInternalDate(value) {
this.internalDate = value;
},
transmitInternalDate(value) {
this.value = value?.format("DD.MM.YYYY");
},
}, },
}; };
</script> </script>
@@ -149,17 +173,56 @@ export default {
.font-input .font-input
font-feature-settings: 'pnum' on, 'lnum' on font-feature-settings: 'pnum' on, 'lnum' on
.circle .input :deep(.q-field__native)
width: 100% font-weight: 500
height: 100% font-size: var(--text-size)
border-radius: 50% line-height: var(--line-height)
z-index: 5 color: var(--font-dark-blue-color)
opacity: 0 padding: var(--py)
cursor: pointer &::placeholder
</style> color: var(--font-grey-color)
<style lang="sass"> opacity: 1
.q-field--standout.q-field--readonly .q-field__control:before
border: none !important .input :deep(.q-field__control)
.q-field--standout .q-field__control height: var(--input-height) !important
color: var(--font-dark-blue-color)
padding: var(--px)
&:before
border-color: var(--border-light-grey-color) !important
transition: none
&:hover:before
border-color: var(--font-grey-color) !important
&:after
border-width: 1px !important
transition: none
transform: none !important
.q-field--disabled :deep(.q-field__control > div)
opacity: 1 !important
.q-field--outlined.q-field--disabled :deep(.q-field__native)
color: var(--font-grey-color)
.q-field--outlined.q-field--disabled :deep(.q-field__control)
background: var(--bg-light-grey) !important background: var(--bg-light-grey) !important
.q-field--outlined.q-field--readonly :deep(.q-field__control)
background: var(--bg-light-grey) !important
&:before
border-color: var(--bg-light-grey) !important
transition: none
&:hover:before
border-color: var(--bg-light-grey) !important
.q-field--outlined.q-field--readonly :deep(.q-field__native)
cursor: default
.q-field--error :deep(.q-field__bottom)
padding: 4px 0 0 0
font-weight: 500
font-size: 12px
line-height: 135% !important
.input :deep(.q-field__marginal)
height: auto !important
</style> </style>

View File

@@ -29,7 +29,7 @@
type="file", type="file",
id="image-upload", id="image-upload",
accept="image/*", accept="image/*",
@change="(e) => previewImage(e)" @change="(e) => previewImage(e)",
) )
.avatar.flex.absolute.items-center.gap-x-6 .avatar.flex.absolute.items-center.gap-x-6
img.avatar.object-cover(for="image-upload", :src="image", v-if="image") img.avatar.object-cover(for="image-upload", :src="image", v-if="image")
@@ -41,14 +41,14 @@
padding="2px 0 0 0" padding="2px 0 0 0"
) )
q-icon(name="app:ok", size="20px") q-icon(name="app:ok", size="20px")
base-input.w-full(v-model="infoClient.basic.full_name", placeholder="ФИО пациента*", outlined) base-input.w-full(v-model="infoClient.basic.full_name", placeholder="ФИО пациента*", size="M")
</template> </template>
<script> <script>
import BaseModal from "./BaseModal.vue"; import BaseModal from "./BaseModal.vue";
import BaseInput from "./BaseInput.vue";
import addImageIcon from "@/assets/icons/photo.svg"; import addImageIcon from "@/assets/icons/photo.svg";
import BaseButton from "@/components/base/BaseButton.vue"; import BaseButton from "@/components/base/BaseButton.vue";
import BaseInput from "@/components/BaseInput.vue";
export default { export default {
name: "BaseInputFullName", name: "BaseInputFullName",

View File

@@ -1,36 +1,28 @@
<template lang="pug"> <template lang="pug">
base-input-container.gap-y-2(:label="label", :style="{width: width + 'px' }") base-input-container.gap-y-2(:label="label", :style="{width: width + 'px', ...sizeVariable }")
q-input( q-input.input(
v-model="value", v-model="value",
:name="name", :name="name",
:class="{'circle': circle, 'font-input': true}", :class="{'font-input': true}",
:input-style="{ color: textColor, borderColor: borderColor, resize: resize}", :input-style="{ resize: resize}",
:borderless="borderless",
:placeholder="placeholder", :placeholder="placeholder",
:outlined="outlined", outlined,
:dense="dense",
:readonly="readonly", :readonly="readonly",
:disable="disabled", :disable="disabled",
:filled="filled",
:bg-color="filled || standout ? '' : 'white'",
:rules="[checkTime]", :rules="[checkTime]",
:lazy-rules="lazyRule", :lazy-rules="lazyRule",
:item-aligned="itemAligned", :item-aligned="itemAligned",
:no-error-icon="noErrorIcon",
mask="time", mask="time",
:maxlength="maxLength",
:autogrow="autogrow",
:square="square",
:standout="standout"
:accept="accept", :accept="accept",
:debounce="debounce", :debounce="debounce",
hide-bottom-space hide-bottom-space,
no-error-icon
) )
template(v-slot:append) template(v-slot:append)
q-icon( q-icon(
name="app:time", name="app:time",
class="cursor-pointer", class="cursor-pointer",
size="16px" size="19px"
) )
q-popup-proxy(cover, transition-show="scale", transition-hide="scale") q-popup-proxy(cover, transition-show="scale", transition-hide="scale")
q-time(v-model="value", mask="HH:mm") q-time(v-model="value", mask="HH:mm")
@@ -51,35 +43,6 @@ export default {
name: "BaseInputTime", name: "BaseInputTime",
components: { BaseInputContainer }, components: { BaseInputContainer },
props: { props: {
circle: Boolean,
dense: {
type: Boolean,
default: true,
},
outlined: {
type: Boolean,
default: false,
},
square: {
type: Boolean,
default: false,
},
filled: {
type: Boolean,
default: false,
},
borderless: {
type: Boolean,
default: false,
},
autogrow: {
type: Boolean,
default: false,
},
standout: {
type: [Boolean, String],
default: false,
},
accept: { accept: {
type: String, type: String,
default: "", default: "",
@@ -90,12 +53,8 @@ export default {
}, },
debounce: [String, Number], debounce: [String, Number],
width: Number, width: Number,
maxLength: Number,
textColor: String,
borderColor: String,
rule: Array, rule: Array,
lazyRule: [Boolean, String], lazyRule: [Boolean, String],
noErrorIcon: Boolean,
itemAligned: Boolean, itemAligned: Boolean,
modelValue: String, modelValue: String,
placeholder: String, placeholder: String,
@@ -104,6 +63,7 @@ export default {
readonly: Boolean, readonly: Boolean,
iconLeft: Boolean, iconLeft: Boolean,
name: String, name: String,
size: String,
}, },
emits: ["update:modelValue"], emits: ["update:modelValue"],
computed: { computed: {
@@ -115,6 +75,50 @@ export default {
this.$emit("update:modelValue", this.checkTime(value) ? value : null); this.$emit("update:modelValue", this.checkTime(value) ? value : null);
}, },
}, },
sizeVariable() {
switch (this.size) {
case "XS":
return {
"--input-height": "28px",
"--text-size": "12px",
"--line-height": "135%",
"--px": "0 8px",
"--py": "10px 0",
};
case "S":
return {
"--input-height": "32px",
"--text-size": "12px",
"--line-height": "135%",
"--px": "0 8px",
"--py": "10px 0",
};
case "M":
return {
"--input-height": "40px",
"--text-size": "16px",
"--line-height": "normal",
"--px": "0 16px",
"--py": "8px 0",
};
case "L":
return {
"--input-height": "48px",
"--text-size": "16px",
"--line-height": "normal",
"--px": "0 16px",
"--py": "8px 0",
};
default:
return {
"--input-height": "56px",
"--text-size": "16px",
"--line-height": "normal",
"--px": "0 16px",
"--py": "8px 0",
};
}
},
}, },
methods: { methods: {
checkTime(val) { checkTime(val) {
@@ -133,17 +137,56 @@ export default {
.font-input .font-input
font-feature-settings: 'pnum' on, 'lnum' on font-feature-settings: 'pnum' on, 'lnum' on
.circle .input :deep(.q-field__native)
width: 100% font-weight: 500
height: 100% font-size: var(--text-size)
border-radius: 50% line-height: var(--line-height)
z-index: 5 color: var(--font-dark-blue-color)
opacity: 0 padding: var(--py)
cursor: pointer &::placeholder
</style> color: var(--font-grey-color)
<style lang="sass"> opacity: 1
.q-field--standout.q-field--readonly .q-field__control:before
border: none !important .input :deep(.q-field__control)
.q-field--standout .q-field__control height: var(--input-height) !important
color: var(--font-dark-blue-color)
padding: var(--px)
&:before
border-color: var(--border-light-grey-color) !important
transition: none
&:hover:before
border-color: var(--font-grey-color) !important
&:after
border-width: 1px !important
transition: none
transform: none !important
.q-field--disabled :deep(.q-field__control > div)
opacity: 1 !important
.q-field--outlined.q-field--disabled :deep(.q-field__native)
color: var(--font-grey-color)
.q-field--outlined.q-field--disabled :deep(.q-field__control)
background: var(--bg-light-grey) !important background: var(--bg-light-grey) !important
.q-field--outlined.q-field--readonly :deep(.q-field__control)
background: var(--bg-light-grey) !important
&:before
border-color: var(--bg-light-grey) !important
transition: none
&:hover:before
border-color: var(--bg-light-grey) !important
.q-field--outlined.q-field--readonly :deep(.q-field__native)
cursor: default
.q-field--error :deep(.q-field__bottom)
padding: 4px 0 0 0
font-weight: 500
font-size: 12px
line-height: 135% !important
.input :deep(.q-field__marginal)
height: auto !important
</style> </style>

View File

@@ -56,11 +56,16 @@ export default {
type: Function, type: Function,
default: () => {}, default: () => {},
}, },
cancel: {
type: Function,
default: () => {},
},
width: { width: {
type: String, type: String,
default: "286px", default: "286px",
}, },
}, },
emits: ["update:modelValue"],
data() { data() {
return { return {
internalDate: moment(), internalDate: moment(),
@@ -95,10 +100,10 @@ export default {
}, },
}, },
internalMonth() { internalMonth() {
let formattedMonth = this.internalDate.format("MMMM"); let formattedMonth = this.internalDate?.format("MMMM");
return `${ return `${
formattedMonth[0].toUpperCase() + formattedMonth.slice(1) formattedMonth[0].toUpperCase() + formattedMonth.slice(1)
} ${this.internalDate.format("YYYY")}`; } ${this.internalDate?.format("YYYY")}`;
}, },
}, },
methods: { methods: {
@@ -106,20 +111,34 @@ export default {
this.currentForm = this.forms.find((elem) => elem.component === form); this.currentForm = this.forms.find((elem) => elem.component === form);
}, },
changeDate() { changeDate() {
if (this.range) { if (this.value) {
this.internalDate = this.value?.from?.clone(); if (this.range) {
this.externalValue = { this.internalDate = this.value?.from?.clone();
from: this.value?.from?.clone(), this.externalValue = {
to: this.value?.to?.clone(), from: this.value?.from?.clone(),
}; to: this.value?.to?.clone(),
};
} else {
this.internalDate = this.value?.clone();
this.externalValue = this.value?.clone();
}
} else { } else {
this.internalDate = this.value?.clone(); if (this.range) {
this.externalValue = this.value?.clone(); this.internalDate = moment();
this.externalValue = {
from: null,
to: null,
};
} else {
this.internalDate = moment();
this.externalValue = null;
}
} }
}, },
cancelChanges() { cancelChanges() {
this.changeDate(); this.changeDate();
this.changeForm("CalendarDates"); this.changeForm("CalendarDates");
this.cancel();
}, },
saveExternalChanges() { saveExternalChanges() {
if (this.range) if (this.range)

View File

@@ -163,7 +163,7 @@ export default {
}, },
selectDate(date) { selectDate(date) {
if (!this.range) { if (!this.range) {
this.externalValue = date; this.externalValue = date.clone();
return; return;
} }
if (this.rangeCount) { if (this.rangeCount) {

View File

@@ -2,16 +2,15 @@
.flex.justify-between.w-full.h-fit .flex.justify-between.w-full.h-fit
.flex.gap-2.w-fit.h-fit .flex.gap-2.w-fit.h-fit
.input .input
base-input( base-input.search(
:with-icon="true",
icon-position="left",
v-model="searchClient", v-model="searchClient",
placeholder="Введите фамилию", placeholder="Введите фамилию",
@keyup.enter="searchLastName", @keyup.enter="searchLastName",
outlined size="M",
:width="280",
:icon-left="!searchClient"
) )
.flex.items-center.cursor-pointer q-icon(name="app:search", size="18px", v-if="!searchClient")
.icon-search
base-button( base-button(
v-if="createdClientName === ''", v-if="createdClientName === ''",
@click="searchLastName", @click="searchLastName",
@@ -42,8 +41,8 @@
<script> <script>
import ClientsTableHeaderActions from "@/pages/clients/components/ClientsTableHeaderActions"; import ClientsTableHeaderActions from "@/pages/clients/components/ClientsTableHeaderActions";
import BaseInput from "@/components/base/BaseInput";
import BaseButton from "@/components/base/BaseButton.vue"; import BaseButton from "@/components/base/BaseButton.vue";
import BaseInput from "@/components/BaseInput.vue";
export default { export default {
name: "ClientsTableHat", name: "ClientsTableHat",
@@ -97,4 +96,6 @@ export default {
min-width: 280px min-width: 280px
.on-left .on-left
margin-right: 10px margin-right: 10px
.search :deep(.q-field__prepend)
padding-right: 6px !important
</style> </style>

View File

@@ -5,66 +5,60 @@
v-model="addresses.full_address", v-model="addresses.full_address",
placeholder="Введите адрес целиком", placeholder="Введите адрес целиком",
label="Полный адрес", label="Полный адрес",
outlined size="M"
) )
.flex.items-center.justify-center.relative .flex.items-center.justify-center.relative
.line.absolute .line.absolute
span.text-sm.separator.px-2 или span.text-sm.separator.px-2 или
.grid.grid-cols-2.gap-y-6.gap-x-4 .grid.grid-cols-2.gap-y-6.gap-x-4
base-input( base-input(
disabled,
filled,
placeholder="Введите город",
v-model="addresses.city", v-model="addresses.city",
label="Город", label="Город",
outlined placeholder="Введите город",
disabled,
size="M"
) )
base-input( base-input(
disabled,
filled,
placeholder="Введите область",
v-model="addresses.region", v-model="addresses.region",
label="Область", label="Область",
outlined placeholder="Введите область",
disabled,
size="M"
) )
base-input( base-input(
disabled,
filled,
placeholder="Введите улицу",
v-model="addresses.street", v-model="addresses.street",
label="Улица", label="Улица",
outlined placeholder="Введите улицу",
disabled,
size="M"
) )
base-input( base-input(
disabled,
filled,
placeholder="Номер дома",
v-model="addresses.house_number", v-model="addresses.house_number",
label="Дом", label="Дом",
outlined placeholder="Номер дома",
disabled,
size="M"
) )
base-input( base-input(
disabled,
filled,
placeholder="Номер квартиры",
v-model="addresses.apartment_number", v-model="addresses.apartment_number",
label="Квартира", label="Квартира",
outlined placeholder="Номер квартиры",
disabled,
size="M"
) )
base-input( base-input(
disabled,
filled,
placeholder="000000",
mask="######",
v-model="addresses.zip_code", v-model="addresses.zip_code",
label="Индекс", label="Индекс",
outlined mask="######",
placeholder="000000",
disabled,
size="M"
) )
</template> </template>
<script> <script>
import BaseInput from "@/components/base/BaseInput";
import BaseCustomSelect from "@/components/base/BaseCustomSelect"; import BaseCustomSelect from "@/components/base/BaseCustomSelect";
import BaseInput from "@/components/BaseInput.vue";
export default { export default {
name: "FormCreateAddresses", name: "FormCreateAddresses",
@@ -79,7 +73,7 @@ export default {
<style lang="sass" scoped> <style lang="sass" scoped>
.wrapper-addresses .wrapper-addresses
height: 368px height: 380px
overflow-y: auto overflow-y: auto
&::-webkit-scrollbar &::-webkit-scrollbar
width: 4px width: 4px

View File

@@ -7,27 +7,27 @@
v-model="basicInfo.priority", v-model="basicInfo.priority",
label="Приоритет" label="Приоритет"
) )
base-input( base-input-date(
type="date"
v-model="basicInfo.birth_date", v-model="basicInfo.birth_date",
size="M",
important,
label="Дата рождения", label="Дата рождения",
outlined, placeholder="Дата рождения"
important
) )
base-input( base-input(
v-model="phone.username", v-model="phone.username",
placeholder="+7 (915) 6449223", placeholder="+7 (915) 6449223",
mask="+7 (###) ###-##-##", mask="+7 (###) ###-##-##",
label="Номер телефона", label="Номер телефона",
outlined, size="M",
important important
) )
base-input( base-input(
v-model="email.username", v-model="email.username",
placeholder="user@yandex.ru", placeholder="user@yandex.ru",
label="Email", label="Email",
outlined, important,
important size="M",
) )
.flex.flex-col.col-start-1.col-end-3.w-100(class="gap-y-1.5") .flex.flex-col.col-start-1.col-end-3.w-100(class="gap-y-1.5")
span.text-sm.font-semibold.opacity-40.input-info Ссылки на соцсети span.text-sm.font-semibold.opacity-40.input-info Ссылки на соцсети
@@ -43,9 +43,10 @@
</template> </template>
<script> <script>
import BaseInput from "@/components/base/BaseInput";
import BaseAddingNetwork from "@/components/base/BaseAddingNetwork"; import BaseAddingNetwork from "@/components/base/BaseAddingNetwork";
import BaseSelect from "@/components/base/BaseSelect"; import BaseSelect from "@/components/base/BaseSelect";
import BaseInput from "@/components/BaseInput.vue";
import BaseInputDate from "@/components/base/BaseInputDate.vue";
export default { export default {
name: "FormCreateBasicInfo", name: "FormCreateBasicInfo",
@@ -53,6 +54,7 @@ export default {
BaseInput, BaseInput,
BaseAddingNetwork, BaseAddingNetwork,
BaseSelect, BaseSelect,
BaseInputDate,
}, },
props: { props: {
priorityList: Array, priorityList: Array,

View File

@@ -4,59 +4,59 @@
span.title-info.text-base.font-bold Паспортные данные span.title-info.text-base.font-bold Паспортные данные
.grid.grid-cols-2.gap-x-4.gap-y-6 .grid.grid-cols-2.gap-x-4.gap-y-6
base-input( base-input(
mask="#### ######",
v-model="identityDocument.pass.series_number", v-model="identityDocument.pass.series_number",
mask="#### ######",
placeholder="0000 000000", placeholder="0000 000000",
label="Серия и номер", label="Серия и номер",
outlined size="M"
) )
base-input( base-input(
v-model="identityDocument.pass.issued_by_org", v-model="identityDocument.pass.issued_by_org",
placeholder="Точно как в паспорте", placeholder="Точно как в паспорте",
label="Кем выдан", label="Кем выдан",
outlined size="M"
) )
base-input( base-input(
mask="###-###",
v-model="identityDocument.pass.issued_by_org_code", v-model="identityDocument.pass.issued_by_org_code",
mask="###-###",
placeholder="000000", placeholder="000000",
label="Код подразделения", label="Код подразделения",
outlined size="M"
) )
base-input( base-input-date(
type="date"
v-model="identityDocument.pass.issued_by_date", v-model="identityDocument.pass.issued_by_date",
placeholder="Дата", placeholder="Дата",
label="Дата выдачи", label="Дата выдачи",
outlined size="M"
) )
.flex.flex-col.gap-y-6 .flex.flex-col.gap-y-6
span.title-info.text-base.font-bold СНИЛС и ИНН span.title-info.text-base.font-bold СНИЛС и ИНН
.grid.grid-cols-2.gap-x-4.gap-y-6 .grid.grid-cols-2.gap-x-4.gap-y-6
base-input( base-input(
disabled,
filled,
mask="###-###-### ##",
v-model="identityDocument.snils.number", v-model="identityDocument.snils.number",
mask="###-###-### ##",
placeholder="000000000 00", placeholder="000000000 00",
label="Номер СНИЛС" label="Номер СНИЛС",
disabled,
size="M"
) )
base-input( base-input(
disabled,
filled,
mask="############",
v-model="identityDocument.inn.number", v-model="identityDocument.inn.number",
placeholder="000000000000", placeholder="000000000000",
label="Номер ИНН" mask="############",
label="Номер ИНН",
disabled,
size="M"
) )
</template> </template>
<script> <script>
import BaseInput from "@/components/base/BaseInput"; import BaseInput from "@/components/BaseInput.vue";
import BaseInputDate from "@/components/base/BaseInputDate.vue";
export default { export default {
name: "FormCreateIdentityDocuments", name: "FormCreateIdentityDocuments",
components: { BaseInput }, components: { BaseInput, BaseInputDate },
props: { props: {
identityDocument: Object, identityDocument: Object,
saveClient: Function, saveClient: Function,

View File

@@ -6,18 +6,14 @@
label="Дата осмотра", label="Дата осмотра",
placeholder="Выберите дату" placeholder="Выберите дату"
:width="202", :width="202",
type="date", size="M"
textColor="var(--font-dark-blue-color)"
outlined,
) )
base-input-time( base-input-time(
v-model="protocolData.startTime" v-model="protocolData.startTime"
label="Время осмотра", label="Время осмотра",
:width="202", :width="202",
outlined, placeholder="Выберите время",
type="time", size="M"
textColor="var(--font-dark-blue-color)",
placeholder="Выберите время"
) )
.flex.flex-col.gap-y-6px .flex.flex-col.gap-y-6px
span.color-grey.line-height.text-sm.font-semibold Врач span.color-grey.line-height.text-sm.font-semibold Врач
@@ -70,8 +66,8 @@ export default {
data() { data() {
return { return {
protocolData: { protocolData: {
date: new Date(), date: null,
startTime: moment().format("HH:mm"), startTime: null,
}, },
}; };
}, },