Skip to content

Commit 99ad23f

Browse files
committed
gantt only startTime or endTime drag edit
1 parent b44924f commit 99ad23f

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/components/layout/gantt/GanttTimelineRows.vue

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,8 @@ onUnmounted(() => {
339339
})
340340
341341
function handleMouseMove(event: MouseEvent, date: string, idx: number) {
342+
if (props.ganttInfo.ganttShowKind !== GanttShowKind.DAY)
343+
return
342344
if (curTimelineBar.value && curTimelineBar.value !== event.target) {
343345
isDragging.value = false
344346
dragBarRef.value!.style.display = 'none'
@@ -354,13 +356,13 @@ function handleMouseMove(event: MouseEvent, date: string, idx: number) {
354356
operationDate.value = date
355357
356358
dragBarRef.value!.style.display = 'none'
357-
if (Math.abs(event.clientX - childRect.left) <= 5) {
359+
if (Math.abs(event.clientX - childRect.left) <= 5 && (event.target as HTMLElement).dataset.startTime) {
358360
dragBarRef.value!.style.left = `${leftPosInParent}px`
359361
dragBarRef.value!.style.top = `${childRect.top - parentRect.top - heightDeviation}px`
360362
dragBarRef.value!.style.display = 'block'
361363
dragLinePosition.value = dragLinePositionEnum.LEFT
362364
}
363-
if (Math.abs(childRect.right - event.clientX) <= 5) {
365+
if (Math.abs(childRect.right - event.clientX) <= 5 && (event.target as HTMLElement).dataset.endTime) {
364366
dragBarRef.value!.style.left = `${rightPosInParent - 5}px`
365367
dragBarRef.value!.style.top = `${childRect.top - parentRect.top - heightDeviation}px`
366368
dragBarRef.value!.style.display = 'block'
@@ -396,8 +398,14 @@ async function stopResize(e: PointerEvent, isSave = false) {
396398
if (Number.parseFloat(curTimelineBar.value!.style.width) + travelDistance + Number.parseFloat(curTimelineBar.value!.style.left) > curTimelineRowRef.value!.offsetWidth) {
397399
return
398400
}
399-
curTimelineBar.value!.style.width = `${Number.parseFloat(curTimelineBar.value!.style.width) + travelDistance}px`
400-
cellIdx = Math.floor(((Number.parseFloat(curTimelineBar.value!.style.width) + Number.parseFloat(curTimelineBar.value!.style.left)) / timelineColumnWidth))
401+
if (!curTimelineBar.value!.dataset.startTime) {
402+
curTimelineBar.value!.style.left = dragBarRef.value!.style.left
403+
cellIdx = Math.floor((Number.parseFloat(curTimelineBar.value!.style.left) / timelineColumnWidth))
404+
}
405+
else {
406+
curTimelineBar.value!.style.width = `${Number.parseFloat(curTimelineBar.value!.style.width) + travelDistance}px`
407+
cellIdx = Math.floor(((Number.parseFloat(curTimelineBar.value!.style.width) + Number.parseFloat(curTimelineBar.value!.style.left)) / timelineColumnWidth))
408+
}
401409
}
402410
// 获取到拖拽到哪个格子
403411
if (cellIdx || cellIdx === 0) {
@@ -473,8 +481,9 @@ function updateResize(e: PointerEvent) {
473481
/>
474482
</div>
475483
<div
484+
v-if="props.ganttInfo.ganttShowKind === GanttShowKind.DAY"
476485
ref="dragBarRef"
477-
class="hidden absolute cursor-e-resize bg-red-300 px-1 h-[20px]"
486+
class="hidden absolute cursor-e-resize bg-red-300 px-1 h-[20px] z-[3199]"
478487
/>
479488
</div>
480489
</template>

0 commit comments

Comments
 (0)