配置
调整 DHTMLX To Do List 的设置以满足您的需求。可用的配置选项包括:
- 配置显示任务完成进度的徽章外观
- 配置日期格式
- 配置或禁用任务的拖放功能
- 禁用任务截止日期验证
- 更改标记任务完成的模式
- 配置工具栏外观
- 管理更改历史
- 配置已完成任务的隐藏方式
- 以只读模式初始化 To Do List
若要在初始化后动态更改配置参数,请使用 setConfig() 方法。该方法会销毁当前组件并使用合并后的设置重新创建。之后调用对应的 Toolbar setConfig() 以将工具栏重新绑定到新的 API。
任务
已完成子任务计数器
更改显示已完成子任务数量的计数器类型。

默认情况下,每个父任务以已完成子任务数与子任务总数之比的形式显示计数器。
若要将计数器值显示为百分比,请将 taskShape.counter.type 设置为 "percentage"。详情请参阅 taskShape 参考。以下示例将计数器切换为百分比模式:
const list = new ToDo("#root", {
tasks,
users,
projects,
taskShape: {
counter: {
type: "percentage" // 默认为 "number"
}
}
});
相关示例: To do list. 子任务计数器与日期格式
日期格式
默认情况下,To Do List 以 "%d %M %Y" 格式(例如,09 Mar 2033)显示日期。若要指定其他格式,请使用 taskShape 属性的 date 参数。以下代码片段设置斜线分隔的日期格式:
const list = new ToDo("#root", {
tasks,
users,
projects,
taskShape: {
date: {
format: "%d/%m/%Y", // 默认为 "%d %M %Y"
validate: true
}
}
});
相关示例: To do list. 子任务计数器与日期格式
查看可用字符列表。
拖放
拖放功能默认启用。选择一个或多个任务,然后一次性拖动整个选区。在拖放过程中按住 Alt 键可创建所选任务的副本。
使用 drag 属性可以:
- 防止折叠的任务在拖放悬停时展开
- 完全禁用拖放功能
以下示例使折叠的任务在用户将项目拖过它们时保持关闭状态:
const list = new ToDo("#root", {
tasks: [
{ id: "1", text: "Task 1 #tag1" },
...
],
drag: {
expand: false // 默认为 true
}
});
以下代码片段完全禁用拖放功能:
const list = new ToDo("#root", {
tasks: [
{ id: "1", text: "Task 1 #tag1" },
...
],
drag: false // 默认为 true
});
订阅拖放事件以追踪拖放生命周期:
start-drag— 当用户开始拖动任务时触发;提供源任务 id 和模式("move"或"copy")drag— 当用户拖动任务时持续触发end-drag— 拖放完成时触发;提供目标 id、放置位置("top"、"bottom"、"in"或null)以及模式
以下代码片段记录拖放操作的开始和结束:
list.api.on("start-drag", ({ start, mode }) => {
console.log("drag started from", start, "in", mode, "mode");
});
list.api.on("end-drag", ({ target, dropPosition, mode }) => {
console.log("dropped on", target, "at", dropPosition, "in", mode, "mode");
});
Change log: start-drag 和 end-drag 事件在 v1.1 中新增。
截止日期验证
如果为任务指定了截止日期,截止日期验证会追踪任务完成情况。任务未逾期时截止日期显示为绿色。

逾期任务的日期显示为红色。
验证默认启用。若要禁用,请将 taskShape.date.validate 设置为 false。详情请参阅 taskShape 参考。以下代码片段关闭截止日期验证:
const list = new ToDo("#root", {
tasks,
users,
projects,
taskShape: {
date: {
format: "%d %M %Y",
validate: false // 默认为 true
}
}
});
在此配置下,截止日期显示为灰色。
标记任务完成的模式
默认情况下,To Do List 以 "auto" 模式勾选和取消勾选任务:
- 将任务的所有子任务标记为已完成 → 父任务自动变为已完成
- 将父任务标记为已完成 → 所有子任务自动变为已完成
- 将已完成任务的至少一个子任务标记为未完成 → 父任务自动变为未完成
- 将父任务标记为未完成 → 所有子任务自动变为未完成
若要禁用此行为并激活 "manual" 模式,请将 taskShape.completed.behavior 设置为 "manual"。详情请参阅 taskShape 参考。以下示例激活手动模式:
const list = new ToDo("#root", {
tasks,
users,
projects,
taskShape: {
completed: {
behavior: "manual" // 默认为 "auto"
}
}
});
相关示例: To do list. 标记父任务完成的两种方式