@agentscope-ai/design 1.0.26-beta.1767840384443 → 1.0.26-beta.1768271896414
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/lib/antd/styles/button.style.js +1 -3
- package/lib/antd/themes/carbonDarkTheme.json +1 -1
- package/lib/components/commonComponents/Button/demo/demo1.js +0 -4
- package/lib/components/commonComponents/CodeBlock/index.d.ts +2 -2
- package/lib/components/commonComponents/CodeBlock/index.js +1 -1
- package/lib/components/commonComponents/FileIcon/icons/audio.svg +1 -0
- package/lib/components/commonComponents/FileIcon/icons/video.svg +1 -0
- package/lib/components/commonComponents/FileIcon/index.js +5 -1
- package/lib/components/commonComponents/Tabs/index.js +22 -40
- package/lib/components/commonComponents/Tooltip/index.style.js +1 -3
- package/llms/all.llms.txt +1473 -2386
- package/llms/components/commonComponents/CodeBlock/index.zh-CN.llms.txt +2 -2
- package/llms/docs/guide/tokens&variables.zh-CN.llms.txt +1 -1
- package/llms/index.llms.txt +18 -26
- package/package.json +1 -1
- package/llms/docs/guide/musicLofiGenerator.zh-CN.llms.txt +0 -12
package/llms/all.llms.txt
CHANGED
|
@@ -1,5 +1,65 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
<DemoTitle title="Video" desc="视频展示">
|
|
4
|
+
#### API
|
|
5
|
+
|
|
6
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
7
|
+
|--------|--------|--------|--------|
|
|
8
|
+
| mouseEnterAutoPlay | 鼠标进入时是否自动播放 | boolean | false |
|
|
9
|
+
| children | video内部设置了按钮在暗色背景下的样式,如果有一些操作按钮想继承这个样式可以在这里传入 | React.ReactNode | |
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
<DemoTitle title="Tooltip" desc="简单的文本提示气泡框">
|
|
17
|
+
#### API
|
|
18
|
+
|
|
19
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
20
|
+
|--------|--------|--------|--------|
|
|
21
|
+
| mode | 颜色模式 | 'dark' \| 'light' | 'dark' |
|
|
22
|
+
| maxHeight | 最大高度 | number \| string | '90vh' |
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<AntdApiRef url="https://ant.design/components/tooltip-cn/#api"></AntdApiRef>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## antd API
|
|
29
|
+
|
|
30
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
31
|
+
|
|
32
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
33
|
+
|--------|--------|--------|--------|
|
|
34
|
+
| title | 提示文字 | ReactNode \| () => ReactNode | - |
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### 共同的 API
|
|
38
|
+
|
|
39
|
+
以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
|
|
40
|
+
|
|
41
|
+
<!-- prettier-ignore -->
|
|
42
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
43
|
+
|--------|--------|--------|--------|--------|
|
|
44
|
+
| align | 该值将合并到 placement 的配置中,设置参考 | object | - | |
|
|
45
|
+
| arrow | 修改箭头的显示状态以及修改箭头是否指向目标元素中心 | boolean \| { pointAtCenter: boolean } | true | 5.2.0 |
|
|
46
|
+
| autoAdjustOverflow | 气泡被遮挡时自动调整位置 | boolean | true | |
|
|
47
|
+
| color | 背景颜色 | string | - | 4.3.0 |
|
|
48
|
+
| defaultOpen | 默认是否显隐 | boolean | false | 4.23.0 |
|
|
49
|
+
| destroyOnHidden | 关闭后是否销毁 dom | boolean | false | 5.25.0 |
|
|
50
|
+
| fresh | 默认情况下,Tooltip 在关闭时会缓存内容。设置该属性后会始终保持更新 | boolean | false | 5.10.0 |
|
|
51
|
+
| getPopupContainer | 浮层渲染父节点,默认渲染到 body 上 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
|
|
52
|
+
| mouseEnterDelay | 鼠标移入后延时多少才显示 Tooltip,单位:秒 | number | 0.1 | |
|
|
53
|
+
| mouseLeaveDelay | 鼠标移出后延时多少才隐藏 Tooltip,单位:秒 | number | 0.1 | |
|
|
54
|
+
| placement | 气泡框位置,可选 | string | top | |
|
|
55
|
+
| trigger | 触发行为,可选 | string \| string[] | hover | |
|
|
56
|
+
| open | 用于手动控制浮层显隐,小于 4.23.0 使用 | boolean | false | 4.23.0 |
|
|
57
|
+
| zIndex | 设置 Tooltip 的 | number | - | |
|
|
58
|
+
| onOpenChange | 显示隐藏的回调 | (open: boolean) => void | - | 4.23.0 |
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
3
63
|
<DemoTitle title="Upload" desc="文件选择上传和拖拽上传控件。">
|
|
4
64
|
#### API
|
|
5
65
|
|
|
@@ -96,19 +156,6 @@
|
|
|
96
156
|
|
|
97
157
|
|
|
98
158
|
|
|
99
|
-
<DemoTitle title="Video" desc="视频展示">
|
|
100
|
-
#### API
|
|
101
|
-
|
|
102
|
-
| 属性名 | 描述 | 类型 | 默认值 |
|
|
103
|
-
|--------|--------|--------|--------|
|
|
104
|
-
| mouseEnterAutoPlay | 鼠标进入时是否自动播放 | boolean | false |
|
|
105
|
-
| children | video内部设置了按钮在暗色背景下的样式,如果有一些操作按钮想继承这个样式可以在这里传入 | React.ReactNode | |
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
159
|
<DemoTitle title="Tag" desc="进行标记和分类的小标签">
|
|
113
160
|
#### API
|
|
114
161
|
|
|
@@ -144,49 +191,115 @@
|
|
|
144
191
|
|
|
145
192
|
|
|
146
193
|
|
|
147
|
-
<DemoTitle title="
|
|
194
|
+
<DemoTitle title="TimePicker" desc="输入或选择时间的控件。">
|
|
148
195
|
#### API
|
|
149
196
|
|
|
150
|
-
|
|
151
|
-
|--------|--------|--------|--------|
|
|
152
|
-
| mode | 颜色模式 | 'dark' \| 'light' | 'dark' |
|
|
153
|
-
| maxHeight | 最大高度 | number \| string | '90vh' |
|
|
197
|
+
<AntdApiRef url="https://ant.design/components/time-picker-cn/#api"></AntdApiRef>
|
|
154
198
|
|
|
155
199
|
|
|
156
|
-
|
|
200
|
+
## antd API
|
|
157
201
|
|
|
158
202
|
|
|
159
|
-
## antd API
|
|
160
203
|
|
|
161
204
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
162
205
|
|
|
163
|
-
| 参数 | 说明 | 类型 | 默认值 |
|
|
164
|
-
|--------|--------|--------|--------|
|
|
165
|
-
| title | 提示文字 | ReactNode \| () => ReactNode | - |
|
|
166
206
|
|
|
207
|
+
```jsx
|
|
208
|
+
import dayjs from 'dayjs';
|
|
209
|
+
import customParseFormat from 'dayjs/plugin/customParseFormat'
|
|
167
210
|
|
|
168
|
-
|
|
211
|
+
dayjs.extend(customParseFormat)
|
|
212
|
+
<TimePicker defaultValue={dayjs('13:30:56', 'HH:mm:ss')} />;
|
|
213
|
+
```
|
|
169
214
|
|
|
170
|
-
以下 API 为 Tooltip、Popconfirm、Popover 共享的 API。
|
|
171
215
|
|
|
172
|
-
<!-- prettier-ignore -->
|
|
173
216
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
174
217
|
|--------|--------|--------|--------|--------|
|
|
175
|
-
|
|
|
176
|
-
|
|
|
177
|
-
|
|
|
178
|
-
|
|
|
179
|
-
|
|
|
180
|
-
|
|
|
181
|
-
|
|
|
182
|
-
|
|
|
183
|
-
|
|
|
184
|
-
|
|
|
185
|
-
|
|
|
186
|
-
|
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
|
|
|
218
|
+
| allowClear | 自定义清除按钮 | boolean \| { clearIcon?: ReactNode } | true | 5.8.0: 支持对象类型 |
|
|
219
|
+
| autoFocus | 自动获取焦点 | boolean | false | |
|
|
220
|
+
| cellRender | 自定义单元格的内容 | (current: number, info: { originNode: React.ReactNode, today: dayjs, range?: 'start' \| 'end', subType: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
|
|
221
|
+
| changeOnScroll | 在滚动时改变选择值 | boolean | false | 5.14.0 |
|
|
222
|
+
| className | 选择器类名 | string | - | |
|
|
223
|
+
| defaultValue | 默认时间 | | - | |
|
|
224
|
+
| disabled | 禁用全部操作 | boolean | false | |
|
|
225
|
+
| disabledTime | 不可选择的时间 | | - | 4.19.0 |
|
|
226
|
+
| format | 展示的时间格式 | string | HH:mm:ss | |
|
|
227
|
+
| getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
|
|
228
|
+
| hideDisabledOptions | 隐藏禁止选择的选项 | boolean | false | |
|
|
229
|
+
| hourStep | 小时选项间隔 | number | 1 | |
|
|
230
|
+
| inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
|
|
231
|
+
| minuteStep | 分钟选项间隔 | number | 1 | |
|
|
232
|
+
| needConfirm | 是否需要确认按钮,为 | boolean | - | 5.14.0 |
|
|
233
|
+
| open | 面板是否打开 | boolean | false | |
|
|
234
|
+
| placeholder | 没有值的时候显示的内容 | string \| [string, string] | 请选择时间 | |
|
|
235
|
+
| placement | 选择框弹出的位置 | bottomLeft | bottomLeft | |
|
|
236
|
+
| popupClassName | 弹出层类名 | string | - | |
|
|
237
|
+
| popupStyle | 弹出层样式对象 | object | - | |
|
|
238
|
+
| prefix | 自定义前缀 | ReactNode | - | 5.22.0 |
|
|
239
|
+
| renderExtraFooter | 选择框底部显示自定义的内容 | () => ReactNode | - | |
|
|
240
|
+
| secondStep | 秒选项间隔 | number | 1 | |
|
|
241
|
+
| showNow | 面板是否显示“此刻”按钮 | boolean | - | 4.4.0 |
|
|
242
|
+
| size | 输入框大小, | large | - | |
|
|
243
|
+
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
|
244
|
+
| suffixIcon | 自定义的选择框后缀图标 | ReactNode | - | |
|
|
245
|
+
| use12Hours | 使用 12 小时制,为 true 时 | boolean | false | |
|
|
246
|
+
| value | 当前时间 | | - | |
|
|
247
|
+
| variant | 形态变体 | outlined | outlined | 5.13.0 \| |
|
|
248
|
+
| onCalendarChange | 待选日期发生变化的回调。 | function(dates: [dayjs, dayjs], dateStrings: [string, string], info: { range: | - | |
|
|
249
|
+
| onChange | 时间发生变化的回调 | function(time: dayjs, timeString: string): void | - | |
|
|
250
|
+
| onOpenChange | 面板打开/关闭时的回调 | (open: boolean) => void | - | |
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
#### DisabledTime
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
type DisabledTime = (now: Dayjs) => {
|
|
258
|
+
disabledHours?: () => number[];
|
|
259
|
+
disabledMinutes?: (selectedHour: number) => number[];
|
|
260
|
+
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
|
261
|
+
disabledMilliseconds?: (
|
|
262
|
+
selectedHour: number,
|
|
263
|
+
selectedMinute: number,
|
|
264
|
+
selectedSecond: number,
|
|
265
|
+
) => number[];
|
|
266
|
+
};
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
注意:`disabledMilliseconds` 为 `5.14.0` 新增。
|
|
271
|
+
|
|
272
|
+
## 方法
|
|
273
|
+
|
|
274
|
+
| 名称 | 描述 | 版本 |
|
|
275
|
+
|--------|--------|--------|
|
|
276
|
+
| blur() | 移除焦点 | |
|
|
277
|
+
| focus() | 获取焦点 | |
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
## RangePicker
|
|
281
|
+
|
|
282
|
+
属性与 DatePicker 的 [RangePicker](/components/date-picker-cn#rangepicker) 相同。还包含以下属性:
|
|
283
|
+
|
|
284
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
285
|
+
|--------|--------|--------|--------|--------|
|
|
286
|
+
| disabledTime | 不可选择的时间 | | - | 4.19.0 |
|
|
287
|
+
| order | 始末时间是否自动排序 | boolean | true | 4.1.0 |
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
### RangeDisabledTime
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
type RangeDisabledTime = (
|
|
295
|
+
now: Dayjs,
|
|
296
|
+
type = 'start' | 'end',
|
|
297
|
+
) => {
|
|
298
|
+
disabledHours?: () => number[];
|
|
299
|
+
disabledMinutes?: (selectedHour: number) => number[];
|
|
300
|
+
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
|
301
|
+
};
|
|
302
|
+
```
|
|
190
303
|
|
|
191
304
|
|
|
192
305
|
|
|
@@ -446,6 +559,47 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
|
|
|
446
559
|
|
|
447
560
|
|
|
448
561
|
|
|
562
|
+
<DemoTitle title="Switch" desc="使用开关切换两种状态之间。">
|
|
563
|
+
#### API
|
|
564
|
+
|
|
565
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
566
|
+
|--------|--------|--------|--------|
|
|
567
|
+
| label | Switch后的内容 | ReactNode | |
|
|
568
|
+
|
|
569
|
+
<AntdApiRef url="https://ant.design/components/switch-cn/#api"></AntdApiRef>
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
## antd API
|
|
573
|
+
|
|
574
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
575
|
+
|
|
576
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
577
|
+
|--------|--------|--------|--------|--------|
|
|
578
|
+
| autoFocus | 组件自动获取焦点 | boolean | false | |
|
|
579
|
+
| checked | 指定当前是否选中 | boolean | false | |
|
|
580
|
+
| checkedChildren | 选中时的内容 | ReactNode | - | |
|
|
581
|
+
| className | Switch 器类名 | string | - | |
|
|
582
|
+
| defaultChecked | 初始是否选中 | boolean | false | |
|
|
583
|
+
| defaultValue | defaultChecked | boolean | - | 5.12.0 |
|
|
584
|
+
| disabled | 是否禁用 | boolean | false | |
|
|
585
|
+
| loading | 加载中的开关 | boolean | false | |
|
|
586
|
+
| size | 开关大小,可选值: | string | default | |
|
|
587
|
+
| unCheckedChildren | 非选中时的内容 | ReactNode | - | |
|
|
588
|
+
| value | checked | boolean | - | 5.12.0 |
|
|
589
|
+
| onChange | 变化时的回调函数 | function(checked: boolean, event: Event) | - | |
|
|
590
|
+
| onClick | 点击时的回调函数 | function(checked: boolean, event: Event) | - | |
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
## 方法
|
|
594
|
+
|
|
595
|
+
| 名称 | 描述 |
|
|
596
|
+
|--------|--------|
|
|
597
|
+
| blur() | 移除焦点 |
|
|
598
|
+
| focus() | 获取焦点 |
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
|
|
449
603
|
<DemoTitle title="Tabs" desc="用户可以通过点击不同的标签在同一页面中查看不同的内容区域。">
|
|
450
604
|
#### API
|
|
451
605
|
|
|
@@ -516,156 +670,62 @@ TypeScript 里使用 Table 的 [CodeSandbox 实例](https://codesandbox.io/s/ser
|
|
|
516
670
|
|
|
517
671
|
|
|
518
672
|
|
|
519
|
-
<DemoTitle title="
|
|
673
|
+
<DemoTitle title="Statistic" desc="展示统计数值">
|
|
520
674
|
#### API
|
|
521
675
|
|
|
522
|
-
<AntdApiRef url="https://ant.design/components/
|
|
676
|
+
<AntdApiRef url="https://ant.design/components/statistic-cn/#api"></AntdApiRef>
|
|
523
677
|
|
|
524
678
|
|
|
525
679
|
## antd API
|
|
526
680
|
|
|
527
|
-
|
|
528
|
-
|
|
529
681
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
530
682
|
|
|
531
|
-
|
|
532
|
-
```jsx
|
|
533
|
-
import dayjs from 'dayjs';
|
|
534
|
-
import customParseFormat from 'dayjs/plugin/customParseFormat'
|
|
535
|
-
|
|
536
|
-
dayjs.extend(customParseFormat)
|
|
537
|
-
<TimePicker defaultValue={dayjs('13:30:56', 'HH:mm:ss')} />;
|
|
538
|
-
```
|
|
539
|
-
|
|
683
|
+
#### Statistic
|
|
540
684
|
|
|
541
685
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
542
686
|
|--------|--------|--------|--------|--------|
|
|
543
|
-
|
|
|
544
|
-
|
|
|
545
|
-
|
|
|
546
|
-
|
|
|
547
|
-
|
|
|
548
|
-
|
|
|
549
|
-
|
|
|
550
|
-
|
|
|
551
|
-
|
|
|
552
|
-
|
|
|
553
|
-
| hideDisabledOptions | 隐藏禁止选择的选项 | boolean | false | |
|
|
554
|
-
| hourStep | 小时选项间隔 | number | 1 | |
|
|
555
|
-
| inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
|
|
556
|
-
| minuteStep | 分钟选项间隔 | number | 1 | |
|
|
557
|
-
| needConfirm | 是否需要确认按钮,为 | boolean | - | 5.14.0 |
|
|
558
|
-
| open | 面板是否打开 | boolean | false | |
|
|
559
|
-
| placeholder | 没有值的时候显示的内容 | string \| [string, string] | 请选择时间 | |
|
|
560
|
-
| placement | 选择框弹出的位置 | bottomLeft | bottomLeft | |
|
|
561
|
-
| popupClassName | 弹出层类名 | string | - | |
|
|
562
|
-
| popupStyle | 弹出层样式对象 | object | - | |
|
|
563
|
-
| prefix | 自定义前缀 | ReactNode | - | 5.22.0 |
|
|
564
|
-
| renderExtraFooter | 选择框底部显示自定义的内容 | () => ReactNode | - | |
|
|
565
|
-
| secondStep | 秒选项间隔 | number | 1 | |
|
|
566
|
-
| showNow | 面板是否显示“此刻”按钮 | boolean | - | 4.4.0 |
|
|
567
|
-
| size | 输入框大小, | large | - | |
|
|
568
|
-
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
|
569
|
-
| suffixIcon | 自定义的选择框后缀图标 | ReactNode | - | |
|
|
570
|
-
| use12Hours | 使用 12 小时制,为 true 时 | boolean | false | |
|
|
571
|
-
| value | 当前时间 | | - | |
|
|
572
|
-
| variant | 形态变体 | outlined | outlined | 5.13.0 \| |
|
|
573
|
-
| onCalendarChange | 待选日期发生变化的回调。 | function(dates: [dayjs, dayjs], dateStrings: [string, string], info: { range: | - | |
|
|
574
|
-
| onChange | 时间发生变化的回调 | function(time: dayjs, timeString: string): void | - | |
|
|
575
|
-
| onOpenChange | 面板打开/关闭时的回调 | (open: boolean) => void | - | |
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
#### DisabledTime
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
```typescript
|
|
582
|
-
type DisabledTime = (now: Dayjs) => {
|
|
583
|
-
disabledHours?: () => number[];
|
|
584
|
-
disabledMinutes?: (selectedHour: number) => number[];
|
|
585
|
-
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
|
586
|
-
disabledMilliseconds?: (
|
|
587
|
-
selectedHour: number,
|
|
588
|
-
selectedMinute: number,
|
|
589
|
-
selectedSecond: number,
|
|
590
|
-
) => number[];
|
|
591
|
-
};
|
|
592
|
-
```
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
注意:`disabledMilliseconds` 为 `5.14.0` 新增。
|
|
596
|
-
|
|
597
|
-
## 方法
|
|
598
|
-
|
|
599
|
-
| 名称 | 描述 | 版本 |
|
|
600
|
-
|--------|--------|--------|
|
|
601
|
-
| blur() | 移除焦点 | |
|
|
602
|
-
| focus() | 获取焦点 | |
|
|
687
|
+
| decimalSeparator | 设置小数点 | string | . | |
|
|
688
|
+
| formatter | 自定义数值展示 | (value) => ReactNode | - | |
|
|
689
|
+
| groupSeparator | 设置千分位标识符 | string | , | |
|
|
690
|
+
| loading | 数值是否加载中 | boolean | false | 4.8.0 |
|
|
691
|
+
| precision | 数值精度 | number | - | |
|
|
692
|
+
| prefix | 设置数值的前缀 | ReactNode | - | |
|
|
693
|
+
| suffix | 设置数值的后缀 | ReactNode | - | |
|
|
694
|
+
| title | 数值的标题 | ReactNode | - | |
|
|
695
|
+
| value | 数值内容 | string \| number | - | |
|
|
696
|
+
| valueStyle | 设置数值区域的样式 | CSSProperties | - | |
|
|
603
697
|
|
|
604
698
|
|
|
605
|
-
|
|
699
|
+
#### Statistic.Countdown <Badge type="error">Deprecated</Badge>
|
|
606
700
|
|
|
607
|
-
|
|
701
|
+
<!-- <Antd component="Alert" message="版本 >= 5.25.0 时请使用 Statistic.Timer 作为替代方案。" type="warning" banner="true"></Antd> -->
|
|
608
702
|
|
|
703
|
+
<!-- prettier-ignore -->
|
|
609
704
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
610
705
|
|--------|--------|--------|--------|--------|
|
|
611
|
-
|
|
|
612
|
-
|
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
type RangeDisabledTime = (
|
|
620
|
-
now: Dayjs,
|
|
621
|
-
type = 'start' | 'end',
|
|
622
|
-
) => {
|
|
623
|
-
disabledHours?: () => number[];
|
|
624
|
-
disabledMinutes?: (selectedHour: number) => number[];
|
|
625
|
-
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
|
626
|
-
};
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
<DemoTitle title="Switch" desc="使用开关切换两种状态之间。">
|
|
633
|
-
#### API
|
|
634
|
-
|
|
635
|
-
| 属性名 | 描述 | 类型 | 默认值 |
|
|
636
|
-
|--------|--------|--------|--------|
|
|
637
|
-
| label | Switch后的内容 | ReactNode | |
|
|
638
|
-
|
|
639
|
-
<AntdApiRef url="https://ant.design/components/switch-cn/#api"></AntdApiRef>
|
|
640
|
-
|
|
706
|
+
| format | 格式化倒计时展示,参考 | string | HH:mm:ss | |
|
|
707
|
+
| prefix | 设置数值的前缀 | ReactNode | - | |
|
|
708
|
+
| suffix | 设置数值的后缀 | ReactNode | - | |
|
|
709
|
+
| title | 数值的标题 | ReactNode | - | |
|
|
710
|
+
| value | 数值内容 | number | - | |
|
|
711
|
+
| valueStyle | 设置数值区域的样式 | CSSProperties | - | |
|
|
712
|
+
| onFinish | 倒计时完成时触发 | () => void | - | |
|
|
713
|
+
| onChange | 倒计时时间变化时触发 | (value: number) => void | - | |
|
|
641
714
|
|
|
642
|
-
## antd API
|
|
643
715
|
|
|
644
|
-
|
|
716
|
+
#### Statistic.Timer <Badge>5.25.0+</Badge>
|
|
645
717
|
|
|
646
718
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
647
719
|
|--------|--------|--------|--------|--------|
|
|
648
|
-
|
|
|
649
|
-
|
|
|
650
|
-
|
|
|
651
|
-
|
|
|
652
|
-
|
|
|
653
|
-
|
|
|
654
|
-
|
|
|
655
|
-
|
|
|
656
|
-
|
|
|
657
|
-
| unCheckedChildren | 非选中时的内容 | ReactNode | - | |
|
|
658
|
-
| value | checked | boolean | - | 5.12.0 |
|
|
659
|
-
| onChange | 变化时的回调函数 | function(checked: boolean, event: Event) | - | |
|
|
660
|
-
| onClick | 点击时的回调函数 | function(checked: boolean, event: Event) | - | |
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
## 方法
|
|
664
|
-
|
|
665
|
-
| 名称 | 描述 |
|
|
666
|
-
|--------|--------|
|
|
667
|
-
| blur() | 移除焦点 |
|
|
668
|
-
| focus() | 获取焦点 |
|
|
720
|
+
| type | 计时类型,正计时或者倒计时 | countdown | - | |
|
|
721
|
+
| format | 格式化倒计时展示,参考 | string | HH:mm:ss | |
|
|
722
|
+
| prefix | 设置数值的前缀 | ReactNode | - | |
|
|
723
|
+
| suffix | 设置数值的后缀 | ReactNode | - | |
|
|
724
|
+
| title | 数值的标题 | ReactNode | - | |
|
|
725
|
+
| value | 数值内容 | number | - | |
|
|
726
|
+
| valueStyle | 设置数值区域的样式 | CSSProperties | - | |
|
|
727
|
+
| onFinish | 倒计时完成时触发, 指定为 | () => void | - | |
|
|
728
|
+
| onChange | 倒计时时间变化时触发 | (value: number) => void | - | |
|
|
669
729
|
|
|
670
730
|
|
|
671
731
|
|
|
@@ -729,66 +789,6 @@ type RangeDisabledTime = (
|
|
|
729
789
|
|
|
730
790
|
|
|
731
791
|
|
|
732
|
-
<DemoTitle title="Statistic" desc="展示统计数值">
|
|
733
|
-
#### API
|
|
734
|
-
|
|
735
|
-
<AntdApiRef url="https://ant.design/components/statistic-cn/#api"></AntdApiRef>
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
## antd API
|
|
739
|
-
|
|
740
|
-
通用属性参考:[通用属性](/docs/react/common-props)
|
|
741
|
-
|
|
742
|
-
#### Statistic
|
|
743
|
-
|
|
744
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
745
|
-
|--------|--------|--------|--------|--------|
|
|
746
|
-
| decimalSeparator | 设置小数点 | string | . | |
|
|
747
|
-
| formatter | 自定义数值展示 | (value) => ReactNode | - | |
|
|
748
|
-
| groupSeparator | 设置千分位标识符 | string | , | |
|
|
749
|
-
| loading | 数值是否加载中 | boolean | false | 4.8.0 |
|
|
750
|
-
| precision | 数值精度 | number | - | |
|
|
751
|
-
| prefix | 设置数值的前缀 | ReactNode | - | |
|
|
752
|
-
| suffix | 设置数值的后缀 | ReactNode | - | |
|
|
753
|
-
| title | 数值的标题 | ReactNode | - | |
|
|
754
|
-
| value | 数值内容 | string \| number | - | |
|
|
755
|
-
| valueStyle | 设置数值区域的样式 | CSSProperties | - | |
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
#### Statistic.Countdown <Badge type="error">Deprecated</Badge>
|
|
759
|
-
|
|
760
|
-
<!-- <Antd component="Alert" message="版本 >= 5.25.0 时请使用 Statistic.Timer 作为替代方案。" type="warning" banner="true"></Antd> -->
|
|
761
|
-
|
|
762
|
-
<!-- prettier-ignore -->
|
|
763
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
764
|
-
|--------|--------|--------|--------|--------|
|
|
765
|
-
| format | 格式化倒计时展示,参考 | string | HH:mm:ss | |
|
|
766
|
-
| prefix | 设置数值的前缀 | ReactNode | - | |
|
|
767
|
-
| suffix | 设置数值的后缀 | ReactNode | - | |
|
|
768
|
-
| title | 数值的标题 | ReactNode | - | |
|
|
769
|
-
| value | 数值内容 | number | - | |
|
|
770
|
-
| valueStyle | 设置数值区域的样式 | CSSProperties | - | |
|
|
771
|
-
| onFinish | 倒计时完成时触发 | () => void | - | |
|
|
772
|
-
| onChange | 倒计时时间变化时触发 | (value: number) => void | - | |
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
#### Statistic.Timer <Badge>5.25.0+</Badge>
|
|
776
|
-
|
|
777
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
778
|
-
|--------|--------|--------|--------|--------|
|
|
779
|
-
| type | 计时类型,正计时或者倒计时 | countdown | - | |
|
|
780
|
-
| format | 格式化倒计时展示,参考 | string | HH:mm:ss | |
|
|
781
|
-
| prefix | 设置数值的前缀 | ReactNode | - | |
|
|
782
|
-
| suffix | 设置数值的后缀 | ReactNode | - | |
|
|
783
|
-
| title | 数值的标题 | ReactNode | - | |
|
|
784
|
-
| value | 数值内容 | number | - | |
|
|
785
|
-
| valueStyle | 设置数值区域的样式 | CSSProperties | - | |
|
|
786
|
-
| onFinish | 倒计时完成时触发, 指定为 | () => void | - | |
|
|
787
|
-
| onChange | 倒计时时间变化时触发 | (value: number) => void | - | |
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
792
|
<DemoTitle title="Spinner" desc="指示页面或区块的加载中状态">
|
|
793
793
|
#### API
|
|
794
794
|
|
|
@@ -806,75 +806,14 @@ type RangeDisabledTime = (
|
|
|
806
806
|
|
|
807
807
|
|
|
808
808
|
|
|
809
|
-
<DemoTitle title="
|
|
809
|
+
<DemoTitle title="Select" desc="下拉选择器">
|
|
810
810
|
## antd API
|
|
811
811
|
|
|
812
812
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
813
813
|
|
|
814
|
-
###
|
|
815
|
-
|
|
816
|
-
| 属性 | 说明 | 类型 | 默认值 |
|
|
817
|
-
|--------|--------|--------|--------|
|
|
818
|
-
| active | 是否展示动画效果 | boolean | false |
|
|
819
|
-
| avatar | 是否显示头像占位图 | boolean \| | false |
|
|
820
|
-
| loading | 为 true 时,显示占位图。反之则直接展示子组件 | boolean | - |
|
|
821
|
-
| paragraph | 是否显示段落占位图 | boolean \| | true |
|
|
822
|
-
| round | 为 true 时,段落和标题显示圆角 | boolean | false |
|
|
823
|
-
| title | 是否显示标题占位图 | boolean \| | true |
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
### SkeletonAvatarProps
|
|
827
|
-
|
|
828
|
-
| 属性 | 说明 | 类型 | 默认值 |
|
|
829
|
-
|--------|--------|--------|--------|
|
|
830
|
-
| active | 是否展示动画效果,仅在单独使用头像骨架时生效 | boolean | false |
|
|
831
|
-
| shape | 指定头像的形状 | circle | - |
|
|
832
|
-
| size | 设置头像占位图的大小 | number \| | - |
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
### SkeletonTitleProps
|
|
836
|
-
|
|
837
|
-
| 属性 | 说明 | 类型 | 默认值 |
|
|
838
|
-
|--------|--------|--------|--------|
|
|
839
|
-
| width | 设置标题占位图的宽度 | number \| string | - |
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
### SkeletonParagraphProps
|
|
843
|
-
|
|
844
|
-
| 属性 | 说明 | 类型 | 默认值 |
|
|
845
|
-
|--------|--------|--------|--------|
|
|
846
|
-
| rows | 设置段落占位图的行数 | number | - |
|
|
847
|
-
| width | 设置段落占位图的宽度,若为数组时则为对应的每行宽度,反之则是最后一行的宽度 | number \| string \| Array | - |
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
### SkeletonButtonProps
|
|
814
|
+
### Select props
|
|
851
815
|
|
|
852
|
-
|
|
|
853
|
-
|--------|--------|--------|--------|--------|
|
|
854
|
-
| active | 是否展示动画效果 | boolean | false | |
|
|
855
|
-
| block | 将按钮宽度调整为其父宽度的选项 | boolean | false | 4.17.0 |
|
|
856
|
-
| shape | 指定按钮的形状 | circle | - | |
|
|
857
|
-
| size | 设置按钮的大小 | large | - | |
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
### SkeletonInputProps
|
|
861
|
-
|
|
862
|
-
| 属性 | 说明 | 类型 | 默认值 |
|
|
863
|
-
|--------|--------|--------|--------|
|
|
864
|
-
| active | 是否展示动画效果 | boolean | false |
|
|
865
|
-
| size | 设置输入框的大小 | large | - |
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
<DemoTitle title="Select" desc="下拉选择器">
|
|
871
|
-
## antd API
|
|
872
|
-
|
|
873
|
-
通用属性参考:[通用属性](/docs/react/common-props)
|
|
874
|
-
|
|
875
|
-
### Select props
|
|
876
|
-
|
|
877
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
816
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
878
817
|
|--------|--------|--------|--------|--------|
|
|
879
818
|
| allowClear | 自定义清除按钮 | boolean \| { clearIcon?: ReactNode } | false | 5.8.0: 支持对象类型 |
|
|
880
819
|
| autoClearSearchValue | 是否在选中项后清空搜索框,只在 | boolean | true | |
|
|
@@ -965,6 +904,18 @@ type RangeDisabledTime = (
|
|
|
965
904
|
|
|
966
905
|
|
|
967
906
|
|
|
907
|
+
<DemoTitle title="Result" desc="为操作结果提供反馈信息的展示。">
|
|
908
|
+
## API
|
|
909
|
+
|
|
910
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
911
|
+
|--------|--------|--------|--------|
|
|
912
|
+
| texture | 是否显示纹理 | boolean | false |
|
|
913
|
+
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
968
919
|
<DemoTitle title="Slider" desc="滑动型输入器,展示当前值和可选范围。">
|
|
969
920
|
#### API
|
|
970
921
|
|
|
@@ -1029,21 +980,77 @@ type RangeDisabledTime = (
|
|
|
1029
980
|
|
|
1030
981
|
|
|
1031
982
|
|
|
1032
|
-
<DemoTitle title="
|
|
1033
|
-
## API
|
|
983
|
+
<DemoTitle title="Skeleton" desc="在内容加载时提供占位图形展示。">
|
|
984
|
+
## antd API
|
|
1034
985
|
|
|
1035
|
-
|
|
986
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
987
|
+
|
|
988
|
+
### Skeleton
|
|
989
|
+
|
|
990
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
1036
991
|
|--------|--------|--------|--------|
|
|
1037
|
-
|
|
|
992
|
+
| active | 是否展示动画效果 | boolean | false |
|
|
993
|
+
| avatar | 是否显示头像占位图 | boolean \| | false |
|
|
994
|
+
| loading | 为 true 时,显示占位图。反之则直接展示子组件 | boolean | - |
|
|
995
|
+
| paragraph | 是否显示段落占位图 | boolean \| | true |
|
|
996
|
+
| round | 为 true 时,段落和标题显示圆角 | boolean | false |
|
|
997
|
+
| title | 是否显示标题占位图 | boolean \| | true |
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
### SkeletonAvatarProps
|
|
1001
|
+
|
|
1002
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
1003
|
+
|--------|--------|--------|--------|
|
|
1004
|
+
| active | 是否展示动画效果,仅在单独使用头像骨架时生效 | boolean | false |
|
|
1005
|
+
| shape | 指定头像的形状 | circle | - |
|
|
1006
|
+
| size | 设置头像占位图的大小 | number \| | - |
|
|
1007
|
+
|
|
1038
1008
|
|
|
1009
|
+
### SkeletonTitleProps
|
|
1010
|
+
|
|
1011
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
1012
|
+
|--------|--------|--------|--------|
|
|
1013
|
+
| width | 设置标题占位图的宽度 | number \| string | - |
|
|
1039
1014
|
|
|
1040
1015
|
|
|
1016
|
+
### SkeletonParagraphProps
|
|
1041
1017
|
|
|
1018
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
1019
|
+
|--------|--------|--------|--------|
|
|
1020
|
+
| rows | 设置段落占位图的行数 | number | - |
|
|
1021
|
+
| width | 设置段落占位图的宽度,若为数组时则为对应的每行宽度,反之则是最后一行的宽度 | number \| string \| Array | - |
|
|
1042
1022
|
|
|
1043
1023
|
|
|
1044
|
-
|
|
1024
|
+
### SkeletonButtonProps
|
|
1025
|
+
|
|
1026
|
+
| 属性 | 说明 | 类型 | 默认值 | 版本 |
|
|
1027
|
+
|--------|--------|--------|--------|--------|
|
|
1028
|
+
| active | 是否展示动画效果 | boolean | false | |
|
|
1029
|
+
| block | 将按钮宽度调整为其父宽度的选项 | boolean | false | 4.17.0 |
|
|
1030
|
+
| shape | 指定按钮的形状 | circle | - | |
|
|
1031
|
+
| size | 设置按钮的大小 | large | - | |
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
### SkeletonInputProps
|
|
1035
|
+
|
|
1036
|
+
| 属性 | 说明 | 类型 | 默认值 |
|
|
1037
|
+
|--------|--------|--------|--------|
|
|
1038
|
+
| active | 是否展示动画效果 | boolean | false |
|
|
1039
|
+
| size | 设置输入框的大小 | large | - |
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
|
|
1044
|
+
<DemoTitle title="RadioButton" desc="用于在多个备选项中选中单个状态。">
|
|
1045
1045
|
#### API
|
|
1046
1046
|
|
|
1047
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
1048
|
+
|--------|--------|--------|--------|
|
|
1049
|
+
| bordered | 边框 | boolean | false |
|
|
1050
|
+
| ghost | 按钮背景色类型 | boolean | true |
|
|
1051
|
+
| gap | 间距 | number | 12 px |
|
|
1052
|
+
|
|
1053
|
+
|
|
1047
1054
|
<AntdApiRef url="https://ant.design/components/radio-cn/#api"></AntdApiRef>
|
|
1048
1055
|
|
|
1049
1056
|
|
|
@@ -1109,33 +1116,9 @@ type RangeDisabledTime = (
|
|
|
1109
1116
|
|
|
1110
1117
|
|
|
1111
1118
|
|
|
1112
|
-
<DemoTitle title="
|
|
1113
|
-
#### API
|
|
1114
|
-
|
|
1115
|
-
| 属性名 | 描述 | 类型 | 默认值 |
|
|
1116
|
-
|--------|--------|--------|--------|
|
|
1117
|
-
| maxLength | 可以输入内容的最大长度 | number | |
|
|
1118
|
-
| value | 输入的内容 | string | (必填) |
|
|
1119
|
-
| className | 输入内容的类名 | string | |
|
|
1120
|
-
| onChange | 输入内容的回调 | (value: string) => void | |
|
|
1121
|
-
| variables | 可以插入的变量列表 | Array | |
|
|
1122
|
-
| onCreate | 新增变量的触发回调 | () => void | |
|
|
1123
|
-
| createBtnText | 新增变量的按钮文本 | string | |
|
|
1124
|
-
| tipsText | 提示文本,传入 false 时隐藏提示 | string \| React.ReactNode \| false | |
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
<DemoTitle title="RadioButton" desc="用于在多个备选项中选中单个状态。">
|
|
1119
|
+
<DemoTitle title="Radio" desc="用于在多个备选项中选中单个状态。">
|
|
1130
1120
|
#### API
|
|
1131
1121
|
|
|
1132
|
-
| 属性名 | 描述 | 类型 | 默认值 |
|
|
1133
|
-
|--------|--------|--------|--------|
|
|
1134
|
-
| bordered | 边框 | boolean | false |
|
|
1135
|
-
| ghost | 按钮背景色类型 | boolean | true |
|
|
1136
|
-
| gap | 间距 | number | 12 px |
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
1122
|
<AntdApiRef url="https://ant.design/components/radio-cn/#api"></AntdApiRef>
|
|
1140
1123
|
|
|
1141
1124
|
|
|
@@ -1253,6 +1236,23 @@ type RangeDisabledTime = (
|
|
|
1253
1236
|
|
|
1254
1237
|
|
|
1255
1238
|
|
|
1239
|
+
<DemoTitle title="MdEditor" desc="提示词编辑器,可以高亮 Markdown 的语法,支持自定义槽位变量的插入">
|
|
1240
|
+
#### API
|
|
1241
|
+
|
|
1242
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
1243
|
+
|--------|--------|--------|--------|
|
|
1244
|
+
| maxLength | 可以输入内容的最大长度 | number | |
|
|
1245
|
+
| value | 输入的内容 | string | (必填) |
|
|
1246
|
+
| className | 输入内容的类名 | string | |
|
|
1247
|
+
| onChange | 输入内容的回调 | (value: string) => void | |
|
|
1248
|
+
| variables | 可以插入的变量列表 | Array | |
|
|
1249
|
+
| onCreate | 新增变量的触发回调 | () => void | |
|
|
1250
|
+
| createBtnText | 新增变量的按钮文本 | string | |
|
|
1251
|
+
| tipsText | 提示文本,传入 false 时隐藏提示 | string \| React.ReactNode \| false | |
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
1256
|
<DemoTitle title="Popover" desc="点击/鼠标移入元素,弹出气泡式的卡片浮层">
|
|
1257
1257
|
#### API
|
|
1258
1258
|
|
|
@@ -1401,6 +1401,102 @@ type RangeDisabledTime = (
|
|
|
1401
1401
|
|
|
1402
1402
|
|
|
1403
1403
|
|
|
1404
|
+
<DemoTitle title="Notification" desc="用于指示任务的完成进度">
|
|
1405
|
+
#### API
|
|
1406
|
+
|
|
1407
|
+
<AntdApiRef url="https://ant.design/components/notification-cn/#api"></AntdApiRef>
|
|
1408
|
+
|
|
1409
|
+
|
|
1410
|
+
## antd API
|
|
1411
|
+
|
|
1412
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
- `notification.success(config)`
|
|
1416
|
+
- `notification.error(config)`
|
|
1417
|
+
- `notification.info(config)`
|
|
1418
|
+
- `notification.warning(config)`
|
|
1419
|
+
- `notification.open(config)`
|
|
1420
|
+
- `notification.destroy(key?: String)`
|
|
1421
|
+
|
|
1422
|
+
config 参数如下:
|
|
1423
|
+
|
|
1424
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1425
|
+
|--------|--------|--------|--------|--------|
|
|
1426
|
+
| actions | 自定义按钮组 | ReactNode | - | 5.24.0 |
|
|
1427
|
+
| className | 自定义 CSS class | string | - | - |
|
|
1428
|
+
| closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
|
|
1429
|
+
| description | 通知提醒内容,必选 | ReactNode | - | - |
|
|
1430
|
+
| duration | 默认 4.5 秒后自动关闭,配置为 null 则不自动关闭 | number | 4.5 | - |
|
|
1431
|
+
| showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
|
|
1432
|
+
| pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
|
|
1433
|
+
| icon | 自定义图标 | ReactNode | - | - |
|
|
1434
|
+
| key | 当前通知唯一标志 | string | - | - |
|
|
1435
|
+
| message | 通知提醒标题,必选 | ReactNode | - | - |
|
|
1436
|
+
| placement | 弹出位置,可选 | string | topRight | - |
|
|
1437
|
+
| style | 自定义内联样式 | | - | - |
|
|
1438
|
+
| role | 供屏幕阅读器识别的通知内容语义,默认为 | alert \| status | alert | 5.6.0 |
|
|
1439
|
+
| onClick | 点击通知时触发的回调函数 | function | - | - |
|
|
1440
|
+
| onClose | 当通知关闭时触发 | function | - | - |
|
|
1441
|
+
| props | 透传至通知 | Object | - | - |
|
|
1442
|
+
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
- `notification.useNotification(config)`
|
|
1446
|
+
|
|
1447
|
+
config 参数如下:
|
|
1448
|
+
|
|
1449
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1450
|
+
|--------|--------|--------|--------|--------|
|
|
1451
|
+
| bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
|
|
1452
|
+
| closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
|
|
1453
|
+
| getContainer | 配置渲染节点的输出位置 | () => HTMLNode | () => document.body | |
|
|
1454
|
+
| placement | 弹出位置,可选 | string | topRight | |
|
|
1455
|
+
| showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
|
|
1456
|
+
| pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
|
|
1457
|
+
| rtl | 是否开启 RTL 模式 | boolean | false | |
|
|
1458
|
+
| stack | 堆叠模式,超过阈值时会将所有消息收起 | boolean \| | { threshold: 3 } | 5.10.0 |
|
|
1459
|
+
| top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
|
|
1460
|
+
| maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
|
|
1461
|
+
|
|
1462
|
+
|
|
1463
|
+
### 全局配置
|
|
1464
|
+
|
|
1465
|
+
还提供了一个全局配置方法,在调用前提前配置,全局一次生效。
|
|
1466
|
+
|
|
1467
|
+
`notification.config(options)`
|
|
1468
|
+
|
|
1469
|
+
当你使用 `ConfigProvider` 进行全局化配置时,系统会默认自动开启 RTL 模式。(4.3.0+)当你想单独使用,可通过如下设置开启 RTL 模式。
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
```js
|
|
1473
|
+
notification.config({
|
|
1474
|
+
placement: 'bottomRight',
|
|
1475
|
+
bottom: 50,
|
|
1476
|
+
duration: 3,
|
|
1477
|
+
rtl: true,
|
|
1478
|
+
});
|
|
1479
|
+
```
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
#### notification.config
|
|
1483
|
+
|
|
1484
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1485
|
+
|--------|--------|--------|--------|--------|
|
|
1486
|
+
| bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
|
|
1487
|
+
| closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
|
|
1488
|
+
| duration | 默认自动关闭延时,单位秒 | number | 4.5 | |
|
|
1489
|
+
| showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
|
|
1490
|
+
| pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
|
|
1491
|
+
| getContainer | 配置渲染节点的输出位置,但依旧为全屏展示 | () => HTMLNode | () => document.body | |
|
|
1492
|
+
| placement | 弹出位置,可选 | string | topRight | |
|
|
1493
|
+
| rtl | 是否开启 RTL 模式 | boolean | false | |
|
|
1494
|
+
| top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
|
|
1495
|
+
| maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
|
|
1499
|
+
|
|
1404
1500
|
<DemoTitle title="Modal" desc="用于叠加当前页面上的对话框窗口,提供标题、内容区、操作区。">
|
|
1405
1501
|
#### API
|
|
1406
1502
|
|
|
@@ -1571,124 +1667,28 @@ const confirmed = await modal.confirm({ ... });
|
|
|
1571
1667
|
|
|
1572
1668
|
|
|
1573
1669
|
|
|
1574
|
-
<DemoTitle title="
|
|
1670
|
+
<DemoTitle title="Message" desc="一条简洁且临时显示的消息,为操作提供全局反馈">
|
|
1575
1671
|
#### API
|
|
1576
1672
|
|
|
1577
|
-
|
|
1673
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
1674
|
+
|--------|--------|--------|--------|
|
|
1675
|
+
| conent | 显示的内容 | string | "" |
|
|
1676
|
+
|
|
1677
|
+
<AntdApiRef url="https://ant.design/components/message-cn/#api"></AntdApiRef>
|
|
1578
1678
|
|
|
1579
1679
|
|
|
1580
1680
|
## antd API
|
|
1581
1681
|
|
|
1582
1682
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
1583
1683
|
|
|
1684
|
+
组件提供了一些静态方法,使用方式和参数如下:
|
|
1584
1685
|
|
|
1585
|
-
- `notification.success(config)`
|
|
1586
|
-
- `notification.error(config)`
|
|
1587
|
-
- `notification.info(config)`
|
|
1588
|
-
- `notification.warning(config)`
|
|
1589
|
-
- `notification.open(config)`
|
|
1590
|
-
- `notification.destroy(key?: String)`
|
|
1591
1686
|
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
| className | 自定义 CSS class | string | - | - |
|
|
1598
|
-
| closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
|
|
1599
|
-
| description | 通知提醒内容,必选 | ReactNode | - | - |
|
|
1600
|
-
| duration | 默认 4.5 秒后自动关闭,配置为 null 则不自动关闭 | number | 4.5 | - |
|
|
1601
|
-
| showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
|
|
1602
|
-
| pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
|
|
1603
|
-
| icon | 自定义图标 | ReactNode | - | - |
|
|
1604
|
-
| key | 当前通知唯一标志 | string | - | - |
|
|
1605
|
-
| message | 通知提醒标题,必选 | ReactNode | - | - |
|
|
1606
|
-
| placement | 弹出位置,可选 | string | topRight | - |
|
|
1607
|
-
| style | 自定义内联样式 | | - | - |
|
|
1608
|
-
| role | 供屏幕阅读器识别的通知内容语义,默认为 | alert \| status | alert | 5.6.0 |
|
|
1609
|
-
| onClick | 点击通知时触发的回调函数 | function | - | - |
|
|
1610
|
-
| onClose | 当通知关闭时触发 | function | - | - |
|
|
1611
|
-
| props | 透传至通知 | Object | - | - |
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
- `notification.useNotification(config)`
|
|
1616
|
-
|
|
1617
|
-
config 参数如下:
|
|
1618
|
-
|
|
1619
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1620
|
-
|--------|--------|--------|--------|--------|
|
|
1621
|
-
| bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
|
|
1622
|
-
| closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
|
|
1623
|
-
| getContainer | 配置渲染节点的输出位置 | () => HTMLNode | () => document.body | |
|
|
1624
|
-
| placement | 弹出位置,可选 | string | topRight | |
|
|
1625
|
-
| showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
|
|
1626
|
-
| pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
|
|
1627
|
-
| rtl | 是否开启 RTL 模式 | boolean | false | |
|
|
1628
|
-
| stack | 堆叠模式,超过阈值时会将所有消息收起 | boolean \| | { threshold: 3 } | 5.10.0 |
|
|
1629
|
-
| top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
|
|
1630
|
-
| maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
### 全局配置
|
|
1634
|
-
|
|
1635
|
-
还提供了一个全局配置方法,在调用前提前配置,全局一次生效。
|
|
1636
|
-
|
|
1637
|
-
`notification.config(options)`
|
|
1638
|
-
|
|
1639
|
-
当你使用 `ConfigProvider` 进行全局化配置时,系统会默认自动开启 RTL 模式。(4.3.0+)当你想单独使用,可通过如下设置开启 RTL 模式。
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
```js
|
|
1643
|
-
notification.config({
|
|
1644
|
-
placement: 'bottomRight',
|
|
1645
|
-
bottom: 50,
|
|
1646
|
-
duration: 3,
|
|
1647
|
-
rtl: true,
|
|
1648
|
-
});
|
|
1649
|
-
```
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
#### notification.config
|
|
1653
|
-
|
|
1654
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1655
|
-
|--------|--------|--------|--------|--------|
|
|
1656
|
-
| bottom | 消息从底部弹出时,距离底部的位置,单位像素 | number | 24 | |
|
|
1657
|
-
| closeIcon | 自定义关闭图标 | ReactNode | true | 5.7.0:设置为 null 或 false 时隐藏关闭按钮 |
|
|
1658
|
-
| duration | 默认自动关闭延时,单位秒 | number | 4.5 | |
|
|
1659
|
-
| showProgress | 显示自动关闭通知框的进度条 | boolean | | 5.18.0 |
|
|
1660
|
-
| pauseOnHover | 悬停时是否暂停计时器 | boolean | true | 5.18.0 |
|
|
1661
|
-
| getContainer | 配置渲染节点的输出位置,但依旧为全屏展示 | () => HTMLNode | () => document.body | |
|
|
1662
|
-
| placement | 弹出位置,可选 | string | topRight | |
|
|
1663
|
-
| rtl | 是否开启 RTL 模式 | boolean | false | |
|
|
1664
|
-
| top | 消息从顶部弹出时,距离顶部的位置,单位像素 | number | 24 | |
|
|
1665
|
-
| maxCount | 最大显示数,超过限制时,最早的消息会被自动关闭 | number | - | 4.17.0 |
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
<DemoTitle title="Message" desc="一条简洁且临时显示的消息,为操作提供全局反馈">
|
|
1671
|
-
#### API
|
|
1672
|
-
|
|
1673
|
-
| 属性名 | 描述 | 类型 | 默认值 |
|
|
1674
|
-
|--------|--------|--------|--------|
|
|
1675
|
-
| conent | 显示的内容 | string | "" |
|
|
1676
|
-
|
|
1677
|
-
<AntdApiRef url="https://ant.design/components/message-cn/#api"></AntdApiRef>
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
## antd API
|
|
1681
|
-
|
|
1682
|
-
通用属性参考:[通用属性](/docs/react/common-props)
|
|
1683
|
-
|
|
1684
|
-
组件提供了一些静态方法,使用方式和参数如下:
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
- `message.success(content, [duration], onClose)`
|
|
1688
|
-
- `message.error(content, [duration], onClose)`
|
|
1689
|
-
- `message.info(content, [duration], onClose)`
|
|
1690
|
-
- `message.warning(content, [duration], onClose)`
|
|
1691
|
-
- `message.loading(content, [duration], onClose)`
|
|
1687
|
+
- `message.success(content, [duration], onClose)`
|
|
1688
|
+
- `message.error(content, [duration], onClose)`
|
|
1689
|
+
- `message.info(content, [duration], onClose)`
|
|
1690
|
+
- `message.warning(content, [duration], onClose)`
|
|
1691
|
+
- `message.loading(content, [duration], onClose)`
|
|
1692
1692
|
|
|
1693
1693
|
| 参数 | 说明 | 类型 | 默认值 |
|
|
1694
1694
|
|--------|--------|--------|--------|
|
|
@@ -1767,137 +1767,55 @@ message.config({
|
|
|
1767
1767
|
|
|
1768
1768
|
|
|
1769
1769
|
|
|
1770
|
-
<DemoTitle title="
|
|
1770
|
+
<DemoTitle title="InputNumber" desc="通过鼠标或键盘,输入范围内的数值。">
|
|
1771
1771
|
#### API
|
|
1772
1772
|
|
|
1773
|
-
|
|
1774
|
-
|--------|--------|--------|--------|
|
|
1775
|
-
| shape | 形态 | 'default' \| 'round' | default 默认 |
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
<AntdApiRef url="https://ant.design/components/input-cn/#api"></AntdApiRef>
|
|
1773
|
+
<AntdApiRef url="https://ant.design/components/input-number-cn/#api"></AntdApiRef>
|
|
1779
1774
|
|
|
1780
1775
|
|
|
1781
1776
|
## antd API
|
|
1782
1777
|
|
|
1783
1778
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
1784
1779
|
|
|
1785
|
-
### Input
|
|
1786
|
-
|
|
1787
1780
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1788
1781
|
|--------|--------|--------|--------|--------|
|
|
1789
|
-
| addonAfter | 带标签的 input,设置后置标签 | ReactNode | - |
|
|
1790
|
-
| addonBefore | 带标签的 input,设置前置标签 | ReactNode | - |
|
|
1791
|
-
|
|
|
1792
|
-
|
|
|
1793
|
-
|
|
|
1794
|
-
|
|
|
1795
|
-
|
|
|
1796
|
-
|
|
|
1797
|
-
|
|
|
1798
|
-
|
|
|
1799
|
-
|
|
|
1782
|
+
| addonAfter | 带标签的 input,设置后置标签 | ReactNode | - | 4.17.0 |
|
|
1783
|
+
| addonBefore | 带标签的 input,设置前置标签 | ReactNode | - | 4.17.0 |
|
|
1784
|
+
| autoFocus | 自动获取焦点 | boolean | false | - |
|
|
1785
|
+
| changeOnBlur | 是否在失去焦点时,触发 | boolean | true | 5.11.0 |
|
|
1786
|
+
| changeOnWheel | 允许鼠标滚轮改变数值 | boolean | - | 5.14.0 |
|
|
1787
|
+
| controls | 是否显示增减按钮,也可设置自定义箭头图标 | boolean \| { upIcon?: React.ReactNode; downIcon?: React.ReactNode; } | - | 4.19.0 |
|
|
1788
|
+
| decimalSeparator | 小数点 | string | - | - |
|
|
1789
|
+
| placeholder | 占位符 | string | - | |
|
|
1790
|
+
| defaultValue | 初始值 | number | - | - |
|
|
1791
|
+
| disabled | 禁用 | boolean | false | - |
|
|
1792
|
+
| formatter | 指定输入框展示值的格式 | function(value: number \| string, info: { userTyping: boolean, input: string }): string | - | info: 4.17.0 |
|
|
1793
|
+
| keyboard | 是否启用键盘快捷行为 | boolean | true | 4.12.0 |
|
|
1794
|
+
| max | 最大值 | number | | - |
|
|
1795
|
+
| min | 最小值 | number | | - |
|
|
1796
|
+
| parser | 指定从 | function(string): number | - | - |
|
|
1797
|
+
| precision | 数值精度,配置 | number | - | - |
|
|
1798
|
+
| readOnly | 只读 | boolean | false | - |
|
|
1800
1799
|
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
|
1801
|
-
|
|
|
1802
|
-
|
|
|
1803
|
-
|
|
|
1804
|
-
|
|
|
1805
|
-
|
|
|
1800
|
+
| prefix | 带有前缀图标的 input | ReactNode | - | 4.17.0 |
|
|
1801
|
+
| suffix | 带有后缀图标的 input | ReactNode | - | 5.20.0 |
|
|
1802
|
+
| size | 输入框大小 | large | - | - |
|
|
1803
|
+
| step | 每次改变步数,可以为小数 | number \| string | 1 | - |
|
|
1804
|
+
| stringMode | 字符值模式,开启后支持高精度小数。同时 | boolean | false | 4.13.0 |
|
|
1805
|
+
| value | 当前值 | number | - | - |
|
|
1806
1806
|
| variant | 形态变体 | outlined | outlined | 5.13.0 \| |
|
|
1807
|
-
| onChange |
|
|
1808
|
-
| onPressEnter | 按下回车的回调 | function(e) | - |
|
|
1809
|
-
|
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
如果 `Input` 在 `Form.Item` 内,并且 `Form.Item` 设置了 `id` 属性,则 `value` `defaultValue` 和 `id` 属性会被自动设置。
|
|
1813
|
-
|
|
1814
|
-
Input 的其他属性和 React 自带的 [input](https://reactjs.org/docs/dom-elements.html#all-supported-html-attributes) 一致。
|
|
1815
|
-
|
|
1816
|
-
#### CountConfig
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
```tsx
|
|
1820
|
-
interface CountConfig {
|
|
1821
|
-
// 最大字符数,不同于原生 `maxLength`,超出后标红但不会截断
|
|
1822
|
-
max?: number;
|
|
1823
|
-
// 自定义字符计数,例如标准 emoji 长度大于 1,可以自定义计数策略将其改为 1
|
|
1824
|
-
strategy?: (value: string) => number;
|
|
1825
|
-
// 同 `showCount`
|
|
1826
|
-
show?: boolean | ((args: { value: string; count: number; maxLength?: number }) => ReactNode);
|
|
1827
|
-
// 当字符数超出 `count.max` 时的自定义裁剪逻辑,不配置时不进行裁剪
|
|
1828
|
-
exceedFormatter?: (value: string, config: { max: number }) => string;
|
|
1829
|
-
}
|
|
1830
|
-
```
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
### Input.TextArea
|
|
1834
|
-
|
|
1835
|
-
同 Input 属性,外加:
|
|
1836
|
-
|
|
1837
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1838
|
-
|--------|--------|--------|--------|--------|
|
|
1839
|
-
| autoSize | 自适应内容高度,可设置为 true \| false 或对象:{ minRows: 2, maxRows: 6 } | boolean \| object | false | |
|
|
1840
|
-
| classNames | 语义化结构 class | Record< | - | 5.4.0 |
|
|
1841
|
-
| styles | 语义化结构 style | Record< | - | 5.4.0 |
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
`Input.TextArea` 的其他属性和浏览器自带的 [textarea](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea) 一致。
|
|
1845
|
-
|
|
1846
|
-
### Input.Search
|
|
1847
|
-
|
|
1848
|
-
| 参数 | 说明 | 类型 | 默认值 |
|
|
1849
|
-
|--------|--------|--------|--------|
|
|
1850
|
-
| enterButton | 是否有确认按钮,可设为按钮文字。该属性会与 | ReactNode | false |
|
|
1851
|
-
| loading | 搜索 loading | boolean | false |
|
|
1852
|
-
| onSearch | 点击搜索图标、清除图标,或按下回车键时的回调 | function(value, event, { source: "input" \| "clear" }) | - |
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
其余属性和 Input 一致。
|
|
1856
|
-
|
|
1857
|
-
### Input.Password
|
|
1858
|
-
|
|
1859
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1860
|
-
|--------|--------|--------|--------|--------|
|
|
1861
|
-
| iconRender | 自定义切换按钮 | (visible) => ReactNode | (visible) => (visible ? : ) | 4.3.0 |
|
|
1862
|
-
| visibilityToggle | 是否显示切换按钮或者控制密码显隐 | boolean \| | true | |
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
### Input.OTP
|
|
1866
|
-
|
|
1867
|
-
`5.16.0` 新增。
|
|
1868
|
-
|
|
1869
|
-
开发者注意事项:当 `mask` 属性的类型为 string 时,我们强烈推荐接收单个字符或单个 emoji,如果传入多个字符或多个 emoji,则会在控制台抛出警告。
|
|
1870
|
-
|
|
1871
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
1872
|
-
|--------|--------|--------|--------|--------|
|
|
1873
|
-
| defaultValue | 默认值 | string | - | |
|
|
1874
|
-
| disabled | 是否禁用 | boolean | false | |
|
|
1875
|
-
| formatter | 格式化展示,留空字段会被 | (value: string) => string | - | |
|
|
1876
|
-
| separator | 分隔符,在指定索引的输入框后渲染分隔符 | ReactNode \|((i: number) => ReactNode) | - | 5.24.0 |
|
|
1877
|
-
| mask | 自定义展示,和 | boolean \| string | false | 5.17.0 |
|
|
1878
|
-
| length | 输入元素数量 | number | 6 | |
|
|
1879
|
-
| status | 设置校验状态 | 'error' \| 'warning' | - | |
|
|
1880
|
-
| size | 输入框大小 | small | middle | |
|
|
1881
|
-
| variant | 形态变体 | outlined | outlined | underlined |
|
|
1882
|
-
| value | 输入框内容 | string | - | |
|
|
1883
|
-
| onChange | 当输入框内容全部填充时触发回调 | (value: string) => void | - | |
|
|
1884
|
-
| onInput | 输入值变化时触发的回调 | (value: string[]) => void | - | 5.22.0 |
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
#### VisibilityToggle
|
|
1888
|
-
|
|
1889
|
-
| Property | Description | Type | Default | Version |
|
|
1890
|
-
|--------|--------|--------|--------|--------|
|
|
1891
|
-
| visible | 用于手动控制密码显隐 | boolean | false | 4.24 |
|
|
1892
|
-
| onVisibleChange | 显隐密码的回调 | (visible) => void | - | 4.24 |
|
|
1807
|
+
| onChange | 变化回调 | function(value: number \| string \| null) | - | - |
|
|
1808
|
+
| onPressEnter | 按下回车的回调 | function(e) | - | - |
|
|
1809
|
+
| onStep | 点击上下箭头的回调 | (value: number, info: { offset: number, type: 'up' \| 'down' }) => void | - | 4.7.0 |
|
|
1893
1810
|
|
|
1894
1811
|
|
|
1895
|
-
|
|
1812
|
+
## Ref
|
|
1896
1813
|
|
|
1897
1814
|
| 名称 | 说明 | 参数 | 版本 |
|
|
1898
1815
|
|--------|--------|--------|--------|
|
|
1899
|
-
| blur |
|
|
1900
|
-
| focus | 获取焦点 | (option?: { preventScroll?: boolean, cursor?: 'start' \| 'end' \| 'all' }) |
|
|
1816
|
+
| blur() | 移除焦点 | - | |
|
|
1817
|
+
| focus() | 获取焦点 | (option?: { preventScroll?: boolean, cursor?: 'start' \| 'end' \| 'all' }) | cursor - 5.22.0 |
|
|
1818
|
+
| nativeElement | 获取原生 DOM 元素 | - | 5.17.3 |
|
|
1901
1819
|
|
|
1902
1820
|
|
|
1903
1821
|
|
|
@@ -2069,55 +1987,137 @@ type TransformAction =
|
|
|
2069
1987
|
|
|
2070
1988
|
|
|
2071
1989
|
|
|
2072
|
-
<DemoTitle title="
|
|
1990
|
+
<DemoTitle title="Input" desc="通过鼠标或键盘输入内容,为表单提供输入字段的基础容器。。">
|
|
2073
1991
|
#### API
|
|
2074
1992
|
|
|
2075
|
-
|
|
1993
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
1994
|
+
|--------|--------|--------|--------|
|
|
1995
|
+
| shape | 形态 | 'default' \| 'round' | default 默认 |
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
<AntdApiRef url="https://ant.design/components/input-cn/#api"></AntdApiRef>
|
|
2076
1999
|
|
|
2077
2000
|
|
|
2078
2001
|
## antd API
|
|
2079
2002
|
|
|
2080
2003
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2081
2004
|
|
|
2005
|
+
### Input
|
|
2006
|
+
|
|
2082
2007
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2083
2008
|
|--------|--------|--------|--------|--------|
|
|
2084
|
-
| addonAfter | 带标签的 input,设置后置标签 | ReactNode | - |
|
|
2085
|
-
| addonBefore | 带标签的 input,设置前置标签 | ReactNode | - |
|
|
2086
|
-
|
|
|
2087
|
-
|
|
|
2088
|
-
|
|
|
2089
|
-
|
|
|
2090
|
-
|
|
|
2091
|
-
|
|
|
2092
|
-
|
|
|
2093
|
-
|
|
|
2094
|
-
|
|
|
2095
|
-
| keyboard | 是否启用键盘快捷行为 | boolean | true | 4.12.0 |
|
|
2096
|
-
| max | 最大值 | number | | - |
|
|
2097
|
-
| min | 最小值 | number | | - |
|
|
2098
|
-
| parser | 指定从 | function(string): number | - | - |
|
|
2099
|
-
| precision | 数值精度,配置 | number | - | - |
|
|
2100
|
-
| readOnly | 只读 | boolean | false | - |
|
|
2009
|
+
| addonAfter | 带标签的 input,设置后置标签 | ReactNode | - | |
|
|
2010
|
+
| addonBefore | 带标签的 input,设置前置标签 | ReactNode | - | |
|
|
2011
|
+
| allowClear | 可以点击清除图标删除内容 | boolean \| { clearIcon: ReactNode } | - | |
|
|
2012
|
+
| classNames | 语义化结构 class | Record< | - | 5.4.0 |
|
|
2013
|
+
| count | 字符计数配置 | | - | 5.10.0 |
|
|
2014
|
+
| defaultValue | 输入框默认内容 | string | - | |
|
|
2015
|
+
| disabled | 是否禁用状态,默认为 false | boolean | false | |
|
|
2016
|
+
| id | 输入框的 id | string | - | |
|
|
2017
|
+
| maxLength | 最大长度 | number | - | |
|
|
2018
|
+
| prefix | 带有前缀图标的 input | ReactNode | - | |
|
|
2019
|
+
| showCount | 是否展示字数 | boolean \| { formatter: (info: { value: string, count: number, maxLength?: number }) => ReactNode } | false | 4.18.0 info.value: 4.23.0 |
|
|
2101
2020
|
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
|
2102
|
-
|
|
|
2103
|
-
|
|
|
2104
|
-
|
|
|
2105
|
-
|
|
|
2106
|
-
|
|
|
2107
|
-
| value | 当前值 | number | - | - |
|
|
2021
|
+
| styles | 语义化结构 style | Record< | - | 5.4.0 |
|
|
2022
|
+
| size | 控件大小。注:标准表单内的输入框大小限制为 | large | - | |
|
|
2023
|
+
| suffix | 带有后缀图标的 input | ReactNode | - | |
|
|
2024
|
+
| type | 声明 input 类型,同原生 input 标签的 type 属性,见: | string | text | |
|
|
2025
|
+
| value | 输入框内容 | string | - | |
|
|
2108
2026
|
| variant | 形态变体 | outlined | outlined | 5.13.0 \| |
|
|
2109
|
-
| onChange |
|
|
2110
|
-
| onPressEnter | 按下回车的回调 | function(e) | - |
|
|
2111
|
-
|
|
|
2027
|
+
| onChange | 输入框内容变化时的回调 | function(e) | - | |
|
|
2028
|
+
| onPressEnter | 按下回车的回调 | function(e) | - | |
|
|
2029
|
+
| onClear | 按下清除按钮的回调 | () => void | - | 5.20.0 |
|
|
2112
2030
|
|
|
2113
2031
|
|
|
2114
|
-
|
|
2032
|
+
如果 `Input` 在 `Form.Item` 内,并且 `Form.Item` 设置了 `id` 属性,则 `value` `defaultValue` 和 `id` 属性会被自动设置。
|
|
2033
|
+
|
|
2034
|
+
Input 的其他属性和 React 自带的 [input](https://reactjs.org/docs/dom-elements.html#all-supported-html-attributes) 一致。
|
|
2035
|
+
|
|
2036
|
+
#### CountConfig
|
|
2037
|
+
|
|
2038
|
+
|
|
2039
|
+
```tsx
|
|
2040
|
+
interface CountConfig {
|
|
2041
|
+
// 最大字符数,不同于原生 `maxLength`,超出后标红但不会截断
|
|
2042
|
+
max?: number;
|
|
2043
|
+
// 自定义字符计数,例如标准 emoji 长度大于 1,可以自定义计数策略将其改为 1
|
|
2044
|
+
strategy?: (value: string) => number;
|
|
2045
|
+
// 同 `showCount`
|
|
2046
|
+
show?: boolean | ((args: { value: string; count: number; maxLength?: number }) => ReactNode);
|
|
2047
|
+
// 当字符数超出 `count.max` 时的自定义裁剪逻辑,不配置时不进行裁剪
|
|
2048
|
+
exceedFormatter?: (value: string, config: { max: number }) => string;
|
|
2049
|
+
}
|
|
2050
|
+
```
|
|
2051
|
+
|
|
2052
|
+
|
|
2053
|
+
### Input.TextArea
|
|
2054
|
+
|
|
2055
|
+
同 Input 属性,外加:
|
|
2056
|
+
|
|
2057
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2058
|
+
|--------|--------|--------|--------|--------|
|
|
2059
|
+
| autoSize | 自适应内容高度,可设置为 true \| false 或对象:{ minRows: 2, maxRows: 6 } | boolean \| object | false | |
|
|
2060
|
+
| classNames | 语义化结构 class | Record< | - | 5.4.0 |
|
|
2061
|
+
| styles | 语义化结构 style | Record< | - | 5.4.0 |
|
|
2062
|
+
|
|
2063
|
+
|
|
2064
|
+
`Input.TextArea` 的其他属性和浏览器自带的 [textarea](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea) 一致。
|
|
2065
|
+
|
|
2066
|
+
### Input.Search
|
|
2067
|
+
|
|
2068
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
2069
|
+
|--------|--------|--------|--------|
|
|
2070
|
+
| enterButton | 是否有确认按钮,可设为按钮文字。该属性会与 | ReactNode | false |
|
|
2071
|
+
| loading | 搜索 loading | boolean | false |
|
|
2072
|
+
| onSearch | 点击搜索图标、清除图标,或按下回车键时的回调 | function(value, event, { source: "input" \| "clear" }) | - |
|
|
2073
|
+
|
|
2074
|
+
|
|
2075
|
+
其余属性和 Input 一致。
|
|
2076
|
+
|
|
2077
|
+
### Input.Password
|
|
2078
|
+
|
|
2079
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2080
|
+
|--------|--------|--------|--------|--------|
|
|
2081
|
+
| iconRender | 自定义切换按钮 | (visible) => ReactNode | (visible) => (visible ? : ) | 4.3.0 |
|
|
2082
|
+
| visibilityToggle | 是否显示切换按钮或者控制密码显隐 | boolean \| | true | |
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
### Input.OTP
|
|
2086
|
+
|
|
2087
|
+
`5.16.0` 新增。
|
|
2088
|
+
|
|
2089
|
+
开发者注意事项:当 `mask` 属性的类型为 string 时,我们强烈推荐接收单个字符或单个 emoji,如果传入多个字符或多个 emoji,则会在控制台抛出警告。
|
|
2090
|
+
|
|
2091
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2092
|
+
|--------|--------|--------|--------|--------|
|
|
2093
|
+
| defaultValue | 默认值 | string | - | |
|
|
2094
|
+
| disabled | 是否禁用 | boolean | false | |
|
|
2095
|
+
| formatter | 格式化展示,留空字段会被 | (value: string) => string | - | |
|
|
2096
|
+
| separator | 分隔符,在指定索引的输入框后渲染分隔符 | ReactNode \|((i: number) => ReactNode) | - | 5.24.0 |
|
|
2097
|
+
| mask | 自定义展示,和 | boolean \| string | false | 5.17.0 |
|
|
2098
|
+
| length | 输入元素数量 | number | 6 | |
|
|
2099
|
+
| status | 设置校验状态 | 'error' \| 'warning' | - | |
|
|
2100
|
+
| size | 输入框大小 | small | middle | |
|
|
2101
|
+
| variant | 形态变体 | outlined | outlined | underlined |
|
|
2102
|
+
| value | 输入框内容 | string | - | |
|
|
2103
|
+
| onChange | 当输入框内容全部填充时触发回调 | (value: string) => void | - | |
|
|
2104
|
+
| onInput | 输入值变化时触发的回调 | (value: string[]) => void | - | 5.22.0 |
|
|
2105
|
+
|
|
2106
|
+
|
|
2107
|
+
#### VisibilityToggle
|
|
2108
|
+
|
|
2109
|
+
| Property | Description | Type | Default | Version |
|
|
2110
|
+
|--------|--------|--------|--------|--------|
|
|
2111
|
+
| visible | 用于手动控制密码显隐 | boolean | false | 4.24 |
|
|
2112
|
+
| onVisibleChange | 显隐密码的回调 | (visible) => void | - | 4.24 |
|
|
2113
|
+
|
|
2114
|
+
|
|
2115
|
+
#### Input Methods
|
|
2115
2116
|
|
|
2116
2117
|
| 名称 | 说明 | 参数 | 版本 |
|
|
2117
2118
|
|--------|--------|--------|--------|
|
|
2118
|
-
| blur
|
|
2119
|
-
| focus
|
|
2120
|
-
| nativeElement | 获取原生 DOM 元素 | - | 5.17.3 |
|
|
2119
|
+
| blur | 取消焦点 | - | |
|
|
2120
|
+
| focus | 获取焦点 | (option?: { preventScroll?: boolean, cursor?: 'start' \| 'end' \| 'all' }) | option - 4.10.0 |
|
|
2121
2121
|
|
|
2122
2122
|
|
|
2123
2123
|
|
|
@@ -2168,1228 +2168,1155 @@ type PresetColors = 'blue' | 'purple' | 'cyan' | 'green' | 'magenta' | 'pink' |
|
|
|
2168
2168
|
|
|
2169
2169
|
|
|
2170
2170
|
|
|
2171
|
-
<DemoTitle title="
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
<AntdApiRef url="https://ant.design/components/form-cn/#api"></AntdApiRef>
|
|
2171
|
+
<DemoTitle title="Empty" desc="用于空状态的占位图形展示。">
|
|
2172
|
+
## API
|
|
2175
2173
|
|
|
2174
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
2175
|
+
|--------|--------|--------|--------|
|
|
2176
|
+
| type | 空状态类型 | \| 'noData'
|
|
2177
|
+
\| 'networkError'
|
|
2178
|
+
\| '404'
|
|
2179
|
+
\| 'arrears'
|
|
2180
|
+
\| 'desktopOnly'
|
|
2181
|
+
\| 'noAudio'
|
|
2182
|
+
\| 'noImage'
|
|
2183
|
+
\| 'noVideo'
|
|
2184
|
+
\| 'noAccess'
|
|
2185
|
+
\| 'error'
|
|
2186
|
+
\| 'noChat'
|
|
2187
|
+
\| 'noModel'
|
|
2188
|
+
\| 'noApp'
|
|
2189
|
+
\| 'success'
|
|
2190
|
+
\| 'failed'
|
|
2191
|
+
\| 'inProgress'
|
|
2192
|
+
\| 'stayTuned' | 'noData' |
|
|
2193
|
+
| texture | 是否显示纹理 | boolean | true |
|
|
2194
|
+
| image | 图片地址 | string | 默认是no data的图片 |
|
|
2195
|
+
| imageStyle | 图片样式 | React.CSSProperties | |
|
|
2196
|
+
| title | 标题内容 | React.ReactNode | |
|
|
2197
|
+
| description | 自定义描述内容 | React.ReactNode | |
|
|
2198
|
+
| onOk | ok按钮的点击事件 | (e: React.MouseEvent) => void | |
|
|
2199
|
+
| okText | ok按钮的文本 | React.ReactNode | |
|
|
2200
|
+
| okType | ok按钮的类型 | SparkButtonProps['type'] | 'primary' |
|
|
2201
|
+
| okButtonProps | ok按钮的props | SparkButtonProps | |
|
|
2202
|
+
| children | 自定义空状态的内容 | React.ReactNode | |
|
|
2203
|
+
| className | 自定义空状态的类名 | string | |
|
|
2204
|
+
| style | 自定义空状态的样式 | React.CSSProperties | |
|
|
2205
|
+
| size | 自定义空状态的大小 | React.CSSProperties['width'] | |
|
|
2206
|
+
| autoFit | 是否自适应容器宽度,当容器宽度小于 size 时自动缩放 | boolean | false |
|
|
2176
2207
|
|
|
2177
|
-
## antd API
|
|
2178
2208
|
|
|
2179
|
-
|
|
2209
|
+
<AntdApiRef url="https://ant.design/components/empty-cn/#api"></AntdApiRef>
|
|
2180
2210
|
|
|
2181
|
-
### Form
|
|
2182
2211
|
|
|
2183
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2184
|
-
|--------|--------|--------|--------|--------|
|
|
2185
|
-
| colon | 配置 Form.Item 的 | boolean | true | |
|
|
2186
|
-
| disabled | 设置表单组件禁用,仅对 antd 组件有效 | boolean | false | 4.21.0 |
|
|
2187
|
-
| component | 设置 Form 渲染元素,为 | ComponentType \| false | form | |
|
|
2188
|
-
| fields | 通过状态管理(如 redux)控制表单字段,如非强需求不推荐使用。查看 | | - | |
|
|
2189
|
-
| form | 经 | | - | |
|
|
2190
|
-
| feedbackIcons | 当 | | - | 5.9.0 |
|
|
2191
|
-
| initialValues | 表单默认值,只有初始化以及重置时生效 | object | - | |
|
|
2192
|
-
| labelAlign | label 标签的文本对齐方式 | left | right | |
|
|
2193
|
-
| labelWrap | label 标签的文本换行方式 | boolean | false | 4.18.0 |
|
|
2194
|
-
| labelCol | label 标签布局,同 | | - | |
|
|
2195
|
-
| layout | 表单布局 | horizontal | horizontal | |
|
|
2196
|
-
| name | 表单名称,会作为表单字段 | string | - | |
|
|
2197
|
-
| preserve | 当字段被删除时保留字段值。你可以通过 | boolean | true | 4.4.0 |
|
|
2198
|
-
| requiredMark | 必选样式,可以切换为必选或者可选展示样式。此为 Form 配置,Form.Item 无法单独配置 | boolean \| | true | renderProps |
|
|
2199
|
-
| scrollToFirstError | 提交失败自动滚动到第一个错误字段 | boolean \| | false | focus: 5.24.0 |
|
|
2200
|
-
| size | 设置字段组件的尺寸(仅限 antd 组件) | small | - | |
|
|
2201
|
-
| validateMessages | 验证提示模板,说明 | | - | |
|
|
2202
|
-
| validateTrigger | 统一设置字段触发验证的时机 | string \| string[] | onChange | 4.3.0 |
|
|
2203
|
-
| variant | 表单内控件变体 | outlined | outlined | 5.13.0 \| |
|
|
2204
|
-
| wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol | | - | |
|
|
2205
|
-
| onFieldsChange | 字段更新时触发回调事件 | function(changedFields, allFields) | - | |
|
|
2206
|
-
| onFinish | 提交表单且数据验证成功后回调事件 | function(values) | - | |
|
|
2207
|
-
| onFinishFailed | 提交表单且数据验证失败后回调事件 | function({ values, errorFields, outOfDate }) | - | |
|
|
2208
|
-
| onValuesChange | 字段值更新时触发回调事件 | function(changedValues, allValues) | - | |
|
|
2209
|
-
| clearOnDestroy | 当表单被卸载时清空表单值 | boolean | false | 5.18.0 |
|
|
2210
2212
|
|
|
2211
2213
|
|
|
2212
|
-
支持原生 form 除 `onSubmit` 外的所有属性。
|
|
2213
2214
|
|
|
2214
|
-
|
|
2215
|
+
<DemoTitle title="FloatButton" desc="用于网站上的全局功能;无论浏览到何处都可以看见的按钮。">
|
|
2216
|
+
#### API
|
|
2215
2217
|
|
|
2216
|
-
|
|
2218
|
+
<AntdApiRef url="https://ant.design/components/float-button-cn/#api"></AntdApiRef>
|
|
2217
2219
|
|
|
2218
2220
|
|
|
2219
|
-
|
|
2220
|
-
const validateMessages = {
|
|
2221
|
-
required: "'${name}' 是必选字段",
|
|
2222
|
-
// ...
|
|
2223
|
-
};
|
|
2221
|
+
## antd API
|
|
2224
2222
|
|
|
2225
|
-
|
|
2226
|
-
```
|
|
2223
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2227
2224
|
|
|
2225
|
+
自 `antd@5.0.0` 版本开始提供该组件。
|
|
2228
2226
|
|
|
2229
|
-
|
|
2227
|
+
### 共同的 API
|
|
2230
2228
|
|
|
2229
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2230
|
+
|--------|--------|--------|--------|--------|
|
|
2231
|
+
| icon | 自定义图标 | ReactNode | - | |
|
|
2232
|
+
| description | 文字及其它内容 | ReactNode | - | |
|
|
2233
|
+
| tooltip | 气泡卡片的内容 | ReactNode \| | - | TooltipProps: 5.25.0 |
|
|
2234
|
+
| type | 设置按钮类型 | default | default | |
|
|
2235
|
+
| shape | 设置按钮形状 | circle | circle | |
|
|
2236
|
+
| onClick | 点击按钮时的回调 | (event) => void | - | |
|
|
2237
|
+
| href | 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 | string | - | |
|
|
2238
|
+
| target | 相当于 a 标签的 target 属性,href 存在时生效 | string | - | |
|
|
2239
|
+
| htmlType | 设置 | submit | button | 5.21.0 |
|
|
2240
|
+
| badge | 带徽标数字的悬浮按钮(不支持 | | - | 5.4.0 |
|
|
2231
2241
|
|
|
2232
|
-
```jsx
|
|
2233
|
-
const validateMessages = {
|
|
2234
|
-
required: "'${name}' 是必选字段",
|
|
2235
|
-
// ...
|
|
2236
|
-
};
|
|
2237
2242
|
|
|
2238
|
-
|
|
2239
|
-
<Form />
|
|
2240
|
-
</ConfigProvider>;
|
|
2241
|
-
```
|
|
2243
|
+
### FloatButton.Group
|
|
2242
2244
|
|
|
2245
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2246
|
+
|--------|--------|--------|--------|--------|
|
|
2247
|
+
| shape | 设置包含的 FloatButton 按钮形状 | circle | circle | |
|
|
2248
|
+
| trigger | 触发方式(有触发方式为菜单模式) | click | - | |
|
|
2249
|
+
| open | 受控展开,需配合 trigger 一起使用 | boolean | - | |
|
|
2250
|
+
| closeIcon | 自定义关闭按钮 | React.ReactNode | | |
|
|
2251
|
+
| placement | 自定义菜单弹出位置 | top | top | 5.21.0 |
|
|
2252
|
+
| onOpenChange | 展开收起时的回调,需配合 trigger 一起使用 | (open: boolean) => void | - | |
|
|
2253
|
+
| onClick | 点击按钮时的回调(仅在菜单模式中有效) | (event) => void | - | 5.3.0 |
|
|
2243
2254
|
|
|
2244
|
-
## Form.Item
|
|
2245
2255
|
|
|
2246
|
-
|
|
2256
|
+
### FloatButton.BackTop
|
|
2247
2257
|
|
|
2248
2258
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2249
2259
|
|--------|--------|--------|--------|--------|
|
|
2250
|
-
|
|
|
2251
|
-
|
|
|
2252
|
-
|
|
|
2253
|
-
|
|
|
2254
|
-
| getValueProps | 为子元素添加额外的属性 (不建议通过 | (value: any) => Record | - | 4.2.0 |
|
|
2255
|
-
| hasFeedback | 配合 | boolean \| { icons: | false | icons: 5.9.0 |
|
|
2256
|
-
| help | 提示信息,如不设置,则会根据校验规则自动生成 | ReactNode | - | |
|
|
2257
|
-
| hidden | 是否隐藏字段(依然会收集和校验字段) | boolean | false | 4.4.0 |
|
|
2258
|
-
| htmlFor | 设置子元素 label | string | - | |
|
|
2259
|
-
| initialValue | 设置子元素默认值,如果与 Form 的 | string | - | 4.2.0 |
|
|
2260
|
-
| label | label | ReactNode | - | null: 5.22.0 |
|
|
2261
|
-
| labelAlign | 标签文本对齐方式 | left | right | |
|
|
2262
|
-
| labelCol | label | | - | |
|
|
2263
|
-
| messageVariables | 默认验证字段的信息,查看 | Record | - | 4.7.0 |
|
|
2264
|
-
| name | 字段名,支持数组 | | - | |
|
|
2265
|
-
| normalize | 组件获取值后进行转换,再放入 Form 中。不支持异步 | (value, prevValue, prevValues) => any | - | |
|
|
2266
|
-
| noStyle | 为 | boolean | false | |
|
|
2267
|
-
| preserve | 当字段被删除时保留字段值 | boolean | true | 4.4.0 |
|
|
2268
|
-
| required | 必填样式设置。如不设置,则会根据校验规则自动生成 | boolean | false | |
|
|
2269
|
-
| rules | 校验规则,设置字段的校验逻辑。点击 | | - | |
|
|
2270
|
-
| shouldUpdate | 自定义字段更新逻辑,说明 | boolean \| (prevValue, curValue) => boolean | false | |
|
|
2271
|
-
| tooltip | 配置提示信息 | ReactNode \| | - | 4.7.0 |
|
|
2272
|
-
| trigger | 设置收集字段值变更的时机。点击 | string | onChange | |
|
|
2273
|
-
| validateFirst | 当某一规则校验不通过时,是否停止剩下的规则的校验。设置 | boolean \| | false | parallel |
|
|
2274
|
-
| validateDebounce | 设置防抖,延迟毫秒数后进行校验 | number | - | 5.9.0 |
|
|
2275
|
-
| validateStatus | 校验状态,如不设置,则会根据校验规则自动生成,可选:'success' 'warning' 'error' 'validating' | string | - | |
|
|
2276
|
-
| validateTrigger | 设置字段校验的时机 | string \| string[] | onChange | |
|
|
2277
|
-
| valuePropName | 子节点的值的属性。注意:Switch、Checkbox 的 valuePropName 应该是 | string | value | |
|
|
2278
|
-
| wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 | | - | |
|
|
2279
|
-
| layout | 表单项布局 | horizontal | - | 5.18.0 |
|
|
2260
|
+
| duration | 回到顶部所需时间(ms) | number | 450 | |
|
|
2261
|
+
| target | 设置需要监听其滚动事件的元素 | () => HTMLElement | () => window | |
|
|
2262
|
+
| visibilityHeight | 滚动高度达到此参数值才出现 BackTop | number | 400 | |
|
|
2263
|
+
| onClick | 点击按钮的回调函数 | () => void | - | |
|
|
2280
2264
|
|
|
2281
2265
|
|
|
2282
|
-
被设置了 `name` 属性的 `Form.Item` 包装的控件,表单控件会自动添加 `value`(或 `valuePropName` 指定的其他属性) `onChange`(或 `trigger` 指定的其他属性),数据同步将被 Form 接管,这会导致以下结果:
|
|
2283
2266
|
|
|
2284
2267
|
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
3. 你不应该用 `setState`,可以使用 `form.setFieldsValue` 来动态改变表单值。
|
|
2268
|
+
<DemoTitle title="Dropdown" desc="向下弹出的列表。">
|
|
2269
|
+
#### API
|
|
2288
2270
|
|
|
2289
|
-
|
|
2271
|
+
<AntdApiRef url="https://ant.design/components/dropdown-cn/#api"></AntdApiRef>
|
|
2290
2272
|
|
|
2291
|
-
当字段间存在依赖关系时使用。如果一个字段设置了 `dependencies` 属性。那么它所依赖的字段更新时,该字段将自动触发更新与校验。一种常见的场景,就是注册用户表单的“密码”与“确认密码”字段。“确认密码”校验依赖于“密码”字段,设置 `dependencies` 后,“密码”字段更新会重新触发“校验密码”的校验逻辑。你可以参考[具体例子](#form-demo-dependencies)。
|
|
2292
2273
|
|
|
2293
|
-
|
|
2274
|
+
## antd API
|
|
2294
2275
|
|
|
2295
|
-
|
|
2276
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2296
2277
|
|
|
2297
|
-
|
|
2278
|
+
### Dropdown
|
|
2298
2279
|
|
|
2299
|
-
|
|
2280
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2281
|
+
|--------|--------|--------|--------|--------|
|
|
2282
|
+
| arrow | 下拉框箭头是否显示 | boolean \| { pointAtCenter: boolean } | false | |
|
|
2283
|
+
| autoAdjustOverflow | 下拉框被遮挡时自动调整位置 | boolean | true | 5.2.0 |
|
|
2284
|
+
| autoFocus | 打开后自动聚焦下拉框 | boolean | false | 4.21.0 |
|
|
2285
|
+
| disabled | 菜单是否禁用 | boolean | - | |
|
|
2286
|
+
| destroyOnHidden | 关闭后是否销毁 Dropdown | boolean | false | 5.25.0 |
|
|
2287
|
+
| popupRender | 自定义弹出框内容 | (menus: ReactNode) => ReactNode | - | 5.25.0 |
|
|
2288
|
+
| getPopupContainer | 菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。 | (triggerNode: HTMLElement) => HTMLElement | () => document.body | |
|
|
2289
|
+
| menu | 菜单配置项 | | - | 4.24.0 |
|
|
2290
|
+
| overlayClassName | 下拉根元素的类名称 | string | - | |
|
|
2291
|
+
| overlayStyle | 下拉根元素的样式 | CSSProperties | - | |
|
|
2292
|
+
| placement | 菜单弹出位置: | string | bottomLeft | |
|
|
2293
|
+
| trigger | 触发下拉的行为,移动端不支持 hover | Array< | [ | |
|
|
2294
|
+
| open | 菜单是否显示,小于 4.23.0 使用 | boolean | - | 4.23.0 |
|
|
2295
|
+
| onOpenChange | 菜单显示状态改变时调用,点击菜单按钮导致的消失不会触发。小于 4.23.0 使用 | (open: boolean, info: { source: 'trigger' \| 'menu' }) => void | - | info.source |
|
|
2300
2296
|
|
|
2301
|
-
Form 通过增量更新方式,只更新被修改的字段相关组件以达到性能优化目的。大部分场景下,你只需要编写代码或者与 [`dependencies`](#dependencies) 属性配合校验即可。而在某些特定场景,例如修改某个字段值后出现新的字段选项、或者纯粹希望表单任意变化都对某一个区域进行渲染。你可以通过 `shouldUpdate` 修改 Form.Item 的更新逻辑。
|
|
2302
2297
|
|
|
2303
|
-
|
|
2298
|
+
### Dropdown.Button
|
|
2304
2299
|
|
|
2305
|
-
|
|
2300
|
+
属性与 Dropdown 的相同。还包含以下属性:
|
|
2306
2301
|
|
|
2302
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2303
|
+
|--------|--------|--------|--------|--------|
|
|
2304
|
+
| buttonsRender | 自定义左右两个按钮 | (buttons: ReactNode[]) => ReactNode[] | - | |
|
|
2305
|
+
| loading | 设置按钮载入状态,和 | boolean \| { delay: number, icon: ReactNode } | false | icon: 5.23.0 |
|
|
2306
|
+
| danger | 设置危险按钮 | boolean | - | 4.23.0 |
|
|
2307
|
+
| icon | 右侧的 icon | ReactNode | - | |
|
|
2308
|
+
| size | 按钮大小,和 | large | middle | |
|
|
2309
|
+
| type | 按钮类型,和 | primary | default | |
|
|
2310
|
+
| onClick | 点击左侧按钮的回调,和 | (event: React.MouseEvent) => void | - | |
|
|
2307
2311
|
|
|
2308
|
-
```jsx
|
|
2309
|
-
<Form.Item shouldUpdate>
|
|
2310
|
-
{() => {
|
|
2311
|
-
return <pre>{JSON.stringify(form.getFieldsValue(), null, 2)}</pre>;
|
|
2312
|
-
}}
|
|
2313
|
-
</Form.Item>
|
|
2314
|
-
```
|
|
2315
2312
|
|
|
2313
|
+
## 注意
|
|
2316
2314
|
|
|
2317
|
-
|
|
2315
|
+
请确保 `Dropdown` 的子元素能接受 `onMouseEnter`、`onMouseLeave`、`onFocus`、`onClick` 事件。
|
|
2316
|
+
## antd API
|
|
2318
2317
|
|
|
2319
|
-
|
|
2318
|
+
### Menu
|
|
2320
2319
|
|
|
2320
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2321
|
+
|--------|--------|--------|--------|--------|
|
|
2322
|
+
| defaultOpenKeys | 初始展开的 SubMenu 菜单项 key 数组 | string[] | - | |
|
|
2323
|
+
| defaultSelectedKeys | 初始选中的菜单项 key 数组 | string[] | - | |
|
|
2324
|
+
| expandIcon | 自定义展开图标 | ReactNode \| | - | 4.9.0 |
|
|
2325
|
+
| forceSubMenuRender | 在子菜单展示之前就渲染进 DOM | boolean | false | |
|
|
2326
|
+
| inlineCollapsed | inline 时菜单是否收起状态 | boolean | - | |
|
|
2327
|
+
| inlineIndent | inline 模式的菜单缩进宽度 | number | 24 | |
|
|
2328
|
+
| items | 菜单内容 | | - | 4.20.0 |
|
|
2329
|
+
| mode | 菜单类型,现在支持垂直、水平、和内嵌模式三种 | vertical | vertical | |
|
|
2330
|
+
| multiple | 是否允许多选 | boolean | false | |
|
|
2331
|
+
| openKeys | 当前展开的 SubMenu 菜单项 key 数组 | string[] | - | |
|
|
2332
|
+
| overflowedIndicator | 用于自定义 Menu 水平空间不足时的省略收缩的图标 | ReactNode | | |
|
|
2333
|
+
| selectable | 是否允许选中 | boolean | true | |
|
|
2334
|
+
| selectedKeys | 当前选中的菜单项 key 数组 | string[] | - | |
|
|
2335
|
+
| style | 根节点样式 | CSSProperties | - | |
|
|
2336
|
+
| subMenuCloseDelay | 用户鼠标离开子菜单后关闭延时,单位:秒 | number | 0.1 | |
|
|
2337
|
+
| subMenuOpenDelay | 用户鼠标进入子菜单后开启延时,单位:秒 | number | 0 | |
|
|
2338
|
+
| theme | 主题颜色 | light | light | |
|
|
2339
|
+
| triggerSubMenuAction | SubMenu 展开/关闭的触发行为 | hover | hover | |
|
|
2340
|
+
| onClick | 点击 MenuItem 调用此函数 | function({ item, key, keyPath, domEvent }) | - | |
|
|
2341
|
+
| onDeselect | 取消选中时调用,仅在 multiple 生效 | function({ item, key, keyPath, selectedKeys, domEvent }) | - | |
|
|
2342
|
+
| onOpenChange | SubMenu 展开/关闭的回调 | function(openKeys: string[]) | - | |
|
|
2343
|
+
| onSelect | 被选中时调用 | function({ item, key, keyPath, selectedKeys, domEvent }) | - | |
|
|
2321
2344
|
|
|
2322
|
-
```jsx
|
|
2323
|
-
<Form.Item shouldUpdate={(prevValues, curValues) => prevValues.additional !== curValues.additional}>
|
|
2324
|
-
{() => {
|
|
2325
|
-
return (
|
|
2326
|
-
<Form.Item name="other">
|
|
2327
|
-
<Input />
|
|
2328
|
-
</Form.Item>
|
|
2329
|
-
);
|
|
2330
|
-
}}
|
|
2331
|
-
</Form.Item>
|
|
2332
|
-
```
|
|
2333
2345
|
|
|
2346
|
+
更多属性查看 [rc-menu](https://github.com/react-component/menu#api)
|
|
2334
2347
|
|
|
2335
|
-
|
|
2348
|
+
### ItemType
|
|
2336
2349
|
|
|
2337
|
-
|
|
2350
|
+
type ItemType = [MenuItemType](#menuitemtype) | [SubMenuType](#submenutype) | [MenuItemGroupType](#menuitemgrouptype) | [MenuDividerType](#menudividertype);
|
|
2338
2351
|
|
|
2339
|
-
|
|
2352
|
+
#### MenuItemType
|
|
2340
2353
|
|
|
2354
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2355
|
+
|--------|--------|--------|--------|--------|
|
|
2356
|
+
| danger | 展示错误状态样式 | boolean | false | |
|
|
2357
|
+
| disabled | 是否禁用 | boolean | false | |
|
|
2358
|
+
| extra | 额外节点 | ReactNode | - | 5.21.0 |
|
|
2359
|
+
| icon | 菜单图标 | ReactNode | - | |
|
|
2360
|
+
| key | item 的唯一标志 | string | - | |
|
|
2361
|
+
| label | 菜单项标题 | ReactNode | - | |
|
|
2362
|
+
| title | 设置收缩时展示的悬浮标题 | string | - | |
|
|
2341
2363
|
|
|
2342
|
-
```jsx
|
|
2343
|
-
<Form>
|
|
2344
|
-
<Form.Item
|
|
2345
|
-
messageVariables={{ another: 'good' }}
|
|
2346
|
-
label="user"
|
|
2347
|
-
rules={[{ required: true, message: '${another} is required' }]}
|
|
2348
|
-
>
|
|
2349
|
-
<Input />
|
|
2350
|
-
</Form.Item>
|
|
2351
|
-
<Form.Item
|
|
2352
|
-
messageVariables={{ label: 'good' }}
|
|
2353
|
-
label={<span>user</span>}
|
|
2354
|
-
rules={[{ required: true, message: '${label} is required' }]}
|
|
2355
|
-
>
|
|
2356
|
-
<Input />
|
|
2357
|
-
</Form.Item>
|
|
2358
|
-
</Form>
|
|
2359
|
-
```
|
|
2360
2364
|
|
|
2365
|
+
#### SubMenuType
|
|
2361
2366
|
|
|
2362
|
-
|
|
2367
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2368
|
+
|--------|--------|--------|--------|--------|
|
|
2369
|
+
| children | 子菜单的菜单项 | | - | |
|
|
2370
|
+
| disabled | 是否禁用 | boolean | false | |
|
|
2371
|
+
| icon | 菜单图标 | ReactNode | - | |
|
|
2372
|
+
| key | 唯一标志 | string | - | |
|
|
2373
|
+
| label | 菜单项标题 | ReactNode | - | |
|
|
2374
|
+
| popupClassName | 子菜单样式, | string | - | |
|
|
2375
|
+
| popupOffset | 子菜单偏移量, | [number, number] | - | |
|
|
2376
|
+
| onTitleClick | 点击子菜单标题 | function({ key, domEvent }) | - | |
|
|
2377
|
+
| theme | 设置子菜单的主题,默认从 Menu 上继承 | light | - | |
|
|
2363
2378
|
|
|
2364
2379
|
|
|
2365
|
-
|
|
2366
|
-
{ required: true, message: '${label} is convert, \\${label} is not convert' }
|
|
2380
|
+
#### MenuItemGroupType
|
|
2367
2381
|
|
|
2368
|
-
|
|
2369
|
-
```
|
|
2382
|
+
定义类型为 `group` 时,会作为分组处理:
|
|
2370
2383
|
|
|
2371
2384
|
|
|
2372
|
-
|
|
2385
|
+
```ts
|
|
2386
|
+
const groupItem = {
|
|
2387
|
+
type: 'group', // Must have
|
|
2388
|
+
label: 'My Group',
|
|
2389
|
+
children: [],
|
|
2390
|
+
};
|
|
2391
|
+
```
|
|
2373
2392
|
|
|
2374
|
-
为字段提供数组化管理。
|
|
2375
2393
|
|
|
2376
2394
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2377
2395
|
|--------|--------|--------|--------|--------|
|
|
2378
|
-
| children |
|
|
2379
|
-
|
|
|
2380
|
-
| name | 字段名,支持数组。List 本身也是字段,因而 | | - | |
|
|
2381
|
-
| rules | 校验规则,仅支持自定义规则。需要配合 | { validator, message }[] | - | 4.7.0 |
|
|
2382
|
-
|
|
2396
|
+
| children | 分组的菜单项 | | - | |
|
|
2397
|
+
| label | 分组标题 | ReactNode | - | |
|
|
2383
2398
|
|
|
2384
2399
|
|
|
2385
|
-
|
|
2386
|
-
<Form.List>
|
|
2387
|
-
{(fields) =>
|
|
2388
|
-
fields.map((field) => (
|
|
2389
|
-
<Form.Item {...field}>
|
|
2390
|
-
<Input />
|
|
2391
|
-
</Form.Item>
|
|
2392
|
-
))
|
|
2393
|
-
}
|
|
2394
|
-
</Form.List>
|
|
2395
|
-
```
|
|
2400
|
+
#### MenuDividerType
|
|
2396
2401
|
|
|
2402
|
+
菜单项分割线,只用在弹出菜单内,需要定义类型为 `divider`:
|
|
2397
2403
|
|
|
2398
|
-
注意:Form.List 下的字段不应该配置 `initialValue`,你始终应该通过 Form.List 的 `initialValue` 或者 Form 的 `initialValues` 来配置。
|
|
2399
2404
|
|
|
2400
|
-
|
|
2405
|
+
```ts
|
|
2406
|
+
const dividerItem = {
|
|
2407
|
+
type: 'divider', // Must have
|
|
2408
|
+
};
|
|
2409
|
+
```
|
|
2401
2410
|
|
|
2402
|
-
Form.List 渲染表单相关操作函数。
|
|
2403
2411
|
|
|
2404
2412
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2405
2413
|
|--------|--------|--------|--------|--------|
|
|
2406
|
-
|
|
|
2407
|
-
| move | 移动表单项 | (from: number, to: number) => void | - | |
|
|
2408
|
-
| remove | 删除表单项 | (index: number \| number[]) => void | number[] | 4.5.0 |
|
|
2414
|
+
| dashed | 是否虚线 | boolean | false | |
|
|
2409
2415
|
|
|
2410
2416
|
|
|
2411
|
-
## Form.ErrorList
|
|
2412
2417
|
|
|
2413
|
-
4.7.0 新增。错误展示组件,仅限配合 Form.List 的 rules 一同使用。参考[示例](#form-demo-dynamic-form-item)。
|
|
2414
2418
|
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
| errors | 错误列表 | ReactNode[] | - |
|
|
2419
|
+
<DemoTitle title="Descriptions" desc="展示多个只读字段的组合">
|
|
2420
|
+
#### API
|
|
2418
2421
|
|
|
2422
|
+
<AntdApiRef url="https://ant.design/components/descriptions-cn/#api"></AntdApiRef>
|
|
2419
2423
|
|
|
2420
|
-
## Form.Provider
|
|
2421
2424
|
|
|
2422
|
-
|
|
2425
|
+
## antd API
|
|
2423
2426
|
|
|
2424
|
-
|
|
2425
|
-
|--------|--------|--------|--------|
|
|
2426
|
-
| onFormChange | 子表单字段更新时触发 | function(formName: string, info: { changedFields, forms }) | - |
|
|
2427
|
-
| onFormFinish | 子表单提交时触发 | function(formName: string, info: { values, forms }) | - |
|
|
2427
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2428
2428
|
|
|
2429
|
+
### Descriptions
|
|
2429
2430
|
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
```
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
### FormInstance
|
|
2446
|
-
|
|
2447
|
-
| 名称 | 说明 | 类型 | 版本 |
|
|
2448
|
-
|--------|--------|--------|--------|
|
|
2449
|
-
| getFieldError | 获取对应字段名的错误信息 | (name: | |
|
|
2450
|
-
| getFieldInstance | 获取对应字段实例 | (name: | 4.4.0 |
|
|
2451
|
-
| getFieldsError | 获取一组字段名对应的错误信息,返回为数组形式 | (nameList?: | |
|
|
2452
|
-
| getFieldsValue | 获取一组字段名对应的值,会按照对应结构返回。默认返回现存字段值,当调用 | | |
|
|
2453
|
-
| getFieldValue | 获取对应字段名的值 | (name: | |
|
|
2454
|
-
| isFieldsTouched | 检查一组字段是否被用户操作过, | (nameList?: | |
|
|
2455
|
-
| isFieldTouched | 检查对应字段是否被用户操作过 | (name: | |
|
|
2456
|
-
| isFieldValidating | 检查对应字段是否正在校验 | (name: | |
|
|
2457
|
-
| resetFields | 重置一组字段到 | (fields?: | |
|
|
2458
|
-
| scrollToField | 滚动到对应字段位置 | (name: | focus: 5.24.0 |
|
|
2459
|
-
| setFields | 设置一组字段状态 | (fields: | |
|
|
2460
|
-
| setFieldValue | 设置表单的值(该值将直接传入 form store 中并且 | (name: | 4.22.0 |
|
|
2461
|
-
| setFieldsValue | 设置表单的值(该值将直接传入 form store 中并且 | (values) => void | |
|
|
2462
|
-
| submit | 提交表单,与点击 | () => void | |
|
|
2463
|
-
| validateFields | 触发表单验证,设置 | (nameList?: | |
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
#### validateFields
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
```tsx
|
|
2470
|
-
export interface ValidateConfig {
|
|
2471
|
-
// 5.5.0 新增。仅校验内容而不会将错误信息展示到 UI 上。
|
|
2472
|
-
validateOnly?: boolean;
|
|
2473
|
-
// 5.9.0 新增。对提供的 `nameList` 与其子路径进行递归校验。
|
|
2474
|
-
recursive?: boolean;
|
|
2475
|
-
// 5.11.0 新增。校验 dirty 的字段(touched + validated)。
|
|
2476
|
-
// 使用 `dirty` 可以很方便的仅校验用户操作过和被校验过的字段。
|
|
2477
|
-
dirty?: boolean;
|
|
2478
|
-
}
|
|
2479
|
-
```
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
返回示例:
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
```jsx
|
|
2486
|
-
validateFields()
|
|
2487
|
-
.then((values) => {
|
|
2488
|
-
/*
|
|
2489
|
-
values:
|
|
2490
|
-
{
|
|
2491
|
-
username: 'username',
|
|
2492
|
-
password: 'password',
|
|
2493
|
-
}
|
|
2494
|
-
*/
|
|
2495
|
-
})
|
|
2496
|
-
.catch((errorInfo) => {
|
|
2497
|
-
/*
|
|
2498
|
-
errorInfo:
|
|
2499
|
-
{
|
|
2500
|
-
values: {
|
|
2501
|
-
username: 'username',
|
|
2502
|
-
password: 'password',
|
|
2503
|
-
},
|
|
2504
|
-
errorFields: [
|
|
2505
|
-
{ name: ['password'], errors: ['Please input your Password!'] },
|
|
2506
|
-
],
|
|
2507
|
-
outOfDate: false,
|
|
2508
|
-
}
|
|
2509
|
-
*/
|
|
2510
|
-
});
|
|
2511
|
-
```
|
|
2431
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2432
|
+
|--------|--------|--------|--------|--------|
|
|
2433
|
+
| bordered | 是否展示边框 | boolean | false | |
|
|
2434
|
+
| colon | 配置 | boolean | true | |
|
|
2435
|
+
| column | 一行的 | number \| | 3 | |
|
|
2436
|
+
| extra | 描述列表的操作区域,显示在右上方 | ReactNode | - | 4.5.0 |
|
|
2437
|
+
| items | 描述列表项内容 | | - | 5.8.0 |
|
|
2438
|
+
| layout | 描述布局 | horizontal | horizontal | |
|
|
2439
|
+
| size | 设置列表的大小。可以设置为 | default | - | |
|
|
2440
|
+
| title | 描述列表的标题,显示在最顶部 | ReactNode | - | |
|
|
2441
|
+
| classNames | 语义化结构 class | | - | 5.23.0 |
|
|
2442
|
+
| styles | 语义化结构 style | | - | 5.23.0 |
|
|
2512
2443
|
|
|
2513
2444
|
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
### Form.useForm
|
|
2445
|
+
### DescriptionItem
|
|
2517
2446
|
|
|
2518
|
-
|
|
2447
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2448
|
+
|--------|--------|--------|--------|--------|
|
|
2449
|
+
| label | 内容的描述 | ReactNode | - | |
|
|
2450
|
+
| span | 包含列的数量( | number\| | 1 | screens: 5.9.0 |
|
|
2519
2451
|
|
|
2520
|
-
创建 Form 实例,用于管理所有数据状态。
|
|
2521
2452
|
|
|
2522
|
-
|
|
2453
|
+
span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度。当同时配置 `style` 和 `labelStyle`(或 `contentStyle`)时,两者会同时作用。样式冲突时,后者会覆盖前者。
|
|
2523
2454
|
|
|
2524
|
-
`type Form.useFormInstance = (): FormInstance`
|
|
2525
2455
|
|
|
2526
|
-
`4.20.0` 新增,获取当前上下文正在使用的 Form 实例,常见于封装子组件消费无需透传 Form 实例:
|
|
2527
2456
|
|
|
2457
|
+
<DemoTitle title="Drawer" desc="从页面一侧滑入的操作面板,用于承载临时界面内容。">
|
|
2458
|
+
#### API
|
|
2528
2459
|
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2460
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
2461
|
+
|--------|--------|--------|--------|
|
|
2462
|
+
| showDivider | 是否显示分割线 | boolean | true |
|
|
2532
2463
|
|
|
2533
|
-
|
|
2534
|
-
};
|
|
2464
|
+
##### Drawer.Confirm - 带按钮的抽屉
|
|
2535
2465
|
|
|
2536
|
-
|
|
2537
|
-
|
|
2466
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
2467
|
+
|--------|--------|--------|--------|
|
|
2468
|
+
| footer | 自定义底部内容 | React.ReactNode | |
|
|
2469
|
+
| onOk | 点击确定回调 | () => void | |
|
|
2470
|
+
| okText | 确认按钮文字 | string | |
|
|
2471
|
+
| okButtonProps | 确认按钮属性 | ButtonProps | |
|
|
2472
|
+
| onCancel | 点击取消回调 | () => void | |
|
|
2473
|
+
| cancelText | 取消按钮文字 | string | |
|
|
2474
|
+
| cancelButtonProps | 取消按钮属性 | ButtonProps | |
|
|
2475
|
+
| info | 底部额外内容 | React.ReactNode | |
|
|
2538
2476
|
|
|
2539
|
-
|
|
2540
|
-
<Form form={form}>
|
|
2541
|
-
<Sub />
|
|
2542
|
-
</Form>
|
|
2543
|
-
);
|
|
2544
|
-
};
|
|
2545
|
-
```
|
|
2477
|
+
<AntdApiRef url="https://ant.design/components/drawer-cn/#api"></AntdApiRef>
|
|
2546
2478
|
|
|
2547
2479
|
|
|
2548
|
-
|
|
2480
|
+
## antd API
|
|
2549
2481
|
|
|
2550
|
-
|
|
2482
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2551
2483
|
|
|
2552
|
-
|
|
2484
|
+
<!-- prettier-ignore -->
|
|
2485
|
+
<Container type="warning" title="注意">
|
|
2486
|
+
v5 使用 `rootClassName` 与 `rootStyle` 来配置最外层元素样式。原 v4 `className` 与 `style` 改至配置 Drawer 窗体样式以和 Modal 对齐。
|
|
2487
|
+
</Container>
|
|
2488
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2489
|
+
|--------|--------|--------|--------|--------|
|
|
2490
|
+
| autoFocus | 抽屉展开后是否将焦点切换至其 DOM 节点 | boolean | true | 4.17.0 |
|
|
2491
|
+
| afterOpenChange | 切换抽屉时动画结束后的回调 | function(open) | - | |
|
|
2492
|
+
| className | Drawer 容器外层 className 设置,如果需要设置最外层,请使用 rootClassName | string | - | |
|
|
2493
|
+
| classNames | 语义化结构 className | | - | 5.10.0 |
|
|
2494
|
+
| closeIcon | 自定义关闭图标。5.7.0:设置为 | ReactNode | | |
|
|
2495
|
+
| destroyOnHidden | 关闭时销毁 Drawer 里的子元素 | boolean | false | 5.25.0 |
|
|
2496
|
+
| extra | 抽屉右上角的操作区域 | ReactNode | - | 4.17.0 |
|
|
2497
|
+
| footer | 抽屉的页脚 | ReactNode | - | |
|
|
2498
|
+
| forceRender | 预渲染 Drawer 内元素 | boolean | false | |
|
|
2499
|
+
| getContainer | 指定 Drawer 挂载的节点, | HTMLElement \| () => HTMLElement \| Selectors \| false | body | |
|
|
2500
|
+
| height | 高度,在 | string \| number | 378 | |
|
|
2501
|
+
| keyboard | 是否支持键盘 esc 关闭 | boolean | true | |
|
|
2502
|
+
| mask | 是否展示遮罩 | boolean | true | |
|
|
2503
|
+
| maskClosable | 点击蒙层是否允许关闭 | boolean | true | |
|
|
2504
|
+
| placement | 抽屉的方向 | top | right | |
|
|
2505
|
+
| push | 用于设置多层 Drawer 的推动行为 | boolean \| { distance: string \| number } | { distance: 180 } | 4.5.0+ |
|
|
2506
|
+
| rootStyle | 可用于设置 Drawer 最外层容器的样式,和 | CSSProperties | - | |
|
|
2507
|
+
| size | 预设抽屉宽度(或高度),default | 'default' \| 'large' | 'default' | 4.17.0 |
|
|
2508
|
+
| style | 设计 Drawer 容器样式,如果你只需要设置内容部分请使用 | CSSProperties | - | |
|
|
2509
|
+
| styles | 语义化结构 style | | - | 5.10.0 |
|
|
2510
|
+
| title | 标题 | ReactNode | - | |
|
|
2511
|
+
| loading | 显示骨架屏 | boolean | false | 5.17.0 |
|
|
2512
|
+
| open | Drawer 是否可见 | boolean | - |
|
|
2513
|
+
| width | 宽度 | string \| number | 378 | |
|
|
2514
|
+
| zIndex | 设置 Drawer 的 | number | 1000 | |
|
|
2515
|
+
| onClose | 点击遮罩层或左上角叉或取消按钮的回调 | function(e) | - | |
|
|
2516
|
+
| drawerRender | 自定义渲染抽屉 | (node: ReactNode) => ReactNode | - | 5.18.0 |
|
|
2553
2517
|
|
|
2554
|
-
用于直接获取 form 中字段对应的值。通过该 Hooks 可以与诸如 `useSWR` 进行联动从而降低维护成本:
|
|
2555
2518
|
|
|
2556
2519
|
|
|
2557
|
-
```tsx
|
|
2558
|
-
const Demo = () => {
|
|
2559
|
-
const [form] = Form.useForm();
|
|
2560
|
-
const userName = Form.useWatch('username', form);
|
|
2561
2520
|
|
|
2562
|
-
|
|
2521
|
+
<DemoTitle title="DatePicker" desc="输入或选择时间的控件。">
|
|
2522
|
+
#### API
|
|
2563
2523
|
|
|
2564
|
-
|
|
2565
|
-
<Form form={form}>
|
|
2566
|
-
<Form.Item name="username">
|
|
2567
|
-
<AutoComplete options={options} />
|
|
2568
|
-
</Form.Item>
|
|
2569
|
-
</Form>
|
|
2570
|
-
);
|
|
2571
|
-
};
|
|
2572
|
-
```
|
|
2524
|
+
<AntdApiRef url="https://ant.design/components/date-picker-cn/#api"></AntdApiRef>
|
|
2573
2525
|
|
|
2574
2526
|
|
|
2575
|
-
|
|
2527
|
+
## antd API
|
|
2576
2528
|
|
|
2577
|
-
|
|
2529
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2578
2530
|
|
|
2531
|
+
日期类组件包括以下五种形式。
|
|
2579
2532
|
|
|
2580
|
-
```tsx
|
|
2581
|
-
const Demo = () => {
|
|
2582
|
-
const [form] = Form.useForm();
|
|
2583
2533
|
|
|
2584
|
-
|
|
2585
|
-
|
|
2534
|
+
- DatePicker
|
|
2535
|
+
- DatePicker[picker="month"]
|
|
2536
|
+
- DatePicker[picker="week"]
|
|
2537
|
+
- DatePicker[picker="year"]
|
|
2538
|
+
- DatePicker[picker="quarter"] (4.1.0 新增)
|
|
2539
|
+
- RangePicker
|
|
2586
2540
|
|
|
2587
|
-
|
|
2588
|
-
<div>
|
|
2589
|
-
<Button onClick={() => form.setFieldValue('age', 2)}>Update</Button>
|
|
2590
|
-
<Form form={form}>
|
|
2591
|
-
<Form.Item name="name">
|
|
2592
|
-
<Input />
|
|
2593
|
-
</Form.Item>
|
|
2594
|
-
</Form>
|
|
2595
|
-
</div>
|
|
2596
|
-
);
|
|
2597
|
-
};
|
|
2598
|
-
```
|
|
2541
|
+
### 国际化配置
|
|
2599
2542
|
|
|
2543
|
+
默认配置为 en-US,如果你需要设置其他语言,推荐在入口处使用我们提供的国际化组件,详见:[ConfigProvider 国际化](https://ant.design/components/config-provider-cn/)。
|
|
2600
2544
|
|
|
2601
|
-
|
|
2545
|
+
如有特殊需求(仅修改单一组件的语言),请使用 locale 参数,参考:[默认配置](https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json)。
|
|
2602
2546
|
|
|
2603
|
-
`type Form.Item.useStatus = (): { status: ValidateStatus | undefined, errors: ReactNode[], warnings: ReactNode[] }`
|
|
2604
2547
|
|
|
2605
|
-
|
|
2548
|
+
```jsx
|
|
2549
|
+
// 默认语言为 en-US,如果你需要设置其他语言,推荐在入口文件全局设置 locale
|
|
2550
|
+
// 确保还导入相关的 dayjs 文件,否则所有文本的区域设置都不会更改(例如范围选择器月份)
|
|
2551
|
+
import locale from 'antd/locale/zh_CN';
|
|
2552
|
+
import dayjs from 'dayjs';
|
|
2606
2553
|
|
|
2554
|
+
import 'dayjs/locale/zh-cn';
|
|
2607
2555
|
|
|
2608
|
-
|
|
2609
|
-
const CustomInput = ({ value, onChange }) => {
|
|
2610
|
-
const { status, errors } = Form.Item.useStatus();
|
|
2611
|
-
return (
|
|
2612
|
-
<input
|
|
2613
|
-
value={value}
|
|
2614
|
-
onChange={onChange}
|
|
2615
|
-
className={`custom-input-${status}`}
|
|
2616
|
-
placeholder={(errors.length && errors[0]) || ''}
|
|
2617
|
-
/>
|
|
2618
|
-
);
|
|
2619
|
-
};
|
|
2556
|
+
dayjs.locale('zh-cn');
|
|
2620
2557
|
|
|
2621
|
-
|
|
2622
|
-
<
|
|
2623
|
-
|
|
2624
|
-
<CustomInput />
|
|
2625
|
-
</Form.Item>
|
|
2626
|
-
</Form>
|
|
2627
|
-
);
|
|
2558
|
+
<ConfigProvider locale={locale}>
|
|
2559
|
+
<DatePicker defaultValue={dayjs('2015-01-01', 'YYYY-MM-DD')} />
|
|
2560
|
+
</ConfigProvider>;
|
|
2628
2561
|
```
|
|
2629
2562
|
|
|
2630
2563
|
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2564
|
+
<!-- prettier-ignore -->
|
|
2565
|
+
<Container type="warning">
|
|
2566
|
+
在搭配 Next.js 的 App Router 使用时,注意在引入 dayjs 的 locale 文件时加上 `'use client'`。这是由于 Ant Design 的组件都是客户端组件,在 RSC 中引入 dayjs 的 locale 文件将不会在客户端生效。
|
|
2567
|
+
</Container>
|
|
2568
|
+
### 共同的 API
|
|
2636
2569
|
|
|
2637
|
-
|
|
2570
|
+
以下 API 为 DatePicker、 RangePicker 共享的 API。
|
|
2638
2571
|
|
|
2639
|
-
|
|
2572
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2573
|
+
|--------|--------|--------|--------|--------|
|
|
2574
|
+
| allowClear | 自定义清除按钮 | boolean \| { clearIcon?: ReactNode } | true | 5.8.0: 支持对象类型 |
|
|
2575
|
+
| autoFocus | 自动获取焦点 | boolean | false | |
|
|
2576
|
+
| className | 选择器 className | string | - | |
|
|
2577
|
+
| dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
|
|
2578
|
+
| cellRender | 自定义单元格的内容 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
|
|
2579
|
+
| components | 自定义面板 | Record | - | 5.14.0 |
|
|
2580
|
+
| defaultOpen | 是否默认展开控制弹层 | boolean | - | |
|
|
2581
|
+
| disabled | 禁用 | boolean | false | |
|
|
2582
|
+
| disabledDate | 不可选择的日期 | (currentDate: dayjs, info: { from?: dayjs, type: Picker }) => boolean | - | info |
|
|
2583
|
+
| format | 设置日期格式,为数组时支持多格式匹配,展示以第一个为准。配置参考 | | | |
|
|
2584
|
+
| order | 多选、范围时是否自动排序 | boolean | true | 5.14.0 |
|
|
2585
|
+
| preserveInvalidOnBlur | 失去焦点是否要清空输入框内无效内容 | boolean | false | 5.14.0 |
|
|
2586
|
+
| getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
|
|
2587
|
+
| inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
|
|
2588
|
+
| locale | 国际化配置 | object | | |
|
|
2589
|
+
| minDate | 最小日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
|
|
2590
|
+
| maxDate | 最大日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
|
|
2591
|
+
| mode | 日期面板的状态( | time | - | |
|
|
2592
|
+
| needConfirm | 是否需要确认按钮,为 | boolean | - | 5.14.0 |
|
|
2593
|
+
| nextIcon | 自定义下一个图标 | ReactNode | - | 4.17.0 |
|
|
2594
|
+
| open | 控制弹层是否展开 | boolean | - | |
|
|
2595
|
+
| panelRender | 自定义渲染面板 | (panelNode) => ReactNode | - | 4.5.0 |
|
|
2596
|
+
| picker | 设置选择器类型 | date | date | quarter |
|
|
2597
|
+
| placeholder | 输入框提示文字 | string \| [string, string] | - | |
|
|
2598
|
+
| placement | 选择框弹出的位置 | bottomLeft | bottomLeft | |
|
|
2599
|
+
| prefix | 自定义前缀 | ReactNode | - | 5.22.0 |
|
|
2600
|
+
| prevIcon | 自定义上一个图标 | ReactNode | - | 4.17.0 |
|
|
2601
|
+
| presets | 预设时间范围快捷选择, 自 | { label: React.ReactNode, value: Dayjs \| (() => Dayjs) }[] | - | |
|
|
2602
|
+
| size | 输入框大小, | large | - | |
|
|
2603
|
+
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
|
2604
|
+
| style | 自定义输入框样式 | CSSProperties | {} | |
|
|
2605
|
+
| suffixIcon | 自定义的选择框后缀图标 | ReactNode | - | |
|
|
2606
|
+
| superNextIcon | 自定义 | ReactNode | - | 4.17.0 |
|
|
2607
|
+
| superPrevIcon | 自定义 | ReactNode | - | 4.17.0 |
|
|
2608
|
+
| variant | 形态变体 | outlined | outlined | 5.13.0 \| |
|
|
2609
|
+
| onOpenChange | 弹出日历和关闭日历的回调 | function(open) | - | |
|
|
2610
|
+
| onPanelChange | 日历面板切换的回调 | function(value, mode) | - | |
|
|
2640
2611
|
|
|
2641
|
-
### GetFieldsValue
|
|
2642
2612
|
|
|
2643
|
-
|
|
2613
|
+
### 共同的方法
|
|
2644
2614
|
|
|
2645
|
-
|
|
2615
|
+
| 名称 | 描述 | 版本 |
|
|
2616
|
+
|--------|--------|--------|
|
|
2617
|
+
| blur() | 移除焦点 | |
|
|
2618
|
+
| focus() | 获取焦点 | |
|
|
2646
2619
|
|
|
2647
|
-
当不提供 `nameList` 时,返回所有注册字段,这也包含 List 下所有的值(即便 List 下没有绑定 Item)。
|
|
2648
2620
|
|
|
2649
|
-
|
|
2621
|
+
### DatePicker
|
|
2650
2622
|
|
|
2651
|
-
|
|
2623
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2624
|
+
|--------|--------|--------|--------|--------|
|
|
2625
|
+
| defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
|
|
2626
|
+
| defaultValue | 默认日期,如果开始时间或结束时间为 | | - | |
|
|
2627
|
+
| disabledTime | 不可选择的时间 | function(date) | - | |
|
|
2628
|
+
| format | 展示的日期格式,配置参考 | | YYYY-MM-DD | |
|
|
2629
|
+
| multiple | 是否为多选,不支持 | boolean | false | 5.14.0 |
|
|
2630
|
+
| pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
|
|
2631
|
+
| renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
|
|
2632
|
+
| showNow | 显示当前日期时间的快捷选择 | boolean | - | |
|
|
2633
|
+
| showTime | 增加时间选择功能 | Object \| boolean | | |
|
|
2634
|
+
| showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | dayjs() | |
|
|
2635
|
+
| showWeek | DatePicker 下展示当前周 | boolean | false | 5.14.0 |
|
|
2636
|
+
| value | 日期 | | - | |
|
|
2637
|
+
| onChange | 时间发生变化的回调 | function(date: dayjs, dateString: string) | - | |
|
|
2638
|
+
| onOk | 点击确定按钮的回调 | function() | - | |
|
|
2639
|
+
| onPanelChange | 日期面板变化时的回调 | function(value, mode) | - | |
|
|
2652
2640
|
|
|
2653
2641
|
|
|
2654
|
-
|
|
2655
|
-
// 单个路径
|
|
2656
|
-
form.getFieldsValue([['user', 'age']]);
|
|
2642
|
+
### DatePicker[picker=year]
|
|
2657
2643
|
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2644
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2645
|
+
|--------|--------|--------|--------|--------|
|
|
2646
|
+
| defaultValue | 默认日期 | | - | |
|
|
2647
|
+
| format | 展示的日期格式,配置参考 | | YYYY | |
|
|
2648
|
+
| multiple | 是否为多选 | boolean | false | 5.14.0 |
|
|
2649
|
+
| renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
|
|
2650
|
+
| value | 日期 | | - | |
|
|
2651
|
+
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
2664
2652
|
|
|
2665
2653
|
|
|
2666
|
-
|
|
2654
|
+
### DatePicker[picker=quarter]
|
|
2667
2655
|
|
|
2668
|
-
`
|
|
2656
|
+
`4.1.0` 新增。
|
|
2669
2657
|
|
|
2670
|
-
|
|
2658
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2659
|
+
|--------|--------|--------|--------|--------|
|
|
2660
|
+
| defaultValue | 默认日期 | | - | |
|
|
2661
|
+
| format | 展示的日期格式,配置参考 | | YYYY-\QQ | |
|
|
2662
|
+
| multiple | 是否为多选 | boolean | false | 5.14.0 |
|
|
2663
|
+
| renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
|
|
2664
|
+
| value | 日期 | | - | |
|
|
2665
|
+
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
2671
2666
|
|
|
2672
|
-
用于过滤一些字段值,`meta` 会返回字段相关信息。例如可以用来获取仅被用户修改过的值等等。
|
|
2673
2667
|
|
|
2668
|
+
### DatePicker[picker=month]
|
|
2674
2669
|
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2670
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2671
|
+
|--------|--------|--------|--------|--------|
|
|
2672
|
+
| defaultValue | 默认日期 | | - | |
|
|
2673
|
+
| format | 展示的日期格式,配置参考 | | YYYY-MM | |
|
|
2674
|
+
| multiple | 是否为多选 | boolean | false | 5.14.0 |
|
|
2675
|
+
| renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
|
|
2676
|
+
| value | 日期 | | - | |
|
|
2677
|
+
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
2678
2678
|
|
|
2679
2679
|
|
|
2680
|
-
###
|
|
2680
|
+
### DatePicker[picker=week]
|
|
2681
2681
|
|
|
2682
|
-
|
|
|
2683
|
-
|
|
2684
|
-
|
|
|
2685
|
-
|
|
|
2686
|
-
|
|
|
2687
|
-
|
|
|
2688
|
-
|
|
|
2689
|
-
|
|
|
2682
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2683
|
+
|--------|--------|--------|--------|--------|
|
|
2684
|
+
| defaultValue | 默认日期 | | - | |
|
|
2685
|
+
| format | 展示的日期格式,配置参考 | | YYYY-wo | |
|
|
2686
|
+
| multiple | 是否为多选 | boolean | false | 5.14.0 |
|
|
2687
|
+
| renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
|
|
2688
|
+
| value | 日期 | | - | |
|
|
2689
|
+
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
2690
|
+
| showWeek | DatePicker 下展示当前周 | boolean | true | 5.14.0 |
|
|
2690
2691
|
|
|
2691
2692
|
|
|
2692
|
-
###
|
|
2693
|
+
### RangePicker
|
|
2693
2694
|
|
|
2694
|
-
|
|
2695
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2696
|
+
|--------|--------|--------|--------|--------|
|
|
2697
|
+
| allowEmpty | 允许起始项部分为空 | [boolean, boolean] | [false, false] | |
|
|
2698
|
+
| cellRender | 自定义单元格的内容。 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
|
|
2699
|
+
| dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
|
|
2700
|
+
| defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
|
|
2701
|
+
| defaultValue | 默认日期 | | - | |
|
|
2702
|
+
| disabled | 禁用起始项 | [boolean, boolean] | - | |
|
|
2703
|
+
| disabledTime | 不可选择的时间 | function(date: dayjs, partial: | - | info.from |
|
|
2704
|
+
| format | 展示的日期格式,配置参考 | | YYYY-MM-DD HH:mm:ss | |
|
|
2705
|
+
| id | 设置输入框 | { start?: string, end?: string } | - | 5.14.0 |
|
|
2706
|
+
| pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
|
|
2707
|
+
| presets | 预设时间范围快捷选择,自 | { label: React.ReactNode, value: (Dayjs \| (() => Dayjs))[] }[] | - | |
|
|
2708
|
+
| renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
|
|
2709
|
+
| separator | 设置分隔符 | React.ReactNode | | |
|
|
2710
|
+
| showTime | 增加时间选择功能 | Object\|boolean | | |
|
|
2711
|
+
| showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | [dayjs(), dayjs()] | |
|
|
2712
|
+
| value | 日期 | | - | |
|
|
2713
|
+
| onCalendarChange | 待选日期发生变化的回调。 | function(dates: [dayjs, dayjs], dateStrings: [string, string], info: { range: | - | |
|
|
2714
|
+
| onChange | 日期范围发生变化的回调 | function(dates: [dayjs, dayjs], dateStrings: [string, string]) | - | |
|
|
2715
|
+
| onFocus | 聚焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
|
|
2716
|
+
| onBlur | 失焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
|
|
2695
2717
|
|
|
2696
2718
|
|
|
2697
|
-
|
|
2698
|
-
type Rule = RuleConfig | ((form: FormInstance) => RuleConfig);
|
|
2699
|
-
```
|
|
2719
|
+
#### formatType
|
|
2700
2720
|
|
|
2701
2721
|
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
| defaultField | 仅在 | | |
|
|
2705
|
-
| enum | 是否匹配枚举中的值(需要将 | any[] | |
|
|
2706
|
-
| fields | 仅在 | Record<string, | |
|
|
2707
|
-
| len | string 类型时为字符串长度;number 类型时为确定数字; array 类型时为数组长度 | number | |
|
|
2708
|
-
| max | 必须设置 | number | |
|
|
2709
|
-
| message | 错误信息,不设置时会通过 | string \| ReactElement | |
|
|
2710
|
-
| min | 必须设置 | number | |
|
|
2711
|
-
| pattern | 正则表达式匹配 | RegExp | |
|
|
2712
|
-
| required | 是否为必选字段 | boolean | |
|
|
2713
|
-
| transform | 将字段值转换成目标值后进行校验 | (value) => any | |
|
|
2714
|
-
| type | 类型,常见有 | string | |
|
|
2715
|
-
| validateTrigger | 设置触发验证时机,必须是 Form.Item 的 | string \| string[] | |
|
|
2716
|
-
| validator | 自定义校验,接收 Promise 作为返回值。 | ( | |
|
|
2717
|
-
| warningOnly | 仅警告,不阻塞表单提交 | boolean | 4.17.0 |
|
|
2718
|
-
| whitespace | 如果字段仅包含空格则校验不通过,只在 | boolean | |
|
|
2722
|
+
```typescript
|
|
2723
|
+
import type { Dayjs } from 'dayjs';
|
|
2719
2724
|
|
|
2725
|
+
type Generic = string;
|
|
2726
|
+
type GenericFn = (value: Dayjs) => string;
|
|
2720
2727
|
|
|
2721
|
-
|
|
2728
|
+
export type FormatType =
|
|
2729
|
+
| Generic
|
|
2730
|
+
| GenericFn
|
|
2731
|
+
| Array
|
|
2732
|
+
| {
|
|
2733
|
+
format: string;
|
|
2734
|
+
type?: 'mask';
|
|
2735
|
+
};
|
|
2736
|
+
```
|
|
2722
2737
|
|
|
2723
|
-
| 名称 | 说明 | 类型 | 默认值 | 版本 |
|
|
2724
|
-
|--------|--------|--------|--------|--------|
|
|
2725
|
-
| form | 指定 Form 实例 | FormInstance | 当前 context 中的 Form | 5.4.0 |
|
|
2726
|
-
| preserve | 是否监视没有对应的 | boolean | false | 5.4.0 |
|
|
2727
2738
|
|
|
2739
|
+
注意:`type` 定义为 `5.14.0` 新增。
|
|
2728
2740
|
|
|
2729
2741
|
|
|
2730
2742
|
|
|
2731
|
-
<DemoTitle title="
|
|
2743
|
+
<DemoTitle title="Form" desc="高性能表单控件,自带数据域管理。包含数据录入、校验以及对应样式。">
|
|
2732
2744
|
#### API
|
|
2733
2745
|
|
|
2734
|
-
<AntdApiRef url="https://ant.design/components/
|
|
2746
|
+
<AntdApiRef url="https://ant.design/components/form-cn/#api"></AntdApiRef>
|
|
2735
2747
|
|
|
2736
2748
|
|
|
2737
2749
|
## antd API
|
|
2738
2750
|
|
|
2739
2751
|
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2740
2752
|
|
|
2741
|
-
###
|
|
2753
|
+
### Form
|
|
2742
2754
|
|
|
2743
2755
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2744
2756
|
|--------|--------|--------|--------|--------|
|
|
2745
|
-
|
|
|
2746
|
-
|
|
|
2747
|
-
|
|
|
2748
|
-
|
|
|
2749
|
-
|
|
|
2750
|
-
|
|
|
2751
|
-
|
|
|
2752
|
-
|
|
|
2753
|
-
|
|
|
2754
|
-
|
|
|
2755
|
-
|
|
|
2756
|
-
|
|
|
2757
|
-
|
|
|
2758
|
-
|
|
|
2757
|
+
| colon | 配置 Form.Item 的 | boolean | true | |
|
|
2758
|
+
| disabled | 设置表单组件禁用,仅对 antd 组件有效 | boolean | false | 4.21.0 |
|
|
2759
|
+
| component | 设置 Form 渲染元素,为 | ComponentType \| false | form | |
|
|
2760
|
+
| fields | 通过状态管理(如 redux)控制表单字段,如非强需求不推荐使用。查看 | | - | |
|
|
2761
|
+
| form | 经 | | - | |
|
|
2762
|
+
| feedbackIcons | 当 | | - | 5.9.0 |
|
|
2763
|
+
| initialValues | 表单默认值,只有初始化以及重置时生效 | object | - | |
|
|
2764
|
+
| labelAlign | label 标签的文本对齐方式 | left | right | |
|
|
2765
|
+
| labelWrap | label 标签的文本换行方式 | boolean | false | 4.18.0 |
|
|
2766
|
+
| labelCol | label 标签布局,同 | | - | |
|
|
2767
|
+
| layout | 表单布局 | horizontal | horizontal | |
|
|
2768
|
+
| name | 表单名称,会作为表单字段 | string | - | |
|
|
2769
|
+
| preserve | 当字段被删除时保留字段值。你可以通过 | boolean | true | 4.4.0 |
|
|
2770
|
+
| requiredMark | 必选样式,可以切换为必选或者可选展示样式。此为 Form 配置,Form.Item 无法单独配置 | boolean \| | true | renderProps |
|
|
2771
|
+
| scrollToFirstError | 提交失败自动滚动到第一个错误字段 | boolean \| | false | focus: 5.24.0 |
|
|
2772
|
+
| size | 设置字段组件的尺寸(仅限 antd 组件) | small | - | |
|
|
2773
|
+
| validateMessages | 验证提示模板,说明 | | - | |
|
|
2774
|
+
| validateTrigger | 统一设置字段触发验证的时机 | string \| string[] | onChange | 4.3.0 |
|
|
2775
|
+
| variant | 表单内控件变体 | outlined | outlined | 5.13.0 \| |
|
|
2776
|
+
| wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol | | - | |
|
|
2777
|
+
| onFieldsChange | 字段更新时触发回调事件 | function(changedFields, allFields) | - | |
|
|
2778
|
+
| onFinish | 提交表单且数据验证成功后回调事件 | function(values) | - | |
|
|
2779
|
+
| onFinishFailed | 提交表单且数据验证失败后回调事件 | function({ values, errorFields, outOfDate }) | - | |
|
|
2780
|
+
| onValuesChange | 字段值更新时触发回调事件 | function(changedValues, allValues) | - | |
|
|
2781
|
+
| clearOnDestroy | 当表单被卸载时清空表单值 | boolean | false | 5.18.0 |
|
|
2759
2782
|
|
|
2760
2783
|
|
|
2761
|
-
|
|
2784
|
+
支持原生 form 除 `onSubmit` 外的所有属性。
|
|
2762
2785
|
|
|
2763
|
-
|
|
2786
|
+
### validateMessages
|
|
2764
2787
|
|
|
2765
|
-
|
|
2766
|
-
|--------|--------|--------|--------|--------|
|
|
2767
|
-
| buttonsRender | 自定义左右两个按钮 | (buttons: ReactNode[]) => ReactNode[] | - | |
|
|
2768
|
-
| loading | 设置按钮载入状态,和 | boolean \| { delay: number, icon: ReactNode } | false | icon: 5.23.0 |
|
|
2769
|
-
| danger | 设置危险按钮 | boolean | - | 4.23.0 |
|
|
2770
|
-
| icon | 右侧的 icon | ReactNode | - | |
|
|
2771
|
-
| size | 按钮大小,和 | large | middle | |
|
|
2772
|
-
| type | 按钮类型,和 | primary | default | |
|
|
2773
|
-
| onClick | 点击左侧按钮的回调,和 | (event: React.MouseEvent) => void | - | |
|
|
2788
|
+
Form 为验证提供了[默认的错误提示信息](https://github.com/ant-design/ant-design/blob/6234509d18bac1ac60fbb3f92a5b2c6a6361295a/components/locale/en_US.ts#L88-L134),你可以通过配置 `validateMessages` 属性,修改对应的提示模板。一种常见的使用方式,是配置国际化提示信息:
|
|
2774
2789
|
|
|
2775
2790
|
|
|
2776
|
-
|
|
2791
|
+
```jsx
|
|
2792
|
+
const validateMessages = {
|
|
2793
|
+
required: "'${name}' 是必选字段",
|
|
2794
|
+
// ...
|
|
2795
|
+
};
|
|
2777
2796
|
|
|
2778
|
-
|
|
2779
|
-
|
|
2797
|
+
<Form validateMessages={validateMessages} />;
|
|
2798
|
+
```
|
|
2780
2799
|
|
|
2781
|
-
### Menu
|
|
2782
2800
|
|
|
2783
|
-
|
|
2784
|
-
|--------|--------|--------|--------|--------|
|
|
2785
|
-
| defaultOpenKeys | 初始展开的 SubMenu 菜单项 key 数组 | string[] | - | |
|
|
2786
|
-
| defaultSelectedKeys | 初始选中的菜单项 key 数组 | string[] | - | |
|
|
2787
|
-
| expandIcon | 自定义展开图标 | ReactNode \| | - | 4.9.0 |
|
|
2788
|
-
| forceSubMenuRender | 在子菜单展示之前就渲染进 DOM | boolean | false | |
|
|
2789
|
-
| inlineCollapsed | inline 时菜单是否收起状态 | boolean | - | |
|
|
2790
|
-
| inlineIndent | inline 模式的菜单缩进宽度 | number | 24 | |
|
|
2791
|
-
| items | 菜单内容 | | - | 4.20.0 |
|
|
2792
|
-
| mode | 菜单类型,现在支持垂直、水平、和内嵌模式三种 | vertical | vertical | |
|
|
2793
|
-
| multiple | 是否允许多选 | boolean | false | |
|
|
2794
|
-
| openKeys | 当前展开的 SubMenu 菜单项 key 数组 | string[] | - | |
|
|
2795
|
-
| overflowedIndicator | 用于自定义 Menu 水平空间不足时的省略收缩的图标 | ReactNode | | |
|
|
2796
|
-
| selectable | 是否允许选中 | boolean | true | |
|
|
2797
|
-
| selectedKeys | 当前选中的菜单项 key 数组 | string[] | - | |
|
|
2798
|
-
| style | 根节点样式 | CSSProperties | - | |
|
|
2799
|
-
| subMenuCloseDelay | 用户鼠标离开子菜单后关闭延时,单位:秒 | number | 0.1 | |
|
|
2800
|
-
| subMenuOpenDelay | 用户鼠标进入子菜单后开启延时,单位:秒 | number | 0 | |
|
|
2801
|
-
| theme | 主题颜色 | light | light | |
|
|
2802
|
-
| triggerSubMenuAction | SubMenu 展开/关闭的触发行为 | hover | hover | |
|
|
2803
|
-
| onClick | 点击 MenuItem 调用此函数 | function({ item, key, keyPath, domEvent }) | - | |
|
|
2804
|
-
| onDeselect | 取消选中时调用,仅在 multiple 生效 | function({ item, key, keyPath, selectedKeys, domEvent }) | - | |
|
|
2805
|
-
| onOpenChange | SubMenu 展开/关闭的回调 | function(openKeys: string[]) | - | |
|
|
2806
|
-
| onSelect | 被选中时调用 | function({ item, key, keyPath, selectedKeys, domEvent }) | - | |
|
|
2801
|
+
此外,[ConfigProvider](/components/config-provider-cn) 也提供了全局化配置方案,允许统一配置错误提示模板:
|
|
2807
2802
|
|
|
2808
2803
|
|
|
2809
|
-
|
|
2804
|
+
```jsx
|
|
2805
|
+
const validateMessages = {
|
|
2806
|
+
required: "'${name}' 是必选字段",
|
|
2807
|
+
// ...
|
|
2808
|
+
};
|
|
2809
|
+
|
|
2810
|
+
<ConfigProvider form={{ validateMessages }}>
|
|
2811
|
+
<Form />
|
|
2812
|
+
</ConfigProvider>;
|
|
2813
|
+
```
|
|
2810
2814
|
|
|
2811
|
-
### ItemType
|
|
2812
2815
|
|
|
2813
|
-
|
|
2816
|
+
## Form.Item
|
|
2814
2817
|
|
|
2815
|
-
|
|
2818
|
+
表单字段组件,用于数据双向绑定、校验、布局等。
|
|
2816
2819
|
|
|
2817
2820
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2818
2821
|
|--------|--------|--------|--------|--------|
|
|
2819
|
-
|
|
|
2820
|
-
|
|
|
2821
|
-
| extra |
|
|
2822
|
-
|
|
|
2823
|
-
|
|
|
2824
|
-
|
|
|
2825
|
-
|
|
|
2822
|
+
| colon | 配合 | boolean | true | |
|
|
2823
|
+
| dependencies | 设置依赖字段,说明 | | - | |
|
|
2824
|
+
| extra | 额外的提示信息,和 | ReactNode | - | |
|
|
2825
|
+
| getValueFromEvent | 设置如何将 event 的值转换成字段值 | (..args: any[]) => any | - | |
|
|
2826
|
+
| getValueProps | 为子元素添加额外的属性 (不建议通过 | (value: any) => Record | - | 4.2.0 |
|
|
2827
|
+
| hasFeedback | 配合 | boolean \| { icons: | false | icons: 5.9.0 |
|
|
2828
|
+
| help | 提示信息,如不设置,则会根据校验规则自动生成 | ReactNode | - | |
|
|
2829
|
+
| hidden | 是否隐藏字段(依然会收集和校验字段) | boolean | false | 4.4.0 |
|
|
2830
|
+
| htmlFor | 设置子元素 label | string | - | |
|
|
2831
|
+
| initialValue | 设置子元素默认值,如果与 Form 的 | string | - | 4.2.0 |
|
|
2832
|
+
| label | label | ReactNode | - | null: 5.22.0 |
|
|
2833
|
+
| labelAlign | 标签文本对齐方式 | left | right | |
|
|
2834
|
+
| labelCol | label | | - | |
|
|
2835
|
+
| messageVariables | 默认验证字段的信息,查看 | Record | - | 4.7.0 |
|
|
2836
|
+
| name | 字段名,支持数组 | | - | |
|
|
2837
|
+
| normalize | 组件获取值后进行转换,再放入 Form 中。不支持异步 | (value, prevValue, prevValues) => any | - | |
|
|
2838
|
+
| noStyle | 为 | boolean | false | |
|
|
2839
|
+
| preserve | 当字段被删除时保留字段值 | boolean | true | 4.4.0 |
|
|
2840
|
+
| required | 必填样式设置。如不设置,则会根据校验规则自动生成 | boolean | false | |
|
|
2841
|
+
| rules | 校验规则,设置字段的校验逻辑。点击 | | - | |
|
|
2842
|
+
| shouldUpdate | 自定义字段更新逻辑,说明 | boolean \| (prevValue, curValue) => boolean | false | |
|
|
2843
|
+
| tooltip | 配置提示信息 | ReactNode \| | - | 4.7.0 |
|
|
2844
|
+
| trigger | 设置收集字段值变更的时机。点击 | string | onChange | |
|
|
2845
|
+
| validateFirst | 当某一规则校验不通过时,是否停止剩下的规则的校验。设置 | boolean \| | false | parallel |
|
|
2846
|
+
| validateDebounce | 设置防抖,延迟毫秒数后进行校验 | number | - | 5.9.0 |
|
|
2847
|
+
| validateStatus | 校验状态,如不设置,则会根据校验规则自动生成,可选:'success' 'warning' 'error' 'validating' | string | - | |
|
|
2848
|
+
| validateTrigger | 设置字段校验的时机 | string \| string[] | onChange | |
|
|
2849
|
+
| valuePropName | 子节点的值的属性。注意:Switch、Checkbox 的 valuePropName 应该是 | string | value | |
|
|
2850
|
+
| wrapperCol | 需要为输入控件设置布局样式时,使用该属性,用法同 | | - | |
|
|
2851
|
+
| layout | 表单项布局 | horizontal | - | 5.18.0 |
|
|
2826
2852
|
|
|
2827
2853
|
|
|
2828
|
-
|
|
2854
|
+
被设置了 `name` 属性的 `Form.Item` 包装的控件,表单控件会自动添加 `value`(或 `valuePropName` 指定的其他属性) `onChange`(或 `trigger` 指定的其他属性),数据同步将被 Form 接管,这会导致以下结果:
|
|
2829
2855
|
|
|
2830
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2831
|
-
|--------|--------|--------|--------|--------|
|
|
2832
|
-
| children | 子菜单的菜单项 | | - | |
|
|
2833
|
-
| disabled | 是否禁用 | boolean | false | |
|
|
2834
|
-
| icon | 菜单图标 | ReactNode | - | |
|
|
2835
|
-
| key | 唯一标志 | string | - | |
|
|
2836
|
-
| label | 菜单项标题 | ReactNode | - | |
|
|
2837
|
-
| popupClassName | 子菜单样式, | string | - | |
|
|
2838
|
-
| popupOffset | 子菜单偏移量, | [number, number] | - | |
|
|
2839
|
-
| onTitleClick | 点击子菜单标题 | function({ key, domEvent }) | - | |
|
|
2840
|
-
| theme | 设置子菜单的主题,默认从 Menu 上继承 | light | - | |
|
|
2841
2856
|
|
|
2857
|
+
1. 你**不再需要也不应该**用 `onChange` 来做数据收集同步(你可以使用 Form 的 `onValuesChange`),但还是可以继续监听 `onChange` 事件。
|
|
2858
|
+
2. 你不能用控件的 `value` 或 `defaultValue` 等属性来设置表单域的值,默认值可以用 Form 里的 `initialValues` 来设置。注意 `initialValues` 不能被 `setState` 动态更新,你需要用 `setFieldsValue` 来更新。
|
|
2859
|
+
3. 你不应该用 `setState`,可以使用 `form.setFieldsValue` 来动态改变表单值。
|
|
2842
2860
|
|
|
2843
|
-
|
|
2861
|
+
### dependencies
|
|
2844
2862
|
|
|
2845
|
-
|
|
2863
|
+
当字段间存在依赖关系时使用。如果一个字段设置了 `dependencies` 属性。那么它所依赖的字段更新时,该字段将自动触发更新与校验。一种常见的场景,就是注册用户表单的“密码”与“确认密码”字段。“确认密码”校验依赖于“密码”字段,设置 `dependencies` 后,“密码”字段更新会重新触发“校验密码”的校验逻辑。你可以参考[具体例子](#form-demo-dependencies)。
|
|
2846
2864
|
|
|
2865
|
+
`dependencies` 不应和 `shouldUpdate` 一起使用,因为这可能带来更新逻辑的混乱。
|
|
2847
2866
|
|
|
2848
|
-
|
|
2849
|
-
const groupItem = {
|
|
2850
|
-
type: 'group', // Must have
|
|
2851
|
-
label: 'My Group',
|
|
2852
|
-
children: [],
|
|
2853
|
-
};
|
|
2854
|
-
```
|
|
2867
|
+
### FeedbackIcons
|
|
2855
2868
|
|
|
2869
|
+
`({ status: ValidateStatus, errors: ReactNode, warnings: ReactNode }) => Record<ValidateStatus, ReactNode>`
|
|
2856
2870
|
|
|
2857
|
-
|
|
2858
|
-
|--------|--------|--------|--------|--------|
|
|
2859
|
-
| children | 分组的菜单项 | | - | |
|
|
2860
|
-
| label | 分组标题 | ReactNode | - | |
|
|
2871
|
+
### shouldUpdate
|
|
2861
2872
|
|
|
2873
|
+
Form 通过增量更新方式,只更新被修改的字段相关组件以达到性能优化目的。大部分场景下,你只需要编写代码或者与 [`dependencies`](#dependencies) 属性配合校验即可。而在某些特定场景,例如修改某个字段值后出现新的字段选项、或者纯粹希望表单任意变化都对某一个区域进行渲染。你可以通过 `shouldUpdate` 修改 Form.Item 的更新逻辑。
|
|
2862
2874
|
|
|
2863
|
-
|
|
2875
|
+
当 `shouldUpdate` 为 `true` 时,Form 的任意变化都会使该 Form.Item 重新渲染。这对于自定义渲染一些区域十分有帮助,要注意 Form.Item 里包裹的子组件必须由函数返回,否则 `shouldUpdate` 不会起作用:
|
|
2864
2876
|
|
|
2865
|
-
|
|
2877
|
+
相关issue:[#34500](https://github.com/ant-design/ant-design/issues/34500)
|
|
2866
2878
|
|
|
2867
2879
|
|
|
2868
|
-
```
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
}
|
|
2880
|
+
```jsx
|
|
2881
|
+
<Form.Item shouldUpdate>
|
|
2882
|
+
{() => {
|
|
2883
|
+
return <pre>{JSON.stringify(form.getFieldsValue(), null, 2)}</pre>;
|
|
2884
|
+
}}
|
|
2885
|
+
</Form.Item>
|
|
2872
2886
|
```
|
|
2873
2887
|
|
|
2874
2888
|
|
|
2875
|
-
|
|
2876
|
-
|--------|--------|--------|--------|--------|
|
|
2877
|
-
| dashed | 是否虚线 | boolean | false | |
|
|
2878
|
-
|
|
2889
|
+
你可以参考[示例](#form-demo-inline-login)查看具体使用场景。
|
|
2879
2890
|
|
|
2891
|
+
当 `shouldUpdate` 为方法时,表单的每次数值更新都会调用该方法,提供原先的值与当前的值以供你比较是否需要更新。这对于是否根据值来渲染额外字段十分有帮助:
|
|
2880
2892
|
|
|
2881
2893
|
|
|
2882
|
-
|
|
2883
|
-
|
|
2894
|
+
```jsx
|
|
2895
|
+
<Form.Item shouldUpdate={(prevValues, curValues) => prevValues.additional !== curValues.additional}>
|
|
2896
|
+
{() => {
|
|
2897
|
+
return (
|
|
2898
|
+
<Form.Item name="other">
|
|
2899
|
+
<Input />
|
|
2900
|
+
</Form.Item>
|
|
2901
|
+
);
|
|
2902
|
+
}}
|
|
2903
|
+
</Form.Item>
|
|
2904
|
+
```
|
|
2884
2905
|
|
|
2885
|
-
| 属性名 | 描述 | 类型 | 默认值 |
|
|
2886
|
-
|--------|--------|--------|--------|
|
|
2887
|
-
| type | 空状态类型 | \| 'noData'
|
|
2888
|
-
\| 'networkError'
|
|
2889
|
-
\| '404'
|
|
2890
|
-
\| 'arrears'
|
|
2891
|
-
\| 'desktopOnly'
|
|
2892
|
-
\| 'noAudio'
|
|
2893
|
-
\| 'noImage'
|
|
2894
|
-
\| 'noVideo'
|
|
2895
|
-
\| 'noAccess'
|
|
2896
|
-
\| 'error'
|
|
2897
|
-
\| 'noChat'
|
|
2898
|
-
\| 'noModel'
|
|
2899
|
-
\| 'noApp'
|
|
2900
|
-
\| 'success'
|
|
2901
|
-
\| 'failed'
|
|
2902
|
-
\| 'inProgress'
|
|
2903
|
-
\| 'stayTuned' | 'noData' |
|
|
2904
|
-
| texture | 是否显示纹理 | boolean | true |
|
|
2905
|
-
| image | 图片地址 | string | 默认是no data的图片 |
|
|
2906
|
-
| imageStyle | 图片样式 | React.CSSProperties | |
|
|
2907
|
-
| title | 标题内容 | React.ReactNode | |
|
|
2908
|
-
| description | 自定义描述内容 | React.ReactNode | |
|
|
2909
|
-
| onOk | ok按钮的点击事件 | (e: React.MouseEvent) => void | |
|
|
2910
|
-
| okText | ok按钮的文本 | React.ReactNode | |
|
|
2911
|
-
| okType | ok按钮的类型 | SparkButtonProps['type'] | 'primary' |
|
|
2912
|
-
| okButtonProps | ok按钮的props | SparkButtonProps | |
|
|
2913
|
-
| children | 自定义空状态的内容 | React.ReactNode | |
|
|
2914
|
-
| className | 自定义空状态的类名 | string | |
|
|
2915
|
-
| style | 自定义空状态的样式 | React.CSSProperties | |
|
|
2916
|
-
| size | 自定义空状态的大小 | React.CSSProperties['width'] | |
|
|
2917
|
-
| autoFit | 是否自适应容器宽度,当容器宽度小于 size 时自动缩放 | boolean | false |
|
|
2918
2906
|
|
|
2907
|
+
你可以参考[示例](#form-demo-control-hooks)查看具体使用场景。
|
|
2919
2908
|
|
|
2920
|
-
|
|
2909
|
+
### messageVariables
|
|
2921
2910
|
|
|
2911
|
+
你可以通过 `messageVariables` 修改 Form.Item 的默认验证信息。
|
|
2922
2912
|
|
|
2923
2913
|
|
|
2914
|
+
```jsx
|
|
2915
|
+
<Form>
|
|
2916
|
+
<Form.Item
|
|
2917
|
+
messageVariables={{ another: 'good' }}
|
|
2918
|
+
label="user"
|
|
2919
|
+
rules={[{ required: true, message: '${another} is required' }]}
|
|
2920
|
+
>
|
|
2921
|
+
<Input />
|
|
2922
|
+
</Form.Item>
|
|
2923
|
+
<Form.Item
|
|
2924
|
+
messageVariables={{ label: 'good' }}
|
|
2925
|
+
label={<span>user</span>}
|
|
2926
|
+
rules={[{ required: true, message: '${label} is required' }]}
|
|
2927
|
+
>
|
|
2928
|
+
<Input />
|
|
2929
|
+
</Form.Item>
|
|
2930
|
+
</Form>
|
|
2931
|
+
```
|
|
2924
2932
|
|
|
2925
2933
|
|
|
2926
|
-
|
|
2927
|
-
#### API
|
|
2934
|
+
自 `5.20.2` 起,当你希望不要转译 `${}` 时,你可以通过 `\\${}` 来略过:
|
|
2928
2935
|
|
|
2929
|
-
<AntdApiRef url="https://ant.design/components/float-button-cn/#api"></AntdApiRef>
|
|
2930
2936
|
|
|
2937
|
+
```jsx
|
|
2938
|
+
{ required: true, message: '${label} is convert, \\${label} is not convert' }
|
|
2931
2939
|
|
|
2932
|
-
|
|
2940
|
+
// good is convert, ${label} is not convert
|
|
2941
|
+
```
|
|
2933
2942
|
|
|
2934
|
-
通用属性参考:[通用属性](/docs/react/common-props)
|
|
2935
2943
|
|
|
2936
|
-
|
|
2944
|
+
## Form.List
|
|
2937
2945
|
|
|
2938
|
-
|
|
2946
|
+
为字段提供数组化管理。
|
|
2939
2947
|
|
|
2940
2948
|
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2941
2949
|
|--------|--------|--------|--------|--------|
|
|
2942
|
-
|
|
|
2943
|
-
|
|
|
2944
|
-
|
|
|
2945
|
-
|
|
|
2946
|
-
| shape | 设置按钮形状 | circle | circle | |
|
|
2947
|
-
| onClick | 点击按钮时的回调 | (event) => void | - | |
|
|
2948
|
-
| href | 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 | string | - | |
|
|
2949
|
-
| target | 相当于 a 标签的 target 属性,href 存在时生效 | string | - | |
|
|
2950
|
-
| htmlType | 设置 | submit | button | 5.21.0 |
|
|
2951
|
-
| badge | 带徽标数字的悬浮按钮(不支持 | | - | 5.4.0 |
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
### FloatButton.Group
|
|
2950
|
+
| children | 渲染函数 | (fields: Field[], operation: { add, remove, move }, meta: { errors }) => React.ReactNode | - | |
|
|
2951
|
+
| initialValue | 设置子元素默认值,如果与 Form 的 | any[] | - | 4.9.0 |
|
|
2952
|
+
| name | 字段名,支持数组。List 本身也是字段,因而 | | - | |
|
|
2953
|
+
| rules | 校验规则,仅支持自定义规则。需要配合 | { validator, message }[] | - | 4.7.0 |
|
|
2955
2954
|
|
|
2956
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2957
|
-
|--------|--------|--------|--------|--------|
|
|
2958
|
-
| shape | 设置包含的 FloatButton 按钮形状 | circle | circle | |
|
|
2959
|
-
| trigger | 触发方式(有触发方式为菜单模式) | click | - | |
|
|
2960
|
-
| open | 受控展开,需配合 trigger 一起使用 | boolean | - | |
|
|
2961
|
-
| closeIcon | 自定义关闭按钮 | React.ReactNode | | |
|
|
2962
|
-
| placement | 自定义菜单弹出位置 | top | top | 5.21.0 |
|
|
2963
|
-
| onOpenChange | 展开收起时的回调,需配合 trigger 一起使用 | (open: boolean) => void | - | |
|
|
2964
|
-
| onClick | 点击按钮时的回调(仅在菜单模式中有效) | (event) => void | - | 5.3.0 |
|
|
2965
2955
|
|
|
2966
2956
|
|
|
2967
|
-
|
|
2957
|
+
```tsx
|
|
2958
|
+
<Form.List>
|
|
2959
|
+
{(fields) =>
|
|
2960
|
+
fields.map((field) => (
|
|
2961
|
+
<Form.Item {...field}>
|
|
2962
|
+
<Input />
|
|
2963
|
+
</Form.Item>
|
|
2964
|
+
))
|
|
2965
|
+
}
|
|
2966
|
+
</Form.List>
|
|
2967
|
+
```
|
|
2968
2968
|
|
|
2969
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2970
|
-
|--------|--------|--------|--------|--------|
|
|
2971
|
-
| duration | 回到顶部所需时间(ms) | number | 450 | |
|
|
2972
|
-
| target | 设置需要监听其滚动事件的元素 | () => HTMLElement | () => window | |
|
|
2973
|
-
| visibilityHeight | 滚动高度达到此参数值才出现 BackTop | number | 400 | |
|
|
2974
|
-
| onClick | 点击按钮的回调函数 | () => void | - | |
|
|
2975
2969
|
|
|
2970
|
+
注意:Form.List 下的字段不应该配置 `initialValue`,你始终应该通过 Form.List 的 `initialValue` 或者 Form 的 `initialValues` 来配置。
|
|
2976
2971
|
|
|
2972
|
+
## operation
|
|
2977
2973
|
|
|
2974
|
+
Form.List 渲染表单相关操作函数。
|
|
2978
2975
|
|
|
2979
|
-
|
|
2980
|
-
|
|
2976
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
2977
|
+
|--------|--------|--------|--------|--------|
|
|
2978
|
+
| add | 新增表单项 | (defaultValue?: any, insertIndex?: number) => void | insertIndex | 4.6.0 |
|
|
2979
|
+
| move | 移动表单项 | (from: number, to: number) => void | - | |
|
|
2980
|
+
| remove | 删除表单项 | (index: number \| number[]) => void | number[] | 4.5.0 |
|
|
2981
2981
|
|
|
2982
|
-
| 属性名 | 描述 | 类型 | 默认值 |
|
|
2983
|
-
|--------|--------|--------|--------|
|
|
2984
|
-
| showDivider | 是否显示分割线 | boolean | true |
|
|
2985
2982
|
|
|
2986
|
-
|
|
2983
|
+
## Form.ErrorList
|
|
2987
2984
|
|
|
2988
|
-
|
|
2989
|
-
|--------|--------|--------|--------|
|
|
2990
|
-
| footer | 自定义底部内容 | React.ReactNode | |
|
|
2991
|
-
| onOk | 点击确定回调 | () => void | |
|
|
2992
|
-
| okText | 确认按钮文字 | string | |
|
|
2993
|
-
| okButtonProps | 确认按钮属性 | ButtonProps | |
|
|
2994
|
-
| onCancel | 点击取消回调 | () => void | |
|
|
2995
|
-
| cancelText | 取消按钮文字 | string | |
|
|
2996
|
-
| cancelButtonProps | 取消按钮属性 | ButtonProps | |
|
|
2997
|
-
| info | 底部额外内容 | React.ReactNode | |
|
|
2985
|
+
4.7.0 新增。错误展示组件,仅限配合 Form.List 的 rules 一同使用。参考[示例](#form-demo-dynamic-form-item)。
|
|
2998
2986
|
|
|
2999
|
-
|
|
2987
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
2988
|
+
|--------|--------|--------|--------|
|
|
2989
|
+
| errors | 错误列表 | ReactNode[] | - |
|
|
3000
2990
|
|
|
3001
2991
|
|
|
3002
|
-
##
|
|
2992
|
+
## Form.Provider
|
|
3003
2993
|
|
|
3004
|
-
|
|
2994
|
+
提供表单间联动功能,其下设置 `name` 的 Form 更新时,会自动触发对应事件。查看[示例](#form-demo-form-context)。
|
|
3005
2995
|
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3011
|
-
|--------|--------|--------|--------|--------|
|
|
3012
|
-
| autoFocus | 抽屉展开后是否将焦点切换至其 DOM 节点 | boolean | true | 4.17.0 |
|
|
3013
|
-
| afterOpenChange | 切换抽屉时动画结束后的回调 | function(open) | - | |
|
|
3014
|
-
| className | Drawer 容器外层 className 设置,如果需要设置最外层,请使用 rootClassName | string | - | |
|
|
3015
|
-
| classNames | 语义化结构 className | | - | 5.10.0 |
|
|
3016
|
-
| closeIcon | 自定义关闭图标。5.7.0:设置为 | ReactNode | | |
|
|
3017
|
-
| destroyOnHidden | 关闭时销毁 Drawer 里的子元素 | boolean | false | 5.25.0 |
|
|
3018
|
-
| extra | 抽屉右上角的操作区域 | ReactNode | - | 4.17.0 |
|
|
3019
|
-
| footer | 抽屉的页脚 | ReactNode | - | |
|
|
3020
|
-
| forceRender | 预渲染 Drawer 内元素 | boolean | false | |
|
|
3021
|
-
| getContainer | 指定 Drawer 挂载的节点, | HTMLElement \| () => HTMLElement \| Selectors \| false | body | |
|
|
3022
|
-
| height | 高度,在 | string \| number | 378 | |
|
|
3023
|
-
| keyboard | 是否支持键盘 esc 关闭 | boolean | true | |
|
|
3024
|
-
| mask | 是否展示遮罩 | boolean | true | |
|
|
3025
|
-
| maskClosable | 点击蒙层是否允许关闭 | boolean | true | |
|
|
3026
|
-
| placement | 抽屉的方向 | top | right | |
|
|
3027
|
-
| push | 用于设置多层 Drawer 的推动行为 | boolean \| { distance: string \| number } | { distance: 180 } | 4.5.0+ |
|
|
3028
|
-
| rootStyle | 可用于设置 Drawer 最外层容器的样式,和 | CSSProperties | - | |
|
|
3029
|
-
| size | 预设抽屉宽度(或高度),default | 'default' \| 'large' | 'default' | 4.17.0 |
|
|
3030
|
-
| style | 设计 Drawer 容器样式,如果你只需要设置内容部分请使用 | CSSProperties | - | |
|
|
3031
|
-
| styles | 语义化结构 style | | - | 5.10.0 |
|
|
3032
|
-
| title | 标题 | ReactNode | - | |
|
|
3033
|
-
| loading | 显示骨架屏 | boolean | false | 5.17.0 |
|
|
3034
|
-
| open | Drawer 是否可见 | boolean | - |
|
|
3035
|
-
| width | 宽度 | string \| number | 378 | |
|
|
3036
|
-
| zIndex | 设置 Drawer 的 | number | 1000 | |
|
|
3037
|
-
| onClose | 点击遮罩层或左上角叉或取消按钮的回调 | function(e) | - | |
|
|
3038
|
-
| drawerRender | 自定义渲染抽屉 | (node: ReactNode) => ReactNode | - | 5.18.0 |
|
|
2996
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
2997
|
+
|--------|--------|--------|--------|
|
|
2998
|
+
| onFormChange | 子表单字段更新时触发 | function(formName: string, info: { changedFields, forms }) | - |
|
|
2999
|
+
| onFormFinish | 子表单提交时触发 | function(formName: string, info: { values, forms }) | - |
|
|
3039
3000
|
|
|
3040
3001
|
|
|
3041
3002
|
|
|
3003
|
+
```jsx
|
|
3004
|
+
<Form.Provider
|
|
3005
|
+
onFormFinish={(name) => {
|
|
3006
|
+
if (name === 'form1') {
|
|
3007
|
+
// Do something...
|
|
3008
|
+
}
|
|
3009
|
+
}}
|
|
3010
|
+
>
|
|
3011
|
+
<Form name="form1">...</Form>
|
|
3012
|
+
<Form name="form2">...</Form>
|
|
3013
|
+
</Form.Provider>
|
|
3014
|
+
```
|
|
3042
3015
|
|
|
3043
|
-
<DemoTitle title="Descriptions" desc="展示多个只读字段的组合">
|
|
3044
|
-
#### API
|
|
3045
3016
|
|
|
3046
|
-
|
|
3017
|
+
### FormInstance
|
|
3047
3018
|
|
|
3019
|
+
| 名称 | 说明 | 类型 | 版本 |
|
|
3020
|
+
|--------|--------|--------|--------|
|
|
3021
|
+
| getFieldError | 获取对应字段名的错误信息 | (name: | |
|
|
3022
|
+
| getFieldInstance | 获取对应字段实例 | (name: | 4.4.0 |
|
|
3023
|
+
| getFieldsError | 获取一组字段名对应的错误信息,返回为数组形式 | (nameList?: | |
|
|
3024
|
+
| getFieldsValue | 获取一组字段名对应的值,会按照对应结构返回。默认返回现存字段值,当调用 | | |
|
|
3025
|
+
| getFieldValue | 获取对应字段名的值 | (name: | |
|
|
3026
|
+
| isFieldsTouched | 检查一组字段是否被用户操作过, | (nameList?: | |
|
|
3027
|
+
| isFieldTouched | 检查对应字段是否被用户操作过 | (name: | |
|
|
3028
|
+
| isFieldValidating | 检查对应字段是否正在校验 | (name: | |
|
|
3029
|
+
| resetFields | 重置一组字段到 | (fields?: | |
|
|
3030
|
+
| scrollToField | 滚动到对应字段位置 | (name: | focus: 5.24.0 |
|
|
3031
|
+
| setFields | 设置一组字段状态 | (fields: | |
|
|
3032
|
+
| setFieldValue | 设置表单的值(该值将直接传入 form store 中并且 | (name: | 4.22.0 |
|
|
3033
|
+
| setFieldsValue | 设置表单的值(该值将直接传入 form store 中并且 | (values) => void | |
|
|
3034
|
+
| submit | 提交表单,与点击 | () => void | |
|
|
3035
|
+
| validateFields | 触发表单验证,设置 | (nameList?: | |
|
|
3048
3036
|
|
|
3049
|
-
## antd API
|
|
3050
3037
|
|
|
3051
|
-
|
|
3038
|
+
#### validateFields
|
|
3052
3039
|
|
|
3053
|
-
### Descriptions
|
|
3054
3040
|
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
| styles | 语义化结构 style | | - | 5.23.0 |
|
|
3041
|
+
```tsx
|
|
3042
|
+
export interface ValidateConfig {
|
|
3043
|
+
// 5.5.0 新增。仅校验内容而不会将错误信息展示到 UI 上。
|
|
3044
|
+
validateOnly?: boolean;
|
|
3045
|
+
// 5.9.0 新增。对提供的 `nameList` 与其子路径进行递归校验。
|
|
3046
|
+
recursive?: boolean;
|
|
3047
|
+
// 5.11.0 新增。校验 dirty 的字段(touched + validated)。
|
|
3048
|
+
// 使用 `dirty` 可以很方便的仅校验用户操作过和被校验过的字段。
|
|
3049
|
+
dirty?: boolean;
|
|
3050
|
+
}
|
|
3051
|
+
```
|
|
3067
3052
|
|
|
3068
3053
|
|
|
3069
|
-
|
|
3054
|
+
返回示例:
|
|
3070
3055
|
|
|
3071
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3072
|
-
|--------|--------|--------|--------|--------|
|
|
3073
|
-
| label | 内容的描述 | ReactNode | - | |
|
|
3074
|
-
| span | 包含列的数量( | number\| | 1 | screens: 5.9.0 |
|
|
3075
3056
|
|
|
3057
|
+
```jsx
|
|
3058
|
+
validateFields()
|
|
3059
|
+
.then((values) => {
|
|
3060
|
+
/*
|
|
3061
|
+
values:
|
|
3062
|
+
{
|
|
3063
|
+
username: 'username',
|
|
3064
|
+
password: 'password',
|
|
3065
|
+
}
|
|
3066
|
+
*/
|
|
3067
|
+
})
|
|
3068
|
+
.catch((errorInfo) => {
|
|
3069
|
+
/*
|
|
3070
|
+
errorInfo:
|
|
3071
|
+
{
|
|
3072
|
+
values: {
|
|
3073
|
+
username: 'username',
|
|
3074
|
+
password: 'password',
|
|
3075
|
+
},
|
|
3076
|
+
errorFields: [
|
|
3077
|
+
{ name: ['password'], errors: ['Please input your Password!'] },
|
|
3078
|
+
],
|
|
3079
|
+
outOfDate: false,
|
|
3080
|
+
}
|
|
3081
|
+
*/
|
|
3082
|
+
});
|
|
3083
|
+
```
|
|
3076
3084
|
|
|
3077
|
-
span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度。当同时配置 `style` 和 `labelStyle`(或 `contentStyle`)时,两者会同时作用。样式冲突时,后者会覆盖前者。
|
|
3078
3085
|
|
|
3086
|
+
## Hooks
|
|
3079
3087
|
|
|
3088
|
+
### Form.useForm
|
|
3080
3089
|
|
|
3081
|
-
|
|
3082
|
-
#### API
|
|
3090
|
+
`type Form.useForm = (): [FormInstance]`
|
|
3083
3091
|
|
|
3084
|
-
|
|
3085
|
-
|--------|--------|--------|--------|
|
|
3086
|
-
| collapsedHeight | 收起状态下显示的内容高度 | number | 0 |
|
|
3087
|
-
| expandedHeight | 展开状态下的内容高度,设置后内容超出时可滚动,不设置则自适应内容高度 | number | 300 |
|
|
3088
|
-
| title | 面板标题 | string \| React.ReactNode | "" |
|
|
3089
|
-
| expandOnPanelClick | 是否允许点击整个面板进行展开 | boolean | false |
|
|
3090
|
-
| extra | 面板右侧内容 | React.ReactNode | |
|
|
3091
|
-
| children | 面板内容 | React.ReactNode | |
|
|
3092
|
-
| defaultExpanded | 是否默认展开 | boolean | false |
|
|
3093
|
-
| classNames | 语义化的classNames | Partial> | |
|
|
3094
|
-
| styles | 语义化的styles | Partial<
|
|
3095
|
-
Record
|
|
3096
|
-
> | |
|
|
3092
|
+
创建 Form 实例,用于管理所有数据状态。
|
|
3097
3093
|
|
|
3094
|
+
### Form.useFormInstance
|
|
3098
3095
|
|
|
3096
|
+
`type Form.useFormInstance = (): FormInstance`
|
|
3099
3097
|
|
|
3100
|
-
|
|
3098
|
+
`4.20.0` 新增,获取当前上下文正在使用的 Form 实例,常见于封装子组件消费无需透传 Form 实例:
|
|
3101
3099
|
|
|
3102
|
-
通用属性参考:[通用属性](/docs/react/common-props)
|
|
3103
3100
|
|
|
3104
|
-
|
|
3101
|
+
```tsx
|
|
3102
|
+
const Sub = () => {
|
|
3103
|
+
const form = Form.useFormInstance();
|
|
3105
3104
|
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
| accordion | 手风琴模式 | boolean | false | |
|
|
3109
|
-
| activeKey | 当前激活 tab 面板的 key | string[] \| string | | |
|
|
3110
|
-
| bordered | 带边框风格的折叠面板 | boolean | true | |
|
|
3111
|
-
| collapsible | 所有子面板是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 |
|
|
3112
|
-
| defaultActiveKey | 初始化选中面板的 key | string[] \| string | - | |
|
|
3113
|
-
| destroyOnHidden | 销毁折叠隐藏的面板 | boolean | false | 5.25.0 |
|
|
3114
|
-
| expandIcon | 自定义切换图标 | (panelProps) => ReactNode | - | |
|
|
3115
|
-
| expandIconPosition | 设置图标位置 | start | - | 4.21.0 |
|
|
3116
|
-
| ghost | 使折叠面板透明且无边框 | boolean | false | 4.4.0 |
|
|
3117
|
-
| size | 设置折叠面板大小 | large | middle | 5.2.0 |
|
|
3118
|
-
| onChange | 切换面板的回调 | function | - | |
|
|
3119
|
-
| items | 折叠项目内容 | | - | 5.6.0 |
|
|
3105
|
+
return <Button onClick={() => form.setFieldsValue({})} />;
|
|
3106
|
+
};
|
|
3120
3107
|
|
|
3108
|
+
export default () => {
|
|
3109
|
+
const [form] = Form.useForm();
|
|
3121
3110
|
|
|
3122
|
-
|
|
3111
|
+
return (
|
|
3112
|
+
<Form form={form}>
|
|
3113
|
+
<Sub />
|
|
3114
|
+
</Form>
|
|
3115
|
+
);
|
|
3116
|
+
};
|
|
3117
|
+
```
|
|
3123
3118
|
|
|
3124
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3125
|
-
|--------|--------|--------|--------|--------|
|
|
3126
|
-
| classNames | 语义化结构 className | | - | 5.21.0 |
|
|
3127
|
-
| collapsible | 是否可折叠或指定可折叠触发区域 | header | - | |
|
|
3128
|
-
| forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
|
|
3129
|
-
| key | 对应 activeKey | string \| number | - | |
|
|
3130
|
-
| label | 面板标题 | ReactNode | - | - |
|
|
3131
|
-
| showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
|
|
3132
|
-
| styles | 语义化结构 style | | - | 5.21.0 |
|
|
3133
3119
|
|
|
3120
|
+
### Form.useWatch
|
|
3134
3121
|
|
|
3135
|
-
|
|
3122
|
+
`type Form.useWatch = (namePath: NamePath | (selector: (values: Store)) => any, formInstance?: FormInstance | WatchOptions): Value`
|
|
3136
3123
|
|
|
3137
|
-
|
|
3138
|
-
<Container type="warning" title="已废弃">
|
|
3139
|
-
版本 >= 5.6.0 时请使用 items 方式配置面板。
|
|
3140
|
-
</Container>
|
|
3141
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3142
|
-
|--------|--------|--------|--------|--------|
|
|
3143
|
-
| collapsible | 是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 (icon: 4.24.0) |
|
|
3144
|
-
| forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
|
|
3145
|
-
| header | 面板标题 | ReactNode | - | |
|
|
3146
|
-
| key | 对应 activeKey | string \| number | - | |
|
|
3147
|
-
| showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
|
|
3124
|
+
`5.12.0` 新增 `selector`
|
|
3148
3125
|
|
|
3126
|
+
用于直接获取 form 中字段对应的值。通过该 Hooks 可以与诸如 `useSWR` 进行联动从而降低维护成本:
|
|
3149
3127
|
|
|
3150
3128
|
|
|
3129
|
+
```tsx
|
|
3130
|
+
const Demo = () => {
|
|
3131
|
+
const [form] = Form.useForm();
|
|
3132
|
+
const userName = Form.useWatch('username', form);
|
|
3151
3133
|
|
|
3152
|
-
|
|
3153
|
-
#### API
|
|
3134
|
+
const { data: options } = useSWR(`/api/user/${userName}`, fetcher);
|
|
3154
3135
|
|
|
3155
|
-
|
|
3136
|
+
return (
|
|
3137
|
+
<Form form={form}>
|
|
3138
|
+
<Form.Item name="username">
|
|
3139
|
+
<AutoComplete options={options} />
|
|
3140
|
+
</Form.Item>
|
|
3141
|
+
</Form>
|
|
3142
|
+
);
|
|
3143
|
+
};
|
|
3144
|
+
```
|
|
3156
3145
|
|
|
3157
3146
|
|
|
3158
|
-
|
|
3147
|
+
如果你的组件被包裹在 `Form.Item` 内部,你可以省略第二个参数,`Form.useWatch` 会自动找到上层最近的 `FormInstance`。
|
|
3159
3148
|
|
|
3160
|
-
|
|
3149
|
+
`useWatch` 默认只监听在 Form 中注册的字段,如果需要监听非注册字段,可以通过配置 `preserve` 进行监听:
|
|
3161
3150
|
|
|
3162
|
-
日期类组件包括以下五种形式。
|
|
3163
3151
|
|
|
3152
|
+
```tsx
|
|
3153
|
+
const Demo = () => {
|
|
3154
|
+
const [form] = Form.useForm();
|
|
3164
3155
|
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
- DatePicker[picker="week"]
|
|
3168
|
-
- DatePicker[picker="year"]
|
|
3169
|
-
- DatePicker[picker="quarter"] (4.1.0 新增)
|
|
3170
|
-
- RangePicker
|
|
3156
|
+
const age = Form.useWatch('age', { form, preserve: true });
|
|
3157
|
+
console.log(age);
|
|
3171
3158
|
|
|
3172
|
-
|
|
3159
|
+
return (
|
|
3160
|
+
<div>
|
|
3161
|
+
<Button onClick={() => form.setFieldValue('age', 2)}>Update</Button>
|
|
3162
|
+
<Form form={form}>
|
|
3163
|
+
<Form.Item name="name">
|
|
3164
|
+
<Input />
|
|
3165
|
+
</Form.Item>
|
|
3166
|
+
</Form>
|
|
3167
|
+
</div>
|
|
3168
|
+
);
|
|
3169
|
+
};
|
|
3170
|
+
```
|
|
3173
3171
|
|
|
3174
|
-
默认配置为 en-US,如果你需要设置其他语言,推荐在入口处使用我们提供的国际化组件,详见:[ConfigProvider 国际化](https://ant.design/components/config-provider-cn/)。
|
|
3175
3172
|
|
|
3176
|
-
|
|
3173
|
+
### Form.Item.useStatus
|
|
3177
3174
|
|
|
3175
|
+
`type Form.Item.useStatus = (): { status: ValidateStatus | undefined, errors: ReactNode[], warnings: ReactNode[] }`
|
|
3178
3176
|
|
|
3179
|
-
|
|
3180
|
-
// 默认语言为 en-US,如果你需要设置其他语言,推荐在入口文件全局设置 locale
|
|
3181
|
-
// 确保还导入相关的 dayjs 文件,否则所有文本的区域设置都不会更改(例如范围选择器月份)
|
|
3182
|
-
import locale from 'antd/locale/zh_CN';
|
|
3183
|
-
import dayjs from 'dayjs';
|
|
3177
|
+
`4.22.0` 新增,可用于获取当前 Form.Item 的校验状态,如果上层没有 Form.Item,`status` 将会返回 `undefined`。`5.4.0` 新增 `errors` 和 `warnings`,可用于获取当前 Form.Item 的错误信息和警告信息:
|
|
3184
3178
|
|
|
3185
|
-
import 'dayjs/locale/zh-cn';
|
|
3186
3179
|
|
|
3187
|
-
|
|
3180
|
+
```tsx
|
|
3181
|
+
const CustomInput = ({ value, onChange }) => {
|
|
3182
|
+
const { status, errors } = Form.Item.useStatus();
|
|
3183
|
+
return (
|
|
3184
|
+
<input
|
|
3185
|
+
value={value}
|
|
3186
|
+
onChange={onChange}
|
|
3187
|
+
className={`custom-input-${status}`}
|
|
3188
|
+
placeholder={(errors.length && errors[0]) || ''}
|
|
3189
|
+
/>
|
|
3190
|
+
);
|
|
3191
|
+
};
|
|
3188
3192
|
|
|
3189
|
-
|
|
3190
|
-
<
|
|
3191
|
-
|
|
3193
|
+
export default () => (
|
|
3194
|
+
<Form>
|
|
3195
|
+
<Form.Item name="username">
|
|
3196
|
+
<CustomInput />
|
|
3197
|
+
</Form.Item>
|
|
3198
|
+
</Form>
|
|
3199
|
+
);
|
|
3192
3200
|
```
|
|
3193
3201
|
|
|
3194
3202
|
|
|
3195
|
-
|
|
3196
|
-
<Container type="warning">
|
|
3197
|
-
在搭配 Next.js 的 App Router 使用时,注意在引入 dayjs 的 locale 文件时加上 `'use client'`。这是由于 Ant Design 的组件都是客户端组件,在 RSC 中引入 dayjs 的 locale 文件将不会在客户端生效。
|
|
3198
|
-
</Container>
|
|
3199
|
-
### 共同的 API
|
|
3200
|
-
|
|
3201
|
-
以下 API 为 DatePicker、 RangePicker 共享的 API。
|
|
3202
|
-
|
|
3203
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3204
|
-
|--------|--------|--------|--------|--------|
|
|
3205
|
-
| allowClear | 自定义清除按钮 | boolean \| { clearIcon?: ReactNode } | true | 5.8.0: 支持对象类型 |
|
|
3206
|
-
| autoFocus | 自动获取焦点 | boolean | false | |
|
|
3207
|
-
| className | 选择器 className | string | - | |
|
|
3208
|
-
| dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
|
|
3209
|
-
| cellRender | 自定义单元格的内容 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
|
|
3210
|
-
| components | 自定义面板 | Record | - | 5.14.0 |
|
|
3211
|
-
| defaultOpen | 是否默认展开控制弹层 | boolean | - | |
|
|
3212
|
-
| disabled | 禁用 | boolean | false | |
|
|
3213
|
-
| disabledDate | 不可选择的日期 | (currentDate: dayjs, info: { from?: dayjs, type: Picker }) => boolean | - | info |
|
|
3214
|
-
| format | 设置日期格式,为数组时支持多格式匹配,展示以第一个为准。配置参考 | | | |
|
|
3215
|
-
| order | 多选、范围时是否自动排序 | boolean | true | 5.14.0 |
|
|
3216
|
-
| preserveInvalidOnBlur | 失去焦点是否要清空输入框内无效内容 | boolean | false | 5.14.0 |
|
|
3217
|
-
| getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
|
|
3218
|
-
| inputReadOnly | 设置输入框为只读(避免在移动设备上打开虚拟键盘) | boolean | false | |
|
|
3219
|
-
| locale | 国际化配置 | object | | |
|
|
3220
|
-
| minDate | 最小日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
|
|
3221
|
-
| maxDate | 最大日期,同样会限制面板的切换范围 | dayjs | - | 5.14.0 |
|
|
3222
|
-
| mode | 日期面板的状态( | time | - | |
|
|
3223
|
-
| needConfirm | 是否需要确认按钮,为 | boolean | - | 5.14.0 |
|
|
3224
|
-
| nextIcon | 自定义下一个图标 | ReactNode | - | 4.17.0 |
|
|
3225
|
-
| open | 控制弹层是否展开 | boolean | - | |
|
|
3226
|
-
| panelRender | 自定义渲染面板 | (panelNode) => ReactNode | - | 4.5.0 |
|
|
3227
|
-
| picker | 设置选择器类型 | date | date | quarter |
|
|
3228
|
-
| placeholder | 输入框提示文字 | string \| [string, string] | - | |
|
|
3229
|
-
| placement | 选择框弹出的位置 | bottomLeft | bottomLeft | |
|
|
3230
|
-
| prefix | 自定义前缀 | ReactNode | - | 5.22.0 |
|
|
3231
|
-
| prevIcon | 自定义上一个图标 | ReactNode | - | 4.17.0 |
|
|
3232
|
-
| presets | 预设时间范围快捷选择, 自 | { label: React.ReactNode, value: Dayjs \| (() => Dayjs) }[] | - | |
|
|
3233
|
-
| size | 输入框大小, | large | - | |
|
|
3234
|
-
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
|
3235
|
-
| style | 自定义输入框样式 | CSSProperties | {} | |
|
|
3236
|
-
| suffixIcon | 自定义的选择框后缀图标 | ReactNode | - | |
|
|
3237
|
-
| superNextIcon | 自定义 | ReactNode | - | 4.17.0 |
|
|
3238
|
-
| superPrevIcon | 自定义 | ReactNode | - | 4.17.0 |
|
|
3239
|
-
| variant | 形态变体 | outlined | outlined | 5.13.0 \| |
|
|
3240
|
-
| onOpenChange | 弹出日历和关闭日历的回调 | function(open) | - | |
|
|
3241
|
-
| onPanelChange | 日历面板切换的回调 | function(value, mode) | - | |
|
|
3203
|
+
#### 与其他获取数据的方式的区别
|
|
3242
3204
|
|
|
3205
|
+
Form 仅会对变更的 Field 进行刷新,从而避免完整的组件刷新可能引发的性能问题。因而你无法在 render 阶段通过 `form.getFieldsValue` 来实时获取字段值,而 `useWatch` 提供了一种特定字段访问的方式,从而使得在当前组件中可以直接消费字段的值。同时,如果为了更好的渲染性能,你可以通过 Field 的 renderProps 仅更新需要更新的部分。而当当前组件更新或者 effect 都不需要消费字段值时,则可以通过 `onValuesChange` 将数据抛出,从而避免组件更新。
|
|
3243
3206
|
|
|
3244
|
-
|
|
3207
|
+
## Interface
|
|
3245
3208
|
|
|
3246
|
-
|
|
3247
|
-
|--------|--------|--------|
|
|
3248
|
-
| blur() | 移除焦点 | |
|
|
3249
|
-
| focus() | 获取焦点 | |
|
|
3209
|
+
### NamePath
|
|
3250
3210
|
|
|
3211
|
+
`string | number | (string | number)[]`
|
|
3251
3212
|
|
|
3252
|
-
###
|
|
3213
|
+
### GetFieldsValue
|
|
3253
3214
|
|
|
3254
|
-
|
|
3255
|
-
|--------|--------|--------|--------|--------|
|
|
3256
|
-
| defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
|
|
3257
|
-
| defaultValue | 默认日期,如果开始时间或结束时间为 | | - | |
|
|
3258
|
-
| disabledTime | 不可选择的时间 | function(date) | - | |
|
|
3259
|
-
| format | 展示的日期格式,配置参考 | | YYYY-MM-DD | |
|
|
3260
|
-
| multiple | 是否为多选,不支持 | boolean | false | 5.14.0 |
|
|
3261
|
-
| pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
|
|
3262
|
-
| renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
|
|
3263
|
-
| showNow | 显示当前日期时间的快捷选择 | boolean | - | |
|
|
3264
|
-
| showTime | 增加时间选择功能 | Object \| boolean | | |
|
|
3265
|
-
| showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | dayjs() | |
|
|
3266
|
-
| showWeek | DatePicker 下展示当前周 | boolean | false | 5.14.0 |
|
|
3267
|
-
| value | 日期 | | - | |
|
|
3268
|
-
| onChange | 时间发生变化的回调 | function(date: dayjs, dateString: string) | - | |
|
|
3269
|
-
| onOk | 点击确定按钮的回调 | function() | - | |
|
|
3270
|
-
| onPanelChange | 日期面板变化时的回调 | function(value, mode) | - | |
|
|
3215
|
+
`getFieldsValue` 提供了多种重载方法:
|
|
3271
3216
|
|
|
3217
|
+
#### getFieldsValue(nameList?: true | [NamePath](#namepath)[], filterFunc?: FilterFunc)
|
|
3272
3218
|
|
|
3273
|
-
|
|
3219
|
+
当不提供 `nameList` 时,返回所有注册字段,这也包含 List 下所有的值(即便 List 下没有绑定 Item)。
|
|
3274
3220
|
|
|
3275
|
-
|
|
3276
|
-
|--------|--------|--------|--------|--------|
|
|
3277
|
-
| defaultValue | 默认日期 | | - | |
|
|
3278
|
-
| format | 展示的日期格式,配置参考 | | YYYY | |
|
|
3279
|
-
| multiple | 是否为多选 | boolean | false | 5.14.0 |
|
|
3280
|
-
| renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
|
|
3281
|
-
| value | 日期 | | - | |
|
|
3282
|
-
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
3221
|
+
当 `nameList` 为 `true` 时,返回 store 中所有的值,包含未注册字段。例如通过 `setFieldsValue` 设置了不存在的 Item 的值,也可以通过 `true` 全部获取。
|
|
3283
3222
|
|
|
3223
|
+
当 `nameList` 为数组时,返回规定路径的值。需要注意的是,`nameList` 为嵌套数组。例如你需要某路径值应该如下:
|
|
3284
3224
|
|
|
3285
|
-
### DatePicker[picker=quarter]
|
|
3286
3225
|
|
|
3287
|
-
|
|
3226
|
+
```tsx
|
|
3227
|
+
// 单个路径
|
|
3228
|
+
form.getFieldsValue([['user', 'age']]);
|
|
3288
3229
|
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
| value | 日期 | | - | |
|
|
3296
|
-
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
3230
|
+
// 多个路径
|
|
3231
|
+
form.getFieldsValue([
|
|
3232
|
+
['user', 'age'],
|
|
3233
|
+
['preset', 'account'],
|
|
3234
|
+
]);
|
|
3235
|
+
```
|
|
3297
3236
|
|
|
3298
3237
|
|
|
3299
|
-
|
|
3238
|
+
#### getFieldsValue({ strict?: boolean, filter?: FilterFunc })
|
|
3300
3239
|
|
|
3301
|
-
|
|
3302
|
-
|--------|--------|--------|--------|--------|
|
|
3303
|
-
| defaultValue | 默认日期 | | - | |
|
|
3304
|
-
| format | 展示的日期格式,配置参考 | | YYYY-MM | |
|
|
3305
|
-
| multiple | 是否为多选 | boolean | false | 5.14.0 |
|
|
3306
|
-
| renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
|
|
3307
|
-
| value | 日期 | | - | |
|
|
3308
|
-
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
3240
|
+
`5.8.0` 新增接受配置参数。当 `strict` 为 `true` 时会仅匹配 Item 的值。例如 `{ list: [{ bamboo: 1, little: 2 }] }` 中,如果 List 仅绑定了 `bamboo` 字段,那么 `getFieldsValue({ strict: true })` 会只获得 `{ list: [{ bamboo: 1 }] }`。
|
|
3309
3241
|
|
|
3242
|
+
### FilterFunc
|
|
3310
3243
|
|
|
3311
|
-
|
|
3244
|
+
用于过滤一些字段值,`meta` 会返回字段相关信息。例如可以用来获取仅被用户修改过的值等等。
|
|
3312
3245
|
|
|
3313
|
-
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3314
|
-
|--------|--------|--------|--------|--------|
|
|
3315
|
-
| defaultValue | 默认日期 | | - | |
|
|
3316
|
-
| format | 展示的日期格式,配置参考 | | YYYY-wo | |
|
|
3317
|
-
| multiple | 是否为多选 | boolean | false | 5.14.0 |
|
|
3318
|
-
| renderExtraFooter | 在面板中添加额外的页脚 | (mode) => React.ReactNode | - | |
|
|
3319
|
-
| value | 日期 | | - | |
|
|
3320
|
-
| onChange | 时间发生变化的回调,发生在用户选择时间时 | function(date: dayjs, dateString: string) | - | |
|
|
3321
|
-
| showWeek | DatePicker 下展示当前周 | boolean | true | 5.14.0 |
|
|
3322
3246
|
|
|
3247
|
+
```tsx
|
|
3248
|
+
type FilterFunc = (meta: { touched: boolean; validating: boolean }) => boolean;
|
|
3249
|
+
```
|
|
3323
3250
|
|
|
3324
|
-
### RangePicker
|
|
3325
3251
|
|
|
3326
|
-
|
|
3327
|
-
|--------|--------|--------|--------|--------|
|
|
3328
|
-
| allowEmpty | 允许起始项部分为空 | [boolean, boolean] | [false, false] | |
|
|
3329
|
-
| cellRender | 自定义单元格的内容。 | (current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' \| 'end', type: PanelMode, locale?: Locale, subType?: 'hour' \| 'minute' \| 'second' \| 'meridiem' }) => React.ReactNode | - | 5.4.0 |
|
|
3330
|
-
| dateRender | 自定义日期单元格的内容,5.4.0 起用 | function(currentDate: dayjs, today: dayjs) => React.ReactNode | - | < 5.4.0 |
|
|
3331
|
-
| defaultPickerValue | 默认面板日期,每次面板打开时会被重置到该日期 | | - | 5.14.0 |
|
|
3332
|
-
| defaultValue | 默认日期 | | - | |
|
|
3333
|
-
| disabled | 禁用起始项 | [boolean, boolean] | - | |
|
|
3334
|
-
| disabledTime | 不可选择的时间 | function(date: dayjs, partial: | - | info.from |
|
|
3335
|
-
| format | 展示的日期格式,配置参考 | | YYYY-MM-DD HH:mm:ss | |
|
|
3336
|
-
| id | 设置输入框 | { start?: string, end?: string } | - | 5.14.0 |
|
|
3337
|
-
| pickerValue | 面板日期,可以用于受控切换面板所在日期。配合 | | - | 5.14.0 |
|
|
3338
|
-
| presets | 预设时间范围快捷选择,自 | { label: React.ReactNode, value: (Dayjs \| (() => Dayjs))[] }[] | - | |
|
|
3339
|
-
| renderExtraFooter | 在面板中添加额外的页脚 | () => React.ReactNode | - | |
|
|
3340
|
-
| separator | 设置分隔符 | React.ReactNode | | |
|
|
3341
|
-
| showTime | 增加时间选择功能 | Object\|boolean | | |
|
|
3342
|
-
| showTime.defaultValue | 设置用户选择日期时默认的时分秒, | | [dayjs(), dayjs()] | |
|
|
3343
|
-
| value | 日期 | | - | |
|
|
3344
|
-
| onCalendarChange | 待选日期发生变化的回调。 | function(dates: [dayjs, dayjs], dateStrings: [string, string], info: { range: | - | |
|
|
3345
|
-
| onChange | 日期范围发生变化的回调 | function(dates: [dayjs, dayjs], dateStrings: [string, string]) | - | |
|
|
3346
|
-
| onFocus | 聚焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
|
|
3347
|
-
| onBlur | 失焦时回调 | function(event, { range: 'start' \| 'end' }) | - | range |
|
|
3252
|
+
### FieldData
|
|
3348
3253
|
|
|
3254
|
+
| 名称 | 说明 | 类型 |
|
|
3255
|
+
|--------|--------|--------|
|
|
3256
|
+
| errors | 错误信息 | string[] |
|
|
3257
|
+
| warnings | 警告信息 | string[] |
|
|
3258
|
+
| name | 字段名称 | |
|
|
3259
|
+
| touched | 是否被用户操作过 | boolean |
|
|
3260
|
+
| validating | 是否正在校验 | boolean |
|
|
3261
|
+
| value | 字段对应值 | any |
|
|
3349
3262
|
|
|
3350
|
-
#### formatType
|
|
3351
3263
|
|
|
3264
|
+
### Rule
|
|
3352
3265
|
|
|
3353
|
-
|
|
3354
|
-
import type { Dayjs } from 'dayjs';
|
|
3266
|
+
Rule 支持接收 object 进行配置,也支持 function 来动态获取 form 的数据:
|
|
3355
3267
|
|
|
3356
|
-
type Generic = string;
|
|
3357
|
-
type GenericFn = (value: Dayjs) => string;
|
|
3358
3268
|
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
| GenericFn
|
|
3362
|
-
| Array
|
|
3363
|
-
| {
|
|
3364
|
-
format: string;
|
|
3365
|
-
type?: 'mask';
|
|
3366
|
-
};
|
|
3269
|
+
```tsx
|
|
3270
|
+
type Rule = RuleConfig | ((form: FormInstance) => RuleConfig);
|
|
3367
3271
|
```
|
|
3368
3272
|
|
|
3369
3273
|
|
|
3370
|
-
|
|
3371
|
-
|
|
3274
|
+
| 名称 | 说明 | 类型 | 版本 |
|
|
3275
|
+
|--------|--------|--------|--------|
|
|
3276
|
+
| defaultField | 仅在 | | |
|
|
3277
|
+
| enum | 是否匹配枚举中的值(需要将 | any[] | |
|
|
3278
|
+
| fields | 仅在 | Record<string, | |
|
|
3279
|
+
| len | string 类型时为字符串长度;number 类型时为确定数字; array 类型时为数组长度 | number | |
|
|
3280
|
+
| max | 必须设置 | number | |
|
|
3281
|
+
| message | 错误信息,不设置时会通过 | string \| ReactElement | |
|
|
3282
|
+
| min | 必须设置 | number | |
|
|
3283
|
+
| pattern | 正则表达式匹配 | RegExp | |
|
|
3284
|
+
| required | 是否为必选字段 | boolean | |
|
|
3285
|
+
| transform | 将字段值转换成目标值后进行校验 | (value) => any | |
|
|
3286
|
+
| type | 类型,常见有 | string | |
|
|
3287
|
+
| validateTrigger | 设置触发验证时机,必须是 Form.Item 的 | string \| string[] | |
|
|
3288
|
+
| validator | 自定义校验,接收 Promise 作为返回值。 | ( | |
|
|
3289
|
+
| warningOnly | 仅警告,不阻塞表单提交 | boolean | 4.17.0 |
|
|
3290
|
+
| whitespace | 如果字段仅包含空格则校验不通过,只在 | boolean | |
|
|
3372
3291
|
|
|
3373
3292
|
|
|
3374
|
-
|
|
3375
|
-
#### API
|
|
3293
|
+
### WatchOptions
|
|
3376
3294
|
|
|
3377
|
-
|
|
|
3378
|
-
|
|
3379
|
-
|
|
|
3380
|
-
|
|
|
3381
|
-
| className | 类名 | string | |
|
|
3382
|
-
| theme | 主题 | 'dark' \| 'light' | |
|
|
3383
|
-
| readOnly | 只读 | boolean | |
|
|
3384
|
-
| onChange | | (value?: string) => void | |
|
|
3295
|
+
| 名称 | 说明 | 类型 | 默认值 | 版本 |
|
|
3296
|
+
|--------|--------|--------|--------|--------|
|
|
3297
|
+
| form | 指定 Form 实例 | FormInstance | 当前 context 中的 Form | 5.4.0 |
|
|
3298
|
+
| preserve | 是否监视没有对应的 | boolean | false | 5.4.0 |
|
|
3385
3299
|
|
|
3386
3300
|
|
|
3387
3301
|
|
|
3388
3302
|
|
|
3389
|
-
<DemoTitle title="
|
|
3303
|
+
<DemoTitle title="CollapsePanel" desc="折叠面板">
|
|
3390
3304
|
#### API
|
|
3391
3305
|
|
|
3392
|
-
|
|
3306
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
3307
|
+
|--------|--------|--------|--------|
|
|
3308
|
+
| collapsedHeight | 收起状态下显示的内容高度 | number | 0 |
|
|
3309
|
+
| expandedHeight | 展开状态下的内容高度,设置后内容超出时可滚动,不设置则自适应内容高度 | number | 300 |
|
|
3310
|
+
| title | 面板标题 | string \| React.ReactNode | "" |
|
|
3311
|
+
| expandOnPanelClick | 是否允许点击整个面板进行展开 | boolean | false |
|
|
3312
|
+
| extra | 面板右侧内容 | React.ReactNode | |
|
|
3313
|
+
| children | 面板内容 | React.ReactNode | |
|
|
3314
|
+
| defaultExpanded | 是否默认展开 | boolean | false |
|
|
3315
|
+
| classNames | 语义化的classNames | Partial> | |
|
|
3316
|
+
| styles | 语义化的styles | Partial<
|
|
3317
|
+
Record
|
|
3318
|
+
> | |
|
|
3319
|
+
|
|
3393
3320
|
|
|
3394
3321
|
|
|
3395
3322
|
## antd API
|
|
@@ -3444,6 +3371,21 @@ export type FormatType =
|
|
|
3444
3371
|
|
|
3445
3372
|
|
|
3446
3373
|
|
|
3374
|
+
<DemoTitle title="CodeBlock" desc="代码块">
|
|
3375
|
+
#### API
|
|
3376
|
+
|
|
3377
|
+
| 属性名 | 描述 | 类型 | 默认值 |
|
|
3378
|
+
|--------|--------|--------|--------|
|
|
3379
|
+
| language | 语言 | string \| string[] | (必填) |
|
|
3380
|
+
| value | 值 | string | (必填) |
|
|
3381
|
+
| className | 类名 | string | |
|
|
3382
|
+
| theme | 主题 | 'dark' \| 'light' | |
|
|
3383
|
+
| readOnly | 只读 | boolean | |
|
|
3384
|
+
| onChange | | (value: string) => void | |
|
|
3385
|
+
|
|
3386
|
+
|
|
3387
|
+
|
|
3388
|
+
|
|
3447
3389
|
<DemoTitle title="Checkbox" desc="收集用户的多项选择。">
|
|
3448
3390
|
#### API
|
|
3449
3391
|
|
|
@@ -3515,6 +3457,64 @@ interface Option {
|
|
|
3515
3457
|
|
|
3516
3458
|
|
|
3517
3459
|
|
|
3460
|
+
<DemoTitle title="Collapse" desc="可以折叠/展开的内容区域">
|
|
3461
|
+
#### API
|
|
3462
|
+
|
|
3463
|
+
<AntdApiRef url="https://ant.design/components/collapse-cn/#api"></AntdApiRef>
|
|
3464
|
+
|
|
3465
|
+
|
|
3466
|
+
## antd API
|
|
3467
|
+
|
|
3468
|
+
通用属性参考:[通用属性](/docs/react/common-props)
|
|
3469
|
+
|
|
3470
|
+
### Collapse
|
|
3471
|
+
|
|
3472
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3473
|
+
|--------|--------|--------|--------|--------|
|
|
3474
|
+
| accordion | 手风琴模式 | boolean | false | |
|
|
3475
|
+
| activeKey | 当前激活 tab 面板的 key | string[] \| string | | |
|
|
3476
|
+
| bordered | 带边框风格的折叠面板 | boolean | true | |
|
|
3477
|
+
| collapsible | 所有子面板是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 |
|
|
3478
|
+
| defaultActiveKey | 初始化选中面板的 key | string[] \| string | - | |
|
|
3479
|
+
| destroyOnHidden | 销毁折叠隐藏的面板 | boolean | false | 5.25.0 |
|
|
3480
|
+
| expandIcon | 自定义切换图标 | (panelProps) => ReactNode | - | |
|
|
3481
|
+
| expandIconPosition | 设置图标位置 | start | - | 4.21.0 |
|
|
3482
|
+
| ghost | 使折叠面板透明且无边框 | boolean | false | 4.4.0 |
|
|
3483
|
+
| size | 设置折叠面板大小 | large | middle | 5.2.0 |
|
|
3484
|
+
| onChange | 切换面板的回调 | function | - | |
|
|
3485
|
+
| items | 折叠项目内容 | | - | 5.6.0 |
|
|
3486
|
+
|
|
3487
|
+
|
|
3488
|
+
### ItemType
|
|
3489
|
+
|
|
3490
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3491
|
+
|--------|--------|--------|--------|--------|
|
|
3492
|
+
| classNames | 语义化结构 className | | - | 5.21.0 |
|
|
3493
|
+
| collapsible | 是否可折叠或指定可折叠触发区域 | header | - | |
|
|
3494
|
+
| forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
|
|
3495
|
+
| key | 对应 activeKey | string \| number | - | |
|
|
3496
|
+
| label | 面板标题 | ReactNode | - | - |
|
|
3497
|
+
| showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
|
|
3498
|
+
| styles | 语义化结构 style | | - | 5.21.0 |
|
|
3499
|
+
|
|
3500
|
+
|
|
3501
|
+
### Collapse.Panel
|
|
3502
|
+
|
|
3503
|
+
<!-- prettier-ignore -->
|
|
3504
|
+
<Container type="warning" title="已废弃">
|
|
3505
|
+
版本 >= 5.6.0 时请使用 items 方式配置面板。
|
|
3506
|
+
</Container>
|
|
3507
|
+
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
|
3508
|
+
|--------|--------|--------|--------|--------|
|
|
3509
|
+
| collapsible | 是否可折叠或指定可折叠触发区域 | header | - | 4.9.0 (icon: 4.24.0) |
|
|
3510
|
+
| forceRender | 被隐藏时是否渲染 body 区域 DOM 结构 | boolean | false | |
|
|
3511
|
+
| header | 面板标题 | ReactNode | - | |
|
|
3512
|
+
| key | 对应 activeKey | string \| number | - | |
|
|
3513
|
+
| showArrow | 是否展示当前面板上的箭头(为 false 时,collapsible 不能设为 icon) | boolean | true | |
|
|
3514
|
+
|
|
3515
|
+
|
|
3516
|
+
|
|
3517
|
+
|
|
3518
3518
|
<DemoTitle title="Card" desc="通用卡片容器">
|
|
3519
3519
|
#### API
|
|
3520
3520
|
|
|
@@ -4060,349 +4060,6 @@ const confirmed = await modal.confirm({ ... });
|
|
|
4060
4060
|
|
|
4061
4061
|
|
|
4062
4062
|
|
|
4063
|
-
<div align="center"><a name="readme-top"></a>
|
|
4064
|
-
<img height="120" src="https://img.alicdn.com/imgextra/i1/O1CN01ipemFb1EzmZI9LiTe_!!6000000000423-55-tps-28-28.svg" style="border: none">
|
|
4065
|
-
<h1>Alibaba Cloud Spark Design</h1>
|
|
4066
|
-
</div>
|
|
4067
|
-
|
|
4068
|
-
# 概述
|
|
4069
|
-
|
|
4070
|
-
Alibaba Cloud Spark Design 是一个基于 Ant Design 的 React UI 组件库,包含丰富的基础组件和场景组件,专为构建优秀的 LLM 产品而设计。
|
|
4071
|
-
<br />
|
|
4072
|
-
<br />
|
|
4073
|
-
|
|
4074
|
-
## ✨ 特性
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
- <img height="15" src="https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg"> 基于 Ant Design,兼容 Ant Design 生态系统。您可以无需修改代码即可切换到 Spark Design。
|
|
4078
|
-
- 🛡 使用 TypeScript 编写,具有可预测的静态类型。
|
|
4079
|
-
- 🧠 为 LLM 产品设计的各种场景组件。
|
|
4080
|
-
- 💡 与@agentscope-ai/chat 和 @agentscope-ai/flow 配合使用,构建企业级 LLM 应用。
|
|
4081
|
-
- 🎨 多种预设主题。
|
|
4082
|
-
- ☀️ 轻松切换明暗模式。
|
|
4083
|
-
|
|
4084
|
-
## 📦 安装
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
```bash
|
|
4088
|
-
npm install antd @agentscope-ai/icons @agentscope-ai/design --save
|
|
4089
|
-
```
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
## Tree Shaking 支持
|
|
4093
|
-
|
|
4094
|
-
@agentscope-ai/design 默认基于 ES 模块支持 tree shaking
|
|
4095
|
-
|
|
4096
|
-
## TypeScript
|
|
4097
|
-
|
|
4098
|
-
@agentscope-ai/chat 使用 TypeScript 编写并提供完整的定义文件。
|
|
4099
|
-
|
|
4100
|
-
## 内置主题
|
|
4101
|
-
|
|
4102
|
-
我们提供四种内置主题:
|
|
4103
|
-
|
|
4104
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #615CED;"></span> purpleTheme</div>
|
|
4105
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #5551CC;"></span> purpleDarkTheme(暗色模式)</div>
|
|
4106
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: rgba(26, 26, 29, 1);"></span> carbonTheme</div>
|
|
4107
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #676767;"></span> carbonDarkTheme(暗色模式)</div>
|
|
4108
|
-
|
|
4109
|
-
## 🏗️ 开源
|
|
4110
|
-
|
|
4111
|
-
[@agentscope-ai/design](https://www.npmjs.com/package/@agentscope-ai/design) 和 [@agentscope-ai/chat](https://www.npmjs.com/package/@agentscope-ai/chat) 正在积极推进开源,预计将在 2025 年底完成。目前,您可以通过 npm 访问我们的项目。
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
## 内置主题
|
|
4116
|
-
|
|
4117
|
-
Alibaba Cloud Spark Design 提供四种内置主题:
|
|
4118
|
-
|
|
4119
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #615CED;"></span> purpleTheme</div>
|
|
4120
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #5551CC;"></span> purpleDarkTheme(暗色模式)</div>
|
|
4121
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: rgba(26, 26, 29, 1);"></span> carbonTheme</div>
|
|
4122
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #676767;"></span> carbonDarkTheme(暗色模式)</div>
|
|
4123
|
-
|
|
4124
|
-
### 示例用法
|
|
4125
|
-
|
|
4126
|
-
|
|
4127
|
-
```tsx
|
|
4128
|
-
import { ConfigProvider, purpleTheme } from '@agentscope-ai/design';
|
|
4129
|
-
|
|
4130
|
-
const App = () => {
|
|
4131
|
-
return <ConfigProvider {...purpleTheme}>Hello Spark Design!</ConfigProvider>;
|
|
4132
|
-
};
|
|
4133
|
-
|
|
4134
|
-
export default App;
|
|
4135
|
-
```
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
## 从 Antd token 生成您自己的主题
|
|
4139
|
-
|
|
4140
|
-
如果您已经有了 Antd 主题,仍然可以使用 generateThemeByToken 生成 spark 风格的主题
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
```tsx
|
|
4144
|
-
import { ConfigProvider, generateThemeByToken } from '@agentscope-ai/design';
|
|
4145
|
-
const yourToken = {
|
|
4146
|
-
borderRadiusXS: 2,
|
|
4147
|
-
borderRadiusSM: 4,
|
|
4148
|
-
borderRadius: 6,
|
|
4149
|
-
borderRadiusLG: 8,
|
|
4150
|
-
borderRadiusXL: 12,
|
|
4151
|
-
borderRadiusFull: 999,
|
|
4152
|
-
wireframe: false,
|
|
4153
|
-
colorPrimaryBg: '#F2F0FF',
|
|
4154
|
-
colorPrimaryBgHover: '#F2F0FF',
|
|
4155
|
-
colorPrimaryBorder: '#E2DEFF',
|
|
4156
|
-
colorPrimaryBorderHover: '#BCB5FF',
|
|
4157
|
-
// ... 您可以在下一个文档中找到完整版本的 tokens:Tokens 和 CSS 变量
|
|
4158
|
-
};
|
|
4159
|
-
const darkMode = false;
|
|
4160
|
-
const yourThemeWithSparkStyle = generateThemeByToken(yourToken, darkMode);
|
|
4161
|
-
const App = () => {
|
|
4162
|
-
return (
|
|
4163
|
-
<ConfigProvider {...yourThemeWithSparkStyle}>
|
|
4164
|
-
Hello Spark Design!
|
|
4165
|
-
</ConfigProvider>
|
|
4166
|
-
);
|
|
4167
|
-
};
|
|
4168
|
-
|
|
4169
|
-
export default App;
|
|
4170
|
-
```
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
您仍然可以修改生成的主题:`yourThemeWithSparkStyle`,但不建议这样做。我们建议您保持原始主题以获得 Spark Design 的最佳体验。
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
# 使用
|
|
4178
|
-
|
|
4179
|
-
如果您有自己的 iconfont 项目,可以将您的图标集成到 Spark Design 中,并通过简单的符号名称访问您的图标。
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
```tsx
|
|
4183
|
-
import {
|
|
4184
|
-
ConfigProvider,
|
|
4185
|
-
purpleTheme,
|
|
4186
|
-
Button,
|
|
4187
|
-
IconFont,
|
|
4188
|
-
IconButton,
|
|
4189
|
-
} from '@agentscope-ai/design';
|
|
4190
|
-
import { Flex } from 'antd';
|
|
4191
|
-
import zhCN from 'antd/locale/zh_CN';
|
|
4192
|
-
import { useState } from 'react';
|
|
4193
|
-
|
|
4194
|
-
const App = () => {
|
|
4195
|
-
const prefix = 'sps';
|
|
4196
|
-
const iconSymbol = 'spark-effciency-line';
|
|
4197
|
-
const iconfont = '//at.alicdn.com/t/a/font_4807885_ugexdeaoq7.js'; // 您可以从 https://www.iconfont.cn/ 获取
|
|
4198
|
-
return (
|
|
4199
|
-
<ConfigProvider
|
|
4200
|
-
{...purpleTheme}
|
|
4201
|
-
prefix={prefix}
|
|
4202
|
-
prefixCls={prefix}
|
|
4203
|
-
iconfont={iconfont}
|
|
4204
|
-
locale={zhCN}
|
|
4205
|
-
style={{
|
|
4206
|
-
width: '100%',
|
|
4207
|
-
height: '100%',
|
|
4208
|
-
}}
|
|
4209
|
-
>
|
|
4210
|
-
<Flex
|
|
4211
|
-
style={{
|
|
4212
|
-
width: '100%',
|
|
4213
|
-
height: '100%',
|
|
4214
|
-
backgroundColor: `var(--${prefix}-color-bg-base)`,
|
|
4215
|
-
}}
|
|
4216
|
-
justify="center"
|
|
4217
|
-
align="center"
|
|
4218
|
-
>
|
|
4219
|
-
<Flex vertical gap={16} style={{ width: '300px', padding: '12px 0' }}>
|
|
4220
|
-
<Flex gap={8}>
|
|
4221
|
-
<div style={{ width: '100px', lineHeight: '32px' }}>IconFont:</div>
|
|
4222
|
-
<IconFont type={iconSymbol} />
|
|
4223
|
-
</Flex>
|
|
4224
|
-
<Flex gap={8}>
|
|
4225
|
-
<div style={{ width: '100px', lineHeight: '32px' }}>Button:</div>
|
|
4226
|
-
<Button type="primary" iconType={iconSymbol}>
|
|
4227
|
-
添加用户
|
|
4228
|
-
</Button>
|
|
4229
|
-
</Flex>
|
|
4230
|
-
<Flex gap={8}>
|
|
4231
|
-
<div style={{ width: '100px', lineHeight: '32px' }}>
|
|
4232
|
-
IconButton:
|
|
4233
|
-
</div>
|
|
4234
|
-
<IconButton iconType={iconSymbol}></IconButton>
|
|
4235
|
-
</Flex>
|
|
4236
|
-
</Flex>
|
|
4237
|
-
</Flex>
|
|
4238
|
-
</ConfigProvider>
|
|
4239
|
-
);
|
|
4240
|
-
};
|
|
4241
|
-
|
|
4242
|
-
export default App;
|
|
4243
|
-
```
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
# 从 Antd 迁移
|
|
4249
|
-
|
|
4250
|
-
## 📦 安装
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
```bash
|
|
4254
|
-
$ npm install @agentscope-ai/icons @agentscope-ai/design --save
|
|
4255
|
-
```
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
## 🔨 使用
|
|
4259
|
-
|
|
4260
|
-
从 @agentscope-ai/design 导出的所有同名组件在 API 方面都与 antd 的对应组件兼容,这意味着您无需学习如何使用它们。如果您想充分利用 Alibaba Cloud Spark Design 的新功能,可以尝试使用这些组件而不是 antd 的组件。
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
```tsx
|
|
4264
|
-
import {
|
|
4265
|
-
Button,
|
|
4266
|
-
Image,
|
|
4267
|
-
ConfigProvider,
|
|
4268
|
-
purpleDarkTheme,
|
|
4269
|
-
purpleTheme,
|
|
4270
|
-
} from '@agentscope-ai/design';
|
|
4271
|
-
import { SparkSunLine, SparkMoonLine } from '@agentscope-ai/icons';
|
|
4272
|
-
import { Flex } from 'antd';
|
|
4273
|
-
import zhCN from 'antd/locale/zh_CN';
|
|
4274
|
-
import { useState } from 'react';
|
|
4275
|
-
|
|
4276
|
-
const App = () => {
|
|
4277
|
-
const [colorMode, setColorMode] = useState('light');
|
|
4278
|
-
const theme = colorMode === 'light' ? purpleTheme : purpleDarkTheme;
|
|
4279
|
-
|
|
4280
|
-
const prefix = 'sps';
|
|
4281
|
-
return (
|
|
4282
|
-
<ConfigProvider
|
|
4283
|
-
{...theme} // 您可以从 purpleTheme、purpleDarkTheme、carbonTheme 和 carbonDarkTheme 中选择
|
|
4284
|
-
prefix={prefix} // Ant Design 和 @agentscope-ai/design 的前缀
|
|
4285
|
-
prefixCls={prefix}
|
|
4286
|
-
iconfont="//at.alicdn.com/t/a/font_4807885_ugexdeaoq7.js" // 可选参数,您可以从 https://www.iconfont.cn/ 获取
|
|
4287
|
-
locale={zhCN} // 来自 Ant Design 的语言包
|
|
4288
|
-
style={{
|
|
4289
|
-
width: '100%',
|
|
4290
|
-
height: '100%',
|
|
4291
|
-
}}
|
|
4292
|
-
>
|
|
4293
|
-
<div
|
|
4294
|
-
style={{
|
|
4295
|
-
width: '100%',
|
|
4296
|
-
height: '100%',
|
|
4297
|
-
backgroundColor: `var(--${prefix}-color-bg-base)`,
|
|
4298
|
-
}}
|
|
4299
|
-
>
|
|
4300
|
-
<Flex vertical gap={16} align="center" style={{ padding: '12px 0' }}>
|
|
4301
|
-
<Image
|
|
4302
|
-
width={120}
|
|
4303
|
-
src="https://img.alicdn.com/imgextra/i1/O1CN01Py27NU1re2pgohzqU_!!6000000005655-0-tps-480-480.jpg"
|
|
4304
|
-
/>
|
|
4305
|
-
<div
|
|
4306
|
-
style={{
|
|
4307
|
-
color: `var(--${prefix}-ant-color-text-base)`,
|
|
4308
|
-
fontSize: '24px',
|
|
4309
|
-
textAlign: 'center',
|
|
4310
|
-
}}
|
|
4311
|
-
>
|
|
4312
|
-
Hello Spark Design!
|
|
4313
|
-
</div>
|
|
4314
|
-
<Button
|
|
4315
|
-
type="primary"
|
|
4316
|
-
onClick={() => {
|
|
4317
|
-
setColorMode(colorMode === 'light' ? 'dark' : 'light');
|
|
4318
|
-
}}
|
|
4319
|
-
icon={colorMode === 'light' ? <SparkMoonLine /> : <SparkSunLine />}
|
|
4320
|
-
>
|
|
4321
|
-
{colorMode === 'light' ? '暗色' : '亮色'} 模式
|
|
4322
|
-
</Button>
|
|
4323
|
-
</Flex>
|
|
4324
|
-
</div>
|
|
4325
|
-
</ConfigProvider>
|
|
4326
|
-
);
|
|
4327
|
-
};
|
|
4328
|
-
|
|
4329
|
-
export default App;
|
|
4330
|
-
```
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
如果您想继续使用 antd 的组件,那也没问题。您只需要将 antd 的 ConfigProvider 替换为 @agentscope-ai/design 的即可。
|
|
4334
|
-
|
|
4335
|
-
|
|
4336
|
-
```tsx
|
|
4337
|
-
import {
|
|
4338
|
-
ConfigProvider,
|
|
4339
|
-
purpleDarkTheme,
|
|
4340
|
-
purpleTheme,
|
|
4341
|
-
} from '@agentscope-ai/design';
|
|
4342
|
-
import { Button, Image, Flex } from 'antd';
|
|
4343
|
-
import { SparkSunLine, SparkMoonLine } from '@agentscope-ai/icons';
|
|
4344
|
-
import zhCN from 'antd/locale/zh_CN';
|
|
4345
|
-
import { useState } from 'react';
|
|
4346
|
-
|
|
4347
|
-
const App = () => {
|
|
4348
|
-
const [colorMode, setColorMode] = useState('light');
|
|
4349
|
-
const theme = colorMode === 'light' ? purpleTheme : purpleDarkTheme;
|
|
4350
|
-
|
|
4351
|
-
const prefix = 'sps';
|
|
4352
|
-
return (
|
|
4353
|
-
<ConfigProvider
|
|
4354
|
-
{...theme} // 您可以从 purpleTheme、purpleDarkTheme、carbonTheme 和 carbonDarkTheme 中选择
|
|
4355
|
-
prefix={prefix} // Ant Design 和 @agentscope-ai/design 的前缀
|
|
4356
|
-
prefixCls={prefix}
|
|
4357
|
-
iconfont="//at.alicdn.com/t/a/font_4807885_ugexdeaoq7.js" // 可选参数,您可以从 https://www.iconfont.cn/ 获取
|
|
4358
|
-
locale={zhCN} // 来自 Ant Design 的语言包
|
|
4359
|
-
style={{
|
|
4360
|
-
width: '100%',
|
|
4361
|
-
height: '100%',
|
|
4362
|
-
}}
|
|
4363
|
-
>
|
|
4364
|
-
<div
|
|
4365
|
-
style={{
|
|
4366
|
-
width: '100%',
|
|
4367
|
-
height: '100%',
|
|
4368
|
-
backgroundColor: `var(--${prefix}-color-bg-base)`,
|
|
4369
|
-
}}
|
|
4370
|
-
>
|
|
4371
|
-
<Flex vertical gap={16} align="center" style={{ padding: '12px 0' }}>
|
|
4372
|
-
<Image
|
|
4373
|
-
width={120}
|
|
4374
|
-
src="https://img.alicdn.com/imgextra/i1/O1CN01Py27NU1re2pgohzqU_!!6000000005655-0-tps-480-480.jpg"
|
|
4375
|
-
/>
|
|
4376
|
-
<div
|
|
4377
|
-
style={{
|
|
4378
|
-
color: `var(--${prefix}-ant-color-text-base)`,
|
|
4379
|
-
fontSize: '24px',
|
|
4380
|
-
textAlign: 'center',
|
|
4381
|
-
}}
|
|
4382
|
-
>
|
|
4383
|
-
Hello Spark Design!
|
|
4384
|
-
</div>
|
|
4385
|
-
<Button
|
|
4386
|
-
type="primary"
|
|
4387
|
-
onClick={() => {
|
|
4388
|
-
setColorMode(colorMode === 'light' ? 'dark' : 'light');
|
|
4389
|
-
}}
|
|
4390
|
-
icon={colorMode === 'light' ? <SparkMoonLine /> : <SparkSunLine />}
|
|
4391
|
-
>
|
|
4392
|
-
{colorMode === 'light' ? '暗色' : '亮色'} 模式
|
|
4393
|
-
</Button>
|
|
4394
|
-
</Flex>
|
|
4395
|
-
</div>
|
|
4396
|
-
</ConfigProvider>
|
|
4397
|
-
);
|
|
4398
|
-
};
|
|
4399
|
-
|
|
4400
|
-
export default App;
|
|
4401
|
-
```
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
4063
|
# 使用
|
|
4407
4064
|
|
|
4408
4065
|
|
|
@@ -4425,574 +4082,4 @@ export default () => {
|
|
|
4425
4082
|
|
|
4426
4083
|
基本用法
|
|
4427
4084
|
|
|
4428
|
-
访问 [Icon Library](https://sparkdesign.agentscope.io/#/resources/icons) 查看全部 Icon
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
# Vibe 编程
|
|
4433
|
-
|
|
4434
|
-
## LLMs.txt
|
|
4435
|
-
|
|
4436
|
-
为了让 Cursor 和 Claude Code 等工具理解 Spark Design,我们支持 LLMs.txt 文件,使 Spark Design 的文档可供大型语言模型使用。
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
- [index.llms.txt](https://g.alicdn.com/code/npm/@ali/agentscope-ai-design/4.7.2/docs-dist/llms/index.llms.txt):主要的 LLMs.txt 索引文件
|
|
4440
|
-
- [all.llms.txt](https://g.alicdn.com/code/npm/@ali/agentscope-ai-design/4.7.2/docs-dist/llms/all.llms.txt):Spark Design 的完整文档
|
|
4441
|
-
|
|
4442
|
-
在 Cursor 中使用 @Docs 功能将 LLMs.txt 文件包含在您的项目中。[了解更多](https://docs.cursor.com/en/context/@-symbols/@-docs)
|
|
4443
|
-
|
|
4444
|
-
## D2C
|
|
4445
|
-
|
|
4446
|
-
在前端使用 Alibaba Cloud Spark Design、设计稿使用 Spark Design 套件的前提下,通过 masterGo 视觉稿生成代码可以做到以下几点:
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
- 准确识别 icon
|
|
4450
|
-
- 使用标准 css token
|
|
4451
|
-
- 无需测量间距、圆角等数据,AI 直接还原布局(90%以上概率准确生成)
|
|
4452
|
-
- 使用标准组件还原页面,大部分标准组件可一次性正确生成,无需二次调整
|
|
4453
|
-
|
|
4454
|
-
<div>
|
|
4455
|
-
<video style="width: 100%" controls src="https://cloud.video.taobao.com/vod/PrrYzvYJkoDlbJwoL8Ei1Bo_60LrKAROCojWxB_EAYs.mp4" />
|
|
4456
|
-
</div>
|
|
4457
|
-
|
|
4458
|
-
我们会在不久的将来开放 masterGo 的设计套件和 rules,帮助您高效率还原视觉稿
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
# 从零开始使用
|
|
4463
|
-
|
|
4464
|
-
## 📦 安装
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
```bash
|
|
4468
|
-
$ npm install antd @agentscope-ai/icons @agentscope-ai/design --save
|
|
4469
|
-
```
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
## 🔨 使用
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
```tsx
|
|
4476
|
-
import {
|
|
4477
|
-
Button,
|
|
4478
|
-
Image,
|
|
4479
|
-
ConfigProvider,
|
|
4480
|
-
purpleDarkTheme,
|
|
4481
|
-
purpleTheme,
|
|
4482
|
-
} from '@agentscope-ai/design';
|
|
4483
|
-
import { SparkSunLine, SparkMoonLine } from '@agentscope-ai/icons';
|
|
4484
|
-
import { Flex } from 'antd';
|
|
4485
|
-
import zhCN from 'antd/locale/zh_CN';
|
|
4486
|
-
import { useState } from 'react';
|
|
4487
|
-
|
|
4488
|
-
const App = () => {
|
|
4489
|
-
const [colorMode, setColorMode] = useState('light');
|
|
4490
|
-
const theme = colorMode === 'light' ? purpleTheme : purpleDarkTheme;
|
|
4491
|
-
|
|
4492
|
-
const prefix = 'sps';
|
|
4493
|
-
return (
|
|
4494
|
-
<ConfigProvider
|
|
4495
|
-
{...theme} // 您可以从 purpleTheme、purpleDarkTheme、carbonTheme 和 carbonDarkTheme 中选择
|
|
4496
|
-
prefix={prefix} // Ant Design 和 @agentscope-ai/design 的前缀
|
|
4497
|
-
prefixCls={prefix}
|
|
4498
|
-
iconfont="//at.alicdn.com/t/a/font_4807885_ugexdeaoq7.js" // 可选参数,您可以从 https://www.iconfont.cn/ 获取
|
|
4499
|
-
locale={zhCN} // 来自 Ant Design 的语言包
|
|
4500
|
-
style={{
|
|
4501
|
-
width: '100%',
|
|
4502
|
-
height: '100%',
|
|
4503
|
-
}}
|
|
4504
|
-
>
|
|
4505
|
-
<div
|
|
4506
|
-
style={{
|
|
4507
|
-
width: '100%',
|
|
4508
|
-
height: '100%',
|
|
4509
|
-
backgroundColor: `var(--${prefix}-color-bg-base)`,
|
|
4510
|
-
}}
|
|
4511
|
-
>
|
|
4512
|
-
<Flex vertical gap={16} align="center" style={{ padding: '12px 0' }}>
|
|
4513
|
-
<Image
|
|
4514
|
-
width={120}
|
|
4515
|
-
src="https://img.alicdn.com/imgextra/i1/O1CN01Py27NU1re2pgohzqU_!!6000000005655-0-tps-480-480.jpg"
|
|
4516
|
-
/>
|
|
4517
|
-
<div
|
|
4518
|
-
style={{
|
|
4519
|
-
color: `var(--${prefix}-ant-color-text-base)`,
|
|
4520
|
-
fontSize: '24px',
|
|
4521
|
-
textAlign: 'center',
|
|
4522
|
-
}}
|
|
4523
|
-
>
|
|
4524
|
-
Hello Spark Design!
|
|
4525
|
-
</div>
|
|
4526
|
-
<Button
|
|
4527
|
-
type="primary"
|
|
4528
|
-
onClick={() => {
|
|
4529
|
-
setColorMode(colorMode === 'light' ? 'dark' : 'light');
|
|
4530
|
-
}}
|
|
4531
|
-
icon={colorMode === 'light' ? <SparkMoonLine /> : <SparkSunLine />}
|
|
4532
|
-
>
|
|
4533
|
-
{colorMode === 'light' ? '暗色' : '亮色'} 模式
|
|
4534
|
-
</Button>
|
|
4535
|
-
</Flex>
|
|
4536
|
-
</div>
|
|
4537
|
-
</ConfigProvider>
|
|
4538
|
-
);
|
|
4539
|
-
};
|
|
4540
|
-
|
|
4541
|
-
export default App;
|
|
4542
|
-
```
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
# Tokens
|
|
4548
|
-
|
|
4549
|
-
除了来自 [antd](https://ant.design/theme-editor) 的固有 tokens 之外,Spark Design 在原有基础上扩展了更多变量。完整的 token 示例如下所示:
|
|
4550
|
-
|
|
4551
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #615CED;"></span> purpleTheme</div>
|
|
4552
|
-
|
|
4553
|
-
```json
|
|
4554
|
-
{
|
|
4555
|
-
"borderRadiusXS": 2,
|
|
4556
|
-
"borderRadiusSM": 4,
|
|
4557
|
-
"borderRadius": 6,
|
|
4558
|
-
"borderRadiusLG": 8,
|
|
4559
|
-
"borderRadiusXL": 12,
|
|
4560
|
-
"borderRadiusFull": 999,
|
|
4561
|
-
"wireframe": false,
|
|
4562
|
-
"colorPrimaryBg": "rgba(97, 92, 237, 0.08)",
|
|
4563
|
-
"colorPrimaryBgHover": "#F2F0FF",
|
|
4564
|
-
"colorPrimaryBorder": "#E2DEFF",
|
|
4565
|
-
"colorPrimaryBorderHover": "#BCB5FF",
|
|
4566
|
-
"colorPrimaryHover": "#9189FA",
|
|
4567
|
-
"colorPrimary": "#615CED",
|
|
4568
|
-
"colorPrimaryActive": "#4444C7",
|
|
4569
|
-
"colorPrimaryTextHover": "#9189FA",
|
|
4570
|
-
"colorPrimaryText": "#615CED",
|
|
4571
|
-
"colorPrimaryTextActive": "#4444C7",
|
|
4572
|
-
"colorTextBase": "#26244c",
|
|
4573
|
-
"colorBgBase": "#FFFFFF",
|
|
4574
|
-
"colorText": "rgba(38, 36, 76, 0.88)",
|
|
4575
|
-
"colorTextSecondary": "rgba(38, 36, 76, 0.65)",
|
|
4576
|
-
"colorTextTertiary": "rgba(38, 36, 76, 0.45)",
|
|
4577
|
-
"colorTextQuaternary": "rgba(38, 36, 76, 0.25)",
|
|
4578
|
-
"colorBorder": "#cdd0dc",
|
|
4579
|
-
"colorBorderSecondary": "#e6e8ee",
|
|
4580
|
-
"colorFill": "#cdd0dc5c",
|
|
4581
|
-
"colorFillSecondary": "#cdd0dc33",
|
|
4582
|
-
"colorFillTertiary": "#cdd0dc26",
|
|
4583
|
-
"colorFillQuaternary": "#cdd0dc1a",
|
|
4584
|
-
"colorBgContainer": "#FFFFFF",
|
|
4585
|
-
"colorBgElevated": "#FFFFFF",
|
|
4586
|
-
"colorBgLayout": "#f9fafd",
|
|
4587
|
-
"colorBgSpotlight": "rgba(38, 36, 76, 0.85)",
|
|
4588
|
-
"colorBgMask": "rgba(20, 19, 39, 0.45)",
|
|
4589
|
-
"colorInfo": "#0B83F1",
|
|
4590
|
-
"colorInfoHover": "#5EBCFF",
|
|
4591
|
-
"colorInfoBorder": "#87D1FF",
|
|
4592
|
-
"colorInfoText": "#0B83F1",
|
|
4593
|
-
"colorInfoBg": "#E6F7FF",
|
|
4594
|
-
"colorInfoBgHover": "#B0E3FF",
|
|
4595
|
-
"colorInfoBorderHover": "#5EBCFF",
|
|
4596
|
-
"colorSuccess": "#5BB98B",
|
|
4597
|
-
"colorSuccessHover": "#ABD4BE",
|
|
4598
|
-
"colorSuccessBg": "#EBFAF0",
|
|
4599
|
-
"colorSuccessBgHover": "#DFEDE4",
|
|
4600
|
-
"colorSuccessBorder": "#D3E0D9",
|
|
4601
|
-
"colorSuccessBorderHover": "#ABD4BE",
|
|
4602
|
-
"colorWarning": "#FAAD14",
|
|
4603
|
-
"colorWarningHover": "#FFD666",
|
|
4604
|
-
"colorWarningBg": "#FFFBE6",
|
|
4605
|
-
"colorWarningBgHover": "#FFF1B8",
|
|
4606
|
-
"colorWarningBorder": "#FFE58F",
|
|
4607
|
-
"colorWarningBorderHover": "#FFD666",
|
|
4608
|
-
"colorError": "#FF4D4F",
|
|
4609
|
-
"colorErrorHover": "#FF7875",
|
|
4610
|
-
"colorErrorBg": "#FFF2F0",
|
|
4611
|
-
"colorErrorBgHover": "#FFF1F0",
|
|
4612
|
-
"colorErrorBorder": "#FFCCC7",
|
|
4613
|
-
"colorErrorBorderHover": "#FFA39E",
|
|
4614
|
-
"colorLink": "#615CED",
|
|
4615
|
-
"boxShadow": "0px 4px 6px 0px rgba(0, 0, 0, 0.08)",
|
|
4616
|
-
"boxShadowSecondary": "0px 12px 24px -16px rgba(0, 0, 0, 0.06),0px 8px 40px 0px rgba(0, 0, 0, 0.12),0px 0px 1px 0px rgba(0, 0, 0, 0.04)",
|
|
4617
|
-
|
|
4618
|
-
"colorTextWhite": "#ffffff",
|
|
4619
|
-
"colorTextOnPrimary": "#ffffff",
|
|
4620
|
-
"colorFillDisable": "#DBDAE7",
|
|
4621
|
-
"colorPurple": "#615CED",
|
|
4622
|
-
"colorPurpleHover": "#8080FF",
|
|
4623
|
-
"colorPurpleBg": "rgba(226, 222, 255, 0.8)",
|
|
4624
|
-
"colorPink": "#EC4899",
|
|
4625
|
-
"colorPinkHover": "#E593BC",
|
|
4626
|
-
"colorPinkBg": "rgba(251, 220, 239, 0.8)",
|
|
4627
|
-
"colorYellow": "#EAB308",
|
|
4628
|
-
"colorYellowHover": "#F1D372",
|
|
4629
|
-
"colorYellowBg": "rgba(255, 250, 184, 0.8)",
|
|
4630
|
-
"colorOrange": "#FA8125",
|
|
4631
|
-
"colorOrangeHover": "#E88C45",
|
|
4632
|
-
"colorOrangeBg": "rgba(255, 232, 201, 0.8)",
|
|
4633
|
-
"colorTeal": "#14B8A6",
|
|
4634
|
-
"colorTealHover": "#5FB3A9",
|
|
4635
|
-
"colorTealBg": "rgba(200, 244, 233, 0.8)",
|
|
4636
|
-
"colorBlue": "#0090FF",
|
|
4637
|
-
"colorBlueHover": "#72BCF5",
|
|
4638
|
-
"colorBlueBg": "rgba(194, 229, 255, 0.8)",
|
|
4639
|
-
"colorMauve": "#8E8C99",
|
|
4640
|
-
"colorMauveHover": "#C0BFC8",
|
|
4641
|
-
"colorMauveBg": "rgba(239, 240, 243, 0.8)",
|
|
4642
|
-
"colorSlate": "#1E293B",
|
|
4643
|
-
"colorSlateHover": "#475569",
|
|
4644
|
-
"colorSlateBg": "#E2E8F0",
|
|
4645
|
-
"colorLavender": "#A77BFF",
|
|
4646
|
-
"colorLavenderHover": "#BB99FF",
|
|
4647
|
-
"colorLavenderBg": "rgba(226, 212, 255, 0.8)",
|
|
4648
|
-
|
|
4649
|
-
"boxShadowTertiary": "0px 12px 32px -16px rgba(0, 0, 0, 0.24),0px 12px 60px 0px rgba(0, 0, 0, 0.12),0px 0px 1px 0px rgba(0, 0, 0, 0.04)",
|
|
4650
|
-
"boxShadowTertiaryLeft": "-12px 0px 32px -16px rgba(0, 0, 0, 0.24),-12px 0px 60px 0px rgba(0, 0, 0, 0.12),0px 0px 1px 0px rgba(0, 0, 0, 0.04)",
|
|
4651
|
-
"boxShadowInput": "0px 12px 24px -16px rgba(54, 54, 73, 0.04),0px 12px 40px 0px rgba(51, 51, 71, 0.08),0px 0px 1px 0px rgba(44, 44, 54, 0.02)"
|
|
4652
|
-
}
|
|
4653
|
-
```
|
|
4654
|
-
|
|
4655
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: #5551CC;"></span> purpleDarkTheme(暗色模式)</div>
|
|
4656
|
-
|
|
4657
|
-
```json
|
|
4658
|
-
{
|
|
4659
|
-
"borderRadiusXS": 2,
|
|
4660
|
-
"borderRadiusSM": 4,
|
|
4661
|
-
"borderRadius": 6,
|
|
4662
|
-
"borderRadiusLG": 8,
|
|
4663
|
-
"borderRadiusXL": 12,
|
|
4664
|
-
"borderRadiusFull": 999,
|
|
4665
|
-
"wireframe": false,
|
|
4666
|
-
"colorPrimaryBg": "#202041",
|
|
4667
|
-
"colorPrimaryBgHover": "#202041",
|
|
4668
|
-
"colorPrimaryBorder": "#2B2A55",
|
|
4669
|
-
"colorPrimaryBorderHover": "#373476",
|
|
4670
|
-
"colorPrimaryHover": "#857DE3",
|
|
4671
|
-
"colorPrimary": "#5551CC",
|
|
4672
|
-
"colorPrimaryActive": "#4643A1",
|
|
4673
|
-
"colorPrimaryTextHover": "#857DE3",
|
|
4674
|
-
"colorPrimaryText": "#5551CC",
|
|
4675
|
-
"colorPrimaryTextActive": "#4643A1",
|
|
4676
|
-
"colorTextBase": "#E7E7ED",
|
|
4677
|
-
"colorBgBase": "#000000",
|
|
4678
|
-
"colorText": "rgba(231, 231, 237, 0.88)",
|
|
4679
|
-
"colorTextSecondary": "rgba(231, 231, 237, 0.65)",
|
|
4680
|
-
"colorTextTertiary": "rgba(231, 231, 237, 0.45)",
|
|
4681
|
-
"colorTextQuaternary": "rgba(231, 231, 237, 0.25)",
|
|
4682
|
-
"colorBorder": "rgba(71, 71, 97, 0.8)",
|
|
4683
|
-
"colorBorderSecondary": "rgba(56, 56, 76, 0.8)",
|
|
4684
|
-
"colorFill": "rgba(231, 231, 237, 0.18)",
|
|
4685
|
-
"colorFillSecondary": "rgba(231, 231, 237, 0.12)",
|
|
4686
|
-
"colorFillTertiary": "rgba(231, 231, 237, 0.08)",
|
|
4687
|
-
"colorFillQuaternary": "rgba(231, 231, 237, 0.04)",
|
|
4688
|
-
"colorBgContainer": "#0F0F14",
|
|
4689
|
-
"colorBgElevated": "#0F0F14",
|
|
4690
|
-
"colorBgLayout": "#0F0F14",
|
|
4691
|
-
"colorBgSpotlight": "rgba(71, 71, 97, 0.85)",
|
|
4692
|
-
"colorBgMask": "rgba(5, 5, 8, 0.8)",
|
|
4693
|
-
"colorInfo": "#0B83F1",
|
|
4694
|
-
"colorInfoHover": "rgba(42, 114, 165, 1)",
|
|
4695
|
-
"colorInfoBorder": "rgba(135, 209, 255, 0.2)",
|
|
4696
|
-
"colorInfoText": "#0B83F1",
|
|
4697
|
-
"colorInfoBg": "rgba(27, 73, 115, 0.25)",
|
|
4698
|
-
"colorInfoBgHover": "rgba(27, 73, 115, 0.32)",
|
|
4699
|
-
"colorInfoBorderHover": "rgba(94, 188, 255, 0.2)",
|
|
4700
|
-
"colorSuccess": "#5BB98B",
|
|
4701
|
-
"colorSuccessHover": "rgba(87, 141, 112, 1)",
|
|
4702
|
-
"colorSuccessBg": "rgba(0, 50, 26, 0.25)",
|
|
4703
|
-
"colorSuccessBgHover": "rgba(0, 50, 26, 0.32)",
|
|
4704
|
-
"colorSuccessBorder": "rgba(211, 224, 217, 0.2)",
|
|
4705
|
-
"colorSuccessBorderHover": "rgba(171, 212, 190, 0.2)",
|
|
4706
|
-
"colorWarning": "#FAAD14",
|
|
4707
|
-
"colorWarningHover": "rgba(170, 136, 43, 1)",
|
|
4708
|
-
"colorWarningBg": "rgba(129, 116, 49, 0.25)",
|
|
4709
|
-
"colorWarningBgHover": "rgba(129, 116, 49, 0.32)",
|
|
4710
|
-
"colorWarningBorder": "rgba(255, 229, 143, 0.2)",
|
|
4711
|
-
"colorWarningBorderHover": "rgba(255, 214, 102, 0.2)",
|
|
4712
|
-
"colorError": "#FF4D4F",
|
|
4713
|
-
"colorErrorHover": "rgba(165, 50, 48, 1)",
|
|
4714
|
-
"colorErrorBg": "rgba(129, 46, 46, 0.25)",
|
|
4715
|
-
"colorErrorBgHover": "rgba(129, 46, 46, 0.32)",
|
|
4716
|
-
"colorErrorBorder": "rgba(255, 204, 199, 0.2)",
|
|
4717
|
-
"colorErrorBorderHover": "rgba(255, 163, 158, 0.2)",
|
|
4718
|
-
"colorLink": "#5551CC",
|
|
4719
|
-
"boxShadow": "0px 4px 6px 0px rgba(255, 255, 255, 0.08)",
|
|
4720
|
-
"boxShadowSecondary": "0px 12px 24px -16px rgba(255, 255, 255, 0.04),0px 8px 40px 0px rgba(255, 255, 255, 0.06),0px 0px 1px 0px rgba(255, 255, 255, 0.02)",
|
|
4721
|
-
|
|
4722
|
-
"colorTextWhite": "#fff",
|
|
4723
|
-
"colorTextOnPrimary": "#fff",
|
|
4724
|
-
"colorFillDisable": "#8D8C98",
|
|
4725
|
-
"colorPurple": "#5551CC",
|
|
4726
|
-
"colorPurpleHover": "#8383F0",
|
|
4727
|
-
"colorPurpleBg": "rgba(226, 222, 255, 0.2)",
|
|
4728
|
-
"colorPink": "#EC4899",
|
|
4729
|
-
"colorPinkHover": "#E494BC",
|
|
4730
|
-
"colorPinkBg": "rgba(251, 220, 239, 0.2)",
|
|
4731
|
-
"colorYellow": "#EAB308",
|
|
4732
|
-
"colorYellowHover": "#DBBE62",
|
|
4733
|
-
"colorYellowBg": "rgba(255, 250, 184, 0.2)",
|
|
4734
|
-
"colorOrange": "#FA8125",
|
|
4735
|
-
"colorOrangeHover": "#F7A25F",
|
|
4736
|
-
"colorOrangeBg": "rgba(255, 232, 201, 0.2)",
|
|
4737
|
-
"colorTeal": "#14B8A6",
|
|
4738
|
-
"colorTealHover": "#7BC7BE",
|
|
4739
|
-
"colorTealBg": "rgba(200, 244, 233, 0.2)",
|
|
4740
|
-
"colorBlue": "#0090FF",
|
|
4741
|
-
"colorBlueHover": "#83BFED",
|
|
4742
|
-
"colorBlueBg": "rgba(194, 229, 255, 0.2)",
|
|
4743
|
-
"colorMauve": "#8E8C99",
|
|
4744
|
-
"colorMauveHover": "#BBB8CA",
|
|
4745
|
-
"colorMauveBg": "rgba(239, 240, 243, 0.2)",
|
|
4746
|
-
"colorSlate": "#2C3A50",
|
|
4747
|
-
"colorSlateHover": "#354252",
|
|
4748
|
-
"colorSlateBg": "#232B36",
|
|
4749
|
-
"colorLavender": "#A77BFF",
|
|
4750
|
-
"colorLavenderHover": "#BFA5F3",
|
|
4751
|
-
"colorLavenderBg": "rgba(150, 143, 167, 0.48)",
|
|
4752
|
-
|
|
4753
|
-
"boxShadowTertiary": "0px 12px 32px -16px rgba(255, 255, 255, 0.16),0px 12px 60px 0px rgba(255, 255, 255, 0.08),0px 0px 1px 0px rgba(255, 255, 255, 0.02)",
|
|
4754
|
-
"boxShadowTertiaryLeft": "-12px 0px 32px -16px rgba(255, 255, 255, 0.16),-12px 0px 60px 0px rgba(255, 255, 255, 0.08),0px 0px 1px 0px rgba(255, 255, 255, 0.02);",
|
|
4755
|
-
"boxShadowInput": "0px 12px 24px -16px rgba(255, 255, 255, 0.08),0px 12px 40px 0px rgba(255, 255, 255, 0.16),0px 0px 1px 0px rgba(255, 255, 255, 0.04)"
|
|
4756
|
-
}
|
|
4757
|
-
|
|
4758
|
-
```
|
|
4759
|
-
|
|
4760
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: rgba(26, 26, 29, 1);"></span> carbonTheme</div>
|
|
4761
|
-
|
|
4762
|
-
```json
|
|
4763
|
-
{
|
|
4764
|
-
"borderRadiusXS": 2,
|
|
4765
|
-
"borderRadiusSM": 4,
|
|
4766
|
-
"borderRadius": 6,
|
|
4767
|
-
"borderRadiusLG": 8,
|
|
4768
|
-
"borderRadiusXL": 12,
|
|
4769
|
-
"borderRadiusFull": 999,
|
|
4770
|
-
"wireframe": false,
|
|
4771
|
-
"colorPrimaryBg": "rgba(244, 244, 247, 1)",
|
|
4772
|
-
"colorPrimaryBgHover": "rgba(239, 239, 244, 1)",
|
|
4773
|
-
"colorPrimaryBorder": "rgba(62, 63, 66, 1)",
|
|
4774
|
-
"colorPrimaryBorderHover": "rgba(130, 132, 137, 1)",
|
|
4775
|
-
"colorPrimaryHover": "rgba(38, 38, 41, 1)",
|
|
4776
|
-
"colorPrimary": "rgba(26, 26, 29, 1)",
|
|
4777
|
-
"colorPrimaryActive": "rgba(0, 0, 0, 1)",
|
|
4778
|
-
"colorPrimaryTextHover": "rgba(38, 38, 41, 1)",
|
|
4779
|
-
"colorPrimaryText": "rgba(26, 26, 29, 1)",
|
|
4780
|
-
"colorPrimaryTextActive": "rgba(0, 0, 0, 1)",
|
|
4781
|
-
"colorTextBase": "rgba(26, 26, 29, 1)",
|
|
4782
|
-
"colorBgBase": "rgba(255, 255, 255, 1)",
|
|
4783
|
-
"colorText": "rgba(26, 26, 29, 0.88)",
|
|
4784
|
-
"colorTextSecondary": "rgba(26, 26, 29, 0.65)",
|
|
4785
|
-
"colorTextTertiary": "rgba(26, 26, 29, 0.45)",
|
|
4786
|
-
"colorTextQuaternary": "rgba(26, 26, 29, 0.25)",
|
|
4787
|
-
"colorBorder": "rgba(187, 187, 193, 1)",
|
|
4788
|
-
"colorBorderSecondary": "rgba(234, 234, 234, 1)",
|
|
4789
|
-
"colorFill": "rgba(0, 0, 43, 0.06)",
|
|
4790
|
-
"colorFillSecondary": "rgba(0, 0, 85, 0.03)",
|
|
4791
|
-
"colorFillTertiary": "rgba(205, 208, 220, 0.15)",
|
|
4792
|
-
"colorFillQuaternary": "rgba(205, 208, 220, 0.1)",
|
|
4793
|
-
"colorBgContainer": "rgba(255, 255, 255, 1)",
|
|
4794
|
-
"colorBgElevated": "rgba(255, 255, 255, 1)",
|
|
4795
|
-
"colorBgLayout": "rgba(250, 250, 251, 1)",
|
|
4796
|
-
"colorBgSpotlight": "rgba(26, 26, 29, 0.85)",
|
|
4797
|
-
"colorBgMask": "rgba(0, 0, 0, 0.45)",
|
|
4798
|
-
"colorInfo": "rgba(11, 131, 241, 1)",
|
|
4799
|
-
"colorInfoHover": "rgba(94, 188, 255, 1)",
|
|
4800
|
-
"colorInfoBorder": "rgba(135, 209, 255, 1)",
|
|
4801
|
-
"colorInfoText": "rgba(11, 131, 241, 1)",
|
|
4802
|
-
"colorInfoBg": "rgba(230, 247, 255, 1)",
|
|
4803
|
-
"colorInfoBgHover": "rgba(176, 227, 255, 1)",
|
|
4804
|
-
"colorInfoBorderHover": "rgba(94, 188, 255, 1)",
|
|
4805
|
-
"colorSuccess": "rgba(91, 185, 139, 1)",
|
|
4806
|
-
"colorSuccessHover": "rgba(171, 212, 190, 1)",
|
|
4807
|
-
"colorSuccessBg": "rgba(235, 250, 240, 1)",
|
|
4808
|
-
"colorSuccessBgHover": "rgba(223, 237, 228, 1)",
|
|
4809
|
-
"colorSuccessBorder": "rgba(211, 224, 217, 1)",
|
|
4810
|
-
"colorSuccessBorderHover": "rgba(171, 212, 190, 1)",
|
|
4811
|
-
"colorWarning": "rgba(250, 173, 20, 1)",
|
|
4812
|
-
"colorWarningHover": "rgba(255, 214, 102, 1)",
|
|
4813
|
-
"colorWarningBg": "rgba(255, 251, 230, 1)",
|
|
4814
|
-
"colorWarningBgHover": "rgba(255, 241, 184, 1)",
|
|
4815
|
-
"colorWarningBorder": "rgba(255, 229, 143, 1)",
|
|
4816
|
-
"colorWarningBorderHover": "rgba(255, 214, 102, 1)",
|
|
4817
|
-
"colorError": "rgba(255, 77, 79, 1)",
|
|
4818
|
-
"colorErrorHover": "rgba(255, 120, 117, 1)",
|
|
4819
|
-
"colorErrorBg": "rgba(255, 242, 240, 1)",
|
|
4820
|
-
"colorErrorBgHover": "rgba(255, 241, 240, 1)",
|
|
4821
|
-
"colorErrorBorder": "rgba(255, 204, 199, 1)",
|
|
4822
|
-
"colorErrorBorderHover": "rgba(255, 163, 158, 1)",
|
|
4823
|
-
"colorLink": "rgba(0, 77, 255, 1)",
|
|
4824
|
-
"boxShadow": "0px 4px 6px 0px rgba(0, 0, 0, 0.08)",
|
|
4825
|
-
"boxShadowSecondary": "0px 12px 24px -16px rgba(0, 0, 0, 0.06),0px 8px 40px 0px rgba(0, 0, 0, 0.12),0px 0px 1px 0px rgba(0, 0, 0, 0.04)",
|
|
4826
|
-
|
|
4827
|
-
"colorTextWhite": "#ffffff",
|
|
4828
|
-
"colorTextOnPrimary": "#ffffff",
|
|
4829
|
-
"colorFillDisable": "rgba(232, 232, 235, 1)",
|
|
4830
|
-
"colorPurple": "rgba(97, 92, 237, 1)",
|
|
4831
|
-
"colorPurpleHover": "#8080FF",
|
|
4832
|
-
"colorPurpleBg": "rgba(226, 222, 255, 0.8)",
|
|
4833
|
-
"colorPink": "rgba(236, 72, 153, 1)",
|
|
4834
|
-
"colorPinkHover": "#E593BC",
|
|
4835
|
-
"colorPinkBg": "rgba(251, 220, 239, 0.8)",
|
|
4836
|
-
"colorYellow": "rgba(234, 179, 8, 1)",
|
|
4837
|
-
"colorYellowHover": "#F1D372",
|
|
4838
|
-
"colorYellowBg": "rgba(255, 250, 184, 0.8)",
|
|
4839
|
-
"colorOrange": "rgba(250, 129, 37, 1)",
|
|
4840
|
-
"colorOrangeHover": "#E88C45",
|
|
4841
|
-
"colorOrangeBg": "rgba(255, 232, 201, 0.8)",
|
|
4842
|
-
"colorTeal": "rgba(20, 184, 166, 1)",
|
|
4843
|
-
"colorTealHover": "#5FB3A9",
|
|
4844
|
-
"colorTealBg": "rgba(200, 244, 233, 0.8)",
|
|
4845
|
-
"colorBlue": "rgba(0, 144, 255, 1)",
|
|
4846
|
-
"colorBlueHover": "#72BCF5",
|
|
4847
|
-
"colorBlueBg": "rgba(194, 229, 255, 0.8)",
|
|
4848
|
-
"colorMauve": "rgba(142, 140, 153, 1)",
|
|
4849
|
-
"colorMauveHover": "#C0BFC8",
|
|
4850
|
-
"colorMauveBg": "rgba(239, 240, 243, 0.8)",
|
|
4851
|
-
"colorSlate": "#2C3A50",
|
|
4852
|
-
"colorSlateHover": "#354252",
|
|
4853
|
-
"colorSlateBg": "#232B36",
|
|
4854
|
-
"boxShadowTertiary": "0px 12px 32px -16px rgba(0, 0, 0, 0.24),0px 12px 60px 0px rgba(0, 0, 0, 0.12),0px 0px 1px 0px rgba(0, 0, 0, 0.04)",
|
|
4855
|
-
"boxShadowTertiaryLeft": "-12px 0px 32px -16px rgba(0, 0, 0, 0.24),-12px 0px 60px 0px rgba(0, 0, 0, 0.12),0px 0px 1px 0px rgba(0, 0, 0, 0.04)",
|
|
4856
|
-
"boxShadowInput": "0px 12px 24px -16px rgba(54, 54, 73, 0.04),0px 12px 40px 0px rgba(51, 51, 71, 0.08),0px 0px 1px 0px rgba(44, 44, 54, 0.02)"
|
|
4857
|
-
}
|
|
4858
|
-
|
|
4859
|
-
```
|
|
4860
|
-
|
|
4861
|
-
<div><span style="display: inline-block; width: 12px; height: 12px; background-color: rgba(26, 26, 29, 1);"></span> carbonDarkTheme</div>
|
|
4862
|
-
|
|
4863
|
-
```json
|
|
4864
|
-
{
|
|
4865
|
-
"borderRadiusXS": 2,
|
|
4866
|
-
"borderRadiusSM": 4,
|
|
4867
|
-
"borderRadius": 6,
|
|
4868
|
-
"borderRadiusLG": 8,
|
|
4869
|
-
"borderRadiusXL": 12,
|
|
4870
|
-
"borderRadiusFull": 999,
|
|
4871
|
-
"wireframe": false,
|
|
4872
|
-
"colorPrimaryBg": "#181818",
|
|
4873
|
-
"colorPrimaryBgHover": "#2E2E2E",
|
|
4874
|
-
"colorPrimaryBorder": "#323232",
|
|
4875
|
-
"colorPrimaryBorderHover": "#2C2C2C",
|
|
4876
|
-
"colorPrimaryHover": "#DFDFDF",
|
|
4877
|
-
"colorPrimary": "#E4E4E4",
|
|
4878
|
-
"colorPrimaryActive": "#7E7E7E",
|
|
4879
|
-
"colorPrimaryTextHover": "#909090",
|
|
4880
|
-
"colorPrimaryText": "#676767",
|
|
4881
|
-
"colorPrimaryTextActive": "#959595",
|
|
4882
|
-
"colorTextBase": "#E7E7ED",
|
|
4883
|
-
"colorBgBase": "#0A0A0B",
|
|
4884
|
-
"colorText": "#E7E7EDC7",
|
|
4885
|
-
"colorTextSecondary": "#E7E7EDA6",
|
|
4886
|
-
"colorTextTertiary": "#E7E7ED73",
|
|
4887
|
-
"colorTextQuaternary": "#E7E7ED40",
|
|
4888
|
-
"colorBorder": "#5B5B5BCC",
|
|
4889
|
-
"colorBorderSecondary": "#323232CC",
|
|
4890
|
-
"colorFill": "#E7E7ED2E",
|
|
4891
|
-
"colorFillSecondary": "#E7E7ED1F",
|
|
4892
|
-
"colorFillTertiary": "#E7E7ED14",
|
|
4893
|
-
"colorFillQuaternary": "#E7E7ED0A",
|
|
4894
|
-
"colorBgContainer": "#121212",
|
|
4895
|
-
"colorBgElevated": "#212121",
|
|
4896
|
-
"colorBgLayout": "#141414",
|
|
4897
|
-
"colorBgSpotlight": "#525252D9",
|
|
4898
|
-
"colorBgMask": "#050508CC",
|
|
4899
|
-
"colorInfo": "#0B83F1",
|
|
4900
|
-
"colorInfoHover": "#5EBCFF",
|
|
4901
|
-
"colorInfoBorder": "#3990C9",
|
|
4902
|
-
"colorInfoText": "#0B83F1",
|
|
4903
|
-
"colorInfoBg": "#112233",
|
|
4904
|
-
"colorInfoBgHover": "#264866",
|
|
4905
|
-
"colorInfoBorderHover": "#5EBCFF",
|
|
4906
|
-
"colorSuccess": "#5BB98B",
|
|
4907
|
-
"colorSuccessHover": "#74A47C",
|
|
4908
|
-
"colorSuccessBg": "#293631",
|
|
4909
|
-
"colorSuccessBgHover": "#3F5147",
|
|
4910
|
-
"colorSuccessBorder": "#73A377",
|
|
4911
|
-
"colorSuccessBorderHover": "#ABD4BE",
|
|
4912
|
-
"colorWarning": "#FAAD14",
|
|
4913
|
-
"colorWarningHover": "#FF8C28",
|
|
4914
|
-
"colorWarningBg": "#2D231A",
|
|
4915
|
-
"colorWarningBgHover": "#4D3B23",
|
|
4916
|
-
"colorWarningBorder": "#FFA628",
|
|
4917
|
-
"colorWarningBorderHover": "#FFD666",
|
|
4918
|
-
"colorError": "#FF4D4F",
|
|
4919
|
-
"colorErrorHover": "#EE654E",
|
|
4920
|
-
"colorErrorBg": "#2B0B08",
|
|
4921
|
-
"colorErrorBgHover": "#4A2A28",
|
|
4922
|
-
"colorErrorBorder": "#EE5B4E",
|
|
4923
|
-
"colorErrorBorderHover": "#FFA39E",
|
|
4924
|
-
"colorLink": "#4D7DFF",
|
|
4925
|
-
"boxShadow": "0px 4px 6px 0px rgba(255, 255, 255, 0.08)",
|
|
4926
|
-
"boxShadowSecondary": "0px 12px 24px -16px rgba(255, 255, 255, 0.06),0px 8px 40px 0px rgba(255, 255, 255, 0.12),0px 0px 1px 0px rgba(255, 255, 255, 0.04)",
|
|
4927
|
-
|
|
4928
|
-
"colorTextWhite": "#ffffff",
|
|
4929
|
-
"colorTextBlack": "#000000",
|
|
4930
|
-
"colorTextOnPrimary": "#ffffff",
|
|
4931
|
-
"colorFillDisable": "#898989",
|
|
4932
|
-
"colorPurple": "#615CED",
|
|
4933
|
-
"colorPurpleHover": "#8383F0",
|
|
4934
|
-
"colorPurpleBg": "#6964877A",
|
|
4935
|
-
"colorPink": "#EC4899",
|
|
4936
|
-
"colorPinkHover": "#E494BC",
|
|
4937
|
-
"colorPinkBg": "#53424D7A",
|
|
4938
|
-
"colorYellow": "#EAB308",
|
|
4939
|
-
"colorYellowHover": "#DBBE62",
|
|
4940
|
-
"colorYellowBg": "#9585527A",
|
|
4941
|
-
"colorOrange": "#FA8125",
|
|
4942
|
-
"colorOrangeHover": "#F7A25F",
|
|
4943
|
-
"colorOrangeBg": "#6F58417A",
|
|
4944
|
-
"colorTeal": "#14B8A6",
|
|
4945
|
-
"colorTealHover": "#7BC7BE",
|
|
4946
|
-
"colorTealBg": "#4658547A",
|
|
4947
|
-
"colorBlue": "#0090FF",
|
|
4948
|
-
"colorBlueHover": "#83BFED",
|
|
4949
|
-
"colorBlueBg": "#5E76897A",
|
|
4950
|
-
"colorMauve": "#8E8C99",
|
|
4951
|
-
"colorMauveHover": "#BBB8CA",
|
|
4952
|
-
"colorMauveBg": "#5859647A",
|
|
4953
|
-
"colorSlate": "#2C3A50",
|
|
4954
|
-
"colorSlateHover": "#354252",
|
|
4955
|
-
"colorSlateBg": "#232B36",
|
|
4956
|
-
"colorLavender": "#A77BFF",
|
|
4957
|
-
"colorLavenderHover": "#BFA5F3",
|
|
4958
|
-
"colorLavenderBg": "rgba(150, 143, 167, 0.48)",
|
|
4959
|
-
|
|
4960
|
-
"boxShadowTertiary": "0px 12px 32px -16px rgba(255, 255, 255, 0.24),0px 12px 60px 0px rgba(255, 255, 255, 0.12),0px 0px 1px 0px rgba(255, 255, 255, 0.04)",
|
|
4961
|
-
"boxShadowTertiaryLeft": "-12px 0px 32px -16px rgba(255, 255, 255, 0.24),-12px 0px 60px 0px rgba(255, 255, 255, 0.12),0px 0px 1px 0px rgba(255, 255, 255, 0.04)",
|
|
4962
|
-
"boxShadowInput": "0px 12px 24px -16px rgba(255, 255, 255, 0.08),0px 12px 40px 0px rgba(255, 255, 255, 0.16),0px 0px 1px 0px rgba(255, 255, 255, 0.04)"
|
|
4963
|
-
|
|
4964
|
-
}
|
|
4965
|
-
```
|
|
4966
|
-
|
|
4967
|
-
# CSS 变量
|
|
4968
|
-
|
|
4969
|
-
Spark Design 默认启用 cssVar 模式,因此您可以利用 从 token 派生出的 CSS 变量来构建自己的样式。
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
```less
|
|
4973
|
-
.example {
|
|
4974
|
-
background: var(--sps-color-bg-base);
|
|
4975
|
-
color: var(--sps-color-pink);
|
|
4976
|
-
}
|
|
4977
|
-
// 提示:您可以将 'sps' 替换为您自己的前缀
|
|
4978
|
-
```
|
|
4979
|
-
|
|
4980
|
-
|
|
4981
|
-
|
|
4982
|
-
|
|
4983
|
-
### 1.0.21
|
|
4984
|
-
`2025-12-25`
|
|
4985
|
-
|
|
4986
|
-
##### Changed
|
|
4987
|
-
|
|
4988
|
-
- AlertDialog 组件:定位距离顶部的默认高度调整为当前窗口高度的 36%
|
|
4989
|
-
- Table 组件:表格行 hover 背景色修改为 `color-bg-layout` 颜色变量;表格行选中背景色修改为 `color-primary-bg-hover` 颜色变量
|
|
4990
|
-
- Select 组件:多选模式的选中项背景色调整
|
|
4991
|
-
- 主题色变量更新:,
|
|
4992
|
-
- bailianDarkTheme:添加 `"colorLinkHover": "#857DE3"`
|
|
4993
|
-
- bailianTheme:添加 `"colorLinkHover": "#8080FF"`
|
|
4994
|
-
- carbonDarkTheme:修改 `"colorTextOnPrimary": "#ffffff"`
|
|
4995
|
-
|
|
4996
|
-
##### Fixed
|
|
4997
|
-
|
|
4998
|
-
- Slider 组件:水平滑动条组件取消默认左右两边的外边距 margin,操作按钮 handle 在最左侧与最右侧不超出滑动轨道宽度
|
|
4085
|
+
访问 [Icon Library](https://sparkdesign.agentscope.io/#/resources/icons) 查看全部 Icon
|