From 66790f8fb83be8783427308c2d3db7eb98951d50 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期三, 25 二月 2026 15:27:03 +0800
Subject: [PATCH] 站点初始化,复制改为当前

---
 rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx |   58 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 35 insertions(+), 23 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx b/rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx
index 882fcc8..ec224ff 100644
--- a/rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx
+++ b/rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx
@@ -96,28 +96,37 @@
         resettable
     />,
 ]
-const CopyButton = ({ setCopyRecord, setCreateDialog }) => {
-    const record = useRecordContext();
-    const translate = useTranslate();
-    if (!record) return null;
-    return (
-        <Button
-            size="small"
-            startIcon={<ContentCopyIcon fontSize="small" />}
-            sx={{ padding: '1px', fontSize: '.75rem', minWidth: 'auto' }}
-            onClick={(e) => {
-                e.stopPropagation();
-                const { id, createTime, updateTime, createBy, updateBy, createBy$, updateBy$, ...rest } = record;
-                const copied = { ...rest };
-                if (record.areaIds) copied.areaIds = [...(Array.isArray(record.areaIds) ? record.areaIds : [])];
-                if (record.containerTypes) copied.containerTypes = [...(Array.isArray(record.containerTypes) ? record.containerTypes : [])];
-                setCopyRecord(copied);
-                setCreateDialog(true);
-            }}
-        >
-            {translate('toolbar.copy')}
-        </Button>
-    );
+const CopyButton = ({ setInitCopyData, setInitDialogOpen }) => {
+  const record = useRecordContext();
+  const translate = useTranslate();
+  if (!record) return null;
+  return (
+    <Button
+      size="small"
+      startIcon={<ContentCopyIcon fontSize="small" />}
+      sx={{ padding: '1px', fontSize: '.75rem', minWidth: 'auto' }}
+      onClick={(e) => {
+        e.stopPropagation();
+        const pairs = [{ stationName: record.stationName ?? '', stationId: record.stationId ?? '' }];
+        const areaIds = Array.isArray(record.areaIds) ? [...record.areaIds] : [];
+        const containerTypes = Array.isArray(record.containerTypes) ? [...record.containerTypes] : [];
+        setInitCopyData({
+          pairs,
+          common: {
+            type: record.type ?? 0,
+            useStatus: record.useStatus ?? '',
+            areaIds,
+            containerTypes,
+            inAble: record.inAble ?? 0,
+            outAble: record.outAble ?? 0,
+          },
+        });
+        setInitDialogOpen(true);
+      }}
+    >
+      {translate('toolbar.copy')}
+    </Button>
+  );
 };
 const BasStationList = () => {
     const translate = useTranslate();
@@ -128,6 +137,7 @@
     const [areaFieldDialog2, setAreaFieldDialog2] = useState(false);
     const [copyRecord, setCopyRecord] = useState(null);
     const [initDialogOpen, setInitDialogOpen] = useState(false);
+    const [initCopyData, setInitCopyData] = useState(null);
     return (
         <Box display="flex">
             <List
@@ -238,7 +248,7 @@
                     {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */}
                     <TextField source="memo" label="common.field.memo" sortable={false} />
                     <WrapperField cellClassName="opt" label="common.field.opt">
-                        <CopyButton setCopyRecord={setCopyRecord} setCreateDialog={setCreateDialog} />
+                        <CopyButton setInitCopyData={setInitCopyData} setInitDialogOpen={setInitDialogOpen} />
                         <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
                         <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
                     </WrapperField>
@@ -254,6 +264,8 @@
             <BasStationInitModal
               open={initDialogOpen}
               setOpen={setInitDialogOpen}
+              initialData={initCopyData}
+              onClose={() => setInitCopyData(null)}
             />
             <PageDrawer
                 title='BasStation Detail'

--
Gitblit v1.9.1