From 273f2e5d3941b0e720e5eabd7dba9cfc042c3267 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 17 六月 2025 17:04:53 +0800
Subject: [PATCH] 出库单生成波次功能开发

---
 rsf-admin/src/page/orders/outStock/OutOrderList.jsx |   70 +++++++++++++++++++++--------------
 1 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
index 955b074..1181459 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -39,26 +39,27 @@
   useUnselectAll,
   useRecordSelection,
 } from 'react-admin';
-import { Box, Typography, Card, Stack, Drawer } from '@mui/material';
 import { styled } from '@mui/material/styles';
-import MyCreateButton from "../../components/MyCreateButton";
-import BillStatusField from '../../components/BillStatusField';
-import ConfirmButton from '../../components/ConfirmButton';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import EditIcon from '@mui/icons-material/Edit';
-import request from '@/utils/request';
+import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined';
+import { Box, Typography, Card, Stack, Drawer } from '@mui/material';
 import DictionarySelect from "../../components/DictionarySelect";
+import BillStatusField from '../../components/BillStatusField';
+import MyCreateButton from "../../components/MyCreateButton";
+import PageEditDrawer from "../../components/PageEditDrawer";
+import ConfirmButton from '../../components/ConfirmButton';
 import ImportButton from "../../components/ImportButton";
 import DetailsIcon from '@mui/icons-material/Details';
-import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined';
-import AddIcon from '@mui/icons-material/Add';
-import OutOrderModal from "./OutOrderModal";
+import AddTaskIcon from '@mui/icons-material/AddTask';
 import PublicIcon from '@mui/icons-material/Public';
 import SelectMatnrModal from "./SelectMatnrModal";
-import AddTaskIcon from '@mui/icons-material/AddTask';
-import PageEditDrawer from "../../components/PageEditDrawer";
-import OutStockPublic from "./OutStockPublic";
+import EditIcon from '@mui/icons-material/Edit';
 import OutOrderPreview from "./OutOrderPreview";
+import AddIcon from '@mui/icons-material/Add';
+import OutStockPublic from "./OutStockPublic";
+import OutOrderModal from "./OutOrderModal";
+import request from '@/utils/request';
+import OutStockWaveDialog from "./OutStockWaveDialog";
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
   '& .css-1vooibu-MuiSvgIcon-root': {
@@ -109,19 +110,38 @@
     dictTypeCode="sys_asn_exce_status"
     alwaysOn
   />,
-
 ]
 
 const OutOrderList = (props) => {
   const translate = useTranslate();
+  const refresh = useRefresh();
+
   const [createDialog, setCreateDialog] = useState(false);
   const [manualDialog, setManualDialog] = useState(false);
+  const [selectIds, setSelectIds] = useState([]);
   const [preview, setPreview] = useState(false);
+  const [waveRule, setWaveRule] = useState(false);
   const [drawerVal, setDrawerVal] = useState(false);
   const [modalType, setmodalType] = useState(0);
   const [select, setSelect] = useState(0);
   const billReload = useRef();
   const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_business_type')) || [];
+
+  //鑾峰彇娉㈡瑙勫垯
+  const closeDialog = async (value) => {
+    setWaveRule(false)
+    refresh()
+    console.log('=====>');
+    console.log(value);
+    console.log(selectIds);
+    // const res = await request.post(`/outStock/generate/wave`, { ids: selectIds });
+    // if (res?.data?.code === 200) {
+    //   notify(res.data.msg);
+    // } else {
+    //   notify(res.data.msg);
+    // }
+  }
+
   return (
     <Box display="flex">
       <List
@@ -152,7 +172,7 @@
         <StyledDatagrid
           sx={{ width: '100%' }}
           preferenceKey='outStock'
-          bulkActionButtons={<PublicTaskButton />}
+          bulkActionButtons={<PublicTaskButton setWaveRule={setWaveRule} setSelectIds={setSelectIds} />}
           rowClick={false}
           expandSingle={true}
           omit={['id', 'createTime', 'createBy', 'memo', 'rleStatus$']}
@@ -194,9 +214,10 @@
       <OutOrderModal
         open={createDialog}
         setOpen={setCreateDialog}
-        preview={preview} 
+        preview={preview}
         setPreview={setPreview}
       />
+      <OutStockWaveDialog open={waveRule} setOpen={setWaveRule} onClose={closeDialog} />
       <OutOrderPreview open={preview} setOpen={setPreview} />
       <PageEditDrawer
         title={"toolbar.publicWorking"}
@@ -211,24 +232,16 @@
 export default OutOrderList;
 
 
-const PublicTaskButton = () => {
+const PublicTaskButton = ({ setWaveRule, setSelectIds }) => {
   const record = useRecordContext();
   const { selectedIds, onUnselectItems } = useListContext();
   const notify = useNotify();
-  const refresh = useRefresh();
   const redirect = useRedirect();
 
-  const pubClick = async (event) => {
-    event.stopPropagation();
+  const pubClick = async () => {
     onUnselectItems();
-    const res = await request.post(`/outStock/generate/wave`, { ids: selectedIds });
-    if (res?.data?.code === 200) {
-      notify(res.data.msg);
-      redirect("/wave")
-    } else {
-      notify(res.data.msg);
-    }
-    refresh();
+    setWaveRule(true);
+    setSelectIds(selectedIds)
   }
 
   return (
@@ -236,7 +249,8 @@
       onClick={pubClick}
       label={"toolbar.createWave"}
       startIcon={<PublicIcon />}
-    />);
+    />
+  );
 }
 
 const MyButton = ({ setCreateDialog, setmodalType }) => {

--
Gitblit v1.9.1