diff --git a/packages/nc-gui/components/smartsheet/calendar/MonthView.vue b/packages/nc-gui/components/smartsheet/calendar/MonthView.vue index 32cfaad06c..be0ef6ed59 100644 --- a/packages/nc-gui/components/smartsheet/calendar/MonthView.vue +++ b/packages/nc-gui/components/smartsheet/calendar/MonthView.vue @@ -47,6 +47,7 @@ const resizeInProgress = ref(false) const isDragging = ref(false) const dragRecord = ref() +const hoverRecord = ref() const dragTimeout = ref>() const focusedDate = ref(null) @@ -173,7 +174,7 @@ const recordsToDisplay = computed(() => { let currentWeekStart = startDate.startOf('week') const id = record.rowMeta.id ?? getRandomNumbers() - while (currentWeekStart.isSameOrBefore(endDate)) { + while (currentWeekStart.isBefore(endDate)) { const currentWeekEnd = currentWeekStart.endOf('week') const recordStart = currentWeekStart.isBefore(startDate) ? startDate : currentWeekStart const recordEnd = currentWeekEnd.isAfter(endDate) ? endDate : currentWeekEnd @@ -434,9 +435,9 @@ const onResizeEnd = () => { } const onResizeStart = (direction: 'right' | 'left', event: MouseEvent, record: Row) => { - if (!isUIAllowed('dataEdit')) return + if (!isUIAllowed('dataEdit') || draggingId.value) return - if (draggingId.value) return + selectedDate.value = null resizeInProgress.value = true resizeDirection.value = direction resizeRecord.value = record @@ -560,6 +561,7 @@ const dragStart = (event: MouseEvent, record: Row) => { }) dragRecord.value = record + selectedDate.value = null isDragging.value = true dragElement.value = target @@ -829,10 +831,13 @@ const isDateSelected = (date: Date) => { : 'none', }" class="absolute group draggable-record cursor-pointer pointer-events-auto" + @mouseleave="hoverRecord = null" + @mouseover="hoverRecord = record.rowMeta.id" @mousedown.stop="dragStart($event, record)" > (), { +const props = withDefaults(defineProps(), { name: '', date: '', resize: true, selected: false, + hover: false, color: 'blue', size: 'small', showDate: true, @@ -43,7 +45,7 @@ const emit = defineEmits(['resize-start']) 'bg-pink-50': color === 'pink', 'bg-purple-50': color === 'purple', 'group-hover:(border-brand-500 border-2)': resize, - 'border-brand-500 border-2': selected, + '!border-brand-500 border-2': selected || hover, }" class="relative group border-2 border-white" > @@ -65,9 +67,9 @@ const emit = defineEmits(['resize-start'])