From 51ba2a9f70863036c720156cd8b9e0c2be08139b Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 24 三月 2026 18:37:48 +0800
Subject: [PATCH] Revert "#打印+导出"

---
 rsf-admin/src/page/components/MyExportButton.jsx |   87 ++++++++++++++++++-------------------------
 1 files changed, 36 insertions(+), 51 deletions(-)

diff --git a/rsf-admin/src/page/components/MyExportButton.jsx b/rsf-admin/src/page/components/MyExportButton.jsx
index 1e132f1..a684e47 100644
--- a/rsf-admin/src/page/components/MyExportButton.jsx
+++ b/rsf-admin/src/page/components/MyExportButton.jsx
@@ -1,4 +1,5 @@
 import * as React from "react";
+import { useCallback } from "react";
 import DownloadIcon from "@mui/icons-material/GetApp";
 import {
   Button,
@@ -7,11 +8,6 @@
   useListContext,
   useUnselectAll,
 } from "react-admin";
-import { useListReportActionParams } from "./listReport/useListReportOutput";
-import {
-  downloadBlobFile,
-  resolveReportMeta,
-} from "./listReport/listReportUtils";
 
 const MyExportButton = (props) => {
   const {
@@ -22,73 +18,62 @@
     icon = defaultIcon,
     exporter: customExporter,
     meta,
-    reportConfig,
-    onExport,
-    loading = false,
-    filename,
     ...rest
   } = props;
 
   const { filter, selectedIds, filterValues, resource, sort, total } = useListContext();
-  const { visibleColumns, params } = useListReportActionParams(reportConfig, { ids });
   const unSelect = useUnselectAll(resource);
   const dataProvider = useDataProvider();
   const notify = useNotify();
-  const handleClick = async (event) => {
-    try {
-      const hasReportConfig = Boolean(reportConfig?.resource && Array.isArray(reportConfig?.columns));
-      if (hasReportConfig) {
-        const actionParams = {
-          ...params,
-          columns: visibleColumns,
-        };
-        if (typeof onExport === "function") {
-          await onExport(actionParams, event);
-        } else {
-          const resolvedResource = reportConfig.resource || params.resource;
-          const response = await dataProvider.export(resolvedResource, {
-            sort: actionParams.sort,
-            ids: actionParams.ids,
-            filter: actionParams.filter
-              ? { ...actionParams.filterValues, ...actionParams.filter }
-              : actionParams.filterValues,
-            pagination: { page: 1, perPage: maxResults },
-            meta,
-            columns: visibleColumns,
-            reportMeta: resolveReportMeta(reportConfig, actionParams),
-          });
-          downloadBlobFile(
-            response,
-            filename || reportConfig.exportFileName || `${resolvedResource}.xlsx`,
-          );
-        }
-      } else {
-        const response = await dataProvider.export(resource, {
+  const handleClick = 
+  // useCallback(
+    (event) => {
+      dataProvider
+        .export(resource, {
           sort,
-          ids: ids ?? selectedIds,
+          ids: selectedIds,
           filter: filter ? { ...filterValues, ...filter } : filterValues,
           pagination: { page: 1, perPage: maxResults },
           meta,
+        })
+        .then((res) => {
+          const url = window.URL.createObjectURL(
+            new Blob([res.data], { type: res.headers["content-type"] }),
+          );
+          const link = document.createElement("a");
+          link.href = url;
+          link.setAttribute("download", `${resource}.xlsx`);
+          document.body.appendChild(link);
+          link.click();
+          link.remove();
+          unSelect();
+        })
+        .catch((error) => {
+          console.error(error);
+          notify("ra.notification.http_error", { type: "error" });
         });
-        downloadBlobFile(response, filename || `${resource}.xlsx`);
-      }
-      unSelect();
       if (typeof onClick === "function") {
         onClick(event);
       }
-    } catch (error) {
-      console.error(error);
-      notify("ra.notification.http_error", { type: "error" });
     }
-  };
-
-  const disabled = total === 0 || loading || (reportConfig?.columns && visibleColumns.length === 0);
+    // [
+    //   dataProvider,
+    //   filter,
+    //   filterValues,
+    //   maxResults,
+    //   notify,
+    //   onClick,
+    //   resource,
+    //   sort,
+    //   meta,
+    // ],
+  // );
 
   return (
     <Button
       onClick={handleClick}
       label={label}
-      disabled={disabled}
+      disabled={total === 0}
       {...sanitizeRestProps(rest)}
     >
       {icon}

--
Gitblit v1.9.1