xt-element-ui 1.2.5 → 1.2.6
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/CHANGELOG.md +72 -0
- package/LICENSE +21 -0
- package/README.md +240 -104
- package/docs/README.md +67 -168
- package/docs/components/extend/ex-chart.md +252 -144
- package/docs/components/extend/ex-icon.md +1 -2
- package/docs/components/extend/ex-page.md +0 -75
- package/lib/index.common.js +375 -529
- package/lib/index.css +1 -1
- package/lib/index.umd.js +375 -529
- package/lib/index.umd.min.js +5 -5
- package/package.json +80 -41
- package/src/components/ex-chart/ExBar.vue +35 -29
- package/src/components/ex-chart/ExLine.vue +23 -14
- package/src/components/ex-chart/ExMulti.vue +30 -52
- package/src/components/ex-chart/ExPie.vue +23 -16
- package/src/components/ex-chart/utils.js +148 -7
- package/src/components/ex-chart/theme/blue.js +0 -91
- package/src/components/ex-chart/theme/orange.js +0 -92
- package/src/components/ex-chart/theme/starry.js +0 -106
|
@@ -8,49 +8,42 @@
|
|
|
8
8
|
npm install echarts --save
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## 基础用法
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
```vue
|
|
15
|
-
<template>
|
|
16
|
-
<ExChart type="bar" :chartData="chartData" style="height: 400px;" />
|
|
17
|
-
</template>
|
|
18
|
-
|
|
19
|
-
<script>
|
|
20
|
-
export default {
|
|
21
|
-
data() {
|
|
22
|
-
return {
|
|
23
|
-
chartData: [
|
|
24
|
-
{ name: '张三', value: 65 },
|
|
25
|
-
{ name: '李四', value: 78 },
|
|
26
|
-
{ name: '王五', value: 89 },
|
|
27
|
-
{ name: '赵六', value: 95 },
|
|
28
|
-
{ name: '钱七', value: 72 }
|
|
29
|
-
]
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
</script>
|
|
34
|
-
```
|
|
35
|
-
:::
|
|
13
|
+
图表组件包含五个独立子组件:`ExBar`(柱状图)、`ExLine`(折线图)、`ExPie`(饼图)、`ExMulti`(多系列组合图),以及统一入口组件 `ExChart`(通过 `type` 动态切换图表类型)。所有子组件支持通过 `fieldKeys` 自定义 chartData 中的字段映射。
|
|
36
14
|
|
|
37
|
-
##
|
|
15
|
+
## 全局通用属性
|
|
38
16
|
|
|
39
17
|
| 属性 | 类型 | 默认值 | 说明 |
|
|
40
18
|
|------|------|--------|------|
|
|
41
|
-
| `
|
|
42
|
-
| `theme` | String | - | 主题名称:`white`、`dark`、`blue`、`orange`、`starry` |
|
|
19
|
+
| `theme` | String / Object | - | 主题名称:`white`、`dark` 或自定义主题对象 |
|
|
43
20
|
| `size` | String | medium | 字体大小:`small`、`medium`、`large` |
|
|
44
|
-
| `chartData` | Array |
|
|
21
|
+
| `chartData` | Array | 见各组件默认示例 | 图表数据数组 |
|
|
22
|
+
| `fieldKeys` | Object | `{ label: 'label', value: 'value', data: 'data' }` | 自定义 chartData 中字段名的映射,详见下方「自定义字段映射」 |
|
|
23
|
+
| `simpleMode` | Boolean | false | 是否开启极简模式(隐藏图例、坐标轴等装饰元素) |
|
|
24
|
+
|
|
25
|
+
### 自定义字段映射 (fieldKeys)
|
|
45
26
|
|
|
46
|
-
|
|
27
|
+
组件默认从 chartData 中读取 `label`、`value`、`data` 字段。如果后端返回的数据字段名不同,可通过 `fieldKeys` 映射。
|
|
47
28
|
|
|
48
|
-
|
|
29
|
+
```js
|
|
30
|
+
// 例如后端返回 { date: '01月', count: 980 }
|
|
31
|
+
fieldKeys: { label: 'date', value: 'count' }
|
|
49
32
|
|
|
50
|
-
|
|
33
|
+
// ExMulti 两层嵌套数据可同时配置外层与内层字段
|
|
34
|
+
// 外层: { title: '入户量', points: [...] }
|
|
35
|
+
// 内层: { month: '01月', num: 980 }
|
|
36
|
+
fieldKeys: { label: 'title', value: 'num', data: 'points' }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## ExBar 柱状图
|
|
42
|
+
|
|
43
|
+
::: demo 基础柱状图
|
|
51
44
|
```vue
|
|
52
45
|
<template>
|
|
53
|
-
<
|
|
46
|
+
<ExBar :chartData="chartData" style="height: 400px;" />
|
|
54
47
|
</template>
|
|
55
48
|
|
|
56
49
|
<script>
|
|
@@ -58,13 +51,11 @@ export default {
|
|
|
58
51
|
data() {
|
|
59
52
|
return {
|
|
60
53
|
chartData: [
|
|
61
|
-
{
|
|
62
|
-
{
|
|
63
|
-
{
|
|
64
|
-
{
|
|
65
|
-
{
|
|
66
|
-
{ name: '东北区', value: 680 },
|
|
67
|
-
{ name: '华中区', value: 820 }
|
|
54
|
+
{ label: '华东区', value: 1250 },
|
|
55
|
+
{ label: '华南区', value: 980 },
|
|
56
|
+
{ label: '华北区', value: 890 },
|
|
57
|
+
{ label: '西南区', value: 720 },
|
|
58
|
+
{ label: '西北区', value: 560 }
|
|
68
59
|
]
|
|
69
60
|
}
|
|
70
61
|
}
|
|
@@ -73,22 +64,30 @@ export default {
|
|
|
73
64
|
```
|
|
74
65
|
:::
|
|
75
66
|
|
|
76
|
-
|
|
67
|
+
### 属性说明
|
|
77
68
|
|
|
78
69
|
| 属性 | 类型 | 默认值 | 说明 |
|
|
79
70
|
|------|------|--------|------|
|
|
71
|
+
| `chartData` | Array | 默认示例数据 | 图表数据数组,每项包含 `label`(标签)和 `value`(数值) |
|
|
72
|
+
| `fieldKeys` | Object | `{ label: 'label', value: 'value', data: 'data' }` | 自定义字段映射 |
|
|
80
73
|
| `markPoint` | Boolean | false | 是否显示标记点(最大值、最小值) |
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
74
|
+
| `unit` | String | '' | Y轴单位名称 |
|
|
75
|
+
| `showZoom` | Boolean | false | 是否显示底部缩放滑动条 |
|
|
76
|
+
| `reverse` | Boolean | false | 是否反转坐标轴(纵向柱 → 横向柱) |
|
|
77
|
+
| `longLable` | Boolean | false | 是否启用长标签换行模式 |
|
|
78
|
+
| `longLableSplitNum` | Number | 1 | 长标签每隔几个字符换行一次 |
|
|
79
|
+
| `longLablePx` | Number | 150 | 长标签模式下左侧/底部预留空间 |
|
|
84
80
|
| `splitNumber` | Number | 5 | Y轴分割数量 |
|
|
81
|
+
| `simpleMode` | Boolean | false | 是否开启极简模式 |
|
|
82
|
+
|
|
83
|
+
---
|
|
85
84
|
|
|
86
|
-
|
|
85
|
+
## ExLine 折线图
|
|
87
86
|
|
|
88
|
-
::: demo
|
|
87
|
+
::: demo 基础折线图,支持面积区域显示
|
|
89
88
|
```vue
|
|
90
89
|
<template>
|
|
91
|
-
<
|
|
90
|
+
<ExLine :chartData="chartData" :isArea="true" style="height: 400px;" />
|
|
92
91
|
</template>
|
|
93
92
|
|
|
94
93
|
<script>
|
|
@@ -96,18 +95,18 @@ export default {
|
|
|
96
95
|
data() {
|
|
97
96
|
return {
|
|
98
97
|
chartData: [
|
|
99
|
-
{
|
|
100
|
-
{
|
|
101
|
-
{
|
|
102
|
-
{
|
|
103
|
-
{
|
|
104
|
-
{
|
|
105
|
-
{
|
|
106
|
-
{
|
|
107
|
-
{
|
|
108
|
-
{
|
|
109
|
-
{
|
|
110
|
-
{
|
|
98
|
+
{ label: '1月', value: 2450 },
|
|
99
|
+
{ label: '2月', value: 2800 },
|
|
100
|
+
{ label: '3月', value: 3200 },
|
|
101
|
+
{ label: '4月', value: 2950 },
|
|
102
|
+
{ label: '5月', value: 3500 },
|
|
103
|
+
{ label: '6月', value: 3800 },
|
|
104
|
+
{ label: '7月', value: 4200 },
|
|
105
|
+
{ label: '8月', value: 4500 },
|
|
106
|
+
{ label: '9月', value: 4100 },
|
|
107
|
+
{ label: '10月', value: 3800 },
|
|
108
|
+
{ label: '11月', value: 4600 },
|
|
109
|
+
{ label: '12月', value: 5200 }
|
|
111
110
|
]
|
|
112
111
|
}
|
|
113
112
|
}
|
|
@@ -116,20 +115,25 @@ export default {
|
|
|
116
115
|
```
|
|
117
116
|
:::
|
|
118
117
|
|
|
119
|
-
|
|
118
|
+
### 属性说明
|
|
120
119
|
|
|
121
120
|
| 属性 | 类型 | 默认值 | 说明 |
|
|
122
121
|
|------|------|--------|------|
|
|
123
|
-
| `
|
|
124
|
-
| `
|
|
125
|
-
| `
|
|
122
|
+
| `chartData` | Array | 默认示例数据 | 图表数据数组,每项包含 `label` 和 `value` |
|
|
123
|
+
| `fieldKeys` | Object | `{ label: 'label', value: 'value', data: 'data' }` | 自定义字段映射 |
|
|
124
|
+
| `isArea` | Boolean | false | 是否显示面积区域填充 |
|
|
125
|
+
| `unit` | String | '' | Y轴单位名称 |
|
|
126
|
+
| `intervalvalue` | Number | 0 | X轴标签显示间隔(0表示全部显示) |
|
|
127
|
+
| `simpleMode` | Boolean | false | 是否开启极简模式 |
|
|
128
|
+
|
|
129
|
+
---
|
|
126
130
|
|
|
127
|
-
|
|
131
|
+
## ExPie 饼图
|
|
128
132
|
|
|
129
|
-
::: demo
|
|
133
|
+
::: demo 基础饼图,显示总数标题
|
|
130
134
|
```vue
|
|
131
135
|
<template>
|
|
132
|
-
<
|
|
136
|
+
<ExPie :chartData="chartData" style="height: 400px;" />
|
|
133
137
|
</template>
|
|
134
138
|
|
|
135
139
|
<script>
|
|
@@ -137,11 +141,11 @@ export default {
|
|
|
137
141
|
data() {
|
|
138
142
|
return {
|
|
139
143
|
chartData: [
|
|
140
|
-
{
|
|
141
|
-
{
|
|
142
|
-
{
|
|
143
|
-
{
|
|
144
|
-
{
|
|
144
|
+
{ label: '手机端', value: 4520 },
|
|
145
|
+
{ label: 'PC端', value: 3280 },
|
|
146
|
+
{ label: '平板端', value: 1250 },
|
|
147
|
+
{ label: '小程序', value: 2150 },
|
|
148
|
+
{ label: 'H5页面', value: 1800 }
|
|
145
149
|
]
|
|
146
150
|
}
|
|
147
151
|
}
|
|
@@ -150,12 +154,35 @@ export default {
|
|
|
150
154
|
```
|
|
151
155
|
:::
|
|
152
156
|
|
|
153
|
-
###
|
|
157
|
+
### 属性说明
|
|
158
|
+
|
|
159
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
160
|
+
|------|------|--------|------|
|
|
161
|
+
| `chartData` | Array | 默认示例数据 | 图表数据数组,每项包含 `label` 和 `value` |
|
|
162
|
+
| `fieldKeys` | Object | `{ label: 'label', value: 'value', data: 'data' }` | 自定义字段映射 |
|
|
163
|
+
| `colors` | Array | [] | 自定义饼图颜色数组 |
|
|
164
|
+
| `unit` | String | '' | 数值单位(悬停提示时使用) |
|
|
165
|
+
| `showLegend` | Boolean | true | 是否显示图例 |
|
|
166
|
+
| `roseType` | String | '' | 玫瑰图类型,`'radius'`、`'area'` 等 |
|
|
167
|
+
| `showLabel` | Boolean | true | 是否显示饼图扇区标签及引线 |
|
|
168
|
+
| `totalLabel` | String | '总数' | 饼图中心显示的汇总标题文字 |
|
|
169
|
+
| `simpleMode` | Boolean | false | 是否开启极简模式 |
|
|
170
|
+
| `highlightKey` | String | - | 高亮字段键(用于指定高亮的扇区标识) |
|
|
171
|
+
|
|
172
|
+
### 计算说明
|
|
154
173
|
|
|
155
|
-
|
|
174
|
+
- `总数`:饼图中心会自动显示图表中心标题,格式为 `{totalLabel}:{value 之和}`。
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## ExMulti 多系列组合图
|
|
179
|
+
|
|
180
|
+
多系列组合图,支持多个 series 共存(柱/线任意混合),根据不同 `unit` 自动生成多条 Y 轴。
|
|
181
|
+
|
|
182
|
+
::: demo 多系列数据示例
|
|
156
183
|
```vue
|
|
157
184
|
<template>
|
|
158
|
-
<
|
|
185
|
+
<ExMulti :chartData="chartData" style="height: 400px;" />
|
|
159
186
|
</template>
|
|
160
187
|
|
|
161
188
|
<script>
|
|
@@ -164,37 +191,29 @@ export default {
|
|
|
164
191
|
return {
|
|
165
192
|
chartData: [
|
|
166
193
|
{
|
|
167
|
-
label:
|
|
194
|
+
label: '入户量',
|
|
195
|
+
unit: '户',
|
|
196
|
+
type: 'bar',
|
|
168
197
|
data: [
|
|
169
|
-
{ label:
|
|
170
|
-
{ label:
|
|
171
|
-
{ label:
|
|
172
|
-
{ label:
|
|
173
|
-
{ label:
|
|
174
|
-
{ label:
|
|
175
|
-
{ label: "07月", value: 780 },
|
|
176
|
-
{ label: "08月", value: 630 },
|
|
177
|
-
{ label: "09月", value: 806 },
|
|
178
|
-
{ label: "10月", value: 950 },
|
|
179
|
-
{ label: "11月", value: 810 },
|
|
180
|
-
{ label: "12月", value: 703 }
|
|
198
|
+
{ label: '01月', value: 980 },
|
|
199
|
+
{ label: '02月', value: 806 },
|
|
200
|
+
{ label: '03月', value: 930 },
|
|
201
|
+
{ label: '04月', value: 804 },
|
|
202
|
+
{ label: '05月', value: 750 },
|
|
203
|
+
{ label: '06月', value: 660 }
|
|
181
204
|
]
|
|
182
205
|
},
|
|
183
206
|
{
|
|
184
|
-
label:
|
|
207
|
+
label: '隐患量',
|
|
208
|
+
unit: '个',
|
|
209
|
+
type: 'line',
|
|
185
210
|
data: [
|
|
186
|
-
{ label:
|
|
187
|
-
{ label:
|
|
188
|
-
{ label:
|
|
189
|
-
{ label:
|
|
190
|
-
{ label:
|
|
191
|
-
{ label:
|
|
192
|
-
{ label: "07月", value: 126 },
|
|
193
|
-
{ label: "08月", value: 130 },
|
|
194
|
-
{ label: "09月", value: 108 },
|
|
195
|
-
{ label: "10月", value: 109 },
|
|
196
|
-
{ label: "11月", value: 140 },
|
|
197
|
-
{ label: "12月", value: 106 }
|
|
211
|
+
{ label: '01月', value: 200 },
|
|
212
|
+
{ label: '02月', value: 120 },
|
|
213
|
+
{ label: '03月', value: 110 },
|
|
214
|
+
{ label: '04月', value: 109 },
|
|
215
|
+
{ label: '05月', value: 108 },
|
|
216
|
+
{ label: '06月', value: 150 }
|
|
198
217
|
]
|
|
199
218
|
}
|
|
200
219
|
]
|
|
@@ -205,14 +224,63 @@ export default {
|
|
|
205
224
|
```
|
|
206
225
|
:::
|
|
207
226
|
|
|
208
|
-
###
|
|
227
|
+
### 属性说明
|
|
228
|
+
|
|
229
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
230
|
+
|------|------|--------|------|
|
|
231
|
+
| `chartData` | Array | 默认示例数据 | 多系列数据,每项外层包含 `label`、`unit`、`type`、`data[]`,内层每项包含 `label`、`value` |
|
|
232
|
+
| `fieldKeys` | Object | `{ label: 'label', value: 'value', data: 'data' }` | 自定义字段映射(外层/内层均生效) |
|
|
233
|
+
| `isDark` | Boolean | false | 是否暗色模式(文字标线为白色) |
|
|
234
|
+
| `colors` | Array | [] | 自定义系列颜色数组 |
|
|
235
|
+
| `energyType` | String / Array | '' | 预留字段,用于扩展类型/单位 |
|
|
236
|
+
| `config` | Object | `{ interval: 0, rotate: 0, gridbottom: 40, isShowthreshold: false }` | 高级配置:`rotate`(X轴标签旋转角度)、`gridbottom`(底部留白) |
|
|
237
|
+
| `simpleMode` | Boolean | false | 是否开启极简模式 |
|
|
238
|
+
| `highlightKey` | String | - | 高亮字段键 |
|
|
239
|
+
|
|
240
|
+
### chartData 结构说明
|
|
241
|
+
|
|
242
|
+
```js
|
|
243
|
+
[
|
|
244
|
+
{
|
|
245
|
+
label: '系列名称', // series 名称(映射 fieldKeys.label)
|
|
246
|
+
unit: '单位', // series 单位,用于分组生成 Y 轴(去重)
|
|
247
|
+
type: 'bar', // 'bar' 或 'line',不填默认 bar
|
|
248
|
+
data: [ // 数据点(映射 fieldKeys.data)
|
|
249
|
+
{ label: '01月', value: 980 } // 内层映射 fieldKeys.label / fieldKeys.value
|
|
250
|
+
]
|
|
251
|
+
}
|
|
252
|
+
]
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## ExChart 统一入口
|
|
209
258
|
|
|
210
|
-
|
|
259
|
+
`ExChart` 是一个聚合组件,通过 `type` 属性动态选择使用哪个子组件。
|
|
211
260
|
|
|
212
|
-
|
|
261
|
+
```vue
|
|
262
|
+
<ExChart type="bar" :chartData="chartData" />
|
|
263
|
+
<ExChart type="line" :chartData="chartData" :isArea="true" />
|
|
264
|
+
<ExChart type="pie" :chartData="chartData" />
|
|
265
|
+
<ExChart type="multi" :chartData="chartData" />
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
269
|
+
|------|------|--------|------|
|
|
270
|
+
| `type` | String | bar | 图表类型:`bar`、`line`、`pie`、`multi` |
|
|
271
|
+
|
|
272
|
+
> 其余属性直接透传给子组件,详见各子组件的属性说明。
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 极简模式 (simpleMode)
|
|
277
|
+
|
|
278
|
+
极简模式隐藏图例、坐标轴、网格线等装饰元素,仅保留核心数据曲线/柱形,适用于 Dashboard 密集卡片展示场景。
|
|
279
|
+
|
|
280
|
+
::: demo 极简模式示例
|
|
213
281
|
```vue
|
|
214
282
|
<template>
|
|
215
|
-
<
|
|
283
|
+
<ExBar :chart-data="chartData" simple-mode style="height: 200px;" />
|
|
216
284
|
</template>
|
|
217
285
|
|
|
218
286
|
<script>
|
|
@@ -240,23 +308,7 @@ export default {
|
|
|
240
308
|
```
|
|
241
309
|
:::
|
|
242
310
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
| 属性 | 类型 | 默认值 | 说明 |
|
|
246
|
-
|------|------|--------|------|
|
|
247
|
-
| `type` | String | bar | 图表类型,可选 `bar` 或 `line` |
|
|
248
|
-
| `width` | String | 100% | 图表宽度 |
|
|
249
|
-
| `energyType` | String | m³ | 单位类型 |
|
|
250
|
-
|
|
251
|
-
**趋势图数据格式**
|
|
252
|
-
|
|
253
|
-
```javascript
|
|
254
|
-
[
|
|
255
|
-
{ label: '时间点', value: 数值 },
|
|
256
|
-
{ label: '时间点', value: 数值 },
|
|
257
|
-
// ...
|
|
258
|
-
]
|
|
259
|
-
```
|
|
311
|
+
---
|
|
260
312
|
|
|
261
313
|
## 主题示例
|
|
262
314
|
|
|
@@ -265,19 +317,19 @@ export default {
|
|
|
265
317
|
<template>
|
|
266
318
|
<div style="display: flex; gap: 16px; flex-wrap: wrap;">
|
|
267
319
|
<div style="width: 300px; height: 200px;">
|
|
268
|
-
<
|
|
320
|
+
<ExBar :chartData="chartData" theme="white" style="height: 200px;" />
|
|
269
321
|
</div>
|
|
270
322
|
<div style="width: 300px; height: 200px;">
|
|
271
|
-
<
|
|
323
|
+
<ExBar :chartData="chartData" theme="dark" style="height: 200px;" />
|
|
272
324
|
</div>
|
|
273
325
|
<div style="width: 300px; height: 200px;">
|
|
274
|
-
<
|
|
326
|
+
<ExBar :chartData="chartData" theme="blue" style="height: 200px;" />
|
|
275
327
|
</div>
|
|
276
328
|
<div style="width: 300px; height: 200px;">
|
|
277
|
-
<
|
|
329
|
+
<ExBar :chartData="chartData" theme="orange" style="height: 200px;" />
|
|
278
330
|
</div>
|
|
279
331
|
<div style="width: 300px; height: 200px;">
|
|
280
|
-
<
|
|
332
|
+
<ExBar :chartData="chartData" theme="starry" style="height: 200px;" />
|
|
281
333
|
</div>
|
|
282
334
|
</div>
|
|
283
335
|
</template>
|
|
@@ -287,10 +339,10 @@ export default {
|
|
|
287
339
|
data() {
|
|
288
340
|
return {
|
|
289
341
|
chartData: [
|
|
290
|
-
{
|
|
291
|
-
{
|
|
292
|
-
{
|
|
293
|
-
{
|
|
342
|
+
{ label: '产品A', value: 1250 },
|
|
343
|
+
{ label: '产品B', value: 980 },
|
|
344
|
+
{ label: '产品C', value: 820 },
|
|
345
|
+
{ label: '产品D', value: 750 }
|
|
294
346
|
]
|
|
295
347
|
}
|
|
296
348
|
}
|
|
@@ -299,23 +351,25 @@ export default {
|
|
|
299
351
|
```
|
|
300
352
|
:::
|
|
301
353
|
|
|
302
|
-
|
|
354
|
+
### 主题列表
|
|
303
355
|
|
|
304
356
|
| 主题名称 | 说明 |
|
|
305
357
|
|----------|------|
|
|
306
358
|
| `white` | 白色主题(默认) |
|
|
307
|
-
| `dark` |
|
|
359
|
+
| `dark` | 暗色主题(深色背景,建议容器设深色) |
|
|
308
360
|
| `blue` | 蓝色主题 |
|
|
309
361
|
| `orange` | 橙色主题 |
|
|
310
362
|
| `starry` | 星空主题 |
|
|
311
363
|
|
|
364
|
+
---
|
|
365
|
+
|
|
312
366
|
## 动态数据
|
|
313
367
|
|
|
314
368
|
::: demo 动态更新图表数据
|
|
315
369
|
```vue
|
|
316
370
|
<template>
|
|
317
371
|
<div>
|
|
318
|
-
<
|
|
372
|
+
<ExLine :chartData="chartData" :isArea="true" style="height: 400px;" />
|
|
319
373
|
<button @click="updateData" style="margin-top: 16px; padding: 8px 16px;">更新数据</button>
|
|
320
374
|
</div>
|
|
321
375
|
</template>
|
|
@@ -325,20 +379,54 @@ export default {
|
|
|
325
379
|
data() {
|
|
326
380
|
return {
|
|
327
381
|
chartData: [
|
|
328
|
-
{
|
|
329
|
-
{
|
|
330
|
-
{
|
|
331
|
-
{
|
|
382
|
+
{ label: '1月', value: 50 },
|
|
383
|
+
{ label: '2月', value: 60 },
|
|
384
|
+
{ label: '3月', value: 70 },
|
|
385
|
+
{ label: '4月', value: 80 }
|
|
332
386
|
]
|
|
333
387
|
}
|
|
334
388
|
},
|
|
335
389
|
methods: {
|
|
336
390
|
updateData() {
|
|
337
391
|
this.chartData = [
|
|
338
|
-
{
|
|
339
|
-
{
|
|
340
|
-
{
|
|
341
|
-
{
|
|
392
|
+
{ label: '1月', value: 55 },
|
|
393
|
+
{ label: '2月', value: 75 },
|
|
394
|
+
{ label: '3月', value: 65 },
|
|
395
|
+
{ label: '4月', value: 90 }
|
|
396
|
+
]
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
</script>
|
|
401
|
+
```
|
|
402
|
+
:::
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## 使用自定义字段映射
|
|
407
|
+
|
|
408
|
+
当后端返回数据字段与组件默认字段(`label` / `value` / `data`)不一致时,使用 `fieldKeys` 做一次映射即可,无需在前端转换数据。
|
|
409
|
+
|
|
410
|
+
::: demo 自定义字段映射示例
|
|
411
|
+
```vue
|
|
412
|
+
<template>
|
|
413
|
+
<ExBar
|
|
414
|
+
:chartData="chartData"
|
|
415
|
+
:fieldKeys="{ label: 'areaName', value: 'sales' }"
|
|
416
|
+
style="height: 400px;"
|
|
417
|
+
/>
|
|
418
|
+
</template>
|
|
419
|
+
|
|
420
|
+
<script>
|
|
421
|
+
export default {
|
|
422
|
+
data() {
|
|
423
|
+
return {
|
|
424
|
+
// 后端返回的数据字段不是 label/value
|
|
425
|
+
chartData: [
|
|
426
|
+
{ areaName: '华东区', sales: 1250 },
|
|
427
|
+
{ areaName: '华南区', sales: 980 },
|
|
428
|
+
{ areaName: '华北区', sales: 890 },
|
|
429
|
+
{ areaName: '西南区', sales: 720 }
|
|
342
430
|
]
|
|
343
431
|
}
|
|
344
432
|
}
|
|
@@ -347,9 +435,29 @@ export default {
|
|
|
347
435
|
```
|
|
348
436
|
:::
|
|
349
437
|
|
|
438
|
+
多系列组合图的双层嵌套场景:
|
|
439
|
+
|
|
440
|
+
```vue
|
|
441
|
+
<ExMulti
|
|
442
|
+
:chartData="chartData"
|
|
443
|
+
:fieldKeys="{ label: 'title', value: 'num', data: 'points' }"
|
|
444
|
+
/>
|
|
445
|
+
<!--
|
|
446
|
+
chartData 结构:
|
|
447
|
+
[
|
|
448
|
+
{ title: '入户量', unit: '户', points: [{ month: '01月', num: 980 }] }
|
|
449
|
+
]
|
|
450
|
+
-->
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
350
455
|
## 注意事项
|
|
351
456
|
|
|
352
|
-
1.
|
|
353
|
-
2.
|
|
354
|
-
3.
|
|
355
|
-
|
|
457
|
+
1. **依赖安装**:使用前必须安装 `echarts` 依赖
|
|
458
|
+
2. **容器尺寸**:确保图表容器有明确的高度(如 `style="height: 400px;"`),否则图表可能无法显示
|
|
459
|
+
3. **数据格式**:
|
|
460
|
+
- `ExBar` / `ExLine` / `ExPie`:扁平数组,每项需包含可映射为 `label` 与 `value` 的字段
|
|
461
|
+
- `ExMulti`:双层嵌套数组,外层需包含 `label`、`unit`、`type`、`data[]`,内层需包含 `label` 与 `value`
|
|
462
|
+
4. **Y轴去重**(ExMulti):自动按外层 `unit` 去重合并生成 Y 轴,相同 unit 的 series 会共用同一条 Y 轴
|
|
463
|
+
5. **fieldKeys 合并**:仅需配置与默认值不同的字段即可,未配置的字段会使用默认值 `{ label: 'label', value: 'value', data: 'data' }`
|
|
@@ -80,7 +80,6 @@
|
|
|
80
80
|
</template>
|
|
81
81
|
|
|
82
82
|
<script>
|
|
83
|
-
import ExIcon from '@/components/ex-icon'
|
|
84
83
|
export default {
|
|
85
84
|
created() {
|
|
86
85
|
// 注册自定义前缀,避免自动添加 ex-icon 前缀
|
|
@@ -172,7 +171,7 @@ export default {
|
|
|
172
171
|
|
|
173
172
|
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|
|
174
173
|
|------|------|------|--------|--------|
|
|
175
|
-
| name | 图标名称(支持 el-icon-xxx
|
|
174
|
+
| name | 图标名称(支持 el-icon-xxx 自定义前缀) | string | — | '' |
|
|
176
175
|
| size | 图标尺寸(数字单位 px,也可传入如 '2em' 的字符串) | string / number | — | '' |
|
|
177
176
|
| color | 图标颜色(CSS color 值) | string | — | '' |
|
|
178
177
|
| spin | 是否持续旋转 | boolean | — | false |
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
## ExPage 页面布局组件文档
|
|
2
|
-
|
|
3
|
-
### 组件说明
|
|
4
|
-
|
|
5
|
-
ExPage 是基于 Element UI el-container 封装的通用页面布局组件,内置头部、侧边栏、主体、底部插槽,自动计算主体区域高度并向外透传,常用于页面表格、内容区自适应高度场景,支持窗口大小变化实时重算高度。
|
|
6
|
-
|
|
7
|
-
### 基本信息
|
|
8
|
-
|
|
9
|
-
. 组件名称:ExPage
|
|
10
|
-
|
|
11
|
-
. 依赖:Element UI
|
|
12
|
-
|
|
13
|
-
. 适用场景:后台管理系统标准页面布局、表格页面自适应高度、带侧边栏 / 头部 / 底部的组合页面
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
## 基础用法
|
|
19
|
-
|
|
20
|
-
::: demo 按钮基础示例
|
|
21
|
-
```vue
|
|
22
|
-
<template>
|
|
23
|
-
<div>
|
|
24
|
-
<ex-button>默认按钮</ex-button>
|
|
25
|
-
<ex-button type="primary">主要按钮</ex-button>
|
|
26
|
-
<ex-button type="success">成功按钮</ex-button>
|
|
27
|
-
</div>
|
|
28
|
-
</template>
|
|
29
|
-
```
|
|
30
|
-
:::
|
|
31
|
-
|
|
32
|
-
## 字体大小
|
|
33
|
-
|
|
34
|
-
支持三种尺寸:`small`、`medium`、`large`
|
|
35
|
-
|
|
36
|
-
::: demo 按钮字体大小示例
|
|
37
|
-
```vue
|
|
38
|
-
<template>
|
|
39
|
-
<div>
|
|
40
|
-
<ex-button size="mini">迷你按钮</ex-button>
|
|
41
|
-
<ex-button size="small">小按钮</ex-button>
|
|
42
|
-
<ex-button size="medium">中按钮</ex-button>
|
|
43
|
-
<ex-button size="large">大按钮</ex-button>
|
|
44
|
-
</div>
|
|
45
|
-
</template>
|
|
46
|
-
```
|
|
47
|
-
:::
|
|
48
|
-
|
|
49
|
-
## 继承 ConfigProvider 配置
|
|
50
|
-
|
|
51
|
-
当 ExButton 被包裹在 XtConfigProvider 中时,会自动继承字体大小配置:
|
|
52
|
-
|
|
53
|
-
::: demo 按钮继承字体大小示例
|
|
54
|
-
```vue
|
|
55
|
-
<template>
|
|
56
|
-
<xt-config-provider size="large">
|
|
57
|
-
<ex-button>自动继承大字体</ex-button>
|
|
58
|
-
</xt-config-provider>
|
|
59
|
-
</template>
|
|
60
|
-
```
|
|
61
|
-
:::
|
|
62
|
-
|
|
63
|
-
## Attributes
|
|
64
|
-
|
|
65
|
-
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|
|
66
|
-
|------|------|------|--------|--------|
|
|
67
|
-
| type | 按钮类型 | string | primary/success/warning/danger | — |
|
|
68
|
-
| size | 按钮尺寸 | string | small/medium/large | — |
|
|
69
|
-
| throttle | 点击节流时间 (ms) | number | — | 0 |
|
|
70
|
-
|
|
71
|
-
## Events
|
|
72
|
-
|
|
73
|
-
| 事件名 | 说明 | 回调参数 |
|
|
74
|
-
|--------|------|----------|
|
|
75
|
-
| click | 点击按钮时触发 | — |
|