Vue3 ECharts 大屏与图表一体化

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

Vue3 + TypeScript + ECharts 的一体化技能,两种模式共用同一份图表资产。模式一 scaffold:一键生成可视化大屏项目(Vite + ECharts + Axios + Pinia + Naive UI,scale 等比缩放适配 1920x1080,主题可切换,初始化 JSON 放 public/data 由 Axios 拉取,数字翻牌用 vue3-digital-flop);模式二 chart:往已有 Vue3 项目注入单个图表,产出 builder + hook + vue 三件套。触发词:大屏、可视化大屏、数据看板、dashboard scaffold、ECharts 大屏、数字翻牌、生成图表组件、封装 ECharts、做个折线图/柱状图/饼图/漏斗/热力图/桑基图/旭日图/地图/词云/水球组件。

一句话选型结论

按资料字段整理

Vue3 ECharts 大屏与图表一体化是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_89a2cacc/vue3-echarts-dashboard
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_89a2cacc仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791625124
正文体量8.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Vue3 ECharts 大屏与图表一体化当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

8.7 KB
模型实际读到的说明书原文,来自技能仓库

Vue3 + TS ECharts 一体化技能(大屏脚手架 + 单图表注入)

Overview

一个技能、两种用法,共用同一份图表资产 assets/builders/——不存在第二份图表模板:

模式 用途 命令要点
scaffold(默认) 从零起一个完整可视化大屏项目 node generate.mjs <dir> --theme tech-green
chart 往已有 Vue3 项目注入单个图表 node generate.mjs <项目根> --mode chart --name sales-trend --type line

两种模式产出的图表都是同一套三件套,结构、命名、生命周期完全一致:

src/hooks/charts/builders/<kebab>.ts      # 选项构造器:纯函数 buildOption(data, config)
src/hooks/charts/use<Pascal>Chart.ts      # 业务 hook:托管 init / setOption / resize / dispose
src/components/charts/<Pascal>Chart.vue   # UI 组件:props 接 data/config/height/theme

自包含、弱耦合:每个图表只依赖自己的 hook + builder,放进任意 Vue3 项目即可用,不注入/不覆盖任何共享 useECharts.ts(可选共享件见 assets/use-echarts.ts)。

决策:用哪个模式

  • 用户要「一个页面 / 一个项目 / 大屏 / 看板」→ scaffold
  • 用户要「加一个图表 / 封装个折线图 / 做个饼图组件」→ chart
  • 判不出来就问,别猜。

模式 A:scaffold(一键起大屏)

node "<skill>/scripts/generate.mjs" ./my-screen
node "<skill>/scripts/generate.mjs" ./my-screen --theme tech-green --install
node "<skill>/scripts/generate.mjs" ./my-screen --charts trend:line,device:pie,region:map --no-kpi
node "<skill>/scripts/generate.mjs" ./my-screen --dry-run     # 只看计划不落盘

<skill> 即本技能目录 C:/Users/李玉明/.workbuddy/skills/vue3-echarts-dashboard。

参数 说明 缺省
--mode scaffold / chart scaffold
--theme tech-blue / tech-green / tech-purple tech-blue
--charts name:type[:title],...,自定义要哪些图表 内置 15 类
--no-kpi 不生成数字翻牌 KPI 格 含 KPI
--install 生成后自动 npm install 不装
--force 目标已存在时覆盖 否
--dry-run 只打印计划 否

产出结构

my-screen/
├── public/
│   ├── data/*.json        # 页面初始化数据(Axios 拉取,16 份)
│   └── geo/china.json     # 中国省级边界(离线渲染,合规)
└── src/
    ├── main.ts            # 注册 pinia / naive-ui / vue3-digital-flop / 应用主题
    ├── App.vue            # scale 等比缩放容器
    ├── theme/index.ts     # 主题(CSS 变量 + echarts.registerTheme('dashboard'))
    ├── api/               # axios 实例 + 接口 + 类型
    ├── stores/dashboard.ts# Pinia 数据中心(并发拉全部 JSON)
    ├── composables/useScreenScale.ts
    ├── components/        # ScreenHeader / PanelBox / DigitalFlop / Ranking
    ├── hooks/charts/      # builders/ + use<Name>Chart.ts
    └── views/Dashboard.vue

布局与默认图表

4 列网格,行数按图表数推导(ceil((图表数 + KPI) / 4))。默认 4×4 = 16 格:第 1 格 KPI 数字翻牌,其余 15 格图表。

# 组件 类型 # 组件 类型
1 Trend line 9 FlowSankey sankey
2 Category category-bar 10 SourceTree tree
3 Monthly bar 11 SourceSunburst sunburst
4 Device pie 12 Region map
5 Ability radar 13 HotWord wordcloud
6 Conversion funnel 14 Completion liquidfill
7 Target gauge 15 Ranking ranking(非 ECharts)
8 ActiveHeat heatmap

数据自洽

统一流量口径 14000,各图互相印证,改数据时别破坏这个关系:

  • 渠道合计(category)= 桑基「访问」节点 = 漏斗「访问」= 树/旭日根值 = 地图省份合计
  • 漏斗 14000 → 10080 → 6020 → 3640 → 2772,与桑基逐段流转及各流失边完全对齐
  • 水球 0.786 = 仪表盘 78.6(年度目标完成率)
  • 词云与排行榜共用同一批热门页面数据

模式 B:chart(往已有项目注入单个图表)

python "<skill>/scripts/generate_chart.py" --target <项目根> --name sales-trend --type line
node    "<skill>/scripts/generate.mjs"      <项目根> --mode chart --name sales-trend --type line
node    "<skill>/scripts/generate.mjs"      <项目根> --mode chart --name my-pie --type pie --force

两条命令产出一致(.mjs 是主脚本,.py 是同逻辑的离线兜底)。名称接受 sales-trend / SalesTrend / sales_trend,脚本统一转 Pascal / kebab。

参数:--name(必填)、--type(默认 line)、--dry-run、--force。

产出 3 个文件后,在用到的地方:

<SalesTrendChart :data="chartData" :config="{ area: true }" height="360px" />

可用类型(18 类)

分组 类型
趋势 / 分布 line bar category-bar pie scatter
指标 / 占比 radar gauge kpi funnel liquidfill
关系 / 结构 sunburst sankey tree treemap heatmap
其他 map wordcloud ranking custom(TODO 模板)

每个类型的 ChartData 与 public/data/*.json 的结构一一对应(含 title),所以大屏数据可直接复用,无需适配层。


主题系统(两模式通用)

  • CSS 变量:applyTheme() 写入 --c-primary / --c-primary2 / --c-text / --c-accent / --c-axis,组件样式用 color-mix(in srgb, var(--c-primary) N%, transparent)。
  • ECharts 主题:echarts.registerTheme('dashboard', …),大屏模式下 hook 默认 theme: 'dashboard'。
  • builder 调色板:hook 里的 BASE_CONFIG 由生成器按主题注入 { colors: [...], primary: '...' }(热力/地图注入 5 色渐变带)。用户传入的 config 优先级更高。
  • 扩展主题:在 src/theme/index.ts 的 themes 里加一条,并把调色板同步到 scripts/generate.mjs 的 THEMES。

常见定制

  • 加图表:node generate.mjs <项目根> --mode chart --name <名> --type <类型>,再在 Dashboard.vue 里放进一个 .cell。
  • 换布局:改 views/Dashboard.vue 里 .dashboard__body 的 grid-template-columns 与 gridTemplateRows。
  • 接后端:src/api/index.ts 里把 /data/*.json 换成真实接口,ChartData 结构保持不变即可。
  • 去掉地图:删 public/geo/、RegionChart.vue、hooks/charts/useRegionChart.ts、builders/region.ts 及 store/api 中 map 相关引用,省约 570KB。
  • 体积优化:参考 assets/echarts-tree-shaking.ts 改按需引入。

注意事项

  • 插件型图表必须装依赖,hook 已在顶部自动 import:wordcloud → npm i echarts-wordcloud;liquidfill → npm i echarts-liquidfill。
  • 地图合规:map 用 ECharts 内置 map + 本地 geoJSON(DataV 中国省级边界,含台湾省、港澳及南海诸岛),不接在线瓦片服务、不含密钥;hook 内先 registerMap 再 init。替换 geoJSON 时必须用自然资源部标准地图。
  • vue3-digital-flop 的 start 只在首次加载生效,本模板用 end 绑定指标值,初始化播放一次动画。
  • build 脚本仅 vite build(不跑 vue-tsc),避免全局注册的组件触发模板类型报错;需要类型检查用 npm run type-check。
  • 约定与 plop-vue3-codegen 对齐:kebab 目录、Pascal 组件、camel hook,@ → src。

常见问题

5 问
答案由本站依据条目字段整理
Vue3 ECharts 大屏与图表一体化怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_89a2cacc/vue3-echarts-dashboard。安装方式为未标注。装完刷新技能列表或重开客户端。

Vue3 ECharts 大屏与图表一体化支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Vue3 ECharts 大屏与图表一体化权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Vue3 ECharts 大屏与图表一体化收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Vue3 ECharts 大屏与图表一体化用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。