@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-form.md
CHANGED
|
@@ -1,9 +1,58 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-form
|
|
3
|
+
displayName: WrappedEoForm
|
|
4
|
+
description: 表单构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-form
|
|
10
|
+
|
|
11
|
+
> 表单构件
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ------------------------- | ------------------------- | ---- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
17
|
+
| staticValues | `Record<string, unknown>` | 否 | - | 静态附加值,在表单验证成功时会合并到 validate.success 事件的 detail 中 |
|
|
18
|
+
| layout | `Layout` | 否 | `"vertical"` | 布局方式,可选值为 `vertical`、`horizontal`、`inline` |
|
|
19
|
+
| size | `ComponentSize` | 否 | - | 表单组件尺寸 |
|
|
20
|
+
| labelCol | `ColProps` | 否 | `{ sm: { span: 24 }, md: { span: 24 }, lg: { span: 7 }, xl: { span: 5 }, xxl: { span: 4 } }` | 标签列布局样式(仅当 layout="horizontal" 时有效) |
|
|
21
|
+
| wrapperCol | `ColProps` | 否 | `{ sm: { span: 18 }, md: { span: 18 }, lg: { span: 13 }, xl: { span: 16 }, xxl: { span: 18 } }` | 输入控件列布局样式(仅当 layout="horizontal" 时有效) |
|
|
22
|
+
| autoScrollToInvalidFields | `boolean` | 否 | - | 是否在验证失败时自动滚动到第一个错误字段 |
|
|
23
|
+
| formStyle | `React.CSSProperties` | 否 | - | 表单自定义样式 |
|
|
24
|
+
|
|
25
|
+
## Events
|
|
26
|
+
|
|
27
|
+
| 事件 | detail | 说明 |
|
|
28
|
+
| ---------------- | ------------------------------------------------------------------------------------------------ | ---------------------- |
|
|
29
|
+
| values.change | `Record<string, unknown>` — 当前所有表单字段的值 | 表单值变更事件 |
|
|
30
|
+
| validate.success | `Record<string, unknown>` — 表单所有字段的值,包含合并后的 staticValues | 表单验证成功时触发事件 |
|
|
31
|
+
| validate.error | `(MessageBody & { name: string })[]` — 校验失败的字段信息列表,每项包含 name(字段名)及错误消息 | 表单验证报错时触发事件 |
|
|
32
|
+
|
|
33
|
+
## Methods
|
|
34
|
+
|
|
35
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
36
|
+
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------ | ---------------------------------------------------------------------------------- |
|
|
37
|
+
| validate | - | `boolean \| Record<string, unknown>` | 表单校验方法,校验通过触发 validate.success 事件,校验失败触发 validate.error 事件 |
|
|
38
|
+
| setInitValue | <ul><li>`values: Record<string, unknown>` - 要设置的表单字段值</li><li>`options?: { runInMacrotask?: boolean; runInMicrotask?: boolean }` - 可选配置,支持 runInMicrotask(微任务中执行)和 runInMacrotask(宏任务中执行)</li></ul> | `void` | 表单设置值方法 |
|
|
39
|
+
| resetFields | <ul><li>`name?: string` - 要重置的字段名,不传则重置所有字段</li></ul> | `void` | 表单重置值方法 |
|
|
40
|
+
| getFieldsValue | <ul><li>`name?: string` - 要获取的字段名,不传则获取所有字段的值</li></ul> | `Record<string, unknown> \| unknown` | 获取表单值方法 |
|
|
41
|
+
| validateField | <ul><li>`name: string` - 要校验的字段名</li></ul> | `void` | 校验表单字段方法 |
|
|
42
|
+
| resetValidateState | - | `void` | 重置表单校验状态方法 |
|
|
43
|
+
|
|
44
|
+
## Slots
|
|
45
|
+
|
|
46
|
+
| 名称 | 说明 |
|
|
47
|
+
| -------- | -------- |
|
|
48
|
+
| (默认) | 表单内容 |
|
|
2
49
|
|
|
3
50
|
## Examples
|
|
4
51
|
|
|
5
52
|
### Layout
|
|
6
53
|
|
|
54
|
+
展示 inline、horizontal、vertical 三种布局方式的表单。
|
|
55
|
+
|
|
7
56
|
```yaml preview
|
|
8
57
|
- brick: eo-form
|
|
9
58
|
properties:
|
|
@@ -57,6 +106,8 @@
|
|
|
57
106
|
|
|
58
107
|
### Values
|
|
59
108
|
|
|
109
|
+
通过 `values` 属性为表单字段设置初始值。
|
|
110
|
+
|
|
60
111
|
```yaml preview
|
|
61
112
|
- brick: eo-form
|
|
62
113
|
properties:
|
|
@@ -129,6 +180,8 @@
|
|
|
129
180
|
|
|
130
181
|
### Events
|
|
131
182
|
|
|
183
|
+
监听 values.change、validate.success、validate.error 事件响应表单交互。
|
|
184
|
+
|
|
132
185
|
```yaml preview
|
|
133
186
|
- brick: eo-form
|
|
134
187
|
events:
|
|
@@ -169,12 +222,15 @@
|
|
|
169
222
|
- brick: eo-submit-buttons
|
|
170
223
|
```
|
|
171
224
|
|
|
172
|
-
###
|
|
225
|
+
### Methods
|
|
226
|
+
|
|
227
|
+
通过方法调用实现表单校验、赋值、重置、取值及字段级校验等操作。
|
|
173
228
|
|
|
174
229
|
```yaml preview
|
|
175
230
|
- brick: eo-form
|
|
176
231
|
properties:
|
|
177
232
|
id: form
|
|
233
|
+
autoScrollToInvalidFields: true
|
|
178
234
|
slots:
|
|
179
235
|
"":
|
|
180
236
|
bricks:
|
|
@@ -197,7 +253,7 @@
|
|
|
197
253
|
value: 1
|
|
198
254
|
- brick: eo-button
|
|
199
255
|
properties:
|
|
200
|
-
textContent:
|
|
256
|
+
textContent: validate
|
|
201
257
|
events:
|
|
202
258
|
click:
|
|
203
259
|
- target: "#form"
|
|
@@ -268,8 +324,93 @@
|
|
|
268
324
|
method: resetValidateState
|
|
269
325
|
```
|
|
270
326
|
|
|
327
|
+
### Static Values
|
|
328
|
+
|
|
329
|
+
通过 staticValues 为验证成功事件附加额外的静态字段。
|
|
330
|
+
|
|
331
|
+
```yaml preview
|
|
332
|
+
- brick: eo-form
|
|
333
|
+
properties:
|
|
334
|
+
id: form2
|
|
335
|
+
staticValues:
|
|
336
|
+
source: web
|
|
337
|
+
version: "1.0"
|
|
338
|
+
events:
|
|
339
|
+
validate.success:
|
|
340
|
+
- action: console.log
|
|
341
|
+
slots:
|
|
342
|
+
"":
|
|
343
|
+
bricks:
|
|
344
|
+
- brick: eo-input
|
|
345
|
+
properties:
|
|
346
|
+
name: username
|
|
347
|
+
label: 用户名
|
|
348
|
+
required: true
|
|
349
|
+
- brick: eo-submit-buttons
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Custom Style
|
|
353
|
+
|
|
354
|
+
通过 formStyle 自定义表单容器样式。
|
|
355
|
+
|
|
356
|
+
```yaml preview
|
|
357
|
+
- brick: eo-form
|
|
358
|
+
properties:
|
|
359
|
+
layout: vertical
|
|
360
|
+
formStyle:
|
|
361
|
+
gap: 16px
|
|
362
|
+
padding: 16px
|
|
363
|
+
background: "#f5f5f5"
|
|
364
|
+
borderRadius: 8px
|
|
365
|
+
slots:
|
|
366
|
+
"":
|
|
367
|
+
bricks:
|
|
368
|
+
- brick: eo-input
|
|
369
|
+
properties:
|
|
370
|
+
name: username
|
|
371
|
+
label: 用户名
|
|
372
|
+
- brick: eo-select
|
|
373
|
+
properties:
|
|
374
|
+
name: city
|
|
375
|
+
label: 城市
|
|
376
|
+
options:
|
|
377
|
+
- 北京
|
|
378
|
+
- 上海
|
|
379
|
+
- 深圳
|
|
380
|
+
- brick: eo-submit-buttons
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Horizontal Layout with Column Config
|
|
384
|
+
|
|
385
|
+
使用 horizontal 布局并自定义 labelCol 和 wrapperCol 比例。
|
|
386
|
+
|
|
387
|
+
```yaml preview
|
|
388
|
+
- brick: eo-form
|
|
389
|
+
properties:
|
|
390
|
+
layout: horizontal
|
|
391
|
+
labelCol:
|
|
392
|
+
span: 6
|
|
393
|
+
wrapperCol:
|
|
394
|
+
span: 18
|
|
395
|
+
size: large
|
|
396
|
+
slots:
|
|
397
|
+
"":
|
|
398
|
+
bricks:
|
|
399
|
+
- brick: eo-input
|
|
400
|
+
properties:
|
|
401
|
+
name: name
|
|
402
|
+
label: 姓名
|
|
403
|
+
- brick: eo-input
|
|
404
|
+
properties:
|
|
405
|
+
name: email
|
|
406
|
+
label: 邮箱
|
|
407
|
+
- brick: eo-submit-buttons
|
|
408
|
+
```
|
|
409
|
+
|
|
271
410
|
### Theme variant Elevo
|
|
272
411
|
|
|
412
|
+
在 Elevo 主题下展示表单的视觉效果。
|
|
413
|
+
|
|
273
414
|
```yaml preview
|
|
274
415
|
# Use this container to emulate background
|
|
275
416
|
brick: ai-portal.home-container
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-form
|
|
3
|
+
displayName: WrappedEoForm
|
|
4
|
+
description: 表单构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoForm
|
|
10
|
+
|
|
11
|
+
> 表单构件
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoForm } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------------------- | ------------------------- | ---- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
23
|
+
| staticValues | `Record<string, unknown>` | 否 | - | 静态附加值,在表单验证成功时会合并到 onValidateSuccess 事件的 detail 中 |
|
|
24
|
+
| layout | `Layout` | 否 | `"vertical"` | 布局方式,可选值为 `vertical`、`horizontal`、`inline` |
|
|
25
|
+
| size | `ComponentSize` | 否 | - | 表单组件尺寸 |
|
|
26
|
+
| labelCol | `ColProps` | 否 | `{ sm: { span: 24 }, md: { span: 24 }, lg: { span: 7 }, xl: { span: 5 }, xxl: { span: 4 } }` | 标签列布局样式(仅当 layout="horizontal" 时有效) |
|
|
27
|
+
| wrapperCol | `ColProps` | 否 | `{ sm: { span: 18 }, md: { span: 18 }, lg: { span: 13 }, xl: { span: 16 }, xxl: { span: 18 } }` | 输入控件列布局样式(仅当 layout="horizontal" 时有效) |
|
|
28
|
+
| autoScrollToInvalidFields | `boolean` | 否 | - | 是否在验证失败时自动滚动到第一个错误字段 |
|
|
29
|
+
| formStyle | `React.CSSProperties` | 否 | - | 表单自定义样式 |
|
|
30
|
+
|
|
31
|
+
## Events
|
|
32
|
+
|
|
33
|
+
| 事件 | detail | 说明 |
|
|
34
|
+
| ----------------- | ------------------------------------------------------------------------------------------------ | ---------------------- |
|
|
35
|
+
| onValuesChange | `Record<string, unknown>` — 当前所有表单字段的值 | 表单值变更事件 |
|
|
36
|
+
| onValidateSuccess | `Record<string, unknown>` — 表单所有字段的值,包含合并后的 staticValues | 表单验证成功时触发事件 |
|
|
37
|
+
| onValidateError | `(MessageBody & { name: string })[]` — 校验失败的字段信息列表,每项包含 name(字段名)及错误消息 | 表单验证报错时触发事件 |
|
|
38
|
+
|
|
39
|
+
## Methods
|
|
40
|
+
|
|
41
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
42
|
+
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------ |
|
|
43
|
+
| validate | - | `boolean \| Record<string, unknown>` | 表单校验方法,校验通过触发 onValidateSuccess 事件,校验失败触发 onValidateError 事件 |
|
|
44
|
+
| setInitValue | <ul><li>`values: Record<string, unknown>` - 要设置的表单字段值</li><li>`options?: { runInMacrotask?: boolean; runInMicrotask?: boolean }` - 可选配置,支持 runInMicrotask(微任务中执行)和 runInMacrotask(宏任务中执行)</li></ul> | `void` | 表单设置值方法 |
|
|
45
|
+
| resetFields | <ul><li>`name?: string` - 要重置的字段名,不传则重置所有字段</li></ul> | `void` | 表单重置值方法 |
|
|
46
|
+
| getFieldsValue | <ul><li>`name?: string` - 要获取的字段名,不传则获取所有字段的值</li></ul> | `Record<string, unknown> \| unknown` | 获取表单值方法 |
|
|
47
|
+
| validateField | <ul><li>`name: string` - 要校验的字段名</li></ul> | `void` | 校验表单字段方法 |
|
|
48
|
+
| resetValidateState | - | `void` | 重置表单校验状态方法 |
|
|
49
|
+
|
|
50
|
+
## Slots
|
|
51
|
+
|
|
52
|
+
| 名称 | 说明 |
|
|
53
|
+
| -------- | -------- |
|
|
54
|
+
| (默认) | 表单内容 |
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
### Layout
|
|
59
|
+
|
|
60
|
+
展示 inline、horizontal、vertical 三种布局方式的表单。
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
<>
|
|
64
|
+
<WrappedEoForm layout="inline">
|
|
65
|
+
<WrappedEoInput label="input" />
|
|
66
|
+
<WrappedEoSelect label="select" />
|
|
67
|
+
</WrappedEoForm>
|
|
68
|
+
<div style={{ height: 1, background: "#abc", margin: "20px 0" }} />
|
|
69
|
+
<WrappedEoForm layout="horizontal">
|
|
70
|
+
<WrappedEoInput label="input" />
|
|
71
|
+
<WrappedEoSelect label="select" />
|
|
72
|
+
</WrappedEoForm>
|
|
73
|
+
<div style={{ height: 1, background: "#abc", margin: "20px 0" }} />
|
|
74
|
+
<WrappedEoForm layout="vertical">
|
|
75
|
+
<WrappedEoInput label="input" />
|
|
76
|
+
<WrappedEoSelect label="select" />
|
|
77
|
+
</WrappedEoForm>
|
|
78
|
+
</>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Values
|
|
82
|
+
|
|
83
|
+
通过 `values` 属性为表单字段设置初始值。
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
<WrappedEoForm
|
|
87
|
+
values={{
|
|
88
|
+
input: "This is default value",
|
|
89
|
+
select: "Beijing",
|
|
90
|
+
radio: "Guangzhou",
|
|
91
|
+
checkbox: ["C", "D"],
|
|
92
|
+
textarea: "Hello World! \nNice to see you!",
|
|
93
|
+
dynamicForm: [
|
|
94
|
+
{ input: "beijing", select: "Guangzhou" },
|
|
95
|
+
{ input: "shenzhen", select: "Shenzhen" },
|
|
96
|
+
],
|
|
97
|
+
}}
|
|
98
|
+
>
|
|
99
|
+
<WrappedEoInput label="input" name="input" />
|
|
100
|
+
<WrappedEoSelect
|
|
101
|
+
label="select"
|
|
102
|
+
name="select"
|
|
103
|
+
options={["Beijing", "Shanghai"]}
|
|
104
|
+
/>
|
|
105
|
+
<WrappedEoRadio
|
|
106
|
+
label="radio"
|
|
107
|
+
name="radio"
|
|
108
|
+
options={["Guangzhou", "Shenzhen"]}
|
|
109
|
+
/>
|
|
110
|
+
<WrappedEoCheckbox
|
|
111
|
+
name="checkbox"
|
|
112
|
+
label="checkbox"
|
|
113
|
+
options={["A", "B", "C", "D"]}
|
|
114
|
+
/>
|
|
115
|
+
<WrappedEoTextarea
|
|
116
|
+
name="textarea"
|
|
117
|
+
label="textarea"
|
|
118
|
+
autoSize={{ minRows: 3 }}
|
|
119
|
+
/>
|
|
120
|
+
<WrappedEoDynamicFormItem
|
|
121
|
+
label="dynamic-form"
|
|
122
|
+
name="dynamicForm"
|
|
123
|
+
useBrick={[
|
|
124
|
+
{ brick: "eo-input", properties: { name: "input" } },
|
|
125
|
+
{
|
|
126
|
+
brick: "eo-select",
|
|
127
|
+
properties: {
|
|
128
|
+
name: "select",
|
|
129
|
+
options: ["Beijing", "Shanghai", "Guangzhou", "Shenzhen"],
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
]}
|
|
133
|
+
/>
|
|
134
|
+
</WrappedEoForm>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Events
|
|
138
|
+
|
|
139
|
+
监听 onValuesChange、onValidateSuccess、onValidateError 事件响应表单交互。
|
|
140
|
+
|
|
141
|
+
```tsx
|
|
142
|
+
<WrappedEoForm
|
|
143
|
+
onValuesChange={(e) => console.log(e.detail)}
|
|
144
|
+
onValidateSuccess={(e) => message.success("表单提交成功")}
|
|
145
|
+
onValidateError={(e) => message.error("表单校验失败")}
|
|
146
|
+
>
|
|
147
|
+
<WrappedEoInput
|
|
148
|
+
required
|
|
149
|
+
name="name"
|
|
150
|
+
label="姓名"
|
|
151
|
+
max={6}
|
|
152
|
+
min={2}
|
|
153
|
+
message={{
|
|
154
|
+
required: "一定要填写姓名哟",
|
|
155
|
+
max: "不能超过 6 个字符哟",
|
|
156
|
+
min: "最少填写 2 个字符哟",
|
|
157
|
+
}}
|
|
158
|
+
/>
|
|
159
|
+
<WrappedEoSelect
|
|
160
|
+
required
|
|
161
|
+
name="sex"
|
|
162
|
+
label="性别"
|
|
163
|
+
options={[
|
|
164
|
+
{ label: "男", value: 0 },
|
|
165
|
+
{ label: "女", value: 1 },
|
|
166
|
+
]}
|
|
167
|
+
/>
|
|
168
|
+
<WrappedEoSubmitButtons />
|
|
169
|
+
</WrappedEoForm>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Methods
|
|
173
|
+
|
|
174
|
+
通过方法调用实现表单校验、赋值、重置、取值及字段级校验等操作。
|
|
175
|
+
|
|
176
|
+
```tsx
|
|
177
|
+
const formRef = useRef<any>();
|
|
178
|
+
|
|
179
|
+
<>
|
|
180
|
+
<WrappedEoForm ref={formRef} autoScrollToInvalidFields>
|
|
181
|
+
<WrappedEoInput required name="name" label="姓名" max={6} min={2} />
|
|
182
|
+
<WrappedEoSelect
|
|
183
|
+
required
|
|
184
|
+
name="sex"
|
|
185
|
+
label="性别"
|
|
186
|
+
options={[
|
|
187
|
+
{ label: "男", value: 0 },
|
|
188
|
+
{ label: "女", value: 1 },
|
|
189
|
+
]}
|
|
190
|
+
/>
|
|
191
|
+
</WrappedEoForm>
|
|
192
|
+
<button onClick={() => formRef.current?.validate()}>validate</button>
|
|
193
|
+
<button
|
|
194
|
+
onClick={() => formRef.current?.setInitValue({ name: "Mike", sex: 0 })}
|
|
195
|
+
>
|
|
196
|
+
setInitValue
|
|
197
|
+
</button>
|
|
198
|
+
<button onClick={() => formRef.current?.resetFields()}>resetFields</button>
|
|
199
|
+
<button onClick={() => formRef.current?.resetFields("name")}>
|
|
200
|
+
resetFields(name)
|
|
201
|
+
</button>
|
|
202
|
+
<button onClick={() => console.log(formRef.current?.getFieldsValue())}>
|
|
203
|
+
getFieldsValue
|
|
204
|
+
</button>
|
|
205
|
+
<button onClick={() => console.log(formRef.current?.getFieldsValue("name"))}>
|
|
206
|
+
getFieldsValue(name)
|
|
207
|
+
</button>
|
|
208
|
+
<button onClick={() => formRef.current?.validateField("name")}>
|
|
209
|
+
validateField(name)
|
|
210
|
+
</button>
|
|
211
|
+
<button onClick={() => formRef.current?.resetValidateState()}>
|
|
212
|
+
resetValidateState
|
|
213
|
+
</button>
|
|
214
|
+
</>;
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Static Values
|
|
218
|
+
|
|
219
|
+
通过 staticValues 为验证成功事件附加额外的静态字段。
|
|
220
|
+
|
|
221
|
+
```tsx
|
|
222
|
+
<WrappedEoForm
|
|
223
|
+
staticValues={{ source: "web", version: "1.0" }}
|
|
224
|
+
onValidateSuccess={(e) => console.log(e.detail)}
|
|
225
|
+
>
|
|
226
|
+
<WrappedEoInput name="username" label="用户名" required />
|
|
227
|
+
<WrappedEoSubmitButtons />
|
|
228
|
+
</WrappedEoForm>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Custom Style
|
|
232
|
+
|
|
233
|
+
通过 formStyle 自定义表单容器样式。
|
|
234
|
+
|
|
235
|
+
```tsx
|
|
236
|
+
<WrappedEoForm
|
|
237
|
+
layout="vertical"
|
|
238
|
+
formStyle={{
|
|
239
|
+
gap: "16px",
|
|
240
|
+
padding: "16px",
|
|
241
|
+
background: "#f5f5f5",
|
|
242
|
+
borderRadius: "8px",
|
|
243
|
+
}}
|
|
244
|
+
>
|
|
245
|
+
<WrappedEoInput name="username" label="用户名" />
|
|
246
|
+
<WrappedEoSelect
|
|
247
|
+
name="city"
|
|
248
|
+
label="城市"
|
|
249
|
+
options={["北京", "上海", "深圳"]}
|
|
250
|
+
/>
|
|
251
|
+
<WrappedEoSubmitButtons />
|
|
252
|
+
</WrappedEoForm>
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Horizontal Layout with Column Config
|
|
256
|
+
|
|
257
|
+
使用 horizontal 布局并自定义 labelCol 和 wrapperCol 比例。
|
|
258
|
+
|
|
259
|
+
```tsx
|
|
260
|
+
<WrappedEoForm
|
|
261
|
+
layout="horizontal"
|
|
262
|
+
labelCol={{ span: 6 }}
|
|
263
|
+
wrapperCol={{ span: 18 }}
|
|
264
|
+
size="large"
|
|
265
|
+
>
|
|
266
|
+
<WrappedEoInput name="name" label="姓名" />
|
|
267
|
+
<WrappedEoInput name="email" label="邮箱" />
|
|
268
|
+
<WrappedEoSubmitButtons />
|
|
269
|
+
</WrappedEoForm>
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Theme variant Elevo
|
|
273
|
+
|
|
274
|
+
在 Elevo 主题下展示表单的视觉效果。
|
|
275
|
+
|
|
276
|
+
```tsx
|
|
277
|
+
<WrappedAiPortalHomeContainer
|
|
278
|
+
style={{ padding: "2em", backgroundColor: "#d8d8d8" }}
|
|
279
|
+
>
|
|
280
|
+
<WrappedEoForm
|
|
281
|
+
themeVariant="elevo"
|
|
282
|
+
layout="vertical"
|
|
283
|
+
values={{ city: "深圳", public: true, tags: ["活泼"] }}
|
|
284
|
+
onValidateSuccess={(e) => {
|
|
285
|
+
// show dialog
|
|
286
|
+
}}
|
|
287
|
+
>
|
|
288
|
+
<WrappedEoInput
|
|
289
|
+
label="名称"
|
|
290
|
+
name="name"
|
|
291
|
+
themeVariant="elevo"
|
|
292
|
+
placeholder="请输入"
|
|
293
|
+
/>
|
|
294
|
+
<WrappedEoTextarea
|
|
295
|
+
label="说明"
|
|
296
|
+
name="desc"
|
|
297
|
+
themeVariant="elevo"
|
|
298
|
+
placeholder="请输入"
|
|
299
|
+
/>
|
|
300
|
+
<WrappedEoSelect
|
|
301
|
+
label="类型"
|
|
302
|
+
name="type"
|
|
303
|
+
themeVariant="elevo"
|
|
304
|
+
placeholder="请选择"
|
|
305
|
+
options={["默认", "其他"]}
|
|
306
|
+
/>
|
|
307
|
+
<WrappedEoRadio
|
|
308
|
+
label="城市"
|
|
309
|
+
name="city"
|
|
310
|
+
type="button"
|
|
311
|
+
themeVariant="elevo"
|
|
312
|
+
options={["北京", "上海", "深圳"]}
|
|
313
|
+
/>
|
|
314
|
+
<WrappedEoCheckbox
|
|
315
|
+
label="标签"
|
|
316
|
+
name="tags"
|
|
317
|
+
themeVariant="elevo"
|
|
318
|
+
options={["活泼", "开朗", "好动"]}
|
|
319
|
+
/>
|
|
320
|
+
<WrappedEoSwitch label="公开" name="public" themeVariant="elevo" />
|
|
321
|
+
<WrappedEoSubmitButtons
|
|
322
|
+
themeVariant="elevo"
|
|
323
|
+
submitText="提交"
|
|
324
|
+
cancelText="取消"
|
|
325
|
+
submitType="primary"
|
|
326
|
+
cancelType="default"
|
|
327
|
+
/>
|
|
328
|
+
</WrappedEoForm>
|
|
329
|
+
</WrappedAiPortalHomeContainer>
|
|
330
|
+
```
|
package/docs/eo-icon-select.md
CHANGED
|
@@ -1,9 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-icon-select
|
|
3
|
+
displayName: WrappedEoIconSelect
|
|
4
|
+
description: 图标选择构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-icon-select
|
|
10
|
+
|
|
11
|
+
> 图标选择构件
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ------------ | ------------------------ | ---- | ------ | ---------------- |
|
|
17
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
18
|
+
| label | `string` | 否 | - | 字段说明 |
|
|
19
|
+
| value | `Icon` | 否 | - | 值 |
|
|
20
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
21
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
22
|
+
| message | `Record<string, string>` | 否 | - | 校验错误提示信息 |
|
|
23
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体 |
|
|
24
|
+
|
|
25
|
+
## Events
|
|
26
|
+
|
|
27
|
+
| 事件 | detail | 说明 |
|
|
28
|
+
| ------ | ------------------------------------------------------------------------------------------------------- | ------------ |
|
|
29
|
+
| change | `Icon \| undefined` — { lib: 图标库, icon: 图标名称, category: 图标分类, color: 图标颜色 } \| undefined | 值变化时触发 |
|
|
2
30
|
|
|
3
31
|
## Examples
|
|
4
32
|
|
|
5
33
|
### Basic
|
|
6
34
|
|
|
35
|
+
基础用法,点击图标选择器后打开图标选择弹窗,确认后通过 change 事件获取选中的图标。
|
|
36
|
+
|
|
7
37
|
```yaml preview minHeight="750px"
|
|
8
38
|
- brick: eo-icon-select
|
|
9
39
|
events:
|
|
@@ -13,8 +43,42 @@
|
|
|
13
43
|
- "<% EVENT.detail %>"
|
|
14
44
|
```
|
|
15
45
|
|
|
46
|
+
### With Value
|
|
47
|
+
|
|
48
|
+
设置初始值,展示已选中的图标。
|
|
49
|
+
|
|
50
|
+
```yaml preview minHeight="750px"
|
|
51
|
+
- brick: eo-icon-select
|
|
52
|
+
properties:
|
|
53
|
+
value:
|
|
54
|
+
lib: antd
|
|
55
|
+
icon: star
|
|
56
|
+
theme: filled
|
|
57
|
+
color: "#faad14"
|
|
58
|
+
events:
|
|
59
|
+
change:
|
|
60
|
+
action: console.log
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Disabled
|
|
64
|
+
|
|
65
|
+
设置 disabled 为 true 禁用图标选择器,用户无法打开选择弹窗。
|
|
66
|
+
|
|
67
|
+
```yaml preview
|
|
68
|
+
- brick: eo-icon-select
|
|
69
|
+
properties:
|
|
70
|
+
disabled: true
|
|
71
|
+
value:
|
|
72
|
+
lib: antd
|
|
73
|
+
icon: heart
|
|
74
|
+
theme: filled
|
|
75
|
+
color: "#ff4d4f"
|
|
76
|
+
```
|
|
77
|
+
|
|
16
78
|
### With Form
|
|
17
79
|
|
|
80
|
+
在表单中使用图标选择器,配合 name、label、required、message 进行表单校验。
|
|
81
|
+
|
|
18
82
|
```yaml preview minHeight="750px"
|
|
19
83
|
- brick: eo-form
|
|
20
84
|
events:
|
|
@@ -28,5 +92,20 @@
|
|
|
28
92
|
name: icon
|
|
29
93
|
label: 图标
|
|
30
94
|
required: true
|
|
95
|
+
message:
|
|
96
|
+
required: 请选择一个图标
|
|
31
97
|
- brick: eo-submit-buttons
|
|
32
98
|
```
|
|
99
|
+
|
|
100
|
+
### ThemeVariant
|
|
101
|
+
|
|
102
|
+
通过 themeVariant 属性切换图标选择弹窗的主题样式。
|
|
103
|
+
|
|
104
|
+
```yaml preview minHeight="750px"
|
|
105
|
+
- brick: eo-icon-select
|
|
106
|
+
properties:
|
|
107
|
+
themeVariant: elevo
|
|
108
|
+
events:
|
|
109
|
+
change:
|
|
110
|
+
action: console.log
|
|
111
|
+
```
|