From ff134d47869531fe4d74306142ee9bece9a24a7f Mon Sep 17 00:00:00 2001 From: ShineKOT <1917095344@qq.com> Date: Mon, 29 Sep 2025 20:27:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../schedule-table/schedule-table-type.ts | 32 ++++++++++++++++++- .../schedule-table/schedule-table.scss | 2 +- .../controller/render-layer.controller.ts | 2 +- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/resource-scheduler/components/schedule-table/schedule-table-type.ts b/src/resource-scheduler/components/schedule-table/schedule-table-type.ts index 6f0cc37..151f900 100644 --- a/src/resource-scheduler/components/schedule-table/schedule-table-type.ts +++ b/src/resource-scheduler/components/schedule-table/schedule-table-type.ts @@ -4,7 +4,7 @@ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ /* eslint-disable @typescript-eslint/explicit-function-return-type */ import { PropType } from 'vue'; -import { IGlobalConfig } from '../../interface'; +import { IGlobalConfig, IScheduleResource } from '../../interface'; import Variables from '../../constant/vars'; // 调度表格属性 @@ -235,6 +235,36 @@ export const ScheduleTableProps = { default: () => true, }, + /** + * 拖拽资源前处理函数属性 + * @description 在任务元素开始拖拽时执行,用于处理拖拽前的逻辑 + * @type {Function} 处理函数 + * @default () => true 默认返回true,表示允许拖拽操作 + */ + beforeResourceDrop: { + type: Function as PropType< + (dragData: Record) => Promise + >, + default: () => true, + }, + + /** + * 拖拽任务前处理函数属性 + * @description 在任务元素开始拖拽时执行,用于处理拖拽前的逻辑 + * @type {Function} 处理函数 + * @default () => true 默认返回true,表示允许拖拽操作 + */ + beforeTaskDrop: { + type: Function as PropType< + ( + dragData: Record, + resource: IScheduleResource, + timeRange: { startTime: Date; endTime: Date }, + ) => Promise + >, + default: () => true, + }, + /** * 拖拽完成处理函数属性 * @description 在任务元素完成拖拽时执行,用于处理拖拽完成后的逻辑 diff --git a/src/resource-scheduler/components/schedule-table/schedule-table.scss b/src/resource-scheduler/components/schedule-table/schedule-table.scss index 5a90fec..eaa22aa 100644 --- a/src/resource-scheduler/components/schedule-table/schedule-table.scss +++ b/src/resource-scheduler/components/schedule-table/schedule-table.scss @@ -7,7 +7,7 @@ position: relative; padding: 0; margin: 0; - overflow-y: auto; + overflow: hidden scroll; border: none; .absolute-item { diff --git a/src/resource-scheduler/controller/render-layer.controller.ts b/src/resource-scheduler/controller/render-layer.controller.ts index 35fbe9a..1f77260 100644 --- a/src/resource-scheduler/controller/render-layer.controller.ts +++ b/src/resource-scheduler/controller/render-layer.controller.ts @@ -160,7 +160,7 @@ export class RenderLayerController { const startDate = new Date(config.startTime); startDate.setHours(0, 0, 0, 0); const endDate = new Date(config.endTime); - endDate.setHours(23, 59, 59, 59); + endDate.setHours(0, 0, 0, 0); // 检查任务的开始时间和结束时间是否有效 if (task.start >= task.end) return false; // 如果任务的结束时间小于全局开始时间,则任务无效 -- Gitee