nocobase/packages/plugins/@nocobase/plugin-data-visualization/README.md
jack zhang 705b7449f0
feat: new plugin manager, supports adding plugins through UI (#2430)
* refactor: plugin manager page

* fix: bug

* feat: addByNpm api

* fix: improve the addByNpm

* feat: improve applicationPlugins:list api

* fix: re-download npm package when restart app

* fix: plugin delete api

* feat: plugin detail api

* feat: zipUrl add api

* fix: upload api bug

* fix: plugin detail info

* feat: upgrade api

* fix: upload api

* feat: handle plugin load error

* feat: support authToken

* feat: muti lang

* fix: build error

* fix: self review

* Update plugin-manager.ts

* fix: bug

* fix: bug

* fix: bug

* fix: bug

* fix: bug

* fix: bugs

* fix: detail click and remove isOfficial

* fix: upgrade no refresh

* fix: file size and type check

* fix: bug

* fix: upgrade error

* fix: bug

* fix: bug

* fix: plugin card layout

* fix: handling exceptional cases

* fix: tgz file support

* fix: macos compress file

* fix: bug

* fix: bug

* fix: bug

* fix: bug

* fix: add upgrade npm type

* fix: bugs

* fix: bug

* fix: change plugins static expose url

* fix: api prefix

* fix: bug

* fix: add nginx `/static/plugin/` path

* fix: bugs and pr docker build no dts

* fix: bug

* fix: build tools bug

* fix: improve code

* fix: build bug

* feat: improve plugin info

* fix: ui bug

* fix: plugin document bug

* feat: improve code

* feat: improve code

* feat: process dev deps check

* feat: improve code

* feat: process.env.IS_DEV_CMD

* fix: do not delete the plugin package

* feat: plugin symlink

* fix: tsx watch --ignore=./storage/plugins/**

* fix: test error

* fix: improve code

* fix: improve code

* fix: emitStartedEvent

* fix: improve code

* fix: type error

* fix: test error

* test: console.log

* fix: createStoragePluginSymLink

* fix: clientStaticMiddleware rename to clientStaticUtils

* feat: build tools support plugins folder

* fix: 350px

* fix: error

* feat: client dev support plugin folder

* fix: clear cli options

* fix: typeError: Converting circular structure to JSON

* fix: plugin name

* chore: restart application after command

* feat: upgrade error & docs

* Update v14-changelog.md

* Update v14-changelog.md

* Update v14-changelog.md

* fix: gateway test

* refactor(plugin-workflow): add ready state for gracefully tearing down

* Revert "chore: restart application after command"

This reverts commit 5015274f8e.

* chore: stop application whe restart

* T 1218 change plugin folder (#2629)

* feat: change folder name

* feat: change `pm create` command

* feat:  revert plugin name change

* fix: delete samples

* feat: change plugins folder

* fix: pm create

* feat: update docs

* fix: link package error

* fix: docs

* fix: create command

* fix: pm add error

* fix: create  add build

* fix: pm creatre + add

* feat: add tar command

* fix: docs

* fix: bug

* fix: docs

---------

Co-authored-by: chenos <chenlinxh@gmail.com>

* feat: docs

* Update your-fisrt-plugin.md

* Update your-fisrt-plugin.md

* chore: application reload

* chore: test

* fix: pm add error

* chore: preset install skip exists plugin

* fix: createIfNotExists

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: chareice <chareice@live.com>
Co-authored-by: Zhou <zhou.working@gmail.com>
Co-authored-by: mytharcher <mytharcher@gmail.com>
2023-09-12 22:39:23 +08:00

88 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Data Visualization
提供BI面板和数据可视化功能。
## 介绍
新版数据可视化插件以Collection为基础提供了可视化的数据检索、图表配置面板多个图表可以在同一区块内进行组织支持以插件形式扩展和使用其他图表组件库。未来还计划支持SQL模式单个及多个图表的时间、条件筛选数据下钻图表与数据区块联动等功能。
## 图表区块
<img src="https://s2.loli.net/2023/06/30/vTKZt9EXxS4Im5L.png"/>
- 图表区块可以组织多个图表,区块中的图表可以像区块一样排列和拖拽。
- 区块标题可以编辑。
- 图表以Collection为基础新建图表时需要选定一个Collection.
- 有查看权限的Collection才可以用于配置图表否则将会在选项中被隐藏。
- 图表可以修改 (Configure), 复制 (Duplicate), 设置标题 (Edit block title).
## 配置面板
<img src="https://s2.loli.net/2023/06/30/75GMbhCcypHitkE.png"/>
配置面板整体上分为三个区块:数据配置,图表配置,图表预览。
### 数据配置
<img src="https://s2.loli.net/2023/06/30/34fnM7i6SIPJgFm.png" width="500" />
- 顶部下拉框代表当前正在配置的Collection通过下拉菜单可以切换。
- 配置完成后,点击"Run query"可以通过配置获取数据,"Data"面板会展示数据。
#### 度量
<img src="https://s2.loli.net/2023/06/30/xZwW6UR1klB4dCs.png" width="500" />
度量字段,通常是图表需要展示的核心数据。度量数据可以通过聚合函数进行统计,支持常用的数据库统计函数`Sum`, `Count`, `Avg`, `Max`, `Min`. 度量字段可以有多个,可以设置别名。
#### 维度
<img src="https://s2.loli.net/2023/06/30/2eAHvGojmlL1YtQ.png" width="500" />
维度字段通常是图表数据分组的依据。对于日期类型字段支持如图所示的格式化方式格式化通过数据库函数实现例如MySQL对应`date_format`),其他类型数据格式化见[数据转换](数据转换)部分。
> **维度格式化 (Dimensions Format) VS 数据转换 (Transform)**
> - 维度格式化发生在获取最终数据之前,数据分组按照维度格式化后的值进行,通常在按时间段筛选数据时有此需求。
> - 数据转换对响应数据做进一步处理,诸如可读性处理,以展现恰当的数据,数据转换在前端进行。
#### 筛选
<img src="https://s2.loli.net/2023/06/30/kvbHO5Y1fsiMm3E.png" width="500" />
此处配置将对分组前的数据进行过滤。
#### 排序 (Sort) 和限制 (Limit)
<img src="https://s2.loli.net/2023/06/30/HCpiQ4qATcLeKUE.png" width="500" />
目前图表允许的数据集条数上限为2000.
#### 缓存
<img src="https://s2.loli.net/2023/06/30/OY6JephtbcH4run.png" width="300" />
开启缓存后,图表将展示缓存的数据。
### 图表配置
<img src="https://s2.loli.net/2023/06/30/KHaPvYsBxh7plGQ.png" width="500" />
- 图表类型 (Chart Type) - 用于展示的图表类型,目前按图表库分组。如何使用其他图表库?
- 基础配置 - 选择图表后会出现相应的基础可视化配置字段配置通常提供了下拉菜单供选择选项中包含了Collection的基础字段和字段别名。
- JSON配置 - 当基础配置不满足要求时可以使用JSON配置其他图表属性。
### 数据转换
<img src="https://s2.loli.net/2023/06/30/yf82mYs6V1aCRIj.png" width="500" />
使用数据转换可以对接口响应的数据做进一步处理,目前支持转换处理的数据类型为 `number`, `date`, `time`, `datetime`, 对于不属于支持的数据类型的字段,可以手动选择为这几个类型,以使用对应的转换方法。
## 使用其他图表库
```TypeScript
import { ChartLibraryProvider } from '@nocobase/plugin-charts-v2/client';
```
图表插件提供了ChartLibraryProvider组件组件接收以下属性:
- name 图表库名字
- charts 图表组件列表,参考`packages/plugins/charts-v2/src/client/renderer/library/G2PlotLibrary.tsx`