Skip to content

Charts 图表

xy-charts 用来承接仪表盘、趋势、分布和概览类图表。当前对外统一收口为一个稳定主入口,不再暴露多套图表组件别名。

基础用法

适合快速承接折线、柱状和饼图等常见中后台图表场景。

组合图表

同一个容器里可以直接承接柱状、折线和双坐标轴组合,不需要再额外切组件入口。

交互与动态更新

loadingclick 和 expose 的 setOption 适合接入异步报表或钻取类看板。

最近点击的数据点:点击柱状项后会显示这里

扩展注册

默认已经覆盖常见折线、柱状、极坐标、雷达、仪表盘和漏斗图;如果需要 graphic 这类默认未内置的组件,可以通过 useChartsModules(...) 继续补注册。

扩展注册:日历热力图

calendar + heatmap + visualMap 这类组合适合显式注册,既能保持默认集合轻量,也能让业务按需补齐高级模块。

扩展注册:Timeline

timeline 常见于季度切换、阶段回放和历史快照,这类能力默认不内置,按需注册会更清晰。

扩展注册:Sankey

sankey 适合承接流程流向和转化链路分析,示例演示只补图表模块本身即可工作。

默认模块覆盖

radar / gauge / funnel 已经包含在默认预注册集合中,可以直接作为业务图表使用,不需要再额外调用注册 helper。

能力雷达
履约仪表盘
线索转化漏斗

仪表盘工作台

图表通常不会单独存在,而是放在统计卡片、筛选动作和概览卡片之间,这个示例更接近真实后台工作台布局。

经营概览工作台
今日更新 09:30转化率稳定
本周成交额
48.2 万
新增线索
268
有效跟进
193
转化率
18.6%
近 7 日成交趋势
线索来源分布

与增强层组合

当页面已经进入中后台壳层时,更常见的接法是把 Charts 放进 PageContainer 的主体区,而不是独立铺一张图。

经营分析页

PageContainer 负责承接页面壳层,Charts 负责承接内部图表区块。

负责人小叶
统计窗口近 30 天
本月成交额
239 万
新增客户
1,286
退款工单
49
支付趋势
来源构成
数据更新时间:2026-03-30 20:40当前看板无异常

与 PageContainer 组合

当图表进入正式后台页时,通常由 PageContainer 负责页面头部、动作区和 footer,Charts 只承接图表内容本身。

经营分析

PageContainer 负责页面头部、内容区和底部动作,Charts 负责承接具体图表。

负责人小叶
数据窗口近 7 天
成交趋势
线索来源
本页结构由 `PageContainer + Charts` 组合完成

使用约定

  • xy-charts 只负责 ECharts 实例生命周期、尺寸同步和加载态联动,不内置数据请求协议。
  • 组件默认预注册了中后台常见图表模块,可直接承接 line / bar / pie / scatter / radar / gauge / funnel,以及 polar 坐标系和 grid / tooltip / axisPointer / legend / title / dataset / dataZoom / toolbox 等能力,不需要像纯 echarts/core 那样先手动补基础注册。
  • 如果页面需要更冷门的图表或组件,可以从包根导出调用 useChartsModules(...) 继续补注册,使用方式与 vue-echartsuse(...) 类似。上面的 graphic / calendar / visualMap / timeline / sankey 示例就是推荐写法。
  • themeinitOptions 变化时会重建图表实例;普通数据更新优先直接更新 option,或通过 expose 的 setOption 做局部重绘。
  • autoresize 默认开启,适合放在自适应卡片、响应式网格和工作台概览布局中。
  • 点击交互统一通过 click 事件抛出原始 ECharts 参数,方便接筛选、联动跳转和 drill down。
ts
import { GraphicComponent } from "echarts/components"
import { useChartsModules } from "xiaoye-components"

useChartsModules([GraphicComponent])

API

Charts Attributes

属性说明类型默认值
optionECharts 配置对象EChartsCoreOption
theme图表主题名或主题对象string | object
width容器宽度string | number'100%'
height容器高度string | number360
init-options初始化参数,会在创建实例时传给 echarts.initChartsInitOptions
loading是否显示加载态booleanfalse
loading-options加载态配置ChartsLoadingOptions
autoresize是否自动监听容器尺寸变化并调用 resizebooleantrue
set-option-options更新配置时传给 setOption 的第二个参数ChartsSetOptionOptions

Charts Events

事件说明参数
init图表实例创建完成后触发ChartsInstanceHandler
ready图表实例可用后触发ChartsInstanceHandler
click图表元素点击时触发ChartsClickHandler

Charts Exposes

暴露项说明类型
chart当前图表实例引用ChartsInstance["chart"]
resize手动触发图表重排ChartsInstance["resize"]
setOption手动更新图表配置ChartsInstance["setOption"]
showLoading手动显示加载态ChartsInstance["showLoading"]
hideLoading手动隐藏加载态ChartsInstance["hideLoading"]