- 需求:
有个需求是,vue2项目里做echarts双Y轴折线图,tooltip要自定义样式,hover的点点也定义样式。 - 结果:
在双Y轴时,数据展示是根据yXias的name判断拿取的,所以会导致只显示一条Y轴数据。 - 原因:
legent的name,取自Y轴的name或者series的name,所以legent会相同,echarts就不会解析了 - 解决方案:
让Y轴的name或者series的name任意一个不相同,本案例是不需要展示series的name,所以对它进行处理。如下:
1.import:
import VChart from "vue-echarts"
import {use} from "echarts/core"
import {lineChart} from "echarts/charts"
import {
TooltipComponent,
LegentComponent,
GridComponent,
} from "echarts/components"
import {CanvasRenderer} from "echarts/reenderers"
// export default 外面直接用use
use([
lineChart,
TooltipComponent,
LegentComponent,
GridComponent,
CanvasRenderer,
])
2. 基座
components: {VChart}
3. 实现原理
form表单内取到2条Y轴信息,整理为request数据格式,传到GridStack组件,在组件内存储该折线图模块的info信息,每次加载折线图组件,则根据info信息重新拉取折线图数据信息,并setData一下
注意
双Y轴会出现yXias的name是相同的,legent的name要==Y轴的name或者series的name,所以也会相同;这时就会有问题,Echarts不会解析了,只会出现一条Y轴,因为legent的name相同。
解决:当双Y轴name相同,都是“完成率”,series的name并不需要显示,所以可以处理为唯一name,比如newName=“完成率&&”,Y轴的name要显示所以还是用infoName“完成率”。然后legent的name不直接设置,用reder函数,函数自带的默认参数就是series的name,处理后return就行。