@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-switch.md
CHANGED
|
@@ -1,4 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-switch
|
|
3
|
+
displayName: WrappedEoSwitch
|
|
4
|
+
description: 开关
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-switch
|
|
10
|
+
|
|
11
|
+
> 开关
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ------------- | ---------------------- | ---- | ------ | -------------------------------------------- |
|
|
17
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
18
|
+
| label | `string` | 否 | - | 字段文本 |
|
|
19
|
+
| value | `boolean` | 否 | - | 初始值 |
|
|
20
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
21
|
+
| size | `ComponentSize` | 否 | - | 按钮大小,目前只支持small和非small两种大小。 |
|
|
22
|
+
| checkedText | `string` | 否 | - | 选中时的文本 |
|
|
23
|
+
| unCheckedText | `string` | 否 | - | 非选中时的文本 |
|
|
24
|
+
| checkedIcon | `GeneralIconProps` | 否 | - | 选中时的图标 |
|
|
25
|
+
| unCheckedIcon | `GeneralIconProps` | 否 | - | 非选中时的图标 |
|
|
26
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体 |
|
|
27
|
+
|
|
28
|
+
## Events
|
|
29
|
+
|
|
30
|
+
| 事件 | detail | 说明 |
|
|
31
|
+
| ------ | ------------------------------------------------------- | -------------- |
|
|
32
|
+
| switch | `boolean` — 开关当前状态,true 表示开启,false 表示关闭 | 开关改变时触发 |
|
|
2
33
|
|
|
3
34
|
## Examples
|
|
4
35
|
|
|
@@ -25,7 +56,18 @@
|
|
|
25
56
|
label: switch
|
|
26
57
|
```
|
|
27
58
|
|
|
28
|
-
###
|
|
59
|
+
### Value
|
|
60
|
+
|
|
61
|
+
通过 `value` 属性设置开关的初始状态。
|
|
62
|
+
|
|
63
|
+
```yaml preview
|
|
64
|
+
- brick: eo-switch
|
|
65
|
+
properties:
|
|
66
|
+
value: true
|
|
67
|
+
label: switch
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Disabled
|
|
29
71
|
|
|
30
72
|
```yaml preview
|
|
31
73
|
- brick: eo-switch
|
|
@@ -35,7 +77,7 @@
|
|
|
35
77
|
label: switch
|
|
36
78
|
```
|
|
37
79
|
|
|
38
|
-
###
|
|
80
|
+
### Size
|
|
39
81
|
|
|
40
82
|
```yaml preview
|
|
41
83
|
- brick: eo-switch
|
|
@@ -48,6 +90,8 @@
|
|
|
48
90
|
|
|
49
91
|
### Customizations
|
|
50
92
|
|
|
93
|
+
通过 `checkedText`、`unCheckedText`、`checkedIcon`、`unCheckedIcon` 属性自定义开关的文本和图标。
|
|
94
|
+
|
|
51
95
|
```yaml preview
|
|
52
96
|
- brick: eo-switch
|
|
53
97
|
properties:
|
|
@@ -65,6 +109,16 @@
|
|
|
65
109
|
lib: antd
|
|
66
110
|
```
|
|
67
111
|
|
|
112
|
+
### Theme Variant
|
|
113
|
+
|
|
114
|
+
```yaml preview
|
|
115
|
+
- brick: eo-switch
|
|
116
|
+
properties:
|
|
117
|
+
themeVariant: elevo
|
|
118
|
+
label: switch
|
|
119
|
+
value: true
|
|
120
|
+
```
|
|
121
|
+
|
|
68
122
|
### Event
|
|
69
123
|
|
|
70
124
|
```yaml preview
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-switch
|
|
3
|
+
displayName: WrappedEoSwitch
|
|
4
|
+
description: 开关
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoSwitch
|
|
10
|
+
|
|
11
|
+
> 开关
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { WrappedEoSwitch } from "@next-bricks/form/eo-switch";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------- | ---------------------- | ---- | ------ | -------------------------------------------- |
|
|
23
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
24
|
+
| label | `string` | 否 | - | 字段文本 |
|
|
25
|
+
| value | `boolean` | 否 | - | 初始值 |
|
|
26
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
27
|
+
| size | `ComponentSize` | 否 | - | 按钮大小,目前只支持small和非small两种大小。 |
|
|
28
|
+
| checkedText | `string` | 否 | - | 选中时的文本 |
|
|
29
|
+
| unCheckedText | `string` | 否 | - | 非选中时的文本 |
|
|
30
|
+
| checkedIcon | `GeneralIconProps` | 否 | - | 选中时的图标 |
|
|
31
|
+
| unCheckedIcon | `GeneralIconProps` | 否 | - | 非选中时的图标 |
|
|
32
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体 |
|
|
33
|
+
|
|
34
|
+
## Events
|
|
35
|
+
|
|
36
|
+
| 事件 | detail | 说明 |
|
|
37
|
+
| -------- | ------------------------------------------------------- | -------------- |
|
|
38
|
+
| onSwitch | `boolean` — 开关当前状态,true 表示开启,false 表示关闭 | 开关改变时触发 |
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
|
|
42
|
+
### Basic
|
|
43
|
+
|
|
44
|
+
```tsx preview
|
|
45
|
+
<WrappedEoSwitch disabled={false} onSwitch={(value) => console.log(value)} />
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Label
|
|
49
|
+
|
|
50
|
+
```tsx preview
|
|
51
|
+
<WrappedEoSwitch
|
|
52
|
+
disabled={false}
|
|
53
|
+
label="switch"
|
|
54
|
+
onSwitch={(value) => console.log(value)}
|
|
55
|
+
/>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Value
|
|
59
|
+
|
|
60
|
+
通过 `value` 属性设置开关的初始状态。
|
|
61
|
+
|
|
62
|
+
```tsx preview
|
|
63
|
+
<WrappedEoSwitch value={true} label="switch" />
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Disabled
|
|
67
|
+
|
|
68
|
+
```tsx preview
|
|
69
|
+
<WrappedEoSwitch disabled={true} value={true} label="switch" />
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Size
|
|
73
|
+
|
|
74
|
+
```tsx preview
|
|
75
|
+
<WrappedEoSwitch disabled={false} value={true} label="switch" size="small" />
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Customizations
|
|
79
|
+
|
|
80
|
+
通过 `checkedText`、`unCheckedText`、`checkedIcon`、`unCheckedIcon` 属性自定义开关的文本和图标。
|
|
81
|
+
|
|
82
|
+
```tsx preview
|
|
83
|
+
<WrappedEoSwitch
|
|
84
|
+
checkedText="123"
|
|
85
|
+
unCheckedText="456"
|
|
86
|
+
disabled={false}
|
|
87
|
+
size="small"
|
|
88
|
+
label="text"
|
|
89
|
+
checkedIcon={{ icon: "plus-circle", lib: "antd", theme: "outlined" }}
|
|
90
|
+
unCheckedIcon={{ icon: "plus-circle", lib: "antd" }}
|
|
91
|
+
/>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Theme Variant
|
|
95
|
+
|
|
96
|
+
```tsx preview
|
|
97
|
+
<WrappedEoSwitch themeVariant="elevo" label="switch" value={true} />
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Event
|
|
101
|
+
|
|
102
|
+
```tsx preview
|
|
103
|
+
function Demo() {
|
|
104
|
+
const [switchValue, setSwitchValue] = useState(false);
|
|
105
|
+
return (
|
|
106
|
+
<div>
|
|
107
|
+
<WrappedEoSwitch
|
|
108
|
+
disabled={false}
|
|
109
|
+
onSwitch={(value) => {
|
|
110
|
+
console.log(value);
|
|
111
|
+
setSwitchValue(value);
|
|
112
|
+
}}
|
|
113
|
+
/>
|
|
114
|
+
<p>当前状态: {switchValue ? "开启" : "关闭"}</p>
|
|
115
|
+
</div>
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### With Form
|
|
121
|
+
|
|
122
|
+
```tsx preview
|
|
123
|
+
function Demo() {
|
|
124
|
+
const formRef = useRef(null);
|
|
125
|
+
return (
|
|
126
|
+
<WrappedEoForm
|
|
127
|
+
ref={formRef}
|
|
128
|
+
onValidateSuccess={(values) => console.log(values)}
|
|
129
|
+
onValuesChange={(values) => console.log(values)}
|
|
130
|
+
>
|
|
131
|
+
<WrappedEoSwitch name="switch" label="开关" />
|
|
132
|
+
<WrappedEoSubmitButtons />
|
|
133
|
+
</WrappedEoForm>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
```
|
package/docs/eo-textarea.md
CHANGED
|
@@ -1,55 +1,109 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-textarea
|
|
3
|
+
displayName: WrappedEoTextarea
|
|
4
|
+
description: 通用多行文本输入框构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-textarea
|
|
10
|
+
|
|
11
|
+
> 通用多行文本输入框构件
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ------------- | ------------------------ | ---- | ------ | --------------------------------------------------------------------------- |
|
|
17
|
+
| name | `string` | 否 | - | 字段名称 |
|
|
18
|
+
| label | `string` | 否 | - | 标签文字 |
|
|
19
|
+
| value | `string` | 否 | - | 值 |
|
|
20
|
+
| placeholder | `string` | 否 | - | 占位说明 |
|
|
21
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
22
|
+
| minLength | `number` | 否 | - | 最小长度 |
|
|
23
|
+
| maxLength | `number` | 否 | - | 最大长度 |
|
|
24
|
+
| autoSize | `AutoSize` | 否 | - | 大小自适应 |
|
|
25
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
26
|
+
| max | `number` | 否 | - | 表单校验最大长度 |
|
|
27
|
+
| min | `number` | 否 | - | 表单校验最小长度 |
|
|
28
|
+
| message | `Record<string, string>` | 否 | - | 校验信息 |
|
|
29
|
+
| textareaStyle | `React.CSSProperties` | 否 | - | 自定义样式 |
|
|
30
|
+
| variant | `"default" \| "muted"` | 否 | - | 变体。`muted`:在 themeVariant 为 elevo 时可用,设置时输入框没有 box-shadow |
|
|
31
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体 |
|
|
32
|
+
|
|
33
|
+
## Events
|
|
34
|
+
|
|
35
|
+
| 事件 | detail | 说明 |
|
|
36
|
+
| ------ | --------------------- | ---------- |
|
|
37
|
+
| change | `string` — 当前输入值 | 值改变事件 |
|
|
38
|
+
|
|
39
|
+
## Methods
|
|
40
|
+
|
|
41
|
+
| 方法 | 说明 |
|
|
42
|
+
| --------------- | ---------------- |
|
|
43
|
+
| focusTextarea() | 使文本域获得焦点 |
|
|
6
44
|
|
|
7
45
|
## Examples
|
|
8
46
|
|
|
9
|
-
###
|
|
47
|
+
### Basic
|
|
48
|
+
|
|
49
|
+
展示多行文本输入框的最基本用法。
|
|
10
50
|
|
|
11
51
|
```yaml preview
|
|
12
52
|
- brick: eo-textarea
|
|
13
53
|
properties:
|
|
14
54
|
label: 多行输入框
|
|
55
|
+
placeholder: 请输入内容
|
|
15
56
|
```
|
|
16
57
|
|
|
17
58
|
### Value
|
|
18
59
|
|
|
60
|
+
通过 `value` 属性设置文本域的默认值。
|
|
61
|
+
|
|
19
62
|
```yaml preview
|
|
20
63
|
- brick: eo-textarea
|
|
21
64
|
properties:
|
|
65
|
+
label: 默认值
|
|
22
66
|
value: Default Value
|
|
23
67
|
```
|
|
24
68
|
|
|
25
69
|
### Disabled
|
|
26
70
|
|
|
71
|
+
设置 `disabled` 属性禁用文本域。
|
|
72
|
+
|
|
27
73
|
```yaml preview
|
|
28
74
|
- brick: eo-textarea
|
|
29
75
|
properties:
|
|
76
|
+
label: 禁用状态
|
|
30
77
|
value: Default Value
|
|
31
78
|
disabled: true
|
|
32
79
|
```
|
|
33
80
|
|
|
34
81
|
### Placeholder
|
|
35
82
|
|
|
83
|
+
通过 `placeholder` 属性设置文本域的占位提示文字。
|
|
84
|
+
|
|
36
85
|
```yaml preview
|
|
37
86
|
- brick: eo-textarea
|
|
38
87
|
properties:
|
|
39
88
|
placeholder: This is placeholder...
|
|
40
89
|
```
|
|
41
90
|
|
|
42
|
-
###
|
|
91
|
+
### MaxLength
|
|
92
|
+
|
|
93
|
+
通过 `maxLength` 属性限制输入的最大字符数。
|
|
43
94
|
|
|
44
95
|
```yaml preview
|
|
45
96
|
- brick: eo-textarea
|
|
46
97
|
properties:
|
|
98
|
+
label: 最大长度
|
|
47
99
|
placeholder: max length = 10
|
|
48
100
|
maxLength: 10
|
|
49
101
|
```
|
|
50
102
|
|
|
51
103
|
### AutoSize
|
|
52
104
|
|
|
105
|
+
通过 `autoSize` 属性让文本域高度随内容自动调整,支持设置 `minRows` 和 `maxRows` 限制行数范围。
|
|
106
|
+
|
|
53
107
|
```yaml preview
|
|
54
108
|
- brick: eo-textarea
|
|
55
109
|
properties:
|
|
@@ -57,18 +111,20 @@
|
|
|
57
111
|
autoSize: true
|
|
58
112
|
- brick: eo-textarea
|
|
59
113
|
properties:
|
|
60
|
-
placeholder: "autoSize: { minRows: 3}"
|
|
114
|
+
placeholder: "autoSize: { minRows: 3 }"
|
|
61
115
|
autoSize:
|
|
62
116
|
minRows: 3
|
|
63
117
|
- brick: eo-textarea
|
|
64
118
|
properties:
|
|
65
|
-
placeholder: "autoSize: { minRows: 3, maxRows: 5}"
|
|
119
|
+
placeholder: "autoSize: { minRows: 3, maxRows: 5 }"
|
|
66
120
|
autoSize:
|
|
67
121
|
minRows: 3
|
|
68
122
|
maxRows: 5
|
|
69
123
|
```
|
|
70
124
|
|
|
71
|
-
###
|
|
125
|
+
### TextareaStyle
|
|
126
|
+
|
|
127
|
+
通过 `textareaStyle` 属性自定义文本域的内联样式。
|
|
72
128
|
|
|
73
129
|
```yaml preview
|
|
74
130
|
- brick: eo-textarea
|
|
@@ -88,28 +144,26 @@
|
|
|
88
144
|
border: "1px solid #8b2121"
|
|
89
145
|
```
|
|
90
146
|
|
|
91
|
-
###
|
|
147
|
+
### Events
|
|
148
|
+
|
|
149
|
+
监听 `change` 事件获取用户输入的实时值。
|
|
92
150
|
|
|
93
151
|
```yaml preview
|
|
94
152
|
- brick: eo-textarea
|
|
95
|
-
|
|
153
|
+
properties:
|
|
96
154
|
label: Event
|
|
155
|
+
placeholder: 请输入内容
|
|
156
|
+
events:
|
|
97
157
|
change:
|
|
98
158
|
action: message.success
|
|
99
159
|
args:
|
|
100
160
|
- <% EVENT.detail %>
|
|
101
|
-
focus:
|
|
102
|
-
action: message.success
|
|
103
|
-
args:
|
|
104
|
-
- focus
|
|
105
|
-
blur:
|
|
106
|
-
action: message.success
|
|
107
|
-
args:
|
|
108
|
-
- blur
|
|
109
161
|
```
|
|
110
162
|
|
|
111
163
|
### With Form
|
|
112
164
|
|
|
165
|
+
在 `eo-form` 中使用,通过 `name`、`label`、`required`、`min`、`max`、`message` 属性集成表单校验功能。
|
|
166
|
+
|
|
113
167
|
```yaml preview
|
|
114
168
|
- brick: eo-form
|
|
115
169
|
events:
|
|
@@ -120,8 +174,33 @@
|
|
|
120
174
|
children:
|
|
121
175
|
- brick: eo-textarea
|
|
122
176
|
properties:
|
|
123
|
-
label:
|
|
124
|
-
name:
|
|
177
|
+
label: 描述
|
|
178
|
+
name: description
|
|
125
179
|
required: true
|
|
180
|
+
min: 5
|
|
181
|
+
max: 200
|
|
182
|
+
message:
|
|
183
|
+
required: 请输入描述
|
|
184
|
+
min: 描述不能少于5个字符
|
|
185
|
+
max: 描述不能超过200个字符
|
|
126
186
|
- brick: eo-submit-buttons
|
|
127
187
|
```
|
|
188
|
+
|
|
189
|
+
### Methods
|
|
190
|
+
|
|
191
|
+
通过 `focusTextarea` 方法使文本域获得焦点。
|
|
192
|
+
|
|
193
|
+
```yaml preview
|
|
194
|
+
- brick: eo-textarea
|
|
195
|
+
id: my-textarea
|
|
196
|
+
properties:
|
|
197
|
+
label: 文本域
|
|
198
|
+
placeholder: 点击按钮使其获得焦点
|
|
199
|
+
- brick: eo-button
|
|
200
|
+
properties:
|
|
201
|
+
textContent: 获取焦点
|
|
202
|
+
events:
|
|
203
|
+
click:
|
|
204
|
+
target: "#my-textarea"
|
|
205
|
+
method: focusTextarea
|
|
206
|
+
```
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-textarea
|
|
3
|
+
displayName: WrappedEoTextarea
|
|
4
|
+
description: 通用多行文本输入框构件
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/form"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoTextarea
|
|
10
|
+
|
|
11
|
+
> 通用多行文本输入框构件
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoTextarea } 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
|
+
| minLength | `number` | 否 | - | 最小长度 |
|
|
29
|
+
| maxLength | `number` | 否 | - | 最大长度 |
|
|
30
|
+
| autoSize | `AutoSize` | 否 | - | 大小自适应 |
|
|
31
|
+
| required | `boolean` | 否 | - | 是否必填 |
|
|
32
|
+
| max | `number` | 否 | - | 表单校验最大长度 |
|
|
33
|
+
| min | `number` | 否 | - | 表单校验最小长度 |
|
|
34
|
+
| message | `Record<string, string>` | 否 | - | 校验信息 |
|
|
35
|
+
| textareaStyle | `React.CSSProperties` | 否 | - | 自定义样式 |
|
|
36
|
+
| variant | `"default" \| "muted"` | 否 | - | 变体。`muted`:在 themeVariant 为 elevo 时可用,设置时输入框没有 box-shadow |
|
|
37
|
+
| themeVariant | `"default" \| "elevo"` | 否 | - | 主题变体 |
|
|
38
|
+
|
|
39
|
+
## Events
|
|
40
|
+
|
|
41
|
+
| 事件 | detail | 说明 |
|
|
42
|
+
| -------- | --------------------- | ---------- |
|
|
43
|
+
| onChange | `string` — 当前输入值 | 值改变事件 |
|
|
44
|
+
|
|
45
|
+
## Methods
|
|
46
|
+
|
|
47
|
+
| 方法 | 说明 |
|
|
48
|
+
| --------------- | ---------------- |
|
|
49
|
+
| focusTextarea() | 使文本域获得焦点 |
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
### Basic
|
|
54
|
+
|
|
55
|
+
展示多行文本输入框的最基本用法。
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<WrappedEoTextarea label="多行输入框" placeholder="请输入内容" />
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Value
|
|
62
|
+
|
|
63
|
+
通过 `value` 属性设置文本域的默认值。
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
<WrappedEoTextarea label="默认值" value="Default Value" />
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Disabled
|
|
70
|
+
|
|
71
|
+
设置 `disabled` 属性禁用文本域。
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<WrappedEoTextarea label="禁用状态" value="Default Value" disabled />
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Placeholder
|
|
78
|
+
|
|
79
|
+
通过 `placeholder` 属性设置文本域的占位提示文字。
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
<WrappedEoTextarea placeholder="This is placeholder..." />
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### MaxLength
|
|
86
|
+
|
|
87
|
+
通过 `maxLength` 属性限制输入的最大字符数。
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
<WrappedEoTextarea
|
|
91
|
+
label="最大长度"
|
|
92
|
+
placeholder="max length = 10"
|
|
93
|
+
maxLength={10}
|
|
94
|
+
/>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### AutoSize
|
|
98
|
+
|
|
99
|
+
通过 `autoSize` 属性让文本域高度随内容自动调整,支持设置 `minRows` 和 `maxRows` 限制行数范围。
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
<>
|
|
103
|
+
<WrappedEoTextarea placeholder="autoSize: true" autoSize={true} />
|
|
104
|
+
<WrappedEoTextarea
|
|
105
|
+
placeholder="autoSize: { minRows: 3 }"
|
|
106
|
+
autoSize={{ minRows: 3 }}
|
|
107
|
+
/>
|
|
108
|
+
<WrappedEoTextarea
|
|
109
|
+
placeholder="autoSize: { minRows: 3, maxRows: 5 }"
|
|
110
|
+
autoSize={{ minRows: 3, maxRows: 5 }}
|
|
111
|
+
/>
|
|
112
|
+
</>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### TextareaStyle
|
|
116
|
+
|
|
117
|
+
通过 `textareaStyle` 属性自定义文本域的内联样式。
|
|
118
|
+
|
|
119
|
+
```tsx
|
|
120
|
+
<>
|
|
121
|
+
<WrappedEoTextarea
|
|
122
|
+
placeholder="width: 180px"
|
|
123
|
+
textareaStyle={{ width: "180px" }}
|
|
124
|
+
/>
|
|
125
|
+
<WrappedEoTextarea
|
|
126
|
+
placeholder="width: 250px"
|
|
127
|
+
textareaStyle={{ width: "250px" }}
|
|
128
|
+
/>
|
|
129
|
+
<WrappedEoTextarea
|
|
130
|
+
placeholder="border style"
|
|
131
|
+
textareaStyle={{ border: "1px solid #8b2121" }}
|
|
132
|
+
/>
|
|
133
|
+
</>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Events
|
|
137
|
+
|
|
138
|
+
监听 `onChange` 事件获取用户输入的实时值。
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
<WrappedEoTextarea
|
|
142
|
+
label="Event"
|
|
143
|
+
placeholder="请输入内容"
|
|
144
|
+
onChange={(e) => console.log(e.detail)}
|
|
145
|
+
/>
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### With Form
|
|
149
|
+
|
|
150
|
+
在 `WrappedEoForm` 中使用,通过 `name`、`label`、`required`、`min`、`max`、`message` 属性集成表单校验功能。
|
|
151
|
+
|
|
152
|
+
```tsx
|
|
153
|
+
<WrappedEoForm
|
|
154
|
+
onValidateSuccess={(e) => console.log(e.detail)}
|
|
155
|
+
onValuesChange={(e) => console.log(e.detail)}
|
|
156
|
+
>
|
|
157
|
+
<WrappedEoTextarea
|
|
158
|
+
label="描述"
|
|
159
|
+
name="description"
|
|
160
|
+
required
|
|
161
|
+
min={5}
|
|
162
|
+
max={200}
|
|
163
|
+
message={{
|
|
164
|
+
required: "请输入描述",
|
|
165
|
+
min: "描述不能少于5个字符",
|
|
166
|
+
max: "描述不能超过200个字符",
|
|
167
|
+
}}
|
|
168
|
+
/>
|
|
169
|
+
<WrappedEoSubmitButtons />
|
|
170
|
+
</WrappedEoForm>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Methods
|
|
174
|
+
|
|
175
|
+
通过 `focusTextarea` 方法使文本域获得焦点。
|
|
176
|
+
|
|
177
|
+
```tsx
|
|
178
|
+
function Demo() {
|
|
179
|
+
const ref = useRef(null);
|
|
180
|
+
return (
|
|
181
|
+
<>
|
|
182
|
+
<WrappedEoTextarea
|
|
183
|
+
ref={ref}
|
|
184
|
+
label="文本域"
|
|
185
|
+
placeholder="点击按钮使其获得焦点"
|
|
186
|
+
/>
|
|
187
|
+
<WrappedEoButton onClick={() => ref.current?.focusTextarea()}>
|
|
188
|
+
获取焦点
|
|
189
|
+
</WrappedEoButton>
|
|
190
|
+
</>
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
```
|