skyouc
4 天以前 8708598a8e75c36dcdd446c634e11bbeaf48ddab
rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx
@@ -19,6 +19,7 @@
import { useTranslate, useNotify, useRefresh, DatagridConfigurable, useGetOne } from 'react-admin';
import DialogCloseButton from "../../components/DialogCloseButton";
import { Add, Edit, Delete, Save } from '@mui/icons-material';
import QueryStatsIcon from '@mui/icons-material/QueryStats';
import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
import SelectMatnrInfo from "./SelectMatnrInfo";
import SaveIcon from '@mui/icons-material/Save';
@@ -44,28 +45,19 @@
        }
    };
    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_stock_revise_type')) || [];
    const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE });
    const [formData, setFormData] = useState({ locCode: record?.locCode });
    const [selectedRows, setSelectedRows] = useState([]);
    const [isLoading, setIsLoading] = useState(false);
    const [tableData, setTableData] = useState([]);
    const [openMatnr, setOpenMatnr] = useState();
    const [dyFields, setDyFields] = useState([]);
    const [rowCount, setRowCount] = useState(0);
    const [formData, setFormData] = useState({ matnrCode: null });
    const translate = useTranslate();
    const refresh = useRefresh();
    const notify = useNotify();
    const tableRef = useRef()
    const handleChange = (e) => {
        const { name, value } = e.target;
        setFormData(() => ({
            ...formData,
            [name]: value
        }));
    };
    const handleSubmit = () => {
        const rows = tableRef.current.getSelectedRows();
@@ -80,6 +72,7 @@
                batch: el.batch,
                anfme: el.anfme,
                reviseQty: el.reviseQty,
                filedsIndex: el.filedsIndex,
                spec: el.spec,
                model: el.model,
                unit: el.unit,
@@ -94,7 +87,6 @@
            reviseLogId: record?.id,
            items: values,
        }
        console.log(values);
        const res = await request.post(`/reviseLogItem/items/save`, parmas);
        if (res?.data?.code === 200) {
@@ -105,12 +97,11 @@
        }
    }
    const getData = async () => {
    const getData = async (matnr) => {
        setIsLoading(true)
        console.log(formData);
        const res = await request.post(`/locItem/page`, {
        const res = await request.post(`/reviseLogItem/page`, {
            locCode: record?.locCode,
            matnrCode: matnr,
            current: page?.page,
            pageSize: page?.pageSize,
            orderBy: "create_time desc"
@@ -125,12 +116,24 @@
    };
    useEffect(() => {
        getData();
        if (record != null || record != undefined) {
            getData()
        }
    }, [open, page]);
    const handleSearch = () => {
        // getData()
        getData(formData.matnrCode)
    };
    const handleAdd = () => {
        setOpenMatnr(true)
    };
    const handleChange = (e) => {
        const { name, value } = e.target;
        setFormData(() => ({
            [name]: value
        }));
    };
    return (
@@ -155,43 +158,27 @@
                    </Box>
                </DialogTitle>
                <DialogContent sx={{ mt: 2 }}>
                    {/* <Box>
                    <List
                        sx={{
                            flexGrow: 1,
                            marginRight: 1,
                            transition: (theme) =>
                                theme.transitions.create(['all'], {
                                    duration: theme.transitions.duration.enteringScreen,
                                }),
                        }}
                        resource="loc"
                        title={"menu.loc"}
                        empty={false}
                        filter={{ useStatus: 'F' }}
                        filters={filters}
                        sort={{ field: "'row'" }}
                        actions={false}
                        perPage={DEFAULT_PAGE_SIZE}
                        aside={false}
                    >
                        <StyledDatagrid
                            preferenceKey='loc'
                            align="left"
                            bulkActionButtons={false}
                            rowClick={() => false}
                            omit={['id', 'areaId', 'type', 'barcode']}
                        >
                            <NumberField source="id" />
                            <TextField source="code" label="table.field.locItem.locCode" />
                        </StyledDatagrid>
                    </List>
                </Box> */}
                    <Box>
                        <Box component="form" onSubmit={handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 3, justifyContent: 'flex-end' }}>
                            <Grid item md={12} sx={{ justifyContent: 'flex-end', display: 'flex' }}>
                                <Button variant="text" onClick={handleSearch}>{translate("page.whMat.title.add")}</Button>
                        <Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
                            <Grid container spacing={2}>
                                <Grid item md={3}>
                                    <TextField
                                        label={translate('table.field.matnr.code')}
                                        name="matnrCode"
                                        value={formData.matnrCode}
                                        onChange={handleChange}
                                        size="small"
                                    />
                                </Grid>
                                <Grid item md={3} sx={{ display: "flex", margin: 1 }}>
                                    <Button variant="contained" onClick={handleSearch} startIcon={<QueryStatsIcon />}>{translate("toolbar.query")}</Button>
                                </Grid>
                            </Grid>
                            <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, justifyContent: 'flex-end' }}>
                                <Grid item md={8} sx={{ justifyContent: 'flex-end', display: 'flex' }}>
                                    <Button variant="text" onClick={handleAdd}>{translate("page.whMat.title.add")}</Button>
                                </Grid>
                            </Box>
                        </Box>
                        <Box sx={{ mt: 2, height: 600, width: '100%' }}>
                            <SelectReviseMatnr
@@ -226,9 +213,9 @@
export default LocsReviseDetl;
const SelectReviseMatnr = ({ tableData, setTableData, page, isLoading, setPage, rowCount, selectedRows, setSelectedRows, tableRef, setDyFields, dyFields }) => {
    const [dynamicFields, setDynamicFields] = useState([]);
    const translate = useTranslate();
    const notify = useNotify();
    const [dynamicFields, setDynamicFields] = useState([]);
    const [columns, setColumns] = useState([
        {
            field: 'matnrCode',
@@ -259,7 +246,7 @@
        },
        {
            field: 'reviseQty',
            headerName: translate('table.field.locItem.outQty') + "*",
            headerName: translate('table.field.locItem.reviseQty') + "*",
            minWidth: 100,
            type: 'number',
            flex: 1,
@@ -303,7 +290,8 @@
    }
    const handleDelete = (rows) => {
        const tableRows = tableData.filter(item => item.matnrCode != rows.matnrCode);
        let selectRow = tableRef.current.getSortedRows();
        const tableRows = selectRow.filter(item => item.id != rows.id);
        setTableData(tableRows);
    }