From 8708598a8e75c36dcdd446c634e11bbeaf48ddab Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 07 八月 2025 10:38:50 +0800
Subject: [PATCH] 库存调整功能优化
---
rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx | 210 ++++++++++++++++++++++++++++++++--------------------
1 files changed, 130 insertions(+), 80 deletions(-)
diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx
index d8b8919..efc0ff6 100644
--- a/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx
+++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx
@@ -23,9 +23,12 @@
CreateBase,
TopToolbar,
FilterButton,
+ ReferenceField,
SearchInput,
List,
Create,
+ useGetOne,
+ useRecordContext,
} from 'react-admin';
import {
Dialog,
@@ -59,6 +62,23 @@
import request from '@/utils/request';
import _, { set } from 'lodash';
+
+
+const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
+ '& .css-1vooibu-MuiSvgIcon-root': {
+ height: '.9em'
+ },
+ '& .RaDatagrid-row': {
+ cursor: 'auto'
+ },
+ '& .column-name': {
+ },
+ '& .opt': {
+ width: 200
+ },
+}));
+
+
const LocReviseCreate = (props) => {
const { open, setOpen, orderId } = props;
const tableRef = useRef();
@@ -66,21 +86,14 @@
const refresh = useRefresh();
const translate = useTranslate();
const [tabelData, setTableData] = useState([]);
+ const [locRevise, setLocRevise] = useState();
const [disabled, setDisabled] = useState(false);
- const [isVisible, setIsVisible] = useState("block");
+ const [isVisible, setIsVisible] = useState("none");
const [selectedRows, setSelectedRows] = useState([]);
const [createDialog, setCreateDialog] = useState(false);
const [formData, setFormData] = useState({ type: '0', orgAreaId: null, tarAreaId: null, exceTime: null, code: null });
const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_stock_revise_type')) || [];
- 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 FormToolbar = () => {
return (
@@ -133,26 +146,22 @@
}
const mutationOptions = {
- onSuccess: (data) => {
+ onSuccess: (id) => {
setIsVisible("block")
setDisabled(true)
+ setLocRevise(id)
refresh()
},
- };
-
- const handleChange = (value, name) => {
- setFormData((prevData) => ({
- ...prevData,
- [name]: value
- }));
};
return (
<>
<Box sx={{ padding: 1 }}>
- <Create resource="locRevise"
+ <Create
+ resource="locRevise"
title={false}
- mutationOptions={mutationOptions} >
+ // mutationOptions={mutationOptions}
+ >
<SimpleForm toolbar={<FormToolbar />}>
<Grid container spacing={2} sx={{
'& .MuiToolbar-root-RaToolbar-root.RaToolbar-defaultToolbar': {
@@ -202,14 +211,54 @@
</Stack>
</Box>
<Box sx={{ mt: 2 }}>
- <TransferTableView
- tabelData={tabelData}
- setTableData={setTableData}
- orderId={orderId}
- selectedRows={selectedRows}
- setSelectedRows={setSelectedRows}
- tableRef={tableRef}>
- </TransferTableView>
+ <List
+ sx={{
+ flexGrow: 1,
+ transition: (theme) =>
+ theme.transitions.create(['all'], {
+ duration: theme.transitions.duration.enteringScreen,
+ }),
+ }}
+ resource="reviseLog"
+ title={"menu.reviseLog"}
+ empty={false}
+ filters={false}
+ sort={{ field: "create_time", order: "desc" }}
+ actions={false}
+ perPage={DEFAULT_PAGE_SIZE}
+ >
+ <StyledDatagrid
+ preferenceKey='reviseLog'
+ bulkActionButtons={false}
+ rowClick={(id, resource, record) => false}
+ expand={false}
+ expandSingle={true}
+ omit={['id', 'reviseId', 'createTime', 'createBy', 'memo']}
+ >
+ <NumberField source="id" />
+ <NumberField source="reviseId" label="table.field.reviseLog.reviseId" />
+ <TextField source="reviseCode" label="table.field.reviseLog.reviseCode" />
+ <NumberField source="warehouseId" label="table.field.loc.warehouseId" />
+ <NumberField source="areaId" label="table.field.loc.areaId" />
+ <NumberField source="type" label="table.field.loc.type" />
+ <TextField source="barcode" label="table.field.loc.barcode" />
+ <TextField source="useStatus" label="table.field.loc.useStatus" />
+ <NumberField source="channel" label="table.field.loc.channel" />
+ <NumberField source="row" label="table.field.loc.row" />
+ <NumberField source="col" label="table.field.loc.col" />
+ <NumberField source="lev" label="table.field.loc.lev" />
+ <TextField source="updateBy$" label="common.field.updateBy" />
+ <DateField source="updateTime" label="common.field.updateTime" showTime />
+ <TextField source="createBy$" label="common.field.createBy" />
+ <DateField source="createTime" label="common.field.createTime" showTime />
+ <BooleanField source="statusBool" label="common.field.status" sortable={false} />
+ <TextField source="memo" label="common.field.memo" sortable={false} />
+ <WrapperField cellClassName="opt" label="common.field.opt">
+ <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
+ <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
+ </WrapperField>
+ </StyledDatagrid>
+ </List>
</Box>
</Box>
</Card>
@@ -217,6 +266,7 @@
<SelectLocsRevise
data={tabelData}
queryForm={formData}
+ locRevise={locRevise}
open={createDialog}
setOpen={setCreateDialog}
selectedRows={selectedRows}
@@ -342,20 +392,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,
@@ -363,8 +413,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,
@@ -373,8 +423,8 @@
),
},
{
- field: 'splrName',
- headerName: translate('table.field.outStockItem.splrName') + "*",
+ field: 'useStatus',
+ headerName: translate('table.field.loc.useStatus') + "*",
minWidth: 100,
flex: 1,
editable: true,
@@ -383,18 +433,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,
},
])
@@ -414,49 +478,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) => {
@@ -464,11 +518,7 @@
};
tableRef.current = useGridApiRef();
-
const tableIds = tabelData.map(map => map.id);
- // setSelectedRows(tableIds);
- // // console.log(selectedRows);
-
return (
<Box>
--
Gitblit v1.9.1