From bfc43ca0e4683c1c0322a6cad5d5be2bc07decc3 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 24 七月 2025 15:00:44 +0800
Subject: [PATCH] 新增调拔单功能 盘点功能优化

---
 rsf-admin/src/page/locItem/LocItemEdit.jsx |  282 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 153 insertions(+), 129 deletions(-)

diff --git a/rsf-admin/src/page/locItem/LocItemEdit.jsx b/rsf-admin/src/page/locItem/LocItemEdit.jsx
index 120f850..0274fb8 100644
--- a/rsf-admin/src/page/locItem/LocItemEdit.jsx
+++ b/rsf-admin/src/page/locItem/LocItemEdit.jsx
@@ -10,6 +10,7 @@
     DateInput,
     SelectInput,
     ReferenceInput,
+    SelectArrayInput,
     ReferenceArrayInput,
     AutocompleteInput,
     SaveButton,
@@ -19,6 +20,7 @@
     required,
     useRecordContext,
     DeleteButton,
+    useNotify,
 } from 'react-admin';
 import { useWatch, useFormContext } from "react-hook-form";
 import { Stack, Grid, Box, Typography } from '@mui/material';
@@ -28,153 +30,175 @@
 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' }}>
-            <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 />}
-        >
-            <SimpleForm
-                shouldUnregister
-                warnWhenUnsavedChanges
-                toolbar={<FormToolbar />}
-                mode="onTouched"
-                defaultValues={{}}
-            // validate={(values) => { }}
+        <>
+            <Edit
+                redirect="list"
+                mutationMode={EDIT_MODE}
+                actions={<CustomerTopToolBar />}
+                aside={<EditBaseAside />}
+                title={"menu.loc"}
             >
-                <Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}>
-                    <Grid item xs={14} md={10}>
-                        <Typography variant="h6" gutterBottom>
-                            {translate('common.edit.title.main')}
-                        </Typography>
-                        <Stack direction='row' gap={2}>
-                            <NumberInput
-                                label="table.field.locItem.locId"
-                                source="locId"
-                                autoFocus
-                            />
-                            <TextInput
-                                label="table.field.locItem.locCode"
-                                source="locCode"
-                                parse={v => v}
-                            />
-                            <NumberInput
-                                label="table.field.locItem.orderId"
-                                source="orderId"
-                            />
-                            <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"
-                            />
-                            <NumberInput
-                                label="table.field.locItem.wkType"
-                                source="wkType"
-                            />
-                            <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}
-                            />
+                <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)"
+                            },
 
-                            <TextInput
-                                label="table.field.locItem.matnrCode"
-                                source="matnrCode"
-                                parse={v => v}
-                            />
-                            <TextInput
-                                label="table.field.locItem.trackCode"
-                                source="trackCode"
-                                parse={v => v}
-                            />
-                            <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"
-                            />
-                            <NumberInput
-                                label="table.field.locItem.qty"
-                                source="qty"
-                            />
-                            <NumberInput
-                                label="table.field.locItem.workQty"
-                                source="workQty"
-                            />
-                            <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}
-                            />
-                            <TextInput
-                                label="table.field.locItem.spec"
-                                source="spec"
-                                parse={v => v}
-                            />
-                            <TextInput
-                                label="table.field.locItem.model"
-                                source="model"
-                                parse={v => v}
-                            />
-                            <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>
-                    <Grid item xs={10} md={2}>
-                        <Typography variant="h6" gutterBottom>
-                            {translate('common.edit.title.common')}
-                        </Typography>
-                        <StatusSelectInput />
-                        <Box mt="2em" />
-                        <MemoInput />
-                    </Grid>
-                </Grid>
-            </SimpleForm>
-        </Edit >
+                </SimpleForm>
+            </Edit >
+            <LocQueryList />
+        </>
     )
 }
 

--
Gitblit v1.9.1