@next-bricks/advanced 0.51.3 → 0.51.4
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 +22 -22
- package/dist/chunks/4758.703acb39.js +3 -0
- package/dist/chunks/4758.703acb39.js.map +1 -0
- package/dist/chunks/{6070.74d93326.js → 7039.0ea489d5.js} +2 -2
- package/dist/chunks/7039.0ea489d5.js.map +1 -0
- package/dist/chunks/8382.eba253d7.js +2 -0
- package/dist/chunks/8382.eba253d7.js.map +1 -0
- package/dist/chunks/eo-cascader.b5d6ee02.js +2 -0
- package/dist/chunks/eo-cascader.b5d6ee02.js.map +1 -0
- package/dist/chunks/eo-next-table.25f4bf4d.js.map +1 -1
- package/dist/chunks/eo-table.5dd09651.js.map +1 -1
- package/dist/chunks/eo-text-tooltip.74db365e.js.map +1 -1
- package/dist/chunks/eo-tree-select.4034b1d9.js +2 -0
- package/dist/chunks/eo-tree-select.4034b1d9.js.map +1 -0
- package/dist/chunks/eo-workbench-layout-v2.24da89e7.js.map +1 -1
- package/dist/chunks/eo-workbench-layout.1ed8ce80.js.map +1 -1
- package/dist/chunks/{main.f43a8ad8.js → main.6b40d042.js} +2 -2
- package/dist/chunks/{main.f43a8ad8.js.map → main.6b40d042.js.map} +1 -1
- package/dist/chunks/pdf-viewer.036787d7.js.map +1 -1
- package/dist/examples.json +17 -11
- package/dist/{index.3d8026b9.js → index.6f2baf4a.js} +2 -2
- package/dist/{index.3d8026b9.js.map → index.6f2baf4a.js.map} +1 -1
- package/dist/manifest.json +656 -563
- package/dist/types.json +234 -234
- package/dist-types/cascader/index.d.ts +18 -0
- package/dist-types/next-table/index.d.ts +2 -1
- package/dist-types/pdf-viewer/index.d.ts +7 -1
- package/dist-types/table/index.d.ts +2 -1
- package/dist-types/text-tooltip/index.d.ts +5 -4
- package/dist-types/tree-select/index.d.ts +41 -1
- package/dist-types/workbench-layout/index.d.ts +26 -1
- package/dist-types/workbench-layout-v2/index.d.ts +31 -9
- package/docs/eo-cascader.md +184 -1
- package/docs/eo-cascader.react.md +247 -0
- package/docs/eo-next-table.md +343 -168
- package/docs/eo-next-table.react.md +923 -0
- package/docs/eo-table.md +296 -0
- package/docs/eo-table.react.md +223 -0
- package/docs/eo-text-tooltip.md +46 -1
- package/docs/eo-text-tooltip.react.md +69 -0
- package/docs/eo-tree-select.md +127 -1
- package/docs/eo-tree-select.react.md +206 -0
- package/docs/eo-tree.md +108 -2
- package/docs/eo-tree.react.md +220 -0
- package/docs/eo-workbench-layout-v2.md +204 -0
- package/docs/eo-workbench-layout-v2.react.md +162 -0
- package/docs/eo-workbench-layout.md +45 -3
- package/docs/eo-workbench-layout.react.md +141 -0
- package/docs/pdf-viewer.md +48 -1
- package/docs/pdf-viewer.react.md +63 -0
- package/package.json +2 -2
- package/dist/chunks/4758.5f79e636.js +0 -3
- package/dist/chunks/4758.5f79e636.js.map +0 -1
- package/dist/chunks/6070.74d93326.js.map +0 -1
- package/dist/chunks/8382.d552299f.js +0 -2
- package/dist/chunks/8382.d552299f.js.map +0 -1
- package/dist/chunks/eo-cascader.86a685ca.js +0 -2
- package/dist/chunks/eo-cascader.86a685ca.js.map +0 -1
- package/dist/chunks/eo-tree-select.31dae71f.js +0 -2
- package/dist/chunks/eo-tree-select.31dae71f.js.map +0 -1
- /package/dist/chunks/{4758.5f79e636.js.LICENSE.txt → 4758.703acb39.js.LICENSE.txt} +0 -0
|
@@ -27,16 +27,41 @@ export interface EoWorkbenchLayoutComponentProps extends EoWorkbenchLayoutProps
|
|
|
27
27
|
onActionClick?: (action: SimpleAction, layouts: Layout[]) => void;
|
|
28
28
|
}
|
|
29
29
|
export declare const EoWorkbenchLayoutComponent: React.ForwardRefExoticComponent<EoWorkbenchLayoutComponentProps & React.RefAttributes<EoWorkbenchLayoutComponentRef>>;
|
|
30
|
+
export interface EoWorkbenchLayoutEventsMap {
|
|
31
|
+
change: CustomEvent<Layout[]>;
|
|
32
|
+
save: CustomEvent<Layout[]>;
|
|
33
|
+
cancel: CustomEvent<void>;
|
|
34
|
+
"action.click": CustomEvent<{
|
|
35
|
+
action: SimpleAction;
|
|
36
|
+
layouts: Layout[];
|
|
37
|
+
}>;
|
|
38
|
+
}
|
|
39
|
+
export interface EoWorkbenchLayoutEventsMapping {
|
|
40
|
+
onChange: "change";
|
|
41
|
+
onSave: "save";
|
|
42
|
+
onCancel: "cancel";
|
|
43
|
+
onActionClick: "action.click";
|
|
44
|
+
}
|
|
30
45
|
/**
|
|
31
|
-
*
|
|
46
|
+
* 工作台布局(拖拽式卡片布局,支持编辑模式)
|
|
32
47
|
* @deprecated Please use eo-workbench-layout-v2 which support global styles instead
|
|
48
|
+
* @author developer
|
|
49
|
+
* @category layout
|
|
33
50
|
*/
|
|
34
51
|
export declare class EoWorkbenchLayout extends ReactNextElement {
|
|
35
52
|
#private;
|
|
53
|
+
/** 编辑模式下左侧卡片列表面板的标题 */
|
|
36
54
|
accessor cardTitle: string | undefined;
|
|
55
|
+
/** 是否进入编辑模式,编辑模式下可拖拽调整布局并显示卡片选择面板 */
|
|
37
56
|
accessor isEdit: boolean | undefined;
|
|
57
|
+
/** 当前布局配置,每项对应一个卡片的位置与大小 */
|
|
38
58
|
accessor layouts: Layout[] | undefined;
|
|
59
|
+
/** 组件列表,每项包含 key、title、useBrick 和 position 信息 */
|
|
39
60
|
accessor componentList: Item[] | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* 设置布局配置
|
|
63
|
+
* @param layouts - 新的布局配置数组
|
|
64
|
+
*/
|
|
40
65
|
setLayouts(layouts: Layout[]): void;
|
|
41
66
|
render(): React.JSX.Element;
|
|
42
67
|
}
|
|
@@ -29,30 +29,52 @@ export interface EoWorkbenchLayoutV2ComponentProps extends EoWorkbenchLayoutV2Pr
|
|
|
29
29
|
onSetting?: () => void;
|
|
30
30
|
}
|
|
31
31
|
export declare const EoWorkbenchLayoutComponent: React.ForwardRefExoticComponent<EoWorkbenchLayoutV2ComponentProps & React.RefAttributes<EoWorkbenchLayoutV2ComponentRef>>;
|
|
32
|
+
export interface EoWorkbenchLayoutV2EventsMap {
|
|
33
|
+
change: CustomEvent<ExtraLayout[]>;
|
|
34
|
+
save: CustomEvent<ExtraLayout[]>;
|
|
35
|
+
cancel: CustomEvent<void>;
|
|
36
|
+
setting: CustomEvent<void>;
|
|
37
|
+
"action.click": CustomEvent<{
|
|
38
|
+
action: SimpleAction;
|
|
39
|
+
layouts: ExtraLayout[];
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
export interface EoWorkbenchLayoutV2EventsMapping {
|
|
43
|
+
onChange: "change";
|
|
44
|
+
onSave: "save";
|
|
45
|
+
onCancel: "cancel";
|
|
46
|
+
onSetting: "setting";
|
|
47
|
+
onActionClick: "action.click";
|
|
48
|
+
}
|
|
32
49
|
/**
|
|
33
|
-
* 工作台布局V2
|
|
50
|
+
* 工作台布局 V2,支持拖拽式卡片布局与全局样式(不使用 shadow DOM)
|
|
51
|
+
* @author developer
|
|
52
|
+
* @category layout
|
|
34
53
|
*/
|
|
35
54
|
export declare class EoWorkbenchLayoutV2 extends ReactNextElement {
|
|
36
55
|
#private;
|
|
56
|
+
/** 编辑模式下左侧卡片列表面板的标题 */
|
|
37
57
|
accessor cardTitle: string | undefined;
|
|
58
|
+
/** 是否进入编辑模式,编辑模式下可拖拽调整布局并显示卡片选择面板 */
|
|
38
59
|
accessor isEdit: boolean | undefined;
|
|
60
|
+
/** 当前布局配置,每项对应一个卡片的位置与大小及样式信息 */
|
|
39
61
|
accessor layouts: ExtraLayout[] | undefined;
|
|
62
|
+
/** 编辑模式下工具栏区域的自定义构件 */
|
|
40
63
|
accessor toolbarBricks: {
|
|
41
64
|
useBrick: UseSingleBrickConf[];
|
|
42
65
|
} | undefined;
|
|
66
|
+
/** 组件列表,每项包含 key、title、useBrick 和 position 信息 */
|
|
43
67
|
accessor componentList: WorkbenchComponent[] | undefined;
|
|
44
|
-
/**
|
|
45
|
-
* 自定义卡片默认配置, 用于覆盖默认卡片配置
|
|
46
|
-
*/
|
|
68
|
+
/** 自定义卡片默认配置,用于覆盖默认卡片样式配置 */
|
|
47
69
|
accessor customDefaultCardConfigMap: Record<string, CardStyleConfig> | undefined;
|
|
48
|
-
/**
|
|
49
|
-
* description: 用于设置页面样式和布局的按钮
|
|
50
|
-
*/
|
|
70
|
+
/** 是否显示设置按钮,用于触发页面样式和布局设置 */
|
|
51
71
|
accessor showSettingButton: boolean | undefined;
|
|
72
|
+
/** 卡片之间的间距(px) */
|
|
73
|
+
accessor gap: number | undefined;
|
|
52
74
|
/**
|
|
53
|
-
*
|
|
75
|
+
* 设置布局配置
|
|
76
|
+
* @param layouts - 新的布局配置数组
|
|
54
77
|
*/
|
|
55
|
-
accessor gap: number | undefined;
|
|
56
78
|
setLayouts(layouts: Layout[]): void;
|
|
57
79
|
connectedCallback(): void;
|
|
58
80
|
render(): React.JSX.Element;
|
package/docs/eo-cascader.md
CHANGED
|
@@ -1,9 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-cascader
|
|
3
|
+
displayName: WrappedEoCascader
|
|
4
|
+
description: 级联选择器
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/advanced"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# eo-cascader
|
|
10
|
+
|
|
11
|
+
> 级联选择器
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| -------------- | ------------------------------------ | ---- | ---------------------------------------------------------- | ------------------------------------------------------------- |
|
|
17
|
+
| name | `string` | 否 | - | 表单字段名 |
|
|
18
|
+
| label | `string` | 否 | - | 表单字段标签 |
|
|
19
|
+
| required | `boolean` | 否 | - | 是否为必填项 |
|
|
20
|
+
| options | `AntdCascaderProps["options"]` | 否 | - | 可选项数据源 |
|
|
21
|
+
| fieldNames | `AntdCascaderProps["fieldNames"]` | 否 | `{ label: "label", value: "value", children: "children" }` | 自定义字段名,指定 label、value、children 对应的字段 |
|
|
22
|
+
| value | `AntdCascaderProps["value"]` | 否 | - | 当前选中的值 |
|
|
23
|
+
| placeholder | `string` | 否 | - | 输入框占位文本 |
|
|
24
|
+
| multiple | `boolean` | 否 | - | 是否支持多选 |
|
|
25
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
26
|
+
| allowClear | `boolean` | 否 | `true` | 是否支持清除 |
|
|
27
|
+
| showSearch | `boolean` | 否 | `true` | 是否支持搜索,开启后可通过输入关键字过滤选项 |
|
|
28
|
+
| suffixIcon | `GeneralIconProps` | 否 | - | 自定义下拉箭头图标 |
|
|
29
|
+
| expandTrigger | `AntdCascaderProps["expandTrigger"]` | 否 | `"click"` | 次级菜单的展开方式,可选 click 或 hover |
|
|
30
|
+
| popupPlacement | `AntdCascaderProps["placement"]` | 否 | `"bottomLeft"` | 浮层预设位置,可选 bottomLeft、bottomRight、topLeft、topRight |
|
|
31
|
+
| size | `AntdCascaderProps["size"]` | 否 | - | 输入框大小,可选 large、middle、small |
|
|
32
|
+
| limit | `number` | 否 | `50` | 搜索结果的最大条数,0 表示不限制 |
|
|
33
|
+
| maxTagCount | `number \| "responsive"` | 否 | - | 多选模式下最多显示的 tag 数量,设为 responsive 时会自适应宽度 |
|
|
34
|
+
| cascaderStyle | `CSSProperties` | 否 | - | 级联选择器的内联样式 |
|
|
35
|
+
|
|
36
|
+
## Events
|
|
37
|
+
|
|
38
|
+
| 事件 | detail | 说明 |
|
|
39
|
+
| --------------- | -------------------------------------------------------------------------------------------- | ------------------------ |
|
|
40
|
+
| cascader.change | `CascaderChangeEventDetail` — { value: 选择的值, selectedOptions: 选择的值所对应的 options } | 级联选择项输入变化时触发 |
|
|
2
41
|
|
|
3
42
|
## Examples
|
|
4
43
|
|
|
5
44
|
### Basic
|
|
6
45
|
|
|
46
|
+
展示级联选择器的基本用法,通过 options 提供层级数据源。
|
|
47
|
+
|
|
7
48
|
```yaml preview minHeight="300px"
|
|
8
49
|
- brick: eo-cascader
|
|
9
50
|
properties:
|
|
@@ -29,6 +70,8 @@
|
|
|
29
70
|
|
|
30
71
|
### With Form
|
|
31
72
|
|
|
73
|
+
在表单中使用级联选择器,配置 name、label 和 required 实现表单集成与校验。
|
|
74
|
+
|
|
32
75
|
```yaml preview minHeight="300px"
|
|
33
76
|
- brick: eo-form
|
|
34
77
|
events:
|
|
@@ -65,3 +108,143 @@
|
|
|
65
108
|
- action: console.log
|
|
66
109
|
- brick: eo-submit-buttons
|
|
67
110
|
```
|
|
111
|
+
|
|
112
|
+
### Multiple Selection
|
|
113
|
+
|
|
114
|
+
开启多选模式,并配置 maxTagCount 限制最多显示的 tag 数量。
|
|
115
|
+
|
|
116
|
+
```yaml preview minHeight="300px"
|
|
117
|
+
- brick: eo-cascader
|
|
118
|
+
properties:
|
|
119
|
+
placeholder: 请选择城市(可多选)
|
|
120
|
+
multiple: true
|
|
121
|
+
maxTagCount: 2
|
|
122
|
+
options:
|
|
123
|
+
- children:
|
|
124
|
+
- children:
|
|
125
|
+
- label: West Lake
|
|
126
|
+
value: xihu
|
|
127
|
+
label: Hangzhou
|
|
128
|
+
value: hangzhou
|
|
129
|
+
label: Zhejiang
|
|
130
|
+
value: zhejiang
|
|
131
|
+
- children:
|
|
132
|
+
- children:
|
|
133
|
+
- label: Zhong Hua Men
|
|
134
|
+
value: zhonghuamen
|
|
135
|
+
label: Nanjing
|
|
136
|
+
value: nanjing
|
|
137
|
+
label: Jiangsu
|
|
138
|
+
value: jiangsu
|
|
139
|
+
events:
|
|
140
|
+
cascader.change:
|
|
141
|
+
- action: console.log
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Custom Field Names
|
|
145
|
+
|
|
146
|
+
使用 fieldNames 自定义数据源中 label、value、children 对应的字段名。
|
|
147
|
+
|
|
148
|
+
```yaml preview minHeight="300px"
|
|
149
|
+
- brick: eo-cascader
|
|
150
|
+
properties:
|
|
151
|
+
placeholder: 请选择分类
|
|
152
|
+
fieldNames:
|
|
153
|
+
label: name
|
|
154
|
+
value: id
|
|
155
|
+
children: sub
|
|
156
|
+
options:
|
|
157
|
+
- id: tech
|
|
158
|
+
name: 技术
|
|
159
|
+
sub:
|
|
160
|
+
- id: frontend
|
|
161
|
+
name: 前端
|
|
162
|
+
sub:
|
|
163
|
+
- id: react
|
|
164
|
+
name: React
|
|
165
|
+
- id: vue
|
|
166
|
+
name: Vue
|
|
167
|
+
- id: backend
|
|
168
|
+
name: 后端
|
|
169
|
+
sub:
|
|
170
|
+
- id: java
|
|
171
|
+
name: Java
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Disabled and Size
|
|
175
|
+
|
|
176
|
+
展示禁用状态和不同尺寸(large、middle、small)的级联选择器。
|
|
177
|
+
|
|
178
|
+
```yaml preview minHeight="300px"
|
|
179
|
+
- brick: div
|
|
180
|
+
properties:
|
|
181
|
+
style:
|
|
182
|
+
display: flex
|
|
183
|
+
flexDirection: column
|
|
184
|
+
gap: 12px
|
|
185
|
+
children:
|
|
186
|
+
- brick: eo-cascader
|
|
187
|
+
properties:
|
|
188
|
+
placeholder: Large 尺寸
|
|
189
|
+
size: large
|
|
190
|
+
options:
|
|
191
|
+
- label: Zhejiang
|
|
192
|
+
value: zhejiang
|
|
193
|
+
children:
|
|
194
|
+
- label: Hangzhou
|
|
195
|
+
value: hangzhou
|
|
196
|
+
children:
|
|
197
|
+
- label: West Lake
|
|
198
|
+
value: xihu
|
|
199
|
+
- brick: eo-cascader
|
|
200
|
+
properties:
|
|
201
|
+
placeholder: Small 尺寸
|
|
202
|
+
size: small
|
|
203
|
+
options:
|
|
204
|
+
- label: Zhejiang
|
|
205
|
+
value: zhejiang
|
|
206
|
+
children:
|
|
207
|
+
- label: Hangzhou
|
|
208
|
+
value: hangzhou
|
|
209
|
+
children:
|
|
210
|
+
- label: West Lake
|
|
211
|
+
value: xihu
|
|
212
|
+
- brick: eo-cascader
|
|
213
|
+
properties:
|
|
214
|
+
placeholder: 禁用状态
|
|
215
|
+
disabled: true
|
|
216
|
+
options:
|
|
217
|
+
- label: Zhejiang
|
|
218
|
+
value: zhejiang
|
|
219
|
+
children:
|
|
220
|
+
- label: Hangzhou
|
|
221
|
+
value: hangzhou
|
|
222
|
+
children:
|
|
223
|
+
- label: West Lake
|
|
224
|
+
value: xihu
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Custom Style and Icon
|
|
228
|
+
|
|
229
|
+
通过 cascaderStyle 设置内联样式,通过 suffixIcon 自定义下拉箭头图标。
|
|
230
|
+
|
|
231
|
+
```yaml preview minHeight="300px"
|
|
232
|
+
- brick: eo-cascader
|
|
233
|
+
properties:
|
|
234
|
+
placeholder: 自定义样式与图标
|
|
235
|
+
suffixIcon:
|
|
236
|
+
lib: antd
|
|
237
|
+
icon: down
|
|
238
|
+
cascaderStyle:
|
|
239
|
+
width: 300px
|
|
240
|
+
expandTrigger: hover
|
|
241
|
+
options:
|
|
242
|
+
- label: Zhejiang
|
|
243
|
+
value: zhejiang
|
|
244
|
+
children:
|
|
245
|
+
- label: Hangzhou
|
|
246
|
+
value: hangzhou
|
|
247
|
+
children:
|
|
248
|
+
- label: West Lake
|
|
249
|
+
value: xihu
|
|
250
|
+
```
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-cascader
|
|
3
|
+
displayName: WrappedEoCascader
|
|
4
|
+
description: 级联选择器
|
|
5
|
+
category: form-input-basic
|
|
6
|
+
source: "@next-bricks/advanced"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoCascader
|
|
10
|
+
|
|
11
|
+
> 级联选择器
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoCascader } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| -------------- | ------------------------------------ | ---- | ---------------------------------------------------------- | ------------------------------------------------------------- |
|
|
23
|
+
| name | `string` | 否 | - | 表单字段名 |
|
|
24
|
+
| label | `string` | 否 | - | 表单字段标签 |
|
|
25
|
+
| required | `boolean` | 否 | - | 是否为必填项 |
|
|
26
|
+
| options | `AntdCascaderProps["options"]` | 否 | - | 可选项数据源 |
|
|
27
|
+
| fieldNames | `AntdCascaderProps["fieldNames"]` | 否 | `{ label: "label", value: "value", children: "children" }` | 自定义字段名,指定 label、value、children 对应的字段 |
|
|
28
|
+
| value | `AntdCascaderProps["value"]` | 否 | - | 当前选中的值 |
|
|
29
|
+
| placeholder | `string` | 否 | - | 输入框占位文本 |
|
|
30
|
+
| multiple | `boolean` | 否 | - | 是否支持多选 |
|
|
31
|
+
| disabled | `boolean` | 否 | - | 是否禁用 |
|
|
32
|
+
| allowClear | `boolean` | 否 | `true` | 是否支持清除 |
|
|
33
|
+
| showSearch | `boolean` | 否 | `true` | 是否支持搜索,开启后可通过输入关键字过滤选项 |
|
|
34
|
+
| suffixIcon | `GeneralIconProps` | 否 | - | 自定义下拉箭头图标 |
|
|
35
|
+
| expandTrigger | `AntdCascaderProps["expandTrigger"]` | 否 | `"click"` | 次级菜单的展开方式,可选 click 或 hover |
|
|
36
|
+
| popupPlacement | `AntdCascaderProps["placement"]` | 否 | `"bottomLeft"` | 浮层预设位置,可选 bottomLeft、bottomRight、topLeft、topRight |
|
|
37
|
+
| size | `AntdCascaderProps["size"]` | 否 | - | 输入框大小,可选 large、middle、small |
|
|
38
|
+
| limit | `number` | 否 | `50` | 搜索结果的最大条数,0 表示不限制 |
|
|
39
|
+
| maxTagCount | `number \| "responsive"` | 否 | - | 多选模式下最多显示的 tag 数量,设为 responsive 时会自适应宽度 |
|
|
40
|
+
| cascaderStyle | `CSSProperties` | 否 | - | 级联选择器的内联样式 |
|
|
41
|
+
|
|
42
|
+
## Events
|
|
43
|
+
|
|
44
|
+
| 事件 | detail | 说明 |
|
|
45
|
+
| ---------------- | -------------------------------------------------------------------------------------------- | ------------------------ |
|
|
46
|
+
| onCascaderChange | `CascaderChangeEventDetail` — { value: 选择的值, selectedOptions: 选择的值所对应的 options } | 级联选择项输入变化时触发 |
|
|
47
|
+
|
|
48
|
+
## Examples
|
|
49
|
+
|
|
50
|
+
### Basic
|
|
51
|
+
|
|
52
|
+
展示级联选择器的基本用法,通过 options 提供层级数据源。
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
<WrappedEoCascader
|
|
56
|
+
placeholder="请选择城市"
|
|
57
|
+
options={[
|
|
58
|
+
{
|
|
59
|
+
label: "Zhejiang",
|
|
60
|
+
value: "zhejiang",
|
|
61
|
+
children: [
|
|
62
|
+
{
|
|
63
|
+
label: "Hangzhou",
|
|
64
|
+
value: "hangzhou",
|
|
65
|
+
children: [{ label: "West Lake", value: "xihu" }],
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: "Jiangsu",
|
|
71
|
+
value: "jiangsu",
|
|
72
|
+
children: [
|
|
73
|
+
{
|
|
74
|
+
label: "Nanjing",
|
|
75
|
+
value: "nanjing",
|
|
76
|
+
children: [{ label: "Zhong Hua Men", value: "zhonghuamen" }],
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
]}
|
|
81
|
+
/>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### With Form
|
|
85
|
+
|
|
86
|
+
在表单中使用级联选择器,配置 name、label 和 required 实现表单集成与校验。
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
<WrappedEoForm
|
|
90
|
+
onValidateSuccess={(e) => console.log(e.detail)}
|
|
91
|
+
onValuesChange={(e) => console.log(e.detail)}
|
|
92
|
+
>
|
|
93
|
+
<WrappedEoCascader
|
|
94
|
+
label="城市选择"
|
|
95
|
+
name="city"
|
|
96
|
+
placeholder="请选择城市"
|
|
97
|
+
required={true}
|
|
98
|
+
options={[
|
|
99
|
+
{
|
|
100
|
+
label: "Zhejiang",
|
|
101
|
+
value: "zhejiang",
|
|
102
|
+
children: [
|
|
103
|
+
{
|
|
104
|
+
label: "Hangzhou",
|
|
105
|
+
value: "hangzhou",
|
|
106
|
+
children: [{ label: "West Lake", value: "xihu" }],
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
label: "Jiangsu",
|
|
112
|
+
value: "jiangsu",
|
|
113
|
+
children: [
|
|
114
|
+
{
|
|
115
|
+
label: "Nanjing",
|
|
116
|
+
value: "nanjing",
|
|
117
|
+
children: [{ label: "Zhong Hua Men", value: "zhonghuamen" }],
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
},
|
|
121
|
+
]}
|
|
122
|
+
onCascaderChange={(e) => console.log(e.detail)}
|
|
123
|
+
/>
|
|
124
|
+
<WrappedEoSubmitButtons />
|
|
125
|
+
</WrappedEoForm>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Multiple Selection
|
|
129
|
+
|
|
130
|
+
开启多选模式,并配置 maxTagCount 限制最多显示的 tag 数量。
|
|
131
|
+
|
|
132
|
+
```tsx
|
|
133
|
+
<WrappedEoCascader
|
|
134
|
+
placeholder="请选择城市(可多选)"
|
|
135
|
+
multiple={true}
|
|
136
|
+
maxTagCount={2}
|
|
137
|
+
options={[
|
|
138
|
+
{
|
|
139
|
+
label: "Zhejiang",
|
|
140
|
+
value: "zhejiang",
|
|
141
|
+
children: [
|
|
142
|
+
{
|
|
143
|
+
label: "Hangzhou",
|
|
144
|
+
value: "hangzhou",
|
|
145
|
+
children: [{ label: "West Lake", value: "xihu" }],
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
label: "Jiangsu",
|
|
151
|
+
value: "jiangsu",
|
|
152
|
+
children: [
|
|
153
|
+
{
|
|
154
|
+
label: "Nanjing",
|
|
155
|
+
value: "nanjing",
|
|
156
|
+
children: [{ label: "Zhong Hua Men", value: "zhonghuamen" }],
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
]}
|
|
161
|
+
onCascaderChange={(e) => console.log(e.detail)}
|
|
162
|
+
/>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Custom Field Names
|
|
166
|
+
|
|
167
|
+
使用 fieldNames 自定义数据源中 label、value、children 对应的字段名。
|
|
168
|
+
|
|
169
|
+
```tsx
|
|
170
|
+
<WrappedEoCascader
|
|
171
|
+
placeholder="请选择分类"
|
|
172
|
+
fieldNames={{ label: "name", value: "id", children: "sub" }}
|
|
173
|
+
options={[
|
|
174
|
+
{
|
|
175
|
+
id: "tech",
|
|
176
|
+
name: "技术",
|
|
177
|
+
sub: [
|
|
178
|
+
{
|
|
179
|
+
id: "frontend",
|
|
180
|
+
name: "前端",
|
|
181
|
+
sub: [
|
|
182
|
+
{ id: "react", name: "React" },
|
|
183
|
+
{ id: "vue", name: "Vue" },
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
id: "backend",
|
|
188
|
+
name: "后端",
|
|
189
|
+
sub: [{ id: "java", name: "Java" }],
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
]}
|
|
194
|
+
/>
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Disabled and Size
|
|
198
|
+
|
|
199
|
+
展示禁用状态和不同尺寸(large、middle、small)的级联选择器。
|
|
200
|
+
|
|
201
|
+
```tsx
|
|
202
|
+
const options = [
|
|
203
|
+
{
|
|
204
|
+
label: "Zhejiang",
|
|
205
|
+
value: "zhejiang",
|
|
206
|
+
children: [
|
|
207
|
+
{
|
|
208
|
+
label: "Hangzhou",
|
|
209
|
+
value: "hangzhou",
|
|
210
|
+
children: [{ label: "West Lake", value: "xihu" }],
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
},
|
|
214
|
+
];
|
|
215
|
+
|
|
216
|
+
<div style={{ display: "flex", flexDirection: "column", gap: 12 }}>
|
|
217
|
+
<WrappedEoCascader placeholder="Large 尺寸" size="large" options={options} />
|
|
218
|
+
<WrappedEoCascader placeholder="Small 尺寸" size="small" options={options} />
|
|
219
|
+
<WrappedEoCascader placeholder="禁用状态" disabled={true} options={options} />
|
|
220
|
+
</div>;
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Custom Style and Icon
|
|
224
|
+
|
|
225
|
+
通过 cascaderStyle 设置内联样式,通过 suffixIcon 自定义下拉箭头图标。
|
|
226
|
+
|
|
227
|
+
```tsx
|
|
228
|
+
<WrappedEoCascader
|
|
229
|
+
placeholder="自定义样式与图标"
|
|
230
|
+
suffixIcon={{ lib: "antd", icon: "down" }}
|
|
231
|
+
cascaderStyle={{ width: 300 }}
|
|
232
|
+
expandTrigger="hover"
|
|
233
|
+
options={[
|
|
234
|
+
{
|
|
235
|
+
label: "Zhejiang",
|
|
236
|
+
value: "zhejiang",
|
|
237
|
+
children: [
|
|
238
|
+
{
|
|
239
|
+
label: "Hangzhou",
|
|
240
|
+
value: "hangzhou",
|
|
241
|
+
children: [{ label: "West Lake", value: "xihu" }],
|
|
242
|
+
},
|
|
243
|
+
],
|
|
244
|
+
},
|
|
245
|
+
]}
|
|
246
|
+
/>
|
|
247
|
+
```
|