verou
2025-03-31 5a38e07fd940b30eb72f81f775dea339fc1ecdc4
rsf-admin/src/page/qlyInspect/AsnSelModal.jsx
@@ -42,7 +42,7 @@
    });
    const [tableData, setTableData] = useState([]);
    const [selectedRow, setSelectedRow] = useState(null);
    const [selectedRows, setSelectedRows] = useState([]);
    const handleChange = (e) => {
        const { name, value } = e.target;
@@ -58,21 +58,25 @@
        })
    }
    const handleSubmit = () => {
        console.log(selectedRow);
    const handleSubmit = async () => {
        const { data: { code, data, msg } } = await request.post(`/qlyInspect/selected`, { ids: selectedRows });
        if (code === 200) {
            notify(msg);
            refresh()
        } else {
            notify(msg);
        }
        setOpen(false);
        reset();
    };
    const getData = async () => {
        const res = await request.post(`/asnOrder/page`, {
        const res = await request.post(`/qlyInspect/asn/list`, {
            ...formData,
            current: 1,
            pageSize: 100,
            orderBy: "create_time desc"
        });
        if (res?.data?.code === 200) {
            setTableData(res.data.data.records);
            setTableData(res.data.data);
        } else {
            notify(res.data.msg);
        }
@@ -129,8 +133,8 @@
                    <AsnSelModalTable
                        tableData={tableData}
                        setTableData={setTableData}
                        selectedRow={selectedRow}
                        setSelectedRow={setSelectedRow}
                        selectedRows={selectedRows}
                        setSelectedRows={setSelectedRows}
                    />
                </Box>
            </DialogContent>
@@ -147,32 +151,19 @@
export default AsnSelModal;
const AsnSelModalTable = ({ tableData, setTableData, selectedRow, setSelectedRow }) => {
const AsnSelModalTable = ({ tableData, setTableData, selectedRows, setSelectedRows }) => {
    const translate = useTranslate();
    const notify = useNotify();
    const apiRef = useGridApiRef();
    const handleRadioChange = (event, id) => {
        setSelectedRow(id);
    const handleSelectionChange = (ids) => {
        setSelectedRows(ids)
    };
    const [columns, setColumns] = useState([
        // { field: 'id', headerName: 'ID', width: 100 },
        {
            field: 'radio',
            headerName: '',
            width: 55,
            renderCell: (params) => {
                return (
                    <FormControlLabel
                        value={params.row.id}
                        control={<Radio />}
                        onChange={(event) => handleRadioChange(event, params.row.id)}
                    />
                );
            },
        },
        { field: 'code', headerName: translate('table.field.asnOrder.code'), width: 200 },
        { field: 'type$', headerName: translate('table.field.asnOrder.type') },
        { field: 'wkType$', headerName: translate('table.field.asnOrder.wkType') },
@@ -182,26 +173,20 @@
    ])
    const onRowClick = (e) => {
        setSelectedRow(e.id)
    }
    return (
        <div style={{ height: 400, width: '100%' }}>
            <RadioGroup value={selectedRow} onChange={handleRadioChange}>
                <DataGrid
                    size="small"
                    rows={tableData}
                    columns={columns}
                    onRowClick={onRowClick}
                    apiRef={apiRef}
                    disableColumnMenu={true}
                    disableColumnSorting
                    disableMultipleColumnsSorting
                />
            </RadioGroup>
            <DataGrid
                size="small"
                rows={tableData}
                columns={columns}
                checkboxSelection
                onRowSelectionModelChange={handleSelectionChange}
                selectionModel={selectedRows}
                apiRef={apiRef}
                disableColumnMenu={true}
                disableColumnSorting
                disableMultipleColumnsSorting
            />
        </div>
    );
};