From 97c21abaebf6cb6cf15f8a7e3830676533d90dac Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期三, 26 十一月 2025 13:06:31 +0800
Subject: [PATCH] 添加库存明细功能

---
 rsf-admin/src/page/locItem/LocItemEdit.jsx |  347 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 192 insertions(+), 155 deletions(-)

diff --git a/rsf-admin/src/page/locItem/LocItemEdit.jsx b/rsf-admin/src/page/locItem/LocItemEdit.jsx
index 0274fb8..8073eed 100644
--- a/rsf-admin/src/page/locItem/LocItemEdit.jsx
+++ b/rsf-admin/src/page/locItem/LocItemEdit.jsx
@@ -10,7 +10,6 @@
     DateInput,
     SelectInput,
     ReferenceInput,
-    SelectArrayInput,
     ReferenceArrayInput,
     AutocompleteInput,
     SaveButton,
@@ -20,7 +19,6 @@
     required,
     useRecordContext,
     DeleteButton,
-    useNotify,
 } from 'react-admin';
 import { useWatch, useFormContext } from "react-hook-form";
 import { Stack, Grid, Box, Typography } from '@mui/material';
@@ -30,175 +28,214 @@
 import CustomerTopToolBar from "../components/EditTopToolBar";
 import MemoInput from "../components/MemoInput";
 import StatusSelectInput from "../components/StatusSelectInput";
-import request from '@/utils/request';
-import DictionarySelect from "../components/DictionarySelect";
-import LocQueryList from "./LocQueryList";
 
 const FormToolbar = () => {
     const { getValues } = useFormContext();
 
     return (
-        <Toolbar sx={{ justifyContent: 'end' }}>
+        <Toolbar sx={{ justifyContent: 'space-between' }}>
+            <SaveButton />
+            <DeleteButton mutationMode="optimistic" />
         </Toolbar>
     )
 }
 
 const LocItemEdit = () => {
     const translate = useTranslate();
-    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_loc_type')) || [];
-    const [warehouseId, setWrehouseId] = useState();
-
-    const warehouseChange = (val) => {
-        setWrehouseId(val)
-    }
 
     return (
-        <>
-            <Edit
-                redirect="list"
-                mutationMode={EDIT_MODE}
-                actions={<CustomerTopToolBar />}
-                aside={<EditBaseAside />}
-                title={"menu.loc"}
+        <Edit
+            redirect="list"
+            mutationMode={EDIT_MODE}
+            actions={<CustomerTopToolBar />}
+            aside={<EditBaseAside />}
+        >
+            <SimpleForm
+                shouldUnregister
+                warnWhenUnsavedChanges
+                toolbar={<FormToolbar />}
+                mode="onTouched"
+                defaultValues={{}}
+            // validate={(values) => { }}
             >
-                <SimpleForm
-                    shouldUnregister
-                    warnWhenUnsavedChanges
-                    toolbar={false}
-                    mode="onTouched"
-                    defaultValues={{}}
-                // validate={(values) => { }}
-                >
-                    <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}
-                        sx={{
-                            "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
-                                bgcolor: 'white',
-                                WebkitTextFillColor: "rgba(0, 0, 0)"
-                            },
+                <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}>
+                            <NumberInput
+                                label="table.field.locItem.locId"
+                                source="locId"
+                                autoFocus
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.locCode"
+                                source="locCode"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.orderId"
+                                source="orderId"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.type"
+                                source="type"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.orderItemId"
+                                source="orderItemId"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.wkType"
+                                source="wkType"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.matnrId"
+                                source="matnrId"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.maktx"
+                                source="maktx"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.platItemId"
+                                source="platItemId"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.platOrderCode"
+                                source="platOrderCode"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.platWorkCode"
+                                source="platWorkCode"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.projectCode"
+                                source="projectCode"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.matnrCode"
+                                source="matnrCode"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.trackCode"
+                                source="trackCode"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.unit"
+                                source="unit"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.anfme"
+                                source="anfme"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.qty"
+                                source="qty"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.workQty"
+                                source="workQty"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.batch"
+                                source="batch"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.splrBatch"
+                                source="splrBatch"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <NumberInput
+                                label="table.field.locItem.splrId"
+                                source="splrId"
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.spec"
+                                source="spec"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.model"
+                                source="model"
+                                parse={v => v}
+                            />
+                        </Stack>
+                        <Stack direction='row' gap={2}>
+                            <TextInput
+                                label="table.field.locItem.fieldsIndex"
+                                source="fieldsIndex"
+                                parse={v => v}
+                            />
+                        </Stack>
 
-                            "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
-                                bgcolor: 'white',
-                                WebkitTextFillColor: "rgba(0, 0, 0)"
-                            },
-                            "& .MuiFilledInput-root.MuiInputBase-sizeSmall": {
-                                bgcolor: 'white',
-                            }
-                        }}
-                    >
-                        <Grid item xs={12} md={10}>
-                            <Typography variant="h6" gutterBottom>
-                                {translate('common.edit.title.main')}
-                            </Typography>
-                            <Grid container rowSpacing={2} columnSpacing={2}>
-                                <Grid item display="flex" gap={2}>
-                                    <ReferenceInput
-                                        source="warehouseId"
-                                        reference="warehouse"
-                                    >
-                                        <AutocompleteInput
-                                            label="table.field.loc.warehouseId"
-                                            optionText="name"
-                                            readOnly
-                                            validate={[required()]}
-                                            onChange={warehouseChange}
-                                            filterToQuery={(val) => ({ name: val })}
-                                        />
-                                    </ReferenceInput>
-                                    <ReferenceInput
-                                        source="areaId"
-                                        reference="warehouseAreas"
-                                        filter={{ warehouseId }}
-                                    >
-                                        <AutocompleteInput
-                                            label="table.field.loc.areaId"
-                                            optionText="name"
-                                            readOnly
-                                            validate={[required()]}
-                                            filterToQuery={(val) => ({ name: val })}
-                                        />
-                                    </ReferenceInput>
-                                    <TextInput
-                                        label="table.field.loc.code"
-                                        source="code"
-                                        parse={v => v}
-                                        readOnly
-                                        validate={required()}
-                                    />
-                                    <NumberInput
-                                        label="table.field.loc.length"
-                                        source="length"
-                                        readOnly
-                                        validate={required()}
-                                    />
-
-                                    <NumberInput
-                                        label="table.field.loc.width"
-                                        source="width"
-                                        readOnly
-                                        validate={required()}
-                                    />
-
-                                    <NumberInput
-                                        label="table.field.loc.height"
-                                        source="height"
-                                        readOnly
-                                        validate={required()}
-                                    />
-                                </Grid>
-                                <Grid item display="flex" gap={1}>
-                                    <ReferenceArrayInput source="typeIds" reference="locType" >
-                                        <SelectArrayInput label="table.field.loc.type" readOnly validate={[required()]} />
-                                    </ReferenceArrayInput>
-                                    <TextInput
-                                        label="table.field.loc.unit"
-                                        source="unit"
-                                        readOnly
-                                        parse={v => v}
-                                    />
-                                    <DictionarySelect
-                                        label={translate("table.field.loc.useStatus")}
-                                        name="useStatus"
-                                        validate={[required()]}
-                                        readOnly
-                                        size="small"
-                                        dictTypeCode="sys_loc_use_stas"
-                                    />
-                                    <NumberInput
-                                        label="table.field.loc.row"
-                                        source="row"
-                                        readOnly
-                                        validate={required()}
-                                    />
-
-                                    <NumberInput
-                                        label="table.field.loc.col"
-                                        source="col"
-                                        readOnly
-                                        validate={required()}
-                                    />
-
-                                    <NumberInput
-                                        label="table.field.loc.lev"
-                                        source="lev"
-                                        readOnly
-                                        validate={required()}
-                                    />
-                                </Grid>
-                            </Grid>
-                        </Grid>
-                        {/* <Grid item xs={12} md={2}>
-                            <Typography variant="h6" gutterBottom>
-                                {translate('common.edit.title.common')}
-                            </Typography>
-                            <StatusSelectInput readOnly />
-                            <Box mt="2em" />
-                            <MemoInput />
-                        </Grid> */}
                     </Grid>
-                </SimpleForm>
-            </Edit >
-            <LocQueryList />
-        </>
+                    <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 >
     )
 }
 

--
Gitblit v1.9.1