parse

загружает данные из клиентского ресурса

void parse(string | DataToLoad data, [string type] );
datastring | DataToLoadстрока или объект, представляющий данные
typestringнеобязательный, ('json', 'xml') тип данных. Значение по умолчанию - 'json'

Example

gantt.parse({
    data:[
        {id:1, text:"Project #2", start_date:"01-04-2023", duration:18},
        {id:2, text:"Task #1",    start_date:"02-04-2023", duration:8,
            progress:0.6, parent:1},
        {id:3, text:"Task #2",    start_date:"11-04-2023", duration:8,
            progress:0.6, parent:1}
    ],
    links:[
        { id:1, source:1, target:2, type:1},
        { id:2, source:2, target:3, type:0}
    ]
});

Related samples

Details

Gantt ожидает, что массив с задачами будет называться либо data, либо tasks, тогда как массив с ссылками будет называться links.

Это список ожидаемых свойств:

  • data - ([] | NewTask[]) - массив с данными задач
  • links? - (Link[]) - массив с данными ссылок
  • resources? - (NewResourceItem[]) - массив с данными ресурсов
  • assignments? - (NewAssignmentItem[]) - массив с данными назначений
  • collections? - (Сollections) - объект, содержащий массивы с пользовательскими данными
gantt.parse({
    data: [
        { id: 1, start_date: "2025-09-23", duration: 42, 
            text: "House Construction" },
        { id: 2, start_date: "2025-12-02", duration: 60, 
            text: "House Construction" },
    ],
    "links": [
        { id: "1", source: "1", target: "2", type: "0" },
    ],
    "resources": [
        { id: 1, text: "Anna, Architect", unit: "hours/day", 
            default_value: 8, type: "work" },
    ],
    "assignments": [
      { task_id: "1", resource_id: "1", value: "8" },
      { task_id: "2", resource_id: "1", value: "8", 
            mode: "fixedDates", start_date: "2025-09-23", 
            end_date: "2025-09-25", duration: 4, delay: 2,  },
      { task_id: "2", resource_id: "1", value: "8", 
            start_date: new Date("2025-09-23 00:00:00"), 
            end_date: new Date("2025-09-26 00:00:00"), },
    ]
})

Массив data или tasks ожидает объект NewTask, который отличается от объекта Task. Это может быть строка или пустой объект. Он может содержать те же свойства, что и объект Task, и вы можете добавлять туда любые пользовательские свойства. Разница заключается в том, что некоторые свойства объекта Task, начинающиеся со знака $, игнорируются, и даты могут иметь тип строка. Описание типа:

  • NewTask - (string | {} | object) - объект задачи, который будет добавлен в Gantt. Он может иметь следующие свойства:
    • id? - (string | number) - необязательный, идентификатор задачи, генерируется автоматически, если не задан.
    • start_date? - (string | Date) - необязательный, дата начала задачи.
    • duration? - (number) - необязательный, продолжительность задачи.
    • end_date? - (string | Date) - необязательный, дата завершения задачи.
    • text? - (string) - необязательный, название задачи.
    • open? - (boolean) - необязательный, указывает, будет ли задача открыта при загрузке (для отображения дочерних задач).
    • parent? - (string | number) - необязательный, идентификатор родительской задачи.
    • constraint_date? - (string | Date) - необязательный, дата ограничения задачи.
    • [customProperty: string] - (any) - любое другое свойство, которое вы хотите добавить, включая свойства объекта Task

Это не полный список возможных свойств задачи. Для этого, пожалуйста, обратитесь к этой статье.

gantt.parse({
    data: [
        { id: 1, start_date: "2025-09-23", duration: 42, 
            text: "House Construction" },
    ]
})

Массив links ожидает Link объекты.

gantt.parse({
    data: [],
    links: [
        { id: "1", source: "1", target: "2", type: "0" },
    ]
})

Массив resources ожидает объект NewResourceItem, который может иметь следующие свойства:

  • NewResourceItem - (object) - объект элемента ресурса, который будет добавлен в Gantt. Он может иметь следующие свойства:
    • id? - (string | number) - необязательный, идентификатор ресурса, генерируется автоматически, если не задан
    • parent? - (string | number) - необязательный, идентификатор родительского ресурса
    • text? - (string) - необязательный, название ресурса
    • open? - (boolean) - необязательный, указывает, будет ли ресурс открыт при загрузке (для отображения дочерних элементов)
    • unit? - (string | number) - необязательный, единица измерения назначения ресурса
    • default_value? - (string | number) - необязательный, значение, присваиваемое по умолчанию при добавлении назначения в секции lightbox
    • [customProperty: string] - (any) - любое другое свойство, которое вы хотите добавить
gantt.parse({
    data: [],
    resources: [
        { id: 1, text: "Anna, Architect", unit: "hours/day", 
            default_value: 8, type: "work" },
    ]
})

Массив assignments ожидает объект NewAssignmentItem, который может иметь следующие свойства:

  • NewAssignmentItem - (object) - объект элемента назначения, который будет добавлен в Gantt. Он может иметь следующие свойства:
    • id? - (string | number) - необязательный, идентификатор назначения, генерируется автоматически, если не задан
    • task_id - (string | number) - идентификатор задачи, к которой назначен ресурс
    • resource_id - (string | number) - идентификатор ресурса, назначенного задаче
    • value - (number | string) - необязательный, значение назначения
    • mode? - (string) - необязательный, режим расчета времени назначения ресурса: "default"|"fixedDates"|"fixedDuration"
    • delay? - (number) - необязательный, разница между датой начала назначения и датой начала задачи
    • start_date? - (string | Date) - необязательный, дата начала назначения
    • duration? - (number) - необязательный, продолжительность назначения
    • end_date? - (string | Date) - необязательный, дата окончания назначения
    • [customProperty: string] - (any) - любое другое свойство, которое вы хотите добавить
gantt.parse({
    data: [],
    assignments: [
      { task_id: "1", resource_id: "1", value: "8" },
    ]
})

Объект collections позволяет загружать любые пользовательские данные. Свойства могут иметь любое имя, а значение должно быть массивом, содержащим элементы коллекции:

  • [collectionName: string] - ([] | СollectionItem[]) - массив, содержащий элементы коллекции.

СollectionItem — это объект, который может иметь любые свойства. Для его свойств доступны следующие типы:

  • [itemProperty: string] - (any) - любое пользовательское свойство элемента коллекции.
gantt.parse({
    data: [
        { "id": "1", "text": "Task #1", "priority": 1, 
            "start_date": "02-04-2019", "duration": 1, },
        { "id": "2", "text": "Task #2", "priority": 2,  
            "start_date": "01-04-2019", "duration": 1, },
        { "id": "3", "text": "Task #3", "priority": 3,  
            "start_date": "02-04-2019", "duration": 1, },
        { "id": "4", "text": "Task #4", "priority": 1,  
            "start_date": "03-04-2019", "duration": 1, },
    ],
    links: [],
    collections: {
        task_priority: [
            { key: 1, label: "High" },
            { key: 2, label: "Normal" },
            { key: 3, label: "Low" }
        ]
    }
});

Если вы хотите загрузить данные, которые не содержат задач, вам все равно нужно определить массив задач в объекте с данными, но он может быть пустым:

gantt.parse({
    tasks:[],
    links:[
        { id:1, source:1, target:2, type:1},
        { id:2, source:2, target:3, type:0}
    ]
});


Начиная с версии 8.0, кроме задач и ссылок, вы можете загружать ресурсы и назначения ресурсов в Gantt через метод parse():

gantt.parse({
    tasks: [
        ...,
        {
            id: 5,
            text: "Interior office",
            type: "task",
            start_date: "03-04-2024 00:00",
            duration: 7,
            parent: "2",
            owner: [
                {
                    resource_id: "6",
                    value: 3,
                    start_date: "03-04-2024 00:00",
                    end_date: "05-04-2024 00:00",
                }
            ]
        },
        ...
    ],
    links: [],
    resources: [
        {id: 6, text: "John", unit: "hours/day" },
        {id: 7, text: "Mike", unit: "hours/day" },
        {id: 8, text: "Anna", unit: "hours/day" },
        {id: 9, text: "Bill", unit: "hours/day" },
        {id: 10, text: "Floe", unit: "hours/day" }
    ]
});

Вы можете прочитать больше здесь.

See also
К началу