From 88bd056bb28457c0cc39de9af88eb537914e5eb6 Mon Sep 17 00:00:00 2001 From: Daria Golova Date: Wed, 28 Jun 2023 18:36:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/CalendarBackground.vue | 3 +- .../newCalendar/components/CalendarColumn.vue | 38 ++++++++++++++++++- .../components/CalendarRecordCard.vue | 31 +++++++++------ .../components/CalendarWrapper.vue | 38 ++++++++++++------- .../newCalendar/utils/calendarFunctions.js | 6 +++ src/store/modules/calendar.js | 2 +- 6 files changed, 87 insertions(+), 31 deletions(-) diff --git a/src/pages/newCalendar/components/CalendarBackground.vue b/src/pages/newCalendar/components/CalendarBackground.vue index 0b729b4..8b079a0 100644 --- a/src/pages/newCalendar/components/CalendarBackground.vue +++ b/src/pages/newCalendar/components/CalendarBackground.vue @@ -19,8 +19,7 @@ export default { timeCount() { return ( this.workingHours.end.split(":")[0] - - this.workingHours.start.split(":")[0] + - 1 + this.workingHours.start.split(":")[0] ); }, }, diff --git a/src/pages/newCalendar/components/CalendarColumn.vue b/src/pages/newCalendar/components/CalendarColumn.vue index d23c7ac..5c3e70f 100644 --- a/src/pages/newCalendar/components/CalendarColumn.vue +++ b/src/pages/newCalendar/components/CalendarColumn.vue @@ -8,7 +8,8 @@ v-for="record in filteredRecords", :key="record?.id", :record="record", - :expanded-type="expandedDisplayType" + :expanded-type="expandedDisplayType", + :style="eventCardPosition(record.start, record.end)" ) .footer.flex.items-center.justify-center.bg-white.h-9(v-if="!expandedDisplayType") span.text-smm.color-grey 0 записей @@ -18,12 +19,20 @@ import * as moment from "moment/moment"; import { recordList } from "@/pages/newCalendar/utils/calendarConfig.js"; import CalendarRecordCard from "@/pages/newCalendar/components/CalendarRecordCard.vue"; +import { verifyTime } from "@/pages/newCalendar/utils/calendarFunctions.js"; export default { name: "CalendarColumn", components: { CalendarRecordCard }, props: { date: Object, expandedDisplayType: Boolean, + dayEndTime: Number, + dayStartTime: Number, + }, + data() { + return { + pixelsPerHour: 76, + }; }, computed: { filteredRecords() { @@ -33,11 +42,37 @@ export default { this.date.format("YYYY-MM-DD") ); }, + pixelsPerMinute() { + return this.pixelsPerHour / 60; + }, }, methods: { transformDayName(name) { return name[0]?.toUpperCase() + name?.slice(1); }, + eventCardPosition(startTime, endTime) { + let start = startTime + .slice(11, -4) + .split(":") + .map((elem) => parseInt(elem, 10)); + let end = endTime.slice(11, -4); + let position = + (start[0] - this.dayStartTime) * this.pixelsPerHour + + start[1] * this.pixelsPerMinute + + 4; + if ( + parseInt(start[0], 10) < this.dayStartTime || + verifyTime(end) > this.dayEndTime + ) { + return { + top: "0px", + visibility: "hidden", + }; + } + return { + top: `${position}px`, + }; + }, }, }; @@ -45,7 +80,6 @@ export default {