Skip to content

BizChart 图表容器 ​

ECharts 声明式渲染容器:option 深度监听更新(默认全量替换,not-merge 可配)、loading / 空态统一(空对象自动判定 + empty 显式标记)、主题热切换、ResizeObserver 自适应、加载失败自动重试、chart-click 事件。dashboard 统计图、报表图表、大屏可视化卡片。

需额外安装第三方依赖

本组件依赖 echarts(可选 peer,组件库不打包):

bash
npm i echarts
  • 组件在首次渲染时动态 import('echarts'),不使用本组件的项目零影响;
  • 追求体积时不必安装完整包,可按需构建后经 echarts-lib 注入(见下方示例);
  • 未安装或加载失败时组件渲染安装指引,不会报错白屏。

基础折线图 ​

option 声明式渲染,echarts 懒加载。

看板组合 ​

柱状 + 环形双卡片,各持独立实例并独立自适应。

loading 与空态 ​

请求期间 loading 遮罩;空 option 统一空态文案。

空数据系列(empty) ​

empty 显式标记
series 为空数组时坐标轴仍会渲染(echarts 正常行为),传 empty 显式标记可强制统一空态;关闭开关可对比两种表现。

暗色主题 ​

theme="dark" 使用 echarts 内置主题;运行时切换 prop 即热切换(组件内部销毁重建实例,无需 :key)。

按需注入(echartsLib) ​

echartsLib 注入后组件不再动态 import('echarts'),业务侧可用 echarts/core 只注册用到的图表与组件,显著压缩体积。

注入 echarts/core 按需构建产物,跳过动态 import 全量包,显著压缩业务包体积。

外部控制(expose) ​

点击折线上的数据点触发 chart-click;按钮切换数据集后由 expose setOption 更新(也可直接改 option)。

setOption 切换数据集 + chart-click 数据点下钻。

Props ​

属性名类型默认值说明
optionRecord<string, unknown>{}ECharts option(深度监听更新)
echarts-libBizChartLib—注入按需构建的 echarts 库(echarts/core),跳过动态 import
themestring''主题(echarts 内置 dark / light / 注册主题名),运行时切换自动重建实例
heightnumber320容器高度(px)
loadingbooleanfalse加载中遮罩(自绘,与空态 / 错误态风格统一)
autoresizebooleantrue容器尺寸变化自适应(0 尺寸触发自动跳过)
empty-textstring'暂无数据'空态提示文案
emptyboolean—显式空态标记:true 优先于空对象自动判定(如 series 空数组场景)
not-mergebooleantrue更新时全量替换 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() 自行绑定,组件不逐一透传。