pro-layout
ProLayout - 高级布局
-
可以根据路由信息自动生成菜单
-
提供了许多以render后缀的方法来自定义相对应位置的样式
PageContainer - 页容器
-
与ProLayout结合使用能自动配置面包屑,页面标题
-
在页面标题区域的不同位置也可以进行配置
-
对于Form表单页面来说,PageContainer可以设置footer属性将操作栏固定在页脚部分
前两者结合使用
WaterMark - 水印组件
- 当页面需要添加水印版权时,可使用WaterMark来给页面某个区域加上水印
pro-card
ProCard - 高级卡片
-
将Row、Col、Card、Tab是、等组件结合在一起
-
可以实现栅格布局、响应式布局、卡片折叠、切分布局以及配置操作项
StatisticCard - 指标卡
- 可以搭配chart图标库丰富数值内容,展示其重要信息
CheckCard - 多选卡片
-
需要选择的对象显示多种说明信息
-
显示的信息有:标题、头像、描述等,并且可以自由组合或者单独呈现
-
提供单选和多选,同时也能进行操作项的配置
pro-form
ProFormFields - 表单项
-
ProForm自带了许多的表单项,这些组件本质上是Form.Item和组件的结合,可以将它们当做一个FormItem来使用
-
支持各种的props,但是需要使用fieldProps来设置输入组件的props值
例如,ProFormText 是 FormItem + Input 的产物,可以类比于以下的代码:
const ProFormText = (props) => {
return (
<ProForm.Item {...props}>
<Input placeholder={props.placeholder} {...props.fieldProps} />
</ProForm.Item>
);
};
组件列表
组件 | 使用场景 | 例子 |
---|---|---|
ProFormText | 用于输入各类文本 | |
ProFormDigit | 用于输入数字,它自带了一个格式化(保留 2 位小数,最小值为 0),有需要你可以关掉它。 | |
ProFormText.Password | 用于输入密码 | |
ProFormTextArea | 用于输入多行文本 | |
ProFormCaptcha | 用于输入验证码, 一般需要与发送验证码接口一起使用 | |
ProFormDatePicker | 日期选择器,用于输入日期 | |
ProFormDateTimePicker | 日期+时间选择器,用于输入日期和时间 | |
ProFormDateRangePicker | 日期区间选择器用于输入一个日期区间 | |
ProFormDateTimeRangePicker | 日期+时间区间选择器,用于输入一个日期+时间的区间 | |
ProFormSelect | 选择器,支持 request 和 valueEnum 两种方式来生成子项,用于从两项 | |
ProFormTreeSelect | 树选择,支持 request 和 valueEnum 两种方式来生成子项,用于从两项以上中选择一项 | |
ProFormCheckbox | 多选框,支持 request 和 valueEnum 两种方式来生成子项 | |
ProFormRadio.Group | 单选框,支持 request 和 valueEnum 两种方式来生成子项,用于单选某项,但是可以展示出来所有选项。 | |
ProFormSlider | 滑动输入条,当用户需要在数值区间/自定义区间内进行选择时,可为连续或离散值。 | |
ProFormSwitch | 开关,用于输入互斥的两个选项,一般是 true 和 false | |
ProFormUploadButton | 按钮样式的上传文件 | |
ProFormUploadDragger | 区域的上传文件,一般用于突出上传文件的表单中 | |
ProFormMoney | 通用金额输入组件 |
ProForm - 高级表单
-
ProForm 在原来的 Form 的基础上增加一些语法糖和更多的布局设置,帮助我们快速的开发一个表单。
-
如果你想要设置默认值,请使用
initialValues
-
ProForm 的 onFinish 与 antd 的 Form 不同,是个 Promise,
-
如果想要监听某个值,建议使用
onValuesChange
布局列表
布局 | 使用场景 |
---|---|
ProForm | 标准 Form,增加了 onFinish 中自动 loading 和 根据 request 自动获取默认值的功能。 |
ModalForm、DrawerForm | 浮层表单,在 ProForm 的基础上增加了 trigger ,无需维护 visible 状态 |
QueryFilter | 一般用于作为筛选表单,需要配合其他数据展示组件使用 |
LightFilter | 轻量筛选,一般用于作为行内内置的筛选,比如卡片操作栏和 表格操作栏。 |
StepsForm | 分步表单,需要配置 StepForm 使用。 |
LoginForm | 登录表单,用于登录页面 |
结构化数据录入
ProFormList
-
录入结构化的多维数组数据。
-
与Form.List API相同,增加了自带的操作按钮:删除和复制,并且自带了一个
新建一行
的按钮; -
支持传入一个方法来获取到当前行的信息和快捷操作;
<ProFormList
name="users"
initialValue={[
{
useMode: 'chapter',
},
]}
creatorButtonProps={{
position: 'top',
creatorButtonText: '在建一行',
}}
creatorRecord={{
useMode: 'none',
}}
>
<ProFormSelect
key="useMode"
options={[
{
value: 'chapter',
label: '盖章后生效',
},
{
value: 'none',
label: '不生效',
},
]}
width="md"
name="useMode"
label="合同约定生效方式"
/>
</ProFormList>
ProFormFieldSet
-
录入结构化的一维数组数据。
-
可以将内部的多个 children 的值组合并且存储在 ProForm 中,并且可以通过
transform
在提交时转化。
<ProFormFieldSet
name="list"
label="组件列表"
// 支持 两种方式,type="group" 会用input.group 包裹
// 如果不配置 默认使用 space
type="group"
transform={(value: any) => ({ startTime: value[0], endTime: value[1] })}
>
<ProFormText width="md" />
<ProFormText width="md" />
<ProFormText width="md" />
</ProFormFieldSet>
ProFormDependency
-
数据依赖的相关组件
-
通过配置name属性来确定我们需要依赖哪个数据,ProFormDependency会自动处理diff并且从表单中提取相对应的值
-
name参数必须是一个数组
name:{['name']}
,如果是嵌套的结构可以这样配置name={['name', ['name2', 'text']]}
<ProFormDependency name={['name']}>
{({ name }) => {
return (
<ProFormSelect
options={[
{
value: 'chapter',
label: '盖章后生效',
},
]}
width="md"
name="useMode"
label={`与《${name}》合同约定生效方式`}
/>
);
}}
</ProFormDependency>
pro-table
ProTable - 高级表格
- ProTable可以通过进行各种配置来切换表格的样式,例如无查询表格,无ToolBar表格等
EditableProTable - 可编辑表格
- 可编辑表格 EditableProTable 与 ProTable 的功能基本相同,为了方便使用 EditableProTable 增加了一些预设,关掉了查询表单和操作栏,同时修改了 value 和 onChange 使其可以方便的继承到 antd 的 Form 中。
DragSortTable - 拖动排序表格
- 可以对表格中的每一列进行拖动排序
pro-list
ProList - 高级列表
-
基于ProTable实现,虽然ProList看上去跟Antd List一样,但是ProList的API 设计上更像 Table,除了 Table 相关的 API 以外 ProList 支持大部分 ProTable 的 API。
-
能支持编辑,展开,选择、查询功能以及卡片列表等
pro-descriptions
ProDescriptions - 高级定义列表
-
高级描述列表组件,可以提供一个更加方便快速的方案来构建描述列表
-
能够通过使用请求接口数据配合columns来定义列表,也可以使用dataSource属性配合columns来定义
-
支持编辑