xt-element-ui 1.2.3 → 1.2.5

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 (51) hide show
  1. package/docs/README.md +201 -0
  2. package/docs/components/base/xt-button.md +114 -0
  3. package/docs/components/base/xt-card-item.md +104 -0
  4. package/docs/components/base/xt-card.md +108 -0
  5. package/docs/components/base/xt-config-provider.md +199 -0
  6. package/docs/components/base/xt-flex-box.md +115 -0
  7. package/docs/components/base/xt-grid-box.md +303 -0
  8. package/docs/components/base/xt-input.md +150 -0
  9. package/docs/components/base/xt-text.md +212 -0
  10. package/docs/components/extend/ex-bar.md +68 -0
  11. package/docs/components/extend/ex-button.md +62 -0
  12. package/docs/components/extend/ex-card.md +86 -0
  13. package/docs/components/extend/ex-chart.md +355 -0
  14. package/docs/components/extend/ex-icon.md +190 -0
  15. package/docs/components/extend/ex-line.md +71 -0
  16. package/docs/components/extend/ex-multi.md +156 -0
  17. package/docs/components/extend/ex-page.md +75 -0
  18. package/docs/components/extend/ex-pie.md +70 -0
  19. package/docs/components/extend/ex-select-tree.md +210 -0
  20. package/docs/components/extend/ex-table.md +591 -0
  21. package/docs/components/extend/ex-upload.md +134 -0
  22. package/docs/components/utils/size.md +148 -0
  23. package/docs/components/utils/theme.md +183 -0
  24. package/lib/index.common.js +449 -429
  25. package/lib/index.css +1 -1
  26. package/lib/index.umd.js +449 -429
  27. package/lib/index.umd.min.js +4 -4
  28. package/package.json +4 -2
  29. package/src/components/ex-chart/ExMulti.vue +44 -32
  30. package/src/components/ex-chart/ExPie.vue +6 -8
  31. package/src/components/ex-chart/index.vue +1 -4
  32. package/src/components/ex-chart/theme/dark.js +14 -12
  33. package/src/components/ex-chart/utils.js +1 -1
  34. package/src/components/ex-icon/index.js +2 -0
  35. package/src/components/ex-icon/index.vue +168 -0
  36. package/src/components/ex-icon/style/index.scss +7 -0
  37. package/src/components/ex-table/index.vue +3 -3
  38. package/src/components/index.scss +4 -1
  39. package/src/components/xt-button/index.vue +2 -2
  40. package/src/components/xt-button/style/index.scss +524 -614
  41. package/src/components/xt-card-item/images/bar.svg +1 -0
  42. package/src/components/xt-card-item/images/line.svg +1 -0
  43. package/src/components/xt-card-item/images/pie.svg +1 -0
  44. package/src/components/xt-card-item/index copy.vue +93 -0
  45. package/src/components/xt-card-item/index.vue +23 -83
  46. package/src/components/xt-card-item/style/index copy.scss +72 -0
  47. package/src/components/xt-card-item/style/index.scss +51 -40
  48. package/src/components/xt-config-provider/index.vue +2 -2
  49. package/src/components/xt-text/index.vue +58 -29
  50. package/src/index.js +3 -0
  51. package/src/components/ex-chart/ExTrend.vue +0 -124
package/docs/README.md ADDED
@@ -0,0 +1,201 @@
1
+ ## XT-Element-UI
2
+
3
+ > 基于 Vue2 + ElementUI 的企业级组件库
4
+
5
+ ## 特性
6
+
7
+ - **丰富的组件**:提供多种常用组件,覆盖布局、表单、数据展示等场景
8
+ - **开箱即用**:基于 ElementUI 构建,无缝集成现有项目
9
+ - **可分发**:完整的 npm 包架构,支持按需引入
10
+ - **可覆盖**:组件设计支持覆盖 Element UI 原有组件
11
+ - **双架构设计**:Xt 自定义组件 + Ex 扩展组件,便于维护管理
12
+ - **主题系统**:支持亮色/暗色主题切换,支持自定义主色调
13
+ - **响应式设计**:组件支持多种尺寸配置,适配不同屏幕
14
+
15
+ ## 组件架构
16
+
17
+ XT-Element-UI 采用双架构设计,将组件分为两大类:
18
+
19
+ ### Xt 组件(自定义组件)
20
+
21
+ 全新开发的自定义组件,不依赖 ElementUI 原有组件:
22
+
23
+ | 组件 | 说明 |
24
+ |------|------|
25
+ | XtButton | 按钮组件 |
26
+ | XtCard | 卡片组件 |
27
+ | XtCardItem | 卡片项组件 |
28
+ | XtFlexBox | 弹性布局组件 |
29
+ | XtGridBox | 网格布局组件 |
30
+ | XtGridItem | 网格子项组件 |
31
+ | XtText | 文本组件 |
32
+ | XtInput | 输入框组件 |
33
+ | XtDatePicker | 日期选择组件 |
34
+ | XtConfigProvider | 配置提供器 |
35
+
36
+ ### Ex 组件(扩展组件)
37
+
38
+ 基于 ElementUI 或 ECharts 二次封装的增强组件:
39
+
40
+ | 组件 | 说明 |
41
+ |------|------|
42
+ | ExButton | 基于 ElementUI Button 的扩展按钮 |
43
+ | ExCard | 基于 ElementUI Card 的扩展卡片 |
44
+ | ExTable | 基于 ElementUI Table 的扩展表格 |
45
+ | ExChart | 图表容器组件 |
46
+ | ExBar | 基于 ECharts 的柱状图 |
47
+ | ExLine | 基于 ECharts 的折线图 |
48
+ | ExPie | 基于 ECharts 的饼图 |
49
+ | ExMulti | 基于 ECharts 的混合图表 |
50
+ | ExTrend | 基于 ECharts 的趋势图 |
51
+
52
+ ### 命名规范
53
+
54
+ | 前缀 | 含义 | 示例 |
55
+ |------|------|------|
56
+ | `Xt` | 自定义组件,全新开发 | XtButton, XtCard, XtFlexBox, XtGridBox |
57
+ | `Ex` | 基于 ElementUI/ECharts 二次封装 | ExTable, ExBar, ExLine, ExChart |
58
+
59
+ ## 快速开始
60
+
61
+ ```bash
62
+ # 安装
63
+ npm install xt-element-ui
64
+ ```
65
+
66
+ ```javascript
67
+ // 全局引入
68
+ import Vue from 'vue'
69
+ import XtElementUI from 'xt-element-ui'
70
+ import 'xt-element-ui/lib/index.css'
71
+
72
+ Vue.use(XtElementUI)
73
+
74
+ // 或按需引入
75
+ import { XtButton, XtFlexBox, XtCard } from 'xt-element-ui'
76
+
77
+ Vue.component('XtButton', XtButton)
78
+ Vue.component('XtFlexBox', XtFlexBox)
79
+ Vue.component('XtCard', XtCard)
80
+ ```
81
+
82
+ ## 配置选项
83
+
84
+ 在安装时可以传入配置选项:
85
+
86
+ ```javascript
87
+ Vue.use(XtElementUI, {
88
+ theme: 'dark', // 主题:'white' 或 'dark'
89
+ size: 'medium', // 字体大小:'small', 'medium', 'large'
90
+ primaryColor: '#1890ff' // 主色调
91
+ })
92
+ ```
93
+
94
+ ## 工具函数
95
+
96
+ 提供全局工具函数用于动态配置:
97
+
98
+ ```javascript
99
+ // 设置主题
100
+ this.$xt.setTheme('dark')
101
+
102
+ // 设置字体大小
103
+ this.$xt.setSize('large')
104
+
105
+ // 设置主色调
106
+ this.$xt.setPrimaryColor('#52c41a')
107
+
108
+ // 获取当前配置
109
+ console.log(this.$xt.getConfig())
110
+ ```
111
+
112
+ ## 布局类组件
113
+
114
+ | 组件 | 说明 |
115
+ |------|------|
116
+ | XtFlexBox | 弹性盒布局,支持灵活的对齐和排列 |
117
+ | XtGridBox | CSS Grid 网格布局,支持跨列跨行 |
118
+ | XtGridItem | Grid 子项组件,支持 span、area 等属性 |
119
+
120
+ ## 表单类组件
121
+
122
+ | 组件 | 说明 |
123
+ |------|------|
124
+ | XtButton | 按钮组件,支持多种类型和尺寸 |
125
+ | XtInput | 输入框组件,支持前缀后缀和校验 |
126
+ | XtDatePicker | 日期选择组件 |
127
+
128
+ ## 数据展示组件
129
+
130
+ | 组件 | 说明 |
131
+ |------|------|
132
+ | XtCard | 卡片容器组件 |
133
+ | XtCardItem | 卡片内项组件 |
134
+ | XtText | 文本组件,支持多种样式 |
135
+ | ExTable | 扩展表格,支持导出等功能 |
136
+
137
+ ## 图表组件
138
+
139
+ | 组件 | 说明 |
140
+ |------|------|
141
+ | ExChart | 图表容器,封装 ECharts |
142
+ | ExBar | 柱状图组件 |
143
+ | ExLine | 折线图组件 |
144
+ | ExPie | 饼图组件 |
145
+ | ExMulti | 混合图表组件 |
146
+ | ExTrend | 趋势图组件 |
147
+
148
+ ## 主题系统
149
+
150
+ ### 亮色/暗色主题
151
+
152
+ ```vue
153
+ <template>
154
+ <div>
155
+ <XtButton @click="$xt.setTheme('white')">亮色主题</XtButton>
156
+ <XtButton @click="$xt.setTheme('dark')">暗色主题</XtButton>
157
+ </div>
158
+ </template>
159
+ ```
160
+
161
+ ### 字体大小配置
162
+
163
+ ```vue
164
+ <template>
165
+ <div>
166
+ <XtButton @click="$xt.setSize('small')">小号字体</XtButton>
167
+ <XtButton @click="$xt.setSize('medium')">中号字体</XtButton>
168
+ <XtButton @click="$xt.setSize('large')">大号字体</XtButton>
169
+ </div>
170
+ </template>
171
+ ```
172
+
173
+ ## 浏览器支持
174
+
175
+ - Chrome(推荐)
176
+ - Firefox
177
+ - Safari
178
+ - Edge
179
+
180
+ ## 开发
181
+
182
+ ```bash
183
+ # 克隆项目
184
+ git clone <repository-url>
185
+
186
+ # 安装依赖
187
+ npm install
188
+
189
+ # 启动开发服务器
190
+ npm run dev
191
+
192
+ # 构建文档
193
+ npm run docs:dev
194
+
195
+ # 构建生产版本
196
+ npm run build
197
+ ```
198
+
199
+ ## 许可证
200
+
201
+ MIT License
@@ -0,0 +1,114 @@
1
+ ## XtButton 按钮组件
2
+
3
+ 按钮用于触发一个操作,如提交表单、打开对话框等。
4
+
5
+ ## 基本用法
6
+
7
+ ::: demo 基本用法
8
+ ```vue
9
+ <template>
10
+ <XtButton type="primary">主要按钮</XtButton>
11
+ </template>
12
+ ```
13
+ :::
14
+
15
+ ## 属性说明
16
+ | 属性 | 类型 | 默认值 | 可选值 | 说明 |
17
+ |------|------|--------|--------|------|
18
+ | `type` | String | - | `primary`、`success`、`warning`、`danger` | 按钮类型 |
19
+ | `size` | String | - | `large`、`medium`、`small`、`mini` | 按钮尺寸 |
20
+ | `plain` | Boolean | false | - | 是否为朴素按钮 |
21
+ | `disabled` | Boolean | false | - | 是否禁用按钮 |
22
+ | `round` | Boolean | false | - | 是否为圆角按钮 |
23
+
24
+ ## 事件说明
25
+
26
+ | 事件名 | 参数 | 说明 |
27
+ |--------|------|------|
28
+ | `click` | - | 点击按钮时触发 |
29
+
30
+ ## 示例
31
+
32
+ ### 不同类型的按钮
33
+ ::: demo 不同类型的按钮
34
+ ```vue
35
+ <template>
36
+ <div style="display: flex; gap: 12px;">
37
+ <XtButton type="primary">主要按钮</XtButton>
38
+ <XtButton type="success">成功按钮</XtButton>
39
+ <XtButton type="warning">警告按钮</XtButton>
40
+ <XtButton type="danger">危险按钮</XtButton>
41
+ </div>
42
+ </template>
43
+ ```
44
+ :::
45
+
46
+ ### 不同尺寸的按钮
47
+ ::: demo 不同尺寸的按钮
48
+ ```vue
49
+ <template>
50
+ <div style="display: flex; gap: 12px; align-items: center;">
51
+ <XtButton size="large">大号按钮</XtButton>
52
+ <XtButton>默认按钮</XtButton>
53
+ <XtButton size="small">小号按钮</XtButton>
54
+ </div>
55
+ </template>
56
+ ```
57
+ :::
58
+
59
+ ### 朴素按钮
60
+
61
+ ::: demo 朴素按钮
62
+ ```vue
63
+ <template>
64
+ <div style="display: flex; gap: 12px;">
65
+ <XtButton type="primary" plain>朴素主按钮</XtButton>
66
+ <XtButton type="success" plain>朴素成功按钮</XtButton>
67
+ <XtButton type="warning" plain>朴素警告按钮</XtButton>
68
+ <XtButton type="danger" plain>朴素危险按钮</XtButton>
69
+ </div>
70
+ </template>
71
+ ```
72
+ :::
73
+
74
+ ### 状态按钮
75
+ ::: demo 状态按钮
76
+ ```vue
77
+ <template>
78
+ <div style="display: flex; gap: 12px;">
79
+ <XtButton disabled>禁用按钮</XtButton>
80
+ <XtButton round>圆角按钮</XtButton>
81
+ <XtButton type="primary" disabled>禁用主按钮</XtButton>
82
+ <XtButton type="primary" round>圆角主按钮</XtButton>
83
+ </div>
84
+ </template>
85
+ ```
86
+ :::
87
+
88
+ ### 事件处理
89
+
90
+ ::: demo 事件处理
91
+ ```vue
92
+ <template>
93
+ <div>
94
+ <XtButton type="primary" @click="handleClick">点击触发</XtButton>
95
+ <p style="margin-top: 12px;">点击次数: {{ clickCount }}</p>
96
+ </div>
97
+ </template>
98
+
99
+ <script>
100
+ export default {
101
+ data() {
102
+ return {
103
+ clickCount: 0
104
+ }
105
+ },
106
+ methods: {
107
+ handleClick() {
108
+ this.clickCount++
109
+ }
110
+ }
111
+ }
112
+ </script>
113
+ ```
114
+ :::
@@ -0,0 +1,104 @@
1
+ ## XtCardItem 卡片项组件
2
+
3
+ 卡片项组件用于在卡片内展示一行数据,支持标签、数值和单位的展示。
4
+
5
+ ## 基本用法
6
+
7
+ ::: demo 基本用法
8
+ ```vue
9
+ <template>
10
+ <XtCardItem label="销售额" value="12345" unit="元"></XtCardItem>
11
+ </template>
12
+ ```
13
+ :::
14
+
15
+ ## 属性说明
16
+ | 属性 | 类型 | 默认值 | 可选值 | 说明 |
17
+ |------|------|--------|--------|------|
18
+ | `iconType` | String | border | `border`、`icon` | 图标类型 |
19
+ | `type` | String | primary | `primary`、`success`、`warning`、`danger` | 颜色类型 |
20
+ | `label` | String | - | - | 标签文本 |
21
+ | `value` | String / Number | - | - | 数值内容 |
22
+ | `unit` | String | - | - | 数值单位 |
23
+ | `icon` | String | - | - | Element Plus 图标名称 |
24
+ | `iconAt` | String | right | `left`、`right`、`top`、`bottom` | 图标位置 |
25
+ | `color` | String | - | - | 自定义颜色 |
26
+
27
+ ## 插槽说明
28
+
29
+ | 插槽名 | 说明 |
30
+ |--------|------|
31
+ | `label` | 自定义标签区域 |
32
+ | `value` | 自定义数值区域 |
33
+ | `unit` | 自定义单位区域 |
34
+ | `icon` | 自定义图标区域 |
35
+
36
+ ## 示例
37
+
38
+ ### 边框型卡片项(默认)
39
+
40
+ ::: demo 边框型卡片项
41
+ ```vue
42
+ <template>
43
+ <XtCardItem label="销售额" value="12345" unit="元" type="primary"></XtCardItem>
44
+ </template>
45
+ ```
46
+ :::
47
+
48
+ ### 不同类型的边框卡片项
49
+
50
+ ::: demo 不同类型的边框卡片项
51
+ ```vue
52
+ <template>
53
+ <div style="display: flex; flex-direction: column; gap: 8px;">
54
+ <XtCardItem label="成功" value="OK" type="success"></XtCardItem>
55
+ <XtCardItem label="警告" value="Warning" type="warning"></XtCardItem>
56
+ <XtCardItem label="危险" value="Error" type="danger"></XtCardItem>
57
+ </div>
58
+ </template>
59
+ ```
60
+ :::
61
+
62
+ ### 自定义颜色
63
+ ::: demo 自定义颜色
64
+ ```vue
65
+ <template>
66
+ <XtCardItem label="自定义颜色" value="100%" color="#722ed1"></XtCardItem>
67
+ </template>
68
+ ```
69
+ :::
70
+
71
+ ### 自定义插槽
72
+ ::: demo 自定义插槽
73
+ ```vue
74
+ <template>
75
+ <XtCardItem>
76
+ <template #label>
77
+ <span style="color: #1890ff; font-weight: bold;">自定义标签</span>
78
+ </template>
79
+ <template #value>
80
+ <span style="font-size: 18px;">9999</span>
81
+ </template>
82
+ <template #unit>
83
+ <span style="color: #999;">自定义单位</span>
84
+ </template>
85
+ </XtCardItem>
86
+ </template>
87
+ ```
88
+ :::
89
+
90
+ ### 在卡片中使用
91
+
92
+ ::: demo 在卡片中使用
93
+ ```vue
94
+ <template>
95
+ <XtCard title="统计数据">
96
+ <div style="display: flex; flex-direction: column; gap: 8px;">
97
+ <XtCardItem label="总销售额" value="123456" unit="元"></XtCardItem>
98
+ <XtCardItem label="订单数量" value="520" unit="单" type="success"></XtCardItem>
99
+ <XtCardItem label="转化率" value="23.5" unit="%" type="warning"></XtCardItem>
100
+ </div>
101
+ </XtCard>
102
+ </template>
103
+ ```
104
+ :::
@@ -0,0 +1,108 @@
1
+ ## XtCard 卡片组件
2
+
3
+ 卡片组件用于展示信息,通常包含标题和内容区域。
4
+
5
+ ## 基本用法
6
+
7
+ ::: demo 基本用法
8
+ ```vue
9
+ <template>
10
+ <XtCard title="卡片标题" value="123" unit="元"></XtCard>
11
+ </template>
12
+ ```
13
+ :::
14
+
15
+ ## 属性说明
16
+
17
+ | 属性 | 类型 | 默认值 | 说明 |
18
+ |------|------|--------|------|
19
+ | `title` | String | - | 卡片标题 |
20
+ | `value` | String / Number | - | 卡片数值 |
21
+ | `unit` | String | - | 数值单位 |
22
+ | `noPadding` | Boolean | false | 是否取消内边距 |
23
+
24
+ ## 插槽说明
25
+
26
+ | 插槽名 | 说明 |
27
+ |--------|------|
28
+ | `default` | 自定义内容区域 |
29
+ | `title` | 自定义标题区域 |
30
+ | `value` | 自定义数值区域 |
31
+
32
+ ## 示例
33
+
34
+ ### 基础卡片
35
+
36
+ ::: demo 基础卡片
37
+ ```vue
38
+ <template>
39
+ <XtCard title="今日销售额" :value="123456" unit="元"></XtCard>
40
+ </template>
41
+ ```
42
+ :::
43
+
44
+ ### 自定义内容
45
+
46
+ ::: demo 自定义内容
47
+ ```vue
48
+ <template>
49
+ <XtCard title="用户统计">
50
+ <div style="display: flex; justify-content: space-around;">
51
+ <div style="text-align: center;">
52
+ <span style="display: block; font-size: 12px; color: #999;">新增用户</span>
53
+ <span style="font-size: 24px; font-weight: bold; color: #1890ff;">520</span>
54
+ </div>
55
+ <div style="text-align: center;">
56
+ <span style="display: block; font-size: 12px; color: #999;">活跃用户</span>
57
+ <span style="font-size: 24px; font-weight: bold; color: #52c41a;">3840</span>
58
+ </div>
59
+ </div>
60
+ </XtCard>
61
+ </template>
62
+ ```
63
+ :::
64
+
65
+ ### 自定义标题和数值
66
+
67
+ ::: demo 自定义标题和数值
68
+ ```vue
69
+ <template>
70
+ <XtCard>
71
+ <template #title>
72
+ <span style="color: #1890ff;">📊 数据分析</span>
73
+ </template>
74
+ <template #value>
75
+ <span style="font-size: 32px; color: #52c41a;">98.5%</span>
76
+ </template>
77
+ </XtCard>
78
+ </template>
79
+ ```
80
+ :::
81
+
82
+ ### 无边距卡片
83
+
84
+ ::: demo 无边距卡片
85
+ ```vue
86
+ <template>
87
+ <XtCard title="紧凑卡片" :value="100" noPadding>
88
+ <div style="padding: 8px;">
89
+ <p>内容区域没有额外内边距</p>
90
+ </div>
91
+ </XtCard>
92
+ </template>
93
+ ```
94
+ :::
95
+
96
+ ### 卡片组
97
+
98
+ ::: demo 卡片组
99
+ ```vue
100
+ <template>
101
+ <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;">
102
+ <XtCard title="销售额" value="12345" unit="元"></XtCard>
103
+ <XtCard title="订单数" value="520" unit="单"></XtCard>
104
+ <XtCard title="转化率" value="23.5" unit="%"></XtCard>
105
+ </div>
106
+ </template>
107
+ ```
108
+ :::