最佳实践

const activateZoom = (instance: EChartsInstance) => {
  
  instance.dispatchAction({
    type: 'takeGlobalCursor',
    key: 'dataZoomSelect',
    dataZoomSelectActive: true,
  }) // 模拟点击按钮,默认启用框选功能
  instance.setOption({
    toolbox: {
      show: false,
    },
  })
}
/** 
* 注意使用该功能会导致又一次触发监听器(循环调用),必须搭配防抖使用
*/
const resetDataZoom = () => {
  if (!echartsInstance) return
  echartsInstance.dispatchAction({
    type: 'dataZoom',
    // 指定要操作的 dataZoom 组件,0 表示第一个
    dataZoomIndex: 0,
    // 数据窗口范围的起始百分比
    start: 0,
    // 数据窗口范围的结束百分比
    end: 100,
  })
}
 
const handleDataZoom = (params: {
  batch?: { startValue: number; endValue: number }[]
  startValue?: number
  endValue?: number
}) => {
  resetDataZoom() // 可选,用于自定义放大功能
 
  echartsInstance.setOption({
    toolbox: {
      show: true,
      feature: {
        dataZoom: {
          icon: {
            zoom: 'path://', //隐藏原图标,并且不影响功能
            back: 'path://',
          },
        },
        restore: {
          show: true, // 只在放大的时候,显示还原按钮
        },
      },
    },
  })