xt-element-ui 2.1.5 → 2.1.7

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 (72) hide show
  1. package/docs/components/base/xt-badge.md +0 -2
  2. package/docs/components/base/xt-bar.md +5 -32
  3. package/docs/components/base/xt-button.md +0 -2
  4. package/docs/components/base/xt-card-item.md +0 -2
  5. package/docs/components/base/xt-card.md +17 -19
  6. package/docs/components/base/xt-chart.md +5 -31
  7. package/docs/components/base/xt-config-provider.md +0 -2
  8. package/docs/components/base/xt-date-picker.md +268 -180
  9. package/docs/components/base/xt-flex-box.md +25 -25
  10. package/docs/components/base/xt-form-schema.md +356 -0
  11. package/docs/components/base/xt-grid-box.md +4 -6
  12. package/docs/components/base/xt-icon.md +0 -2
  13. package/docs/components/base/xt-input.md +204 -44
  14. package/docs/components/base/xt-line.md +4 -30
  15. package/docs/components/base/xt-list.md +456 -458
  16. package/docs/components/base/xt-map-provider.md +0 -2
  17. package/docs/components/base/xt-map.md +0 -2
  18. package/docs/components/base/xt-multi.md +5 -44
  19. package/docs/components/base/xt-page.md +17 -6
  20. package/docs/components/base/xt-pie.md +5 -30
  21. package/docs/components/base/xt-progress.md +0 -2
  22. package/docs/components/base/xt-scroll-arrow.md +0 -2
  23. package/docs/components/base/xt-select-tree.md +0 -2
  24. package/docs/components/base/xt-step-price.md +0 -2
  25. package/docs/components/base/xt-table.md +2 -2
  26. package/docs/components/base/xt-tabs.md +0 -2
  27. package/docs/components/base/xt-text.md +1 -2
  28. package/docs/components/base/xt-time.md +0 -2
  29. package/docs/components/base/xt-transfer-tree.md +0 -2
  30. package/docs/components/base/xt-upload.md +11 -8
  31. package/docs/components/utils/config.md +285 -0
  32. package/docs/components/utils/format.md +445 -0
  33. package/package.json +5 -2
  34. package/src/components/xt-badge/style/index.scss +0 -22
  35. package/src/components/xt-chart/XtBar.vue +0 -3
  36. package/src/components/xt-date-picker/component/Picker.vue +196 -0
  37. package/src/components/xt-date-picker/component/RangeDate.vue +136 -0
  38. package/src/components/xt-date-picker/index.vue +164 -144
  39. package/src/components/xt-flex-box/index.vue +1 -1
  40. package/src/components/xt-form-schema/index.js +8 -0
  41. package/src/components/xt-form-schema/index.vue +328 -0
  42. package/src/components/xt-grid-item/index.vue +2 -2
  43. package/src/components/xt-input/index.vue +224 -28
  44. package/src/components/xt-input/style/index.scss +10 -0
  45. package/src/components/xt-layout/ExFieldset.vue +4 -4
  46. package/src/components/xt-list/index.js +7 -7
  47. package/src/components/xt-list/index.vue +885 -885
  48. package/src/components/xt-page/index.vue +148 -75
  49. package/src/components/xt-progress/style/index.scss +0 -14
  50. package/src/components/xt-tab-pane/index.js +10 -0
  51. package/src/components/{xt-tabs/TabPane.vue → xt-tab-pane/index.vue} +14 -1
  52. package/src/components/xt-table/XtTableCell.vue +2 -2
  53. package/src/components/xt-table/index.vue +5 -7
  54. package/src/components/xt-tabs/index.js +1 -3
  55. package/src/components/xt-tabs/index.vue +303 -44
  56. package/src/components/xt-tabs/style/index.scss +0 -40
  57. package/src/components/xt-text/style/index.scss +0 -15
  58. package/src/components/xt-transfer-tree/index.js +7 -7
  59. package/src/components/xt-transfer-tree/index.vue +493 -493
  60. package/src/components/xt-upload/index.vue +12 -6
  61. package/src/enhance/index.scss +13 -0
  62. package/src/index.js +7 -2
  63. package/src/styles/theme/colors.scss +0 -44
  64. package/src/styles/theme/dark-variables.scss +0 -29
  65. package/lib/demo.html +0 -10
  66. package/lib/index.common.js +0 -126851
  67. package/lib/index.css +0 -1
  68. package/lib/index.umd.js +0 -126861
  69. package/lib/index.umd.min.js +0 -1
  70. package/src/components/xt-date-picker/SearchDate.vue +0 -45
  71. package/src/components/xt-date-picker/quarter.vue +0 -154
  72. package/src/components/xt-table/index copy.vue +0 -663
@@ -1,180 +1,268 @@
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 / Date | - | - | 日期范围 `[startDate, endDate]` 或单个日期 |
30
- | `dateType` | String | `date` | `date`、`datetime`、`month`、`year`、`quarter`、`week` | 日期类型 |
31
- | `separator` | String | `至` | - | 分隔符文本 |
32
- | `disabled` | Boolean | `false` | - | 是否禁用 |
33
- | `width` | String | `100%` | - | 组件宽度 |
34
- | `rangeMode` | Boolean | `true` | - | 是否为范围选择模式,false 时为单选 |
35
- | `showDimension` | Boolean | `false` | - | 是否显示时间维度选择器 |
36
- | `dimension` | String | `day` | `day`、`month`、`year`、`custom` | 当前时间维度 |
37
-
38
- ## 事件
39
-
40
- | 事件名 | 说明 | 参数 |
41
- |--------|------|------|
42
- | `change` | 日期值改变时触发 | `[startDate, endDate]` `date` |
43
- | `dimension-change` | 时间维度或值变化时触发 | `{ dimension, value }` |
44
- | `focus` | 输入框获得焦点时触发 | - |
45
- | `blur` | 输入框失去焦点时触发 | - |
46
-
47
- ## 示例
48
-
49
- ### 不同日期类型
50
-
51
- ::: demo 不同日期类型
52
- ```vue
53
- <template>
54
- <div style="display: flex; flex-direction: column; gap: 12px;">
55
- <XtDatePicker v-model="dateRange" dateType="date" />
56
- <XtDatePicker v-model="monthRange" dateType="month" />
57
- <XtDatePicker v-model="yearRange" dateType="year" />
58
- <XtDatePicker v-model="quarterRange" dateType="quarter" />
59
- </div>
60
- </template>
61
-
62
- <script>
63
- export default {
64
- data() {
65
- return {
66
- dateRange: [],
67
- monthRange: [],
68
- yearRange: [],
69
- quarterRange: []
70
- }
71
- }
72
- }
73
- </script>
74
- ```
75
- :::
76
-
77
- ### 单选模式
78
-
79
- ::: demo 单选模式
80
- ```vue
81
- <template>
82
- <XtDatePicker v-model="singleDate" :range-mode="false" />
83
- </template>
84
-
85
- <script>
86
- export default {
87
- data() {
88
- return {
89
- singleDate: null
90
- }
91
- }
92
- }
93
- </script>
94
- ```
95
- :::
96
-
97
- ### 时间维度选择(统计分析)
98
-
99
- ::: demo 时间维度选择
100
- ```vue
101
- <template>
102
- <XtDatePicker
103
- v-model="dateRange"
104
- :show-dimension="true"
105
- :dimension="currentDimension"
106
- @update:dimension="currentDimension = $event"
107
- @dimension-change="handleDimensionChange"
108
- />
109
- </template>
110
-
111
- <script>
112
- export default {
113
- data() {
114
- return {
115
- dateRange: [],
116
- currentDimension: 'day'
117
- }
118
- },
119
- methods: {
120
- handleDimensionChange({ dimension, value }) {
121
- console.log('维度:', dimension, '值:', value)
122
- }
123
- }
124
- }
125
- </script>
126
- ```
127
- :::
128
-
129
- ### 自定义分隔符
130
-
131
- ::: demo 自定义分隔符
132
- ```vue
133
- <template>
134
- <XtDatePicker v-model="dateRange" separator="~" />
135
- </template>
136
-
137
- <script>
138
- export default {
139
- data() {
140
- return {
141
- dateRange: []
142
- }
143
- }
144
- }
145
- </script>
146
- ```
147
- :::
148
-
149
- ### 禁用状态
150
-
151
- ::: demo 禁用状态
152
- ```vue
153
- <template>
154
- <XtDatePicker v-model="dateRange" disabled />
155
- </template>
156
-
157
- <script>
158
- export default {
159
- data() {
160
- return {
161
- dateRange: []
162
- }
163
- }
164
- }
165
- </script>
166
- ```
167
- :::
168
-
169
- ## 时间维度说明
170
-
171
- 当启用 `showDimension` 后,选择不同维度会有以下效果:
172
-
173
- | 维度 | 日期类型 | 选择模式 | 范围限制 |
174
- |------|----------|----------|----------|
175
- | `day` | date | 范围选择 | 无限制 |
176
- | `month` | month | 范围选择 | 结束日期必须与开始日期同月份 |
177
- | `year` | year | 范围选择 | 结束日期必须与开始日期同年份 |
178
- | `custom` | 保持原值 | 单选 | 用户自定义 |
179
-
180
- 选择"月"维度后,结束日期会限制在开始日期所在月份内,方便统计分析时快速选择同一月内的日期范围。
1
+ 日期选择器组件用于选择日期范围或单个日期,支持多种日期类型(年月日、年月、年、季度等),并提供时间维度选择功能,满足统计分析场景。
2
+
3
+ ## 基本用法
4
+
5
+ ::: demo 基本用法(日期范围)
6
+ ```vue
7
+ <template>
8
+ <XtDatePicker v-model="dateRange" />
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ data() {
14
+ return {
15
+ dateRange: ""
16
+ }
17
+ }
18
+ }
19
+ </script>
20
+ ```
21
+ :::
22
+
23
+ ## 属性说明
24
+
25
+ | 属性 | 类型 | 默认值 | 可选值 | 说明 |
26
+ |------|------|--------|--------|------|
27
+ | `value` / `v-model` | Array / String | - | - | 日期范围 `[start, end]` 或单个日期字符串 |
28
+ | `dateType` | String | `date` | `date`、`datetime`、`month`、`year`、`quarter`、`week` | 日期类型 |
29
+ | `separator` | String | `至` | - | 范围选择时的分隔符文本 |
30
+ | `disabled` | Boolean | `false` | - | 是否禁用 |
31
+ | `width` | String | `100%` | - | 组件宽度,如 `'500px'` |
32
+ | `rangeMode` | Boolean | `true` | - | 是否为范围选择模式,false 时为单选 |
33
+ | `showDimension` | Boolean | `false` | - | 是否显示时间维度选择器(日/月/年/自定义) |
34
+ | `dimension` | String | `date` | `date`、`month`、`year`、`daterange` | 当前时间维度 |
35
+ | `immediate` | Boolean | `true` | - | 切换维度后是否立即触发事件 |
36
+
37
+ ## 事件说明
38
+
39
+ | 事件名 | 参数 | 说明 |
40
+ |--------|------|------|
41
+ | `change` | `value` | 日期值改变时触发 |
42
+ | `dimension-change` | `{ dimension, value }` | 时间维度或值变化时触发 |
43
+ | `focus` | - | 输入框获得焦点时触发 |
44
+ | `blur` | - | 输入框失去焦点时触发 |
45
+
46
+ ## 示例
47
+
48
+ ### 日期范围选择
49
+
50
+ ::: demo 日期范围选择
51
+ ```vue
52
+ <template>
53
+ <XtDatePicker v-model="dateRange" rangeMode="true" />
54
+ </template>
55
+
56
+ <script>
57
+ export default {
58
+ data() {
59
+ return {
60
+ dateRange: []
61
+ }
62
+ }
63
+ }
64
+ </script>
65
+ ```
66
+ :::
67
+
68
+ ### 月份范围选择
69
+
70
+ ::: demo 月份范围选择
71
+ ```vue
72
+ <template>
73
+ <XtDatePicker v-model="monthRange" dateType="month" />
74
+ </template>
75
+
76
+ <script>
77
+ export default {
78
+ data() {
79
+ return {
80
+ monthRange: ""
81
+ }
82
+ }
83
+ }
84
+ </script>
85
+ ```
86
+ :::
87
+
88
+ ### 年份范围选择
89
+
90
+ ::: demo 年份范围选择
91
+ ```vue
92
+ <template>
93
+ <XtDatePicker v-model="yearRange" dateType="year" />
94
+ </template>
95
+
96
+ <script>
97
+ export default {
98
+ data() {
99
+ return {
100
+ yearRange: ""
101
+ }
102
+ }
103
+ }
104
+ </script>
105
+ ```
106
+ :::
107
+
108
+ ### 季度选择
109
+
110
+ ::: demo 季度选择
111
+ ```vue
112
+ <template>
113
+ <XtDatePicker v-model="quarterRange" dateType="quarter" />
114
+ </template>
115
+
116
+ <script>
117
+ export default {
118
+ data() {
119
+ return {
120
+ quarterRange: ""
121
+ }
122
+ }
123
+ }
124
+ </script>
125
+ ```
126
+ :::
127
+
128
+ ### 单选模式
129
+
130
+ ::: demo 单选模式
131
+ ```vue
132
+ <template>
133
+ <XtDatePicker v-model="singleDate" :range-mode="false" />
134
+ </template>
135
+
136
+ <script>
137
+ export default {
138
+ data() {
139
+ return {
140
+ singleDate: null
141
+ }
142
+ }
143
+ }
144
+ </script>
145
+ ```
146
+ :::
147
+
148
+ ### 时间维度选择(统计分析)
149
+
150
+ ::: demo 时间维度选择
151
+ ```vue
152
+ <template>
153
+ <XtDatePicker
154
+ v-model="dateRange"
155
+ :show-dimension="true"
156
+ :dimension="currentDimension"
157
+ @dimension-change="handleDimensionChange"
158
+ />
159
+ </template>
160
+
161
+ <script>
162
+ export default {
163
+ data() {
164
+ return {
165
+ dateRange: "",
166
+ currentDimension: 'date'
167
+ }
168
+ },
169
+ methods: {
170
+ handleDimensionChange({ dimension, value }) {
171
+ this.currentDimension = dimension
172
+ console.log('维度:', dimension, '值:', value)
173
+ }
174
+ }
175
+ }
176
+ </script>
177
+ ```
178
+ :::
179
+
180
+ ### 自定义分隔符
181
+
182
+ ::: demo 自定义分隔符
183
+ ```vue
184
+ <template>
185
+ <XtDatePicker v-model="dateRange" separator="~" />
186
+ </template>
187
+
188
+ <script>
189
+ export default {
190
+ data() {
191
+ return {
192
+ dateRange: ""
193
+ }
194
+ }
195
+ }
196
+ </script>
197
+ ```
198
+ :::
199
+
200
+ ### 禁用状态
201
+
202
+ ::: demo 禁用状态
203
+ ```vue
204
+ <template>
205
+ <XtDatePicker v-model="dateRange" disabled />
206
+ </template>
207
+
208
+ <script>
209
+ export default {
210
+ data() {
211
+ return {
212
+ dateRange: ""
213
+ }
214
+ }
215
+ }
216
+ </script>
217
+ ```
218
+ :::
219
+
220
+ ### 自定义宽度
221
+
222
+ ::: demo 自定义宽度
223
+ ```vue
224
+ <template>
225
+ <XtDatePicker v-model="dateRange" width="600" />
226
+ </template>
227
+
228
+ <script>
229
+ export default {
230
+ data() {
231
+ return {
232
+ dateRange: ""
233
+ }
234
+ }
235
+ }
236
+ </script>
237
+ ```
238
+ :::
239
+
240
+ ## 时间维度说明
241
+
242
+ 当启用 `showDimension` 后,选择不同维度会有以下效果:
243
+
244
+ | 维度 | 日期类型 | 格式 | 说明 |
245
+ |------|----------|------|------|
246
+ | `date` | date | yyyy-MM-dd | 日维度,选择日期范围 |
247
+ | `month` | month | yyyy-MM | 月维度,选择月份范围 |
248
+ | `year` | year | yyyy | 年维度,选择年份范围 |
249
+ | `daterange` | date | yyyy-MM-dd | 自定义区间,选择日期范围 |
250
+
251
+ ## 日期类型格式
252
+
253
+ | 类型 | 显示格式 | 说明 |
254
+ |------|----------|------|
255
+ | `date` | yyyy-MM-dd | 日期 |
256
+ | `month` | yyyy-MM | 月份 |
257
+ | `year` | yyyy | 年份 |
258
+ | `quarter` | yyyy-Qq | 季度(如 2026-Q3) |
259
+ | `week` | yyyy-WW | 周 |
260
+ | `datetime` | yyyy-MM-dd HH:mm | 日期时间 |
261
+
262
+ ## 注意事项
263
+
264
+ 1. **范围模式**:默认开启范围选择(`rangeMode: true`),返回值为数组 `[start, end]`
265
+ 2. **单选模式**:设置 `rangeMode: false` 后,返回值为单个日期字符串
266
+ 3. **维度切换**:切换维度时会自动关闭下拉面板,避免页面布局跳动
267
+ 4. **季度格式**:季度类型使用自定义格式 `yyyy-Qq`,如 `2026-Q3`
268
+ 5. **值类型**:所有日期值均为字符串类型,便于后端交互
@@ -8,31 +8,21 @@
8
8
  ```vue
9
9
  <template>
10
10
  <XtFlexBox gap="16px">
11
- <div style="width: 80px; height: 40px; background: #f0f0f0; display: flex; align-items: center; justify-content: center;">子元素1</div>
12
- <div style="width: 80px; height: 40px; background: #f0f0f0; display: flex; align-items: center; justify-content: center;">子元素2</div>
13
- <div style="width: 80px; height: 40px; background: #f0f0f0; display: flex; align-items: center; justify-content: center;">子元素3</div>
11
+ <div style="background: #1890ff; color: white; padding: 8px;">元素1</div>
12
+ <div style="background: #52c41a; color: white; padding: 8px;">元素2</div>
13
+ <div style="background: #faad14; color: white; padding: 8px;">元素3</div>
14
14
  </XtFlexBox>
15
15
  </template>
16
16
  ```
17
17
  :::
18
18
 
19
- ## 属性说明
20
- | 属性 | 类型 | 默认值 | 可选值 | 说明 |
21
- |------|------|--------|--------|------|
22
- | `type` | String | flex | - | 布局类型 |
23
- | `align` | String | center | `start`、`center`、`end`、`stretch`、`baseline` | 交叉轴对齐方式 |
24
- | `content` | String | start | `start`、`center`、`end`、`between`、`around`、`evenly` | 主轴对齐方式 |
25
- | `direction` | String | row | `row`、`row-reverse`、`column`、`column-reverse` | 排列方向 |
26
- | `wrap` | String | unset | `wrap`、`nowrap`、`wrap-reverse` | 是否换行 |
27
- | `gap` | String | - | - | 子元素间距 |
28
-
29
19
  ## 示例
30
20
 
31
21
  ### 水平居中且两端对齐
32
22
  ::: demo 水平居中且两端对齐
33
23
  ```vue
34
24
  <template>
35
- <XtFlexBox content="space-between" align="center">
25
+ <XtFlexBox content="between" align="center">
36
26
  <span>左侧内容</span>
37
27
  <span>右侧内容</span>
38
28
  </XtFlexBox>
@@ -59,11 +49,11 @@
59
49
  ::: demo 均匀分布
60
50
  ```vue
61
51
  <template>
62
- <XtFlexBox content="space-around">
63
- <div style="width: 60px; height: 60px; background: #e6f7ff; border-radius: 8px; display: flex; align-items: center; justify-content: center;">1</div>
64
- <div style="width: 60px; height: 60px; background: #e6f7ff; border-radius: 8px; display: flex; align-items: center; justify-content: center;">2</div>
65
- <div style="width: 60px; height: 60px; background: #e6f7ff; border-radius: 8px; display: flex; align-items: center; justify-content: center;">3</div>
66
- <div style="width: 60px; height: 60px; background: #e6f7ff; border-radius: 8px; display: flex; align-items: center; justify-content: center;">4</div>
52
+ <XtFlexBox content="around">
53
+ <div style="background: #1890ff; color: white; padding: 8px;">元素1</div>
54
+ <div style="background: #52c41a; color: white; padding: 8px;">元素2</div>
55
+ <div style="background: #faad14; color: white; padding: 8px;">元素3</div>
56
+ <div style="background: #ea1d34; color: white; padding: 8px;">元素4</div>
67
57
  </XtFlexBox>
68
58
  </template>
69
59
  ```
@@ -75,7 +65,7 @@
75
65
  ```vue
76
66
  <template>
77
67
  <XtFlexBox wrap="wrap" gap="8px">
78
- <div v-for="i in 10" :key="i" style="width: 80px; height: 80px; background: #f0f0f0; border-radius: 8px; display: flex; align-items: center; justify-content: center;">{{ i }}</div>
68
+ <div v-for="i in 10" :key="i" style="padding: 8px; background: #1890ff; color: white; width: 80px;">{{ i }}</div>
79
69
  </XtFlexBox>
80
70
  </template>
81
71
  ```
@@ -86,10 +76,10 @@
86
76
  ::: demo 反向排列
87
77
  ```vue
88
78
  <template>
89
- <XtFlexBox direction="row-reverse">
90
- <span style="padding: 8px; background: #f5f5f5;">第一</span>
91
- <span style="padding: 8px; background: #f5f5f5;">第二</span>
92
- <span style="padding: 8px; background: #f5f5f5;">第三</span>
79
+ <XtFlexBox direction="row-reverse" gap="8px">
80
+ <span style="padding: 8px; background: #1890ff; color: white; width: 80px;">第一</span>
81
+ <span style="padding: 8px; background: #1890ff; color: white; width: 80px;">第二</span>
82
+ <span style="padding: 8px; background: #1890ff; color: white; width: 80px;">第三</span>
93
83
  </XtFlexBox>
94
84
  </template>
95
85
  ```
@@ -101,7 +91,7 @@
101
91
  ```vue
102
92
  <template>
103
93
  <XtFlexBox direction="column" gap="16px">
104
- <XtFlexBox content="space-between">
94
+ <XtFlexBox content="between">
105
95
  <span>头部左侧</span>
106
96
  <span>头部右侧</span>
107
97
  </XtFlexBox>
@@ -113,3 +103,13 @@
113
103
  </template>
114
104
  ```
115
105
  :::
106
+
107
+ ## 属性说明
108
+ | 属性 | 类型 | 默认值 | 可选值 | 说明 |
109
+ |------|------|--------|--------|------|
110
+ | `type` | String | flex | - | 布局类型 |
111
+ | `align` | String | center | `start`、`center`、`end`、`stretch`、`baseline` | 交叉轴对齐方式 |
112
+ | `content` | String | start | `start`、`center`、`end`、`between`、`around`、`evenly` | 主轴对齐方式 |
113
+ | `direction` | String | row | `row`、`row-reverse`、`column`、`column-reverse` | 排列方向 |
114
+ | `wrap` | String | unset | `wrap`、`nowrap`、`wrap-reverse` | 是否换行 |
115
+ | `gap` | String | - | - | 子元素间距 |