From 99411967019bbf0d7b0b971eae0db2c2c58025f0 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 30 八月 2025 16:27:47 +0800
Subject: [PATCH] 修改任务状态
---
rsf-admin/src/page/orders/transfer/ManualCreate.jsx | 182 +++++++++++++++++++++++++++------------------
1 files changed, 110 insertions(+), 72 deletions(-)
diff --git a/rsf-admin/src/page/orders/transfer/ManualCreate.jsx b/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
index 5251ed0..2990e16 100644
--- a/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
+++ b/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
@@ -17,6 +17,8 @@
useNotify,
Form,
useCreateController,
+ SimpleForm,
+ useRefresh,
} from 'react-admin';
import {
Dialog,
@@ -33,65 +35,79 @@
Grid,
Box,
} from '@mui/material';
-import DialogCloseButton from "../../components/DialogCloseButton.jsx";
import ConfirmationNumberIcon from '@mui/icons-material/ConfirmationNumber';
-import CreateBySelectMats from "./CreateBySelectMats.jsx";
+import DialogCloseButton from "../../components/DialogCloseButton.jsx";
+import WarehouseSelect from "../../components/WarehouseSelect.jsx";
import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
-import { Add, Edit, Delete } from '@mui/icons-material';
import ConfirmButton from "../../components/ConfirmButton";
+import { useFormContext, useWatch } from "react-hook-form";
+import CreateBySelectMats from "./CreateBySelectMats.jsx";
+import { Add, Edit, Delete } from '@mui/icons-material';
import DictSelect from "../../components/DictSelect";
import { minHeight, padding } from "@mui/system";
import SaveIcon from '@mui/icons-material/Save';
import request from '@/utils/request';
+import _, { set } from 'lodash';
const ManualCreate = (props) => {
const { open, setOpen, orderId } = props;
const tableRef = useRef();
const notify = useNotify();
+ const refresh = useRefresh();
const translate = useTranslate();
const [tabelData, setTableData] = useState([]);
const [disabled, setDisabled] = useState(false);
const [selectedRows, setSelectedRows] = useState([]);
const [createDialog, setCreateDialog] = useState(false);
- const [formData, setFormData] = useState({});
+ const [formData, setFormData] = useState({ type: '1', orgAreaId: null, tarAreaId: null });
+ const [list, setList] = useState([]);
+
const handleClose = (event, reason) => {
if (reason !== "backdropClick") {
setOpen(false);
}
};
+ const setFinally = () => {
+ const rows = tableRef.current.state.editRows;
+ for (const key in rows) {
+ const find = tabelData.find(item => item.matnrId === +key);
+ find.anfme = rows[key].anfme.value;
+ }
+ setTableData([...tabelData]);
+ }
+
+
const handleSubmit = async () => {
setFinally()
setDisabled(true)
- if (asnId === 0) {
+ if (orderId == null || orderId == undefined) {
const parmas = {
- "orders": formData,
+ "transfer": formData,
"items": tabelData,
}
- const res = await request.post(`/outStock/items/save`, parmas);
+
+ const res = await request.post(`/transfer/items/save`, parmas);
if (res?.data?.code === 200) {
setOpen(false);
- refresh();
- resetData()
} else {
notify(res.data.msg);
}
} else {
const parmas = {
- "orders": formData,
+ "transfer": formData,
"items": tabelData,
}
- const res = await request.post(`/outStock/items/update`, parmas);
+ const res = await request.post(`/transfer/items/update`, parmas);
if (res?.data?.code === 200) {
setOpen(false);
- refresh();
- resetData()
} else {
notify(res.data.msg);
}
}
setDisabled(false)
+ refresh();
};
@@ -109,39 +125,78 @@
notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } });
};
+ const getWarehouse = async () => {
+ const res = await request.post('/warehouseAreas/page');
+ if (res?.data?.code === 200) {
+ setList(res.data.data.records.map((item) => {
+ return {
+ id: item.id,
+ name: item.name
+ };
+ }));
+ } else {
+ notify(res.data.msg);
+ }
+ }
+
+ const newAddClick = () => {
+ if (formData.orgAreaId == null || formData.orgAreaId == undefined) {
+ notify("鍘熷簱鍖轰笉鑳戒负绌猴紒锛�", { type: 'error' })
+ return
+ }
+ if (formData.tarAreaId == null || formData.tarAreaId == undefined) {
+ notify("鐩爣搴撳尯涓嶈兘涓虹┖锛侊紒", { type: 'error' })
+ return
+ }
+ console.log(formData);
+
+ setCreateDialog(true)
+ }
+
+
+ const handleChange = (value, name) => {
+ setFormData((prevData) => ({
+ ...prevData,
+ [name]: value
+ }));
+ };
+
return (
<>
<Box sx={{ padding: 1 }}>
- <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
- <Form defaultValues={formData}>
- <Grid container spacing={2}>
- <Grid item md={2}>
- <DictSelect
- label={translate("table.field.transfer.type")}
- value={formData.wkType}
- variant="filled"
- group='2'
- onChange={(e) => handleChange(e.target.value, 'wkType')}
- dictTypeCode="sys_business_type"
- required
- />
- </Grid>
- <Grid item md={2}>
- <ReferenceInput reference="warehouseAreas" source="name">
- <AutocompleteInput optionText="name" label="table.field.transfer.orgAreaName" />
- </ReferenceInput>
- </Grid>
- <Grid item md={2}>
- <ReferenceInput reference="warehouseAreas" source="name">
- <AutocompleteInput optionText="name" label="table.field.transfer.orgAreaName" />
- </ReferenceInput>
- </Grid>
+ <SimpleForm toolbar={false}>
+ <Grid container spacing={2}>
+ <Grid item md={2}>
+ <DictSelect
+ label={translate("table.field.transfer.type")}
+ value={formData.type}
+ variant="filled"
+ onChange={(e) => handleChange(e.target.value, 'type')}
+ dictTypeCode="sys_transfer_type"
+ />
</Grid>
- </Form>
- </Box>
+ <Grid item md={2}>
+ <WarehouseSelect
+ value={formData.orgAreaId}
+ variant="filled"
+ dictTypeCode="warehouse"
+ onChange={(e) => handleChange(e.target.value, 'orgAreaId')}
+ label={translate("table.field.transfer.orgAreaName")} />
+ </Grid>
+ <Grid item md={2}>
+ <WarehouseSelect
+ label={translate("table.field.transfer.tarAreaName")}
+ value={formData.tarAreaId}
+ dictTypeCode="warehouse"
+ variant="filled"
+ onChange={(e) => handleChange(e.target.value, 'tarAreaId')}
+ />
+ </Grid>
+ </Grid>
+ </SimpleForm>
<Box sx={{ mt: 2 }}>
<Stack direction="row" spacing={2} sx={{ justifyContent: "flex-end" }}>
- <Button variant="contained" onClick={() => setCreateDialog(true)} >
+ <Button variant="contained" onClick={newAddClick} >
{translate('common.action.newAddMats')}
</Button>
<ConfirmButton label={"toolbar.delete"} variant="outlined" color="error" onConfirm={handleDeleteItem} />
@@ -151,7 +206,7 @@
<TransferTableView
tabelData={tabelData}
setTableData={setTableData}
- asnId={orderId}
+ orderId={orderId}
selectedRows={selectedRows}
setSelectedRows={setSelectedRows}
tableRef={tableRef}>
@@ -163,9 +218,12 @@
</Button>
</Toolbar>
<CreateBySelectMats
+ data={tabelData}
+ queryForm={formData}
open={createDialog}
setOpen={setCreateDialog}
- data={tabelData}
+ selectedRows={selectedRows}
+ setSelectedRows={setSelectedRows}
setData={setTableData}
/>
</Box>
@@ -300,24 +358,22 @@
},
{
field: 'anfme',
- headerName: translate('table.field.outStockItem.anfme') + "*",
+ headerName: translate('table.field.outStockItem.anfme'),
type: 'number',
minWidth: 100,
flex: 1,
editable: true,
valueFormatter: (val) => val < 0 ? 0 : val,
- headerClassName: "custom",
},
{
field: 'splrCode',
- headerName: translate('table.field.outStockItem.splrCode') + "*",
+ headerName: translate('table.field.outStockItem.splrCode'),
minWidth: 100,
flex: 1,
editable: true,
renderEditCell: (params) => (
<SelectInputSplrCodeEditCell {...params} />
),
- headerClassName: "custom",
},
{
field: 'splrName',
@@ -328,18 +384,10 @@
renderEditCell: (params) => (
<SelectInputSplrNameEditCell {...params} />
),
- headerClassName: "custom",
},
{
- field: 'splrBatch',
+ field: 'batch',
headerName: translate('table.field.outStockItem.splrBatch'),
- minWidth: 100,
- flex: 1,
- editable: true,
- },
- {
- field: 'poCode',
- headerName: translate('table.field.outStockItem.poDetlCode'),
minWidth: 100,
flex: 1,
editable: true,
@@ -420,6 +468,11 @@
tableRef.current = useGridApiRef();
+ const tableIds = tabelData.map(map => map.id);
+ // setSelectedRows(tableIds);
+ // // console.log(selectedRows);
+
+
return (
<Box>
<DataGrid
@@ -427,12 +480,6 @@
rows={tabelData}
columns={columns}
disableRowSelectionOnClick
- getRowId={(row) => row.matnrId ? row.matnrId : row.id}
- disableColumnFilter
- disableColumnSelector
- disableColumnSorting
- disableMultipleColumnsSorting
- processRowUpdate={processRowUpdate}
initialState={{
pagination: {
paginationModel: {
@@ -443,24 +490,15 @@
pageSizeOptions={[15, 25, 50, 100]}
editMode="row"
checkboxSelection
+ rowSelectionModel={tableIds}
onRowSelectionModelChange={handleSelectionChange}
- selectionModel={selectedRows}
sx={{
- height: 610,
+ height: 580,
'& .MuiDataGrid-cell input': {
border: '1px solid #ccc'
},
}}
/>
- {/* <Box sx={{
- padding: 2,
- position: 'absolute',
- right: 1
- }}>
- <Button variant="contained" onClick={() => handleSubmit()} startIcon={<SaveIcon/>} >
- {translate('toolbar.confirm')}
- </Button>
- </Box> */}
</Box>
);
};
--
Gitblit v1.9.1