xt-element-ui 2.2.3 → 2.2.4

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.
Files changed (116) hide show
  1. package/README.md +140 -192
  2. package/docs/README.md +162 -88
  3. package/docs/components/base/theme.md +248 -0
  4. package/docs/components/base/xt-list.md +1 -1
  5. package/docs/components/base/xt-scroll-arrow.md +87 -1
  6. package/docs/components/base/xt-scroll.md +237 -0
  7. package/docs/components/utils/config.md +18 -4
  8. package/docs/components/utils/theme.md +280 -183
  9. package/lib/index.common.1.js +4 -26
  10. package/lib/index.common.2.js +1 -1
  11. package/lib/index.common.js +1871 -671
  12. package/lib/index.css +1 -1
  13. package/lib/index.umd.1.js +4 -26
  14. package/lib/index.umd.2.js +1 -1
  15. package/lib/index.umd.js +1871 -671
  16. package/lib/index.umd.min.1.js +1 -1
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/theme/element-overrides.css +607 -0
  19. package/lib/theme/element-vars.css +280 -0
  20. package/lib/xt-badge/xt-badge.common.js +1 -1
  21. package/lib/xt-badge/xt-badge.umd.js +1 -1
  22. package/lib/xt-button/xt-button.common.js +1 -1
  23. package/lib/xt-button/xt-button.umd.js +1 -1
  24. package/lib/xt-card/xt-card.common.js +1 -1
  25. package/lib/xt-card/xt-card.umd.js +1 -1
  26. package/lib/xt-card-item/xt-card-item.common.js +1 -1
  27. package/lib/xt-card-item/xt-card-item.umd.js +1 -1
  28. package/lib/xt-chart/xt-chart.common.js +5 -5
  29. package/lib/xt-chart/xt-chart.umd.js +5 -5
  30. package/lib/xt-config-provider/xt-config-provider.css +1 -1
  31. package/lib/xt-date-picker/xt-date-picker.common.1.js +4 -26
  32. package/lib/xt-date-picker/xt-date-picker.common.2.js +1 -1
  33. package/lib/xt-date-picker/xt-date-picker.common.js +1 -47
  34. package/lib/xt-date-picker/xt-date-picker.css +1 -1
  35. package/lib/xt-date-picker/xt-date-picker.umd.1.js +4 -26
  36. package/lib/xt-date-picker/xt-date-picker.umd.2.js +1 -1
  37. package/lib/xt-date-picker/xt-date-picker.umd.js +1 -47
  38. package/lib/xt-date-picker/xt-date-picker.umd.min.1.js +1 -1
  39. package/lib/xt-date-picker/xt-date-picker.umd.min.js +1 -1
  40. package/lib/xt-flex-box/xt-flex-box.common.js +1 -1
  41. package/lib/xt-flex-box/xt-flex-box.umd.js +1 -1
  42. package/lib/xt-flow/xt-flow.common.js +1 -1
  43. package/lib/xt-flow/xt-flow.umd.js +1 -1
  44. package/lib/xt-form-schema/xt-form-schema.common.js +1 -1
  45. package/lib/xt-form-schema/xt-form-schema.umd.js +1 -1
  46. package/lib/xt-grid-box/xt-grid-box.common.js +1 -1
  47. package/lib/xt-grid-box/xt-grid-box.umd.js +1 -1
  48. package/lib/xt-grid-item/xt-grid-item.common.js +1 -1
  49. package/lib/xt-grid-item/xt-grid-item.umd.js +1 -1
  50. package/lib/xt-icon/xt-icon.common.js +1 -1
  51. package/lib/xt-icon/xt-icon.umd.js +1 -1
  52. package/lib/xt-input/xt-input.common.js +1 -1
  53. package/lib/xt-input/xt-input.umd.js +1 -1
  54. package/lib/xt-list/xt-list.common.js +457 -118
  55. package/lib/xt-list/xt-list.css +1 -1
  56. package/lib/xt-list/xt-list.umd.js +457 -118
  57. package/lib/xt-list/xt-list.umd.min.js +1 -1
  58. package/lib/xt-map/xt-map.common.js +1 -1
  59. package/lib/xt-map/xt-map.umd.js +1 -1
  60. package/lib/xt-map-provider/xt-map-provider.common.js +1 -1
  61. package/lib/xt-map-provider/xt-map-provider.umd.js +1 -1
  62. package/lib/xt-page/xt-page.common.js +1 -1
  63. package/lib/xt-page/xt-page.umd.js +1 -1
  64. package/lib/xt-progress/xt-progress.common.js +1 -1
  65. package/lib/xt-progress/xt-progress.umd.js +1 -1
  66. package/lib/xt-scroll/demo.html +10 -0
  67. package/lib/xt-scroll/index.js +1 -0
  68. package/lib/xt-scroll/xt-scroll.common.js +551 -0
  69. package/lib/xt-scroll/xt-scroll.css +1 -0
  70. package/lib/xt-scroll/xt-scroll.umd.js +561 -0
  71. package/lib/xt-scroll/xt-scroll.umd.min.js +1 -0
  72. package/lib/xt-scroll-arrow/xt-scroll-arrow.common.js +591 -170
  73. package/lib/xt-scroll-arrow/xt-scroll-arrow.css +1 -1
  74. package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.js +591 -170
  75. package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.min.js +1 -1
  76. package/lib/xt-select-tree/xt-select-tree.common.js +1 -1
  77. package/lib/xt-select-tree/xt-select-tree.umd.js +1 -1
  78. package/lib/xt-step-price/xt-step-price.common.js +2 -2
  79. package/lib/xt-step-price/xt-step-price.umd.js +2 -2
  80. package/lib/xt-step-price-item/xt-step-price-item.common.js +1 -1
  81. package/lib/xt-step-price-item/xt-step-price-item.umd.js +1 -1
  82. package/lib/xt-tab-pane/xt-tab-pane.common.js +1 -1
  83. package/lib/xt-tab-pane/xt-tab-pane.umd.js +1 -1
  84. package/lib/xt-table/xt-table.common.js +2 -2
  85. package/lib/xt-table/xt-table.umd.js +2 -2
  86. package/lib/xt-tabs/xt-tabs.common.js +1 -1
  87. package/lib/xt-tabs/xt-tabs.umd.js +1 -1
  88. package/lib/xt-text/xt-text.common.js +1 -1
  89. package/lib/xt-text/xt-text.umd.js +1 -1
  90. package/lib/xt-time/xt-time.common.js +1 -1
  91. package/lib/xt-time/xt-time.umd.js +1 -1
  92. package/lib/xt-transfer-tree/xt-transfer-tree.common.js +1 -1
  93. package/lib/xt-transfer-tree/xt-transfer-tree.umd.js +1 -1
  94. package/lib/xt-upload/xt-upload.common.js +2 -2
  95. package/lib/xt-upload/xt-upload.umd.js +2 -2
  96. package/package.json +5 -3
  97. package/src/components/index.scss +3 -0
  98. package/src/components/theme/element-overrides.css +607 -0
  99. package/src/components/theme/element-vars.css +280 -0
  100. package/src/components/theme/iframe-injector.js +502 -0
  101. package/src/components/theme/index.js +64 -0
  102. package/src/components/xt-config-provider/style/index.scss +0 -11
  103. package/src/components/xt-date-picker/component/RangeDate.vue +1 -29
  104. package/src/components/xt-date-picker/style/index.scss +80 -53
  105. package/src/components/xt-list/index.vue +23 -12
  106. package/src/components/xt-scroll/index.js +9 -0
  107. package/src/components/xt-scroll/index.vue +363 -0
  108. package/src/components/xt-scroll/style/index.scss +107 -0
  109. package/src/components/xt-scroll-arrow/index.vue +200 -83
  110. package/src/components/xt-scroll-arrow/style/index.scss +16 -5
  111. package/src/index.js +9 -2
  112. package/src/utils/color.js +105 -0
  113. package/src/utils/index.js +456 -468
  114. package/src/utils/theme-vars.js +134 -0
  115. package/lib/css/1.87a493be.css +0 -1
  116. package/lib/xt-date-picker/css/1.87a493be.css +0 -1
package/README.md CHANGED
@@ -1,244 +1,192 @@
1
- # XT-Element-UI
1
+ # 🚀 XT-Element-UI:基于 Vue 2.7 + ElementUI 的企业级组件库
2
2
 
3
- > 基于 Vue 2.7 + ElementUI 的企业级组件库
3
+ > 30+ 高质量组件,开箱即用,让你的企业级开发效率翻倍!
4
4
 
5
- <div align="center">
5
+ ---
6
+
7
+ ## 🔥 为什么选择 XT-Element-UI?
6
8
 
7
- [![npm](https://img.shields.io/npm/v/xt-element-ui.svg?style=flat-square)](https://www.npmjs.com/package/xt-element-ui)
8
- [![npm](https://img.shields.io/npm/dm/xt-element-ui.svg?style=flat-square)](https://www.npmjs.com/package/xt-element-ui)
9
- [![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE)
10
- [![Node.js](https://img.shields.io/badge/node-%3E%3D12.0.0-green.svg?style=flat-square)](package.json)
11
- [![Vue](https://img.shields.io/badge/vue-2.7.x-brightgreen.svg?style=flat-square)](https://vuejs.org)
9
+ 在日常的企业级开发中,你是否遇到过以下痛点:
12
10
 
13
- 📖 [在线文档](https://JobWebNie.github.io/xt-element-ui/) ·
14
- 🐛 [问题反馈](https://github.com/JobWebNie/xt-element-ui/issues) ·
15
- 💡 [功能建议](https://github.com/JobWebNie/xt-element-ui/issues/new?labels=enhancement)
11
+ - 🎨 ElementUI 原生组件样式不够精致,二次开发成本高
12
+ - 📊 图表组件与业务系统耦合度高,复用困难
13
+ - 🌓 主题切换需要大量 CSS 覆盖,代码冗余
14
+ - 🔄 审批流程轨迹展示丑陋,难以定制
16
15
 
17
- </div>
16
+ **XT-Element-UI** 正是为解决这些痛点而生!基于 Vue 2.7 + ElementUI 构建,提供 30+ 企业级组件,覆盖布局、表单、数据展示、图表、工作流等常见场景。
18
17
 
19
18
  ---
20
19
 
21
- ## ✨ 特性
20
+ ## ✨ 核心亮点
22
21
 
23
- - **🎯 丰富的组件**:提供 15+ 组件,覆盖布局、表单、数据展示、图表等常见场景
24
- - **📦 开箱即用**:基于 ElementUI 构建,与现有 ElementUI 项目无缝集成
25
- - **🪶 按需引入**:完整的 npm 包架构,支持按需引入,减小打包体积
26
- - **🌓 主题系统**:支持亮色/暗色主题切换,支持自定义主色调
27
- - **📐 响应式设计**:组件支持多种尺寸配置,适配不同屏幕
28
- - **📊 图表能力**:内置 ECharts 封装,提供柱状图、折线图、饼图、混合图
29
- - **⚡️ 虚拟滚动**:表格组件支持虚拟滚动,轻松应对万级数据
22
+ ### 1️⃣ 丰富的组件体系
23
+
24
+ ```
25
+ ├── 🎨 基础组件 (13个)
26
+ │ ├── XtButton / XtCard / XtFlexBox
27
+ │ ├── XtInput / XtText / XtTime
28
+ │ ├── XtGridBox / XtGridItem
29
+ │ └── XtStepPrice / XtList ...
30
+ ├── 🔧 扩展组件 (15个)
31
+ │ ├── XtTable (虚拟滚动)
32
+ │ ├── XtSelectTree / XtTransferTree
33
+ │ ├── XtUpload (图片预览)
34
+ │ └── XtFlow (审批流程轨迹) ...
35
+ └── 📊 图表组件 (5个)
36
+ ├── XtBar / XtLine / XtPie
37
+ └── XtMulti (组合图)
38
+ ```
39
+
40
+ ### 2️⃣ 开箱即用的主题系统
41
+
42
+ 无需复杂配置,轻松切换明暗主题:
43
+
44
+ ```vue
45
+ <template>
46
+ <xt-config-provider
47
+ tag="template"
48
+ :proxyElement="htmlElement"
49
+ :theme="theme"
50
+ :primaryColor="primaryColor"
51
+ :injectBackground="true"
52
+ >
53
+ <your-app />
54
+ </xt-config-provider>
55
+ </template>
56
+
57
+ <script>
58
+ export default {
59
+ data() {
60
+ return {
61
+ theme: 'white', // 'white' | 'dark'
62
+ primaryColor: '#1890ff',
63
+ htmlElement: null
64
+ }
65
+ },
66
+ mounted() {
67
+ this.htmlElement = document.querySelector('html')
68
+ },
69
+ methods: {
70
+ changeTheme(newTheme) {
71
+ this.theme = newTheme
72
+ }
73
+ }
74
+ }
75
+ </script>
76
+ ```
77
+
78
+ ### 3️⃣ 优雅的审批流程轨迹
79
+
80
+ `XtFlow` 组件专为企业级审批场景设计:
81
+
82
+ - 📐 纯纵向布局,规避行内拓扑图的丑陋
83
+ - 📦 自动折叠长审批链,控制页面高度
84
+ - ✅ 区分通过/驳回/待办/转办四种状态
85
+ - 🎯 原生对接 Flowable 工作流后端数据
86
+
87
+ ```html
88
+ <xt-flow
89
+ :data="flowData"
90
+ :rounded="'square'"
91
+ @node-click="handleNodeClick"
92
+ >
93
+ <template #node-action="{ node }">
94
+ <el-button size="mini">查看详情</el-button>
95
+ </template>
96
+ </xt-flow>
97
+ ```
98
+
99
+ ### 4️⃣ 强大的图表能力
100
+
101
+ 内置 ECharts 封装,支持柱状图、折线图、饼图、组合图:
102
+
103
+ ```html
104
+ <xt-bar
105
+ :data="chartData"
106
+ :theme="theme"
107
+ :size="'medium'"
108
+ />
109
+
110
+ <xt-multi
111
+ :data="multiData"
112
+ :type="['line', 'bar']"
113
+ />
114
+ ```
115
+
116
+ ### 5️⃣ 灵活的布局组件
117
+
118
+ ```html
119
+ <!-- 弹性布局 -->
120
+ <xt-flex-box :gap="'16px'" :direction="'row'" :align="'center'">
121
+ <xt-button>按钮1</xt-button>
122
+ <xt-button>按钮2</xt-button>
123
+ </xt-flex-box>
124
+
125
+ <!-- 网格布局 -->
126
+ <xt-grid-box :cols="4" :gap="'16px'">
127
+ <xt-grid-item v-for="item in list" :key="item.id">
128
+ <xt-card-item :title="item.title" :value="item.value" />
129
+ </xt-grid-item>
130
+ </xt-grid-box>
131
+ ```
30
132
 
31
133
  ---
32
134
 
33
- ## 🚀 快速开始
135
+ ## 📦 快速开始
34
136
 
35
137
  ### 安装
36
138
 
37
139
  ```bash
38
- # 使用 npm
39
140
  npm install xt-element-ui --save
40
-
41
- # 使用 yarn
42
- yarn add xt-element-ui
43
141
  ```
44
142
 
45
- > 前置依赖:Vue 2.6+ 或 Vue 2.7+,ElementUI 2.15+
46
-
47
143
  ### 全局引入
48
144
 
49
145
  ```javascript
50
146
  import Vue from 'vue'
51
- import ElementUI from 'element-ui'
52
- import 'element-ui/lib/theme-chalk/index.css'
53
-
54
147
  import XtElementUI from 'xt-element-ui'
55
148
  import 'xt-element-ui/lib/index.css'
56
149
 
57
- Vue.use(ElementUI)
58
150
  Vue.use(XtElementUI)
59
-
60
- // 配置选项(可选)
61
- Vue.use(XtElementUI, {
62
- theme: 'dark', // 主题:'white' 或 'dark'
63
- size: 'medium', // 组件尺寸:'small' | 'medium' | 'large'
64
- primaryColor: '#1890ff' // 主色调
65
- })
66
151
  ```
67
152
 
68
153
  ### 按需引入
69
154
 
70
155
  ```javascript
71
- import { XtButton, XtFlexBox, XtTable, XtBar } from 'xt-element-ui'
72
- import 'xt-element-ui/lib/index.css'
156
+ import XtButton from 'xt-element-ui/lib/xt-button'
157
+ import XtCard from 'xt-element-ui/lib/xt-card'
158
+ import 'xt-element-ui/lib/xt-button/style.css'
159
+ import 'xt-element-ui/lib/xt-card/style.css'
73
160
 
74
161
  Vue.component('XtButton', XtButton)
75
- Vue.component('XtFlexBox', XtFlexBox)
76
- Vue.component('XtTable', XtTable)
77
- Vue.component('XtBar', XtBar)
162
+ Vue.component('XtCard', XtCard)
78
163
  ```
79
164
 
80
165
  ---
81
166
 
82
- ## 📦 组件列表
83
-
84
- 所有组件统一以 `Xt` 开头命名,不再区分双架构:
167
+ ## 🌐 资源链接
85
168
 
86
- | 组件 | 说明 |
169
+ | 资源 | 链接 |
87
170
  |------|------|
88
- | **XtButton** | 按钮组件 |
89
- | **XtCard** | 卡片组件 |
90
- | **XtCardItem** | 卡片项组件 |
91
- | **XtFlexBox** | 弹性布局组件 |
92
- | **XtGridBox** | 网格布局组件 |
93
- | **XtGridItem** | 网格子项组件 |
94
- | **XtText** | 文本组件 |
95
- | **XtInput** | 输入框组件 |
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** | 徽标组件 |
112
-
113
-
114
- ---
115
-
116
- ## 🛠 工具函数
117
-
118
- 组件库通过 `this.$xt` 全局挂载以下工具方法:
119
-
120
- ```javascript
121
- // 设置主题(white / dark)
122
- this.$xt.setTheme('dark')
123
-
124
- // 设置全局组件尺寸(small / medium / large)
125
- this.$xt.setSize('large')
126
-
127
- // 设置主色调
128
- this.$xt.setPrimaryColor('#52c41a')
129
-
130
- // 获取当前配置
131
- console.log(this.$xt.getConfig())
132
- ```
171
+ | 📖 在线文档 | https://JobWebNie.github.io/xt-element-ui/ |
172
+ | 🐛 GitHub 仓库 | https://github.com/JobWebNie/xt-element-ui |
173
+ | 📦 npm 主页 | https://www.npmjs.com/package/xt-element-ui |
174
+ | 📝 更新日志 | https://github.com/JobWebNie/xt-element-ui/blob/main/CHANGELOG.md |
133
175
 
134
176
  ---
135
177
 
136
- ## 📁 项目结构
178
+ ## 🤝 贡献指南
137
179
 
138
- ```
139
- xt-element-ui/
140
- ├── docs/ # VuePress 文档
141
- │ ├── README.md # 文档首页
142
- │ ├── .vuepress/ # VuePress 配置
143
- │ │ ├── config.js # 主题、导航、侧边栏配置
144
- │ │ └── enhanceApp.js # 应用增强
145
- │ └── components/ # 各组件文档
146
- │ ├── base/ # 组件文档
147
- │ └── utils/ # 工具类文档
148
-
149
- ├── src/ # 组件源码
150
- │ ├── components/ # 组件目录(统一 Xt 前缀命名)
151
- │ │ ├── xt-button/ # 按钮组件
152
- │ │ ├── xt-card/ # 卡片组件
153
- │ │ ├── xt-card-item/ # 卡片项组件
154
- │ │ ├── xt-flex-box/ # 弹性布局组件
155
- │ │ ├── xt-grid-box/ # 网格布局组件
156
- │ │ ├── xt-grid-item/ # 网格子项组件
157
- │ │ ├── xt-text/ # 文本组件
158
- │ │ ├── xt-time/ # 时间组件
159
- │ │ ├── xt-input/ # 输入框组件
160
- │ │ ├── xt-config-provider/ # 配置提供者
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/ # 布局组件
176
- │ │
177
- │ ├── config/ # 配置模块
178
- │ ├── styles/ # 全局样式与变量
179
- │ ├── utils/ # 工具函数
180
- │ └── index.js # 组件库入口
181
-
182
- ├── public/ # 本地开发示例
183
- ├── lib/ # 构建产物(git 忽略)
184
-
185
- ├── .github/ # GitHub 配置
186
- │ └── workflows/ # CI/CD 工作流
187
- │ ├── deploy-docs.yml # 自动部署文档到 GitHub Pages
188
- │ └── publish-npm.yml # 自动发布 npm 包
189
-
190
- ├── package.json # 项目配置
191
- ├── .gitignore # Git 忽略文件
192
- ├── README.md # 项目说明
193
- ├── CHANGELOG.md # 更新日志
194
- ├── CONTRIBUTING.md # 贡献指南
195
- └── LICENSE # 许可证(MIT)
196
- ```
180
+ 欢迎提交 Issue 和 Pull Request!如果你有好的组件想法或发现 Bug,欢迎参与贡献。
197
181
 
198
182
  ---
199
183
 
200
- ## 🌐 浏览器支持
201
-
202
- | Chrome | Firefox | Safari | Edge |
203
- |--------|---------|--------|------|
204
- | ✅ 最新 2 个版本 | ✅ 最新 2 个版本 | ✅ 10.1+ | ✅ 15+ |
205
-
206
- ---
184
+ ## 📄 License
207
185
 
208
- ## 📚 更多文档
209
-
210
- - 📖 [完整在线文档](https://JobWebNie.github.io/xt-element-ui/)
211
- - 📋 [更新日志](./CHANGELOG.md)
212
- - 🤝 [贡献指南](./CONTRIBUTING.md)
213
-
214
- ---
215
-
216
- ## 💪 开发
217
-
218
- ```bash
219
- # 1. 克隆项目
220
- git clone https://github.com/JobWebNie/xt-element-ui.git
221
- cd xt-element-ui
222
-
223
- # 2. 安装依赖
224
- npm install
225
-
226
- # 3. 启动本地开发服务器
227
- npm run dev
228
-
229
- # 4. 启动文档开发服务器(本地预览文档)
230
- npm run docs:dev
231
-
232
- # 5. 构建组件库
233
- npm run lib
234
-
235
- # 6. 构建文档(用于部署)
236
- npm run docs:build
237
- # 产物位于 docs/.vuepress/dist/
238
- ```
186
+ MIT License
239
187
 
240
188
  ---
241
189
 
242
- ## 📄 许可证
190
+ > 如果觉得这个组件库对你有帮助,欢迎 ⭐ Star 支持一下!你的支持是我们持续更新的动力!
243
191
 
244
- [MIT License](./LICENSE) © 2026 XT-Element-UI Contributors
192
+ #Vue #ElementUI #组件库 #前端 #企业级
package/docs/README.md CHANGED
@@ -1,31 +1,148 @@
1
+ # 🚀 XT-Element-UI:基于 Vue 2.7 + ElementUI 的企业级组件库
2
+
3
+ > 30+ 高质量组件,开箱即用,让你的企业级开发效率翻倍!
4
+
5
+ ---
6
+
7
+ ## 🔥 为什么选择 XT-Element-UI?
8
+
9
+ 在日常的企业级开发中,你是否遇到过以下痛点:
10
+
11
+ - 🎨 ElementUI 原生组件样式不够精致,二次开发成本高
12
+ - 📊 图表组件与业务系统耦合度高,复用困难
13
+ - 🌓 主题切换需要大量 CSS 覆盖,代码冗余
14
+ - 🔄 审批流程轨迹展示丑陋,难以定制
15
+
16
+ **XT-Element-UI** 正是为解决这些痛点而生!基于 Vue 2.7 + ElementUI 构建,提供 30+ 企业级组件,覆盖布局、表单、数据展示、图表、工作流等常见场景。
17
+
1
18
  ---
2
- home: true
3
- # heroImage: /favicon.ico
4
- heroText: XT-Element-UI
5
- tagline: 基于 Vue 2.7 + ElementUI 的企业级组件库
6
- actionText: 🚀 快速上手
7
- actionLink: /components/base/xt-button
8
- features:
9
- - title: 🎯 丰富的组件
10
- details: 提供 30+ 组件,覆盖布局、表单、数据展示、图表、工作流等常见场景
11
- - title: 📦 开箱即用
12
- details: 基于 ElementUI 构建,与现有 ElementUI 项目无缝集成
13
- - title: 🪶 按需引入
14
- details: 完整的 npm 包架构,支持按需引入,减小打包体积
15
- - title: 🌓 主题系统
16
- details: 支持亮色/暗色主题切换,支持自定义主色调
17
- - title: 📊 图表能力
18
- details: 内置 ECharts 封装,提供柱状图、折线图、饼图、混合图
19
- footer: MIT Licensed | Copyright © 2026 XT-Element-UI
19
+
20
+ ## 核心亮点
21
+
22
+ ### 1️⃣ 丰富的组件体系
23
+
24
+ ```
25
+ ├── 🎨 基础组件 (13个)
26
+ │ ├── XtButton / XtCard / XtFlexBox
27
+ │ ├── XtInput / XtText / XtTime
28
+ │ ├── XtGridBox / XtGridItem
29
+ │ └── XtStepPrice / XtList ...
30
+ ├── 🔧 扩展组件 (15个)
31
+ │ ├── XtTable (虚拟滚动)
32
+ │ ├── XtSelectTree / XtTransferTree
33
+ │ ├── XtUpload (图片预览)
34
+ │ └── XtFlow (审批流程轨迹) ...
35
+ └── 📊 图表组件 (5个)
36
+ ├── XtBar / XtLine / XtPie
37
+ └── XtMulti (组合图)
38
+ ```
39
+
40
+ ### 2️⃣ 开箱即用的主题系统
41
+
42
+ 无需复杂配置,轻松切换明暗主题:
43
+
44
+ ```vue
45
+ <template>
46
+ <xt-config-provider
47
+ tag="template"
48
+ :proxyElement="htmlElement"
49
+ :theme="theme"
50
+ :primaryColor="primaryColor"
51
+ :injectBackground="true"
52
+ >
53
+ <your-app />
54
+ </xt-config-provider>
55
+ </template>
56
+
57
+ <script>
58
+ export default {
59
+ data() {
60
+ return {
61
+ theme: 'white', // 'white' | 'dark'
62
+ primaryColor: '#1890ff',
63
+ htmlElement: null
64
+ }
65
+ },
66
+ mounted() {
67
+ this.htmlElement = document.querySelector('html')
68
+ },
69
+ methods: {
70
+ changeTheme(newTheme) {
71
+ this.theme = newTheme
72
+ }
73
+ }
74
+ }
75
+ </script>
76
+ ```
77
+
78
+ ### 3️⃣ 优雅的审批流程轨迹
79
+
80
+ `XtFlow` 组件专为企业级审批场景设计:
81
+
82
+ - 📐 纯纵向布局,规避行内拓扑图的丑陋
83
+ - 📦 自动折叠长审批链,控制页面高度
84
+ - ✅ 区分通过/驳回/待办/转办四种状态
85
+ - 🎯 原生对接 Flowable 工作流后端数据
86
+
87
+ ```html
88
+ <xt-flow
89
+ :data="flowData"
90
+ :rounded="'square'"
91
+ @node-click="handleNodeClick"
92
+ >
93
+ <template #node-action="{ node }">
94
+ <el-button size="mini">查看详情</el-button>
95
+ </template>
96
+ </xt-flow>
97
+ ```
98
+
99
+ ### 4️⃣ 强大的图表能力
100
+
101
+ 内置 ECharts 封装,支持柱状图、折线图、饼图、组合图:
102
+
103
+ ```html
104
+ <xt-bar
105
+ :data="chartData"
106
+ :theme="theme"
107
+ :size="'medium'"
108
+ />
109
+
110
+ <xt-multi
111
+ :data="multiData"
112
+ :type="['line', 'bar']"
113
+ />
114
+ ```
115
+
116
+ ### 5️⃣ 灵活的布局组件
117
+
118
+ ```html
119
+ <!-- 弹性布局 -->
120
+ <xt-flex-box :gap="'16px'" :direction="'row'" :align="'center'">
121
+ <xt-button>按钮1</xt-button>
122
+ <xt-button>按钮2</xt-button>
123
+ </xt-flex-box>
124
+
125
+ <!-- 网格布局 -->
126
+ <xt-grid-box :cols="4" :gap="'16px'">
127
+ <xt-grid-item v-for="item in list" :key="item.id">
128
+ <xt-card-item :title="item.title" :value="item.value" />
129
+ </xt-grid-item>
130
+ </xt-grid-box>
131
+ ```
132
+
20
133
  ---
21
134
 
22
- ::: tip 💡 快速开始
135
+ ## 📦 快速开始
136
+
137
+ ### 安装
23
138
 
24
139
  ```bash
25
- # 安装
26
140
  npm install xt-element-ui --save
141
+ ```
27
142
 
28
- # 全局引入
143
+ ### 全局引入
144
+
145
+ ```javascript
29
146
  import Vue from 'vue'
30
147
  import XtElementUI from 'xt-element-ui'
31
148
  import 'xt-element-ui/lib/index.css'
@@ -33,86 +150,43 @@ import 'xt-element-ui/lib/index.css'
33
150
  Vue.use(XtElementUI)
34
151
  ```
35
152
 
36
- :::
153
+ ### 按需引入
37
154
 
38
- ---
155
+ ```javascript
156
+ import XtButton from 'xt-element-ui/lib/xt-button'
157
+ import XtCard from 'xt-element-ui/lib/xt-card'
158
+ import 'xt-element-ui/lib/xt-button/style.css'
159
+ import 'xt-element-ui/lib/xt-card/style.css'
39
160
 
40
- ## 📦 组件概览
161
+ Vue.component('XtButton', XtButton)
162
+ Vue.component('XtCard', XtCard)
163
+ ```
41
164
 
42
- 所有组件统一以 `Xt` 开头命名,不再区分双架构:
165
+ ---
43
166
 
44
- ### 🎨 基础组件
167
+ ## 🌐 资源链接
45
168
 
46
- | 组件 | 说明 |
47
- |------|------|
48
- | **XtButton** | 按钮组件 |
49
- | **XtCard** | 卡片组件 |
50
- | **XtCardItem** | 卡片项组件 |
51
- | **XtFlexBox** | 弹性布局组件 |
52
- | **XtGridBox** | 网格布局组件 |
53
- | **XtGridItem** | 网格项组件 |
54
- | **XtText** | 文本组件 |
55
- | **XtTime** | 时间组件(当前时间/倒计时/日期格式化) |
56
- | **XtInput** | 输入框组件 |
57
- | **XtConfigProvider** | 全局配置提供器 |
58
- | **XtMap** | 统一地图组件(支持高德/天地图/百度) |
59
- | **XtMapProvider** | 地图提供器 |
60
- | **XtStepPrice** | 阶梯价格组件 |
61
- | **XtStepPriceItem** | 阶梯价格项组件 |
62
- | **XtList** | 卡片列表组件 |
63
-
64
- ### 🔧 扩展组件
65
-
66
- | 组件 | 说明 |
169
+ | 资源 | 链接 |
67
170
  |------|------|
68
- | **XtDatePicker** | 日期选择器(支持季度选择) |
69
- | **XtIcon** | 图标组件(支持 el-icon/SVG/自定义字体) |
70
- | **XtTable** | 扩展表格(含虚拟滚动) |
71
- | **XtSelectTree** | 下拉选择树组件 |
72
- | **XtUpload** | 上传组件(支持图片预览) |
73
- | **XtPage** | 页面组件 |
74
- | **XtProgress** | 进度条组件 |
75
- | **XtTabs** | 标签页组件 |
76
- | **XtTabPane** | 标签页面板组件 |
77
- | **XtBadge** | 徽标组件 |
78
- | **XtScrollArrow** | 滚动箭头组件 |
79
- | **XtTransferTree** | 树形穿梭框组件 |
80
- | **XtFormSchema** | 表单配置化搜索组件 |
81
- | **XtFlow** | 审批流程轨迹组件(支持 Flowable 工作流对接) |
82
-
83
- ### 📊 图表组件
84
-
85
- | 组件 | 说明 |
86
- |------|------|
87
- | **XtChart** | 图表容器 |
88
- | **XtBar** | 柱状图 |
89
- | **XtLine** | 折线图 |
90
- | **XtPie** | 饼图 |
91
- | **XtMulti** | 组合图 |
92
-
171
+ | 📖 在线文档 | https://JobWebNie.github.io/xt-element-ui/ |
172
+ | 🐛 GitHub 仓库 | https://github.com/JobWebNie/xt-element-ui |
173
+ | 📦 npm 主页 | https://www.npmjs.com/package/xt-element-ui |
174
+ | 📝 更新日志 | https://github.com/JobWebNie/xt-element-ui/blob/main/CHANGELOG.md |
93
175
 
94
176
  ---
95
177
 
96
- ## 🌐 GitHub Pages 自动部署
178
+ ## 🤝 贡献指南
97
179
 
98
- 本项目通过 **GitHub Actions** 自动构建并部署文档到 **GitHub Pages**:
99
-
100
- - 📖 **在线文档**:https://JobWebNie.github.io/xt-element-ui/
101
- - 🐛 **问题反馈**:https://github.com/JobWebNie/xt-element-ui/issues
102
- - 📦 **npm 主页**:https://www.npmjs.com/package/xt-element-ui
103
-
104
- 推送代码到 `main` / `master` 分支后,GitHub Actions 将自动执行:
105
- 1. 安装依赖
106
- 2. 构建 VuePress 文档
107
- 3. 部署到 GitHub Pages
180
+ 欢迎提交 Issue Pull Request!如果你有好的组件想法或发现 Bug,欢迎参与贡献。
108
181
 
109
182
  ---
110
183
 
111
- ## 📚 更多资源
184
+ ## 📄 License
112
185
 
113
- - **[查看完整文档](https://JobWebNie.github.io/xt-element-ui/)**
114
- - **[更新日志](https://github.com/JobWebNie/xt-element-ui/blob/main/CHANGELOG.md)**
115
- - **[贡献指南](https://github.com/JobWebNie/xt-element-ui/blob/main/CONTRIBUTING.md)**
116
- - **[GitHub 仓库](https://github.com/JobWebNie/xt-element-ui)**
186
+ MIT License
187
+
188
+ ---
117
189
 
190
+ > 如果觉得这个组件库对你有帮助,欢迎 ⭐ Star 支持一下!你的支持是我们持续更新的动力!
118
191
 
192
+ #Vue #ElementUI #组件库 #前端 #企业级