1

我正在为工作日的开始/结束时间制作图表,我想让它可拖动。我找到了如何拖动右侧(endTime)的解决方案,但左侧(startTime)没有选项。或者,如果您推荐此图表有任何其他替代方案。

我试图在左侧添加另一个项目符号,但似乎这不是 amcharts 中的内置选项。

在此处输入图像描述

// That's how I'm handling the drag event
 bullet.events.on("drag", event => {
      handleDrag(event);
 });
 bullet.events.on("dragstop", event => {
      handleDrag(event);
      var dataItem = event.target.dataItem;
      dataItem.column.isHover = false;
      event.target.isHover = false;
 });

 function handleDrag(event) {
      var dataItem = event.target.dataItem;
      var value = valueAxis.xToValue(event.target.pixelX);
      dataItem.valueX = value;
      dataItem.column.isHover = true;
      dataItem.column.hideTooltip();
      event.target.isHover = true;
 }
4

1 回答 1

0

刚刚找到我的解决方案。我添加了另一个子弹并更改了子弹获取数据的值(我在控制台中跟踪了对象)。

在此处输入图像描述

bullet2.events.on("drag", event => {
  handleDrag(event, "start");
});
bullet2.events.on("dragstop", event => {
  handleDrag(event, "start");
  var dataItem = event.target.dataItem;
  dataItem.column.isHover = false;
  event.target.isHover = false;
  this.openHours.find(x => x.day === dataItem.dataContext.day).startTime = dataItem.openValueX;
});


function handleDrag(event, position) {
  var dataItem = event.target.dataItem;
  var value = valueAxis.xToValue(event.target.pixelX);
  if (position==="start"){
    dataItem.openValueX = value;
  }else{
    dataItem.valueX = value;
  }
  dataItem.column.isHover = true;
  dataItem.column.hideTooltip();
  event.target.isHover = true;
}
于 2019-05-09T13:16:32.983 回答