verou
2025-03-31 5a38e07fd940b30eb72f81f775dea339fc1ecdc4
feat:创建质检单
7个文件已修改
108 ■■■■■ 已修改文件
rsf-admin/src/i18n/en.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/zh.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/asnOrder/AsnOrderList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/asnOrder/AsnOrderModal.jsx 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/qlyInspect/AsnSelModal.jsx 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/qlyInspect/QlyInspectList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/qlyIsptItem/QlyIsptItemList.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/en.js
@@ -428,6 +428,7 @@
                splrName: "splrName",
                splrBatch: "splrBatch",
                stockBatch: "stockBatch",
                isptResult: 'isptResult',
                rcptQty: "rcptQty",
                dlyQty: "dlyQty",
                disQty: "disQty",
rsf-admin/src/i18n/zh.js
@@ -436,6 +436,7 @@
                splrName: "供应商名称",
                splrBatch: "供应商批次",
                stockBatch: "库存批次",
                isptResult: '质检结论',
                rcptQty: "收货数量",
                dlyQty: "送货数量",
                disQty: "不合数量",
rsf-admin/src/page/asnOrder/AsnOrderList.jsx
@@ -141,7 +141,7 @@
          rowClick={() => false}
          expand={<AsnOrderPanel />}
          expandSingle={true}
          omit={['id', 'createTime', 'createBy', 'memo']}
          omit={['id', 'createTime', 'createBy', 'memo', 'poId']}
        >
          <NumberField source="id" />
          <TextField source="code" label="table.field.asnOrder.code" />
rsf-admin/src/page/asnOrder/AsnOrderModal.jsx
@@ -290,19 +290,19 @@
            flex: 1,
            editable: true,
        },
        {
            field: 'packName',
            headerName: translate('table.field.asnOrderItem.packName'),
            minWidth: 100,
            flex: 1,
            editable: true,
        },
        {
            field: 'poDetlId',
            headerName: translate('table.field.asnOrderItem.poDetlId'),
            minWidth: 100,
            flex: 1,
        },
        // {
        //     field: 'packName',
        //     headerName: translate('table.field.asnOrderItem.packName'),
        //     minWidth: 100,
        //     flex: 1,
        //     editable: true,
        // },
        // {
        //     field: 'poDetlId',
        //     headerName: translate('table.field.asnOrderItem.poDetlId'),
        //     minWidth: 100,
        //     flex: 1,
        // },
        {
            field: 'poDetlCode',
            headerName: translate('table.field.asnOrderItem.poDetlCode'),
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>
    );
};
rsf-admin/src/page/qlyInspect/QlyInspectList.jsx
@@ -125,7 +125,7 @@
                    rowClick={(id, resource, record) => false}
                    expand={() => <QlyInspectPanel />}
                    expandSingle={true}
                    omit={['id', 'createTime', 'createBy', 'memo', 'asnId']}
                    omit={['id', 'createTime', 'createBy', 'memo', 'asnId', 'status']}
                >
                    <NumberField source="id" />
                    <NumberField source="asnId" label="table.field.qlyInspect.asnId" />
rsf-admin/src/page/qlyIsptItem/QlyIsptItemList.jsx
@@ -132,6 +132,7 @@
                    <TextField source="splrBatch" label="table.field.qlyIsptItem.splrBatch" />
                    <TextField source="stockBatch" label="table.field.qlyIsptItem.stockBatch" />
                    <NumberField source="rcptQty" label="table.field.qlyIsptItem.rcptQty" />
                    <NumberField source="isptResult$" label="table.field.qlyIsptItem.isptResult" />
                    <NumberField source="dlyQty" label="table.field.qlyIsptItem.dlyQty" />
                    <NumberField source="disQty" label="table.field.qlyIsptItem.disQty" />
                    <NumberField source="safeQty" label="table.field.qlyIsptItem.safeQty" />