Highcharts-导出甘特图,不显示用户以前的交互

Highcharts-导出甘特图,不显示用户以前的交互,highcharts,Highcharts,如果用户在Highcharts甘特图中展开折叠的项目,我希望在图像导出中显示该项目(打印即可)。不幸的是,它似乎总是在导出原始图表时所有项目都已折叠: HTML 我知道对于其他图表,这似乎很好,例如,深入到树形图中: 或者,在饼图中选择另一段似乎也表示为: 我哪里做错了?我甚至尝试在甘特图示例中使用normal exporting.js(而不是甘特图模块版本),但它有完全相同的问题。我认为这是一个错误,它没有按照您的预期工作。我在Highcharts Github问题频道上报道了这一点,您

如果用户在Highcharts甘特图中展开折叠的项目,我希望在图像导出中显示该项目(打印即可)。不幸的是,它似乎总是在导出原始图表时所有项目都已折叠:

HTML

我知道对于其他图表,这似乎很好,例如,深入到树形图中:

或者,在饼图中选择另一段似乎也表示为:


我哪里做错了?我甚至尝试在甘特图示例中使用normal exporting.js(而不是甘特图模块版本),但它有完全相同的问题。

我认为这是一个错误,它没有按照您的预期工作。我在Highcharts Github问题频道上报道了这一点,您可以在那里关注这条线索

链接:

这里有一个解决方法:

API:


API:

Brilliant,感谢您提出缺陷并提供解决方案。工作请客:-)
<script src="https://code.highcharts.com/gantt/highcharts-gantt.js"></script>
<script src="https://code.highcharts.com/gantt/modules/exporting.js"></script>
<div id="container"></div>
var today = new Date(),
  day = 1000 * 60 * 60 * 24;

// Set to 00:00:00:000 today
today.setUTCHours(0);
today.setUTCMinutes(0);
today.setUTCSeconds(0);
today.setUTCMilliseconds(0);


// THE CHART
Highcharts.ganttChart('container', {
  title: {
    text: 'Highcharts Gantt With Subtasks'
  },
  xAxis: {
    min: today.getTime() - (2 * day),
    max: today.getTime() + (32 * day)
  },
  series: [{
    name: 'Project 1',
    data: [{
      name: 'Planning',
      id: 'planning',
      start: today.getTime(),
      end: today.getTime() + (20 * day),
      collapsed : true
    }, {
      name: 'Requirements',
      id: 'requirements',
      parent: 'planning',
      start: today.getTime(),
      end: today.getTime() + (5 * day)
    }, {
      name: 'Design',
      id: 'design',
      dependency: 'requirements',
      parent: 'planning',
      start: today.getTime() + (3 * day),
      end: today.getTime() + (20 * day)
    }, {
      name: 'Layout',
      id: 'layout',
      parent: 'design',
      start: today.getTime() + (3 * day),
      end: today.getTime() + (10 * day)
    }, {
      name: 'Graphics',
      parent: 'design',
      dependency: 'layout',
      start: today.getTime() + (10 * day),
      end: today.getTime() + (20 * day)
    }, {
      name: 'Develop',
      id: 'develop',
      start: today.getTime() + (5 * day),
      end: today.getTime() + (30 * day),
      collapsed : true
    }, {
      name: 'Create unit tests',
      id: 'unit_tests',
      dependency: 'requirements',
      parent: 'develop',
      start: today.getTime() + (5 * day),
      end: today.getTime() + (8 * day)
    }, {
      name: 'Implement',
      id: 'implement',
      dependency: 'unit_tests',
      parent: 'develop',
      start: today.getTime() + (8 * day),
      end: today.getTime() + (30 * day)
    }]
  }]
});
  chart: {
    events: {
      render() {
        let chart = this;

        chart.series[0].points.forEach(point => {
          if (point.collapsed) {
            chart.series[0].points.forEach(p => {
              if (p.parent === point.id) {
                if (p.visible) {
                  point.update({
                    collapsed: false
                  })
                }
              }
            })
          } else if (point.collapsed === false) {
            chart.series[0].points.forEach(p => {
              if (p.parent === point.id) {
                if (!p.visible) {
                  point.update({
                    collapsed: true
                  })
                }
              }
            })
          }
        })
      }
    }
  },