From 2339a918ba9d8d53a9c9bb6df7a8a9a52e658547 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 10 六月 2025 12:59:20 +0800
Subject: [PATCH] 下发捃地,默认获取第一个站点
---
rsf-admin/src/page/orders/outStock/OutStockPublic.jsx | 73 ++++++++++++++++++++++++++----------
1 files changed, 53 insertions(+), 20 deletions(-)
diff --git a/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx b/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
index 5b60940..b3b7062 100644
--- a/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
@@ -1,4 +1,4 @@
-import { Box, Card, Grid, LinearProgress, Select, MenuItem, ListItemText, Tooltip } from "@mui/material";
+import { Box, Card, Grid, LinearProgress, Select, MenuItem, ListItemText, Tooltip, IconButton } from "@mui/material";
import React, { useState, useRef, useEffect, useMemo } from "react";
import {
List,
@@ -13,7 +13,6 @@
ExportButton,
BulkDeleteButton,
WrapperField,
- Toolbar,
useRecordContext,
useTranslate,
useNotify,
@@ -36,14 +35,17 @@
SimpleForm,
required,
Form,
+ useRefresh,
+ useRedirect,
} from 'react-admin';
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
import { styled } from '@mui/material/styles';
-import { DataGrid, useGridApiContext } from '@mui/x-data-grid';
+import { DataGrid, useGridApiContext, GridActionsCellItem, useGridApiRef } from '@mui/x-data-grid';
import request from '@/utils/request';
import ConfirmationNumberOutlinedIcon from '@mui/icons-material/ConfirmationNumberOutlined';
import CloseSharpIcon from '@mui/icons-material/CloseSharp';
import ConfirmButton from '../../components/ConfirmButton';
+import { Delete, Edit, Add } from '@mui/icons-material';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -60,8 +62,8 @@
const OutStockPublic = (props) => {
const { record, open, setOpen } = props;
- const dataGridRef = useRef(null);
const notify = useNotify();
+ const gridRef = useGridApiRef();
const [rows, setRows] = useState({});
const translate = useTranslate();
const [selectedIds, setSelectedIds] = React.useState([]);
@@ -91,11 +93,14 @@
[name]: value
}));
};
+
+ gridRef.current = useGridApiRef();
+
return (
<>
<Box>
<Grid sx={{ display: "flex" }} container rowSpacing={2} columnSpacing={2}>
- <Grid item xl={6} gap={2} >
+ <Grid item xl={5.7} gap={2} >
<Card>
<Form>
<ReferenceInput
@@ -124,9 +129,7 @@
empty={false}
filter={{ asnId: record?.id, deleted: 0 }}
sort={{ field: "create_time", order: "desc" }}
- actions={(
- <SelectColumnsButton preferenceKey='outStock' />
- )}
+ actions={false}
perPage={DEFAULT_ITEM_PAGE_SIZE}
>
<LinearProgress
@@ -152,12 +155,13 @@
</List>
</Card>
</Grid>
- <Grid item xl={6} gap={2}>
+ <Grid item xl={6.3} gap={2}>
<Card>
- <Box>
+ <Box sx={{ height: 500, width: '100%' }}>
<DataGrid
rows={rows}
columns={columns}
+ apiRef={gridRef}
initialState={{
pagination: {
paginationModel: {
@@ -165,17 +169,16 @@
},
},
}}
- ref={dataGridRef}
checkboxSelection
+ pageSizeOptions={[15, 25, 35, 45]}
onRowSelectionModelChange={(ids) => {
setSelectedIds(ids)
}}
- pageSizeOptions={[15, 25, 35, 45]}
/>
</Box>
<Box sx={{ textAlign: 'center' }}>
<CloseButton setOpen={setOpen} />
- <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} />
+ <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} gridRef={gridRef} />
</Box>
</Card>
</Grid>
@@ -187,12 +190,20 @@
//鎻愪氦鎸夐挳
-const SubmitButton = ({ selectedIds, setSelectedIds }) => {
- const submit = () => {
- if (selectedIds.length < 1) { return }
- console.log(selectedIds);
+const SubmitButton = ({ selectedIds, setSelectedIds, gridRef }) => {
+ const notify = useNotify();
+ const refresh = useRefresh();
+ const redirect = useRedirect();
+ const submit = async () => {
+ const items = gridRef.current?.getSortedRows();
+ const { data: { code, data, msg } } = await request.post('/outStock/generate/tasks', { items });
+ if (code == 200) {
+ refresh();
+ redirect("/task")
+ } else {
+ notify(msg);
+ }
}
-
return (
<ConfirmButton
label="toolbar.confirm"
@@ -220,14 +231,13 @@
)
}
-
const columns = [
{ field: 'id', headerName: 'ID', width: 40 },
{ field: 'locCode', headerName: '搴撲綅', width: 110 },
{ field: 'barcode', headerName: '瀹瑰櫒', width: 120 },
{ field: 'batch', headerName: '鎵规', width: 90 },
{ field: 'unit', headerName: '鍗曚綅', width: 90 },
- { field: 'workQty', headerName: '鏈鍑哄簱鏁伴噺', width: 110 },
+ { field: 'outQty', headerName: '鏈鍑哄簱鏁伴噺', width: 110 },
{
field: 'siteNo',
headerName: '鍑哄簱鍙�',
@@ -241,8 +251,31 @@
<OutStockSite {...params} />
),
},
+ {
+ field: 'actions',
+ type: 'actions',
+ headerName: '鎿嶄綔',
+ with: 120,
+ getActions: (params) => [
+ <GridActionsCellItem
+ icon={<Delete />}
+ label="Delete"
+ onClick={() => handleDelete(params.row.id)}
+ />,
+ ]
+ },
]
+/**
+ * 鍒犻櫎浜嬩欢
+ * @param {*} params
+ */
+const handleDelete = (params) => {
+ console.log(params);
+
+}
+
+
const OutStockSiteNo = React.memo(function OutStockSiteNo(props) {
const { value } = props;
if (!value) {
--
Gitblit v1.9.1