From 4496b9019ba423dd1c51c719bcc0a5938d90fff9 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 22 四月 2025 17:33:18 +0800
Subject: [PATCH] #修改优化  1. DO单明细编码优化  2. DO单明细新增优化  3. 出库单新增单据增加新单据功能

---
 rsf-admin/src/page/orders/outStock/OutOrderItemCreate.jsx |  198 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 198 insertions(+), 0 deletions(-)

diff --git a/rsf-admin/src/page/orders/outStock/OutOrderItemCreate.jsx b/rsf-admin/src/page/orders/outStock/OutOrderItemCreate.jsx
new file mode 100644
index 0000000..213cfde
--- /dev/null
+++ b/rsf-admin/src/page/orders/outStock/OutOrderItemCreate.jsx
@@ -0,0 +1,198 @@
+import React, { useState, useRef, useEffect, useMemo } from "react";
+import {
+    CreateBase,
+    useTranslate,
+    TextInput,
+    NumberInput,
+    BooleanInput,
+    DateInput,
+    SaveButton,
+    SelectInput,
+    ReferenceInput,
+    ReferenceArrayInput,
+    AutocompleteInput,
+    Toolbar,
+    required,
+    useDataProvider,
+    useNotify,
+    Form,
+    useCreateController,
+} from 'react-admin';
+import {
+    Dialog,
+    DialogActions,
+    DialogContent,
+    DialogTitle,
+    Stack,
+    Grid,
+    Box,
+} from '@mui/material';
+import DialogCloseButton from "../../components/DialogCloseButton";
+import StatusSelectInput from "../../components/StatusSelectInput";
+import MemoInput from "../../components/MemoInput";
+
+const OutOrderItemCreate = (props) => {
+    const { open, setOpen, record } = props;
+    const translate = useTranslate();
+    const notify = useNotify();
+    const handleClose = (event, reason) => {
+        if (reason !== "backdropClick") {
+            setOpen(false);
+        }
+    };
+
+    const handleSuccess = async (data) => {
+        setOpen(false);
+        notify('common.response.success');
+    };
+
+    const handleError = async (error) => {
+        notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } });
+    };
+
+    return (
+        <>
+            <CreateBase
+                resource="outStockItem"
+                record={{}}
+                transform={(data) => {
+                    return data;
+                }}
+                mutationOptions={{ onSuccess: handleSuccess, onError: handleError }}
+            >
+                <Dialog
+                    open={open}
+                    onClose={handleClose}
+                    aria-labelledby="form-dialog-title"
+                    fullWidth
+                    disableRestoreFocus
+                    maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
+                >
+                    <Form>
+                        <DialogTitle id="form-dialog-title" sx={{
+                            position: 'sticky',
+                            top: 0,
+                            backgroundColor: 'background.paper',
+                            zIndex: 1000
+                        }}
+                        >
+                            {translate('create.title')}
+                            <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}>
+                                <DialogCloseButton onClose={handleClose} />
+                            </Box>
+                        </DialogTitle>
+                        <DialogContent sx={{ mt: 2 }}>
+                            <Grid>
+                                <Grid item xs={6} display="flex" gap={2}>
+                                    <NumberInput
+                                        label="table.field.outStockItem.asnId"
+                                        source="asnId"
+                                        readOnly
+                                        hidden
+                                        defaultValue={record?.id}
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.asnCode"
+                                        source="asnCode"
+                                        readOnly
+                                        defaultValue={record?.code}
+                                        parse={v => v}
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.poDetlId"
+                                        source="poDetlId"
+                                        parse={v => v}
+                                    />
+                                </Grid>
+                                <Grid item xs={6} display="flex" gap={1}>
+                                    <TextInput
+                                        label="table.field.outStockItem.matnrId"
+                                        source="matnrId"
+                                        parse={v => v}
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.maktx"
+                                        source="maktx"
+                                        parse={v => v}
+                                    />
+                                    <NumberInput
+                                        label="table.field.outStockItem.anfme"
+                                        source="anfme"
+                                        validate={required()}
+                                    />
+                                </Grid>
+                                <Grid item xs={6} display="flex" gap={1}>
+                                    <TextInput
+                                        label="table.field.outStockItem.stockUnit"
+                                        source="stockUnit"
+                                        parse={v => v}
+                                    />
+                                    <NumberInput
+                                        label="table.field.outStockItem.purQty"
+                                        source="purQty"
+                                        validate={required()}
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.purUnit"
+                                        source="purUnit"
+                                        parse={v => v}
+                                    />
+                                </Grid>
+                                <Grid item xs={6} display="flex" gap={1}>
+                                    <NumberInput
+                                        label="table.field.outStockItem.qty"
+                                        source="qty"
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.splrCode"
+                                        source="splrCode"
+                                        parse={v => v}
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.splrName"
+                                        source="splrName"
+                                        parse={v => v}
+                                    />
+
+                                </Grid>
+                                <Grid item xs={6} display="flex" gap={1}>
+                                    <TextInput
+                                        label="table.field.outStockItem.qrcode"
+                                        source="qrcode"
+                                        parse={v => v}
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.barcode"
+                                        source="barcode"
+                                        parse={v => v}
+                                    />
+                                    <TextInput
+                                        label="table.field.outStockItem.packName"
+                                        source="packName"
+                                        parse={v => v}
+                                    />
+                                </Grid>
+
+                                <Grid item xs={4} display="flex" gap={1}>
+                                    <StatusSelectInput />
+                                </Grid>
+                                <Grid item xs={4} display="flex" gap={1}>
+                                    <Stack direction="column" spacing={1}>
+                                        <MemoInput />
+                                    </Stack>
+                                </Grid>
+                            </Grid>
+                        </DialogContent>
+                        <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
+                            <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }}  >
+                                <SaveButton />
+                            </Toolbar>
+                        </DialogActions>
+                    </Form>
+                </Dialog>
+            </CreateBase>
+        </>
+    )
+}
+
+export default OutOrderItemCreate;

--
Gitblit v1.9.1