From 3e36f73770677e756826df1b5824c8e89769659c Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 23 七月 2025 15:27:10 +0800 Subject: [PATCH] 盘点功能优化 --- rsf-admin/src/page/orders/check/CheckOrderPub.jsx | 192 ----------------------------------------------- 1 files changed, 3 insertions(+), 189 deletions(-) diff --git a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx index 1a0c75a..1947840 100644 --- a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx +++ b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx @@ -15,6 +15,7 @@ Form, useRefresh, useRedirect, + TextInput, } from 'react-admin'; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE, DEFAULT_TYPE } from '@/config/setting'; import { styled } from '@mui/material/styles'; @@ -25,7 +26,7 @@ import ConfirmButton from '../../components/ConfirmButton'; import { Delete, Edit, Add } from '@mui/icons-material'; import CheckOrderSiteDialog from "./CheckOrderSiteDialog"; -import { map } from "lodash"; +import CheckPreviewTable from "./CheckPreviewTable"; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -37,12 +38,7 @@ '& .column-maktx': { width: 200 }, - mt: '60px' - // '& .RaBulkActionsToolbar-toolbar': { - // display: 'none' - // } - })); const CheckOrderPub = (props) => { @@ -73,8 +69,6 @@ const getLocs = async (ids) => { const { data: { code, data, msg } } = await request.post('/check/locs/' + ids); if (code === 200) { - console.log('----->'); - console.log(data); setRows(data) const matnrs = selectedMatnr.filter(item => data.some(bigData => bigData.matnrCode === item)); // setSelectedMatnr(matnrs) @@ -213,7 +207,7 @@ <Grid item xl={6.3} gap={2}> <Card sx={{ minHeight: 1050, height: 'calc(100% - 10px)', width: '100%' }}> <Box> - <PreviewTable + <CheckPreviewTable rows={rows} gridRef={gridRef} setRows={setRows} @@ -242,186 +236,6 @@ </> ); } - -const PreviewTable = ({ rows, gridRef, setRows, record, selectedIds, setSelectedIds, setDialog, formData }) => { - gridRef.current = useGridApiRef(); - const translate = useTranslate(); - - useEffect(() => { - if (selectedIds.length > 0) { - console.log(selectedIds); - } - }, [selectedIds]) - - const baseColumns = [ - { field: 'locCode', headerName: '搴撲綅', width: 110 }, - { field: 'barcode', headerName: '瀹瑰櫒', width: 120 }, - { field: 'matnrCode', headerName: '鐗╂枡缂栫爜', width: 120 }, - { field: 'batch', headerName: '鎵规', width: 90 }, - { field: 'unit', headerName: '鍗曚綅', width: 60 }, - { - field: 'anfme', headerName: '搴撳瓨鏁伴噺', width: 110, - renderCell: (params) => ( - <OutStockAnfme value={params.value} /> - ) - }, - { - field: 'siteNo', - headerName: '鍑哄簱鍙�', - width: 90, - type: 'singleSelect', - editable: true, - renderCell: (params) => ( - <OutStockSiteNo value={params.value} /> - ), - renderEditCell: (params) => ( - <OutStockSite {...params} /> - ), - }, - ] - - const optAction = { - field: 'actions', - type: 'actions', - headerName: translate('common.field.opt'), - with: 120, - getActions: (params) => [ - <GridActionsCellItem - icon={<Delete />} - label="Delete" - onClick={() => handleDelete(params.row, rows, setRows)} - />, - ] - } - - const columns = (formData.waveId == 15 || formData.waveId == 16) ? [...baseColumns] : [...baseColumns, optAction]; - - /** - * 鍒犻櫎浜嬩欢 - * @param {*} params - */ - const handleDelete = (params, rows, setRows) => { - const outRows = rows.filter(row => { - return row.id !== params.id - }) - setRows(outRows) - } - - const OutStockAnfme = React.memo(function OutStockAnfme(props) { - const { value } = props; - return ( - value > 0 ? - <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> - <span>{value}</span> - </Box> - : - <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> - <span style={{ color: 'red' }}>{translate('common.edit.title.insuffInventory')}</span> - </Box> - ); - }); - - const OutStockSiteNo = React.memo(function OutStockSiteNo(props) { - const { value } = props; - if (!value) { - return null; - } - return ( - <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> - <span>{value}</span> - </Box> - ); - }); - - const CustomToolBar = () => { - const selectSiteNo = () => { - setDialog(true) - } - return ( - <Box sx={{ - p: 1, - display: 'flex', - justifyContent: 'flex-end', - borderTop: '1px solid rgba(224, 224, 224, 1)' - }}> - <Button - onClick={selectSiteNo} - variant="outlined" - label="toolbar.modiftySite" - size="medium" - sx={{ mr: 1 }} /> - </Box> - ); - } - - const OutStockSite = (params) => { - const { id, field, siteNo, row: { staNos } } = params; - const apiRef = useGridApiContext(); - const handleChange = async (event) => { - await apiRef.current.setEditCellValue( - { id, field, value: event.target.value }, - event, - ); - apiRef.current.stopCellEditMode({ id, field }); - }; - - const handleClose = (event, reason) => { - if (reason === 'backdropClick') { - apiRef.current.stopCellEditMode({ id, field }); - } - }; - - return ( - <Select - value={siteNo} - onChange={handleChange} - MenuProps={{ - onClose: handleClose, - }} - sx={{ - height: '100%', - '& .MuiSelect-select': { - display: 'flex', - alignItems: 'center', - pl: 1, - }, - }} - autoFocus - fullWidth - open - > - {staNos.map((option) => { - return ( - <MenuItem - key={option} - value={option.staNo} - > - <ListItemText sx={{ overflow: 'hidden' }} primary={option.staNo} /> - </MenuItem> - ); - })} - </Select > - ) - } - - return ( - <DataGrid - storeKey={"locItemPreview"} - rows={rows} - columns={columns} - slots={{ toolbar: CustomToolBar }} - apiRef={gridRef} - checkboxSelection - disableRowSelectionOnClick - hideFooterPagination={true} // 闅愯棌鍒嗛〉鎺т欢 - hideFooter={false} - onRowSelectionModelChange={(ids) => { - setSelectedIds(ids) - }} - /> - ) -} - //鎻愪氦鎸夐挳 const SubmitButton = ({ selectedIds, setSelectedIds, rowSelectedIds, gridRef, record, setOpen, selectedMatnr }) => { -- Gitblit v1.9.1