Изменила baseInput

This commit is contained in:
Daria Golova
2022-10-31 17:35:11 +03:00
parent 99e1126863
commit e34d13614e
3 changed files with 80 additions and 80 deletions

View File

@@ -1,38 +1,40 @@
<template lang="pug"> <template lang="pug">
.flex.box-border.w-full.container.items-center.cursor-pointer( .flex.box-border.container.items-center.cursor-pointer.relative(
@click="openSelect" @click="openSelect"
:class="{border: styleBorder, 'py-2.5 px-4':!forNetworks, 'justify-center':forNetworks, 'justify-between':!forNetworks}" :class="{border: styleBorder, 'py-2.5 px-4':!forNetworks, 'justify-center':forNetworks, 'justify-between':!forNetworks}"
:style="{ minWidth : widthSelect + 'px'}"
) )
.relative.flex.flex-col .flex.mr-2
.not-italic.select.cursor-pointer.w-full(v-if="!forNetworks") {{optionData}} input.text-base.select.cursor-pointer(
.absolute.options( :size="sizeInput"
v-show="isSelectOpen" v-if="!forNetworks"
:id="id" v-model="optionData"
class="left-[-18px]" :placeholder="placeholder"
:style="{ minWidth : widthSelect + 'px'}" disabled
) )
.not-italic.option.pl-4.py-1( .absolute.options.top-12.left-0(
v-for="responsible in listData" v-show="isSelectOpen"
@click="(e) => chooseOption(e)" :id="id"
:key="responsible" )
:id="responsible" .option.px-4.py-1(
) {{responsible}} v-for="responsible in listData"
.flex.not-italic.select.cursor-pointer.w-full.text-xl.items-center.networks(v-if="forNetworks" :class="optionData") @click="(e) => chooseOption(e)"
:key="responsible"
:id="responsible"
) {{responsible}}
.flex.select.cursor-pointer.w-full.text-xl.items-center.networks(v-if="forNetworks" :class="optionData")
.absolute.options.top-5( .absolute.options.top-5(
v-show="isSelectOpen" v-show="isSelectOpen"
class="left-[-11px]" class="left-[-11px]"
:id="id" :id="id")
:style="{ minWidth : widthSelect + 'px'}") .flex.option.justify-center.py-1.text-xl(
.flex.not-italic.option.justify-center.py-1.text-xl(
v-for="responsible in listData" v-for="responsible in listData"
@click="chooseOption" @click="chooseOption"
:key="responsible.network" :key="responsible.network"
:id="responsible.network" :id="responsible.network"
:class="responsible.icon" :class="responsible.icon"
) )
.select-form-separator.cursor-pointer(v-if="withSeparator") .select-form-separator.cursor-pointer.mr-6px(v-if="separator")
.text-sm.ml-2.pt-1.icon-down-arrow.icon.text-center(v-if="!forNetworks" :class="{ open: isSelectOpen}") .text-xsm.ml-2.pt-1.icon-down-arrow.icon.text-center(v-if="!forNetworks" :class="{ open: isSelectOpen}")
</template> </template>
<script> <script>
@@ -43,14 +45,16 @@ export default {
styleBorder: { styleBorder: {
default: false, default: false,
}, },
widthSelect: Number, separator: Boolean,
withSeparator: {
default: false,
},
optionData: String, optionData: String,
listData: Array, listData: Array,
chooseOption: Function, chooseOption: Function,
forNetworks: Boolean, forNetworks: Boolean,
placeholder: {
type: String,
default: "",
},
sizeInput: Number,
}, },
data() { data() {
return { return {
@@ -69,6 +73,7 @@ export default {
.container .container
border-radius: 4px border-radius: 4px
width: fit-content width: fit-content
color: var(--font-dark-blue-color)
background-color: var(--bg-ligth-blue-color) background-color: var(--bg-ligth-blue-color)
&.border &.border
background-color: var(--default-white) background-color: var(--default-white)
@@ -77,25 +82,25 @@ export default {
appearance: none appearance: none
border: none border: none
outline: none outline: none
color: var(--font-black-color-1)
background-color: var(--font-black-color-0) background-color: var(--font-black-color-0)
&::-webkit-calendar-picker-indicator &::-webkit-calendar-picker-indicator
display: none display: none
-webkit-appearance: none -webkit-appearance: none
&.networks &.networks
color: var(--font-dark-blue-color) color: var(--font-dark-blue-color)
&::placeholder
color: var(--font-black-color-1)
.options .options
z-index: 3 z-index: 3
width: max-content
background-color: var(--default-white) background-color: var(--default-white)
border: 2px solid var(--border-light-grey-color) border-radius: 4px
border-top: none box-shadow: var(--default-shadow)
border-radius: 0 0 4px 4px width: 100%
.option .option
color: var(--font-black-color) color: var(--font-black-color)
border-bottom: 1px solid var(--border-light-grey-color)
&:hover &:hover
background-color: var(--btn-blue-color) background-color: var(--btn-blue-color)
color: var(--default-white)
.select-form-separator .select-form-separator
background-color: var(--btn-blue-color-3) background-color: var(--btn-blue-color-3)
height: 24px height: 24px
@@ -103,8 +108,6 @@ export default {
border-radius: 1px border-radius: 1px
.icon .icon
color: var(--font-dark-blue-color) color: var(--font-dark-blue-color)
&:hover
color: var(--btn-blue-color)
&.open &.open
transform: rotate(180deg) transform: rotate(180deg)
</style> </style>

View File

@@ -33,7 +33,7 @@ export default {
calendarLayout: "", calendarLayout: "",
currentDate: moment(), currentDate: moment(),
timeInformation: { timeInformation: {
dayStartTime: "0:00", dayStartTime: "00:00",
dayEndTime: "20:00", dayEndTime: "20:00",
}, },
eventsData: [], eventsData: [],

View File

@@ -2,66 +2,61 @@
.flex.flex-col.gap-y-6.pt-6.pb-7.px-8.event-form.absolute.right-2.bottom-14 .flex.flex-col.gap-y-6.pt-6.pb-7.px-8.event-form.absolute.right-2.bottom-14
.flex.flex-col.gap-y-2 .flex.flex-col.gap-y-2
.flex.justify-between.pt-2 .flex.justify-between.pt-2
span.not-italic.text-xs.opacity-40.leading-3 Ответственный span.text-xs.opacity-40.font-bold.leading-3 Ответственный
.icon-cancel.close-icon.text-xs.cursor-pointer(@click="closeForm") .icon-cancel.close-icon.text-xs.cursor-pointer(@click="closeForm")
base-select.ba-sel( base-select(
width="205px" :size-input="responsibleInputSize"
:option-data="eventData.responsible" :option-data="eventData.responsible"
:list-data="listResponsible" :list-data="listResponsible"
:choose-option="chooseOptionResponsible" :choose-option="chooseOptionResponsible"
placeholder="Выберите ответственного"
separator
) )
.flex.flex-col.gap-y-2 .flex.flex-col.gap-y-2
span.not-italic.text-xs.opacity-40.leading-3 Основная информация span.text-xs.opacity-40.font-bold.leading-3 Основная информация
.flex.gap-x-4.items-center .flex.gap-x-4.items-center
.icon-time.text-xl.icon .icon-time.text-xl.icon
.flex.gap-x-2.items-center .flex.gap-x-2.items-center
.form-item.flex.gap-x-2.px-4.py-2.items-center .time-input.flex.gap-x-2.px-4.py-2.items-center
input.item-input.no-italic.text-base.cursor-text(v-model="eventData.timeEvent.firstTime" type="time" min="08:00" max="18:00") input.item-input.text-base.cursor-text(
v-model="eventData.timeEvent.firstTime"
placeholder ="11:00"
)
span span
.form-item.flex.gap-x-2.px-4.py-2.items-center .time-input.flex.gap-x-2.px-4.py-2.items-center
input.item-input.no-italic.text-base.cursor-text(v-model="eventData.timeEvent.secondTime" type="time" min="08:00" max="18:00") input.item-input.text-base.cursor-text(
v-model="eventData.timeEvent.secondTime"
placeholder ="12:30"
)
.flex.gap-x-4.items-center .flex.gap-x-4.items-center
.icon-person.text-xl.icon .icon-person.text-xl.icon
.form-item.cursor-pointer.flex.gap-x-2.px-4.py-2.items-center .form-item.cursor-pointer.flex.gap-x-2.px-4.py-2.items-center
input.item-input.cursor-text.no-italic.text-base(v-model="eventData.eventClient" type="text" placeholder="ФИО клиента") input.item-input.cursor-text.text-base(v-model="eventData.eventClient" type="text" placeholder="ФИО клиента")
//- .flex.flex-col.gap-y-2(class='additional-information')
//- .flex.gap-x-4.items-center
//- span.not-italic.text-xs.opacity-40.leading-3 Дополнительная информация
//- button-plus(id="addInfo" @click="(e)=>addFriendInfo(e)")
//- base-button(
left-icon="icon-plus"
rounded secondary
:size="24"
:icon-left-size="10"
id="addInfo"
@click="(e)=>addFriendInfo(e)")
//- .flex.gap-x-4.items-center(v-for="(info, index) in listFriendInfo" :key="index")
//- span.ml-1 {{info}}
//- .form-item.cursor-pointer.flex.gap-x-2.px-4.py-2.items-center
//- input.item-input.cursor-pointer.no-italic.text-base(v-model="eventData.friendInfo[info]" type="text" placeholder="Что-то важное")
.flex.flex-col.gap-y-2 .flex.flex-col.gap-y-2
span.not-italic.text-xs.opacity-40.leading-3 Вид события span.text-xs.opacity-40.font-bold.leading-3 Вид события
base-select( base-select(
width="118px" :size-input="kindEventSize"
:option-data="eventData.kindEvent" :option-data="eventData.kindEvent"
:list-data="kindEvents" :list-data="kindEvents"
:choose-option="chooseOptionTypeEvent" :choose-option="chooseOptionTypeEvent"
placeholder="Вид события"
separator
) )
.flex.flex-col.gap-y-2 .flex.flex-col.gap-y-2
.flex.gap-x-4.items-center .flex.gap-x-4.items-center
span.not-italic.text-xs.opacity-40.leading-3 Контакты span.text-xs.opacity-40.font-bold.leading-3 Контакты
base-button( base-button(
left-icon="icon-plus" left-icon="icon-plus"
rounded secondary rounded secondary
:size="24" :size="24"
:icon-left-size="10" :icon-left-size="10"
id="addContact" id="addContact"
@click="(e)=>addFriendInfo(e)") @click="(e)=>addContact(e)")
.flex.gap-x-4.items-center(v-for="(contact, index) in listContacts" :key="index") .flex.gap-x-4.items-center(v-for="(contact, index) in listContacts" :key="index")
.icon-mail.text-xl.icon .icon-mail.text-xl.icon
.form-item.cursor-pointer.flex.gap-x-2.px-4.py-2.items-center .form-item.cursor-pointer.flex.gap-x-2.px-4.py-2.items-center
input.item-input.cursor-text.no-italic.text-base(v-model="eventData.contacts[contact]" type="text" placeholder="E-mail") input.item-input.cursor-text.text-base(v-model="eventData.contacts[contact]" type="text" placeholder="E-mail")
base-button.styled-button.not-italic.text-base.font-semibold( base-button.styled-button.text-base.font-semibold(
:size="40" :size="40"
@click="closeForm" @click="closeForm"
) Создать событие ) Создать событие
@@ -81,18 +76,18 @@ export default {
}, },
data() { data() {
return { return {
listFriendInfo: [1],
listContacts: [1], listContacts: [1],
responsibleInputSize: 22,
kindEventSize: 10,
kindEvents: ["Встреча", "Планерка", "Интервью", "Важная работа"], kindEvents: ["Встреча", "Планерка", "Интервью", "Важная работа"],
eventData: { eventData: {
responsible: "Выберите ответственного", responsible: "",
eventClient: "", eventClient: "",
timeEvent: { timeEvent: {
firstTime: "11:00", firstTime: "",
secondTime: "12:30", secondTime: "",
}, },
// friendInfo: {}, kindEvent: "",
kindEvent: "Вид события",
contacts: {}, contacts: {},
}, },
}; };
@@ -100,16 +95,15 @@ export default {
methods: { methods: {
chooseOptionResponsible(e) { chooseOptionResponsible(e) {
this.eventData.responsible = e.target.id; this.eventData.responsible = e.target.id;
this.responsibleInputSize = this.eventData.responsible
.split(" ")
.join("").length;
}, },
chooseOptionTypeEvent(e) { chooseOptionTypeEvent(e) {
this.eventData.kindEvent = e.target.id; this.eventData.kindEvent = e.target.id;
this.kindEventSize = this.eventData.kindEvent.split(" ").join("").length;
}, },
addFriendInfo(e) { addContact(e) {
if (e.currentTarget.id === "addInfo") {
this.listFriendInfo.push(
this.listFriendInfo[this.listFriendInfo.length - 1] + 1
);
}
if (e.currentTarget.id === "addContact") { if (e.currentTarget.id === "addContact") {
this.listContacts.push( this.listContacts.push(
this.listContacts[this.listContacts.length - 1] + 1 this.listContacts[this.listContacts.length - 1] + 1
@@ -121,8 +115,6 @@ export default {
</script> </script>
<style lang="sass" scoped> <style lang="sass" scoped>
.ba-sel
color: red
.event-form .event-form
height: fit-content height: fit-content
min-width: 448px min-width: 448px
@@ -133,7 +125,7 @@ export default {
.form-item .form-item
border-radius: 4px border-radius: 4px
width: fit-content width: 344px
background-color: var(--bg-ligth-blue-color) background-color: var(--bg-ligth-blue-color)
.item-input .item-input
@@ -148,6 +140,11 @@ export default {
&::placeholder &::placeholder
color: var(--font-black-color-1) color: var(--font-black-color-1)
.time-input
width: 72px
border-radius: 4px
background-color: var(--bg-ligth-blue-color)
.icon .icon
width: 24px width: 24px
height: 24px height: 24px