@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.
- package/dist/bricks.json +35 -35
- package/dist/chunks/2537.be4cf82c.js.map +1 -1
- package/dist/chunks/845.2f598dd9.js +3 -0
- package/dist/chunks/845.2f598dd9.js.map +1 -0
- package/dist/chunks/{9949.753e2720.js → 9949.3d28a915.js} +3 -3
- package/dist/chunks/9949.3d28a915.js.map +1 -0
- package/dist/chunks/eo-auto-complete.0ed854e4.js.map +1 -1
- package/dist/chunks/eo-checkbox.2d0a8dbc.js.map +1 -1
- package/dist/chunks/eo-color-picker.ecf0c4c0.js.map +1 -1
- package/dist/chunks/eo-date-picker.faa60507.js.map +1 -1
- package/dist/chunks/eo-dynamic-form-item.aa5f7d9e.js.map +1 -1
- package/dist/chunks/eo-form.9db78cdb.js.map +1 -1
- package/dist/chunks/eo-icon-select.6a7f7e12.js +3 -0
- package/dist/chunks/eo-icon-select.6a7f7e12.js.map +1 -0
- package/dist/chunks/eo-radio.b2ed57db.js.map +1 -1
- package/dist/chunks/eo-search.206dd65e.js.map +1 -1
- package/dist/chunks/eo-select.cd00c791.js.map +1 -1
- package/dist/chunks/eo-switch.f0a27c08.js.map +1 -1
- package/dist/chunks/eo-textarea.405851dd.js.map +1 -1
- package/dist/chunks/eo-time-picker.46e7a667.js.map +1 -1
- package/dist/chunks/eo-time-range-picker.5afbad69.js.map +1 -1
- package/dist/chunks/eo-upload-file.27a4288d.js.map +1 -1
- package/dist/chunks/eo-upload-image.b43c2329.js.map +1 -1
- package/dist/chunks/{main.8c394d3e.js → main.59f7a796.js} +2 -2
- package/dist/chunks/{main.8c394d3e.js.map → main.59f7a796.js.map} +1 -1
- package/dist/examples.json +27 -24
- package/dist/index.2c92cf90.js +2 -0
- package/dist/{index.7917bac6.js.map → index.2c92cf90.js.map} +1 -1
- package/dist/manifest.json +451 -385
- package/dist/types.json +2699 -2649
- package/dist-types/auto-complete/index.d.ts +4 -0
- package/dist-types/checkbox/index.d.ts +2 -2
- package/dist-types/color-picker/index.d.ts +2 -1
- package/dist-types/date-picker/index.d.ts +1 -1
- package/dist-types/form/index.d.ts +16 -1
- package/dist-types/form-item/index.d.ts +31 -2
- package/dist-types/general-switch/index.d.ts +1 -1
- package/dist-types/icon-select/index.d.ts +1 -1
- package/dist-types/input/index.d.ts +2 -2
- package/dist-types/radio/index.d.ts +4 -4
- package/dist-types/select/index.d.ts +1 -0
- package/dist-types/textarea/index.d.ts +1 -1
- package/dist-types/time-range-picker/index.d.ts +7 -4
- package/dist-types/upload/upload-file/index.d.ts +1 -1
- package/docs/eo-auto-complete.md +158 -8
- package/docs/eo-auto-complete.react.md +229 -0
- package/docs/eo-checkbox.md +107 -4
- package/docs/eo-checkbox.react.md +369 -0
- package/docs/eo-color-picker.md +102 -22
- package/docs/eo-color-picker.react.md +160 -0
- package/docs/eo-date-picker.md +82 -50
- package/docs/eo-date-picker.react.md +146 -0
- package/docs/eo-dynamic-form-item.md +60 -15
- package/docs/eo-dynamic-form-item.react.md +186 -0
- package/docs/eo-form-item.md +194 -0
- package/docs/eo-form-item.react.md +163 -0
- package/docs/eo-form.md +144 -3
- package/docs/eo-form.react.md +330 -0
- package/docs/eo-icon-select.md +80 -1
- package/docs/eo-icon-select.react.md +97 -0
- package/docs/eo-input.md +147 -22
- package/docs/eo-input.react.md +275 -0
- package/docs/eo-radio.md +145 -8
- package/docs/eo-radio.react.md +492 -0
- package/docs/eo-search.md +94 -1
- package/docs/eo-search.react.md +122 -0
- package/docs/eo-select.md +157 -9
- package/docs/eo-select.react.md +411 -0
- package/docs/eo-submit-buttons.md +120 -7
- package/docs/eo-submit-buttons.react.md +129 -0
- package/docs/eo-switch.md +57 -3
- package/docs/eo-switch.react.md +136 -0
- package/docs/eo-textarea.md +101 -22
- package/docs/eo-textarea.react.md +193 -0
- package/docs/eo-time-picker.md +70 -42
- package/docs/eo-time-picker.react.md +106 -0
- package/docs/eo-time-range-picker.md +89 -35
- package/docs/eo-time-range-picker.react.md +163 -0
- package/docs/eo-upload-file.md +101 -9
- package/docs/eo-upload-file.react.md +126 -0
- package/docs/eo-upload-image.md +70 -6
- package/docs/eo-upload-image.react.md +92 -0
- package/package.json +2 -2
- package/dist/chunks/845.c8b5b1e8.js +0 -3
- package/dist/chunks/845.c8b5b1e8.js.map +0 -1
- package/dist/chunks/9949.753e2720.js.map +0 -1
- package/dist/chunks/eo-icon-select.6ea15888.js +0 -3
- package/dist/chunks/eo-icon-select.6ea15888.js.map +0 -1
- package/dist/index.7917bac6.js +0 -2
- /package/dist/chunks/{845.c8b5b1e8.js.LICENSE.txt → 845.2f598dd9.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9949.753e2720.js.LICENSE.txt → 9949.3d28a915.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-icon-select.6ea15888.js.LICENSE.txt → eo-icon-select.6a7f7e12.js.LICENSE.txt} +0 -0
package/docs/eo-time-picker.md
CHANGED
|
@@ -1,56 +1,53 @@
|
|
|
1
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
62
|
+
label: 时间
|
|
66
63
|
placeholder: 选择时间
|
|
67
64
|
```
|
|
68
65
|
|
|
69
|
-
###
|
|
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
|
-
|
|
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:
|
|
44
|
+
label: 时间段
|
|
11
45
|
name: time
|
|
12
46
|
```
|
|
13
47
|
|
|
14
|
-
###
|
|
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:
|
|
71
|
+
label: 时间段
|
|
36
72
|
name: time
|
|
37
73
|
id: rangePicker
|
|
38
74
|
rangeType: date
|
|
39
75
|
```
|
|
40
76
|
|
|
41
|
-
###
|
|
77
|
+
### 预设时间范围
|
|
78
|
+
|
|
79
|
+
通过 presetRanges 属性设置快捷选择按钮,方便用户快速选择常用时间段。
|
|
42
80
|
|
|
43
81
|
```yaml preview minHeight="400px"
|
|
44
82
|
- brick: eo-time-range-picker
|
|
45
83
|
properties:
|
|
46
|
-
label:
|
|
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
|
-
###
|
|
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:
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
+
```
|