Merge branch 'master' into UC-29
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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: [],
|
||||||
|
|||||||
@@ -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-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
|
.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"
|
||||||
) Создать событие
|
) Создать событие
|
||||||
@@ -66,17 +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: "",
|
||||||
},
|
},
|
||||||
kindEvent: "Вид события",
|
kindEvent: "",
|
||||||
contacts: {},
|
contacts: {},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -84,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
|
||||||
@@ -105,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
|
||||||
@@ -117,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
|
||||||
@@ -132,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
|
||||||
|
|||||||
Reference in New Issue
Block a user