Как добавить много свойств в dhtmlx Ганта? - PullRequest
0 голосов
/ 19 ноября 2018

Что мне нужно сделать, это:

  1. Загрузить файл json.

  2. Разрешить пользователям буксировать диаграмму Ганта и изменять значение.

Я знаю это:

gantt.load()

может загрузить файл json и визуализировать информацию на графике.

, но это работает только при использованииthe test.json:

{
"data":[
    {"id":"1", "text":"Project #2", "start_date":"01-04-2013", "duration":18, 
        "progress":0.4, "open": true},
    {"id":"2", "text":"Task #1", "start_date":"02-04-2013", "duration":8, 
        "progress":0.6, "parent":"1"},
    {"id":"3", "text":"Task #2", "start_date":"11-04-2013", "duration":8, 
        "progress":0.6, "parent":"1"}
],
"links":[
    {"id":"1", "source":"1", "target":"2", "type":"1"},
    {"id":"2", "source":"2", "target":"3", "type":"0"},
    {"id":"3", "source":"3", "target":"4", "type":"0"},
    {"id":"4", "source":"2", "target":"5", "type":"2"}
]}

Но мой json более сложный, это массив объектов.

, и у каждого объекта есть много элементов (таких как: OrdetNum, date, start_date ....)

Ниже представлен myjson.json:

 {
"orderFormNumber": "1608T01CY",
"orderNumber": "1608T01CY",
"tasks": "C01*01",
"OriginalTasks": "C01",
"partUnitId": 1,
"sharedCode": "NEWABST",
"processNum": 1,
"processSequence": 1,
"initStartTime": "2018-11-18T16:50:00",
"estimatedTime": 10.833333015441895,
"initEndTime": "2018-11-19T03:39:59",
"estStartTime": "2018-11-15T14:10:00",
"estEndTime": "2018-11-17T07:19:59",
"detailSchedule": null,
"detailSchedulefromCo": null,
"qcSchedule": "2018-11-22T16:30:00",
"fifoStartTime": "2018-11-15T15:44:45",
"fifoEndTime": "2018-11-17T09:34:44",
"acoStartTime": null,
"acoEndTime": null,
"realStartTime": null,
"realEndTime": null,
"processType": "M",
"machineGroup": "M",
"machineGroupSelection": "M",
"prePart": null,
"fifoSelectedMachine": "M02",
"acoSelectedMachine": null,
"designChangesNumber": "1608T01CY",
"machineingStates": 0 }

Но это только один из множества объектов.

Так как я могу использовать gantt.load () длявизуализировать мой файл JSON?

1 Ответ

0 голосов
/ 10 января 2019

Структура вашего объекта не соответствует ожидаемой модели данных Ганта https://docs.dhtmlx.com/gantt/desktop__loading.html#dataproperties

Я имею в виду не количество пользовательских свойств, а отсутствие обязательных свойств, которые ожидает Гант - id, дата начала , длительность (или дата окончания), текст , родитель (если вы хотите вложенные задачи)

Так что, если вы не преобразуете свои данные во что-то, что может анализировать Гант, я не ожидаю, что что-либо будет отображаться.

Если вы не можете изменить формат, возвращаемый с сервера, вам придется преобразоватьданные на стороне клиента

1) загрузить объект json / data клиенту https://docs.dhtmlx.com/gantt/desktop__server_side.html#customrequestheadersandparameters

2) преобразовать его в объект, который может понять Гант.https://docs.dhtmlx.com/gantt/desktop__supported_data_formats.html#json Важно, чтобы ваши объекты имели свойства id / start_date / end_date / duration / parent.Вы можете иметь любое количество дополнительных свойств - они будут доступны для общего доступа api

3) загрузить результирующий набор данных в gantt с помощью gantt.parse.Или вы можете изменить формат на сервере и продолжить использовать gantt.load

...