Merge branch 'master' into UC-29
This commit is contained in:
@@ -1,38 +1,40 @@
|
||||
<template lang="pug">
|
||||
.flex.box-border.w-full.container.items-center.cursor-pointer(
|
||||
.flex.box-border.container.items-center.cursor-pointer.relative(
|
||||
@click="openSelect"
|
||||
:class="{border: styleBorder, 'py-2.5 px-4':!forNetworks, 'justify-center':forNetworks, 'justify-between':!forNetworks}"
|
||||
:style="{ minWidth : widthSelect + 'px'}"
|
||||
)
|
||||
.relative.flex.flex-col
|
||||
.not-italic.select.cursor-pointer.w-full(v-if="!forNetworks") {{optionData}}
|
||||
.absolute.options(
|
||||
v-show="isSelectOpen"
|
||||
:id="id"
|
||||
class="left-[-18px]"
|
||||
:style="{ minWidth : widthSelect + 'px'}"
|
||||
)
|
||||
.not-italic.option.pl-4.py-1(
|
||||
v-for="responsible in listData"
|
||||
@click="(e) => chooseOption(e)"
|
||||
:key="responsible"
|
||||
:id="responsible"
|
||||
) {{responsible}}
|
||||
.flex.not-italic.select.cursor-pointer.w-full.text-xl.items-center.networks(v-if="forNetworks" :class="optionData")
|
||||
.flex.mr-2
|
||||
input.text-base.select.cursor-pointer(
|
||||
:size="sizeInput"
|
||||
v-if="!forNetworks"
|
||||
v-model="optionData"
|
||||
:placeholder="placeholder"
|
||||
disabled
|
||||
)
|
||||
.absolute.options.top-12.left-0(
|
||||
v-show="isSelectOpen"
|
||||
:id="id"
|
||||
)
|
||||
.option.px-4.py-1(
|
||||
v-for="responsible in listData"
|
||||
@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(
|
||||
v-show="isSelectOpen"
|
||||
class="left-[-11px]"
|
||||
:id="id"
|
||||
:style="{ minWidth : widthSelect + 'px'}")
|
||||
.flex.not-italic.option.justify-center.py-1.text-xl(
|
||||
:id="id")
|
||||
.flex.option.justify-center.py-1.text-xl(
|
||||
v-for="responsible in listData"
|
||||
@click="chooseOption"
|
||||
:key="responsible.network"
|
||||
:id="responsible.network"
|
||||
:class="responsible.icon"
|
||||
)
|
||||
.select-form-separator.cursor-pointer(v-if="withSeparator")
|
||||
.text-sm.ml-2.pt-1.icon-down-arrow.icon.text-center(v-if="!forNetworks" :class="{ open: isSelectOpen}")
|
||||
.select-form-separator.cursor-pointer.mr-6px(v-if="separator")
|
||||
.text-xsm.ml-2.pt-1.icon-down-arrow.icon.text-center(v-if="!forNetworks" :class="{ open: isSelectOpen}")
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -43,14 +45,16 @@ export default {
|
||||
styleBorder: {
|
||||
default: false,
|
||||
},
|
||||
widthSelect: Number,
|
||||
withSeparator: {
|
||||
default: false,
|
||||
},
|
||||
separator: Boolean,
|
||||
optionData: String,
|
||||
listData: Array,
|
||||
chooseOption: Function,
|
||||
forNetworks: Boolean,
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
sizeInput: Number,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -69,6 +73,7 @@ export default {
|
||||
.container
|
||||
border-radius: 4px
|
||||
width: fit-content
|
||||
color: var(--font-dark-blue-color)
|
||||
background-color: var(--bg-ligth-blue-color)
|
||||
&.border
|
||||
background-color: var(--default-white)
|
||||
@@ -77,25 +82,25 @@ export default {
|
||||
appearance: none
|
||||
border: none
|
||||
outline: none
|
||||
color: var(--font-black-color-1)
|
||||
background-color: var(--font-black-color-0)
|
||||
&::-webkit-calendar-picker-indicator
|
||||
display: none
|
||||
-webkit-appearance: none
|
||||
&.networks
|
||||
color: var(--font-dark-blue-color)
|
||||
&::placeholder
|
||||
color: var(--font-black-color-1)
|
||||
.options
|
||||
z-index: 3
|
||||
width: max-content
|
||||
background-color: var(--default-white)
|
||||
border: 2px solid var(--border-light-grey-color)
|
||||
border-top: none
|
||||
border-radius: 0 0 4px 4px
|
||||
border-radius: 4px
|
||||
box-shadow: var(--default-shadow)
|
||||
width: 100%
|
||||
.option
|
||||
color: var(--font-black-color)
|
||||
border-bottom: 1px solid var(--border-light-grey-color)
|
||||
&:hover
|
||||
background-color: var(--btn-blue-color)
|
||||
color: var(--default-white)
|
||||
.select-form-separator
|
||||
background-color: var(--btn-blue-color-3)
|
||||
height: 24px
|
||||
@@ -103,8 +108,6 @@ export default {
|
||||
border-radius: 1px
|
||||
.icon
|
||||
color: var(--font-dark-blue-color)
|
||||
&:hover
|
||||
color: var(--btn-blue-color)
|
||||
&.open
|
||||
transform: rotate(180deg)
|
||||
</style>
|
||||
|
||||
@@ -33,7 +33,7 @@ export default {
|
||||
calendarLayout: "",
|
||||
currentDate: moment(),
|
||||
timeInformation: {
|
||||
dayStartTime: "0:00",
|
||||
dayStartTime: "00:00",
|
||||
dayEndTime: "20:00",
|
||||
},
|
||||
eventsData: [],
|
||||
|
||||
@@ -2,51 +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-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")
|
||||
base-select.ba-sel(
|
||||
width="205px"
|
||||
base-select(
|
||||
:size-input="responsibleInputSize"
|
||||
:option-data="eventData.responsible"
|
||||
:list-data="listResponsible"
|
||||
:choose-option="chooseOptionResponsible"
|
||||
placeholder="Выберите ответственного"
|
||||
separator
|
||||
)
|
||||
.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
|
||||
.icon-time.text-xl.icon
|
||||
.flex.gap-x-2.items-center
|
||||
.form-item.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")
|
||||
.time-input.flex.gap-x-2.px-4.py-2.items-center
|
||||
input.item-input.text-base.cursor-text(
|
||||
v-model="eventData.timeEvent.firstTime"
|
||||
placeholder ="11:00"
|
||||
)
|
||||
span —
|
||||
.form-item.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")
|
||||
.time-input.flex.gap-x-2.px-4.py-2.items-center
|
||||
input.item-input.text-base.cursor-text(
|
||||
v-model="eventData.timeEvent.secondTime"
|
||||
placeholder ="12:30"
|
||||
)
|
||||
.flex.gap-x-4.items-center
|
||||
.icon-person.text-xl.icon
|
||||
.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
|
||||
span.not-italic.text-xs.opacity-40.leading-3 Вид события
|
||||
span.text-xs.opacity-40.font-bold.leading-3 Вид события
|
||||
base-select(
|
||||
width="118px"
|
||||
:size-input="kindEventSize"
|
||||
:option-data="eventData.kindEvent"
|
||||
:list-data="kindEvents"
|
||||
:choose-option="chooseOptionTypeEvent"
|
||||
placeholder="Вид события"
|
||||
separator
|
||||
)
|
||||
.flex.flex-col.gap-y-2
|
||||
.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(
|
||||
left-icon="icon-plus"
|
||||
rounded secondary
|
||||
:size="24"
|
||||
:icon-left-size="10"
|
||||
id="addContact"
|
||||
@click="(e)=>addFriendInfo(e)")
|
||||
@click="(e)=>addContact(e)")
|
||||
.flex.gap-x-4.items-center(v-for="(contact, index) in listContacts" :key="index")
|
||||
.icon-mail.text-xl.icon
|
||||
.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")
|
||||
base-button.styled-button.not-italic.text-base.font-semibold(
|
||||
input.item-input.cursor-text.text-base(v-model="eventData.contacts[contact]" type="text" placeholder="E-mail")
|
||||
base-button.styled-button.text-base.font-semibold(
|
||||
:size="40"
|
||||
@click="closeForm"
|
||||
) Создать событие
|
||||
@@ -66,17 +76,18 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
listFriendInfo: [1],
|
||||
listContacts: [1],
|
||||
responsibleInputSize: 22,
|
||||
kindEventSize: 10,
|
||||
kindEvents: ["Встреча", "Планерка", "Интервью", "Важная работа"],
|
||||
eventData: {
|
||||
responsible: "Выберите ответственного",
|
||||
responsible: "",
|
||||
eventClient: "",
|
||||
timeEvent: {
|
||||
firstTime: "11:00",
|
||||
secondTime: "12:30",
|
||||
firstTime: "",
|
||||
secondTime: "",
|
||||
},
|
||||
kindEvent: "Вид события",
|
||||
kindEvent: "",
|
||||
contacts: {},
|
||||
},
|
||||
};
|
||||
@@ -84,16 +95,15 @@ export default {
|
||||
methods: {
|
||||
chooseOptionResponsible(e) {
|
||||
this.eventData.responsible = e.target.id;
|
||||
this.responsibleInputSize = this.eventData.responsible
|
||||
.split(" ")
|
||||
.join("").length;
|
||||
},
|
||||
chooseOptionTypeEvent(e) {
|
||||
this.eventData.kindEvent = e.target.id;
|
||||
this.kindEventSize = this.eventData.kindEvent.split(" ").join("").length;
|
||||
},
|
||||
addFriendInfo(e) {
|
||||
if (e.currentTarget.id === "addInfo") {
|
||||
this.listFriendInfo.push(
|
||||
this.listFriendInfo[this.listFriendInfo.length - 1] + 1
|
||||
);
|
||||
}
|
||||
addContact(e) {
|
||||
if (e.currentTarget.id === "addContact") {
|
||||
this.listContacts.push(
|
||||
this.listContacts[this.listContacts.length - 1] + 1
|
||||
@@ -105,8 +115,6 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="sass" scoped>
|
||||
.ba-sel
|
||||
color: red
|
||||
.event-form
|
||||
height: fit-content
|
||||
min-width: 448px
|
||||
@@ -117,7 +125,7 @@ export default {
|
||||
|
||||
.form-item
|
||||
border-radius: 4px
|
||||
width: fit-content
|
||||
width: 344px
|
||||
background-color: var(--bg-ligth-blue-color)
|
||||
|
||||
.item-input
|
||||
@@ -132,6 +140,11 @@ export default {
|
||||
&::placeholder
|
||||
color: var(--font-black-color-1)
|
||||
|
||||
.time-input
|
||||
width: 72px
|
||||
border-radius: 4px
|
||||
background-color: var(--bg-ligth-blue-color)
|
||||
|
||||
.icon
|
||||
width: 24px
|
||||
height: 24px
|
||||
|
||||
Reference in New Issue
Block a user