From a6991a33e18f69264f93a63459a4b64ea799295a Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期二, 05 八月 2025 13:02:24 +0800 Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop --- rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx | 282 +++++++++++++++++++++++++++++--------------------------- 1 files changed, 146 insertions(+), 136 deletions(-) diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx index 36f977a..daf0441 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx @@ -5,21 +5,33 @@ DateInput, ReferenceInput, AutocompleteInput, + SelectColumnsButton, + DatagridConfigurable, Toolbar, required, useNotify, DeleteButton, + BooleanField, + EditButton, + WrapperField, SaveButton, SimpleForm, + NumberField, useRefresh, + TextField, + DateField, CreateBase, + TopToolbar, + FilterButton, + SearchInput, + List, + Create, } from 'react-admin'; import { Dialog, DialogActions, DialogContent, DialogTitle, - TextField, IconButton, MenuItem, Tooltip, @@ -27,8 +39,11 @@ Button, Stack, Grid, + Card, Box, + CardContent, } from '@mui/material'; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; import ConfirmationNumberIcon from '@mui/icons-material/ConfirmationNumber'; import DialogCloseButton from "../../components/DialogCloseButton.jsx"; import WarehouseSelect from "../../components/WarehouseSelect.jsx"; @@ -36,21 +51,13 @@ import { DataGrid, useGridApiRef } from '@mui/x-data-grid'; import ConfirmButton from "../../components/ConfirmButton"; import { Add, Edit, Delete } from '@mui/icons-material'; +import SelectLocsRevise from "./SelectLocsRevise.jsx"; import DictSelect from "../../components/DictSelect"; import SaveIcon from '@mui/icons-material/Save'; import { styled } from '@mui/material/styles'; +import { redirect } from "react-router"; import request from '@/utils/request'; import _, { set } from 'lodash'; - -const StyledSimpleForm = styled(SimpleForm)(({ theme }) => ({ - '& .MuiToolbar-root-RaToolbar-root': { - '& .RaToolbar-defaultToolbar': { - justifyContent: 'flex-end', - } - } - -})); - const LocReviseCreate = (props) => { const { open, setOpen, orderId } = props; @@ -60,6 +67,7 @@ const translate = useTranslate(); const [tabelData, setTableData] = useState([]); const [disabled, setDisabled] = useState(false); + const [isVisible, setIsVisible] = useState("block"); const [selectedRows, setSelectedRows] = useState([]); const [createDialog, setCreateDialog] = useState(false); const [formData, setFormData] = useState({ type: '0', orgAreaId: null, tarAreaId: null, exceTime: null, code: null }); @@ -74,38 +82,46 @@ setTableData([...tabelData]); } - const handleSubmit = async () => { - setFinally() - setDisabled(true) + const FormToolbar = () => { + return ( + <Toolbar sx={{ justifyContent: 'flex-end' }}> + <SaveButton disabled={disabled} /> + <DeleteButton mutationMode="optimistic" /> + </Toolbar> + ) + } + // const handleSubmit = async () => { + // setFinally() + // setDisabled(true) - if (orderId == null || orderId == undefined) { - const parmas = { - "revise": formData, - "items": tabelData, - } + // if (orderId == null || orderId == undefined) { + // const parmas = { + // "revise": formData, + // "items": tabelData, + // } - const res = await request.post(`/transfer/items/save`, parmas); - if (res?.data?.code === 200) { - setOpen(false); - } else { - notify(res.data.msg); - } - } else { - const parmas = { - "transfer": formData, - "items": tabelData, - } - const res = await request.post(`/transfer/items/update`, parmas); - if (res?.data?.code === 200) { - setOpen(false); - } else { - notify(res.data.msg); - } - } - setDisabled(false) - refresh(); + // const res = await request.post(`/transfer/items/save`, parmas); + // if (res?.data?.code === 200) { + // setOpen(false); + // } else { + // notify(res.data.msg); + // } + // } else { + // const parmas = { + // "transfer": formData, + // "items": tabelData, + // } + // const res = await request.post(`/transfer/items/update`, parmas); + // if (res?.data?.code === 200) { + // setOpen(false); + // } else { + // notify(res.data.msg); + // } + // } + // setDisabled(false) + // refresh(); - }; + // }; const handleDeleteItem = () => { const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.matnrId)); @@ -113,20 +129,15 @@ } const newAddClick = () => { - if (formData.areaId == null || formData.areaId == undefined) { - notify("搴撳尯涓嶈兘涓虹┖锛侊紒", { type: 'error' }) - return - } setCreateDialog(true) } const mutationOptions = { onSuccess: (data) => { - notify(`鏂囩珷 "${data.title}" 鍒涘缓鎴愬姛`, { type: 'success' }); + setIsVisible("block") + setDisabled(true) + refresh() }, - onError: (error) => { - notify(`鍒涘缓澶辫触: ${error.message}`, { type: 'error' }); - } }; const handleChange = (value, name) => { @@ -139,20 +150,15 @@ return ( <> <Box sx={{ padding: 1 }}> - <CreateBase resource="locRevise" mutationOptions={mutationOptions} > - <SimpleForm > + <Create resource="locRevise" + title={false} + mutationOptions={mutationOptions} > + <SimpleForm toolbar={<FormToolbar />}> <Grid container spacing={2} sx={{ '& .MuiToolbar-root-RaToolbar-root.RaToolbar-defaultToolbar': { justifyContent: 'flex-end', } }}> - <Grid item md={2}> - <TextInput - source="code" - label={translate("table.field.locRevise.code")} - readOnly - /> - </Grid> <Grid item md={2}> <AutocompleteInput choices={dicts} @@ -160,6 +166,7 @@ optionValue="value" defaultValue="1" source="type" + parse={v => v} label={translate("table.field.transfer.type")} /> </Grid> @@ -168,6 +175,7 @@ <AutocompleteInput optionText='name' optionValue="id" + parse={v => v} label={translate("table.field.locRevise.areaName")} /> </ReferenceInput> @@ -175,36 +183,38 @@ <Grid item md={2}> <DateInput source="exceTime" + parse={v => v} label="table.field.locRevise.exceTime" /> </Grid> </Grid> </SimpleForm> - </CreateBase> - <Box sx={{ mt: 2 }}> - <Stack direction="row" spacing={2} sx={{ justifyContent: "flex-end" }}> - <Button variant="contained" onClick={newAddClick} > - {translate('common.action.newAddMats')} - </Button> - <ConfirmButton label={"toolbar.delete"} variant="outlined" color="error" onConfirm={handleDeleteItem} /> - </Stack> + </Create> + <Box sx={{ display: isVisible }}> + <Card sx={{ height: 630 }}> + <Box> + <Box sx={{ mt: 2 }}> + <Stack direction="row" spacing={2} sx={{ justifyContent: "flex-start" }}> + <Button variant="contained" onClick={newAddClick} > + {translate('common.action.newAddMats')} + </Button> + <ConfirmButton label={"toolbar.delete"} variant="outlined" color="error" onConfirm={handleDeleteItem} /> + </Stack> + </Box> + <Box sx={{ mt: 2 }}> + <TransferTableView + tabelData={tabelData} + setTableData={setTableData} + orderId={orderId} + selectedRows={selectedRows} + setSelectedRows={setSelectedRows} + tableRef={tableRef}> + </TransferTableView> + </Box> + </Box> + </Card> </Box> - <Box sx={{ mt: 2 }}> - <TransferTableView - tabelData={tabelData} - setTableData={setTableData} - orderId={orderId} - selectedRows={selectedRows} - setSelectedRows={setSelectedRows} - tableRef={tableRef}> - </TransferTableView> - </Box> - <Toolbar sx={{ width: '100%', justifyContent: 'flex-start', bgcolor: 'white' }} > - <Button disabled={disabled} onClick={handleSubmit} variant="contained" startIcon={<SaveIcon />}> - {translate('toolbar.confirm')} - </Button> - </Toolbar> - {/* <CreateBySelectMats + <SelectLocsRevise data={tabelData} queryForm={formData} open={createDialog} @@ -212,7 +222,7 @@ selectedRows={selectedRows} setSelectedRows={setSelectedRows} setData={setTableData} - /> */} + /> </Box> </> ) @@ -332,20 +342,20 @@ const notify = useNotify(); const [columns, setColumns] = useState([ { - field: 'maktx', - headerName: translate('table.field.outStockItem.maktx'), - width: 250, + field: 'code', + headerName: translate('table.field.locItem.locCode'), + width: 100, editable: false, }, { - field: 'matnrCode', - headerName: translate('table.field.outStockItem.matnrCode'), + field: 'areaId', + headerName: translate('table.field.loc.areaId'), width: 130, editable: false, }, { - field: 'anfme', - headerName: translate('table.field.outStockItem.anfme'), + field: 'type', + headerName: translate('table.field.loc.type'), type: 'number', minWidth: 100, flex: 1, @@ -353,8 +363,8 @@ valueFormatter: (val) => val < 0 ? 0 : val, }, { - field: 'splrCode', - headerName: translate('table.field.outStockItem.splrCode'), + field: 'warehouseId', + headerName: translate('table.field.loc.warehouseId'), minWidth: 100, flex: 1, editable: true, @@ -363,8 +373,8 @@ ), }, { - field: 'splrName', - headerName: translate('table.field.outStockItem.splrName') + "*", + field: 'useStatus', + headerName: translate('table.field.loc.useStatus') + "*", minWidth: 100, flex: 1, editable: true, @@ -373,18 +383,32 @@ ), }, { - field: 'batch', - headerName: translate('table.field.outStockItem.splrBatch'), + field: 'channel', + headerName: translate('table.field.loc.channel'), minWidth: 100, flex: 1, editable: true, }, { - field: 'stockUnit', - headerName: translate('table.field.outStockItem.stockUnit'), + field: 'row', + headerName: translate('table.field.loc.row'), minWidth: 100, flex: 1, - editable: true, + editable: false, + }, + { + field: 'col', + headerName: translate('table.field.loc.col'), + minWidth: 100, + flex: 1, + editable: false, + }, + { + field: 'lev', + headerName: translate('table.field.loc.lev'), + minWidth: 100, + flex: 1, + editable: false, }, ]) @@ -404,49 +428,39 @@ let cdata = useRef([]); - useEffect(() => { - if (extendColumns == undefined || extendColumns.length < 1) { - getDynamicFields(); - } - }, []); + // useEffect(() => { + // if (extendColumns == undefined || extendColumns.length < 1) { + // getDynamicFields(); + // } + // }, []); useEffect(() => { cdata.current = tabelData }, [tabelData]); - const getDynamicFields = async () => { - const { - data: { code, data, msg }, - } = await request.get("/fields/enable/list"); - if (code === 200) { - const cols = data.map(el => ({ - field: el.fields, - headerName: el.fieldsAlise, - minWidth: 100, - flex: 1, - editable: false - })) - setColumns([...columns, ...cols, action]) - setExtendColumns(cols); - } else { - notify(msg); - } - } - + // const getDynamicFields = async () => { + // const { + // data: { code, data, msg }, + // } = await request.get("/fields/enable/list"); + // if (code === 200) { + // const cols = data.map(el => ({ + // field: el.fields, + // headerName: el.fieldsAlise, + // minWidth: 100, + // flex: 1, + // editable: false + // })) + // setColumns([...columns, ...cols, action]) + // setExtendColumns(cols); + // } else { + // notify(msg); + // } + // } const handleDelete = (row) => { const newData = _.filter(cdata.current, (item) => item.matnrId !== row.matnrId); setTableData(newData); - }; - - - const processRowUpdate = (newRow, oldRow) => { - const rows = tabelData.map((r) => - r.matnrId === newRow.matnrId ? { ...newRow } : r - ) - setTableData(rows) - return newRow; }; const handleSelectionChange = (ids) => { @@ -454,11 +468,7 @@ }; tableRef.current = useGridApiRef(); - const tableIds = tabelData.map(map => map.id); - // setSelectedRows(tableIds); - // // console.log(selectedRows); - return ( <Box> @@ -480,7 +490,7 @@ rowSelectionModel={tableIds} onRowSelectionModelChange={handleSelectionChange} sx={{ - height: 580, + height: 500, '& .MuiDataGrid-cell input': { border: '1px solid #ccc' }, -- Gitblit v1.9.1