翻譯|使用教程|編輯:胡濤|2022-12-14 11:44:18.603|閱讀 218 次
概述:本文給大家講解DHTMLX Gantt使用 DnD 創建/選擇任務,歡迎大家下載最新版試用體驗。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DHTMLX Gantt是用于跨瀏覽器和跨平臺應用程序的功能齊全的Gantt圖表。可滿足項目管理應用程序的大部分開發需求,具備完善的甘特圖圖表庫,功能強大,價格便宜,提供豐富而靈活的JavaScript API接口,與各種服務器端技術(PHP,ASP.NET,Java等)簡單集成,滿足多種定制開發需求。本文給大家講解DHTMLX Gantt使用 DnD 創建/選擇任務,歡迎大家下載最新版試用體驗。
dhtmlxGantt 庫提供了一個擴展,其中包括在時間線中處理任務時的高級拖放功能。
總而言之,click_drag擴展允許:
要開始使用擴展,請使用插件。
要啟用高級拖放,請指定配置選項,并在其對象內從下面的列表中設置必要的屬性:
gantt.config.click_drag = {
callback: onDragEnd,
singleRow: true
};
您可以將以下事件附加到作為 viewPort 傳遞的元素(默認情況下為 gantt.$task_data - 帶有任務欄的時間軸的一部分):
您可以通過在時間軸上直接拖放來創建任務,方法是單擊空白處以設置任務的開始日期并向右拖動以設置其持續時間。
gantt.config.click_drag = { callback: onDragEnd, singleRow: true }; gantt.init("gantt_here"); gantt.parse(tasks); function onDragEnd(startPoint,endPoint,startDate,endDate,tasksBetweenDates,tasksInRow){ if (tasksInRow.length === 1) { var parent = tasksInRow[0]; gantt.createTask({ text:"Subtask of " + parent.text, start_date: gantt.roundDate(startDate), end_date: gantt.roundDate(endDate) }, parent.id); } else if (tasksInRow.length === 0) { gantt.createTask({ text:"New task", start_date: gantt.roundDate(startDate), end_date: gantt.roundDate(endDate) }); } }
click_drag擴展允許使用拖放設置的時間。
可以在多種模式下通過拖放來選擇任務:日期、行或邊界。
gantt.config.multiselect = true; gantt.config.click_drag = { callback: onDragEnd }; gantt.config.autoscroll = true; gantt.config.autoscroll_speed = 50; gantt.init("gantt_here"); gantt.parse(tasks); function onDragEnd(startPoint,endPoint,startDate,endDate,tasksBetweenDates,tasksInRows){ var mode = document.querySelector("input[name=selectMode]:checked").value; switch(mode) { case "1": unselectTasks(); tasksBetweenDates.forEach(function(item) { gantt.selectTask(item.id); }); break; case "2": unselectTasks(); tasksInRows.forEach(function(item) { gantt.selectTask(item.id); }); break; case "3": unselectTasks(); for (var i=0; i<tasksBetweenDates.length; i++) { for (var j=0; j<tasksInRows.length; j++) { if (tasksBetweenDates[i] === tasksInRows[j]) { gantt.selectTask(tasksBetweenDates[i].id); } } } break; return; } }
您也可以使用拖放來創建拆分任務的一部分。
gantt.config.click_drag = { callback: onDragEnd, singleRow: true } gantt.init("gantt_here"); gantt.parse(tasks); function onDragEnd(startPoint,endPoint,startDate,endDate,tasksBetweenDates,tasksInRow){ if (tasksInRow.length === 1) { var currentTask = tasksInRow[0]; if (currentTask.type === "project") { currentTask.render = "split"; gantt.addTask({ text:"Subtask of " + currentTask.text, start_date: gantt.roundDate(startDate), end_date: gantt.roundDate(endDate) }, currentTask.id); } else { var projectName = "new Project " + currentTask.text; var newProject = gantt.addTask({ text: projectName, render: "split", type: "project", }, currentTask.parent); gantt.moveTask( newProject, gantt.getTaskIndex(currentTask.id), gantt.getParent(currentTask.id) ); gantt.moveTask(currentTask.id, 0, newProject); gantt.calculateTaskLevel(currentTask) var newTask = gantt.addTask({ text:"Subtask of " + projectName, start_date: gantt.roundDate(startDate), end_date: gantt.roundDate(endDate) }, newProject); gantt.calculateTaskLevel(newTask); } } else if (tasksInRow.length === 0) { gantt.createTask({ text:"New task", start_date: gantt.roundDate(startDate), end_date: gantt.roundDate(endDate) }); } }
DHTMLX Gantt享有超十年聲譽,支持跨瀏覽器和跨平臺,性價比高,可滿足項目管理控件應用的所有需求,是最完善的甘特圖圖表庫。
慧都2022年終狂歡火熱進行中,全場產品超低價,DHTMLX全系產品享8.8折!了解更多活動詳情,歡迎訪問慧都網咨詢。
甘特圖控件交流群:764148812 歡迎進群交流討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn