wandouni opened a new issue #8231: 
多条可拖拽曲线,取消其他图例后,曲线因为scale,位置变化,graphic点还在原位置,导致拖拽失效
URL: https://github.com/apache/incubator-echarts/issues/8231
 
 
   ### One-line summary [问题简述]
   多条可拖拽曲线,取消其他图例后,曲线因为scale,位置变化,graphic点还在原位置,导致拖拽失效
   
   
   
   
   ### Version & Environment [版本及环境]
   + ECharts version [ECharts 版本]:    "echarts": "^3.8.5","echarts-for-react": 
"^2.0.6",
   + Browser version [浏览器类型和版本]:   Chrome
   + OS Version [操作系统类型和版本]:   win10
   
   
   
   
   
   ### Expected behaviour [期望结果]
   曲线scale后,还能拖拽,或者提供一个scale的事件监听。
   
   
   
   
   ### ECharts option [ECharts配置项]
   <!-- Copy and paste your 'echarts option' here. -->
   <!-- [下方贴你的option,注意不要删掉下方 ```javascript 和 尾部的 ``` 字样。最好是我们能够直接运行的 
option。如何得到能运行的 option 参见上方的 guidelines for contributing] -->
   ```javascript
   var symbolSize = 20;
   var data = [[15, 10], [-50, 10], [-56.5, 20], [-46.5, 30], [-22.1, 40]];
   
   option = {
       title: {
           text: 'Try Dragging these Points'
       },
       legend:{show:true},
       tooltip: {
           triggerOn: 'none',
           formatter: function (params) {
               return 'X: ' + params.data[0].toFixed(2) + '<br>Y: ' + 
params.data[1].toFixed(2);
           }
       },
       grid: {
       },
       xAxis: {
           min: -100,
           max: 80,
           type: 'value',
           axisLine: {onZero: false}
       },
       yAxis: {
           scale:true,
           type: 'value',
           axisLine: {onZero: false}
       },
       series: [
           {
               id: 'a',
               name:'a',
               type: 'line',
               smooth: true,
               symbolSize: symbolSize,
               data: data
           },
           {
               type: 'line',
               name:'b',
               smooth: true,
               symbolSize: symbolSize,
               data: [[15, 20], [-50, 100], [-56.5, 200], [-46.5, 300], [-22.1, 
400]]
           }
       ]
   };
   
   
   if (!app.inNode) {
       setTimeout(function () {
           // Add shadow circles (which is not visible) to enable drag.
           myChart.setOption({
               graphic: echarts.util.map(data, function (item, dataIndex) {
                   return {
                       type: 'circle',
                       position: myChart.convertToPixel('grid', item),
                       shape: {
                           cx: 0,
                           cy: 0,
                           r: symbolSize / 2
                       },
                       invisible: true,
                       draggable: true,
                       ondrag: echarts.util.curry(onPointDragging, dataIndex),
                       z: 100
                   };
               })
           });
       }, 0);
   
       window.addEventListener('resize', updatePosition);
   }
   
   myChart.on('dataZoom', updatePosition);
   
   function updatePosition() {
       myChart.setOption({
           graphic: echarts.util.map(data, function (item, dataIndex) {
               return {
                   position: myChart.convertToPixel('grid', item)
               };
           })
       });
       console.log('ttt')
   }
   
   function onPointDragging(dataIndex, dx, dy) {
       data[dataIndex] = myChart.convertFromPixel('grid', this.position);
   
       // Update data
       myChart.setOption({
           series: [{
               id: 'a',
               data: data
           }]
       });
       console.log('ssss')
   }
   
   
   ```
   
   
   
   
   ### Other comments [其他信息]
   [link]( http://www.echartsjs.com/gallery/editor.html?c=line-draggable)
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to