import { jsx as _jsx } from "react/jsx-runtime"; import React from 'react'; import { Button, message } from 'antd'; import { useRequest, useToggle } from 'ahooks'; import DownloadOutlined from '@ant-design/icons/DownloadOutlined'; import download from 'downloadjs'; export const ExportFile = (props) => { const { exportText = '导出', styleCss = { float: 'right', height: '30px', lineHeight: '30px', }, service, params, icon, type, fileName = Date.now(), } = props; const { run, loading } = useRequest(service, { manual: true, throttleWait: 10000, onSuccess(res) { if (res.message && res.success != true) { message.warning(res.message); } else { download(res, `${fileName}.${type || 'csv'}`); } }, onError(res) { message.error(res.message); }, }); function onExportFile() { run(params); } return (_jsx("div", Object.assign({ style: styleCss }, { children: _jsx(Button, Object.assign({ type: "link", onClick: onExportFile, loading: loading, icon: icon || _jsx(DownloadOutlined, {}) }, { children: exportText })) }))); };