@next-bricks/form 1.21.11 → 1.21.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/bricks.json +35 -35
  2. package/dist/chunks/2537.be4cf82c.js.map +1 -1
  3. package/dist/chunks/845.2f598dd9.js +3 -0
  4. package/dist/chunks/845.2f598dd9.js.map +1 -0
  5. package/dist/chunks/{9949.753e2720.js → 9949.3d28a915.js} +3 -3
  6. package/dist/chunks/9949.3d28a915.js.map +1 -0
  7. package/dist/chunks/eo-auto-complete.0ed854e4.js.map +1 -1
  8. package/dist/chunks/eo-checkbox.2d0a8dbc.js.map +1 -1
  9. package/dist/chunks/eo-color-picker.ecf0c4c0.js.map +1 -1
  10. package/dist/chunks/eo-date-picker.faa60507.js.map +1 -1
  11. package/dist/chunks/eo-dynamic-form-item.aa5f7d9e.js.map +1 -1
  12. package/dist/chunks/eo-form.9db78cdb.js.map +1 -1
  13. package/dist/chunks/eo-icon-select.6a7f7e12.js +3 -0
  14. package/dist/chunks/eo-icon-select.6a7f7e12.js.map +1 -0
  15. package/dist/chunks/eo-radio.b2ed57db.js.map +1 -1
  16. package/dist/chunks/eo-search.206dd65e.js.map +1 -1
  17. package/dist/chunks/eo-select.cd00c791.js.map +1 -1
  18. package/dist/chunks/eo-switch.f0a27c08.js.map +1 -1
  19. package/dist/chunks/eo-textarea.405851dd.js.map +1 -1
  20. package/dist/chunks/eo-time-picker.46e7a667.js.map +1 -1
  21. package/dist/chunks/eo-time-range-picker.5afbad69.js.map +1 -1
  22. package/dist/chunks/eo-upload-file.27a4288d.js.map +1 -1
  23. package/dist/chunks/eo-upload-image.b43c2329.js.map +1 -1
  24. package/dist/chunks/{main.8c394d3e.js → main.59f7a796.js} +2 -2
  25. package/dist/chunks/{main.8c394d3e.js.map → main.59f7a796.js.map} +1 -1
  26. package/dist/examples.json +27 -24
  27. package/dist/index.2c92cf90.js +2 -0
  28. package/dist/{index.7917bac6.js.map → index.2c92cf90.js.map} +1 -1
  29. package/dist/manifest.json +451 -385
  30. package/dist/types.json +2699 -2649
  31. package/dist-types/auto-complete/index.d.ts +4 -0
  32. package/dist-types/checkbox/index.d.ts +2 -2
  33. package/dist-types/color-picker/index.d.ts +2 -1
  34. package/dist-types/date-picker/index.d.ts +1 -1
  35. package/dist-types/form/index.d.ts +16 -1
  36. package/dist-types/form-item/index.d.ts +31 -2
  37. package/dist-types/general-switch/index.d.ts +1 -1
  38. package/dist-types/icon-select/index.d.ts +1 -1
  39. package/dist-types/input/index.d.ts +2 -2
  40. package/dist-types/radio/index.d.ts +4 -4
  41. package/dist-types/select/index.d.ts +1 -0
  42. package/dist-types/textarea/index.d.ts +1 -1
  43. package/dist-types/time-range-picker/index.d.ts +7 -4
  44. package/dist-types/upload/upload-file/index.d.ts +1 -1
  45. package/docs/eo-auto-complete.md +158 -8
  46. package/docs/eo-auto-complete.react.md +229 -0
  47. package/docs/eo-checkbox.md +107 -4
  48. package/docs/eo-checkbox.react.md +369 -0
  49. package/docs/eo-color-picker.md +102 -22
  50. package/docs/eo-color-picker.react.md +160 -0
  51. package/docs/eo-date-picker.md +82 -50
  52. package/docs/eo-date-picker.react.md +146 -0
  53. package/docs/eo-dynamic-form-item.md +60 -15
  54. package/docs/eo-dynamic-form-item.react.md +186 -0
  55. package/docs/eo-form-item.md +194 -0
  56. package/docs/eo-form-item.react.md +163 -0
  57. package/docs/eo-form.md +144 -3
  58. package/docs/eo-form.react.md +330 -0
  59. package/docs/eo-icon-select.md +80 -1
  60. package/docs/eo-icon-select.react.md +97 -0
  61. package/docs/eo-input.md +147 -22
  62. package/docs/eo-input.react.md +275 -0
  63. package/docs/eo-radio.md +145 -8
  64. package/docs/eo-radio.react.md +492 -0
  65. package/docs/eo-search.md +94 -1
  66. package/docs/eo-search.react.md +122 -0
  67. package/docs/eo-select.md +157 -9
  68. package/docs/eo-select.react.md +411 -0
  69. package/docs/eo-submit-buttons.md +120 -7
  70. package/docs/eo-submit-buttons.react.md +129 -0
  71. package/docs/eo-switch.md +57 -3
  72. package/docs/eo-switch.react.md +136 -0
  73. package/docs/eo-textarea.md +101 -22
  74. package/docs/eo-textarea.react.md +193 -0
  75. package/docs/eo-time-picker.md +70 -42
  76. package/docs/eo-time-picker.react.md +106 -0
  77. package/docs/eo-time-range-picker.md +89 -35
  78. package/docs/eo-time-range-picker.react.md +163 -0
  79. package/docs/eo-upload-file.md +101 -9
  80. package/docs/eo-upload-file.react.md +126 -0
  81. package/docs/eo-upload-image.md +70 -6
  82. package/docs/eo-upload-image.react.md +92 -0
  83. package/package.json +2 -2
  84. package/dist/chunks/845.c8b5b1e8.js +0 -3
  85. package/dist/chunks/845.c8b5b1e8.js.map +0 -1
  86. package/dist/chunks/9949.753e2720.js.map +0 -1
  87. package/dist/chunks/eo-icon-select.6ea15888.js +0 -3
  88. package/dist/chunks/eo-icon-select.6ea15888.js.map +0 -1
  89. package/dist/index.7917bac6.js +0 -2
  90. /package/dist/chunks/{845.c8b5b1e8.js.LICENSE.txt → 845.2f598dd9.js.LICENSE.txt} +0 -0
  91. /package/dist/chunks/{9949.753e2720.js.LICENSE.txt → 9949.3d28a915.js.LICENSE.txt} +0 -0
  92. /package/dist/chunks/{eo-icon-select.6ea15888.js.LICENSE.txt → eo-icon-select.6a7f7e12.js.LICENSE.txt} +0 -0
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
- ### Method
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: validateFields
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
+ ```
@@ -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
+ ```