Merge pull request #207 from dderbentsov/UC-165

WIP Изменила цвета событий
This commit is contained in:
Daria Golova
2022-12-16 14:22:00 +03:00
committed by GitHub
11 changed files with 161 additions and 62 deletions

View File

@@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2219_45392)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 23.375C18.2822 23.375 23.375 18.2822 23.375 12C23.375 5.71776 18.2822 0.625 12 0.625C5.71776 0.625 0.625 5.71776 0.625 12C0.625 18.2822 5.71776 23.375 12 23.375ZM16.5459 18.8899L18.844 16.5918L14.2478 11.9956L18.8555 7.38793L16.5574 5.08984L11.9497 9.69751L7.35351 5.10131L5.05541 7.39941L9.65161 11.9956L5.06689 16.5803L7.36499 18.8784L11.9497 14.2937L16.5459 18.8899Z" fill="#FF6565"/>
</g>
<defs>
<clipPath id="clip0_2219_45392">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 692 B

View File

@@ -39,6 +39,12 @@
--bg-event-blue-color-1: #93cdf6 --bg-event-blue-color-1: #93cdf6
--bg-event-default-hover-color: #d9e1f9 --bg-event-default-hover-color: #d9e1f9
--border-event-default-color: #b3c3f3 --border-event-default-color: #b3c3f3
--bg-event-orange-color: #ffc75b
--bg-event-orange-color-0: #ffe6b9
--bg-event-orange-color-1: #ffd27c
--bg-event-grey-color: #87898f
--bg-event-grey-color-0: #d3d4d7
--bg-event-grey-color-1: #acadb1
--light-grey-bg-color: #f8f9fa --light-grey-bg-color: #f8f9fa
--btn-green-color: rgba(60, 217, 75, 1) --btn-green-color: rgba(60, 217, 75, 1)
--btn-light-green-color: rgba(60, 217, 75, 0.2) --btn-light-green-color: rgba(60, 217, 75, 0.2)

View File

@@ -4,7 +4,7 @@
:url="url", :url="url",
:team-data="employeesData", :team-data="employeesData",
:open-form-create="openFormCreateEvent", :open-form-create="openFormCreateEvent",
:event-types="eventTypes", :event-status="eventStatus",
@width="changeWidth", @width="changeWidth",
) )
calendar-schedule( calendar-schedule(
@@ -14,7 +14,7 @@
:time-information="timeInformation", :time-information="timeInformation",
:events-data="eventsData", :events-data="eventsData",
:sidebar-width="sidebarWidth", :sidebar-width="sidebarWidth",
:event-types="eventTypes", :event-status="eventStatus",
:change-form-was-closed="changeFormWasClosed", :change-form-was-closed="changeFormWasClosed",
@previous-date="switchPreviousDate", @previous-date="switchPreviousDate",
@next-date="switchNextDate", @next-date="switchNextDate",
@@ -30,7 +30,7 @@
:close-form="closeFormCreateEvent", :close-form="closeFormCreateEvent",
:owners-data="employeesData", :owners-data="employeesData",
:selected-event-data="selectedEvent", :selected-event-data="selectedEvent",
:event-types="eventTypes", :event-status="eventStatus",
:time-information="timeInformation", :time-information="timeInformation",
@clear-selected-event-data="clearSelectedEvent", @clear-selected-event-data="clearSelectedEvent",
@close-change-form="setChangeFormState" @close-change-form="setChangeFormState"
@@ -40,7 +40,7 @@
title="Удаление события" title="Удаление события"
) )
calendar-delete-modal( calendar-delete-modal(
:event-types="eventTypes", :event-types="eventStatus",
:owner-event="selectedEvent", :owner-event="selectedEvent",
:close-modal="changeShowModal", :close-modal="changeShowModal",
@update-events="fetchEventsData" @update-events="fetchEventsData"
@@ -82,11 +82,49 @@ export default {
employeesData: [], employeesData: [],
isOpenForm: false, isOpenForm: false,
changeFormWasClosed: false, changeFormWasClosed: false,
eventTypes: [ eventStatus: [
{ id: 1, label: "Встреча", color: "var(--bg-event-green-color)" }, {
{ id: 2, label: "Планерка", color: "var(--bg-event-red-color)" }, id: 0,
{ id: 3, label: "Интервью", color: "var(--bg-event-yellow-color)" }, label: "Планируется прием",
{ id: 4, label: "Важная работа", color: "var(--bg-event-blue-color)" }, value: "PLANNED",
color: "var(--default-white)",
},
{
id: 1,
label: "Отменил",
value: "CANCELED",
color: "var(--bg-event-grey-color)",
},
{
id: 2,
label: "Ожидается прием",
value: "EXPECTED",
color: "var(--bg-event-yellow-color)",
},
{
id: 3,
label: "Опаздывает",
value: "LATE",
color: "var(--bg-event-orange-color)",
},
{
id: 4,
label: "Идет прием",
value: "RECEPTION",
color: "var(--bg-event-blue-color)",
},
{
id: 5,
label: "Прием завершен",
value: "COMPLETED",
color: "var(--bg-event-green-color)",
},
{
id: 6,
label: "Не пришел",
value: "DID_NOT_COME",
color: "var(--bg-event-red-color)",
},
], ],
}; };
}, },

View File

@@ -19,7 +19,7 @@
:key="event.id + index", :key="event.id + index",
:id="event.id", :id="event.id",
:ownerEvent="event", :ownerEvent="event",
:event-types="eventTypes", :event-status="eventStatus",
:style="eventCardPosition(event.start, event.end)", :style="eventCardPosition(event.start, event.end)",
:change-form-was-closed="changeFormWasClosed", :change-form-was-closed="changeFormWasClosed",
@selected-event="transmitEventData", @selected-event="transmitEventData",
@@ -45,7 +45,7 @@ export default {
dayEvents: Array, dayEvents: Array,
dayEndTime: Number, dayEndTime: Number,
dayStartTime: Number, dayStartTime: Number,
eventTypes: Array, eventStatus: Array,
changeFormWasClosed: Boolean, changeFormWasClosed: Boolean,
scheduleBodyRef: Node, scheduleBodyRef: Node,
url: String, url: String,

View File

@@ -25,7 +25,7 @@
calendar-event-description-card( calendar-event-description-card(
v-if="isOpenDescriptionCard", v-if="isOpenDescriptionCard",
:owner-event="ownerEvent", :owner-event="ownerEvent",
:event-types="eventTypes", :event-status="eventStatus",
@selected-event="transmitEventData", @selected-event="transmitEventData",
@close-description-card="closeDescriptionCard", @close-description-card="closeDescriptionCard",
@delete-event="transmitDeleteEvent", @delete-event="transmitDeleteEvent",
@@ -41,7 +41,7 @@ export default {
props: { props: {
changeFormWasClosed: Boolean, changeFormWasClosed: Boolean,
ownerEvent: Object, ownerEvent: Object,
eventTypes: { eventStatus: {
type: Array, type: Array,
default() { default() {
return []; return [];
@@ -101,42 +101,60 @@ export default {
}; };
}, },
themeColors() { themeColors() {
switch (this.ownerEvent.kind) { switch (this.ownerEvent.status) {
case this.eventTypes[0].label: case this.eventStatus[1].value:
return { return {
"--bg-color": "var(--bg-event-green-color-0)", "--bg-color": "var(--bg-event-grey-color-0)",
"--bg-active": this.eventTypes[0].color, "--bg-active": this.eventStatus[1].color,
"--bg-hover": "var(--bg-event-green-color-1)", "--bg-hover": "var(--bg-event-grey-color-1)",
"--font-color": "var(--font-black-color)", "--font-color": "var(--font-black-color)",
"--font-active-color": "var(--default-white)", "--font-active-color": "var(--default-white)",
"--count-color": this.eventTypes[0].color, "--count-color": this.eventStatus[1].color,
}; };
case this.eventTypes[1].label: case this.eventStatus[2].value:
return {
"--bg-color": "var(--bg-event-red-color-0)",
"--bg-active": this.eventTypes[1].color,
"--bg-hover": "var(--bg-event-red-color-1)",
"--font-color": "var(--font-black-color)",
"--font-active-color": "var(--default-white)",
"--count-color": this.eventTypes[1].color,
};
case this.eventTypes[2].label:
return { return {
"--bg-color": "var(--bg-event-yellow-color-0)", "--bg-color": "var(--bg-event-yellow-color-0)",
"--bg-active": this.eventTypes[2].color, "--bg-active": this.eventStatus[2].color,
"--bg-hover": "var(--bg-event-yellow-color-1)", "--bg-hover": "var(--bg-event-yellow-color-1)",
"--font-color": "var(--font-black-color)", "--font-color": "var(--font-black-color)",
"--font-active-color": "var(--font-black-color)", "--font-active-color": "var(--font-black-color)",
"--count-color": "var(--font-black-color)", "--count-color": "var(--font-black-color)",
}; };
case this.eventTypes[3].label: case this.eventStatus[3].value:
return {
"--bg-color": "var(--bg-event-orange-color-0)",
"--bg-active": this.eventStatus[3].color,
"--bg-hover": "var(--bg-event-orange-color-1)",
"--font-color": "var(--font-black-color)",
"--font-active-color": "var(--font-black-color)",
"--count-color": "var(--font-black-color)",
};
case this.eventStatus[4].value:
return { return {
"--bg-color": "var(--bg-event-blue-color-0)", "--bg-color": "var(--bg-event-blue-color-0)",
"--bg-active": this.eventTypes[3].color, "--bg-active": this.eventStatus[4].color,
"--bg-hover": "var(--bg-event-blue-color-1)", "--bg-hover": "var(--bg-event-blue-color-1)",
"--font-color": "var(--font-black-color)", "--font-color": "var(--font-black-color)",
"--font-active-color": "var(--default-white)", "--font-active-color": "var(--default-white)",
"--count-color": this.eventTypes[3].color, "--count-color": this.eventStatus[4].color,
};
case this.eventStatus[5].value:
return {
"--bg-color": "var(--bg-event-green-color-0)",
"--bg-active": this.eventStatus[5].color,
"--bg-hover": "var(--bg-event-green-color-1)",
"--font-color": "var(--font-black-color)",
"--font-active-color": "var(--default-white)",
"--count-color": this.eventStatus[5].color,
};
case this.eventStatus[6].value:
return {
"--bg-color": "var(--bg-event-red-color-0)",
"--bg-active": this.eventStatus[6].color,
"--bg-hover": "var(--bg-event-red-color-1)",
"--font-color": "var(--font-black-color)",
"--font-active-color": "var(--default-white)",
"--count-color": this.eventStatuss[6].color,
}; };
default: default:
return { return {

View File

@@ -8,8 +8,8 @@
.flex.justify-between.items-center.mb-2 .flex.justify-between.items-center.mb-2
.flex .flex
span.inline-block.font-bold.text-base.mr-3.mt-2px {{ eventTime }} span.inline-block.font-bold.text-base.mr-3.mt-2px {{ eventTime }}
.type.text-xxs.px-14px.py-1(v-if="isCertainType") .type.text-xs.font-medium.flex.items-center.justify-center.px-14px(v-if="isCertainType")
span.type-text {{ ownerEvent.kind }} span.type-text {{ status }}
.right-side.flex.gap-x-4.text-sm(v-if="!disabled") .right-side.flex.gap-x-4.text-sm(v-if="!disabled")
.icon-basket.flex.items-center.cursor-pointer(@click="transmitDeleteEvent") .icon-basket.flex.items-center.cursor-pointer(@click="transmitDeleteEvent")
.icon-edit.flex.items-center.cursor-pointer(@click="transmitEventData") .icon-edit.flex.items-center.cursor-pointer(@click="transmitEventData")
@@ -26,11 +26,12 @@
</template> </template>
<script> <script>
import { statusesDictionary } from "../utils/statusesDictionary.js";
export default { export default {
name: "CalendarEventDescriptionCard", name: "CalendarEventDescriptionCard",
props: { props: {
ownerEvent: Object, ownerEvent: Object,
eventTypes: { eventStatus: {
type: Array, type: Array,
default() { default() {
return []; return [];
@@ -49,31 +50,48 @@ export default {
}; };
}, },
computed: { computed: {
status() {
return this.ownerEvent.status
? statusesDictionary[this.ownerEvent.status]
: "";
},
typeColor() { typeColor() {
switch (this.ownerEvent.kind) { switch (this.ownerEvent.status) {
case this.eventTypes[0].label: case this.eventStatus[1].value:
return { return {
"--bg-color": "var(--bg-event-green-color-0)", "--bg-color": "var(--bg-event-grey-color-0)",
"--font-color": this.eventTypes[0].color, "--font-color": this.eventStatus[1].color,
}; };
case this.eventTypes[1].label: case this.eventStatus[2].value:
return {
"--bg-color": "var(--bg-event-red-color-0)",
"--font-color": this.eventTypes[1].color,
};
case this.eventTypes[2].label:
return { return {
"--bg-color": "var(--bg-event-yellow-color-0)", "--bg-color": "var(--bg-event-yellow-color-0)",
"--font-color": "var(--font-black-color)", "--font-color": "var(--font-black-color)",
}; };
case this.eventTypes[3].label: case this.eventStatus[3].value:
return {
"--bg-color": "var(--bg-event-orange-color-0)",
"--font-color": "var(--font-black-color)",
};
case this.eventStatus[4].value:
return { return {
"--bg-color": "var(--bg-event-blue-color-0)", "--bg-color": "var(--bg-event-blue-color-0)",
"--font-color": this.eventTypes[3].color, "--font-color": this.eventStatus[4].color,
};
case this.eventStatus[5].value:
return {
"--bg-color": "var(--bg-event-green-color-0)",
"--font-color": this.eventStatus[5].color,
};
case this.eventStatus[6].value:
return {
"--bg-color": "var(--bg-event-red-color-0)",
"--font-color": this.eventStatus[6].color,
}; };
default: default:
this.changeType(); return {
return {}; "--bg-color": "var(--bg-event-default-hover-color)",
"--font-color": "var(--btn-blue-color)",
};
} }
}, },
eventTime() { eventTime() {

View File

@@ -11,7 +11,7 @@
span.text-xs.opacity-40.font-bold.leading-3 Вид события span.text-xs.opacity-40.font-bold.leading-3 Вид события
base-custom-select.select( base-custom-select.select(
v-model="kind", v-model="kind",
:items="eventTypes", :items="eventStatus",
placeholder="Вид события" placeholder="Вид события"
) )
.flex.flex-col(class="gap-y-1.5") .flex.flex-col(class="gap-y-1.5")
@@ -99,7 +99,7 @@ export default {
return {}; return {};
}, },
}, },
eventTypes: { eventStatus: {
type: Array, type: Array,
default() { default() {
return []; return [];

View File

@@ -25,7 +25,7 @@
:day-start-time="validateStartTime", :day-start-time="validateStartTime",
:day-end-time="validateEndTime", :day-end-time="validateEndTime",
:style="columnSize", :style="columnSize",
:event-types="eventTypes", :event-status="eventStatus",
:change-form-was-closed="changeFormWasClosed", :change-form-was-closed="changeFormWasClosed",
@selected-event="transmitEventData", @selected-event="transmitEventData",
@reset-change-form="transmitResetChangeForm", @reset-change-form="transmitResetChangeForm",
@@ -97,7 +97,7 @@ export default {
return []; return [];
}, },
}, },
eventTypes: { eventStatus: {
type: Array, type: Array,
default() { default() {
return []; return [];

View File

@@ -19,9 +19,9 @@
@click="openFormCreate", @click="openFormCreate",
v-else v-else
) Создать событие ) Создать событие
calendar-sidebar-event(:is-open="isOpen", :event-type="eventTypes") calendar-sidebar-event(:is-open="isOpen", :event-status="eventStatus")
calendar-sidebar-teammate(:team-data="teamData", :is-open="isOpen", :url="url") calendar-sidebar-teammate(:team-data="teamData", :is-open="isOpen", :url="url")
//- .button-wrapper.flex.justify-center.mb-23px .button-wrapper.flex.justify-center.mb-23px
base-button( base-button(
left-icon="icon-long-arrow", left-icon="icon-long-arrow",
rounded, :size="40", rounded, :size="40",
@@ -47,7 +47,7 @@ export default {
props: { props: {
teamData: Array, teamData: Array,
openFormCreate: Function, openFormCreate: Function,
eventTypes: Array, eventStatus: Array,
url: String, url: String,
}, },
data() { data() {

View File

@@ -3,7 +3,7 @@
.flex.flex-col.items-center(v-if="!isOpen") .flex.flex-col.items-center(v-if="!isOpen")
base-button(left-icon="icon-plus", rounded, :size="24", :icon-left-size="10", secondary) base-button(left-icon="icon-plus", rounded, :size="24", :icon-left-size="10", secondary)
.flex.flex-col.gap-y-2.items-center.mt-4 .flex.flex-col.gap-y-2.items-center.mt-4
.event.flex.items-center.justify-center(v-for="event in eventType" :key="event.id") .event.flex.items-center.justify-center(v-for="event in eventStatus" :key="event.id")
.event-type(:style="{ background: event.color }") .event-type(:style="{ background: event.color }")
.flex.flex-col.gap-y-4.w-full(v-else) .flex.flex-col.gap-y-4.w-full(v-else)
.flex.items-center.justify-between .flex.items-center.justify-between
@@ -16,7 +16,7 @@
secondary secondary
) )
.flex.flex-col.gap-y-2 .flex.flex-col.gap-y-2
.relative.flex.items-center.gap-x-3.h-8(v-for="event in eventType") .relative.flex.items-center.gap-x-3.h-8(v-for="event in eventStatus")
input.custom-input.py-2.pl-6.h-full.not-italic.font-medium.text-xxs( input.custom-input.py-2.pl-6.h-full.not-italic.font-medium.text-xxs(
:placeholder="event.label" :placeholder="event.label"
:key="event.id" :key="event.id"
@@ -34,7 +34,7 @@ export default {
}, },
props: { props: {
isOpen: Boolean, isOpen: Boolean,
eventType: Array, eventStatus: Array,
}, },
}; };
</script> </script>
@@ -43,7 +43,7 @@ export default {
.event .event
width: 32px width: 32px
height: 32px height: 32px
background: var(--bg-event-box-color) background: var(--btn-blue-sec-color)
border-radius: 4px border-radius: 4px
.event-type .event-type
@@ -58,7 +58,7 @@ export default {
border-radius: 4px border-radius: 4px
width: 169px width: 169px
outline: none outline: none
background-color: var(--bg-event-box-color) background-color: var(--btn-blue-sec-color)
&::placeholder &::placeholder
color: var(--font-dark-blue-color) color: var(--font-dark-blue-color)
&:focus &:focus

View File

@@ -0,0 +1,9 @@
export const statusesDictionary = {
PLANNED: "Планируется прием",
EXPECTED: "Ожидается прием",
RECEPTION: "Идет прием",
COMPLETED: "Прием завершен",
DID_NOT_COME: "Не пришел",
LATE: "Опаздывает",
CANCELED: "Отменил",
};