From 5a38e07fd940b30eb72f81f775dea339fc1ecdc4 Mon Sep 17 00:00:00 2001 From: verou <857149855@qq.com> Date: 星期一, 31 三月 2025 15:49:22 +0800 Subject: [PATCH] feat:创建质检单 --- rsf-admin/src/page/asnOrder/AsnOrderModal.jsx | 164 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 95 insertions(+), 69 deletions(-) diff --git a/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx index ce14597..05eb781 100644 --- a/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx +++ b/rsf-admin/src/page/asnOrder/AsnOrderModal.jsx @@ -115,15 +115,13 @@ "orders": formData, "items": tabelData, } - console.log(parmas); - // const res = await request.post(`/asnOrder/items/save`, parmas); - // if (res?.data?.code === 200) { - // setOpen(false); - // refresh(); - // } else { - // notify(res.data.msg); - // } - // setOpen(false); + const res = await request.post(`/asnOrder/items/update`, parmas); + if (res?.data?.code === 200) { + setOpen(false); + refresh(); + } else { + notify(res.data.msg); + } } @@ -158,6 +156,13 @@ } } + const [selectedRows, setSelectedRows] = useState([]); + + const handleDeleteItem = () => { + const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.matnrId)); + setTableData(newTableData); + } + return ( <> <Dialog @@ -184,7 +189,7 @@ <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Form> <Grid container spacing={2}> - <Grid item xs={4}> + <Grid item md={4}> <DictSelect label={translate("table.field.asnOrder.type")} value={formData.type} @@ -196,7 +201,7 @@ </Grid> - <Grid item xs={4}> + <Grid item md={4}> <DictSelect label={translate("table.field.asnOrder.wkType")} value={formData.wkType} @@ -212,13 +217,14 @@ <Box sx={{ mt: 2 }}> <Stack direction="row" spacing={2}> <Button variant="contained" onClick={() => setCreateDialog(true)}>鏂板鐗╂枡</Button> - {asnId !== '' && <ConfirmButton label={'鍒犻櫎'} variant="outlined" color="error" onConfirm={handleDelete} />} + {/* {asnId !== '' && <ConfirmButton label={'鍒犻櫎'} variant="outlined" color="error" onConfirm={handleDelete} />} */} + <ConfirmButton label={'鍒犻櫎'} variant="outlined" color="error" onConfirm={handleDeleteItem} /> </Stack> </Box> <Box sx={{ mt: 2 }}> - <AsnOrderModalTable tabelData={tabelData} setTableData={setTableData} asnId={asnId} ></AsnOrderModalTable> + <AsnOrderModalTable tabelData={tabelData} setTableData={setTableData} asnId={asnId} selectedRows={selectedRows} setSelectedRows={setSelectedRows} ></AsnOrderModalTable> </Box> </DialogContent> <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> @@ -243,78 +249,32 @@ export default AsnOrderModal; -const AsnOrderModalTable = ({ tabelData, setTableData, asnId }) => { +const AsnOrderModalTable = ({ tabelData, setTableData, asnId, selectedRows, setSelectedRows }) => { const translate = useTranslate(); const notify = useNotify(); const [columns, setColumns] = useState([ - { - field: 'action', - headerName: '鎿嶄綔', - width: 70, - lockPosition: 'left', - renderCell: (params) => ( - <Tooltip title="Delete"> - <IconButton onClick={() => handleDelete(params.row)}> - <Delete /> - </IconButton> - </Tooltip> - ), - }, - { - field: 'matnrId', - headerName: translate('table.field.asnOrderItem.matnrId'), - minWidth: 100, - flex: 1, - editable: false, - }, { field: 'maktx', headerName: translate('table.field.asnOrderItem.maktx'), minWidth: 100, flex: 1, - editable: true, + editable: false, }, { - field: 'poDetlId', - headerName: translate('table.field.asnOrderItem.poDetlId'), - minWidth: 100, - flex: 1, - }, - { - field: 'poDetlCode', - headerName: translate('table.field.asnOrderItem.poDetlCode'), - minWidth: 100, - flex: 1, - }, - { - field: 'anfme', - headerName: translate('table.field.asnOrderItem.anfme'), - minWidth: 100, - flex: 1, - editable: true, - }, - { - field: 'stockUnit', - headerName: translate('table.field.asnOrderItem.stockUnit'), + field: 'maktxCode', + headerName: translate('table.field.asnOrderItem.maktxCode'), minWidth: 100, flex: 1, editable: false, }, { - field: 'purQty', + field: 'anfme', headerName: translate('table.field.asnOrderItem.purQty'), minWidth: 100, flex: 1, editable: true, - }, - { - field: 'purUnit', - headerName: translate('table.field.asnOrderItem.purUnit'), - minWidth: 100, - flex: 1, - editable: false, }, { field: 'splrCode', @@ -330,15 +290,66 @@ flex: 1, editable: true, }, + // { + // field: 'packName', + // headerName: translate('table.field.asnOrderItem.packName'), + // minWidth: 100, + // flex: 1, + // editable: true, + // }, + // { + // field: 'poDetlId', + // headerName: translate('table.field.asnOrderItem.poDetlId'), + // minWidth: 100, + // flex: 1, + // }, { - field: 'packName', - headerName: translate('table.field.asnOrderItem.packName'), + field: 'poDetlCode', + headerName: translate('table.field.asnOrderItem.poDetlCode'), minWidth: 100, flex: 1, - editable: true, }, + { + field: 'stockUnit', + headerName: translate('table.field.asnOrderItem.stockUnit'), + minWidth: 100, + flex: 1, + editable: false, + }, + // { + // field: 'purQty', + // headerName: translate('table.field.asnOrderItem.purQty'), + // minWidth: 100, + // flex: 1, + // editable: true, + // }, + { + field: 'purUnit', + headerName: translate('table.field.asnOrderItem.purUnit'), + minWidth: 100, + flex: 1, + editable: false, + }, + + + ]) + + const action = { + field: 'action', + headerName: '鎿嶄綔', + width: 70, + lockPosition: 'left', + renderCell: (params) => ( + <Tooltip title="Delete"> + <IconButton onClick={() => handleDelete(params.row)}> + <Delete /> + </IconButton> + </Tooltip> + ), + + } let cdata = useRef([]); @@ -362,9 +373,9 @@ headerName: el.fieldsAlise, minWidth: 100, flex: 1, - editable: el.unique + editable: false })) - setColumns([...columns, ...cols]) + setColumns([...columns, ...cols, action]) } else { notify(msg); } @@ -389,6 +400,12 @@ }; + + const handleSelectionChange = (ids) => { + setSelectedRows(ids) + + }; + return ( <div style={{ height: 400, width: '100%' }}> <DataGrid @@ -402,6 +419,15 @@ disableMultipleColumnsSorting processRowUpdate={processRowUpdate} autoPageSize + editMode="row" + checkboxSelection + onRowSelectionModelChange={handleSelectionChange} + selectionModel={selectedRows} + sx={{ + '& .MuiDataGrid-cell input': { + border: '1px solid #ccc' + }, + }} /> </div> ); -- Gitblit v1.9.1