用于维护 src/FrontendExamples/universal-echarts/EchartClass.js 中的 EchartClass 封装。在处理 ECharts 手动缩放、双击还原缩放、以及基于数据集合计算 y 轴最大值和最小值时使用。
将 EchartClass.js 视为当前 skill 的唯一实现来源。
useZoomTool(chartInstance, divID) 的缩放行为。getMaxAndMin(dataArr) 的最大值和最小值计算。EchartClass 是一个轻量封装类,目前只负责两件事:
minVlaue 和 maxVlaue。修改这个类时,优先保持职责单一,不要把页面级状态、请求逻辑或业务格式化逻辑塞进来。
useZoomTool(chartInstance, divID) 的目标是让图表具备以下默认交互:
dataZoom 全范围。建议保留这两个关键动作:
chartInstance.dispatchAction({
type: "takeGlobalCursor",
key: "dataZoomSelect",
dataZoomSelectActive: true
});
chartInstance.dispatchAction({ type: "dataZoom", start: 0, end: 100 });
chartInstance 必须是已完成初始化的 ECharts 实例。divID 必须能找到真实 DOM 容器。getMaxAndMin(dataArr) 的当前规则是:
null、undefined 和非数字内容。当前返回结构保持为:
{
minVlaue: number,
maxVlaue: number
}
如果数据为空,返回:
{
minVlaue: 0,
maxVlaue: 0
}
Math.min / Math.max。典型接入方式如下:
const echartClass = new EchartClass();
const { minVlaue, maxVlaue } = echartClass.getMaxAndMin([seriesValues]);
chartInstance.setOption({
yAxis: {
min: minVlaue,
max: maxVlaue
}
});
echartClass.useZoomTool(chartInstance, "chart-id");
chartInstance 未初始化时调用 useZoomTool。divID,否则双击还原不会生效。minVlaue 和 maxVlaue 可能变成 NaN。