skyouc
2025-07-24 bfc43ca0e4683c1c0322a6cad5d5be2bc07decc3
rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
@@ -37,6 +37,7 @@
    Form,
    useRefresh,
    useRedirect,
    useRecordSelection,
} 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';
@@ -58,25 +59,56 @@
    '& .column-maktx': {
        width: 200
    },
    '& .RaBulkActionsToolbar-toolbar': {
        display: 'none'
    }
    mt: '60px'
    // '& .RaBulkActionsToolbar-toolbar': {
    //     display: 'none'
    // }
}));
const OutStockPublic = (props) => {
    const { record, open, setOpen } = props;
    const { record, open, setOpen, setManualDialog } = props;
    const notify = useNotify();
    const gridRef = useGridApiRef();
    const [rows, setRows] = useState([]);
    const [fetchRows, setFetchRows] = useState([]);
    const translate = useTranslate();
    const [rowSelectedIds, setRowSelectedIds] = useState([]);
    const [selectedMatnr, setSelectedMatnr] = useState([]);
    const [selectedIds, setSelectedIds] = useState([]);
    const [formData, setFormData] = useState({
        orderId: record?.id,
        waveId: DEFAULT_TYPE
    });
    const [formData, setFormData] = useState({ orderId: record?.id, waveId: DEFAULT_TYPE });
    const [dialog, setDialog] = useState(false);
    const [selectedValue, setSelectedValue] = useState({});
    useEffect(() => {
        if (selectedMatnr.length < 1) {
            setRows(fetchRows)
        } else {
            const mas = fetchRows.filter(item => selectedMatnr.includes(item.matnrCode));
            setRows(mas)
        }
    }, [selectedMatnr])
    const ComfirmButton = () => {
        const { data } = useListContext();
        const [selectedIds, selectionModifiers] = useRecordSelection();
        const handleRowClick = () => {
            console.log(selectedIds);
            const ids = data.filter(item => selectedIds.includes(item.id)).map(item => item.id);
            setRowSelectedIds(ids);
            const mas = data.filter(item => selectedIds.includes(item.id)).map(item => item.matnrCode);
            //设置库位信息筛选条件
            setSelectedMatnr(mas);
        }
        return (
            <Button label="toolbar.confirm" size="medium" onClick={handleRowClick} />
        )
    };
    const handleClickOpen = () => {
        setDialog(true);
@@ -85,20 +117,28 @@
    const handleClose = (value) => {
        setDialog(false);
        setSelectedValue(value);
        const newRows = rows.map(item => {
            return selectedIds.includes(item?.id) ? {
                ...item,
                siteNo: value?.site
            } : item
        })
        setRows(newRows);
        if (selectedIds.length == 0) {
            const newRows = rows.map(item => {
                return {
                    ...item,
                    siteNo: value?.site
                }
            })
            setRows(newRows);
        } else {
            const newRows = rows.map(item => {
                return selectedIds.includes(item?.id) ? {
                    ...item,
                    siteNo: value?.site
                } : item
            })
            setRows(newRows);
        }
    };
    useEffect(() => {
        if (open) {
            getWaveRule()
        }
    }, [open, formData])
        getWaveRule()
    }, [open])
    const getWaveRule = async () => {
        if (formData.waveId == null && formData.waveId == undefined) {
@@ -106,7 +146,8 @@
        }
        const { data: { code, data, msg } } = await request.post('/outStock/order/getOutTaskItems', { ...formData });
        if (code === 200) {
            setRows(data)
            // setRows(data)
            setFetchRows(data)
        } else {
            notify(msg);
        }
@@ -152,22 +193,25 @@
                                }}
                                title={"menu.outStockItem"}
                                empty={false}
                                filter={{ asnId: record?.id, deleted: 0 }}
                                filter={{ orderId: record?.id, deleted: 0 }}
                                sort={{ field: "create_time", order: "desc" }}
                                actions={false}
                                pagination={false}
                                perPage={DEFAULT_ITEM_PAGE_SIZE}
                            >
                                <LinearProgress
                                    sx={{ height: "2px", position: 'absolute', top: 0, left: 0, right: 0, }}
                                />
                                <StyledDatagrid
                                    storeKey={"outStockPublic"}
                                    preferenceKey='outStockItem'
                                    bulkActionButtons={<></>}
                                    rowClick={false}
                                    omit={['id', 'splrName', 'qty', 'poCode', 'workQty']}
                                    bulkActionButtons={<>
                                        <ComfirmButton />
                                    </>}
                                    omit={['id', 'splrName', 'qty', 'poCode',]}
                                >
                                    <NumberField source="id" />
                                    <TextField source="asnCode" label="table.field.outStockItem.asnCode" />
                                    <TextField source="asnCode" label="table.field.outStockItem.orderCode" />
                                    <TextField source="poCode" label="table.field.outStockItem.poCode" />
                                    <TextField source="matnrCode" label="table.field.outStockItem.matnrCode" />
                                    <TextField source="maktx" label="table.field.outStockItem.maktx" />
@@ -181,8 +225,8 @@
                        </Card>
                    </Grid>
                    <Grid item xl={6.3} gap={2}>
                        <Card>
                            <Box sx={{ height: 500, width: '100%' }}>
                        <Card sx={{ minHeight: 1050, height: 'calc(100% - 10px)', width: '100%' }}>
                            <Box>
                                <PreviewTable
                                    rows={rows}
                                    gridRef={gridRef}
@@ -222,7 +266,6 @@
            console.log(selectedIds);
        }
    }, [selectedIds])
    const baseColumns = [
        // { field: 'id', headerName: 'ID', width: 40 },
@@ -379,6 +422,7 @@
    return (
        <DataGrid
            storeKey={"locItemPreview"}
            rows={rows}
            columns={columns}
            slots={{ toolbar: CustomToolBar }}
@@ -393,7 +437,6 @@
        />
    )
}
//提交按钮
@@ -413,11 +456,10 @@
    }
    return (
        <ConfirmButton
            label="toolbar.confirm"
            label="toolbar.allComfirm"
            variant="contained"
            size="medium"
            onConfirm={submit}
            startIcon={<ConfirmationNumberOutlinedIcon />}
        />
    )
}