ahooks表格搜索条件、分页器参数做缓存优化

1、所需引入

import { useAntdTable } from 'ahooks';

2、搜索组件:

<Table

            className="mt-2"

            bordered

            rowSelection={rowSelection}

            columns={columns}

            scroll={{ y: Number(sessionStorage?.getItem('bodyHeight')) - 270 }}

            getPopupContainer={(triggerNode: { parentElement: any }) => triggerNode.parentElement || document.body}

            {...tableProps}

            pagination={{

              ...tableProps.pagination,

              showTotal: (e) => `共计${e}条记录`,

            }}

            rowKey="taskId"

          />

<SearchBarMore

            form={form}

            option={searchConfig}

            onSearch={submit}

            onClear={reset}

            placeholder="输入员工姓名、工号或项目名称"

          />

3、业务逻辑部分:

const getTableData = ({ current, pageSize, filters }: any, formData: any) => {

    if (filters) setFilteredValue(filters[2]);

    if (form?.getFieldsValue(true)?.tabIndex) setDefaultValue(form?.getFieldsValue(true)?.tabIndex);

    let paramsele = {

      isFull: form?.getFieldsValue(true)?.tabIndex === 'b' ? 2 : 1,

      acceptName: form?.getFieldsValue(true)?.acceptName || '',

      projectCodes: form?.getFieldsValue(true)?.projectCode?.toString() || '',

      submitName: form?.getFieldsValue(true)?.submitName || '',

      organizationCode: form?.getFieldsValue(true)?.organizationCode || '',

      cityName: form?.getFieldsValue(true)?.cityName || '',

      status: filters ? filters[2]?.toString() : '',

      current: current,

      pageSize: pageSize,

    };

    return TaskManageAPI.taskManageFlowQuery(cleanObject(paramsele)).then((res: any) => {

      if (res.code !== 200) {

        message.error(res.message);

        return {

          total: 0,

          list: [],

        };

      }

      setTotal(res.result?.total);

      return {

        total: res.result.total,

        list: res.result.records,

      };

    });

  };

  const { tableProps, search } = useAntdTable(getTableData, {

    form,

    cacheKey: 'fastDelivery-asset',

  });

  const { submit, reset } = search || {};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值