# QuickChart **Repository Path**: qdabuliuq/QuickChart ## Basic Information - **Project Name**: QuickChart - **Description**: 基于Echarts实现图表在线编辑(开发中.......) - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-01 - **Last Updated**: 2023-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: vue3, TypeScript, Echarts, Pinia ## README # QuickChart ### 项目简介 `QuickChart`基于`Vue3 + TypeScript + Echarts`,主要用于快速生成和编辑图表,包含了柱状图,饼图,折线图。柱状图和其他类型的图表当中还包含了多种图表模板可供选择,提供可视化图表样式和数据的编辑,以及直接导入`Excel`图表数据,下载图表数据`Excel`文件,下载图表图片,已经查看对应的`Echart`配置。 ### 目录结构
└─ src
└─ assets 资源
└─ icon 字体图标
└─ image 图表
└─ less 全局样式
└─ chartConfig 图表配置
└─ commonParams 抽离出来的公共配置项
└─ config 图表配置
└─ conveyUtils excel数据到图表数据的装换
└─ components 公共组件
└─ router 路由管理
└─ types 类型限制
└─ store 全局状态管理
└─ utils 工具函数
└─ views 页面
### 项目依赖
* `Vue.js` - 渐进式 JavaScript 框架
* `TypeScript` - TypeScript 是 JavaScript的超集
* `Less` - Css预处理器
* `Echarts` - 一款基于JavaScript的数据可视化图表库
* `Vue-router` - Vue.js 官方的路由管理器
* `Pinia` - Vue.js 状态管理库
* `ElementPlus` - Vue3 UI框架
* `hljsVuePlugin` - 代码高亮插件
* `mitt` - 事务总线
* `lodash` - 一个一致性、模块化、高性能的 JavaScript 实用工具库
* `x-data-spreadsheet` - 一个基于Web(es6) canvas 构建的轻量级 Excel 开发库
* `xlsx` - 生成xlse文件的 JavaScript 插件
### 项目难点
1. 每一种图表都有对应的配置项去配置,例如饼图可以配置饼图的内外圈大小,而柱状图不需要,所以为每一个图表创建对应的配置项文件,根据切换的图表类型不同,去加载该图表的配置配置,然后生成右侧的配置选项提供给用户去调整。所以将图表的`Echart`配置和右侧的配置选项都存放到`chartConfig`文件当中,当某一种图表需要被加载的时候,则会去`import`导入该图表的配置文件`.ts`,生成图表和右侧的配置选项。
2. `Excel`数据的展示,展示使用到的是`x-data-spreadsheet`类库,通过提取图表中的`series`数据或者是`xAsis / yAsis`数据放入`Excel`当中。也可以手动编辑,监听`Excel`的数据变化,当数据变化的时候,生成新的图表配置信息,通过`mitt`事件总线进行传递,然后调用`setOption`进行图表的更新。
3. `xlsx`类库负责导入,下载`Excel`文件,通过与`x-data-spreadsheet`配合,一个负责数据的编辑,一个负责数据的导入导出。