xt-element-ui 2.1.3 → 2.1.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.
@@ -1,111 +1,180 @@
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 | - | - | 日期范围,格式为 `[startDate, endDate]` |
30
- | `dateType` | String | `date` | `date`、`datetime`、`month`、`year`、`quarter`、`week` | 日期类型 |
31
- | `separator` | String | `至` | - | 分隔符文本 |
32
- | `disabled` | Boolean | `false` | - | 是否禁用 |
33
- | `width` | Number | `280` | - | 组件宽度(px) |
34
-
35
- ## 示例
36
-
37
- ### 不同日期类型
38
-
39
- ::: demo 不同日期类型
40
- ```vue
41
- <template>
42
- <div style="display: flex; flex-direction: column; gap: 12px;">
43
- <XtDatePicker v-model="dateRange" dateType="date" />
44
- <XtDatePicker v-model="monthRange" dateType="month" />
45
- <XtDatePicker v-model="yearRange" dateType="year" />
46
- <XtDatePicker v-model="quarterRange" dateType="quarter" />
47
- </div>
48
- </template>
49
-
50
- <script>
51
- export default {
52
- data() {
53
- return {
54
- dateRange: [],
55
- monthRange: [],
56
- yearRange: [],
57
- quarterRange: []
58
- }
59
- }
60
- }
61
- </script>
62
- ```
63
- :::
64
-
65
- ### 自定义分隔符
66
-
67
- ::: demo 自定义分隔符
68
- ```vue
69
- <template>
70
- <XtDatePicker v-model="dateRange" separator="~" />
71
- </template>
72
-
73
- <script>
74
- export default {
75
- data() {
76
- return {
77
- dateRange: []
78
- }
79
- }
80
- }
81
- </script>
82
- ```
83
- :::
84
-
85
- ### 禁用状态
86
-
87
- ::: demo 禁用状态
88
- ```vue
89
- <template>
90
- <XtDatePicker v-model="dateRange" disabled />
91
- </template>
92
-
93
- <script>
94
- export default {
95
- data() {
96
- return {
97
- dateRange: []
98
- }
99
- }
100
- }
101
- </script>
102
- ```
103
- :::
104
-
105
- ## 事件
106
-
107
- | 事件名 | 说明 | 参数 |
108
- |--------|------|------|
109
- | `change` | 日期值改变时触发 | `[startDate, endDate]` |
110
- | `focus` | 输入框获得焦点时触发 | - |
111
- | `blur` | 输入框失去焦点时触发 | - |
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
+ 选择"月"维度后,结束日期会限制在开始日期所在月份内,方便统计分析时快速选择同一月内的日期范围。
@@ -42,7 +42,7 @@ Vue.component(XtStepPriceItem.name, XtStepPriceItem)
42
42
  ```
43
43
 
44
44
  ### 基本用法
45
-
45
+ ::: demo
46
46
  ```vue
47
47
  <template>
48
48
  <div style="width: 600px;">
@@ -72,6 +72,7 @@ export default {
72
72
  }
73
73
  </script>
74
74
  ```
75
+ :::
75
76
 
76
77
  ### 自定义字段名
77
78
 
@@ -121,7 +122,7 @@ export default {
121
122
  | `fieldKeys` | Object | `{ min: 'min', max: 'max', price: 'price' }` | 字段名映射,支持自定义字段名 |
122
123
  | `limit` | Number | `0` | 阶梯数量上限,<=0 表示不限制 |
123
124
  | `step` | Number | `10` | 阶梯增量,新增时自动填充下一级的 min 值 |
124
- | `disabled` | Boolean | `false` | 是否禁用所有操作 |
125
+ | `disabled` | Boolean | `false` | 是否禁用所有操作 |
125
126
  | `allowNegative` | Boolean | `false` | 是否允许输入负数价格和下限 |
126
127
  | `tip` | String | `'区间左闭右闭 [min, max],最后一级为 [min, +∞),保证连续且不重叠。'` | 底部提示文本 |
127
128
  | `defaultFirst` | Boolean | `true` | 空数组时是否自动生成默认阶梯 |