diff --git a/src/pages/schedule/TheSchedule.vue b/src/pages/schedule/TheSchedule.vue index ded7da4..7d7a8a3 100644 --- a/src/pages/schedule/TheSchedule.vue +++ b/src/pages/schedule/TheSchedule.vue @@ -3,15 +3,14 @@ .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" ) schedule-body( - :employee-list="employeeList", :schedules-employee="fetchSchedulesEmployee", :schedule-list="scheduleList", :serialized="serialized", - :data-schedule="dataSchedule", :buttons="buttons", :start-month="startMonth", :clear-employee="clearEmployee", @@ -20,11 +19,9 @@ @schedules="distributeRequest" ) schedule-bar( - :data-schedule="dataSchedule", :buttons="buttons", - :clear-employee="clearEmployee", :times="times", - :create-schedules="postCreateSchedules" + :create-schedules="postCreateSchedules", ) @@ -43,13 +40,8 @@ export default { scheduleList: [], clearEmployee: [], serialized: [], - dataSchedule: { - status: "", - date: null, - startTime: "", - endTime: "", - }, times: { start_time: "", end_time: "" }, + timesShift: { start_time: "", end_time: "" }, buttons: [ { class: "button-work", @@ -141,7 +133,6 @@ export default { } }); this.serialized = serialized; - this.filterEmployee(); }, filterEmployee() { @@ -217,6 +208,19 @@ export default { switchNextMonth() { this.startMonth = this.startMonth.clone().add(1, "M"); }, + setTime() { + 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 +229,7 @@ export default { }, mounted() { this.fetchSchedules(); + this.setTime(); }, }; diff --git a/src/pages/schedule/components/FormChangeShift.vue b/src/pages/schedule/components/FormChangeShift.vue index 4615fd5..4178087 100644 --- a/src/pages/schedule/components/FormChangeShift.vue +++ b/src/pages/schedule/components/FormChangeShift.vue @@ -11,8 +11,8 @@ base-custom-select(v-model="currentEmployee", label="Текущий сотрудник") base-custom-select(v-model="currentEmployee", label="Замена сотрудника") .time-wrapper.flex.justify-center - base-input-time.px-4.item-input.text-base(label="Начало") - base-input-time.px-4.item-input.text-base(label="Конец") + base-input-time.px-4.item-input.text-base(label="Начало", v-model="timesShift.start_time") + base-input-time.px-4.item-input.text-base(label="Конец", v-model="timesShift.end_time") .flex.justify-center base-button.font-semibold(:size="40") Сохранить @@ -26,7 +26,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/ScheduleBar.vue b/src/pages/schedule/components/ScheduleBar.vue index 572491a..b5df582 100644 --- a/src/pages/schedule/components/ScheduleBar.vue +++ b/src/pages/schedule/components/ScheduleBar.vue @@ -35,9 +35,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 31b0a77..0282513 100644 --- a/src/pages/schedule/components/ScheduleHeader.vue +++ b/src/pages/schedule/components/ScheduleHeader.vue @@ -1,7 +1,12 @@ @@ -32,11 +36,13 @@ 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 }, props: { startMonth: Object, + timesShift: Object, }, data() { return { @@ -99,6 +105,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