- 安装
npm install lark-filter-modal
-
导入库
import { useFilterModal } from 'lark-filter-modal/react'
-
具体使用参考:
import { FC, useState } from 'react';
// 导入库
import { useFilterModal } from 'lark-filter-modal/react';
export const ConfigPanel: FC<{ myTableId: string }> = ({ myTableId }) => {
const [myFilterInfo, setMyFilterInfo] = useState<any>();
const { openFilterModal } = useFilterModal({
saveCallback: (filterInfo) => {
// 保存后回调
setMyFilterInfo(filterInfo);
},
cancelCallback: () => {
// 取消后回调
// console.log('取消回调');
},
});
return (
<div>
<div onClick={() => openFilterModal({ tableId: myTableId, filterInfo: myFilterInfo })}>筛选数据</div>
{myFilterInfo?.conditions?.length > 0 && <div>已选:{myFilterInfo?.conditions?.length} 个条件</div>}
</div>
);
};
一个 hook,在调用时,传入 savaCallback 和 cancelCallback 两个回调函数,分别在保存和取消时执行。
interface IModalPropsType {
// 点击保存按钮的回调函数
saveCallback: (filterInfo: IFilterInfo) => void;
// 点击取消按钮的回调函数
cancelCallback?: () => void;
}
useFilterModal: (modalProps: modalPropsType) => {
openFilterModal;
};
打开弹窗事件
interface IExternalParams {
// 表格 id
tableId: string;
// 过滤条件数据
filterInfo: IFilterInfo;
}
openFilterModal: (params: IExternalParams) => void;