From e26a08269c24077cdac7ca3992fc068edd5971aa Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 12 五月 2025 15:10:30 +0800
Subject: [PATCH] #AGV站点绑定

---
 rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx |   69 +++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 18 deletions(-)

diff --git a/rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx b/rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx
index 6b6c39e..281f83e 100644
--- a/rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx
+++ b/rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx
@@ -37,11 +37,10 @@
     ListContextProvider,
     useList,
     Toolbar,
-    SingleFieldList,
 } from 'react-admin';
 
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import { Box, Typography, Card, Stack, DialogContent, DialogTitle, DialogActions, Dialog } from '@mui/material';
+import { Box, Typography, Card, Stack, DialogContent, DialogTitle, DialogActions, Dialog, Chip, ListItem, Paper } from '@mui/material';
 import { styled } from '@mui/material/styles';
 import DialogCloseButton from "../../components/DialogCloseButton";
 import request from '@/utils/request';
@@ -131,7 +130,6 @@
                             <NumberField source="waveId" label="table.field.waveItem.waveId" />
                             <TextField source="waveCode" label="table.field.waveItem.waveCode" />
                             <TextField source="orderCode" label="table.field.waveItem.orderCode" />
-                            {/* <TextField source="maktx" label="table.field.waveItem.matnrName" /> */}
                             <NumberField source="matnrId" label="table.field.waveItem.matnrId" />
                             <TextField source="matnrCode" label="table.field.waveItem.matnrCode" />
                             <TextField source="batch" label="table.field.waveItem.batch" />
@@ -143,22 +141,16 @@
                             <NumberField source="anfme" label="table.field.waveItem.anfme" />
                             <NumberField source="workQty" label="table.field.waveItem.workQty" />
                             <NumberField source="qty" label="table.field.waveItem.qty" />
+                            <NumberField source="stockQty" label="table.field.waveItem.stockQty" />
                             <WrapperField cellClassName="opt" label="table.field.waveItem.stockLocs">
-                                <ArrayField source="stockLocs" stockLocs="table.field.waveItem.stockLocs">
-                                    <SingleFieldList linkType={false}>
-                                        <ChilpField source="" size="small"></ChilpField>
-                                    </SingleFieldList>
-                                </ArrayField>
-                                {/* <NumberField source="anfme" label="table.field.waveItem.stockLocs" /> */}
-                                {/* <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
-                                <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
+                                <TagsField />
                             </WrapperField>
                         </StyledDatagrid>
                     </ListContextProvider>
                 </DialogContent>
                 <DialogActions>
                     <Toolbar sx={{ width: '100%', justifyContent: 'end' }} >
-                        <GenerateTaskButton record={[record?.id]} />
+                        <GenerateTaskButton record={record?.id} dataSource={data} setOpen={setOpen}/>
                     </Toolbar>
                 </DialogActions>
             </Dialog>
@@ -172,15 +164,56 @@
     const refresh = useRefresh();
     const notify = useNotify();
     const redirect = useRedirect();
+    const translate = useTranslate();
+    const { locs, setLocs } = useState([]);
     const generateTask = async () => {
-        const res = await request.post(`/wave/public/task`, { ids: record?.record });
-        if (res?.data?.code === 200) {
-            notify(res.data.msg);
-            redirect("/task")
+        record?.dataSource.map(item => {
+            const loc = JSON.parse(item.stockLocs);
+            if (loc != undefined && loc.length > 0) {
+                setLocs(...loc)
+            }
+        })
+        if (locs == undefined || locs.length < 1) {
+            notify(translate('request.error.stock'))
         } else {
-            notify(res.data.msg);
+            const res = await request.post(`/wave/public/task`, { wave: record?.record, waveItem: record?.dataSource });
+            if (res?.data?.code === 200) {
+                record.setOpen(false)
+                notify(res.data.msg);
+                redirect("/task")
+            } else {
+                notify(res.data.msg);
+            }
+            refresh();
         }
-        refresh();
     }
     return (<Button variant="contained" label={"ra.action.save"} onClick={generateTask}></Button>)
+}
+
+const TagsField = () => {
+    const record = useRecordContext();
+    const translate = useTranslate();
+    const locs = JSON.parse(record.stockLocs);
+    if (locs == undefined || locs.length < 1) {
+        return (
+            <>
+                <ListItem>
+                    <Chip color="error" label={translate("common.action.stockError")} variant="outlined" />
+                </ListItem>
+            </>
+        )
+    } else {
+        return (
+            <>
+                {locs.map((data) => {
+                    return (
+                        <ListItem key={data?.id}>
+                            <Chip label={data?.locCode} />
+                        </ListItem>
+                    )
+                })}
+            </>
+        )
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.1