Как установить фиксированные заголовки Гантта при вертикальной прокрутке? - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать расписание Ганта. Я основал этот пример на примере управления ресурсами. Пока много хороших вещей! У меня есть несколько проблем, для которых я буду делать отдельные посты.

Следующая проблема, с которой я сталкиваюсь, состоит в том, что у меня много строк данных в диаграмме Ганта. Я добавил возможности вертикальной прокрутки, но заголовки над диаграммой исчезают при прокрутке. Я нашел примеры, когда заголовки не прокручиваются, но не могут определить, что в коде удерживает заголовки на месте.

Вот скрипка: https://jsfiddle.net/eddiem9/h9qw5rsj/15/

chart = Highcharts.ganttChart('container', {
series: series,
scrollablePlotArea: {
    minHeight: 700
},
plotOptions: {
    series: {
        color: '#FF0000'
    }
},
scrollbar: {
    enabled: true
},
title: {
    text: 'Irrigation Schedule',
    style: {
        color: '#000000',
        fontWeight: 'bold',
        fontSize: '24px'
    }
},

tooltip: {
    pointFormat: '<span>Schedule: {point.schedule}</span><br/><span>From: {point.start:%m/%d %H:%M}</span><br/><span>To: {point.end:%m/%d %H:%M}</span>'
},
xAxis:
[{
        labels: {
            format: '{value:%H}' // hour of the day (not working)
        },
        tickInterval: 1000 * 60 * 60, // HOUR
    }, {
        labels: {
            format: '{value:%B %e}' // day name of the week
        },
        tickInterval: 1000 * 60 * 60 * 24, // Day
    }

],
yAxis: {
    type: 'category',
    grid: {
        columns: [{
                title: {
                    text: 'Pump'
                },
                categories: map(series, function (s) {
                    return s.PumpName;
                })
            }, {
                title: {
                    text: 'Zone'
                },
                categories: map(series, function (s) {
                    return s.IrrigationZoneName;
                })
            }, {
                title: {
                    text: 'Status'
                },
                categories: map(series, function (s) {
                    return s.CurrentStatus;
                })
            }
        ]
    }
}

})

Заранее спасибо!

Edd ie

1 Ответ

0 голосов
/ 05 февраля 2020

Вы были так близки к тому, чтобы заставить это работать, у вас была небольшая ошибка. scrollablePlotArea объект должен быть определен внутри объекта chart .

Демо: https://jsfiddle.net/BlackLabel/bu5hfxm1/

  chart: {
    scrollablePlotArea: {
      minHeight: 700
    }
  },

API: https://api.highcharts.com/gantt/chart.scrollablePlotArea


РЕДАКТИРОВАТЬ:

После изучения проблемы, я думаю, что лучшим вариантом будет использовать полосу прокрутки для оси Y, чем scrollablePlotArea.

Демонстрация: https://jsfiddle.net/BlackLabel/s013uqa5/

  • требуется стандартный модуль
  • Пример конфигурации опций для yAxis:

    scrollbar: {
      enabled: true,
      showFull: false
    },
    max: 5,
    

API: https://api.highcharts.com/highstock/yAxis.scrollbar

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