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.
- package/README.md +140 -192
- package/docs/README.md +162 -88
- package/docs/components/base/theme.md +248 -0
- package/docs/components/base/xt-list.md +1 -1
- package/docs/components/base/xt-scroll-arrow.md +87 -1
- package/docs/components/base/xt-scroll.md +237 -0
- package/docs/components/utils/config.md +18 -4
- package/docs/components/utils/theme.md +280 -183
- package/lib/index.common.1.js +4 -26
- package/lib/index.common.2.js +1 -1
- package/lib/index.common.js +1871 -671
- package/lib/index.css +1 -1
- package/lib/index.umd.1.js +4 -26
- package/lib/index.umd.2.js +1 -1
- package/lib/index.umd.js +1871 -671
- package/lib/index.umd.min.1.js +1 -1
- package/lib/index.umd.min.js +1 -1
- package/lib/theme/element-overrides.css +607 -0
- package/lib/theme/element-vars.css +280 -0
- package/lib/xt-badge/xt-badge.common.js +1 -1
- package/lib/xt-badge/xt-badge.umd.js +1 -1
- package/lib/xt-button/xt-button.common.js +1 -1
- package/lib/xt-button/xt-button.umd.js +1 -1
- package/lib/xt-card/xt-card.common.js +1 -1
- package/lib/xt-card/xt-card.umd.js +1 -1
- package/lib/xt-card-item/xt-card-item.common.js +1 -1
- package/lib/xt-card-item/xt-card-item.umd.js +1 -1
- package/lib/xt-chart/xt-chart.common.js +5 -5
- package/lib/xt-chart/xt-chart.umd.js +5 -5
- package/lib/xt-config-provider/xt-config-provider.css +1 -1
- package/lib/xt-date-picker/xt-date-picker.common.1.js +4 -26
- package/lib/xt-date-picker/xt-date-picker.common.2.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.common.js +1 -47
- package/lib/xt-date-picker/xt-date-picker.css +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.1.js +4 -26
- package/lib/xt-date-picker/xt-date-picker.umd.2.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.js +1 -47
- package/lib/xt-date-picker/xt-date-picker.umd.min.1.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.min.js +1 -1
- package/lib/xt-flex-box/xt-flex-box.common.js +1 -1
- package/lib/xt-flex-box/xt-flex-box.umd.js +1 -1
- package/lib/xt-flow/xt-flow.common.js +1 -1
- package/lib/xt-flow/xt-flow.umd.js +1 -1
- package/lib/xt-form-schema/xt-form-schema.common.js +1 -1
- package/lib/xt-form-schema/xt-form-schema.umd.js +1 -1
- package/lib/xt-grid-box/xt-grid-box.common.js +1 -1
- package/lib/xt-grid-box/xt-grid-box.umd.js +1 -1
- package/lib/xt-grid-item/xt-grid-item.common.js +1 -1
- package/lib/xt-grid-item/xt-grid-item.umd.js +1 -1
- package/lib/xt-icon/xt-icon.common.js +1 -1
- package/lib/xt-icon/xt-icon.umd.js +1 -1
- package/lib/xt-input/xt-input.common.js +1 -1
- package/lib/xt-input/xt-input.umd.js +1 -1
- package/lib/xt-list/xt-list.common.js +457 -118
- package/lib/xt-list/xt-list.css +1 -1
- package/lib/xt-list/xt-list.umd.js +457 -118
- package/lib/xt-list/xt-list.umd.min.js +1 -1
- package/lib/xt-map/xt-map.common.js +1 -1
- package/lib/xt-map/xt-map.umd.js +1 -1
- package/lib/xt-map-provider/xt-map-provider.common.js +1 -1
- package/lib/xt-map-provider/xt-map-provider.umd.js +1 -1
- package/lib/xt-page/xt-page.common.js +1 -1
- package/lib/xt-page/xt-page.umd.js +1 -1
- package/lib/xt-progress/xt-progress.common.js +1 -1
- package/lib/xt-progress/xt-progress.umd.js +1 -1
- package/lib/xt-scroll/demo.html +10 -0
- package/lib/xt-scroll/index.js +1 -0
- package/lib/xt-scroll/xt-scroll.common.js +551 -0
- package/lib/xt-scroll/xt-scroll.css +1 -0
- package/lib/xt-scroll/xt-scroll.umd.js +561 -0
- package/lib/xt-scroll/xt-scroll.umd.min.js +1 -0
- package/lib/xt-scroll-arrow/xt-scroll-arrow.common.js +591 -170
- package/lib/xt-scroll-arrow/xt-scroll-arrow.css +1 -1
- package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.js +591 -170
- package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.min.js +1 -1
- package/lib/xt-select-tree/xt-select-tree.common.js +1 -1
- package/lib/xt-select-tree/xt-select-tree.umd.js +1 -1
- package/lib/xt-step-price/xt-step-price.common.js +2 -2
- package/lib/xt-step-price/xt-step-price.umd.js +2 -2
- package/lib/xt-step-price-item/xt-step-price-item.common.js +1 -1
- package/lib/xt-step-price-item/xt-step-price-item.umd.js +1 -1
- package/lib/xt-tab-pane/xt-tab-pane.common.js +1 -1
- package/lib/xt-tab-pane/xt-tab-pane.umd.js +1 -1
- package/lib/xt-table/xt-table.common.js +2 -2
- package/lib/xt-table/xt-table.umd.js +2 -2
- package/lib/xt-tabs/xt-tabs.common.js +1 -1
- package/lib/xt-tabs/xt-tabs.umd.js +1 -1
- package/lib/xt-text/xt-text.common.js +1 -1
- package/lib/xt-text/xt-text.umd.js +1 -1
- package/lib/xt-time/xt-time.common.js +1 -1
- package/lib/xt-time/xt-time.umd.js +1 -1
- package/lib/xt-transfer-tree/xt-transfer-tree.common.js +1 -1
- package/lib/xt-transfer-tree/xt-transfer-tree.umd.js +1 -1
- package/lib/xt-upload/xt-upload.common.js +2 -2
- package/lib/xt-upload/xt-upload.umd.js +2 -2
- package/package.json +5 -3
- package/src/components/index.scss +3 -0
- package/src/components/theme/element-overrides.css +607 -0
- package/src/components/theme/element-vars.css +280 -0
- package/src/components/theme/iframe-injector.js +502 -0
- package/src/components/theme/index.js +64 -0
- package/src/components/xt-config-provider/style/index.scss +0 -11
- package/src/components/xt-date-picker/component/RangeDate.vue +1 -29
- package/src/components/xt-date-picker/style/index.scss +80 -53
- package/src/components/xt-list/index.vue +23 -12
- package/src/components/xt-scroll/index.js +9 -0
- package/src/components/xt-scroll/index.vue +363 -0
- package/src/components/xt-scroll/style/index.scss +107 -0
- package/src/components/xt-scroll-arrow/index.vue +200 -83
- package/src/components/xt-scroll-arrow/style/index.scss +16 -5
- package/src/index.js +9 -2
- package/src/utils/color.js +105 -0
- package/src/utils/index.js +456 -468
- package/src/utils/theme-vars.js +134 -0
- package/lib/css/1.87a493be.css +0 -1
- 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
|
-
>
|
|
3
|
+
> 30+ 高质量组件,开箱即用,让你的企业级开发效率翻倍!
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🔥 为什么选择 XT-Element-UI?
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
[](https://www.npmjs.com/package/xt-element-ui)
|
|
9
|
-
[](./LICENSE)
|
|
10
|
-
[](package.json)
|
|
11
|
-
[](https://vuejs.org)
|
|
9
|
+
在日常的企业级开发中,你是否遇到过以下痛点:
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
- 🎨 ElementUI 原生组件样式不够精致,二次开发成本高
|
|
12
|
+
- 📊 图表组件与业务系统耦合度高,复用困难
|
|
13
|
+
- 🌓 主题切换需要大量 CSS 覆盖,代码冗余
|
|
14
|
+
- 🔄 审批流程轨迹展示丑陋,难以定制
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
**XT-Element-UI** 正是为解决这些痛点而生!基于 Vue 2.7 + ElementUI 构建,提供 30+ 企业级组件,覆盖布局、表单、数据展示、图表、工作流等常见场景。
|
|
18
17
|
|
|
19
18
|
---
|
|
20
19
|
|
|
21
|
-
## ✨
|
|
20
|
+
## ✨ 核心亮点
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
72
|
-
import 'xt-element-ui/lib/
|
|
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('
|
|
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
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
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
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
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
|
-
##
|
|
178
|
+
## 🤝 贡献指南
|
|
97
179
|
|
|
98
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
- **[GitHub 仓库](https://github.com/JobWebNie/xt-element-ui)**
|
|
186
|
+
MIT License
|
|
187
|
+
|
|
188
|
+
---
|
|
117
189
|
|
|
190
|
+
> 如果觉得这个组件库对你有帮助,欢迎 ⭐ Star 支持一下!你的支持是我们持续更新的动力!
|
|
118
191
|
|
|
192
|
+
#Vue #ElementUI #组件库 #前端 #企业级
|