zjj
2025-05-12 e26a08269c24077cdac7ca3992fc068edd5971aa
rsf-admin/src/page/orders/wave/ItemToTaskModal.jsx
@@ -37,11 +37,10 @@
    ListContextProvider,
    useList,
    Toolbar,
    SingleFieldList,
} from 'react-admin';
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import { Box, Typography, Card, Stack, DialogContent, DialogTitle, DialogActions, Dialog } from '@mui/material';
import { Box, Typography, Card, Stack, DialogContent, DialogTitle, DialogActions, Dialog, Chip, ListItem, Paper } from '@mui/material';
import { styled } from '@mui/material/styles';
import DialogCloseButton from "../../components/DialogCloseButton";
import request from '@/utils/request';
@@ -131,7 +130,6 @@
                            <NumberField source="waveId" label="table.field.waveItem.waveId" />
                            <TextField source="waveCode" label="table.field.waveItem.waveCode" />
                            <TextField source="orderCode" label="table.field.waveItem.orderCode" />
                            {/* <TextField source="maktx" label="table.field.waveItem.matnrName" /> */}
                            <NumberField source="matnrId" label="table.field.waveItem.matnrId" />
                            <TextField source="matnrCode" label="table.field.waveItem.matnrCode" />
                            <TextField source="batch" label="table.field.waveItem.batch" />
@@ -143,22 +141,16 @@
                            <NumberField source="anfme" label="table.field.waveItem.anfme" />
                            <NumberField source="workQty" label="table.field.waveItem.workQty" />
                            <NumberField source="qty" label="table.field.waveItem.qty" />
                            <NumberField source="stockQty" label="table.field.waveItem.stockQty" />
                            <WrapperField cellClassName="opt" label="table.field.waveItem.stockLocs">
                                <ArrayField source="stockLocs" stockLocs="table.field.waveItem.stockLocs">
                                    <SingleFieldList linkType={false}>
                                        <ChilpField source="" size="small"></ChilpField>
                                    </SingleFieldList>
                                </ArrayField>
                                {/* <NumberField source="anfme" label="table.field.waveItem.stockLocs" /> */}
                                {/* <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
                                <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
                                <TagsField />
                            </WrapperField>
                        </StyledDatagrid>
                    </ListContextProvider>
                </DialogContent>
                <DialogActions>
                    <Toolbar sx={{ width: '100%', justifyContent: 'end' }} >
                        <GenerateTaskButton record={[record?.id]} />
                        <GenerateTaskButton record={record?.id} dataSource={data} setOpen={setOpen}/>
                    </Toolbar>
                </DialogActions>
            </Dialog>
@@ -172,15 +164,56 @@
    const refresh = useRefresh();
    const notify = useNotify();
    const redirect = useRedirect();
    const translate = useTranslate();
    const { locs, setLocs } = useState([]);
    const generateTask = async () => {
        const res = await request.post(`/wave/public/task`, { ids: record?.record });
        if (res?.data?.code === 200) {
            notify(res.data.msg);
            redirect("/task")
        record?.dataSource.map(item => {
            const loc = JSON.parse(item.stockLocs);
            if (loc != undefined && loc.length > 0) {
                setLocs(...loc)
            }
        })
        if (locs == undefined || locs.length < 1) {
            notify(translate('request.error.stock'))
        } else {
            notify(res.data.msg);
            const res = await request.post(`/wave/public/task`, { wave: record?.record, waveItem: record?.dataSource });
            if (res?.data?.code === 200) {
                record.setOpen(false)
                notify(res.data.msg);
                redirect("/task")
            } else {
                notify(res.data.msg);
            }
            refresh();
        }
        refresh();
    }
    return (<Button variant="contained" label={"ra.action.save"} onClick={generateTask}></Button>)
}
const TagsField = () => {
    const record = useRecordContext();
    const translate = useTranslate();
    const locs = JSON.parse(record.stockLocs);
    if (locs == undefined || locs.length < 1) {
        return (
            <>
                <ListItem>
                    <Chip color="error" label={translate("common.action.stockError")} variant="outlined" />
                </ListItem>
            </>
        )
    } else {
        return (
            <>
                {locs.map((data) => {
                    return (
                        <ListItem key={data?.id}>
                            <Chip label={data?.locCode} />
                        </ListItem>
                    )
                })}
            </>
        )
    }
}