一个基于 React 和 Ant Design 的灵活筛选表单 component,用于快速构建具有展开/收起功能的响应式筛选界面。
查看在线文档和示例
- �� 支持展开/收起功能
- 🔄 响应式布局
- 📦 开箱即用
- 🎨 基于 Ant Design
- 💡 TypeScript 支持
- ⚡️ 轻量级设计
npm install use-antd-filter
# 或
yarn add use-antd-filter
import { FilterForm } from 'use-antd-filter';
const handleFilterChange = (filters: Record<string, string>) => {
console.log('Filters changed:', filters);
};
const filters: IFilters = [
{
label: '账单时间',
name: 'time',
renderType: 'dateRangePicker',
props: {
placeholder: ['开始时间', '结束时间'],
},
},
{
label: '所属问题',
name: 'data_type_desc',
renderType: 'select',
props: {
options: [{ label: '问题1', value: '1' }, { label: '问题2', value: '2' }],
showSearch: true,
},
},
{
label: '申请单号',
name: 'ids',
renderType: 'input',
props: {
placeholder: '支持空格或英文逗号分隔批量查询',
},
},
{
label: '状态',
name: 'statusList',
renderType: 'select',
props: {
options: [
{ value: '0', label: '暂存' },
{ value: '1', label: '询价中' },
{ value: '2', label: '审批中' },
{ value: '3', label: '下架中' },
{ value: '4', label: '出库中' },
{ value: '5', label: '运输中' },
{ value: '6', label: '已完成' },
{ value: '7', label: '已中止' },
],
placeholder: '支持多选',
mode: 'multiple',
showSearch: true,
optionFilterProp: "label"
},
},
{
label: '单号',
name: 'code',
renderType: 'input',
props: {
placeholder: '支持空格或英文逗号分隔批量查询',
},
},
];
// 或使用内置组件
const YourPage = () => {
return (
<FilterForm
filters={filters} onFilterChange={handleFilterChange}
/>
);
};
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
filters | 筛选项的集合 | [] |
[] |
defaultExpanded | 是否默认展开 | boolean |
false |
onFilterChange | 筛选条件变化时的回调 | (filters: Record<string, string>) => void |
- |
onOkText | 查询按钮文字 | string | 查询 |
onResetText | 重置按钮文字 | string | 清空 |