跳到主要内容

getTaskBy

Description

根据给定的条件查找任务

getTaskBy: (propertyName: string | GanttCallback, propertyValue?: string | number | boolean | any[], types?: any) => Array<Task>

Parameters

  • propertyName - (required) string | function - 要匹配的属性名或过滤函数
  • propertyValue - (optional) string | number | boolean | array - 属性对应的匹配值
  • types - (optional) object - 指定要包含在结果中的任务类型的对象

Returns

  • tasks - (Array <Task>) - 符合条件的任务对象数组

Example

// 基础搜索
const userTasks = gantt.getTaskBy("user_id", [5]);

// 使用过滤函数
let userTasks = gantt.getTaskBy(function(task){
return task.user_id == 5 || !task.user_id;
});

userTasks = gantt.getTaskBy(task => task.user_id == 5);

Details

  • 此方法允许你根据属性值选择任务,例如查找分配给特定用户的任务或已完成的任务。
  • 调用 gantt.getTaskBy(propertyName, propertyValue) 时,使用的是宽松相等比较("双等号",==)。
  • gantt.getTaskBy(propertyName, propertyValue) 的结果可能会被 gantt 缓存,因此这种形式可能比使用过滤函数版本 gantt.getTaskBy((task: object) => boolean) 更快。

默认情况下,gantt.getTaskBy() 只返回匹配条件的任务和里程碑,排除项目项。

如果要包含所有类型的记录,可以使用第三个参数:

gantt.getTaskBy("progress", 1, { task: true, project: true, milestone: true });

如果只想获取特定类型的项目,可以在第三个参数中指定:

gantt.getTaskBy("progress", 1, { project: true})

Change log

  • types 参数在 v8.0 中引入