From 6732a988fe843cf59f12aae1460fc97fda5408dd Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 08 五月 2025 19:59:10 +0800 Subject: [PATCH] 新增asn单,修改asn单,添加动态字段修改功能 --- rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 213 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 122 insertions(+), 91 deletions(-) diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx index 97f66bd..140bd65 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx @@ -66,9 +66,7 @@ const notify = useNotify(); const refresh = useRefresh(); const [disabled, setDisabled] = useState(false) - const [createDialog, setCreateDialog] = useState(false); - const tableRef = useRef(); useEffect(() => { @@ -104,6 +102,7 @@ ...prevData, [name]: value })); + console.log(formData); }; const resetData = () => { @@ -226,14 +225,14 @@ </DialogTitle> <DialogContent sx={{ mt: 2 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> - <Form> + <Form defaultValues={formData}> <Grid container spacing={2}> <Grid item md={3}> <DictSelect label={translate("table.field.asnOrder.type")} value={formData.type} onChange={(e) => handleChange(e.target.value, 'type')} - dictTypeCode="sys_order_type" + dictTypeCode="sys_in_stock_type" required /> </Grid> @@ -241,39 +240,35 @@ <DictSelect label={translate("table.field.asnOrder.wkType")} value={formData.wkType} + group='1' onChange={(e) => handleChange(e.target.value, 'wkType')} dictTypeCode="sys_business_type" required /> </Grid> - <Grid item md={3}> + <Grid item md={2}> <TextField label={translate("table.field.asnOrder.poCode")} value={formData.poCode} + variant="filled" onChange={(e) => handleChange(e.target.value, 'poCode')} /> </Grid> - <Grid item md={3}> + <Grid item md={2}> <TextField label={translate("table.field.asnOrder.logisNo")} value={formData.logisNo} + variant="filled" onChange={(e) => handleChange(e.target.value, 'logisNo')} /> </Grid> - <Grid item md={3}> - {/* <TextField - label={translate("table.field.asnOrder.arrTime")} - value={formData.arrTime} - onChange={(e) => handleChange(e.target.value, 'arrTime')} - /> */} <DateInput source="arrTime" label="table.field.asnOrder.arrTime" value={formData.arrTime} onChange={(e) => handleChange(e.target.value, 'arrTime')} /> - </Grid> </Grid> </Form> @@ -283,7 +278,7 @@ <Stack direction="row" spacing={2}> <Button variant="contained" onClick={() => setCreateDialog(true)}>鏂板鐗╂枡</Button> {/* {asnId !== '' && <ConfirmButton label={'鍒犻櫎'} variant="outlined" color="error" onConfirm={handleDelete} />} */} - <ConfirmButton label={'鍒犻櫎'} variant="outlined" color="error" onConfirm={handleDeleteItem} /> + <ConfirmButton label={'ra.action.delete'} variant="outlined" color="error" onConfirm={handleDeleteItem} /> </Stack> </Box> <Box sx={{ mt: 2 }}> @@ -317,86 +312,114 @@ useEffect(() => { getOptions(); }, []); - const getOptions = async () => { - const parmas = { + const getOptions = async () => { + const parmas = { + "type": "supplier" } const { data: { code, data, msg }, - } = await request.post("companys/page",parmas); + } = await request.post("companys/page", parmas); if (code === 200) { setFormData(data.records) - console.log(data.records) + console.log(data.records) } else { notify(msg); } - } - + } + return ( <Select - value={params.value} - onChange={(e) => - params.api.setEditCellValue({ - id: params.id, - field: params.field, - value: e.target.value, - }) - } - fullWidth - autoFocus - > - {formData.map(e => { - return( - <MenuItem value={e.name} children={e.name} /> - ); - - })} - - </Select> - ); - }; + value={params.value} + onChange={(e) => { + params.api.setEditCellValue({ + id: params.id, + field: params.field, + value: e.target.value, + }) + // 鎵惧埌閫変腑鐨勪緵搴斿晢璁板綍 + const selectedSupplier = formData.find(supplier => supplier.name === e.target.value); - const SelectInputSplrCodeEditCell = (params) => { + // 濡傛灉鎵惧埌瀵瑰簲鐨勪緵搴斿晢璁板綍锛屽悓鏃舵洿鏂皊plrCode瀛楁 + if (selectedSupplier) { + params.api.setEditCellValue({ + id: params.id, + field: 'splrCode', + value: selectedSupplier.id, + }); + } + + } + + } + fullWidth + + > + {formData.map(e => { + return ( + <MenuItem value={e.name} children={e.name} key={e.id} /> + ); + + })} + + </Select> + ); +}; + +const SelectInputSplrCodeEditCell = (params) => { const [formData, setFormData] = useState([{}]) useEffect(() => { getOptions(); }, []); - const getOptions = async () => { - const parmas = { + const getOptions = async () => { + const parmas = { + "type": "supplier" } const { data: { code, data, msg }, - } = await request.post("companys/page",parmas); + } = await request.post("companys/page", parmas); if (code === 200) { setFormData(data.records) - console.log(data.records) + console.log(data.records) } else { notify(msg); } - } - + } + return ( <Select - value={params.value} - onChange={(e) => - params.api.setEditCellValue({ - id: params.id, - field: params.field, - value: e.target.value, - }) - } - fullWidth - autoFocus - > - {formData.map(e => { - return( - <MenuItem value={e.id} children={e.name} /> - ); - - })} - - </Select> + value={params.value} + onChange={(e) => { + params.api.setEditCellValue({ + id: params.id, + field: params.field, + value: e.target.value, + }) + const selectedSupplier = formData.find(supplier => supplier.id === e.target.value); + + // 濡傛灉鎵惧埌瀵瑰簲鐨勪緵搴斿晢璁板綍锛屽悓鏃舵洿鏂皊plrCode瀛楁 + if (selectedSupplier) { + params.api.setEditCellValue({ + id: params.id, + field: 'splrName', + value: selectedSupplier.name, + }); + } + } + + } + fullWidth + + > + {formData.map(e => { + return ( + <MenuItem value={e.id} children={e.name} key={e.id} /> + ); + + })} + + </Select> ); - }; +}; @@ -406,13 +429,6 @@ const notify = useNotify(); const [columns, setColumns] = useState([ - - { - field: 'maktx', - headerName: translate('table.field.asnOrderItem.maktx'), - width: 250, - editable: false, - }, { field: 'matnrCode', headerName: translate('table.field.asnOrderItem.matnrCode'), @@ -420,8 +436,14 @@ editable: false, }, { + field: 'maktx', + headerName: translate('table.field.asnOrderItem.maktx'), + width: 250, + editable: false, + }, + { field: 'anfme', - headerName: translate('table.field.asnOrderItem.anfme')+"*", + headerName: translate('table.field.asnOrderItem.anfme') + "*", type: 'number', minWidth: 100, flex: 1, @@ -431,26 +453,26 @@ }, { field: 'splrCode', - headerName: translate('table.field.asnOrderItem.splrCode')+"*", + headerName: translate('table.field.asnOrderItem.splrCode') + "*", minWidth: 100, flex: 1, editable: true, renderEditCell: (params) => ( <SelectInputSplrCodeEditCell {...params} /> ), - headerClassName: "custom", - }, - { - field: 'splrName', - headerName: translate('table.field.asnOrderItem.splrName')+"*", - minWidth: 100, - flex: 1, - editable: true, - renderEditCell: (params) => ( - <SelectInputSplrNameEditCell {...params} /> - ), headerClassName: "custom", }, + // { + // field: 'splrName', + // headerName: translate('table.field.asnOrderItem.splrName') + "*", + // minWidth: 100, + // flex: 1, + // editable: true, + // renderEditCell: (params) => ( + // <SelectInputSplrNameEditCell {...params} /> + // ), + // headerClassName: "custom", + // }, // { // field: 'packName', // headerName: translate('table.field.asnOrderItem.packName'), @@ -465,13 +487,22 @@ // flex: 1, // }, { - field: 'poCode', - headerName: translate('table.field.asnOrderItem.poDetlCode')+"*", + field: 'platItemId', + headerName: translate('table.field.asnOrderItem.platItemId') + "*", minWidth: 100, flex: 1, editable: true, headerClassName: "custom", }, + + // { + // field: 'poCode', + // headerName: translate('table.field.asnOrderItem.poDetlCode') + "*", + // minWidth: 100, + // flex: 1, + // editable: true, + // headerClassName: "custom", + // }, { field: 'stockUnit', @@ -536,7 +567,7 @@ headerName: el.fieldsAlise, minWidth: 100, flex: 1, - editable: false + editable: true })) setColumns([...columns, ...cols, action]) } else { -- Gitblit v1.9.1