From 462a8c41fb4043017d75148873f9aa0559722ae3 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 06 六月 2025 16:25:34 +0800
Subject: [PATCH] 添加下发执行功能

---
 rsf-admin/src/page/waitPakin/WaitPakinList.jsx |   98 +++++++++++++++++++++++++++---------------------
 1 files changed, 55 insertions(+), 43 deletions(-)

diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
index 6b8f102..f8213de 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -58,15 +58,13 @@
         width: 90
     },
     '& .opt': {
-        width: 180
+        width: 210
     },
 }));
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
     <TextInput source="code" label="table.field.waitPakin.code" />,
-    <NumberInput source="ansId" label="table.field.waitPakin.ansId" />,
-    <TextInput source="asnCode" label="table.field.waitPakin.asnCode" />,
     <TextInput source="barcode" label="table.field.waitPakin.barcode" />,
     <NumberInput source="anfme" label="table.field.waitPakin.anfme" />,
     <SelectInput source="ioStatus" label="table.field.waitPakin.ioStatus"
@@ -91,7 +89,50 @@
     const translate = useTranslate();
     const [createDialog, setCreateDialog] = useState(false);
     const [siteDialog, setSiteDialog] = useState(false);
+    const [source, setSource] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
+
+    const CreateTaskButton = () => {
+        const record = useRecordContext();
+        const notify = useNotify();
+        const refresh = useRefresh();
+        const { selectedIds, onUnselectItems, data } = useListContext();
+        const rows = data.filter(map => selectedIds.includes(map.id));
+        const createTask = () => {
+            setSiteDialog(true)
+            setSource(rows)
+            onUnselectItems()
+            refresh()
+        }
+
+        return (
+            <>
+                <Button onClick={() => createTask()} label={"toolbar.createTask"}>
+                    <AddIcon />
+                </Button>
+            </>
+        )
+    }
+
+    const CreateTaskRowButton = () => {
+        const record = useRecordContext();
+        const refresh = useRefresh();
+
+        const createTask = (event) => {
+            event.stopPropagation();
+            setSiteDialog(true)
+            setSource([record])
+            refresh()
+        }
+
+        return (
+            <>
+                <Button onClick={(event) => createTask(event)} label={"toolbar.createTask"}>
+                    <AddIcon />
+                </Button>
+            </>
+        )
+    }
 
     return (
         <Box display="flex">
@@ -106,7 +147,7 @@
                     marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.waitPakin"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
@@ -120,18 +161,16 @@
             >
                 <StyledDatagrid
                     preferenceKey='waitPakin'
-                    bulkActionButtons={<Box> <Button label="ra.action.edit" onClick={() => {
-                        setSiteDialog(true)
-                    }} /> <BulkDeleteButton mutationMode={OPERATE_MODE} /></Box>}
-                    rowClick='edit'
-                    expand={false}
-                    expandSingle={true}
+                    bulkActionButtons={
+                        <>
+                            <CreateTaskButton />
+                            {/* <BulkDeleteButton mutationMode={OPERATE_MODE} /> */}
+                        </>}
+                    rowClick={false}
                     omit={['id', 'createTime', 'createBy', 'memo']}
                 >
                     <NumberField source="id" />
                     <TextField source="code" label="table.field.waitPakin.code" />
-                    {/* <NumberField source="ansId" label="table.field.waitPakin.ansId" /> */}
-                    {/* <TextField source="asnCode" label="table.field.waitPakin.asnCode" /> */}
                     <TextField source="barcode" label="table.field.waitPakin.barcode" />
                     <NumberField source="anfme" label="table.field.waitPakin.anfme" />
                     <TextField source="ioStatus$" label="table.field.waitPakin.ioStatus" sortable={false} />
@@ -142,11 +181,12 @@
                     <TextField source="memo" label="common.field.memo" sortable={false} />
                     <WrapperField cellClassName="opt" label="common.field.opt">
                         <EditButton label="toolbar.detail" sx={{ padding: '1px', fontSize: '.75rem' }} />
-                        {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
+                        <CreateTaskRowButton />
+                        <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
                     </WrapperField>
                 </StyledDatagrid>
             </List>
-            <SelectSiteModel open={siteDialog} setOpen={setSiteDialog} />
+            <SelectSiteModel open={siteDialog} setOpen={setSiteDialog} source={source} />
             <WaitPakinCreate
                 open={createDialog}
                 setOpen={setCreateDialog}
@@ -163,34 +203,6 @@
 
 export default WaitPakinList;
 
-const CreateTaskButton = () => {
-    const record = useRecordContext();
-    const [siteDialog, setSiteDialog] = useState(false);
-    const notify = useNotify();
-    const refresh = useRefresh();
-    const { selectedIds, onUnselectItems, data } = useListContext();
 
-    const createTask = () => {
-        // const rows = data.filter((item) => selectedIds.includes(item.id)) || [];
-        // const res = await request.post(`/waitPakin/merge`, rows);
-        // if (res?.data?.code === 200) {
-        //     refresh();
-        //     notify(res.data.msg);
-        // } else {
-        //     notify(res.data.msg);
-        // }
-        console.log('-------->');
-        setSiteDialog(true)
 
-    }
-    // return (
-    //     <ConfirmButton label={"toolbar.createTask"} startIcon={<TaskIcon />} onConfirm={createTask} />
-    // )
-    return (
-        <>
-            <Button onClick={() => createTask()} label={"toolbar.createTask"}>
-                <AddIcon />
-            </Button>
-        </>
-    )
-}
+

--
Gitblit v1.9.1