@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
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-color-picker
|
|
3
|
+
displayName: WrappedEoColorPicker
|
|
4
|
+
description: 颜色选择器
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoColorPicker
|
|
10
|
+
|
|
11
|
+
> 颜色选择器
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoColorPicker } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------ | -------------------------------- | ---- | -------- | ------------------------------------------------------------------------------------------------ |
|
|
23
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
24
|
+
| label | `string` | 否 | - | 字段说明 |
|
|
25
|
+
| value | `string` | 否 | - | 值 |
|
|
26
|
+
| defaultValue | `string \| Color` | 否 | - | 颜色默认的值 |
|
|
27
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
28
|
+
| allowClear | `boolean` | 否 | - | 允许清除选择的颜色 |
|
|
29
|
+
| size | `"small" \| "middle" \| "large"` | 否 | `middle` | 设置触发器大小 |
|
|
30
|
+
| showText | `boolean` | 否 | - | 显示颜色文本 |
|
|
31
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
32
|
+
| format | `"rgb" \| "hex" \| "hsb"` | 否 | `hex` | 颜色格式 |
|
|
33
|
+
| configProps | `Partial<ColorPickerProps>` | 否 | - | 透传 antd ColorPicker 属性 [ColorPickerProps](https://ant.design/components/color-picker-cn#api) |
|
|
34
|
+
|
|
35
|
+
## Events
|
|
36
|
+
|
|
37
|
+
| 事件 | detail | 说明 |
|
|
38
|
+
| -------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------ |
|
|
39
|
+
| onChange | `string \| undefined` — 选中的颜色值,格式由 format 属性决定(hex/rgb/hsb),清除时为 undefined | 颜色变化事件, 返回值格式和`format`格式一致 |
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
### Basic
|
|
44
|
+
|
|
45
|
+
基础用法,选择颜色后通过 onChange 事件获取颜色值。
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
<WrappedEoColorPicker onChange={(e) => console.log(e.detail)} />
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Size
|
|
52
|
+
|
|
53
|
+
通过 size 属性设置颜色选择器触发器的尺寸大小。
|
|
54
|
+
|
|
55
|
+
```tsx
|
|
56
|
+
<WrappedEoFlexLayout justifyContent="start" gap="20px">
|
|
57
|
+
<WrappedEoColorPicker size="small" value="#ff4d4f" />
|
|
58
|
+
<WrappedEoColorPicker size="middle" value="#36b545" />
|
|
59
|
+
<WrappedEoColorPicker size="large" value="#1677ff" />
|
|
60
|
+
</WrappedEoFlexLayout>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### ShowText
|
|
64
|
+
|
|
65
|
+
设置 showText 为 true,在颜色选择器旁边显示当前颜色的文本值。
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
<WrappedEoColorPicker
|
|
69
|
+
showText={true}
|
|
70
|
+
value="#1677ff"
|
|
71
|
+
onChange={(e) => console.log(e.detail)}
|
|
72
|
+
/>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### AllowClear
|
|
76
|
+
|
|
77
|
+
设置 allowClear 为 true,允许用户清除已选颜色;结合 defaultValue 设置初始颜色。
|
|
78
|
+
|
|
79
|
+
```tsx
|
|
80
|
+
<WrappedEoColorPicker
|
|
81
|
+
allowClear={true}
|
|
82
|
+
defaultValue="#f5a623"
|
|
83
|
+
onChange={(e) => console.log(e.detail)}
|
|
84
|
+
/>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Formats
|
|
88
|
+
|
|
89
|
+
通过 format 属性控制颜色输出格式,支持 hex、rgb 和 hsb 三种格式。
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<WrappedEoFlexLayout justifyContent="start" gap="20px">
|
|
93
|
+
<WrappedEoColorPicker format="hex" value="#FCFA0E" showText={true} />
|
|
94
|
+
<WrappedEoColorPicker
|
|
95
|
+
format="rgb"
|
|
96
|
+
value="rgb(80, 227, 194)"
|
|
97
|
+
showText={true}
|
|
98
|
+
/>
|
|
99
|
+
<WrappedEoColorPicker
|
|
100
|
+
format="hsb"
|
|
101
|
+
value="hsb(215, 91%, 100%)"
|
|
102
|
+
showText={true}
|
|
103
|
+
/>
|
|
104
|
+
</WrappedEoFlexLayout>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Disabled
|
|
108
|
+
|
|
109
|
+
设置 disabled 为 true 禁用颜色选择器,用户无法进行交互。
|
|
110
|
+
|
|
111
|
+
```tsx
|
|
112
|
+
<WrappedEoColorPicker disabled={true} value="#1677ff" showText={true} />
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### ConfigProps
|
|
116
|
+
|
|
117
|
+
通过 configProps 透传 antd ColorPicker 的高级属性,例如设置预设颜色。
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
<WrappedEoColorPicker
|
|
121
|
+
showText={true}
|
|
122
|
+
configProps={{
|
|
123
|
+
presets: [
|
|
124
|
+
{
|
|
125
|
+
label: "推荐颜色",
|
|
126
|
+
colors: [
|
|
127
|
+
"#F5222D",
|
|
128
|
+
"#FA8C16",
|
|
129
|
+
"#FADB14",
|
|
130
|
+
"#52C41A",
|
|
131
|
+
"#1677FF",
|
|
132
|
+
"#722ED1",
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
}}
|
|
137
|
+
onChange={(e) => console.log(e.detail)}
|
|
138
|
+
/>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### With Form
|
|
142
|
+
|
|
143
|
+
在表单中使用颜色选择器,配合 name、label、required 进行表单校验。
|
|
144
|
+
|
|
145
|
+
```tsx
|
|
146
|
+
<WrappedEoForm
|
|
147
|
+
onValidateSuccess={(e) => console.log(e.detail)}
|
|
148
|
+
onValidateError={(e) => console.log(e.detail)}
|
|
149
|
+
>
|
|
150
|
+
<WrappedEoColorPicker
|
|
151
|
+
name="color"
|
|
152
|
+
label="颜色"
|
|
153
|
+
required={true}
|
|
154
|
+
defaultValue="#1677FF"
|
|
155
|
+
showText={true}
|
|
156
|
+
onChange={(e) => console.log(e.detail)}
|
|
157
|
+
/>
|
|
158
|
+
<WrappedEoSubmitButtons />
|
|
159
|
+
</WrappedEoForm>
|
|
160
|
+
```
|
package/docs/eo-date-picker.md
CHANGED
|
@@ -1,14 +1,72 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-date-picker
|
|
3
|
+
displayName: WrappedEoDatePicker
|
|
4
|
+
description: 日期选择器
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-date-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
|
+
| showTime | `boolean` | 否 | - | 是否显示时间,当设为 `true` 时,请同时设置 `format` 为 `YYYY-MM-DD HH:mm:ss` |
|
|
25
|
+
| format | `string` | 否 | - | 显示预览的格式,具体配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) |
|
|
26
|
+
| picker | `PickerMode` | 否 | - | 设置选择器类型,可选值:`date` \| `week` \| `month` \| `quarter` \| `year` |
|
|
27
|
+
| futureDateDisabled | `boolean` | 否 | - | 不可选择未来日期,优先级高于 `disabledDate` |
|
|
28
|
+
| disabledDate | `DisabledDateType` | 否 | - | 不可选择的日期 |
|
|
29
|
+
| useFastSelectBtn | `boolean` | 否 | - | 启用快速切换按钮,显示上一个/当前/下一个的快速选项 |
|
|
30
|
+
| inputStyle | `CSSProperties` | 否 | - | 输入框样式 |
|
|
31
|
+
|
|
32
|
+
## Events
|
|
33
|
+
|
|
34
|
+
| 事件 | detail | 说明 |
|
|
35
|
+
| ------ | ------------------------------- | ----------------------------------------- |
|
|
36
|
+
| change | `string` — 格式化后的日期字符串 | 日期变化时触发 |
|
|
37
|
+
| ok | `string` — 格式化后的日期字符串 | 点击确定按钮触发(showTime 为 true 使用) |
|
|
2
38
|
|
|
3
39
|
## Examples
|
|
4
40
|
|
|
5
41
|
### Basic
|
|
6
42
|
|
|
43
|
+
展示日期选择器的基本用法。
|
|
44
|
+
|
|
7
45
|
```yaml preview minHeight="450px"
|
|
8
46
|
- brick: eo-date-picker
|
|
9
47
|
```
|
|
10
48
|
|
|
11
|
-
###
|
|
49
|
+
### 日期时间选择
|
|
50
|
+
|
|
51
|
+
展示开启时间选择、指定格式并监听 ok 事件的用法。
|
|
52
|
+
|
|
53
|
+
```yaml preview minHeight="450px"
|
|
54
|
+
- brick: eo-date-picker
|
|
55
|
+
events:
|
|
56
|
+
ok:
|
|
57
|
+
action: console.log
|
|
58
|
+
change:
|
|
59
|
+
action: console.log
|
|
60
|
+
properties:
|
|
61
|
+
showTime: true
|
|
62
|
+
value: "2020-02-01 14:30:00"
|
|
63
|
+
format: "YYYY-MM-DD HH:mm:ss"
|
|
64
|
+
placeholder: 选择日期时间
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 选择器类型与快速切换
|
|
68
|
+
|
|
69
|
+
通过 picker 属性设置选择器类型(天/周/月/季度/年),并启用快速切换按钮;还可通过 inputStyle 自定义输入框宽度。
|
|
12
70
|
|
|
13
71
|
```yaml preview minHeight="550px"
|
|
14
72
|
- brick: eo-radio
|
|
@@ -29,61 +87,18 @@
|
|
|
29
87
|
value: quarter
|
|
30
88
|
- label: 年
|
|
31
89
|
value: year
|
|
32
|
-
- brick: div
|
|
33
|
-
properties:
|
|
34
|
-
style:
|
|
35
|
-
display: grid
|
|
36
|
-
gap: 1em
|
|
37
|
-
children:
|
|
38
|
-
- brick: eo-button
|
|
39
|
-
properties:
|
|
40
|
-
textContent: 中文
|
|
41
|
-
events:
|
|
42
|
-
click:
|
|
43
|
-
useProvider: basic.change-language
|
|
44
|
-
args:
|
|
45
|
-
- zh
|
|
46
|
-
callback:
|
|
47
|
-
success:
|
|
48
|
-
action: message.success
|
|
49
|
-
args:
|
|
50
|
-
- '<% I18N_TEXT({ zh: "你好", "en": "Hello" }) %>'
|
|
51
|
-
- brick: eo-button
|
|
52
|
-
properties:
|
|
53
|
-
textContent: English
|
|
54
|
-
events:
|
|
55
|
-
click:
|
|
56
|
-
useProvider: basic.change-language
|
|
57
|
-
args:
|
|
58
|
-
- en
|
|
59
|
-
callback:
|
|
60
|
-
success:
|
|
61
|
-
action: message.success
|
|
62
|
-
args:
|
|
63
|
-
- '<% I18N_TEXT({ zh: "你好", "en": "Hello" }) %>'
|
|
64
90
|
- brick: eo-date-picker
|
|
65
91
|
properties:
|
|
66
92
|
id: datePicker
|
|
67
93
|
useFastSelectBtn: true
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
### showTime
|
|
71
|
-
|
|
72
|
-
```yaml preview minHeight="450px"
|
|
73
|
-
- brick: eo-date-picker
|
|
74
|
-
events:
|
|
75
|
-
ok:
|
|
76
|
-
action: console.log
|
|
77
|
-
change:
|
|
78
|
-
action: console.log
|
|
79
|
-
properties:
|
|
80
|
-
showTime: true
|
|
81
|
-
value: "2020-02-01 14:30:00"
|
|
82
|
-
format: "YYYY-MM-DD HH:mm:ss"
|
|
94
|
+
inputStyle:
|
|
95
|
+
width: 200px
|
|
83
96
|
```
|
|
84
97
|
|
|
85
98
|
### 禁用日期
|
|
86
99
|
|
|
100
|
+
通过 disabledDate 禁止特定日期或时间段,通过 futureDateDisabled 禁止选择未来日期。
|
|
101
|
+
|
|
87
102
|
```yaml preview minHeight="450px"
|
|
88
103
|
- brick: eo-date-picker
|
|
89
104
|
events:
|
|
@@ -102,9 +117,24 @@
|
|
|
102
117
|
format: "YYYY-MM-DD HH:mm:ss"
|
|
103
118
|
showTime: true
|
|
104
119
|
value: "2019-10-01 00:00:00"
|
|
120
|
+
futureDateDisabled: true
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 禁用状态
|
|
124
|
+
|
|
125
|
+
展示禁用状态下日期选择器的效果。
|
|
126
|
+
|
|
127
|
+
```yaml preview minHeight="450px"
|
|
128
|
+
- brick: eo-date-picker
|
|
129
|
+
properties:
|
|
130
|
+
disabled: true
|
|
131
|
+
value: "2024-01-15"
|
|
132
|
+
placeholder: 已禁用
|
|
105
133
|
```
|
|
106
134
|
|
|
107
|
-
###
|
|
135
|
+
### 表单集成
|
|
136
|
+
|
|
137
|
+
在表单中使用日期选择器,支持 label、name、required 及自定义校验信息。
|
|
108
138
|
|
|
109
139
|
```yaml preview minHeight="450px"
|
|
110
140
|
- brick: eo-form
|
|
@@ -119,5 +149,7 @@
|
|
|
119
149
|
label: 日期
|
|
120
150
|
name: date
|
|
121
151
|
required: true
|
|
152
|
+
message:
|
|
153
|
+
required: 请选择日期
|
|
122
154
|
- brick: eo-submit-buttons
|
|
123
155
|
```
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-date-picker
|
|
3
|
+
displayName: WrappedEoDatePicker
|
|
4
|
+
description: 日期选择器
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoDatePicker
|
|
10
|
+
|
|
11
|
+
> 日期选择器
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoDatePicker } 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
|
+
| showTime | `boolean` | 否 | - | 是否显示时间,当设为 `true` 时,请同时设置 `format` 为 `YYYY-MM-DD HH:mm:ss` |
|
|
31
|
+
| format | `string` | 否 | - | 显示预览的格式,具体配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format) |
|
|
32
|
+
| picker | `PickerMode` | 否 | - | 设置选择器类型,可选值:`date` \| `week` \| `month` \| `quarter` \| `year` |
|
|
33
|
+
| futureDateDisabled | `boolean` | 否 | - | 不可选择未来日期,优先级高于 `disabledDate` |
|
|
34
|
+
| disabledDate | `DisabledDateType` | 否 | - | 不可选择的日期 |
|
|
35
|
+
| useFastSelectBtn | `boolean` | 否 | - | 启用快速切换按钮,显示上一个/当前/下一个的快速选项 |
|
|
36
|
+
| inputStyle | `CSSProperties` | 否 | - | 输入框样式 |
|
|
37
|
+
|
|
38
|
+
## Events
|
|
39
|
+
|
|
40
|
+
| 事件 | detail | 说明 |
|
|
41
|
+
| -------- | ------------------------------- | ----------------------------------------- |
|
|
42
|
+
| onChange | `string` — 格式化后的日期字符串 | 日期变化时触发 |
|
|
43
|
+
| onOk | `string` — 格式化后的日期字符串 | 点击确定按钮触发(showTime 为 true 使用) |
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
|
|
47
|
+
### Basic
|
|
48
|
+
|
|
49
|
+
展示日期选择器的基本用法。
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
<WrappedEoDatePicker />
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 日期时间选择
|
|
56
|
+
|
|
57
|
+
展示开启时间选择、指定格式并监听 ok 事件的用法。
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
<WrappedEoDatePicker
|
|
61
|
+
showTime={true}
|
|
62
|
+
value="2020-02-01 14:30:00"
|
|
63
|
+
format="YYYY-MM-DD HH:mm:ss"
|
|
64
|
+
placeholder="选择日期时间"
|
|
65
|
+
onOk={(e) => console.log(e.detail)}
|
|
66
|
+
onChange={(e) => console.log(e.detail)}
|
|
67
|
+
/>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 选择器类型与快速切换
|
|
71
|
+
|
|
72
|
+
通过 picker 属性设置选择器类型(天/周/月/季度/年),并启用快速切换按钮;还可通过 inputStyle 自定义输入框宽度。
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
import { useState } from "react";
|
|
76
|
+
|
|
77
|
+
function Demo() {
|
|
78
|
+
const [picker, setPicker] = useState("date");
|
|
79
|
+
return (
|
|
80
|
+
<>
|
|
81
|
+
<WrappedEoRadio
|
|
82
|
+
options={[
|
|
83
|
+
{ label: "天", value: "date" },
|
|
84
|
+
{ label: "周", value: "week" },
|
|
85
|
+
{ label: "月", value: "month" },
|
|
86
|
+
{ label: "季度", value: "quarter" },
|
|
87
|
+
{ label: "年", value: "year" },
|
|
88
|
+
]}
|
|
89
|
+
onChange={(e) => setPicker(e.detail.value)}
|
|
90
|
+
/>
|
|
91
|
+
<WrappedEoDatePicker
|
|
92
|
+
picker={picker}
|
|
93
|
+
useFastSelectBtn={true}
|
|
94
|
+
inputStyle={{ width: 200 }}
|
|
95
|
+
/>
|
|
96
|
+
</>
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 禁用日期
|
|
102
|
+
|
|
103
|
+
通过 disabledDate 禁止特定日期或时间段,通过 futureDateDisabled 禁止选择未来日期。
|
|
104
|
+
|
|
105
|
+
```tsx
|
|
106
|
+
<WrappedEoDatePicker
|
|
107
|
+
disabledDate={[
|
|
108
|
+
{ weekday: 4 },
|
|
109
|
+
{ date: "10-15", year: "2010-2020" },
|
|
110
|
+
{ hour: "12-18", minute: "0-29", weekday: 3 },
|
|
111
|
+
]}
|
|
112
|
+
format="YYYY-MM-DD HH:mm:ss"
|
|
113
|
+
showTime={true}
|
|
114
|
+
value="2019-10-01 00:00:00"
|
|
115
|
+
futureDateDisabled={true}
|
|
116
|
+
onOk={(e) => console.log(e.detail)}
|
|
117
|
+
onChange={(e) => console.log(e.detail)}
|
|
118
|
+
/>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 禁用状态
|
|
122
|
+
|
|
123
|
+
展示禁用状态下日期选择器的效果。
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
<WrappedEoDatePicker disabled={true} value="2024-01-15" placeholder="已禁用" />
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 表单集成
|
|
130
|
+
|
|
131
|
+
在表单中使用日期选择器,支持 label、name、required 及自定义校验信息。
|
|
132
|
+
|
|
133
|
+
```tsx
|
|
134
|
+
<WrappedEoForm
|
|
135
|
+
onValidateSuccess={(e) => console.log(e.detail)}
|
|
136
|
+
onValuesChange={(e) => console.log(e.detail)}
|
|
137
|
+
>
|
|
138
|
+
<WrappedEoDatePicker
|
|
139
|
+
label="日期"
|
|
140
|
+
name="date"
|
|
141
|
+
required={true}
|
|
142
|
+
message={{ required: "请选择日期" }}
|
|
143
|
+
/>
|
|
144
|
+
<WrappedEoSubmitButtons />
|
|
145
|
+
</WrappedEoForm>
|
|
146
|
+
```
|
|
@@ -1,4 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-dynamic-form-item
|
|
3
|
+
displayName: EoDynamicFormItem
|
|
4
|
+
description: 动态表单
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-dynamic-form-item
|
|
10
|
+
|
|
11
|
+
> 动态表单
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| -------------------- | ------------------------------------------------------------------- | ---- | ------ | ------------------------ |
|
|
17
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
18
|
+
| label | `string` | 否 | - | 字段说明 |
|
|
19
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
20
|
+
| value | `DynamicFormValuesItem[]` | 否 | - | 值 |
|
|
21
|
+
| message | `Record<string, string>` | 否 | - | 校验文本 |
|
|
22
|
+
| useBrick | `UseBrickConf` | 否 | - | 动态表单子项构件列表 |
|
|
23
|
+
| hideAddButton | `boolean \| ((value: Record<string, any>[]) => boolean)` | 否 | - | 是否隐藏添加的按钮 |
|
|
24
|
+
| disabledAddButton | `boolean \| ((value: Record<string, any>[]) => boolean)` | 否 | - | 是否禁止添加的按钮 |
|
|
25
|
+
| hideRemoveButton | `boolean \| ((row: Record<string, any>, index: number) => boolean)` | 否 | - | 是否隐藏每一行删除的按钮 |
|
|
26
|
+
| disabledRemoveButton | `boolean \| ((row: Record<string, any>, index: number) => boolean)` | 否 | - | 是否禁止每一行删除的按钮 |
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
|
|
30
|
+
| 事件 | detail | 说明 |
|
|
31
|
+
| ---------- | ----------------------------------------------------------- | ---------------- |
|
|
32
|
+
| change | `DynamicFormValuesItem[]` — 整个动态表单当前所有行的值列表 | 表单值改变时触发 |
|
|
33
|
+
| row.add | `rowDataType` — { detail: 该行的默认值, index: 该行的位置 } | 增加一行时触发 |
|
|
34
|
+
| row.remove | `rowDataType` — { detail: 该行的值, index: 该行的位置 } | 移除一行时触发 |
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### 与表单集成
|
|
39
|
+
|
|
40
|
+
在 eo-form 中使用动态表单,支持必填校验和唯一性校验。
|
|
2
41
|
|
|
3
42
|
```yaml preview
|
|
4
43
|
- brick: eo-form
|
|
@@ -47,9 +86,9 @@
|
|
|
47
86
|
submitText: 提交
|
|
48
87
|
```
|
|
49
88
|
|
|
50
|
-
|
|
89
|
+
### 显示标签
|
|
51
90
|
|
|
52
|
-
|
|
91
|
+
展示带有 label 标签的动态表单。
|
|
53
92
|
|
|
54
93
|
```yaml preview
|
|
55
94
|
- brick: eo-dynamic-form-item
|
|
@@ -69,7 +108,9 @@
|
|
|
69
108
|
- Shenzhen
|
|
70
109
|
```
|
|
71
110
|
|
|
72
|
-
###
|
|
111
|
+
### 设置初始值
|
|
112
|
+
|
|
113
|
+
通过 value 属性设置动态表单的初始数据。
|
|
73
114
|
|
|
74
115
|
```yaml preview
|
|
75
116
|
- brick: eo-dynamic-form-item
|
|
@@ -93,15 +134,17 @@
|
|
|
93
134
|
- Shenzhen
|
|
94
135
|
```
|
|
95
136
|
|
|
96
|
-
###
|
|
137
|
+
### 隐藏或禁用按钮
|
|
138
|
+
|
|
139
|
+
通过函数动态控制添加和删除按钮的显示与禁用状态。
|
|
97
140
|
|
|
98
141
|
```yaml preview
|
|
99
142
|
- brick: eo-dynamic-form-item
|
|
100
143
|
properties:
|
|
101
|
-
hideAddButton: <% (value)=>value.length===5 %>
|
|
102
|
-
disabledAddButton: <% (value)=>value.length===4 %>
|
|
103
|
-
hideRemoveButton: <% (
|
|
104
|
-
disabledRemoveButton: <% (
|
|
144
|
+
hideAddButton: "<% (value) => value.length === 5 %>"
|
|
145
|
+
disabledAddButton: "<% (value) => value.length === 4 %>"
|
|
146
|
+
hideRemoveButton: "<% (row, index) => index === 1 %>"
|
|
147
|
+
disabledRemoveButton: "<% (row, index) => index === 0 %>"
|
|
105
148
|
value:
|
|
106
149
|
- input: hello1
|
|
107
150
|
select: abc1
|
|
@@ -123,7 +166,9 @@
|
|
|
123
166
|
- abc4
|
|
124
167
|
```
|
|
125
168
|
|
|
126
|
-
###
|
|
169
|
+
### 监听事件
|
|
170
|
+
|
|
171
|
+
监听动态表单的值变化、添加行和删除行事件。
|
|
127
172
|
|
|
128
173
|
```yaml preview
|
|
129
174
|
- brick: eo-dynamic-form-item
|
|
@@ -142,12 +187,12 @@
|
|
|
142
187
|
- Guangzhou
|
|
143
188
|
- Shenzhen
|
|
144
189
|
events:
|
|
145
|
-
row.remove:
|
|
146
|
-
action: console.log
|
|
147
|
-
row.add:
|
|
148
|
-
action: console.log
|
|
149
190
|
change:
|
|
150
191
|
- action: message.success
|
|
151
192
|
args:
|
|
152
|
-
- <% JSON.stringify(EVENT.detail) %>
|
|
193
|
+
- "<% JSON.stringify(EVENT.detail) %>"
|
|
194
|
+
row.add:
|
|
195
|
+
action: console.log
|
|
196
|
+
row.remove:
|
|
197
|
+
action: console.log
|
|
153
198
|
```
|