/**
 * @author  daya
 * @createDate  2022/6/16 14:30
 * 备注:
 * 注意:内容不需要修改，直接创建一个名为tools.js文件，然后将此处复制过去就行
 * 这里我将auto-tooltip.js放在了utils文件下，后面vue中引用会用到
 * 目前只支持第一个series
 **/
export async function autoHover (myChart, option, num, time, dataZoomLen, seriesLen) {
  var defaultData = { // 设置默认值
    time: 1000,
    num: 10
  }
  if (!time) {
    time = defaultData.time
  }
  if (!num) {
    num = defaultData.num
  }
  var count = 0
  var timeTicket = null
  if (!myChart) {
    return
  }
  timeTicket && clearInterval(timeTicket)
  timeTicket = setInterval(function () {
    if (dataZoomLen && option.dataZoom[0].show) {
      myChart.dispatchAction({
        type: 'dataZoom',
        startValue: count > dataZoomLen ? count - dataZoomLen : 0,
        endValue: count > dataZoomLen ? count : dataZoomLen
      })
    }
    myChart.dispatchAction({
      type: 'downplay',
      seriesIndex: 0 // serieIndex的索引值   可以触发多个
    })
    myChart.dispatchAction({
      type: 'highlight',
      seriesIndex: 0,
      dataIndex: count
    })
    myChart.dispatchAction({
      type: 'showTip',
      seriesIndex: 0,
      dataIndex: count
    })
    count++
    if (dataZoomLen) {
      if (count > seriesLen) {
        count = 0
      }
    } else {
      if (count >= num) {
        count = 0
      }
    }
  }, time)
  myChart.on('mouseover', function (params) {
    console.log('鼠标移入')
    clearInterval(timeTicket)
    myChart.dispatchAction({
      type: 'downplay',
      seriesIndex: 0
    })
    myChart.dispatchAction({
      type: 'highlight',
      seriesIndex: 0,
      dataIndex: params.dataIndex
    })
    myChart.dispatchAction({
      type: 'showTip',
      seriesIndex: 0,
      dataIndex: params.dataIndex
    })
  })

  myChart.on('mouseout', function () {
    timeTicket && clearInterval(timeTicket)
    timeTicket = setInterval(function () {
      myChart.dispatchAction({
        type: 'downplay',
        seriesIndex: 0 // serieIndex的索引值   可以触发多个
      })
      myChart.dispatchAction({
        type: 'highlight',
        seriesIndex: 0,
        dataIndex: count
      })
      myChart.dispatchAction({
        type: 'showTip',
        seriesIndex: 0,
        dataIndex: count
      })
      count++
      if (count >= 10) {
        count = 0
      }
    }, 3000)
  })
}
export default {
  autoHover
}
