From 35bddc227b55da543a1a58e6b8457834f0ba33c6 Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Thu, 29 Dec 2022 12:28:28 +0300 Subject: [PATCH 1/2] =?UTF-8?q?[WIP]=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B5=D0=BA=D1=83=D1=89=D0=B5=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=B2=D1=80=D0=B5=D0=BC=D0=BD=D0=B8=20=D0=B2=20=D1=80?= =?UTF-8?q?=D0=B0=D1=81=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B8=20=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0=D1=86=D0=B8=D1=8E=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D0=BA=D0=BE=D1=88=D0=BA=D0=BE=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D0=BD=D1=8B=20=D1=81=D0=BC=D0=B5=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/schedule/TheSchedule.vue | 18 +++++++++- .../schedule/components/FormChangeShift.vue | 12 +++++-- .../schedule/components/ScheduleHeader.vue | 33 +++++++++++++++---- 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/src/pages/schedule/TheSchedule.vue b/src/pages/schedule/TheSchedule.vue index ded7da4..2f735cd 100644 --- a/src/pages/schedule/TheSchedule.vue +++ b/src/pages/schedule/TheSchedule.vue @@ -3,6 +3,7 @@ .schedule-wrapper.relative.flex.flex-col.px-6.py-6.h-full.w-full.gap-y-5 schedule-header( :start-month="startMonth", + :times-shift="timesShift", @switch-previous-month="switchPreviousMonth", @switch-next-month="switchNextMonth" ) @@ -24,7 +25,7 @@ :buttons="buttons", :clear-employee="clearEmployee", :times="times", - :create-schedules="postCreateSchedules" + :create-schedules="postCreateSchedules", ) @@ -50,6 +51,7 @@ export default { endTime: "", }, times: { start_time: "", end_time: "" }, + timesShift: { start_time: "", end_time: "" }, buttons: [ { class: "button-work", @@ -217,6 +219,19 @@ export default { switchNextMonth() { this.startMonth = this.startMonth.clone().add(1, "M"); }, + houres() { + let now = new Date(); + let hour = now.getHours(); + let minute = now.getMinutes(); + let localDatetime = + (hour < 10 ? "0" + hour.toString() : hour) + + ":" + + (minute < 10 ? "0" + minute.toString() : minute); + this.times.start_time = localDatetime; + this.times.end_time = localDatetime; + this.timesShift.start_time = localDatetime; + this.timesShift.end_time = localDatetime; + }, }, watch: { startMonth() { @@ -225,6 +240,7 @@ export default { }, mounted() { this.fetchSchedules(); + this.houres(); }, }; diff --git a/src/pages/schedule/components/FormChangeShift.vue b/src/pages/schedule/components/FormChangeShift.vue index 322bc1f..b65a0f4 100644 --- a/src/pages/schedule/components/FormChangeShift.vue +++ b/src/pages/schedule/components/FormChangeShift.vue @@ -19,10 +19,16 @@ .time-wrapper.flex.justify-center .flex.flex-col.py-14px.px-4.gap-y-14px.items-center .text-xxs.opacity-40.font-bold Начало - base-input-time.item-input.text-base.select(:width-input="40") + base-input-time.item-input.text-base.select( + :width-input="40", + v-model:value="timesShift.start_time" + ) .flex.flex-col.py-14px.px-4.gap-y-14px.items-center .text-xxs.opacity-40.font-bold Конец - base-input-time.item-input.text-base.select(:width-input="40") + base-input-time.item-input.text-base.select( + :width-input="40", + v-model:value="timesShift.end_time" + ) .flex.justify-center base-button.font-semibold(:size="40") Сохранить @@ -36,7 +42,7 @@ import BaseButton from "@/components/base/BaseButton.vue"; export default { name: "FormChangeShift", components: { BaseCustomSelect, BaseInputDate, BaseInputTime, BaseButton }, - props: { closeForm: Function }, + props: { closeForm: Function, timesShift: Object }, data() { return { currentEmployee: { label: "", id: null }, diff --git a/src/pages/schedule/components/ScheduleHeader.vue b/src/pages/schedule/components/ScheduleHeader.vue index 31b0a77..2293caf 100644 --- a/src/pages/schedule/components/ScheduleHeader.vue +++ b/src/pages/schedule/components/ScheduleHeader.vue @@ -1,7 +1,12 @@ @@ -37,6 +41,7 @@ export default { components: { BaseButton, FormChangeShift }, props: { startMonth: Object, + timesShift: Object, }, data() { return { @@ -99,6 +104,22 @@ export default { .text color: var(--font-dark-blue-color) -.today - opacity: 0.5 +.form-enter-from + opacity: 0 + transform: translateY(300px) + pointer-events: none + +.form-enter-active + transition: 0.5s ease + +.form-leave-to + opacity: 0 + transform: translateY(300px) + pointer-events: none + +.form-leave-active + transition: 0.5s ease + +.form-move + transition: 0.5s ease From 01e5ed06b25e3297a4899e7e99de308c5e2c137f Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Thu, 29 Dec 2022 17:41:38 +0300 Subject: [PATCH 2/2] =?UTF-8?q?[WIP]=20=D0=A4=D0=B8=D0=BA=D1=81=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D1=80?= =?UTF-8?q?=D0=B0=D1=81=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F,=20?= =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20=D0=BD=D0=B5=D0=BD=D1=83?= =?UTF-8?q?=D0=B6=D0=BD=D1=8B=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/schedule/TheSchedule.vue | 15 ++------------- src/pages/schedule/components/ScheduleBar.vue | 2 -- src/pages/schedule/components/ScheduleBody.vue | 13 ++----------- src/pages/schedule/components/ScheduleHeader.vue | 1 + 4 files changed, 5 insertions(+), 26 deletions(-) diff --git a/src/pages/schedule/TheSchedule.vue b/src/pages/schedule/TheSchedule.vue index 2f735cd..7d7a8a3 100644 --- a/src/pages/schedule/TheSchedule.vue +++ b/src/pages/schedule/TheSchedule.vue @@ -8,11 +8,9 @@ @switch-next-month="switchNextMonth" ) schedule-body( - :employee-list="employeeList", :schedules-employee="fetchSchedulesEmployee", :schedule-list="scheduleList", :serialized="serialized", - :data-schedule="dataSchedule", :buttons="buttons", :start-month="startMonth", :clear-employee="clearEmployee", @@ -21,9 +19,7 @@ @schedules="distributeRequest" ) schedule-bar( - :data-schedule="dataSchedule", :buttons="buttons", - :clear-employee="clearEmployee", :times="times", :create-schedules="postCreateSchedules", ) @@ -44,12 +40,6 @@ export default { scheduleList: [], clearEmployee: [], serialized: [], - dataSchedule: { - status: "", - date: null, - startTime: "", - endTime: "", - }, times: { start_time: "", end_time: "" }, timesShift: { start_time: "", end_time: "" }, buttons: [ @@ -143,7 +133,6 @@ export default { } }); this.serialized = serialized; - this.filterEmployee(); }, filterEmployee() { @@ -219,7 +208,7 @@ export default { switchNextMonth() { this.startMonth = this.startMonth.clone().add(1, "M"); }, - houres() { + setTime() { let now = new Date(); let hour = now.getHours(); let minute = now.getMinutes(); @@ -240,7 +229,7 @@ export default { }, mounted() { this.fetchSchedules(); - this.houres(); + this.setTime(); }, }; diff --git a/src/pages/schedule/components/ScheduleBar.vue b/src/pages/schedule/components/ScheduleBar.vue index 50424a2..ac8cb04 100644 --- a/src/pages/schedule/components/ScheduleBar.vue +++ b/src/pages/schedule/components/ScheduleBar.vue @@ -39,9 +39,7 @@ export default { name: "ScheduleBar", components: { BaseButton, BaseCustomSelect, BaseInputTime, BaseInputDate }, props: { - dataSchedule: Object, buttons: Array, - clearEmployee: Array, times: Object, createSchedules: Function, }, diff --git a/src/pages/schedule/components/ScheduleBody.vue b/src/pages/schedule/components/ScheduleBody.vue index 4460e7e..2def38c 100644 --- a/src/pages/schedule/components/ScheduleBody.vue +++ b/src/pages/schedule/components/ScheduleBody.vue @@ -26,10 +26,10 @@ v-for="day in result", :key="day", :id="schedule.id + day", - @click="choiceCell(day, schedule.id, schedule)", + @click="choiceCell(day, schedule.id, schedule); saveEmployee()", :class="choiceState(day, schedule.id)", :style="{backgroundColor: choiceDay(day, schedule.id) ? choiceColor(day, schedule) : ''}" - ) + ) .flex( :class="{'cell-work': choiceState(day, schedule.id).status}" ) {{choiceDay(day, schedule.id) ? choiceWorks(day, schedule) : ''}} @@ -74,15 +74,8 @@ export default { name: "ScheduleBody", components: { BaseModal, BaseButton, BaseCustomSelect }, props: { - employeeList: { - type: Array, - default() { - return []; - }, - }, scheduleList: Array, serialized: Array, - dataSchedule: Object, buttons: Array, startMonth: Object, clearEmployee: Array, @@ -91,13 +84,11 @@ export default { return { days: "", result: [], - showSelect: false, employee: [], currentEmployee: { label: "", id: null, }, - curWork: "", dateInterval: { id: "", start: "", diff --git a/src/pages/schedule/components/ScheduleHeader.vue b/src/pages/schedule/components/ScheduleHeader.vue index 2293caf..0282513 100644 --- a/src/pages/schedule/components/ScheduleHeader.vue +++ b/src/pages/schedule/components/ScheduleHeader.vue @@ -36,6 +36,7 @@ import * as moment from "moment"; import BaseButton from "@/components/base/BaseButton.vue"; import FormChangeShift from "@/pages/schedule/components/FormChangeShift.vue"; + export default { name: "ScheduleHeader", components: { BaseButton, FormChangeShift },