import React, { useState, useCallback, useRef } from 'react'; import { Button } from 'antd'; import { UploadOutlined } from '@ant-design/icons'; import ProTable from '@ant-design/pro-table'; import { queryTable } from '@/utils/request'; import useExport from '@/utils/hooks/useExport'; export default (props) => { const { formRef, request, expfunc,invoiceId, params = {}, toolBarRender, beforeSearchSubmit, ...leftProps } = props; // 如果 formRef 未设置, 则使用 fmRef 去代理 const fmRef = useRef(); const ref = formRef || fmRef; // 导出函数需要使用的 params const exportParams = useRef() const handleBeforSearch = (params) => { params.invoiceId=invoiceId||params.invoiceId||undefined if (typeof beforeSearchSubmit === 'function') { exportParams.current = beforeSearchSubmit(params); } else { exportParams.current = params; } return exportParams.current; } // 自动封装查询函数 const getList = useCallback(queryTable(request), [request]); // 获取导出函数 const [exporting, exportFunc] = useExport(expfunc); const handleExport = useCallback(() => { if (!exportParams.current) { const formData = ref.current ? ref.current.getFieldsValue() : {}; exportParams.current = { ...formData, ...params } } exportFunc(exportParams.current); }, [exportFunc, params]); // 添加导出按钮 const renderToolbar = useCallback(() => { const acts = []; if (toolBarRender) { acts.push(...toolBarRender()); } if (typeof expfunc === 'function') { acts.push( , ); } return acts; }, [toolBarRender, exporting, handleExport, expfunc]); return ( ); };