skyouc
2025-04-01 875936724f2d82c6e3146f8f224bf0a26fced6c6
rsf-admin/src/page/asnOrder/AsnOrderPanel.jsx
@@ -3,7 +3,9 @@
import {
    useTranslate,
    useRecordContext,
    useNotify
    useNotify,
    useRefresh,
    useListContext,
} from 'react-admin';
import PanelTypography from "../components/PanelTypography";
import * as Common from '@/utils/common'
@@ -11,6 +13,8 @@
import request from '@/utils/request';
import debounce from 'lodash/debounce';
import { DataGrid } from '@mui/x-data-grid';
import PrintModal from './PrintModal';
import { width } from "@mui/system";
const AsnOrderPanel = () => {
    const record = useRecordContext();
    if (!record) return null;
@@ -36,21 +40,7 @@
    const debouncedHttp = useMemo(() => debounce(http, 300), []);
    const StyledTableRow = styled(TableRow)(({ theme }) => ({
        "& .MuiButtonBase-root.": {
            padding: "0px 0px",
        },
    }));
    const StyledTableCell = styled(TableCell)(({ theme }) => ({
        "& .MuiButtonBase-root": {
            padding: "0px 0px",
        },
        overflow: "hidden",
        textOverflow: "ellipsis",
        whiteSpace: "nowrap",
        maxWidth: 600,
    }));
    const columns = [
        {
@@ -69,26 +59,27 @@
            field: 'poDetlCode',
            headerName: translate('table.field.asnOrderItem.poDetlCode')
        },
        {
            field: 'matnrId',
            headerName: translate('table.field.asnOrderItem.matnrId')
        },
        // {
        //     field: 'matnrCode',
        //     headerName: translate('table.field.asnOrderItem.matnrCode')
        // },
        {
            field: 'maktx',
            headerName: translate('table.field.asnOrderItem.maktx')
            headerName: translate('table.field.asnOrderItem.maktx'),
            width: 200,
        },
        {
            field: 'anfme',
            headerName: translate('table.field.asnOrderItem.anfme')
            headerName: translate('table.field.asnOrderItem.purQty')
        },
        {
            field: 'stockUnit',
            headerName: translate('table.field.asnOrderItem.stockUnit')
        },
        {
            field: 'purQty',
            headerName: translate('table.field.asnOrderItem.purQty')
        },
        // {
        //     field: 'purQty',
        //     headerName: translate('table.field.asnOrderItem.purQty')
        // },
        {
            field: 'purUnit',
            headerName: translate('table.field.asnOrderItem.purUnit')
@@ -96,6 +87,10 @@
        {
            field: 'qty',
            headerName: translate('table.field.asnOrderItem.qty')
        },
        {
            field: 'splrBatch',
            headerName: translate('table.field.asnOrderItem.splrBatch')
        },
        {
            field: 'splrCode',
@@ -106,13 +101,27 @@
            headerName: translate('table.field.asnOrderItem.splrName')
        },
        {
            field: 'barcode',
            field: 'trackCode',
            headerName: translate('table.field.asnOrderItem.barcode')
        },
        {
            field: 'prodTime',
            headerName: translate('table.field.asnOrderItem.prodTime')
        },
        {
            field: 'packName',
            headerName: translate('table.field.asnOrderItem.packName')
        }]
        },
        {
            field: 'action',
            headerName: '操作',
            width: 70,
            lockPosition: 'left',
            renderCell: (params) => (
                <PrintButton rows={[params.row.id]} />
            ),
        },]
    const [selectedRows, setSelectedRows] = useState([]);
@@ -124,13 +133,6 @@
        setMaktx(value)
    }
    const wakbarcode = () => {
    }
    const wakprint = () => {
    }
    return (
@@ -143,8 +145,7 @@
                <TextField value={maktx} onChange={(e) => maktxChange(e.target.value)} label="搜索物料" variant="outlined" sx={{ width: '300px' }} />
                <div style={{ display: 'flex', gap: '10px' }}>
                    <Button variant="contained" onClick={wakbarcode}>生成条码</Button>
                    <Button variant="contained" onClick={wakprint}>打印</Button>
                    <PrintsButton rows={selectedRows} />
                </div>
            </div>
@@ -153,6 +154,7 @@
                size="small"
                rows={rows}
                columns={columns}
                disableRowSelectionOnClick
                checkboxSelection
                onRowSelectionModelChange={handleSelectionChange}
                selectionModel={selectedRows}
@@ -166,3 +168,57 @@
};
export default AsnOrderPanel;
const PrintsButton = ({ rows }) => {
    const record = useRecordContext();
    const { resource, selectedIds } = useListContext();
    const notify = useNotify();
    const refresh = useRefresh();
    const translate = useTranslate();
    const [createDialog, setCreateDialog] = useState(false);
    const modalChange = () => {
        if (rows?.length === 0) {
            notify('请选择物料');
            return;
        } else {
            setCreateDialog(true)
        }
    }
    return (
        <>
            <Button size="small" variant="contained" color="secondary" onClick={modalChange}>{translate("toolbar.batchPrint")}</Button>
            <PrintModal
                open={createDialog}
                setOpen={setCreateDialog}
                rows={rows}
            />
        </>
    )
}
const PrintButton = ({ rows }) => {
    const record = useRecordContext();
    const notify = useNotify();
    const refresh = useRefresh();
    const [createDialog, setCreateDialog] = useState(false);
    const translate = useTranslate();
    return (
        <>
            <Button size="small" variant="contained" color="secondary" onClick={() => setCreateDialog(true)}>{translate("toolbar.print")}</Button>
            <PrintModal
                open={createDialog}
                setOpen={setCreateDialog}
                rows={rows}
            />
        </>
    )
}