From ed08477d187fe143566c9baeeef365b1eacbdfd4 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 24 七月 2025 16:36:54 +0800
Subject: [PATCH] 新增调拔单明细功能

---
 rsf-admin/src/page/orders/transfer/TransferEdit.jsx |  291 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 136 insertions(+), 155 deletions(-)

diff --git a/rsf-admin/src/page/orders/transfer/TransferEdit.jsx b/rsf-admin/src/page/orders/transfer/TransferEdit.jsx
index 2cd2003..fedacf5 100644
--- a/rsf-admin/src/page/orders/transfer/TransferEdit.jsx
+++ b/rsf-admin/src/page/orders/transfer/TransferEdit.jsx
@@ -1,171 +1,152 @@
 import React, { useState, useRef, useEffect, useMemo } from "react";
 import {
-    Edit,
-    SimpleForm,
-    FormDataConsumer,
-    useTranslate,
-    TextInput,
-    NumberInput,
-    BooleanInput,
-    DateInput,
-    SelectInput,
-    ReferenceInput,
-    ReferenceArrayInput,
-    AutocompleteInput,
-    SaveButton,
-    Toolbar,
-    Labeled,
-    NumberField,
-    required,
-    useRecordContext,
-    DeleteButton,
-} from 'react-admin';
+  Edit,
+  SimpleForm,
+  FormDataConsumer,
+  useTranslate,
+  TextInput,
+  NumberInput,
+  BooleanInput,
+  DateInput,
+  SelectInput,
+  ReferenceInput,
+  ReferenceArrayInput,
+  AutocompleteInput,
+  SaveButton,
+  Toolbar,
+  Labeled,
+  NumberField,
+  required,
+  useRecordContext,
+  DeleteButton,
+} from "react-admin";
 import { useWatch, useFormContext } from "react-hook-form";
-import { Stack, Grid, Box, Typography } from '@mui/material';
-import * as Common from '@/utils/common.js';
-import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting.js';
+import { Stack, Grid, Box, Typography } from "@mui/material";
+import * as Common from "@/utils/common.js";
+import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from "@/config/setting.js";
 import EditBaseAside from "../../components/EditBaseAside.jsx";
 import CustomerTopToolBar from "../../components/EditTopToolBar.jsx";
 import MemoInput from "../../components/MemoInput.jsx";
 import StatusSelectInput from "../../components/StatusSelectInput.jsx";
+import TransferItemList from "./TransferItemList.jsx";
 
 const FormToolbar = () => {
-    const { getValues } = useFormContext();
+  const { getValues } = useFormContext();
 
-    return (
-        <Toolbar sx={{ justifyContent: 'space-between' }}>
-            <SaveButton />
-            <DeleteButton mutationMode="optimistic" />
-        </Toolbar>
-    )
-}
+  return (
+    <Toolbar sx={{ justifyContent: "space-between" }}>
+      <SaveButton />
+      <DeleteButton mutationMode="optimistic" />
+    </Toolbar>
+  );
+};
 
 const TransferEdit = () => {
-    const translate = useTranslate();
+  const translate = useTranslate();
 
-    return (
-        <Edit
-            redirect="list"
-            mutationMode={EDIT_MODE}
-            actions={<CustomerTopToolBar />}
-            aside={<EditBaseAside />}
+  return (
+    <>
+      <Edit
+        redirect="list"
+        mutationMode={EDIT_MODE}
+        actions={<CustomerTopToolBar />}
+        aside={<EditBaseAside />}
+      >
+        <SimpleForm
+          shouldUnregister
+          warnWhenUnsavedChanges
+          toolbar={<FormToolbar />}
+          mode="onTouched"
+          defaultValues={{}}
+          // validate={(values) => { }}
         >
-            <SimpleForm
-                shouldUnregister
-                warnWhenUnsavedChanges
-                toolbar={<FormToolbar />}
-                mode="onTouched"
-                defaultValues={{}}
-            // validate={(values) => { }}
-            >
-                <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
-                    <Grid item xs={12} md={8}>
-                        <Typography variant="h6" gutterBottom>
-                            {translate('common.edit.title.main')}
-                        </Typography>
-                        <Stack direction='row' gap={2}>
-                            <TextInput
-                                label="table.field.transfer.code"
-                                source="code"
-                                parse={v => v}
-                                autoFocus
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.transfer.type"
-                                source="type"
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <SelectInput
-                                label="table.field.transfer.source"
-                                source="source"
-                                choices={[
-                                    { id: 1, name: 'ERP绯荤粺' },
-                                    { id:  2, name: 'WMS绯荤粺鐢熸垚' },
-                                    { id:  3, name: 'EXCEL瀵煎叆 ' },
-                                    { id:  4, name: 'QMS绯荤粺' },
-                                ]}
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <SelectInput
-                                label="table.field.transfer.exceStatus"
-                                source="exceStatus"
-                                choices={[
-                                    { id: 0, name: '鏈墽琛�' },
-                                    { id:  1, name: '鎵ц涓�' },
-                                    { id:  2, name: '鎵ц瀹屾垚' },
-                                ]}
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.transfer.orgWareId"
-                                source="orgWareId"
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <TextInput
-                                label="table.field.transfer.orgWareName"
-                                source="orgWareName"
-                                parse={v => v}
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.transfer.tarWareId"
-                                source="tarWareId"
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <TextInput
-                                label="table.field.transfer.tarWareName"
-                                source="tarWareName"
-                                parse={v => v}
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.transfer.orgAreaId"
-                                source="orgAreaId"
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <TextInput
-                                label="table.field.transfer.orgAreaName"
-                                source="orgAreaName"
-                                parse={v => v}
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.transfer.tarAreaId"
-                                source="tarAreaId"
-                            />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
-                            <TextInput
-                                label="table.field.transfer.tarAreaName"
-                                source="tarAreaName"
-                                parse={v => v}
-                            />
-                        </Stack>
-
-                    </Grid>
-                    <Grid item xs={12} md={4}>
-                        <Typography variant="h6" gutterBottom>
-                            {translate('common.edit.title.common')}
-                        </Typography>
-                        <StatusSelectInput />
-                        <Box mt="2em" />
-                        <MemoInput />
-                    </Grid>
-                </Grid>
-            </SimpleForm>
-        </Edit >
-    )
-}
+          <Grid
+            container
+            width={{ xs: "100%", xl: "80%" }}
+            rowSpacing={3}
+            columnSpacing={3}
+          >
+            <Grid item xs={12} md={8}>
+              <Typography variant="h6" gutterBottom>
+                {translate("common.edit.title.main")}
+              </Typography>
+              <Stack direction="row" gap={2}>
+                <TextInput
+                  label="table.field.transfer.code"
+                  source="code"
+                  parse={(v) => v}
+                  autoFocus
+                />
+              </Stack>
+              <Stack direction="row" gap={2}>
+                <NumberInput label="table.field.transfer.type" source="type" />
+                <SelectInput
+                  label="table.field.transfer.source"
+                  source="source"
+                  choices={[
+                    { id: 1, name: "ERP绯荤粺" },
+                    { id: 2, name: "WMS绯荤粺鐢熸垚" },
+                    { id: 3, name: "EXCEL瀵煎叆 " },
+                    { id: 4, name: "QMS绯荤粺" },
+                  ]}
+                />
+                <SelectInput
+                  label="table.field.transfer.exceStatus"
+                  source="exceStatus"
+                  choices={[
+                    { id: 0, name: "鏈墽琛�" },
+                    { id: 1, name: "鎵ц涓�" },
+                    { id: 2, name: "鎵ц瀹屾垚" },
+                  ]}
+                />
+              </Stack>
+              <Stack direction="row" gap={2}>
+                <NumberInput
+                  label="table.field.transfer.orgWareId"
+                  source="orgWareId"
+                />
+                <TextInput
+                  label="table.field.transfer.orgWareName"
+                  source="orgWareName"
+                  parse={(v) => v}
+                />
+                <NumberInput
+                  label="table.field.transfer.tarWareId"
+                  source="tarWareId"
+                />
+                <TextInput
+                  label="table.field.transfer.tarWareName"
+                  source="tarWareName"
+                  parse={(v) => v}
+                />
+              </Stack>
+              <Stack direction="row" gap={2}>
+                <NumberInput
+                  label="table.field.transfer.orgAreaId"
+                  source="orgAreaId"
+                />
+                <TextInput
+                  label="table.field.transfer.orgAreaName"
+                  source="orgAreaName"
+                  parse={(v) => v}
+                />
+                <NumberInput
+                  label="table.field.transfer.tarAreaId"
+                  source="tarAreaId"
+                />
+                <TextInput
+                  label="table.field.transfer.tarAreaName"
+                  source="tarAreaName"
+                  parse={(v) => v}
+                />
+              </Stack>
+            </Grid>
+          </Grid>
+        </SimpleForm>
+      </Edit>
+      <TransferItemList />
+    </>
+  );
+};
 
 export default TransferEdit;

--
Gitblit v1.9.1