@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,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-icon-select
|
|
3
|
+
displayName: WrappedEoIconSelect
|
|
4
|
+
description: 图标选择构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoIconSelect
|
|
10
|
+
|
|
11
|
+
> 图标选择构件
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoIconSelect } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------ | ------------------------ | ---- | ------ | ---------------- |
|
|
23
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
24
|
+
| label | `string` | 否 | - | 字段说明 |
|
|
25
|
+
| value | `Icon` | 否 | - | 值 |
|
|
26
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
27
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
28
|
+
| message | `Record<string, string>` | 否 | - | 校验错误提示信息 |
|
|
29
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体 |
|
|
30
|
+
|
|
31
|
+
## Events
|
|
32
|
+
|
|
33
|
+
| 事件 | detail | 说明 |
|
|
34
|
+
| -------- | ------------------------------------------------------------------------------------------------------- | ------------ |
|
|
35
|
+
| onChange | `Icon \| undefined` — { lib: 图标库, icon: 图标名称, category: 图标分类, color: 图标颜色 } \| undefined | 值变化时触发 |
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
### Basic
|
|
40
|
+
|
|
41
|
+
基础用法,点击图标选择器后打开图标选择弹窗,确认后通过 onChange 事件获取选中的图标。
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
<WrappedEoIconSelect onChange={(e) => console.log(e.detail)} />
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### With Value
|
|
48
|
+
|
|
49
|
+
设置初始值,展示已选中的图标。
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
<WrappedEoIconSelect
|
|
53
|
+
value={{ lib: "antd", icon: "star", theme: "filled", color: "#faad14" }}
|
|
54
|
+
onChange={(e) => console.log(e.detail)}
|
|
55
|
+
/>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Disabled
|
|
59
|
+
|
|
60
|
+
设置 disabled 为 true 禁用图标选择器,用户无法打开选择弹窗。
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
<WrappedEoIconSelect
|
|
64
|
+
disabled={true}
|
|
65
|
+
value={{ lib: "antd", icon: "heart", theme: "filled", color: "#ff4d4f" }}
|
|
66
|
+
/>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### With Form
|
|
70
|
+
|
|
71
|
+
在表单中使用图标选择器,配合 name、label、required、message 进行表单校验。
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<WrappedEoForm
|
|
75
|
+
onValidateSuccess={(e) => console.log(e.detail)}
|
|
76
|
+
onValuesChange={(e) => console.log(e.detail)}
|
|
77
|
+
>
|
|
78
|
+
<WrappedEoIconSelect
|
|
79
|
+
name="icon"
|
|
80
|
+
label="图标"
|
|
81
|
+
required={true}
|
|
82
|
+
message={{ required: "请选择一个图标" }}
|
|
83
|
+
/>
|
|
84
|
+
<WrappedEoSubmitButtons />
|
|
85
|
+
</WrappedEoForm>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### ThemeVariant
|
|
89
|
+
|
|
90
|
+
通过 themeVariant 属性切换图标选择弹窗的主题样式。
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
<WrappedEoIconSelect
|
|
94
|
+
themeVariant="elevo"
|
|
95
|
+
onChange={(e) => console.log(e.detail)}
|
|
96
|
+
/>
|
|
97
|
+
```
|
package/docs/eo-input.md
CHANGED
|
@@ -1,13 +1,88 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-input
|
|
3
|
+
displayName: WrappedEoInput
|
|
4
|
+
description: 通用输入框构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-input
|
|
10
|
+
|
|
11
|
+
> 通用输入框构件
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ----------- | ----------------------------- | ---- | ---------- | ---------------------------------------------------- |
|
|
17
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
18
|
+
| label | `string` | 否 | - | 标签文字 |
|
|
19
|
+
| value | `string` | 否 | - | 输入框值 |
|
|
20
|
+
| placeholder | `string` | 否 | - | 占位说明 |
|
|
21
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
22
|
+
| readonly | `boolean` | 否 | - | 是否只读 |
|
|
23
|
+
| clearable | `boolean` | 否 | - | 是否显示清除按钮 |
|
|
24
|
+
| autoFocus | `boolean` | 否 | - | 是否自动聚焦 |
|
|
25
|
+
| type | `InputType` | 否 | `"text"` | 类型 |
|
|
26
|
+
| size | `ComponentSize` | 否 | `"medium"` | 大小 |
|
|
27
|
+
| minLength | `number` | 否 | - | 最小长度 |
|
|
28
|
+
| maxLength | `number` | 否 | - | 最大长度(用户无法输入超过此最大长度的字符串) |
|
|
29
|
+
| min | `number` | 否 | - | 表单校验最小长度(当 type 为 number 时,表示最小值) |
|
|
30
|
+
| max | `number` | 否 | - | 表单校验最大长度(当 type 为 number 时,表示最大值) |
|
|
31
|
+
| pattern | `string` | 否 | - | 正则校验规则 |
|
|
32
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
33
|
+
| message | `Record<string, string>` | 否 | - | 错误时显示消息 |
|
|
34
|
+
| inputStyle | `React.CSSProperties` | 否 | - | 输入框样式 |
|
|
35
|
+
| validator | `(value: any) => MessageBody` | 否 | - | 表单项校验方法 |
|
|
36
|
+
|
|
37
|
+
## Events
|
|
38
|
+
|
|
39
|
+
| 事件 | detail | 说明 |
|
|
40
|
+
| ------ | --------------------- | ---------- |
|
|
41
|
+
| change | `string` — 当前输入值 | 值改变事件 |
|
|
42
|
+
|
|
43
|
+
## Methods
|
|
44
|
+
|
|
45
|
+
| 方法 | 签名 | 说明 |
|
|
46
|
+
| ---------- | ------------ | ---------------- |
|
|
47
|
+
| focusInput | `() => void` | 使输入框获得焦点 |
|
|
48
|
+
| blurInput | `() => void` | 使输入框失去焦点 |
|
|
49
|
+
|
|
50
|
+
## Slots
|
|
51
|
+
|
|
52
|
+
| 名称 | 说明 |
|
|
53
|
+
| ----------- | -------------- |
|
|
54
|
+
| addonBefore | 输入框前置标签 |
|
|
55
|
+
| addonAfter | 输入框后置标签 |
|
|
56
|
+
| prefix | 输入框前缀图标 |
|
|
57
|
+
| suffix | 输入框后缀图标 |
|
|
58
|
+
|
|
59
|
+
## CSS Parts
|
|
60
|
+
|
|
61
|
+
| 名称 | 说明 |
|
|
62
|
+
| ------------- | ------------------------------------------ |
|
|
63
|
+
| addon-wrapper | 包裹输入组件、前缀、后缀、前置和后置的容器 |
|
|
64
|
+
| affix-wrapper | 包裹输入组件、前缀和后缀的容器 |
|
|
65
|
+
| input | 输入组件 |
|
|
66
|
+
| clear-icon | 清除按钮 |
|
|
67
|
+
| prefix | 输入框前缀容器 |
|
|
68
|
+
| suffix | 输入框后缀容器 |
|
|
69
|
+
| before-addon | 输入框前置容器 |
|
|
70
|
+
| after-addon | 输入框后置容器 |
|
|
71
|
+
|
|
72
|
+
## Examples
|
|
73
|
+
|
|
74
|
+
### Basic
|
|
75
|
+
|
|
76
|
+
展示通用输入框的最基本用法。
|
|
2
77
|
|
|
3
78
|
```yaml preview
|
|
4
79
|
- brick: eo-input
|
|
5
80
|
```
|
|
6
81
|
|
|
7
|
-
## Examples
|
|
8
|
-
|
|
9
82
|
### Label
|
|
10
83
|
|
|
84
|
+
通过 `label` 属性为输入框设置标签文字。
|
|
85
|
+
|
|
11
86
|
```yaml preview
|
|
12
87
|
- brick: eo-input
|
|
13
88
|
properties:
|
|
@@ -16,14 +91,28 @@
|
|
|
16
91
|
|
|
17
92
|
### Value
|
|
18
93
|
|
|
94
|
+
通过 `value` 属性设置输入框的默认值。
|
|
95
|
+
|
|
19
96
|
```yaml preview
|
|
20
97
|
- brick: eo-input
|
|
21
98
|
properties:
|
|
22
99
|
value: Default Value
|
|
23
100
|
```
|
|
24
101
|
|
|
102
|
+
### Placeholder
|
|
103
|
+
|
|
104
|
+
通过 `placeholder` 属性设置占位提示文字。
|
|
105
|
+
|
|
106
|
+
```yaml preview
|
|
107
|
+
- brick: eo-input
|
|
108
|
+
properties:
|
|
109
|
+
placeholder: This is placeholder...
|
|
110
|
+
```
|
|
111
|
+
|
|
25
112
|
### Disabled
|
|
26
113
|
|
|
114
|
+
设置 `disabled` 属性禁用输入框。
|
|
115
|
+
|
|
27
116
|
```yaml preview
|
|
28
117
|
- brick: eo-input
|
|
29
118
|
properties:
|
|
@@ -31,24 +120,31 @@
|
|
|
31
120
|
disabled: true
|
|
32
121
|
```
|
|
33
122
|
|
|
34
|
-
###
|
|
123
|
+
### Readonly
|
|
124
|
+
|
|
125
|
+
设置 `readonly` 属性使输入框只读。
|
|
35
126
|
|
|
36
127
|
```yaml preview
|
|
37
128
|
- brick: eo-input
|
|
38
129
|
properties:
|
|
39
|
-
value:
|
|
40
|
-
|
|
130
|
+
value: Read only value
|
|
131
|
+
readonly: true
|
|
41
132
|
```
|
|
42
133
|
|
|
43
|
-
###
|
|
134
|
+
### Clearable
|
|
135
|
+
|
|
136
|
+
设置 `clearable` 属性在输入框非空时显示清除按钮。
|
|
44
137
|
|
|
45
138
|
```yaml preview
|
|
46
139
|
- brick: eo-input
|
|
47
140
|
properties:
|
|
48
|
-
|
|
141
|
+
value: Default Value
|
|
142
|
+
clearable: true
|
|
49
143
|
```
|
|
50
144
|
|
|
51
|
-
###
|
|
145
|
+
### Max Length
|
|
146
|
+
|
|
147
|
+
通过 `maxLength` 属性限制用户最多输入的字符数。
|
|
52
148
|
|
|
53
149
|
```yaml preview
|
|
54
150
|
- brick: eo-input
|
|
@@ -59,6 +155,8 @@
|
|
|
59
155
|
|
|
60
156
|
### Type
|
|
61
157
|
|
|
158
|
+
通过 `type` 属性切换输入框类型,支持 `password`、`date`、`color`、`number`、`search` 等。
|
|
159
|
+
|
|
62
160
|
```yaml preview
|
|
63
161
|
- brick: eo-input
|
|
64
162
|
properties:
|
|
@@ -74,12 +172,16 @@
|
|
|
74
172
|
type: color
|
|
75
173
|
- brick: eo-input
|
|
76
174
|
properties:
|
|
77
|
-
label:
|
|
78
|
-
type:
|
|
175
|
+
label: number
|
|
176
|
+
type: number
|
|
177
|
+
min: 0
|
|
178
|
+
max: 100
|
|
79
179
|
```
|
|
80
180
|
|
|
81
181
|
### Size
|
|
82
182
|
|
|
183
|
+
通过 `size` 属性控制输入框大小,支持 `large`、`medium`(默认)和 `small`。
|
|
184
|
+
|
|
83
185
|
```yaml preview
|
|
84
186
|
- brick: eo-input
|
|
85
187
|
properties:
|
|
@@ -97,6 +199,8 @@
|
|
|
97
199
|
|
|
98
200
|
### Input Style
|
|
99
201
|
|
|
202
|
+
通过 `inputStyle` 属性自定义输入框的内联样式。
|
|
203
|
+
|
|
100
204
|
```yaml preview
|
|
101
205
|
- brick: eo-input
|
|
102
206
|
properties:
|
|
@@ -115,27 +219,24 @@
|
|
|
115
219
|
border: "1px solid #8b2121"
|
|
116
220
|
```
|
|
117
221
|
|
|
118
|
-
###
|
|
222
|
+
### Events
|
|
223
|
+
|
|
224
|
+
监听 `change` 事件获取输入框值变化。
|
|
119
225
|
|
|
120
226
|
```yaml preview
|
|
121
227
|
- brick: eo-input
|
|
122
|
-
|
|
228
|
+
properties:
|
|
123
229
|
label: Event
|
|
230
|
+
events:
|
|
124
231
|
change:
|
|
125
232
|
action: message.success
|
|
126
233
|
args:
|
|
127
234
|
- <% EVENT.detail %>
|
|
128
|
-
focus:
|
|
129
|
-
action: message.success
|
|
130
|
-
args:
|
|
131
|
-
- focus
|
|
132
|
-
blur:
|
|
133
|
-
action: message.success
|
|
134
|
-
args:
|
|
135
|
-
- blur
|
|
136
235
|
```
|
|
137
236
|
|
|
138
|
-
###
|
|
237
|
+
### Slots
|
|
238
|
+
|
|
239
|
+
通过 `prefix`、`suffix`、`addonBefore`、`addonAfter` 插槽在输入框不同位置插入自定义内容。
|
|
139
240
|
|
|
140
241
|
```yaml preview gap
|
|
141
242
|
- brick: eo-input
|
|
@@ -180,6 +281,8 @@
|
|
|
180
281
|
|
|
181
282
|
### With Form
|
|
182
283
|
|
|
284
|
+
在 `eo-form` 中使用,通过 `name`、`label` 属性集成表单功能,并可配合 `required`、`pattern`、`message` 属性实现表单校验。
|
|
285
|
+
|
|
183
286
|
```yaml preview
|
|
184
287
|
- brick: eo-form
|
|
185
288
|
events:
|
|
@@ -193,5 +296,27 @@
|
|
|
193
296
|
label: 输入框
|
|
194
297
|
name: text
|
|
195
298
|
required: true
|
|
299
|
+
pattern: "^[A-Za-z]+"
|
|
300
|
+
message:
|
|
301
|
+
required: 请输入内容
|
|
302
|
+
pattern: 只能输入字母
|
|
303
|
+
- brick: eo-submit-buttons
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Validator
|
|
307
|
+
|
|
308
|
+
通过 `validator` 属性自定义表单项校验逻辑,返回 `null` 表示校验通过,返回包含 `message` 的对象表示校验失败。
|
|
309
|
+
|
|
310
|
+
```yaml preview
|
|
311
|
+
- brick: eo-form
|
|
312
|
+
events:
|
|
313
|
+
validate.success:
|
|
314
|
+
- action: console.log
|
|
315
|
+
children:
|
|
316
|
+
- brick: eo-input
|
|
317
|
+
properties:
|
|
318
|
+
name: username
|
|
319
|
+
label: 用户名
|
|
320
|
+
validator: "<% (value) => value && value.length > 10 ? { message: '用户名不能超过10个字符' } : null %>"
|
|
196
321
|
- brick: eo-submit-buttons
|
|
197
322
|
```
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-input
|
|
3
|
+
displayName: WrappedEoInput
|
|
4
|
+
description: 通用输入框构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoInput
|
|
10
|
+
|
|
11
|
+
> 通用输入框构件
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoInput } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ----------- | ----------------------------- | ---- | ---------- | ---------------------------------------------------- |
|
|
23
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
24
|
+
| label | `string` | 否 | - | 标签文字 |
|
|
25
|
+
| value | `string` | 否 | - | 输入框值 |
|
|
26
|
+
| placeholder | `string` | 否 | - | 占位说明 |
|
|
27
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
28
|
+
| readonly | `boolean` | 否 | - | 是否只读 |
|
|
29
|
+
| clearable | `boolean` | 否 | - | 是否显示清除按钮 |
|
|
30
|
+
| autoFocus | `boolean` | 否 | - | 是否自动聚焦 |
|
|
31
|
+
| type | `InputType` | 否 | `"text"` | 类型 |
|
|
32
|
+
| size | `ComponentSize` | 否 | `"medium"` | 大小 |
|
|
33
|
+
| minLength | `number` | 否 | - | 最小长度 |
|
|
34
|
+
| maxLength | `number` | 否 | - | 最大长度(用户无法输入超过此最大长度的字符串) |
|
|
35
|
+
| min | `number` | 否 | - | 表单校验最小长度(当 type 为 number 时,表示最小值) |
|
|
36
|
+
| max | `number` | 否 | - | 表单校验最大长度(当 type 为 number 时,表示最大值) |
|
|
37
|
+
| pattern | `string` | 否 | - | 正则校验规则 |
|
|
38
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
39
|
+
| message | `Record<string, string>` | 否 | - | 错误时显示消息 |
|
|
40
|
+
| inputStyle | `React.CSSProperties` | 否 | - | 输入框样式 |
|
|
41
|
+
| validator | `(value: any) => MessageBody` | 否 | - | 表单项校验方法 |
|
|
42
|
+
|
|
43
|
+
## Events
|
|
44
|
+
|
|
45
|
+
| 事件 | detail | 说明 |
|
|
46
|
+
| -------- | --------------------- | ---------- |
|
|
47
|
+
| onChange | `string` — 当前输入值 | 值改变事件 |
|
|
48
|
+
|
|
49
|
+
## Methods
|
|
50
|
+
|
|
51
|
+
| 方法 | 签名 | 说明 |
|
|
52
|
+
| ---------- | ------------ | ---------------- |
|
|
53
|
+
| focusInput | `() => void` | 使输入框获得焦点 |
|
|
54
|
+
| blurInput | `() => void` | 使输入框失去焦点 |
|
|
55
|
+
|
|
56
|
+
## Slots
|
|
57
|
+
|
|
58
|
+
| 名称 | 说明 |
|
|
59
|
+
| ----------- | -------------- |
|
|
60
|
+
| addonBefore | 输入框前置标签 |
|
|
61
|
+
| addonAfter | 输入框后置标签 |
|
|
62
|
+
| prefix | 输入框前缀图标 |
|
|
63
|
+
| suffix | 输入框后缀图标 |
|
|
64
|
+
|
|
65
|
+
## CSS Parts
|
|
66
|
+
|
|
67
|
+
| 名称 | 说明 |
|
|
68
|
+
| ------------- | ------------------------------------------ |
|
|
69
|
+
| addon-wrapper | 包裹输入组件、前缀、后缀、前置和后置的容器 |
|
|
70
|
+
| affix-wrapper | 包裹输入组件、前缀和后缀的容器 |
|
|
71
|
+
| input | 输入组件 |
|
|
72
|
+
| clear-icon | 清除按钮 |
|
|
73
|
+
| prefix | 输入框前缀容器 |
|
|
74
|
+
| suffix | 输入框后缀容器 |
|
|
75
|
+
| before-addon | 输入框前置容器 |
|
|
76
|
+
| after-addon | 输入框后置容器 |
|
|
77
|
+
|
|
78
|
+
## Examples
|
|
79
|
+
|
|
80
|
+
### Basic
|
|
81
|
+
|
|
82
|
+
展示通用输入框的最基本用法。
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
<WrappedEoInput />
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Label
|
|
89
|
+
|
|
90
|
+
通过 `label` 属性为输入框设置标签文字。
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
<WrappedEoInput label="输入框" />
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Value
|
|
97
|
+
|
|
98
|
+
通过 `value` 属性设置输入框的默认值。
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
<WrappedEoInput value="Default Value" />
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Placeholder
|
|
105
|
+
|
|
106
|
+
通过 `placeholder` 属性设置占位提示文字。
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
<WrappedEoInput placeholder="This is placeholder..." />
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Disabled
|
|
113
|
+
|
|
114
|
+
设置 `disabled` 属性禁用输入框。
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
<WrappedEoInput value="Default Value" disabled />
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Readonly
|
|
121
|
+
|
|
122
|
+
设置 `readonly` 属性使输入框只读。
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
<WrappedEoInput value="Read only value" readonly />
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Clearable
|
|
129
|
+
|
|
130
|
+
设置 `clearable` 属性在输入框非空时显示清除按钮。
|
|
131
|
+
|
|
132
|
+
```tsx
|
|
133
|
+
<WrappedEoInput value="Default Value" clearable />
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Max Length
|
|
137
|
+
|
|
138
|
+
通过 `maxLength` 属性限制用户最多输入的字符数。
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
<WrappedEoInput placeholder="max length = 5" maxLength={5} />
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Type
|
|
145
|
+
|
|
146
|
+
通过 `type` 属性切换输入框类型,支持 `password`、`date`、`color`、`number`、`search` 等。
|
|
147
|
+
|
|
148
|
+
```tsx
|
|
149
|
+
<>
|
|
150
|
+
<WrappedEoInput label="password" type="password" />
|
|
151
|
+
<WrappedEoInput label="date" type="date" />
|
|
152
|
+
<WrappedEoInput label="color" type="color" />
|
|
153
|
+
<WrappedEoInput label="number" type="number" min={0} max={100} />
|
|
154
|
+
</>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Size
|
|
158
|
+
|
|
159
|
+
通过 `size` 属性控制输入框大小,支持 `large`、`medium`(默认)和 `small`。
|
|
160
|
+
|
|
161
|
+
```tsx
|
|
162
|
+
<>
|
|
163
|
+
<WrappedEoInput size="large" placeholder="large" />
|
|
164
|
+
<WrappedEoInput size="medium" placeholder="medium" />
|
|
165
|
+
<WrappedEoInput size="small" placeholder="small" />
|
|
166
|
+
</>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Input Style
|
|
170
|
+
|
|
171
|
+
通过 `inputStyle` 属性自定义输入框的内联样式。
|
|
172
|
+
|
|
173
|
+
```tsx
|
|
174
|
+
<>
|
|
175
|
+
<WrappedEoInput placeholder="width: 180px" inputStyle={{ width: "180px" }} />
|
|
176
|
+
<WrappedEoInput placeholder="width: 250px" inputStyle={{ width: "250px" }} />
|
|
177
|
+
<WrappedEoInput
|
|
178
|
+
placeholder="border style"
|
|
179
|
+
inputStyle={{ border: "1px solid #8b2121" }}
|
|
180
|
+
/>
|
|
181
|
+
</>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Events
|
|
185
|
+
|
|
186
|
+
监听 `onChange` 事件获取输入框值变化。
|
|
187
|
+
|
|
188
|
+
```tsx
|
|
189
|
+
function Demo() {
|
|
190
|
+
const [value, setValue] = React.useState("");
|
|
191
|
+
return (
|
|
192
|
+
<WrappedEoInput
|
|
193
|
+
label="Event"
|
|
194
|
+
value={value}
|
|
195
|
+
onChange={(e) => setValue(e.detail)}
|
|
196
|
+
/>
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Slots
|
|
202
|
+
|
|
203
|
+
通过 `prefix`、`suffix`、`addonBefore`、`addonAfter` 插槽在输入框不同位置插入自定义内容。
|
|
204
|
+
|
|
205
|
+
```tsx
|
|
206
|
+
<>
|
|
207
|
+
<WrappedEoInput placeholder="prefix slot">
|
|
208
|
+
<WrappedEoIcon slot="prefix" lib="antd" icon="search" theme="outlined" />
|
|
209
|
+
</WrappedEoInput>
|
|
210
|
+
<WrappedEoInput placeholder="suffix slot">
|
|
211
|
+
<WrappedEoIcon slot="suffix" lib="antd" icon="search" theme="outlined" />
|
|
212
|
+
</WrappedEoInput>
|
|
213
|
+
<WrappedEoInput placeholder="addon slot">
|
|
214
|
+
<span slot="addonBefore">https://</span>
|
|
215
|
+
<span slot="addonAfter">.com</span>
|
|
216
|
+
</WrappedEoInput>
|
|
217
|
+
</>
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### With Form
|
|
221
|
+
|
|
222
|
+
在 `WrappedEoForm` 中使用,通过 `name`、`label` 属性集成表单功能,并可配合 `required`、`pattern`、`message` 属性实现表单校验。
|
|
223
|
+
|
|
224
|
+
```tsx
|
|
225
|
+
<WrappedEoForm
|
|
226
|
+
onValidateSuccess={(e) => console.log(e.detail)}
|
|
227
|
+
onValuesChange={(e) => console.log(e.detail)}
|
|
228
|
+
>
|
|
229
|
+
<WrappedEoInput
|
|
230
|
+
name="text"
|
|
231
|
+
label="输入框"
|
|
232
|
+
required
|
|
233
|
+
pattern="^[A-Za-z]+"
|
|
234
|
+
message={{
|
|
235
|
+
required: "请输入内容",
|
|
236
|
+
pattern: "只能输入字母",
|
|
237
|
+
}}
|
|
238
|
+
/>
|
|
239
|
+
<WrappedEoSubmitButtons />
|
|
240
|
+
</WrappedEoForm>
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Validator
|
|
244
|
+
|
|
245
|
+
通过 `validator` 属性自定义表单项校验逻辑,返回 `null` 表示校验通过,返回包含 `message` 的对象表示校验失败。
|
|
246
|
+
|
|
247
|
+
```tsx
|
|
248
|
+
<WrappedEoForm onValidateSuccess={(e) => console.log(e.detail)}>
|
|
249
|
+
<WrappedEoInput
|
|
250
|
+
name="username"
|
|
251
|
+
label="用户名"
|
|
252
|
+
validator={(value) =>
|
|
253
|
+
value && value.length > 10 ? { message: "用户名不能超过10个字符" } : null
|
|
254
|
+
}
|
|
255
|
+
/>
|
|
256
|
+
<WrappedEoSubmitButtons />
|
|
257
|
+
</WrappedEoForm>
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Methods
|
|
261
|
+
|
|
262
|
+
通过 `ref` 调用 `focusInput` 和 `blurInput` 方法控制输入框的焦点状态。
|
|
263
|
+
|
|
264
|
+
```tsx
|
|
265
|
+
function Demo() {
|
|
266
|
+
const ref = React.useRef(null);
|
|
267
|
+
return (
|
|
268
|
+
<>
|
|
269
|
+
<WrappedEoInput ref={ref} placeholder="点击按钮控制焦点" />
|
|
270
|
+
<button onClick={() => ref.current?.focusInput()}>获取焦点</button>
|
|
271
|
+
<button onClick={() => ref.current?.blurInput()}>失去焦点</button>
|
|
272
|
+
</>
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
```
|