xt-element-ui 1.4.0 → 2.0.0
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 +37 -20
- package/README.md +39 -35
- package/docs/README.md +25 -15
- package/docs/components/base/xt-badge.md +139 -0
- package/docs/components/base/xt-bar.md +182 -0
- package/docs/components/base/xt-chart.md +183 -0
- package/docs/components/base/xt-date-picker.md +111 -0
- package/docs/components/base/xt-icon.md +154 -0
- package/docs/components/base/xt-line.md +145 -0
- package/docs/components/base/xt-multi.md +278 -0
- package/docs/components/base/xt-page.md +84 -0
- package/docs/components/base/xt-pie.md +175 -0
- package/docs/components/base/xt-progress.md +134 -0
- package/docs/components/base/xt-select-tree.md +141 -0
- package/docs/components/base/xt-table.md +344 -0
- package/docs/components/base/xt-tabs.md +197 -0
- package/docs/components/base/xt-upload.md +85 -0
- package/lib/index.common.js +479 -821
- package/lib/index.css +1 -1
- package/lib/index.umd.js +484 -827
- package/lib/index.umd.min.js +5 -5
- package/package.json +1 -1
- package/src/components/index.scss +2 -8
- package/src/components/xt-button/index.js +8 -8
- package/src/components/xt-button/index.vue +43 -73
- package/src/components/xt-button/style/index.scss +51 -787
- package/src/components/xt-card/index.js +7 -8
- package/src/components/xt-card/index.vue +61 -21
- package/src/components/xt-card/style/index.scss +56 -32
- package/src/components/xt-card-item/index.vue +3 -3
- package/src/components/xt-chart/index.js +8 -0
- package/src/components/{ex-chart → xt-chart}/index.vue +13 -13
- package/src/components/{ex-chart → xt-chart}/pieList.vue +1 -1
- package/src/components/{ex-chart → xt-chart}/utils.js +1 -1
- package/src/components/xt-config-provider/index.vue +1 -1
- package/src/components/xt-date-picker/index.js +8 -0
- package/src/components/{ex-date-picker → xt-date-picker}/index.vue +1 -1
- package/src/components/xt-icon/index.js +8 -0
- package/src/components/{ex-icon → xt-icon}/index.vue +4 -4
- package/src/components/xt-layout/ExFieldset.vue +1 -1
- package/src/components/xt-page/index.js +8 -0
- package/src/components/{ex-page → xt-page}/index.vue +1 -1
- package/src/components/xt-select-tree/index.js +8 -0
- package/src/components/{ex-select-tree → xt-select-tree}/index.vue +1 -1
- package/src/components/{ex-table/ExTableCell.vue → xt-table/XtTableCell.vue} +1 -1
- package/src/components/xt-table/index.js +8 -0
- package/src/components/{ex-table → xt-table}/index.vue +6 -6
- package/src/components/xt-upload/index.js +8 -0
- package/src/index.js +15 -29
- package/src/utils/index.js +1 -1
- package/docs/components/extend/ex-bar.md +0 -68
- package/docs/components/extend/ex-button.md +0 -62
- package/docs/components/extend/ex-card.md +0 -86
- package/docs/components/extend/ex-chart.md +0 -463
- package/docs/components/extend/ex-date-picker.md +0 -0
- package/docs/components/extend/ex-icon.md +0 -189
- package/docs/components/extend/ex-line.md +0 -71
- package/docs/components/extend/ex-multi.md +0 -156
- package/docs/components/extend/ex-page.md +0 -0
- package/docs/components/extend/ex-pie.md +0 -70
- package/docs/components/extend/ex-select-tree.md +0 -210
- package/docs/components/extend/ex-table.md +0 -591
- package/docs/components/extend/ex-upload.md +0 -134
- package/src/components/ex-button/index.js +0 -8
- package/src/components/ex-button/index.vue +0 -67
- package/src/components/ex-button/style/index.scss +0 -67
- package/src/components/ex-card/index.js +0 -7
- package/src/components/ex-card/index.vue +0 -68
- package/src/components/ex-card/style/index.scss +0 -73
- package/src/components/ex-chart/index.js +0 -8
- package/src/components/ex-date-picker/index.js +0 -8
- package/src/components/ex-icon/index.js +0 -8
- package/src/components/ex-page/index.js +0 -8
- package/src/components/ex-select-tree/index.js +0 -8
- package/src/components/ex-table/index.js +0 -8
- package/src/components/ex-upload/index.js +0 -8
- package/src/config/element-registry.js +0 -136
- /package/src/components/{ex-chart/ExBar.vue → xt-chart/XtBar.vue} +0 -0
- /package/src/components/{ex-chart/ExLine.vue → xt-chart/XtLine.vue} +0 -0
- /package/src/components/{ex-chart/ExMulti.vue → xt-chart/XtMulti.vue} +0 -0
- /package/src/components/{ex-chart/ExPie.vue → xt-chart/XtPie.vue} +0 -0
- /package/src/components/{ex-chart → xt-chart}/theme/dark.js +0 -0
- /package/src/components/{ex-chart → xt-chart}/theme/white.js +0 -0
- /package/src/components/{ex-date-picker → xt-date-picker}/SearchDate.vue +0 -0
- /package/src/components/{ex-date-picker → xt-date-picker}/quarter.vue +0 -0
- /package/src/components/{ex-icon → xt-icon}/style/index.scss +0 -0
- /package/src/components/{ex-table → xt-table}/VirtualElTable.vue +0 -0
- /package/src/components/{ex-table → xt-table}/virtualScrollData.js +0 -0
- /package/src/components/{ex-upload → xt-upload}/index.vue +0 -0
- /package/src/components/{ex-upload → xt-upload}/preview.vue +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
## XtChart 图表容器组件
|
|
2
|
+
|
|
3
|
+
基于 ECharts 封装的图表容器组件,通过 `type` 属性切换不同图表类型(柱状图、折线图、饼图、组合图)。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
::: demo 基本用法
|
|
8
|
+
```vue
|
|
9
|
+
<template>
|
|
10
|
+
<XtChart type="bar" :chart-data="chartData" />
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script>
|
|
14
|
+
export default {
|
|
15
|
+
data() {
|
|
16
|
+
return {
|
|
17
|
+
chartData: [
|
|
18
|
+
{ value: 65, label: "张三" },
|
|
19
|
+
{ value: 78, label: "李四" },
|
|
20
|
+
{ value: 95, label: "王五" }
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
</script>
|
|
26
|
+
```
|
|
27
|
+
:::
|
|
28
|
+
|
|
29
|
+
## 属性说明
|
|
30
|
+
|
|
31
|
+
| 属性 | 类型 | 默认值 | 可选值 | 说明 |
|
|
32
|
+
|------|------|--------|--------|------|
|
|
33
|
+
| `type` | String | `bar` | `bar`、`line`、`pie`、`multi` | 图表类型 |
|
|
34
|
+
| `theme` | String | - | `dark`、`default` | 主题,自动检测父元素 `data-theme` |
|
|
35
|
+
| `size` | String | `medium` | `small`、`medium`、`large` | 图表尺寸 |
|
|
36
|
+
|
|
37
|
+
## 示例
|
|
38
|
+
|
|
39
|
+
### 柱状图
|
|
40
|
+
|
|
41
|
+
::: demo 柱状图
|
|
42
|
+
```vue
|
|
43
|
+
<template>
|
|
44
|
+
<XtChart type="bar" :chart-data="chartData" />
|
|
45
|
+
</template>
|
|
46
|
+
|
|
47
|
+
<script>
|
|
48
|
+
export default {
|
|
49
|
+
data() {
|
|
50
|
+
return {
|
|
51
|
+
chartData: [
|
|
52
|
+
{ value: 65, label: "张三" },
|
|
53
|
+
{ value: 78, label: "李四" },
|
|
54
|
+
{ value: 95, label: "王五" },
|
|
55
|
+
{ value: 82, label: "赵六" },
|
|
56
|
+
{ value: 70, label: "钱七" }
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
```
|
|
63
|
+
:::
|
|
64
|
+
|
|
65
|
+
### 折线图
|
|
66
|
+
|
|
67
|
+
::: demo 折线图
|
|
68
|
+
```vue
|
|
69
|
+
<template>
|
|
70
|
+
<XtChart type="line" :chart-data="chartData" />
|
|
71
|
+
</template>
|
|
72
|
+
|
|
73
|
+
<script>
|
|
74
|
+
export default {
|
|
75
|
+
data() {
|
|
76
|
+
return {
|
|
77
|
+
chartData: [
|
|
78
|
+
{ value: 65, label: "1月" },
|
|
79
|
+
{ value: 78, label: "2月" },
|
|
80
|
+
{ value: 95, label: "3月" },
|
|
81
|
+
{ value: 82, label: "4月" },
|
|
82
|
+
{ value: 70, label: "5月" }
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
</script>
|
|
88
|
+
```
|
|
89
|
+
:::
|
|
90
|
+
|
|
91
|
+
### 饼图
|
|
92
|
+
|
|
93
|
+
::: demo 饼图
|
|
94
|
+
```vue
|
|
95
|
+
<template>
|
|
96
|
+
<XtChart type="pie" :chart-data="chartData" />
|
|
97
|
+
</template>
|
|
98
|
+
|
|
99
|
+
<script>
|
|
100
|
+
export default {
|
|
101
|
+
data() {
|
|
102
|
+
return {
|
|
103
|
+
chartData: [
|
|
104
|
+
{ value: 30, label: "北京" },
|
|
105
|
+
{ value: 25, label: "上海" },
|
|
106
|
+
{ value: 20, label: "广州" },
|
|
107
|
+
{ value: 25, label: "深圳" }
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
</script>
|
|
113
|
+
```
|
|
114
|
+
:::
|
|
115
|
+
|
|
116
|
+
### 组合图
|
|
117
|
+
|
|
118
|
+
::: demo 组合图
|
|
119
|
+
```vue
|
|
120
|
+
<template>
|
|
121
|
+
<XtChart type="multi" :chart-data="chartData" />
|
|
122
|
+
</template>
|
|
123
|
+
|
|
124
|
+
<script>
|
|
125
|
+
export default {
|
|
126
|
+
data() {
|
|
127
|
+
return {
|
|
128
|
+
chartData: [
|
|
129
|
+
{
|
|
130
|
+
label: "销售额",
|
|
131
|
+
unit: "万元",
|
|
132
|
+
data: [
|
|
133
|
+
{ label: "1月", value: 100 },
|
|
134
|
+
{ label: "2月", value: 120 },
|
|
135
|
+
{ label: "3月", value: 90 }
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
label: "订单数",
|
|
140
|
+
unit: "单",
|
|
141
|
+
data: [
|
|
142
|
+
{ label: "1月", value: 50 },
|
|
143
|
+
{ label: "2月", value: 60 },
|
|
144
|
+
{ label: "3月", value: 45 }
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
</script>
|
|
152
|
+
```
|
|
153
|
+
:::
|
|
154
|
+
|
|
155
|
+
### 暗色主题
|
|
156
|
+
|
|
157
|
+
::: demo 暗色主题
|
|
158
|
+
```vue
|
|
159
|
+
<template>
|
|
160
|
+
<XtChart type="bar" :chart-data="chartData" theme="dark" />
|
|
161
|
+
</template>
|
|
162
|
+
|
|
163
|
+
<script>
|
|
164
|
+
export default {
|
|
165
|
+
data() {
|
|
166
|
+
return {
|
|
167
|
+
chartData: [
|
|
168
|
+
{ value: 65, label: "张三" },
|
|
169
|
+
{ value: 78, label: "李四" },
|
|
170
|
+
{ value: 95, label: "王五" }
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
</script>
|
|
176
|
+
```
|
|
177
|
+
:::
|
|
178
|
+
|
|
179
|
+
## 注意事项
|
|
180
|
+
|
|
181
|
+
- `XtChart` 是一个容器组件,会根据 `type` 属性渲染对应的子组件(XtBar/XtLine/XtPie/XtMulti)
|
|
182
|
+
- 所有子组件的 props 都可以通过 `XtChart` 透传
|
|
183
|
+
- 主题会自动检测父元素的 `data-theme` 属性,无需手动传递
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
## XtDatePicker 日期选择器组件
|
|
2
|
+
|
|
3
|
+
日期选择器组件用于选择日期范围,支持多种日期类型(年月日、年月、年、季度等)。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
::: demo 基本用法
|
|
8
|
+
```vue
|
|
9
|
+
<template>
|
|
10
|
+
<XtDatePicker v-model="dateRange" />
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script>
|
|
14
|
+
export default {
|
|
15
|
+
data() {
|
|
16
|
+
return {
|
|
17
|
+
dateRange: []
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
</script>
|
|
22
|
+
```
|
|
23
|
+
:::
|
|
24
|
+
|
|
25
|
+
## 属性说明
|
|
26
|
+
|
|
27
|
+
| 属性 | 类型 | 默认值 | 可选值 | 说明 |
|
|
28
|
+
|------|------|--------|--------|------|
|
|
29
|
+
| `value` / `v-model` | Array | - | - | 日期范围,格式为 `[startDate, endDate]` |
|
|
30
|
+
| `dateType` | String | `date` | `date`、`datetime`、`month`、`year`、`quarter`、`week` | 日期类型 |
|
|
31
|
+
| `separator` | String | `至` | - | 分隔符文本 |
|
|
32
|
+
| `disabled` | Boolean | `false` | - | 是否禁用 |
|
|
33
|
+
| `width` | Number | `280` | - | 组件宽度(px) |
|
|
34
|
+
|
|
35
|
+
## 示例
|
|
36
|
+
|
|
37
|
+
### 不同日期类型
|
|
38
|
+
|
|
39
|
+
::: demo 不同日期类型
|
|
40
|
+
```vue
|
|
41
|
+
<template>
|
|
42
|
+
<div style="display: flex; flex-direction: column; gap: 12px;">
|
|
43
|
+
<XtDatePicker v-model="dateRange" dateType="date" />
|
|
44
|
+
<XtDatePicker v-model="monthRange" dateType="month" />
|
|
45
|
+
<XtDatePicker v-model="yearRange" dateType="year" />
|
|
46
|
+
<XtDatePicker v-model="quarterRange" dateType="quarter" />
|
|
47
|
+
</div>
|
|
48
|
+
</template>
|
|
49
|
+
|
|
50
|
+
<script>
|
|
51
|
+
export default {
|
|
52
|
+
data() {
|
|
53
|
+
return {
|
|
54
|
+
dateRange: [],
|
|
55
|
+
monthRange: [],
|
|
56
|
+
yearRange: [],
|
|
57
|
+
quarterRange: []
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
```
|
|
63
|
+
:::
|
|
64
|
+
|
|
65
|
+
### 自定义分隔符
|
|
66
|
+
|
|
67
|
+
::: demo 自定义分隔符
|
|
68
|
+
```vue
|
|
69
|
+
<template>
|
|
70
|
+
<XtDatePicker v-model="dateRange" separator="~" />
|
|
71
|
+
</template>
|
|
72
|
+
|
|
73
|
+
<script>
|
|
74
|
+
export default {
|
|
75
|
+
data() {
|
|
76
|
+
return {
|
|
77
|
+
dateRange: []
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
</script>
|
|
82
|
+
```
|
|
83
|
+
:::
|
|
84
|
+
|
|
85
|
+
### 禁用状态
|
|
86
|
+
|
|
87
|
+
::: demo 禁用状态
|
|
88
|
+
```vue
|
|
89
|
+
<template>
|
|
90
|
+
<XtDatePicker v-model="dateRange" disabled />
|
|
91
|
+
</template>
|
|
92
|
+
|
|
93
|
+
<script>
|
|
94
|
+
export default {
|
|
95
|
+
data() {
|
|
96
|
+
return {
|
|
97
|
+
dateRange: []
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
</script>
|
|
102
|
+
```
|
|
103
|
+
:::
|
|
104
|
+
|
|
105
|
+
## 事件
|
|
106
|
+
|
|
107
|
+
| 事件名 | 说明 | 参数 |
|
|
108
|
+
|--------|------|------|
|
|
109
|
+
| `change` | 日期值改变时触发 | `[startDate, endDate]` |
|
|
110
|
+
| `focus` | 输入框获得焦点时触发 | - |
|
|
111
|
+
| `blur` | 输入框失去焦点时触发 | - |
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
## XtIcon 图标组件
|
|
2
|
+
|
|
3
|
+
图标组件支持多种图标类型:ElementUI 字体图标、SVG Sprite、内联 SVG 和自定义字体图标。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
::: demo 基本用法
|
|
8
|
+
```vue
|
|
9
|
+
<template>
|
|
10
|
+
<XtIcon name="el-icon-search" />
|
|
11
|
+
</template>
|
|
12
|
+
```
|
|
13
|
+
:::
|
|
14
|
+
|
|
15
|
+
## 属性说明
|
|
16
|
+
|
|
17
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
18
|
+
|------|------|--------|------|
|
|
19
|
+
| `name` | String | - | 图标名称或 SVG 内容 |
|
|
20
|
+
| `size` | String / Number | - | 图标大小 |
|
|
21
|
+
| `color` | String | - | 图标颜色 |
|
|
22
|
+
| `spin` | Boolean | `false` | 是否旋转 |
|
|
23
|
+
|
|
24
|
+
## 图标类型
|
|
25
|
+
|
|
26
|
+
### ElementUI 字体图标
|
|
27
|
+
|
|
28
|
+
以 `el-icon-` 开头的图标名称会自动识别为 ElementUI 图标:
|
|
29
|
+
|
|
30
|
+
::: demo ElementUI 图标
|
|
31
|
+
```vue
|
|
32
|
+
<template>
|
|
33
|
+
<div style="display: flex; gap: 16px;">
|
|
34
|
+
<XtIcon name="el-icon-search" />
|
|
35
|
+
<XtIcon name="el-icon-edit" />
|
|
36
|
+
<XtIcon name="el-icon-delete" />
|
|
37
|
+
<XtIcon name="el-icon-user" />
|
|
38
|
+
</div>
|
|
39
|
+
</template>
|
|
40
|
+
```
|
|
41
|
+
:::
|
|
42
|
+
|
|
43
|
+
### SVG Sprite
|
|
44
|
+
|
|
45
|
+
使用 `#` 或 `svg:` 前缀引用 SVG Sprite:
|
|
46
|
+
|
|
47
|
+
::: demo SVG Sprite
|
|
48
|
+
```vue
|
|
49
|
+
<template>
|
|
50
|
+
<XtIcon name="#icon-home" />
|
|
51
|
+
</template>
|
|
52
|
+
```
|
|
53
|
+
:::
|
|
54
|
+
|
|
55
|
+
### 内联 SVG
|
|
56
|
+
|
|
57
|
+
直接传入完整的 SVG 字符串:
|
|
58
|
+
|
|
59
|
+
::: demo 内联 SVG
|
|
60
|
+
```vue
|
|
61
|
+
<template>
|
|
62
|
+
<XtIcon :name="svgContent" />
|
|
63
|
+
</template>
|
|
64
|
+
|
|
65
|
+
<script>
|
|
66
|
+
export default {
|
|
67
|
+
data() {
|
|
68
|
+
return {
|
|
69
|
+
svgContent: '<svg viewBox="0 0 24 24"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>'
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
</script>
|
|
74
|
+
```
|
|
75
|
+
:::
|
|
76
|
+
|
|
77
|
+
### 自定义字体图标
|
|
78
|
+
|
|
79
|
+
非上述类型的图标名称会作为自定义字体图标类名处理:
|
|
80
|
+
|
|
81
|
+
::: demo 自定义字体图标
|
|
82
|
+
```vue
|
|
83
|
+
<template>
|
|
84
|
+
<XtIcon name="custom-icon-star" />
|
|
85
|
+
</template>
|
|
86
|
+
```
|
|
87
|
+
:::
|
|
88
|
+
|
|
89
|
+
## 示例
|
|
90
|
+
|
|
91
|
+
### 不同尺寸
|
|
92
|
+
|
|
93
|
+
::: demo 不同尺寸
|
|
94
|
+
```vue
|
|
95
|
+
<template>
|
|
96
|
+
<div style="display: flex; align-items: center; gap: 16px;">
|
|
97
|
+
<XtIcon name="el-icon-search" :size="16" />
|
|
98
|
+
<XtIcon name="el-icon-search" :size="24" />
|
|
99
|
+
<XtIcon name="el-icon-search" :size="32" />
|
|
100
|
+
<XtIcon name="el-icon-search" size="40px" />
|
|
101
|
+
</div>
|
|
102
|
+
</template>
|
|
103
|
+
```
|
|
104
|
+
:::
|
|
105
|
+
|
|
106
|
+
### 不同颜色
|
|
107
|
+
|
|
108
|
+
::: demo 不同颜色
|
|
109
|
+
```vue
|
|
110
|
+
<template>
|
|
111
|
+
<div style="display: flex; gap: 16px;">
|
|
112
|
+
<XtIcon name="el-icon-search" color="#1890ff" />
|
|
113
|
+
<XtIcon name="el-icon-search" color="#52c41a" />
|
|
114
|
+
<XtIcon name="el-icon-search" color="#faad14" />
|
|
115
|
+
<XtIcon name="el-icon-search" color="#f5222d" />
|
|
116
|
+
</div>
|
|
117
|
+
</template>
|
|
118
|
+
```
|
|
119
|
+
:::
|
|
120
|
+
|
|
121
|
+
### 旋转动画
|
|
122
|
+
|
|
123
|
+
::: demo 旋转动画
|
|
124
|
+
```vue
|
|
125
|
+
<template>
|
|
126
|
+
<XtIcon name="el-icon-loading" spin />
|
|
127
|
+
</template>
|
|
128
|
+
```
|
|
129
|
+
:::
|
|
130
|
+
|
|
131
|
+
### 配合按钮使用
|
|
132
|
+
|
|
133
|
+
::: demo 配合按钮使用
|
|
134
|
+
```vue
|
|
135
|
+
<template>
|
|
136
|
+
<XtButton type="primary">
|
|
137
|
+
<XtIcon name="el-icon-search" />
|
|
138
|
+
搜索
|
|
139
|
+
</XtButton>
|
|
140
|
+
</template>
|
|
141
|
+
```
|
|
142
|
+
:::
|
|
143
|
+
|
|
144
|
+
## 全局注册前缀
|
|
145
|
+
|
|
146
|
+
对于自定义字体图标,可以注册前缀以避免自动添加 `ex-icon` 类名:
|
|
147
|
+
|
|
148
|
+
```javascript
|
|
149
|
+
import XtIcon from 'xt-element-ui/src/components/xt-icon'
|
|
150
|
+
|
|
151
|
+
XtIcon.registerPrefix('custom-')
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
注册后,所有以 `custom-` 开头的图标名称不会自动添加 `ex-icon` 类名。
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
## XtLine 折线图组件
|
|
2
|
+
|
|
3
|
+
基于 ECharts 封装的折线图组件,支持面积图、平滑曲线等功能。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
::: demo 基本用法
|
|
8
|
+
```vue
|
|
9
|
+
<template>
|
|
10
|
+
<XtLine :chart-data="chartData" />
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script>
|
|
14
|
+
export default {
|
|
15
|
+
data() {
|
|
16
|
+
return {
|
|
17
|
+
chartData: [
|
|
18
|
+
{ value: 53, label: "张三" },
|
|
19
|
+
{ value: 10, label: "李四" },
|
|
20
|
+
{ value: 60, label: "宋五" }
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
</script>
|
|
26
|
+
```
|
|
27
|
+
:::
|
|
28
|
+
|
|
29
|
+
## 属性说明
|
|
30
|
+
|
|
31
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
32
|
+
|------|------|--------|------|
|
|
33
|
+
| `chartData` | Array | - | 图表数据,格式为 `[{ label, value }]` |
|
|
34
|
+
| `fieldKeys` | Object | `{ label: "label", value: "value", data: "data" }` | 字段映射配置 |
|
|
35
|
+
| `theme` | String | - | 主题,`dark` 或 `default` |
|
|
36
|
+
| `size` | String | `medium` | 尺寸,`small` / `medium` / `large` |
|
|
37
|
+
| `isArea` | Boolean | `false` | 是否显示面积图 |
|
|
38
|
+
| `unit` | String | `""` | 数据单位 |
|
|
39
|
+
| `intervalvalue` | Number | `0` | X 轴标签间隔,0 表示全部显示 |
|
|
40
|
+
| `simpleMode` | Boolean | `false` | 是否启用极简模式(隐藏图例、坐标轴等) |
|
|
41
|
+
|
|
42
|
+
## 示例
|
|
43
|
+
|
|
44
|
+
### 面积图
|
|
45
|
+
|
|
46
|
+
::: demo 面积图
|
|
47
|
+
```vue
|
|
48
|
+
<template>
|
|
49
|
+
<XtLine :chart-data="chartData" :is-area="true" />
|
|
50
|
+
</template>
|
|
51
|
+
|
|
52
|
+
<script>
|
|
53
|
+
export default {
|
|
54
|
+
data() {
|
|
55
|
+
return {
|
|
56
|
+
chartData: [
|
|
57
|
+
{ value: 53, label: "1月" },
|
|
58
|
+
{ value: 60, label: "2月" },
|
|
59
|
+
{ value: 78, label: "3月" },
|
|
60
|
+
{ value: 82, label: "4月" },
|
|
61
|
+
{ value: 95, label: "5月" }
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
</script>
|
|
67
|
+
```
|
|
68
|
+
:::
|
|
69
|
+
|
|
70
|
+
### 极简模式
|
|
71
|
+
|
|
72
|
+
::: demo 极简模式
|
|
73
|
+
```vue
|
|
74
|
+
<template>
|
|
75
|
+
<XtLine :chart-data="chartData" simple-mode />
|
|
76
|
+
</template>
|
|
77
|
+
|
|
78
|
+
<script>
|
|
79
|
+
export default {
|
|
80
|
+
data() {
|
|
81
|
+
return {
|
|
82
|
+
chartData: [
|
|
83
|
+
{ value: 53, label: "A" },
|
|
84
|
+
{ value: 60, label: "B" },
|
|
85
|
+
{ value: 78, label: "C" }
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
</script>
|
|
91
|
+
```
|
|
92
|
+
:::
|
|
93
|
+
|
|
94
|
+
### 自定义字段映射
|
|
95
|
+
|
|
96
|
+
::: demo 自定义字段映射
|
|
97
|
+
```vue
|
|
98
|
+
<template>
|
|
99
|
+
<XtLine :chart-data="chartData" :field-keys="{ label: 'month', value: 'amount' }" />
|
|
100
|
+
</template>
|
|
101
|
+
|
|
102
|
+
<script>
|
|
103
|
+
export default {
|
|
104
|
+
data() {
|
|
105
|
+
return {
|
|
106
|
+
chartData: [
|
|
107
|
+
{ month: "1月", amount: 53 },
|
|
108
|
+
{ month: "2月", amount: 60 },
|
|
109
|
+
{ month: "3月", amount: 78 }
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
</script>
|
|
115
|
+
```
|
|
116
|
+
:::
|
|
117
|
+
|
|
118
|
+
### 暗色主题
|
|
119
|
+
|
|
120
|
+
::: demo 暗色主题
|
|
121
|
+
```vue
|
|
122
|
+
<template>
|
|
123
|
+
<XtLine :chart-data="chartData" theme="dark" />
|
|
124
|
+
</template>
|
|
125
|
+
|
|
126
|
+
<script>
|
|
127
|
+
export default {
|
|
128
|
+
data() {
|
|
129
|
+
return {
|
|
130
|
+
chartData: [
|
|
131
|
+
{ value: 53, label: "张三" },
|
|
132
|
+
{ value: 60, label: "李四" },
|
|
133
|
+
{ value: 78, label: "王五" }
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
</script>
|
|
139
|
+
```
|
|
140
|
+
:::
|
|
141
|
+
|
|
142
|
+
## 注意事项
|
|
143
|
+
|
|
144
|
+
- 折线图默认使用平滑曲线
|
|
145
|
+
- 数据值大于等于 10000 时会自动转换为"万"单位显示
|