diff --git a/src/pages/schedule/components/ScheduleTable.vue b/src/pages/schedule/components/ScheduleTable.vue index ff2a0e4..85dccdb 100644 --- a/src/pages/schedule/components/ScheduleTable.vue +++ b/src/pages/schedule/components/ScheduleTable.vue @@ -22,9 +22,14 @@ style="margin-right: 10px" ) span Создать смену - schedule-table-header(:result="result") + schedule-table-header( + :result="result", + :selected-all="selectedAll", + :select="select" + ) schedule-table-body( :serialized="serialized", + :selected="selected", :trim-owner-name="trimOwnerName", :result="result", :choice-cell="choiceCell", @@ -93,6 +98,8 @@ export default { }, activeButton: null, choiceMonth: null, + selected: [], + selectedAll: false, }; }, computed: { @@ -107,6 +114,15 @@ export default { }, }, methods: { + select() { + this.selected = []; + if (!this.selectedAll) { + for (let i in this.serialized) { + this.selected.push(this.serialized[i].id); + } + this.selectedAll = true; + } else this.selectedAll = false; + }, setActiveButton() { this.activeButton = this.buttons.find((e) => e.active); }, diff --git a/src/pages/schedule/components/ScheduleTableBody.vue b/src/pages/schedule/components/ScheduleTableBody.vue index 4663368..b9a6842 100644 --- a/src/pages/schedule/components/ScheduleTableBody.vue +++ b/src/pages/schedule/components/ScheduleTableBody.vue @@ -19,17 +19,25 @@ //- :serialized="serialized", //- :change-shift="changeShift" //- ) - .name-employee.flex.items-center.gap-x-3.pr-9.pl-4 - base-avatar.font-medium.text-sm( - :size="36", - :color="schedule.color", - v-if="!schedule.photo" - ) {{trimInitials(schedule.last_name, schedule.first_name)}} - base-avatar(:size="36", v-else-if="schedule.photo") - img.h-full.object-cover(:src="url + schedule.photo") - .font-semibold.text-sm( - :style="{minWidth: '228px', maxWidth: '228px'}" - ) {{schedule.last_name + " " + schedule.first_name + " " + schedule.patronymic}} + .name-employee.flex.items-center.gap-x-3 + .flex.w-9 + q-checkbox( + v-model="selected", + :val="schedule.id", + :style="{border: 'none', sidth: '36px'}", + size="32px" + ) + .flex.items-center(:style="{minWidth: '357px', maxWidth: '357px'}") + base-avatar.font-medium.text-sm( + :size="36", + :color="schedule.color", + v-if="!schedule.photo" + ) {{trimInitials(schedule.last_name, schedule.first_name)}} + base-avatar(:size="36", v-else-if="schedule.photo") + img.h-full.object-cover(:src="url + schedule.photo") + .font-semibold.text-sm.pl-3( + :style="{minWidth: '228px', maxWidth: '228px'}" + ) {{schedule.last_name + " " + schedule.first_name + " " + schedule.patronymic}} .flex.overflow-hidden .cell.flex.flex-col.items-center.justify-center.m-1.cursor-pointer.transition( v-for="day in result", @@ -40,8 +48,24 @@ :style="{backgroundColor: choiceDay(day, schedule.id) ? choiceColor(day, schedule) : ''}" ) .flex( - :class="{'cell-work': choiceState(day, schedule.id)?.status, 'show-time': showTime}" + v-if="!showTime", + :class="{'cell-work': choiceState(day, schedule.id)?.status}" ) {{choiceDay(day, schedule.id) ? choiceWorks(day, schedule) : '-'}} + .flex.flex-col( + v-else, + :class="{'cell-work': choiceState(day, schedule.id)?.status, 'show-time': showTime}" + ) + .cell-time.flex.justify-center( + :style="{backgroundColor: choiceColor(day, schedule)}" + ) {{choiceStartTime(day, schedule)}} + .cell-time.flex.justify-center( + ) {{choiceEndTime(day, schedule)}} + //- q-draggable-rows(v-model="order") + //- q-draggable-row.row.flex.w-full.h-14(v-for="schedule in serialized", :key="schedule.id", + //- :id="id" + //- v-model="rows[id].depth" + //- :collapsed.sync="rows[id].collapsed" + //- )