xt-element-ui 1.3.4 → 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-card-item.md +12 -12
- 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 +885 -828
- package/lib/index.css +1 -1
- package/lib/index.umd.js +890 -834
- package/lib/index.umd.min.js +5 -5
- package/package.json +1 -1
- package/src/components/index.scss +11 -8
- package/src/components/xt-badge/index.js +7 -0
- package/src/components/xt-badge/index.vue +71 -0
- package/src/components/xt-badge/style/index.scss +88 -0
- 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 +7 -7
- 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}/theme/dark.js +4 -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-progress/index.js +7 -0
- package/src/components/xt-progress/index.vue +103 -0
- package/src/components/xt-progress/style/index.scss +119 -0
- 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-tabs/TabPane.vue +36 -0
- package/src/components/xt-tabs/index.js +10 -0
- package/src/components/xt-tabs/index.vue +113 -0
- package/src/components/xt-tabs/style/index.scss +197 -0
- package/src/components/xt-text/index.vue +15 -1
- package/src/components/xt-text/style/index.scss +18 -0
- package/src/components/xt-upload/index.js +8 -0
- package/src/index.js +24 -31
- 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/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
package/CHANGELOG.md
CHANGED
|
@@ -13,30 +13,48 @@
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
## [1.3.0]
|
|
17
|
+
|
|
18
|
+
### ♻️ 架构调整
|
|
19
|
+
|
|
20
|
+
- **组件命名统一**:移除双架构支持,所有组件统一使用 `Xt` 前缀命名
|
|
21
|
+
- **移除 Ex 系列组件**:删除 `ExButton`、`ExCard`、`ExChart`、`ExTable` 等所有 `Ex` 开头的组件
|
|
22
|
+
- **文档同步更新**:所有 Markdown 文档中的组件名称从 `Ex` 统一改为 `Xt`
|
|
23
|
+
- **配置文件更新**:`docs/.vuepress/config.js` 移除 `extend` 目录引用,统一使用 `base` 目录
|
|
24
|
+
|
|
25
|
+
### 📝 文档
|
|
26
|
+
|
|
27
|
+
- 更新 README.md,移除双架构说明,展示统一的 Xt 组件列表
|
|
28
|
+
- 更新 docs/README.md,统一组件命名规范
|
|
29
|
+
- 更新 CONTRIBUTING.md,移除双架构相关说明
|
|
30
|
+
- 新增 xt-date-picker.md、xt-icon.md、xt-table.md、xt-select-tree.md、xt-upload.md、xt-page.md 组件文档
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
16
34
|
## [1.2.5]
|
|
17
35
|
|
|
18
36
|
### ✨ 新功能
|
|
19
37
|
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
38
|
+
- **xt-chart**: 四个图表组件(XtBar / XtLine / XtPie / XtMulti)新增 `fieldKeys` prop,支持自定义 `chartData` 字段映射
|
|
39
|
+
- **xt-chart**: 四个图表组件新增 `simpleMode` prop,开启极简模式(隐藏图例、坐标轴等装饰元素)
|
|
40
|
+
- **xt-multi**: `chartData.unit` 支持去重,相同 unit 的 series 共用同一条 Y 轴
|
|
41
|
+
- **xt-table**: 新增虚拟滚动支持,大数据量表格渲染性能优化
|
|
42
|
+
- **xt-table**: 新增合并单元格(span-method)缓存机制,提升滚动性能
|
|
43
|
+
- **xt-icon**: 新增 XtIcon 组件,支持 `el-icon` 字体图标、SVG Sprite、内联 SVG 和自定义字体图标
|
|
26
44
|
|
|
27
45
|
### 🐛 Bug 修复
|
|
28
46
|
|
|
29
|
-
- **
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
33
|
-
- **
|
|
47
|
+
- **xt-chart**: 修复暗色模式下 canvas 背景色为透明的问题,改为黑色
|
|
48
|
+
- **xt-table**: 修复模板中非嵌套列分支引用未定义变量导致页面空白的问题
|
|
49
|
+
- **xt-table**: 修复横向滚动时固定列背景色被文字覆盖的问题
|
|
50
|
+
- **xt-table**: 修复虚拟滚动时 Y 轴滚动条不显示的问题
|
|
51
|
+
- **xt-table**: 修复虚拟滚动初始渲染只显示少量数据的问题,优化 `calcVisibleRange` 计算逻辑
|
|
34
52
|
|
|
35
53
|
### 📝 文档
|
|
36
54
|
|
|
37
|
-
- 新增
|
|
38
|
-
- 新增
|
|
39
|
-
- 更新
|
|
55
|
+
- 新增 xt-table.md 详细文档,包含虚拟滚动、自定义 formatter、列配置等章节
|
|
56
|
+
- 新增 xt-icon.md 图标组件文档
|
|
57
|
+
- 更新 xt-chart.md 文档,按子组件拆分章节并补充 `fieldKeys`、`simpleMode` 等属性说明
|
|
40
58
|
|
|
41
59
|
---
|
|
42
60
|
|
|
@@ -50,12 +68,11 @@
|
|
|
50
68
|
- **xt-text / xt-input**: 新增文本和输入框组件
|
|
51
69
|
- **xt-date-picker**: 新增日期选择组件(支持季度选择)
|
|
52
70
|
- **xt-config-provider**: 新增全局配置提供者,支持主题、尺寸、主色调配置
|
|
53
|
-
- **
|
|
54
|
-
- **
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **ex-page**: 新增页面组件
|
|
71
|
+
- **xt-chart (XtBar / XtLine / XtPie / XtMulti)**: 新增基于 ECharts 的图表组件族
|
|
72
|
+
- **xt-table**: 新增基于 ElementUI Table 的扩展表格组件
|
|
73
|
+
- **xt-select-tree**: 新增下拉选择树组件
|
|
74
|
+
- **xt-upload**: 新增上传组件(支持图片预览)
|
|
75
|
+
- **xt-page**: 新增页面组件
|
|
59
76
|
|
|
60
77
|
### 🏗 构建
|
|
61
78
|
|
package/README.md
CHANGED
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
- **🎯 丰富的组件**:提供 15+ 组件,覆盖布局、表单、数据展示、图表等常见场景
|
|
24
24
|
- **📦 开箱即用**:基于 ElementUI 构建,与现有 ElementUI 项目无缝集成
|
|
25
25
|
- **🪶 按需引入**:完整的 npm 包架构,支持按需引入,减小打包体积
|
|
26
|
-
- **🎨 双架构设计**:`Xt` 自定义组件 + `Ex` 扩展组件,职责清晰、便于维护
|
|
27
26
|
- **🌓 主题系统**:支持亮色/暗色主题切换,支持自定义主色调
|
|
28
27
|
- **📐 响应式设计**:组件支持多种尺寸配置,适配不同屏幕
|
|
29
28
|
- **📊 图表能力**:内置 ECharts 封装,提供柱状图、折线图、饼图、混合图
|
|
@@ -69,20 +68,20 @@ Vue.use(XtElementUI, {
|
|
|
69
68
|
### 按需引入
|
|
70
69
|
|
|
71
70
|
```javascript
|
|
72
|
-
import { XtButton, XtFlexBox,
|
|
71
|
+
import { XtButton, XtFlexBox, XtTable, XtBar } from 'xt-element-ui'
|
|
73
72
|
import 'xt-element-ui/lib/index.css'
|
|
74
73
|
|
|
75
74
|
Vue.component('XtButton', XtButton)
|
|
76
75
|
Vue.component('XtFlexBox', XtFlexBox)
|
|
77
|
-
Vue.component('
|
|
78
|
-
Vue.component('
|
|
76
|
+
Vue.component('XtTable', XtTable)
|
|
77
|
+
Vue.component('XtBar', XtBar)
|
|
79
78
|
```
|
|
80
79
|
|
|
81
80
|
---
|
|
82
81
|
|
|
83
82
|
## 📦 组件列表
|
|
84
83
|
|
|
85
|
-
|
|
84
|
+
所有组件统一以 `Xt` 开头命名,不再区分双架构:
|
|
86
85
|
|
|
87
86
|
| 组件 | 说明 |
|
|
88
87
|
|------|------|
|
|
@@ -95,24 +94,22 @@ Vue.component('ExBar', ExBar)
|
|
|
95
94
|
| **XtText** | 文本组件 |
|
|
96
95
|
| **XtInput** | 输入框组件 |
|
|
97
96
|
| **XtConfigProvider** | 全局配置提供器 |
|
|
97
|
+
| **XtTime** | 时间组件(当前时间/倒计时/日期格式化) |
|
|
98
|
+
| **XtStepPrice** | 阶梯价格组件 |
|
|
99
|
+
| **XtStepPriceItem** | 阶梯价格子项组件 |
|
|
100
|
+
| **XtMap** | 统一地图组件(支持高德/天地图/百度) |
|
|
101
|
+
| **XtMapProvider** | 地图全局配置提供器 |
|
|
102
|
+
| **XtDatePicker** | 日期选择器(支持季度选择) |
|
|
103
|
+
| **XtIcon** | 图标组件(支持 el-icon/SVG/自定义字体) |
|
|
104
|
+
| **XtTable** | 扩展表格(含虚拟滚动) |
|
|
105
|
+
| **XtChart** | 图表容器(含 XtBar/XtLine/XtPie/XtMulti) |
|
|
106
|
+
| **XtSelectTree** | 下拉选择树组件 |
|
|
107
|
+
| **XtUpload** | 上传组件(支持图片预览) |
|
|
108
|
+
| **XtPage** | 页面组件 |
|
|
109
|
+
| **XtProgress** | 进度条组件 |
|
|
110
|
+
| **XtTabs** | 标签页组件 |
|
|
111
|
+
| **XtBadge** | 徽标组件 |
|
|
98
112
|
|
|
99
|
-
### Ex 组件(扩展组件)
|
|
100
|
-
|
|
101
|
-
| 组件 | 说明 |
|
|
102
|
-
|------|------|
|
|
103
|
-
| **ExButton** | 基于 ElementUI Button 的扩展按钮 |
|
|
104
|
-
| **ExCard** | 基于 ElementUI Card 的扩展卡片 |
|
|
105
|
-
| **ExTable** | 基于 ElementUI Table 的扩展表格(支持虚拟滚动) |
|
|
106
|
-
| **ExBar** | 基于 ECharts 的柱状图 |
|
|
107
|
-
| **ExLine** | 基于 ECharts 的折线图 |
|
|
108
|
-
| **ExPie** | 基于 ECharts 的饼图 |
|
|
109
|
-
| **ExMulti** | 基于 ECharts 的混合图表(支持多 Y 轴) |
|
|
110
|
-
| **ExChart** | 图表容器组件 |
|
|
111
|
-
| **ExSelectTree** | 下拉选择树组件 |
|
|
112
|
-
| **ExUpload** | 上传组件(支持图片预览) |
|
|
113
|
-
| **ExPage** | 页面组件 |
|
|
114
|
-
| **ExDatePicker** | 日期选择组件 |
|
|
115
|
-
| **ExIcon** | 图标组件(支持 SVG / 字体图标) |
|
|
116
113
|
|
|
117
114
|
---
|
|
118
115
|
|
|
@@ -146,29 +143,36 @@ xt-element-ui/
|
|
|
146
143
|
│ │ ├── config.js # 主题、导航、侧边栏配置
|
|
147
144
|
│ │ └── enhanceApp.js # 应用增强
|
|
148
145
|
│ └── components/ # 各组件文档
|
|
149
|
-
│ ├── base/ #
|
|
150
|
-
│ ├── extend/ # Ex 系列组件文档
|
|
146
|
+
│ ├── base/ # 组件文档
|
|
151
147
|
│ └── utils/ # 工具类文档
|
|
152
148
|
│
|
|
153
149
|
├── src/ # 组件源码
|
|
154
|
-
│ ├── components/ #
|
|
150
|
+
│ ├── components/ # 组件目录(统一 Xt 前缀命名)
|
|
155
151
|
│ │ ├── xt-button/ # 按钮组件
|
|
156
152
|
│ │ ├── xt-card/ # 卡片组件
|
|
153
|
+
│ │ ├── xt-card-item/ # 卡片项组件
|
|
157
154
|
│ │ ├── xt-flex-box/ # 弹性布局组件
|
|
158
155
|
│ │ ├── xt-grid-box/ # 网格布局组件
|
|
156
|
+
│ │ ├── xt-grid-item/ # 网格子项组件
|
|
159
157
|
│ │ ├── xt-text/ # 文本组件
|
|
158
|
+
│ │ ├── xt-time/ # 时间组件
|
|
160
159
|
│ │ ├── xt-input/ # 输入框组件
|
|
161
160
|
│ │ ├── xt-config-provider/ # 配置提供者
|
|
162
|
-
│ │ ├── xt-date-picker/ #
|
|
163
|
-
│ │
|
|
164
|
-
│ │ ├──
|
|
165
|
-
│ │ ├──
|
|
166
|
-
│ │ ├──
|
|
167
|
-
│ │ ├──
|
|
168
|
-
│ │ ├──
|
|
169
|
-
│ │ ├──
|
|
170
|
-
│ │ ├──
|
|
171
|
-
│ │
|
|
161
|
+
│ │ ├── xt-date-picker/ # 日期选择器
|
|
162
|
+
│ │ ├── xt-icon/ # 图标组件
|
|
163
|
+
│ │ ├── xt-table/ # 扩展表格(含虚拟滚动)
|
|
164
|
+
│ │ ├── xt-chart/ # 图表组件(XtBar/XtLine/XtPie/XtMulti)
|
|
165
|
+
│ │ ├── xt-select-tree/ # 下拉选择树
|
|
166
|
+
│ │ ├── xt-upload/ # 上传组件
|
|
167
|
+
│ │ ├── xt-page/ # 页面组件
|
|
168
|
+
│ │ ├── xt-step-price/ # 阶梯价格组件
|
|
169
|
+
│ │ ├── xt-step-price-item/ # 阶梯价格子项组件
|
|
170
|
+
│ │ ├── xt-map/ # 统一地图组件
|
|
171
|
+
│ │ ├── xt-map-provider/ # 地图配置提供者
|
|
172
|
+
│ │ ├── xt-progress/ # 进度条组件
|
|
173
|
+
│ │ ├── xt-tabs/ # 标签页组件
|
|
174
|
+
│ │ ├── xt-badge/ # 徽标组件
|
|
175
|
+
│ │ └── xt-layout/ # 布局组件
|
|
172
176
|
│ │
|
|
173
177
|
│ ├── config/ # 配置模块
|
|
174
178
|
│ ├── styles/ # 全局样式与变量
|
package/docs/README.md
CHANGED
|
@@ -12,8 +12,6 @@ features:
|
|
|
12
12
|
details: 基于 ElementUI 构建,与现有 ElementUI 项目无缝集成
|
|
13
13
|
- title: 🪶 按需引入
|
|
14
14
|
details: 完整的 npm 包架构,支持按需引入,减小打包体积
|
|
15
|
-
- title: 🎨 双架构设计
|
|
16
|
-
details: Xt 自定义组件 + Ex 扩展组件,职责清晰、便于维护
|
|
17
15
|
- title: 🌓 主题系统
|
|
18
16
|
details: 支持亮色/暗色主题切换,支持自定义主色调
|
|
19
17
|
- title: 📊 图表能力
|
|
@@ -41,9 +39,9 @@ Vue.use(XtElementUI)
|
|
|
41
39
|
|
|
42
40
|
## 📦 组件概览
|
|
43
41
|
|
|
44
|
-
|
|
42
|
+
所有组件统一以 `Xt` 开头命名,不再区分双架构:
|
|
45
43
|
|
|
46
|
-
|
|
44
|
+
### 🎨 基础组件
|
|
47
45
|
|
|
48
46
|
| 组件 | 说明 |
|
|
49
47
|
|------|------|
|
|
@@ -53,24 +51,36 @@ Vue.use(XtElementUI)
|
|
|
53
51
|
| **XtFlexBox** | 弹性布局组件 |
|
|
54
52
|
| **XtGridBox** | 网格布局组件 |
|
|
55
53
|
| **XtText** | 文本组件 |
|
|
54
|
+
| **XtTime** | 时间组件(当前时间/倒计时/日期格式化) |
|
|
56
55
|
| **XtInput** | 输入框组件 |
|
|
57
56
|
| **XtConfigProvider** | 全局配置提供器 |
|
|
57
|
+
| **XtMap** | 统一地图组件(支持高德/天地图/百度) |
|
|
58
|
+
| **XtStepPrice** | 阶梯价格组件 |
|
|
58
59
|
|
|
59
|
-
###
|
|
60
|
+
### 🔧 扩展组件
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
| 组件 | 说明 |
|
|
63
|
+
|------|------|
|
|
64
|
+
| **XtDatePicker** | 日期选择器(支持季度选择) |
|
|
65
|
+
| **XtIcon** | 图标组件(支持 el-icon/SVG/自定义字体) |
|
|
66
|
+
| **XtTable** | 扩展表格(含虚拟滚动) |
|
|
67
|
+
| **XtSelectTree** | 下拉选择树组件 |
|
|
68
|
+
| **XtUpload** | 上传组件(支持图片预览) |
|
|
69
|
+
| **XtPage** | 页面组件 |
|
|
70
|
+
| **XtProgress** | 进度条组件 |
|
|
71
|
+
| **XtTabs** | 标签页组件 |
|
|
72
|
+
| **XtBadge** | 徽标组件 |
|
|
73
|
+
|
|
74
|
+
### 📊 图表组件
|
|
62
75
|
|
|
63
76
|
| 组件 | 说明 |
|
|
64
77
|
|------|------|
|
|
65
|
-
| **
|
|
66
|
-
| **
|
|
67
|
-
| **
|
|
68
|
-
| **
|
|
69
|
-
| **
|
|
70
|
-
|
|
71
|
-
| **ExPage** | 页面组件 |
|
|
72
|
-
| **ExDatePicker** | 日期选择组件 |
|
|
73
|
-
| **ExIcon** | 图标组件(支持 SVG / 字体图标) |
|
|
78
|
+
| **XtChart** | 图表容器 |
|
|
79
|
+
| **XtBar** | 柱状图 |
|
|
80
|
+
| **XtLine** | 折线图 |
|
|
81
|
+
| **XtPie** | 饼图 |
|
|
82
|
+
| **XtMulti** | 组合图 |
|
|
83
|
+
|
|
74
84
|
|
|
75
85
|
---
|
|
76
86
|
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
## XtBadge 徽标组件
|
|
2
|
+
|
|
3
|
+
徽标组件,用于标记数字或状态。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
::: demo 基本用法
|
|
8
|
+
```vue
|
|
9
|
+
<template>
|
|
10
|
+
<XtBadge :value="12">
|
|
11
|
+
<XtButton size="small">评论</XtButton>
|
|
12
|
+
</XtBadge>
|
|
13
|
+
</template>
|
|
14
|
+
```
|
|
15
|
+
:::
|
|
16
|
+
|
|
17
|
+
## 属性说明
|
|
18
|
+
|
|
19
|
+
| 属性 | 类型 | 默认值 | 可选值 | 说明 |
|
|
20
|
+
|------|------|--------|--------|------|
|
|
21
|
+
| `value` | String / Number | - | - | 显示的数值 |
|
|
22
|
+
| `max` | Number | - | - | 最大值,超过会显示 {max}+ |
|
|
23
|
+
| `isDot` | Boolean | `false` | - | 是否显示小圆点 |
|
|
24
|
+
| `hidden` | Boolean | `false` | - | 是否隐藏徽标 |
|
|
25
|
+
| `type` | String | - | `primary`、`success`、`warning`、`danger` | 徽标类型 |
|
|
26
|
+
| `offset` | Array | `[0, 0]` | - | 设置徽标的偏移量,数组的两项分别对应水平和垂直偏移 |
|
|
27
|
+
|
|
28
|
+
## 示例
|
|
29
|
+
|
|
30
|
+
### 不同类型
|
|
31
|
+
|
|
32
|
+
::: demo 不同类型
|
|
33
|
+
```vue
|
|
34
|
+
<template>
|
|
35
|
+
<div style="display: flex; gap: 16px;">
|
|
36
|
+
<XtBadge :value="12" type="primary">
|
|
37
|
+
<XtButton size="small">评论</XtButton>
|
|
38
|
+
</XtBadge>
|
|
39
|
+
<XtBadge :value="3" type="success">
|
|
40
|
+
<XtButton size="small">回复</XtButton>
|
|
41
|
+
</XtBadge>
|
|
42
|
+
<XtBadge :value="5" type="warning">
|
|
43
|
+
<XtButton size="small">通知</XtButton>
|
|
44
|
+
</XtBadge>
|
|
45
|
+
<XtBadge :value="99+" type="danger">
|
|
46
|
+
<XtButton size="small">消息</XtButton>
|
|
47
|
+
</XtBadge>
|
|
48
|
+
</div>
|
|
49
|
+
</template>
|
|
50
|
+
```
|
|
51
|
+
:::
|
|
52
|
+
|
|
53
|
+
### 小圆点模式
|
|
54
|
+
|
|
55
|
+
::: demo 小圆点模式
|
|
56
|
+
```vue
|
|
57
|
+
<template>
|
|
58
|
+
<div style="display: flex; gap: 16px;">
|
|
59
|
+
<XtBadge is-dot>
|
|
60
|
+
<XtButton size="small">消息</XtButton>
|
|
61
|
+
</XtBadge>
|
|
62
|
+
<XtBadge is-dot type="success">
|
|
63
|
+
<XtButton size="small">在线</XtButton>
|
|
64
|
+
</XtBadge>
|
|
65
|
+
<XtBadge is-dot type="danger">
|
|
66
|
+
<XtButton size="small">错误</XtButton>
|
|
67
|
+
</XtBadge>
|
|
68
|
+
</div>
|
|
69
|
+
</template>
|
|
70
|
+
```
|
|
71
|
+
:::
|
|
72
|
+
|
|
73
|
+
### 最大值
|
|
74
|
+
|
|
75
|
+
::: demo 最大值
|
|
76
|
+
```vue
|
|
77
|
+
<template>
|
|
78
|
+
<div style="display: flex; gap: 16px;">
|
|
79
|
+
<XtBadge :value="100" :max="99">
|
|
80
|
+
<XtButton size="small">消息</XtButton>
|
|
81
|
+
</XtBadge>
|
|
82
|
+
<XtBadge :value="200" :max="99">
|
|
83
|
+
<XtButton size="small">通知</XtButton>
|
|
84
|
+
</XtBadge>
|
|
85
|
+
<XtBadge :value="999" :max="99">
|
|
86
|
+
<XtButton size="small">评论</XtButton>
|
|
87
|
+
</XtBadge>
|
|
88
|
+
</div>
|
|
89
|
+
</template>
|
|
90
|
+
```
|
|
91
|
+
:::
|
|
92
|
+
|
|
93
|
+
### 隐藏徽标
|
|
94
|
+
|
|
95
|
+
::: demo 隐藏徽标
|
|
96
|
+
```vue
|
|
97
|
+
<template>
|
|
98
|
+
<div style="display: flex; gap: 16px;">
|
|
99
|
+
<XtBadge :value="12">
|
|
100
|
+
<XtButton size="small">显示徽标</XtButton>
|
|
101
|
+
</XtBadge>
|
|
102
|
+
<XtBadge :value="12" hidden>
|
|
103
|
+
<XtButton size="small">隐藏徽标</XtButton>
|
|
104
|
+
</XtBadge>
|
|
105
|
+
</div>
|
|
106
|
+
</template>
|
|
107
|
+
```
|
|
108
|
+
:::
|
|
109
|
+
|
|
110
|
+
### 自定义偏移
|
|
111
|
+
|
|
112
|
+
::: demo 自定义偏移
|
|
113
|
+
```vue
|
|
114
|
+
<template>
|
|
115
|
+
<XtBadge :value="12" :offset="[10, 10]">
|
|
116
|
+
<XtButton size="small">自定义偏移</XtButton>
|
|
117
|
+
</XtBadge>
|
|
118
|
+
</template>
|
|
119
|
+
```
|
|
120
|
+
:::
|
|
121
|
+
|
|
122
|
+
### 独立使用
|
|
123
|
+
|
|
124
|
+
::: demo 独立使用
|
|
125
|
+
```vue
|
|
126
|
+
<template>
|
|
127
|
+
<div style="display: flex; gap: 16px;">
|
|
128
|
+
<XtBadge :value="12" />
|
|
129
|
+
<XtBadge :value="99+" type="danger" />
|
|
130
|
+
<XtBadge is-dot type="success" />
|
|
131
|
+
</div>
|
|
132
|
+
</template>
|
|
133
|
+
```
|
|
134
|
+
:::
|
|
135
|
+
|
|
136
|
+
## 注意事项
|
|
137
|
+
|
|
138
|
+
- `max` 属性仅对数字类型的 `value` 有效
|
|
139
|
+
- 当 `value` 为 0 时,徽标默认显示,可以通过 `hidden` 属性控制显示/隐藏
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
## XtBar 柱状图组件
|
|
2
|
+
|
|
3
|
+
基于 ECharts 封装的柱状图组件,支持数据标记、缩放、反转、长标签等功能。
|
|
4
|
+
|
|
5
|
+
## 基本用法
|
|
6
|
+
|
|
7
|
+
::: demo 基本用法
|
|
8
|
+
```vue
|
|
9
|
+
<template>
|
|
10
|
+
<XtBar :chart-data="chartData" />
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script>
|
|
14
|
+
export default {
|
|
15
|
+
data() {
|
|
16
|
+
return {
|
|
17
|
+
chartData: [
|
|
18
|
+
{ value: 65, label: "张三" },
|
|
19
|
+
{ value: 70, label: "唐九" },
|
|
20
|
+
{ value: 73, label: "钱一" },
|
|
21
|
+
{ value: 78, label: "孙二" },
|
|
22
|
+
{ value: 88, label: "刘八" },
|
|
23
|
+
{ value: 93, label: "王七" },
|
|
24
|
+
{ value: 99, label: "赵六" },
|
|
25
|
+
{ value: 103, label: "宋五" },
|
|
26
|
+
{ value: 113, label: "李四" },
|
|
27
|
+
{ value: 125, label: "张三" }
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
```
|
|
34
|
+
:::
|
|
35
|
+
|
|
36
|
+
## 属性说明
|
|
37
|
+
|
|
38
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
39
|
+
|------|------|--------|------|
|
|
40
|
+
| `chartData` | Array | - | 图表数据,格式为 `[{ label, value }]` |
|
|
41
|
+
| `fieldKeys` | Object | `{ label: "label", value: "value", data: "data" }` | 字段映射配置 |
|
|
42
|
+
| `theme` | String | - | 主题,`dark` 或 `default` |
|
|
43
|
+
| `size` | String | `medium` | 尺寸,`small` / `medium` / `large` |
|
|
44
|
+
| `markPoint` | Boolean | `false` | 是否显示最大值/最小值标记 |
|
|
45
|
+
| `unit` | String | `""` | 数据单位 |
|
|
46
|
+
| `showZoom` | Boolean | `false` | 是否显示缩放条 |
|
|
47
|
+
| `reverse` | Boolean | `false` | 是否反转坐标轴(横向柱状图) |
|
|
48
|
+
| `longLable` | Boolean | `false` | 是否启用长标签换行 |
|
|
49
|
+
| `longLableSplitNum` | Number | `1` | 长标签换行间隔字符数 |
|
|
50
|
+
| `longLablePx` | Number | `150` | 长标签预留像素宽度 |
|
|
51
|
+
| `splitNumber` | Number | `5` | Y 轴分割段数 |
|
|
52
|
+
| `simpleMode` | Boolean | `false` | 是否启用极简模式(隐藏图例、坐标轴等) |
|
|
53
|
+
|
|
54
|
+
## 示例
|
|
55
|
+
|
|
56
|
+
### 横向柱状图
|
|
57
|
+
|
|
58
|
+
::: demo 横向柱状图
|
|
59
|
+
```vue
|
|
60
|
+
<template>
|
|
61
|
+
<XtBar :chart-data="chartData" reverse />
|
|
62
|
+
</template>
|
|
63
|
+
|
|
64
|
+
<script>
|
|
65
|
+
export default {
|
|
66
|
+
data() {
|
|
67
|
+
return {
|
|
68
|
+
chartData: [
|
|
69
|
+
{ value: 65, label: "张三" },
|
|
70
|
+
{ value: 78, label: "李四" },
|
|
71
|
+
{ value: 95, label: "王五" },
|
|
72
|
+
{ value: 82, label: "赵六" }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
</script>
|
|
78
|
+
```
|
|
79
|
+
:::
|
|
80
|
+
|
|
81
|
+
### 显示数据标记
|
|
82
|
+
|
|
83
|
+
::: demo 显示数据标记
|
|
84
|
+
```vue
|
|
85
|
+
<template>
|
|
86
|
+
<XtBar :chart-data="chartData" :mark-point="true" />
|
|
87
|
+
</template>
|
|
88
|
+
|
|
89
|
+
<script>
|
|
90
|
+
export default {
|
|
91
|
+
data() {
|
|
92
|
+
return {
|
|
93
|
+
chartData: [
|
|
94
|
+
{ value: 65, label: "1月" },
|
|
95
|
+
{ value: 78, label: "2月" },
|
|
96
|
+
{ value: 95, label: "3月" },
|
|
97
|
+
{ value: 82, label: "4月" },
|
|
98
|
+
{ value: 70, label: "5月" }
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
</script>
|
|
104
|
+
```
|
|
105
|
+
:::
|
|
106
|
+
|
|
107
|
+
### 极简模式
|
|
108
|
+
|
|
109
|
+
::: demo 极简模式
|
|
110
|
+
```vue
|
|
111
|
+
<template>
|
|
112
|
+
<XtBar :chart-data="chartData" simple-mode />
|
|
113
|
+
</template>
|
|
114
|
+
|
|
115
|
+
<script>
|
|
116
|
+
export default {
|
|
117
|
+
data() {
|
|
118
|
+
return {
|
|
119
|
+
chartData: [
|
|
120
|
+
{ value: 65, label: "A" },
|
|
121
|
+
{ value: 78, label: "B" },
|
|
122
|
+
{ value: 95, label: "C" }
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
</script>
|
|
128
|
+
```
|
|
129
|
+
:::
|
|
130
|
+
|
|
131
|
+
### 自定义字段映射
|
|
132
|
+
|
|
133
|
+
::: demo 自定义字段映射
|
|
134
|
+
```vue
|
|
135
|
+
<template>
|
|
136
|
+
<XtBar :chart-data="chartData" :field-keys="{ label: 'name', value: 'score' }" />
|
|
137
|
+
</template>
|
|
138
|
+
|
|
139
|
+
<script>
|
|
140
|
+
export default {
|
|
141
|
+
data() {
|
|
142
|
+
return {
|
|
143
|
+
chartData: [
|
|
144
|
+
{ name: "张三", score: 65 },
|
|
145
|
+
{ name: "李四", score: 78 },
|
|
146
|
+
{ name: "王五", score: 95 }
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
</script>
|
|
152
|
+
```
|
|
153
|
+
:::
|
|
154
|
+
|
|
155
|
+
### 暗色主题
|
|
156
|
+
|
|
157
|
+
::: demo 暗色主题
|
|
158
|
+
```vue
|
|
159
|
+
<template>
|
|
160
|
+
<XtBar :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
|
+
- 数据值大于等于 10000 时会自动转换为"万"单位显示
|
|
182
|
+
- 数据值大于等于 10000000 时会自动转换为"千万"单位显示
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
::: demo 基本用法
|
|
8
8
|
```vue
|
|
9
9
|
<template>
|
|
10
|
-
<XtCardItem title="销售额"
|
|
10
|
+
<XtCardItem title="销售额" :value="12345" unit="元" style="width: 350px;"></XtCardItem>
|
|
11
11
|
</template>
|
|
12
12
|
```
|
|
13
13
|
:::
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
::: demo 边框型卡片项
|
|
41
41
|
```vue
|
|
42
42
|
<template>
|
|
43
|
-
<XtCardItem
|
|
43
|
+
<XtCardItem title="销售额" value="12345" unit="元" type="primary" style="width: 350px;"></XtCardItem>
|
|
44
44
|
</template>
|
|
45
45
|
```
|
|
46
46
|
:::
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
::: demo 不同类型的边框卡片项
|
|
51
51
|
```vue
|
|
52
52
|
<template>
|
|
53
|
-
<div style="display: flex; flex-direction: column; gap: 8px;">
|
|
54
|
-
<XtCardItem
|
|
55
|
-
<XtCardItem
|
|
56
|
-
<XtCardItem
|
|
53
|
+
<div style="display: flex; flex-direction: column; gap: 8px;width: 350px;">
|
|
54
|
+
<XtCardItem title="成功" value="309894" type="success"></XtCardItem>
|
|
55
|
+
<XtCardItem title="警告" value="309894" type="warning"></XtCardItem>
|
|
56
|
+
<XtCardItem title="危险" value="309894" type="danger"></XtCardItem>
|
|
57
57
|
</div>
|
|
58
58
|
</template>
|
|
59
59
|
```
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
::: demo 自定义颜色
|
|
64
64
|
```vue
|
|
65
65
|
<template>
|
|
66
|
-
<XtCardItem
|
|
66
|
+
<XtCardItem title="自定义颜色" value="100%" color="#722ed1" style="width: 350px;"></XtCardItem>
|
|
67
67
|
</template>
|
|
68
68
|
```
|
|
69
69
|
:::
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
::: demo 自定义插槽
|
|
73
73
|
```vue
|
|
74
74
|
<template>
|
|
75
|
-
<XtCardItem>
|
|
75
|
+
<XtCardItem style="width: 350px;">
|
|
76
76
|
<template #label>
|
|
77
77
|
<span style="color: #1890ff; font-weight: bold;">自定义标签</span>
|
|
78
78
|
</template>
|
|
@@ -93,10 +93,10 @@
|
|
|
93
93
|
```vue
|
|
94
94
|
<template>
|
|
95
95
|
<XtCard title="统计数据">
|
|
96
|
-
<div style="display: flex; flex-direction: column; gap: 8px;">
|
|
97
|
-
<XtCardItem
|
|
98
|
-
<XtCardItem
|
|
99
|
-
<XtCardItem
|
|
96
|
+
<div style="display: flex; flex-direction: column; gap: 8px; style="width: 350px;">
|
|
97
|
+
<XtCardItem title="总销售额" value="123456" unit="元"></XtCardItem>
|
|
98
|
+
<XtCardItem title="订单数量" value="520" unit="单" type="success"></XtCardItem>
|
|
99
|
+
<XtCardItem title="转化率" value="23.5" unit="%" type="warning"></XtCardItem>
|
|
100
100
|
</div>
|
|
101
101
|
</XtCard>
|
|
102
102
|
</template>
|