@next-bricks/form 1.21.11 → 1.21.13

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 (92) hide show
  1. package/dist/bricks.json +35 -35
  2. package/dist/chunks/2537.be4cf82c.js.map +1 -1
  3. package/dist/chunks/845.2f598dd9.js +3 -0
  4. package/dist/chunks/845.2f598dd9.js.map +1 -0
  5. package/dist/chunks/{9949.753e2720.js → 9949.3d28a915.js} +3 -3
  6. package/dist/chunks/9949.3d28a915.js.map +1 -0
  7. package/dist/chunks/eo-auto-complete.0ed854e4.js.map +1 -1
  8. package/dist/chunks/eo-checkbox.2d0a8dbc.js.map +1 -1
  9. package/dist/chunks/eo-color-picker.ecf0c4c0.js.map +1 -1
  10. package/dist/chunks/eo-date-picker.faa60507.js.map +1 -1
  11. package/dist/chunks/eo-dynamic-form-item.aa5f7d9e.js.map +1 -1
  12. package/dist/chunks/eo-form.9db78cdb.js.map +1 -1
  13. package/dist/chunks/eo-icon-select.6a7f7e12.js +3 -0
  14. package/dist/chunks/eo-icon-select.6a7f7e12.js.map +1 -0
  15. package/dist/chunks/eo-radio.b2ed57db.js.map +1 -1
  16. package/dist/chunks/eo-search.206dd65e.js.map +1 -1
  17. package/dist/chunks/eo-select.cd00c791.js.map +1 -1
  18. package/dist/chunks/eo-switch.f0a27c08.js.map +1 -1
  19. package/dist/chunks/eo-textarea.405851dd.js.map +1 -1
  20. package/dist/chunks/eo-time-picker.46e7a667.js.map +1 -1
  21. package/dist/chunks/eo-time-range-picker.5afbad69.js.map +1 -1
  22. package/dist/chunks/eo-upload-file.27a4288d.js.map +1 -1
  23. package/dist/chunks/eo-upload-image.b43c2329.js.map +1 -1
  24. package/dist/chunks/{main.8c394d3e.js → main.59f7a796.js} +2 -2
  25. package/dist/chunks/{main.8c394d3e.js.map → main.59f7a796.js.map} +1 -1
  26. package/dist/examples.json +27 -24
  27. package/dist/index.2c92cf90.js +2 -0
  28. package/dist/{index.7917bac6.js.map → index.2c92cf90.js.map} +1 -1
  29. package/dist/manifest.json +451 -385
  30. package/dist/types.json +2699 -2649
  31. package/dist-types/auto-complete/index.d.ts +4 -0
  32. package/dist-types/checkbox/index.d.ts +2 -2
  33. package/dist-types/color-picker/index.d.ts +2 -1
  34. package/dist-types/date-picker/index.d.ts +1 -1
  35. package/dist-types/form/index.d.ts +16 -1
  36. package/dist-types/form-item/index.d.ts +31 -2
  37. package/dist-types/general-switch/index.d.ts +1 -1
  38. package/dist-types/icon-select/index.d.ts +1 -1
  39. package/dist-types/input/index.d.ts +2 -2
  40. package/dist-types/radio/index.d.ts +4 -4
  41. package/dist-types/select/index.d.ts +1 -0
  42. package/dist-types/textarea/index.d.ts +1 -1
  43. package/dist-types/time-range-picker/index.d.ts +7 -4
  44. package/dist-types/upload/upload-file/index.d.ts +1 -1
  45. package/docs/eo-auto-complete.md +158 -8
  46. package/docs/eo-auto-complete.react.md +229 -0
  47. package/docs/eo-checkbox.md +107 -4
  48. package/docs/eo-checkbox.react.md +369 -0
  49. package/docs/eo-color-picker.md +102 -22
  50. package/docs/eo-color-picker.react.md +160 -0
  51. package/docs/eo-date-picker.md +82 -50
  52. package/docs/eo-date-picker.react.md +146 -0
  53. package/docs/eo-dynamic-form-item.md +60 -15
  54. package/docs/eo-dynamic-form-item.react.md +186 -0
  55. package/docs/eo-form-item.md +194 -0
  56. package/docs/eo-form-item.react.md +163 -0
  57. package/docs/eo-form.md +144 -3
  58. package/docs/eo-form.react.md +330 -0
  59. package/docs/eo-icon-select.md +80 -1
  60. package/docs/eo-icon-select.react.md +97 -0
  61. package/docs/eo-input.md +147 -22
  62. package/docs/eo-input.react.md +275 -0
  63. package/docs/eo-radio.md +145 -8
  64. package/docs/eo-radio.react.md +492 -0
  65. package/docs/eo-search.md +94 -1
  66. package/docs/eo-search.react.md +122 -0
  67. package/docs/eo-select.md +157 -9
  68. package/docs/eo-select.react.md +411 -0
  69. package/docs/eo-submit-buttons.md +120 -7
  70. package/docs/eo-submit-buttons.react.md +129 -0
  71. package/docs/eo-switch.md +57 -3
  72. package/docs/eo-switch.react.md +136 -0
  73. package/docs/eo-textarea.md +101 -22
  74. package/docs/eo-textarea.react.md +193 -0
  75. package/docs/eo-time-picker.md +70 -42
  76. package/docs/eo-time-picker.react.md +106 -0
  77. package/docs/eo-time-range-picker.md +89 -35
  78. package/docs/eo-time-range-picker.react.md +163 -0
  79. package/docs/eo-upload-file.md +101 -9
  80. package/docs/eo-upload-file.react.md +126 -0
  81. package/docs/eo-upload-image.md +70 -6
  82. package/docs/eo-upload-image.react.md +92 -0
  83. package/package.json +2 -2
  84. package/dist/chunks/845.c8b5b1e8.js +0 -3
  85. package/dist/chunks/845.c8b5b1e8.js.map +0 -1
  86. package/dist/chunks/9949.753e2720.js.map +0 -1
  87. package/dist/chunks/eo-icon-select.6ea15888.js +0 -3
  88. package/dist/chunks/eo-icon-select.6ea15888.js.map +0 -1
  89. package/dist/index.7917bac6.js +0 -2
  90. /package/dist/chunks/{845.c8b5b1e8.js.LICENSE.txt → 845.2f598dd9.js.LICENSE.txt} +0 -0
  91. /package/dist/chunks/{9949.753e2720.js.LICENSE.txt → 9949.3d28a915.js.LICENSE.txt} +0 -0
  92. /package/dist/chunks/{eo-icon-select.6ea15888.js.LICENSE.txt → eo-icon-select.6a7f7e12.js.LICENSE.txt} +0 -0
@@ -1,56 +1,53 @@
1
- 构件 `eo-time-picker`
1
+ ---
2
+ tagName: eo-time-picker
3
+ displayName: WrappedEoTimePicker
4
+ description: 时间选择器
5
+ category: form-input-basic
6
+ source: "@next-bricks/form"
7
+ ---
8
+
9
+ # eo-time-picker
10
+
11
+ > 时间选择器
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ----------- | -------------------------- | ---- | ------ | ----------------------------------------------------------------------------------------------- |
17
+ | name | `string` | 否 | - | 时间选择器字段名 |
18
+ | label | `string` | 否 | - | 时间选择器说明 |
19
+ | value | `string` | 否 | - | 时间选择器的初始值 |
20
+ | placeholder | `string` | 否 | - | 时间选择器占位说明 |
21
+ | message | `Record<string, string>` | 否 | - | 校验文本信息 |
22
+ | disabled | `boolean` | 否 | - | 是否禁用 |
23
+ | required | `boolean` | 否 | - | 是否必填 |
24
+ | configProps | `Partial<TimePickerProps>` | 否 | - | 透传 antd TimePicker 属性,详见 [timePickerProps](https://ant.design/components/time-picker-cn) |
25
+
26
+ ## Events
27
+
28
+ | 事件 | detail | 说明 |
29
+ | ------ | --------------------------------------- | ------------------------------ |
30
+ | change | `string` — 格式化后的时间字符串 | 时间变化时触发 |
31
+ | open | `string` — 面板打开时的当前时间值字符串 | 面板打开时触发,传出当前时间值 |
32
+ | close | `string` — 面板关闭时的当前时间值字符串 | 面板关闭时触发,传出当前时间值 |
2
33
 
3
34
  ## Examples
4
35
 
5
36
  ### Basic
6
37
 
38
+ 展示时间选择器的基本用法,包含初始值和占位说明。
39
+
7
40
  ```yaml preview minHeight="400px"
8
41
  - brick: eo-time-picker
9
42
  properties:
10
- label: time
43
+ label: 时间
11
44
  placeholder: 选择时间
12
45
  value: "12:30:01"
13
46
  ```
14
47
 
15
- ### 国际化
16
-
17
- ```yaml preview minHeight="400px"
18
- - brick: div
19
- properties:
20
- style:
21
- display: grid
22
- gap: 1em
23
- children:
24
- - brick: eo-time-picker
25
- - brick: eo-button
26
- properties:
27
- textContent: 中文
28
- events:
29
- click:
30
- useProvider: basic.change-language
31
- args:
32
- - zh
33
- callback:
34
- success:
35
- action: message.success
36
- args:
37
- - '<% I18N_TEXT({ zh: "你好", "en": "Hello" }) %>'
38
- - brick: eo-button
39
- properties:
40
- textContent: English
41
- events:
42
- click:
43
- useProvider: basic.change-language
44
- args:
45
- - en
46
- callback:
47
- success:
48
- action: message.success
49
- args:
50
- - '<% I18N_TEXT({ zh: "你好", "en": "Hello" }) %>'
51
- ```
48
+ ### 事件监听
52
49
 
53
- ### event
50
+ 展示监听 change、open、close 事件的用法。
54
51
 
55
52
  ```yaml preview minHeight="400px"
56
53
  - brick: eo-time-picker
@@ -62,11 +59,40 @@
62
59
  close:
63
60
  action: console.log
64
61
  properties:
65
- label: time
62
+ label: 时间
66
63
  placeholder: 选择时间
67
64
  ```
68
65
 
69
- ### With Form
66
+ ### 透传 antd 属性
67
+
68
+ 通过 configProps 透传 antd TimePicker 属性,自定义时间格式等配置。
69
+
70
+ ```yaml preview minHeight="400px"
71
+ - brick: eo-time-picker
72
+ properties:
73
+ label: 时间(时分)
74
+ placeholder: 选择时间
75
+ configProps:
76
+ format: "HH:mm"
77
+ allowClear: true
78
+ ```
79
+
80
+ ### 禁用状态
81
+
82
+ 展示禁用状态下时间选择器的效果。
83
+
84
+ ```yaml preview minHeight="400px"
85
+ - brick: eo-time-picker
86
+ properties:
87
+ label: 时间
88
+ disabled: true
89
+ value: "09:00:00"
90
+ placeholder: 已禁用
91
+ ```
92
+
93
+ ### 表单集成
94
+
95
+ 在表单中使用时间选择器,支持 label、name、required 及自定义校验信息。
70
96
 
71
97
  ```yaml preview minHeight="400px"
72
98
  - brick: eo-form
@@ -81,5 +107,7 @@
81
107
  label: 时间
82
108
  name: time
83
109
  required: true
110
+ message:
111
+ required: 请选择时间
84
112
  - brick: eo-submit-buttons
85
113
  ```
@@ -0,0 +1,106 @@
1
+ ---
2
+ tagName: eo-time-picker
3
+ displayName: WrappedEoTimePicker
4
+ description: 时间选择器
5
+ category: form-input-basic
6
+ source: "@next-bricks/form"
7
+ ---
8
+
9
+ # WrappedEoTimePicker
10
+
11
+ > 时间选择器
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedEoTimePicker } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ----------- | -------------------------- | ---- | ------ | ----------------------------------------------------------------------------------------------- |
23
+ | name | `string` | 否 | - | 时间选择器字段名 |
24
+ | label | `string` | 否 | - | 时间选择器说明 |
25
+ | value | `string` | 否 | - | 时间选择器的初始值 |
26
+ | placeholder | `string` | 否 | - | 时间选择器占位说明 |
27
+ | message | `Record<string, string>` | 否 | - | 校验文本信息 |
28
+ | disabled | `boolean` | 否 | - | 是否禁用 |
29
+ | required | `boolean` | 否 | - | 是否必填 |
30
+ | configProps | `Partial<TimePickerProps>` | 否 | - | 透传 antd TimePicker 属性,详见 [timePickerProps](https://ant.design/components/time-picker-cn) |
31
+
32
+ ## Events
33
+
34
+ | 事件 | detail | 说明 |
35
+ | -------- | --------------------------------------- | ------------------------------ |
36
+ | onChange | `string` — 格式化后的时间字符串 | 时间变化时触发 |
37
+ | onOpen | `string` — 面板打开时的当前时间值字符串 | 面板打开时触发,传出当前时间值 |
38
+ | onClose | `string` — 面板关闭时的当前时间值字符串 | 面板关闭时触发,传出当前时间值 |
39
+
40
+ ## Examples
41
+
42
+ ### Basic
43
+
44
+ 展示时间选择器的基本用法,包含初始值和占位说明。
45
+
46
+ ```tsx
47
+ <WrappedEoTimePicker label="时间" placeholder="选择时间" value="12:30:01" />
48
+ ```
49
+
50
+ ### 事件监听
51
+
52
+ 展示监听 change、open、close 事件的用法。
53
+
54
+ ```tsx
55
+ <WrappedEoTimePicker
56
+ label="时间"
57
+ placeholder="选择时间"
58
+ onChange={(e) => console.log(e.detail)}
59
+ onOpen={(e) => console.log(e.detail)}
60
+ onClose={(e) => console.log(e.detail)}
61
+ />
62
+ ```
63
+
64
+ ### 透传 antd 属性
65
+
66
+ 通过 configProps 透传 antd TimePicker 属性,自定义时间格式等配置。
67
+
68
+ ```tsx
69
+ <WrappedEoTimePicker
70
+ label="时间(时分)"
71
+ placeholder="选择时间"
72
+ configProps={{ format: "HH:mm", allowClear: true }}
73
+ />
74
+ ```
75
+
76
+ ### 禁用状态
77
+
78
+ 展示禁用状态下时间选择器的效果。
79
+
80
+ ```tsx
81
+ <WrappedEoTimePicker
82
+ label="时间"
83
+ disabled={true}
84
+ value="09:00:00"
85
+ placeholder="已禁用"
86
+ />
87
+ ```
88
+
89
+ ### 表单集成
90
+
91
+ 在表单中使用时间选择器,支持 label、name、required 及自定义校验信息。
92
+
93
+ ```tsx
94
+ <WrappedEoForm
95
+ onValidateSuccess={(e) => console.log(e.detail)}
96
+ onValuesChange={(e) => console.log(e.detail)}
97
+ >
98
+ <WrappedEoTimePicker
99
+ label="时间"
100
+ name="time"
101
+ required={true}
102
+ message={{ required: "请选择时间" }}
103
+ />
104
+ <WrappedEoSubmitButtons />
105
+ </WrappedEoForm>
106
+ ```
@@ -1,17 +1,53 @@
1
- 构件 `eo-time-range-picker`
1
+ ---
2
+ tagName: eo-time-range-picker
3
+ displayName: WrappedEoTimeRangePicker
4
+ description: 时间区间选择器
5
+ category: form-input-basic
6
+ source: "@next-bricks/form"
7
+ ---
8
+
9
+ # eo-time-range-picker
10
+
11
+ > 时间区间选择器
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ---------------- | --------------------------------------- | ---- | ------ | ---------------------------------------------------------------------------------------------------------- |
17
+ | name | `string` | 否 | - | 时间段选择器字段名 |
18
+ | label | `string` | 否 | - | 时间段选择器说明 |
19
+ | value | `TimeRange` | 否 | - | 时间段选择器的初始值,格式为 `{ startTime, endTime }` |
20
+ | required | `boolean` | 否 | - | 是否必填 |
21
+ | rangeType | `RangeType` | 否 | - | 时间段类型,可选值:`time` \| `hmTime` \| `date` \| `dateTime` \| `week` \| `month` \| `quarter` \| `year` |
22
+ | placeholder | `string \| [string, string]` | 否 | - | 输入框提示文字,单时间段时为 `string`,范围时间段时为 `[string, string]` |
23
+ | inputStyle | `React.CSSProperties` | 否 | - | 输入框样式 |
24
+ | selectNearDays | `number` | 否 | - | 仅在 `rangeType` 为 `date` 或 `dateTime` 时生效,限制只能选择最近 n 天(当前时间向前 n 天) |
25
+ | emitChangeOnInit | `boolean` | 否 | `true` | 是否在初始化完成后额外触发一次 change 事件。默认为 `true` 以兼容历史行为。 |
26
+ | presetRanges | `presetRangeType[]` | 否 | - | 预设时间范围快捷选择。设置了 `selectNearDays` 时不生效;不同 `rangeType` 下可选值有限制。 |
27
+ | validator | `(value: any) => MessageBody \| string` | 否 | - | 自定义校验函数,返回错误信息字符串或 MessageBody 对象,返回空字符串表示校验通过。 |
28
+
29
+ ## Events
30
+
31
+ | 事件 | detail | 说明 |
32
+ | ------ | -------------------------------------------------------------------- | ---------------- |
33
+ | change | `TimeRange` — { startTime: 开始时间字符串, endTime: 结束时间字符串 } | 时间段变化时触发 |
2
34
 
3
35
  ## Examples
4
36
 
5
37
  ### Basic
6
38
 
39
+ 展示时间区间选择器的基本用法。
40
+
7
41
  ```yaml preview minHeight="400px"
8
42
  - brick: eo-time-range-picker
9
43
  properties:
10
- label: hello
44
+ label: 时间段
11
45
  name: time
12
46
  ```
13
47
 
14
- ### rangeType
48
+ ### 区间类型
49
+
50
+ 通过 rangeType 属性切换不同的时间段类型(时间/日期/日期时间/周/月/季度/年)。
15
51
 
16
52
  ```yaml preview minHeight="400px"
17
53
  - brick: eo-radio
@@ -32,18 +68,20 @@
32
68
  rangeType: <% EVENT.detail.value %>
33
69
  - brick: eo-time-range-picker
34
70
  properties:
35
- label: hello
71
+ label: 时间段
36
72
  name: time
37
73
  id: rangePicker
38
74
  rangeType: date
39
75
  ```
40
76
 
41
- ### presetRanges
77
+ ### 预设时间范围
78
+
79
+ 通过 presetRanges 属性设置快捷选择按钮,方便用户快速选择常用时间段。
42
80
 
43
81
  ```yaml preview minHeight="400px"
44
82
  - brick: eo-time-range-picker
45
83
  properties:
46
- label: hello
84
+ label: 时间段
47
85
  name: time
48
86
  rangeType: week
49
87
  required: true
@@ -54,13 +92,49 @@
54
92
  - 今年
55
93
  ```
56
94
 
57
- ### validate
95
+ ### 最近 N 天
96
+
97
+ 通过 selectNearDays 属性限制只能选择最近 n 天范围内的日期(rangeType 为 date 或 dateTime 时有效)。
98
+
99
+ ```yaml preview minHeight="400px"
100
+ - brick: eo-time-range-picker
101
+ events:
102
+ change:
103
+ action: console.log
104
+ properties:
105
+ label: 最近 10 天
106
+ name: time
107
+ selectNearDays: 10
108
+ rangeType: date
109
+ ```
110
+
111
+ ### 初始值与输入框样式
112
+
113
+ 通过 value 设置初始时间段,通过 inputStyle 自定义输入框样式。
114
+
115
+ ```yaml preview minHeight="400px"
116
+ - brick: eo-time-range-picker
117
+ properties:
118
+ label: 时间段
119
+ name: time
120
+ rangeType: date
121
+ value:
122
+ startTime: "2024-01-01"
123
+ endTime: "2024-01-31"
124
+ inputStyle:
125
+ width: 300px
126
+ placeholder:
127
+ - 开始日期
128
+ - 结束日期
129
+ ```
130
+
131
+ ### 自定义校验
132
+
133
+ 通过 validator 属性自定义校验逻辑,返回错误信息时显示校验失败。
58
134
 
59
135
  ```yaml preview minHeight="400px"
60
136
  - brick: eo-form
61
137
  events:
62
- values.change:
63
- - action: console.log
64
138
  validate.success:
65
139
  - action: message.success
66
140
  args:
@@ -77,37 +151,17 @@
77
151
  change:
78
152
  action: console.log
79
153
  properties:
80
- label: hello
154
+ label: 时间段
81
155
  name: time
82
156
  required: true
157
+ emitChangeOnInit: false
158
+ validator: "<% (value) => value && value.startTime && value.endTime ? '' : '请选择完整的时间段' %>"
83
159
  - brick: eo-submit-buttons
84
160
  ```
85
161
 
86
- ### selectNearDays
87
-
88
- ```yaml preview minHeight="400px"
89
- - brick: eo-time-range-picker
90
- events:
91
- - action: console.log
92
- properties:
93
- label: hello
94
- name: time
95
- selectNearDays: 10
96
- rangeType: date
97
- ```
98
-
99
- ### Events
100
-
101
- ```yaml preview minHeight="400px"
102
- - brick: eo-time-range-picker
103
- events:
104
- - action: console.log
105
- properties:
106
- label: hello
107
- name: time
108
- ```
162
+ ### 表单集成
109
163
 
110
- ### With Form
164
+ 在表单中使用时间区间选择器,结合 name、label、required 进行完整的表单提交。
111
165
 
112
166
  ```yaml preview minHeight="400px"
113
167
  - brick: eo-form
@@ -119,7 +173,7 @@
119
173
  children:
120
174
  - brick: eo-time-range-picker
121
175
  properties:
122
- label: 时间
176
+ label: 时间段
123
177
  name: time
124
178
  required: true
125
179
  - brick: eo-submit-buttons
@@ -0,0 +1,163 @@
1
+ ---
2
+ tagName: eo-time-range-picker
3
+ displayName: WrappedEoTimeRangePicker
4
+ description: 时间区间选择器
5
+ category: form-input-basic
6
+ source: "@next-bricks/form"
7
+ ---
8
+
9
+ # WrappedEoTimeRangePicker
10
+
11
+ > 时间区间选择器
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedEoTimeRangePicker } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ---------------- | --------------------------------------- | ---- | ------ | ---------------------------------------------------------------------------------------------------------- |
23
+ | name | `string` | 否 | - | 时间段选择器字段名 |
24
+ | label | `string` | 否 | - | 时间段选择器说明 |
25
+ | value | `TimeRange` | 否 | - | 时间段选择器的初始值,格式为 `{ startTime, endTime }` |
26
+ | required | `boolean` | 否 | - | 是否必填 |
27
+ | rangeType | `RangeType` | 否 | - | 时间段类型,可选值:`time` \| `hmTime` \| `date` \| `dateTime` \| `week` \| `month` \| `quarter` \| `year` |
28
+ | placeholder | `string \| [string, string]` | 否 | - | 输入框提示文字,单时间段时为 `string`,范围时间段时为 `[string, string]` |
29
+ | inputStyle | `React.CSSProperties` | 否 | - | 输入框样式 |
30
+ | selectNearDays | `number` | 否 | - | 仅在 `rangeType` 为 `date` 或 `dateTime` 时生效,限制只能选择最近 n 天(当前时间向前 n 天) |
31
+ | emitChangeOnInit | `boolean` | 否 | `true` | 是否在初始化完成后额外触发一次 change 事件。默认为 `true` 以兼容历史行为。 |
32
+ | presetRanges | `presetRangeType[]` | 否 | - | 预设时间范围快捷选择。设置了 `selectNearDays` 时不生效;不同 `rangeType` 下可选值有限制。 |
33
+ | validator | `(value: any) => MessageBody \| string` | 否 | - | 自定义校验函数,返回错误信息字符串或 MessageBody 对象,返回空字符串表示校验通过。 |
34
+
35
+ ## Events
36
+
37
+ | 事件 | detail | 说明 |
38
+ | -------- | -------------------------------------------------------------------- | ---------------- |
39
+ | onChange | `TimeRange` — { startTime: 开始时间字符串, endTime: 结束时间字符串 } | 时间段变化时触发 |
40
+
41
+ ## Examples
42
+
43
+ ### Basic
44
+
45
+ 展示时间区间选择器的基本用法。
46
+
47
+ ```tsx
48
+ <WrappedEoTimeRangePicker label="时间段" name="time" />
49
+ ```
50
+
51
+ ### 区间类型
52
+
53
+ 通过 rangeType 属性切换不同的时间段类型(时间/日期/日期时间/周/月/季度/年)。
54
+
55
+ ```tsx
56
+ import { useState } from "react";
57
+
58
+ function Demo() {
59
+ const [rangeType, setRangeType] = useState("date");
60
+ return (
61
+ <>
62
+ <WrappedEoRadio
63
+ options={[
64
+ "time",
65
+ "date",
66
+ "dateTime",
67
+ "hmTime",
68
+ "week",
69
+ "month",
70
+ "quarter",
71
+ "year",
72
+ ]}
73
+ onChange={(e) => setRangeType(e.detail.value)}
74
+ />
75
+ <WrappedEoTimeRangePicker
76
+ label="时间段"
77
+ name="time"
78
+ rangeType={rangeType}
79
+ />
80
+ </>
81
+ );
82
+ }
83
+ ```
84
+
85
+ ### 预设时间范围
86
+
87
+ 通过 presetRanges 属性设置快捷选择按钮,方便用户快速选择常用时间段。
88
+
89
+ ```tsx
90
+ <WrappedEoTimeRangePicker
91
+ label="时间段"
92
+ name="time"
93
+ rangeType="week"
94
+ required={true}
95
+ presetRanges={["本周", "本月", "本季度", "今年"]}
96
+ />
97
+ ```
98
+
99
+ ### 最近 N 天
100
+
101
+ 通过 selectNearDays 属性限制只能选择最近 n 天范围内的日期(rangeType 为 date 或 dateTime 时有效)。
102
+
103
+ ```tsx
104
+ <WrappedEoTimeRangePicker
105
+ label="最近 10 天"
106
+ name="time"
107
+ selectNearDays={10}
108
+ rangeType="date"
109
+ onChange={(e) => console.log(e.detail)}
110
+ />
111
+ ```
112
+
113
+ ### 初始值与输入框样式
114
+
115
+ 通过 value 设置初始时间段,通过 inputStyle 自定义输入框样式。
116
+
117
+ ```tsx
118
+ <WrappedEoTimeRangePicker
119
+ label="时间段"
120
+ name="time"
121
+ rangeType="date"
122
+ value={{ startTime: "2024-01-01", endTime: "2024-01-31" }}
123
+ inputStyle={{ width: 300 }}
124
+ placeholder={["开始日期", "结束日期"]}
125
+ />
126
+ ```
127
+
128
+ ### 自定义校验
129
+
130
+ 通过 validator 属性自定义校验逻辑,返回错误信息时显示校验失败。
131
+
132
+ ```tsx
133
+ <WrappedEoForm
134
+ onValidateSuccess={() => alert("表单提交成功")}
135
+ onValidateError={() => alert("表单校验失败")}
136
+ >
137
+ <WrappedEoTimeRangePicker
138
+ label="时间段"
139
+ name="time"
140
+ required={true}
141
+ emitChangeOnInit={false}
142
+ validator={(value) =>
143
+ value && value.startTime && value.endTime ? "" : "请选择完整的时间段"
144
+ }
145
+ onChange={(e) => console.log(e.detail)}
146
+ />
147
+ <WrappedEoSubmitButtons />
148
+ </WrappedEoForm>
149
+ ```
150
+
151
+ ### 表单集成
152
+
153
+ 在表单中使用时间区间选择器,结合 name、label、required 进行完整的表单提交。
154
+
155
+ ```tsx
156
+ <WrappedEoForm
157
+ onValidateSuccess={(e) => console.log(e.detail)}
158
+ onValuesChange={(e) => console.log(e.detail)}
159
+ >
160
+ <WrappedEoTimeRangePicker label="时间段" name="time" required={true} />
161
+ <WrappedEoSubmitButtons />
162
+ </WrappedEoForm>
163
+ ```