@jzliu-cli/bi-engine 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +381 -0
- package/dist/assets/fonts/element-icons.313f7dac.woff +0 -0
- package/dist/assets/fonts/element-icons.45201881.ttf +0 -0
- package/dist/assets/img/dashboard/center1.png +0 -0
- package/dist/assets/img/dashboard/center2.png +0 -0
- package/dist/assets/img/dashboard/center3.png +0 -0
- package/dist/assets/img/dashboard/center4.png +0 -0
- package/dist/assets/img/dashboard/center5.png +0 -0
- package/dist/assets/img/dashboard/center6.png +0 -0
- package/dist/assets/img/dashboard/center7.png +0 -0
- package/dist/assets/img/dashboard/center8-bg.png +0 -0
- package/dist/assets/img/dashboard/center8.png +0 -0
- package/dist/assets/img/dashboard/column-none.png +0 -0
- package/dist/assets/img/dashboard/connect.png +0 -0
- package/dist/assets/img/dashboard/dangjian.png +0 -0
- package/dist/assets/img/dashboard/indicator-card.png +0 -0
- package/dist/assets/img/dashboard/lay1.png +0 -0
- package/dist/assets/img/dashboard/lay2.png +0 -0
- package/dist/assets/img/dashboard/lay3.png +0 -0
- package/dist/assets/img/dashboard/lay4.png +0 -0
- package/dist/assets/img/dashboard/lay5.png +0 -0
- package/dist/assets/img/dashboard/lay6.png +0 -0
- package/dist/assets/img/dashboard/lay7.png +0 -0
- package/dist/assets/img/dashboard/lay8.png +0 -0
- package/dist/assets/img/dashboard/line-none.png +0 -0
- package/dist/assets/img/dashboard/mobile.png +0 -0
- package/dist/assets/img/dashboard/pie-none.png +0 -0
- package/dist/assets/img/dashboard/resource.png +0 -0
- package/dist/assets/img/dashboard/share.png +0 -0
- package/dist/assets/img/dashboard/table-none.png +0 -0
- package/dist/assets/img/empty.png +0 -0
- package/dist/assets/img/mobile.png +0 -0
- package/dist/assets/img/panel.png +0 -0
- package/dist/assets/style/base.less +1754 -0
- package/dist/assets/style/dashboard.less +320 -0
- package/dist/assets/style/element-variables-dark.less +8 -0
- package/dist/assets/style/element-variables.less +5 -0
- package/dist/assets/style/tailwind.css +3 -0
- package/dist/assets/style/transition.less +30 -0
- package/dist/assets/theme/element.define.css +32271 -0
- package/dist/assets/theme/fonts/element-icons.ttf +0 -0
- package/dist/assets/theme/fonts/element-icons.woff +0 -0
- package/dist/assets/theme/index.css +65744 -0
- package/dist/images/column-none.a609dd43.png +0 -0
- package/dist/images/empty.31d6cfe0.png +0 -0
- package/dist/images/indicator-card.b7982b59.png +0 -0
- package/dist/images/lay1.64c91237.png +0 -0
- package/dist/images/lay2.7b0fa581.png +0 -0
- package/dist/images/lay3.f44c8385.png +0 -0
- package/dist/images/lay4.6f06e367.png +0 -0
- package/dist/images/lay5.1090706d.png +0 -0
- package/dist/images/lay6.9ef2f723.png +0 -0
- package/dist/images/lay7.afa3a4fa.png +0 -0
- package/dist/images/lay8.80107d63.png +0 -0
- package/dist/images/line-none.5b0a596f.png +0 -0
- package/dist/images/mobile.18b276e6.png +0 -0
- package/dist/images/panel.93199700.png +0 -0
- package/dist/images/pie-none.3cb81d7f.png +0 -0
- package/dist/images/table-none.ca8daa78.png +0 -0
- package/dist/index.js +3 -0
- package/dist/index.js.LICENSE.txt +29 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +101324 -0
- package/dist/style.css.map +1 -0
- package/package.json +78 -0
package/README.md
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
# @jzliu-cli/bi-engine
|
|
2
|
+
|
|
3
|
+
jzliu-cli BI 引擎 - 基于 Vue 2.x 的现代化 BI 仪表板解决方案
|
|
4
|
+
|
|
5
|
+
## 📦 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 使用 yarn 安装
|
|
9
|
+
yarn add @jzliu-cli/bi-engine
|
|
10
|
+
|
|
11
|
+
# 或使用 npm 安装
|
|
12
|
+
npm install @jzliu-cli/bi-engine
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 🚀 快速开始
|
|
16
|
+
|
|
17
|
+
### 基础使用
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
import Vue from 'vue'
|
|
21
|
+
import BiDashboard, { chartRender } from '@jzliu-cli/bi-engine'
|
|
22
|
+
import ElementUI from 'element-ui'
|
|
23
|
+
import 'element-ui/lib/theme-chalk/index.css'
|
|
24
|
+
|
|
25
|
+
// 使用 Element UI
|
|
26
|
+
Vue.use(ElementUI)
|
|
27
|
+
|
|
28
|
+
// 使用 BiDashboard
|
|
29
|
+
Vue.use(BiDashboard)
|
|
30
|
+
|
|
31
|
+
// 在组件中使用
|
|
32
|
+
export default {
|
|
33
|
+
components: {
|
|
34
|
+
chartRender
|
|
35
|
+
},
|
|
36
|
+
data() {
|
|
37
|
+
return {
|
|
38
|
+
chartData: {
|
|
39
|
+
type: 'Column',
|
|
40
|
+
name: '柱状图',
|
|
41
|
+
// ... 其他配置
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 完整仪表板使用
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
import Vue from 'vue'
|
|
52
|
+
import BiDashboard from '@jzliu-cli/bi-engine'
|
|
53
|
+
import ElementUI from 'element-ui'
|
|
54
|
+
import 'element-ui/lib/theme-chalk/index.css'
|
|
55
|
+
|
|
56
|
+
Vue.use(ElementUI)
|
|
57
|
+
Vue.use(BiDashboard)
|
|
58
|
+
|
|
59
|
+
// 在模板中使用
|
|
60
|
+
<template>
|
|
61
|
+
<div>
|
|
62
|
+
<bi-dashboard :config="dashboardConfig" />
|
|
63
|
+
</div>
|
|
64
|
+
</template>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 📚 API 文档
|
|
68
|
+
|
|
69
|
+
### 主要组件
|
|
70
|
+
|
|
71
|
+
#### BiDashboard
|
|
72
|
+
主仪表板组件,提供完整的仪表板设计器功能。
|
|
73
|
+
|
|
74
|
+
**Props:**
|
|
75
|
+
- `config` (Object): 仪表板配置对象
|
|
76
|
+
- `previewMode` (Boolean): 预览模式开关
|
|
77
|
+
|
|
78
|
+
**Events:**
|
|
79
|
+
- `@dashboard-updated`: 仪表板更新时触发
|
|
80
|
+
- `@chart-selected`: 图表选中时触发
|
|
81
|
+
|
|
82
|
+
#### chartRender
|
|
83
|
+
图表渲染组件,用于渲染单个图表。
|
|
84
|
+
|
|
85
|
+
**Props:**
|
|
86
|
+
- `chartData` (Object): 图表数据配置
|
|
87
|
+
- `styleConfig` (Object): 样式配置
|
|
88
|
+
|
|
89
|
+
**示例:**
|
|
90
|
+
```javascript
|
|
91
|
+
<chart-render
|
|
92
|
+
:chartData="chartData"
|
|
93
|
+
:styleConfig="styleConfig"
|
|
94
|
+
@chart-click="handleChartClick"
|
|
95
|
+
/>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 工具函数 (utils)
|
|
99
|
+
|
|
100
|
+
提供丰富的工具函数集合:
|
|
101
|
+
|
|
102
|
+
```javascript
|
|
103
|
+
import { utils } from '@jzliu-cli/bi-engine'
|
|
104
|
+
|
|
105
|
+
// 图表工具函数
|
|
106
|
+
utils.chartUtils.elResizeObverse(element, callback)
|
|
107
|
+
utils.chartUtils.getParamsRowsAndColumns(data)
|
|
108
|
+
|
|
109
|
+
// 数据处理工具函数
|
|
110
|
+
utils.dataUtils.calcDescartes(arrays)
|
|
111
|
+
utils.dataUtils.transferWhiteVal(value)
|
|
112
|
+
utils.dataUtils.mateMapping(data)
|
|
113
|
+
|
|
114
|
+
// 样式工具函数
|
|
115
|
+
utils.styleUtils.generateStyle(config)
|
|
116
|
+
|
|
117
|
+
// 验证工具函数
|
|
118
|
+
utils.validationUtils.validateChartData(data)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 配置对象 (panelConfig)
|
|
122
|
+
|
|
123
|
+
仪表板面板配置:
|
|
124
|
+
|
|
125
|
+
```javascript
|
|
126
|
+
import { panelConfig } from '@jzliu-cli/bi-engine'
|
|
127
|
+
|
|
128
|
+
// 获取默认配置
|
|
129
|
+
const defaultConfig = panelConfig.getDefaultConfig()
|
|
130
|
+
|
|
131
|
+
// 获取图表类型配置
|
|
132
|
+
const chartTypes = panelConfig.getChartTypes()
|
|
133
|
+
|
|
134
|
+
// 获取样式配置
|
|
135
|
+
const styleConfig = panelConfig.getStyleConfig()
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 枚举数据 (enumData)
|
|
139
|
+
|
|
140
|
+
提供各种枚举数据:
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
import { enumData } from '@jzliu-cli/bi-engine'
|
|
144
|
+
|
|
145
|
+
// 聚合器映射
|
|
146
|
+
console.log(enumData.aggregatorMap)
|
|
147
|
+
|
|
148
|
+
// 表格类型映射
|
|
149
|
+
console.log(enumData.tableTypeZnMap)
|
|
150
|
+
|
|
151
|
+
// 图表系列颜色
|
|
152
|
+
console.log(enumData.chartSeriesColors)
|
|
153
|
+
|
|
154
|
+
// 线条类型映射
|
|
155
|
+
console.log(enumData.lineTypeMap)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 模拟数据 (mockData)
|
|
159
|
+
|
|
160
|
+
用于开发和测试的模拟数据:
|
|
161
|
+
|
|
162
|
+
```javascript
|
|
163
|
+
import { mockData } from '@jzliu-cli/bi-engine'
|
|
164
|
+
|
|
165
|
+
// 获取示例图表数据
|
|
166
|
+
const sampleChartData = mockData.getSampleChartData()
|
|
167
|
+
|
|
168
|
+
// 获取仪表板配置示例
|
|
169
|
+
const sampleDashboardConfig = mockData.getSampleDashboardConfig()
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Store 配置 (storeConfig)
|
|
173
|
+
|
|
174
|
+
Vuex store 配置,用于状态管理:
|
|
175
|
+
|
|
176
|
+
```javascript
|
|
177
|
+
import { storeConfig } from '@jzliu-cli/bi-engine'
|
|
178
|
+
import Vuex from 'vuex'
|
|
179
|
+
|
|
180
|
+
// 创建 store 实例
|
|
181
|
+
const store = new Vuex.Store(storeConfig)
|
|
182
|
+
|
|
183
|
+
// 在 Vue 应用中使用
|
|
184
|
+
new Vue({
|
|
185
|
+
store,
|
|
186
|
+
// ...
|
|
187
|
+
})
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
## 📊 图表类型支持
|
|
191
|
+
|
|
192
|
+
- **柱状图** (Column)
|
|
193
|
+
- **折线图** (Line)
|
|
194
|
+
- **饼图** (Pie)
|
|
195
|
+
- **表格** (Table)
|
|
196
|
+
- **指标卡** (IndicatorCard)
|
|
197
|
+
|
|
198
|
+
## 🔧 开发配置
|
|
199
|
+
|
|
200
|
+
### 本地开发
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# 克隆项目
|
|
204
|
+
git clone <repository-url>
|
|
205
|
+
|
|
206
|
+
# 安装依赖
|
|
207
|
+
yarn install
|
|
208
|
+
|
|
209
|
+
# 启动开发服务器
|
|
210
|
+
yarn build:watch
|
|
211
|
+
|
|
212
|
+
# 构建生产版本
|
|
213
|
+
yarn build
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 本地链接测试
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# 在 biDashboard 目录中
|
|
220
|
+
yarn link
|
|
221
|
+
|
|
222
|
+
# 在测试项目中
|
|
223
|
+
yarn link "@jzliu-cli/bi-engine"
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## 📋 依赖要求
|
|
227
|
+
|
|
228
|
+
### 必需依赖
|
|
229
|
+
- Vue: ^2.6.11
|
|
230
|
+
- Element UI: ^2.15.10
|
|
231
|
+
- Vuex: ^3.6.2
|
|
232
|
+
- @antv/g2plot: ^2.4.13
|
|
233
|
+
|
|
234
|
+
### 可选依赖
|
|
235
|
+
- lodash: ^4.17.21
|
|
236
|
+
- vue-grid-layout: ^2.3.12
|
|
237
|
+
- vuedraggable: ^2.24.3
|
|
238
|
+
|
|
239
|
+
## 🎯 使用示例
|
|
240
|
+
|
|
241
|
+
### 基础图表渲染
|
|
242
|
+
|
|
243
|
+
```vue
|
|
244
|
+
<template>
|
|
245
|
+
<div class="chart-container">
|
|
246
|
+
<chart-render
|
|
247
|
+
:chartData="chartData"
|
|
248
|
+
:styleConfig="styleConfig"
|
|
249
|
+
/>
|
|
250
|
+
</div>
|
|
251
|
+
</template>
|
|
252
|
+
|
|
253
|
+
<script>
|
|
254
|
+
import { chartRender } from '@jzliu-cli/bi-engine'
|
|
255
|
+
|
|
256
|
+
export default {
|
|
257
|
+
components: { chartRender },
|
|
258
|
+
data() {
|
|
259
|
+
return {
|
|
260
|
+
chartData: {
|
|
261
|
+
type: 'Column',
|
|
262
|
+
name: '销售数据',
|
|
263
|
+
data: {
|
|
264
|
+
meta: [
|
|
265
|
+
{ field: 'category', name: '类别' },
|
|
266
|
+
{ field: 'value', name: '数值' }
|
|
267
|
+
],
|
|
268
|
+
data: [
|
|
269
|
+
{ category: 'A', value: 100 },
|
|
270
|
+
{ category: 'B', value: 200 },
|
|
271
|
+
{ category: 'C', value: 150 }
|
|
272
|
+
]
|
|
273
|
+
},
|
|
274
|
+
fields: [
|
|
275
|
+
{
|
|
276
|
+
label: '类别轴',
|
|
277
|
+
type: 'dimension',
|
|
278
|
+
chooseFields: [{ name: 'category' }]
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
label: '值轴',
|
|
282
|
+
type: 'measure',
|
|
283
|
+
chooseFields: [{ name: 'value' }]
|
|
284
|
+
}
|
|
285
|
+
]
|
|
286
|
+
},
|
|
287
|
+
styleConfig: {
|
|
288
|
+
commongConfig: {
|
|
289
|
+
showTitle: true,
|
|
290
|
+
backgroundColor: '#fff'
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
</script>
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### 完整仪表板
|
|
300
|
+
|
|
301
|
+
```vue
|
|
302
|
+
<template>
|
|
303
|
+
<div class="dashboard">
|
|
304
|
+
<bi-dashboard
|
|
305
|
+
:config="dashboardConfig"
|
|
306
|
+
@dashboard-updated="handleDashboardUpdate"
|
|
307
|
+
@chart-selected="handleChartSelect"
|
|
308
|
+
/>
|
|
309
|
+
</div>
|
|
310
|
+
</template>
|
|
311
|
+
|
|
312
|
+
<script>
|
|
313
|
+
import BiDashboard from '@jzliu-cli/bi-engine'
|
|
314
|
+
|
|
315
|
+
export default {
|
|
316
|
+
components: { BiDashboard },
|
|
317
|
+
data() {
|
|
318
|
+
return {
|
|
319
|
+
dashboardConfig: {
|
|
320
|
+
layout: [],
|
|
321
|
+
dashboardName: '我的仪表板'
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
methods: {
|
|
326
|
+
handleDashboardUpdate(newConfig) {
|
|
327
|
+
console.log('仪表板已更新:', newConfig)
|
|
328
|
+
},
|
|
329
|
+
handleChartSelect(chartData) {
|
|
330
|
+
console.log('图表已选中:', chartData)
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
</script>
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
## 🐛 问题排查
|
|
338
|
+
|
|
339
|
+
### 常见问题
|
|
340
|
+
|
|
341
|
+
1. **样式不生效**
|
|
342
|
+
- 确保已导入 Element UI 样式
|
|
343
|
+
- 检查样式隔离前缀是否正确
|
|
344
|
+
|
|
345
|
+
2. **图表不显示**
|
|
346
|
+
- 检查数据格式是否正确
|
|
347
|
+
- 确认字段映射配置
|
|
348
|
+
|
|
349
|
+
3. **组件未注册**
|
|
350
|
+
- 确保已正确使用 `Vue.use(BiDashboard)`
|
|
351
|
+
- 检查组件名称拼写
|
|
352
|
+
|
|
353
|
+
### 调试模式
|
|
354
|
+
|
|
355
|
+
```javascript
|
|
356
|
+
// 开启调试模式
|
|
357
|
+
Vue.use(BiDashboard, {
|
|
358
|
+
debug: true,
|
|
359
|
+
config: {
|
|
360
|
+
// 自定义配置
|
|
361
|
+
}
|
|
362
|
+
})
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
## 📄 许可证
|
|
366
|
+
|
|
367
|
+
MIT License
|
|
368
|
+
|
|
369
|
+
## 🤝 贡献
|
|
370
|
+
|
|
371
|
+
欢迎提交 Issue 和 Pull Request!
|
|
372
|
+
|
|
373
|
+
## 📞 支持
|
|
374
|
+
|
|
375
|
+
如有问题,请联系:
|
|
376
|
+
- 邮箱: support@jzliu-cli.com
|
|
377
|
+
- 文档: [在线文档](https://docs.jzliu-cli.com/bi-engine)
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
**注意**: 本组件库基于 Vue 2.x 开发,如需使用 Vue 3,请等待后续版本更新。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
Binary file
|