From d7bb8c43b17253b46c6a466cff5545e8b4bcaad3 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 10 六月 2025 11:10:46 +0800 Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop --- 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