Appearance
BizChart 图表容器
ECharts 声明式渲染容器:option 深度监听更新(默认全量替换,not-merge 可配)、loading / 空态统一(空对象自动判定 + empty 显式标记)、主题热切换、ResizeObserver 自适应、加载失败自动重试、chart-click 事件。dashboard 统计图、报表图表、大屏可视化卡片。
需额外安装第三方依赖
本组件依赖 echarts(可选 peer,组件库不打包):
bash
npm i echarts- 组件在首次渲染时动态
import('echarts'),不使用本组件的项目零影响; - 追求体积时不必安装完整包,可按需构建后经
echarts-lib注入(见下方示例); - 未安装或加载失败时组件渲染安装指引,不会报错白屏。
基础折线图
看板组合
loading 与空态
空数据系列(empty)
empty 显式标记
暗色主题
按需注入(echartsLib)
echartsLib 注入后组件不再动态 import('echarts'),业务侧可用 echarts/core 只注册用到的图表与组件,显著压缩体积。
外部控制(expose)
点击折线上的数据点触发 chart-click;按钮切换数据集后由 expose setOption 更新(也可直接改 option)。
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| option | Record<string, unknown> | {} | ECharts option(深度监听更新) |
| echarts-lib | BizChartLib | — | 注入按需构建的 echarts 库(echarts/core),跳过动态 import |
| theme | string | '' | 主题(echarts 内置 dark / light / 注册主题名),运行时切换自动重建实例 |
| height | number | 320 | 容器高度(px) |
| loading | boolean | false | 加载中遮罩(自绘,与空态 / 错误态风格统一) |
| autoresize | boolean | true | 容器尺寸变化自适应(0 尺寸触发自动跳过) |
| empty-text | string | '暂无数据' | 空态提示文案 |
| empty | boolean | — | 显式空态标记:true 优先于空对象自动判定(如 series 空数组场景) |
| not-merge | boolean | true | 更新时全量替换 option;含 dataZoom / legend 交互态的图表可设 false 走合并 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| chart-click | (payload: unknown) | echarts click 事件透传(数据点下钻) |
| ready | (chart: BizChartInstanceApi) | 实例初始化完成(主题切换重建后再次触发) |
Expose
| 名称 | 类型 | 说明 |
|---|---|---|
| getChart | () => BizChartInstanceApi | null | 获取 echarts 实例 |
| setOption | (option, opts?) => void | 更新配置 |
| resize | () => void | 手动触发自适应 |
| retry | () => void | 重新解析 echarts 并渲染(加载失败后重试;option 变化时也会自动重试) |
TIP
需要 mouseover、legendselectchanged 等 echarts 事件时,经 getChart() 拿到实例后用其 on() 自行绑定,组件不逐一透传。