CheckCard 多选卡片
集合多种相关联说明信息,并且可被选择的卡片。特点:
- ① 可容纳多种相关联说明信息,如标题、描述、图片、标签等
- ② 有明显边界
- ③ 有明显选中态
何时使用
- 需要展示被选择对象的多种说明信息时
- 被选择对象的数量不多时
代码演示
基本使用
最常用的选项卡示例,包括头像,标题,描述等部分,可被选择。
示例一
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念。
CheckCard Props 说明:
- avatar: 卡片头像,可以是图片 URL 或 React 节点
- title: 卡片标题,可以是字符串或 React 节点
- description: 卡片描述信息,可以是字符串或 React 节点
- onChange: 选中状态改变时的回调函数,参数为 checked(布尔值)
- defaultChecked: 默认是否选中,布尔值
- onClick: 点击卡片时的回调函数
- checked: 受控的选中状态,布尔值
- disabled: 是否禁用,布尔值
- size: 卡片尺寸,可选值:'default' | 'small' | 'large'
Card A
选项一
Card B
选项二
Card C
选项三,这是一个不可选项
CheckCard.Group Props 说明:
- onChange: 选中值改变时的回调函数,参数为选中的 value
- defaultValue: 默认选中的值
- value: 受控的选中值
- multiple: 是否支持多选,默认为 false(单选)
- children: CheckCard 子组件
CheckCard 在 Group 中的 Props:
- value: 选项的值,用于标识该选项
- title: 卡片标题
- description: 卡片描述
- disabled: 是否禁用该选项
Card A
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念
Card B
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念
Card A
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念
Card B
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念
CheckCard.Group 多选模式 Props 说明:
- multiple: 设置为 true 启用多选模式,默认为 false(单选)
- onChange: 选中值改变时的回调函数,多选模式下参数为数组
- defaultValue: 默认选中的值,多选模式下为数组格式
- value: 受控的选中值,多选模式下为数组格式
- children: CheckCard 子组件
多选模式特点:
- 返回值: onChange 回调返回选中值的数组
- 默认值: defaultValue 需要传入数组格式
- 样式: 可以通过 ConfigProvider 自定义主题色
不同尺寸
配置 size 尺寸大小,当前可选 large,default,small,不同尺寸仅宽度不同。
Card title
This is the description
CheckCard Size Props 说明:
- size: 卡片尺寸,可选值:'large' | 'default' | 'small'
- title: 卡片标题
- description: 卡片描述信息
Size 尺寸说明:
- large: 大尺寸,适合重要内容的展示
- default: 默认尺寸,最常用的尺寸
- small: 小尺寸,适合紧凑布局
动态切换:
- Radio.Group: 使用单选按钮组来动态切换 size 属性
- useState: 使用 React Hook 管理 size 状态
当然你也可以通过 style 或 className 自定义卡片大小。
自定义尺寸
Card title
This is the description
CheckCard 自定义样式说明:
- style: 自定义样式对象,可以覆盖默认样式
- title: 卡片标题
- description: 卡片描述信息
Style 属性说明:
- width: 卡片宽度,可以是数字(像素)或字符串
- height: 卡片高度,可以是数字(像素)或字符串
- backgroundColor: 背景颜色
- border: 边框样式
- borderRadius: 圆角半径
- padding: 内边距
- margin: 外边距
自定义样式特点:
- 优先级: style 属性会覆盖组件的默认样式
- 响应式: 可以使用媒体查询实现响应式样式
- 主题适配: 可以结合 CSS 变量实现主题切换
- 灵活控制: 可以精确控制卡片的尺寸和外观
使用建议:
- 固定尺寸: 使用 width 和 height 设置固定尺寸
- 百分比布局: 使用百分比值实现响应式布局
- 主题定制: 结合 CSS 变量实现主题定制
- 动画效果: 可以添加 transition 等动画效果
表单中使用
CheckCard 可以和表单组件一起使用,这里给出演示示例。
CheckCard 与 Form 集成说明:
- Form.Item: 将 CheckCard.Group 包装在 Form.Item 中作为表单控件
- name: Form.Item 的 name 属性用于标识表单字段
- value: CheckCard 的 value 属性作为选项值
Form 相关 Props:
- form: Form 实例,通过 Form.useForm() 创建
- onFinish: 表单提交完成时的回调函数
- layout: 表单布局方式,'vertical' 表示垂直布局
CheckCard.Group 在表单中的特点:
- 自动绑定: 自动与 Form 的 name 字段绑定
- 值收集: 选中的 CheckCard 的 value 会自动收集到表单数据中
- 验证支持: 支持 Form 的验证规则
- 样式适配: 可以通过 style 属性适配表单布局
Avatar 组件 Props:
- src: 头像图片地址
- size: 头像尺寸,'large' 表示大尺寸
组合样式
头像,标题,描述区域可以自由组合或者单独呈现,组件会为你调整为最合适的对齐方式。
只有图片时
只有图片和描述时
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念。
只有标题和描述时
示例
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念。
只有标题和图片
示例
只有标题
示例
只有描述时
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念。
CheckCard 属性组合说明:
- avatar: 卡片头像,可以是图片 URL 或 React 节点
- title: 卡片标题,可以是字符串或 React 节点
- description: 卡片描述信息,可以是字符串或 React 节点
属性组合效果:
- 只有 avatar: 显示头像,适合图标展示
- avatar + description: 头像和描述组合,适合产品介绍
- title + description: 标题和描述组合,适合内容展示
- title + avatar: 标题和头像组合,适合品牌展示
- 只有 title: 仅显示标题,适合简单标识
- 只有 description: 仅显示描述,适合说明文字
布局特点:
- 自适应布局: 根据提供的属性自动调整布局
- 内容居中: 单个属性时内容会自动居中显示
- 响应式: 在不同屏幕尺寸下保持良好的显示效果
- 灵活组合: 支持任意属性的组合使用
使用建议:
- 图标卡片: 使用只有 avatar 的组合
- 产品卡片: 使用 avatar + title + description 组合
- 内容卡片: 使用 title + description 组合
- 品牌卡片: 使用 title + avatar 组合
自定义头像
你可 以通过 avatar 属性自定义头像区域。
示例标题
CheckCard Avatar Props 说明:
- avatar: 卡片头像,可以是图片 URL 字符串或 React 节点
- title: 卡片标 题
Avatar 组件 Props:
- style: 头像样式对象,可以设置背景色等
- icon: 头像图标,可以是 Ant Design 图标组件
- size: 头像尺寸,可选值:'large' | 'default' | 'small'
- src: 头像图片地址(字符串形式)
Avatar 使用方式:
- 字符串: 直接传入图片 URL,如 avatar="https://example.com/image.jpg"
- 组件: 传入 Avatar 组件,可以自定义样式和图标
- 图标: 使用 Ant Design 图标作为头像内容
自定义标题
你可以通过 title 属性自定义标题区域。
示例blue
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念
标题内容过长会自动进行省略,标题内容过长会自动进行省略
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念
CheckCard Title Props 说明:
- title: 卡片标题,可以是字符串或 React 节点
- description: 卡片描述信息
Title 使用方式:
- 字符串: 直接传入字符串,过长会自动省略
- 组件: 传入 React 节点,可以包含图标、标签等复杂内容
复杂 Title 示例:
- 图标: 使用 AppstoreOutlined 等 Ant Design 图标
- 文本: 使用 span 标签包装文本内容
- 标签: 使用 Tag 组件添加状态标识
- 布局: 使用 flexbox 布局对齐多个元素
样式说明:
- 自动省略: 字符串形式的 title 过长时会自动省略
- 自定义样式: 组件形式可以完全控制样式和布局
- 响应式: 支持响应式布局,在不同屏幕尺寸下自适应
自定义描述
描述区域可通过 description 自定义 React 节点。
默认描述区域不会进行折行
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念。查看详情
你可以通过排版组件进行省略
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念。
CheckCard Description Props 说明:
- description: 卡片描述信息,可以是字符串或 React 节点
- title: 卡片标题
- avatar: 卡片头像
Description 使用方式:
- 字符串: 直接传入字符串,默认不会折行
- 组件: 传入 React 节点,可以包含链接、排版组件等
复杂 Description 示例:
- 链接: 在描述中添加可点击的链接,使用 stopPropagation 阻止事件冒泡
- 排版组件: 使用 Typography.Paragraph 组件控制文本显示
- 省略处理: 使用 ellipsis 属性控制文本省略行数
Typography.Paragraph Props:
- ellipsis: 省略配置,可以设置 rows(行数)等属性
- rows: 显示的行数,超出部分会省略
- expandable: 是否可展开,布尔值
事件处理:
- stopPropagation: 阻止 事件冒泡,避免触发卡片的点击事件
- preventDefault: 阻止默认行为,如链接跳转
默认选中
通过配置 defaultChecked 属性为 true 来配置选项默认被选中。
示例二
CheckCard DefaultChecked Props 说明:
- defaultChecked: 默认选中状态,布尔值,组件初始化时生效
- onChange: 选中状态改变时的回调函数
- avatar: 卡片头像
- title: 卡片标题
DefaultChecked 特点:
- 非受控组件: 使用 defaultChecked 时,组件内部管理选中状态
- 初始化生效: 只在组件首次渲染时生效,后续状态由组件内部管理
- 用户可交互: 用户可以通过点击改变选中状态
- 状态反馈: 通过 onChange 回调获取状态变化
OnChange 回调:
- 参数: checked(布尔值),表示当前选中状态
- 触发时机: 用户点击卡片时触发
- 用途: 可以用于记录用户选择、触发其他操作等
与 Checked 的区别:
- defaultChecked: 非受控,组件内部管理状态
- checked: 受控,由外部状态管理
- 使用场景: defaultChecked 适合简单场景,checked 适合复杂状态管理
使用建议:
- 简单选择: 使用 defaultChecked 实现简单的选择功能
- 状态同步: 使用 onChange 回调同步状态到外部
- 默认选中: 设置 defaultChecked= 实现默认选中
操作栏
配置 extra 为卡片添加操作栏。
示例一
选择一个由流程编排提供的典型用户案例,可以从中学习到流程编排很多设计理念。
CheckCard Extra Props 说明:
- extra: 卡片右上角操作区域,可以是字符串或 React 节点
- title: 卡片标题
- description: 卡片描述信息
- avatar: 卡片头像
Extra 使用方式:
- 字符串: 直接传入字符串,显示简单文本
- 组件: 传入 React 节点,可以包含下拉菜单、按钮等复杂操作
Dropdown 组件 Props:
- placement: 下拉菜单出现位置,如 'top'
- menu: 菜单配置对象
- children: 触发下拉菜单的元素
Menu 配置:
- onClick: 菜单项点击回调,参数包含 domEvent
- items: 菜单项数组,每个项包含 label 和 key
- label: 菜单项显示文本
- key: 菜单项唯一标识
事件处理:
- stopPropagation: 阻止事件冒泡,避免触发卡片的点击事件
- domEvent: 原生 DOM 事件对象,用于阻止默认行为
组件 Loading
通过配置 loading 属性为 true 来配置内容在加载中。
CheckCard Loading Props 说明:
- loading: 是否显示加载状态,布尔值
Loading 状态特点:
- 骨架屏: 显 示骨架屏效果,模拟内容加载
- 禁用交互: 加载状态下卡片不可点击
- 视觉反馈: 提供明确的加载状态指示
- 自动布局: 保持与正常状态相同的布局结构
使用场景:
- 数据加载: 异步获取卡片数据时显示
- 网络请求: 等待 API 响应时显示
- 初始化: 组件初始化过程中显示
- 状态切换: 从一种状态切换到另一种状态时显示
与其他属性的组合:
- loading + title: 加载状态下仍可显示标题
- loading + avatar: 头像区域显示骨架屏
- loading + description: 描述区域显示骨架屏
最佳实践:
- 合理时机: 在真正需要加载时使用,避免过度使用
- 用户体验: 提供清晰的加载状态反馈
- 性能考虑: 避免不必要的加载状态切换
纯图片选项
通过仅仅配置 cover 属性可以让你的选项成为一个纯图片选项。
CheckCard Cover Props 说明:
- cover: 卡片封面,可以是图片 URL 字符串或 React 节点
Cover 使用方式:
- 字符串: 直接传入图片 URL,会自动渲染为 img 标签
- 组件: 传入 img 标签或其他 React 节点,可以自定义样式和属性
Img 标签 Props:
- alt: 图片的替代文本,用于无障碍访问
- height: 图片高度,可以是数字或字符串
- src: 图片源地址
- width: 图片宽度,可以是数字或字符串
- style: 图片样式对象
Cover 特点:
- 自动适配: 字符串形式的 cover 会自动适配卡片宽度
- 自定义样式: 组件形式可以完全控制图片的样式和属性
- 响应式: 支持响应式布局,图片会随卡片大小调整
选项不可用
通过配置 disabled 属性配置选项不可用。
部分不可用
Card title
This is the description
Card title
This is the description
Card title
This is the description
整体不可用
Card A
选项一
Card B
选项二
CheckCard Disabled Props 说明:
- disabled: 是否禁用卡片,禁用后无法点击和选择
- defaultChecked: 默认选中状态,即使禁用也可以设置默认选中
- title: 卡片标题
- description: 卡片描述信息
- avatar: 卡片头像
CheckCard.Group Disabled Props:
- disabled: 禁用整个组,所有子卡片都会被禁用
- defaultValue: 默认选中的值
禁用状态说明:
- 单个禁用: 在 CheckCard 上设置 disabled 属性
- 组级禁用: 在 CheckCard.Group 上设置 disabled 属性
- 默认选中: 禁用的卡片仍然可以设置 defaultChecked
选项列表
CheckCard.Group 支持通过 options 属性配置化来列表展示多个选项。
🍎 Apple
🍐 Pear
🍊 Orange
Fruit
🍎 Apple
🍐 Pear
🍊 Orange
🍊 Orange
🍐 Pear
🍎 Apple
CheckCard.Group Options Props 说明:
- options: 选项配置,可以是字符串数组或对象数组
- size: 卡片尺寸,可选值:'large' | 'default' | 'small'
- loading: 是否显示加载状态,布尔值
- defaultValue: 默认选中的值
Options 配置方式:
- 字符串数组: ['🍎 Apple', '🍐 Pear', '🍊 Orange'],自动生成 CheckCard
- 对象数组: 包含 title、value、children 等属性的对象
- 子组件方式: 直接使用 CheckCard 子组件
Option 对象属性:
- title: 选项标题,显示文本
- value: 选项值,用于标识 和表单绑定
- children: 子选项数组,支持嵌套结构
- description: 选项描述信息
- avatar: 选项头像
Loading 状态:
- loading: 设置为 true 时显示加载动画
- 适用场景: 数据加载中、异步操作等
- 视觉效果: 卡片会显示骨架屏或加载动画
使用建议:
- 简单选项: 使用字符串数组或简单对象数组
- 复杂选项: 使用 CheckCard 子组件方式
- 嵌套结构: 使用 children 属性创建分组
应用列表示例
这里展示在实际 AiDesk 中图像算法选择的使用示例。
图像分类
这是一段关于该算法的说明
物体检测
这是一段关于该算法的说明
OCR自定义
这是一段关于该算法的说明
OCR
这是一段关于该算法的说明
视频分类
这是一段关于该算法的说明
关键点检测
这是一段关于该算法的说明
CheckCard.Group Options 列表渲染说明:
- options: 数据源数组,每个元素会被渲染为一个 CheckCard
- dataSource: 包含多个选项数据的数组
Option 对象属性:
- title: 卡片标题,显示文本
- avatar: 卡片头像,可以是 React 节点
- description: 卡片描述信息
- value: 选项值,用于标识和 表单绑定
Avatar 组件 Props:
- size: 头像尺寸,数字值(像素)
- shape: 头像形状,'square' 表示方形
- src: 头像图片地址
列表渲染特点:
- 自动布局: 根据容器宽度自动排列卡片
- 响应式: 在不同屏幕尺寸下自动调整布局
- 统一样式: 所有卡片使用相同的样式配置
- 批量操作: 支持批量选择和操作
使用场景:
- 算法选择: 如示例中的机器学习算法选择
- 产品展示: 展示多个产品选项
- 功能选择: 选择不同的功能模块
- 配置选择: 选择不同的配置选项
最佳实践:
- 数据结构: 保持数据结构的统一性和一致性
- 性能优化: 大量数据时考虑虚拟滚动
- 用户体验: 提供清晰的视觉层次和交互反馈
布局
CheckCard.Group 内嵌 CheckCard 并与 Grid 组件一起使用,可以实现更灵活的布局。
Card A
This is the description
Card B
This is the description
Card C
This is the description
CheckCard 与栅 格系统集成说明:
- Row: 行容器,用于包裹 Col 组件
- Col: 列容器,用于控制 CheckCard 的布局
- span: 列宽度,24 栅格系统中的宽度值
CheckCard.Group Props:
- style: 样式对象,设置容器宽度为 100%
- size: 卡片尺寸,'small' 表示小尺寸
Row 组件 Props:
- gutter: 栅格间隔,可以是数字或数组
- justify: 水平排列方式,如 'start' | 'end' | 'center'
- align: 垂直排列方式,如 'top' | 'middle' | 'bottom'
Col 组件 Props:
- span: 列宽度,24 栅格系统中的宽度值(1-24)
- offset: 列偏移量,用于调整列位置
- xs/sm/md/lg/xl: 响应式断点,不同屏幕尺寸下的宽度
栅格布局特点:
- 24 栅格: 一行分为 24 列,span=8 表示占 8/24 = 1/3
- 响应式: 支持不同屏幕尺寸的响应式布局
- 自动换行: 超出 24 栅格的列会自动换行
- 间距控制: 通过 gutter 属性控制列间距