@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
@@ -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
+ ```
@@ -1,14 +1,72 @@
1
- 构件 `eo-date-picker`
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
- ### picker
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
- ### With Form
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
- ## Examples
89
+ ### 显示标签
51
90
 
52
- ### Label
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
- ### Value
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
- ### Hide or disable buttons
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: <% (value,row)=>row===1 %>
104
- disabledRemoveButton: <% (value,row)=>row===0 %>
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
- ### Event
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
  ```