Есть ли возможность сделать диаграмму (amcharts4) ниже перетаскиваемой с обеих сторон (слева и справа)? - PullRequest
1 голос
/ 09 мая 2019

Я делаю график для часов начала / окончания рабочего дня и хочу сделать его перетаскиваемым. Я нашел решение, как перетаскивать правую сторону (endTime), но для левой стороны нет опции (startTime). Или, если есть какая-либо другая альтернатива для этого графика, вы порекомендуете.

Я пытался добавить еще одну пулю в левую сторону, но кажется, что это не встроенная опция в амхартах.

enter image description here

// 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;
 }

1 Ответ

0 голосов
/ 09 мая 2019

Только что я нашел решение для этого. Я добавил еще одну Bullet и изменил значение, в котором пуля получает данные (я следовал за объектом в консоли).

enter image description here

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;
}
...