From b9d414bc2d61b4824ce6a019b1c10f526f71ced1 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 21 四月 2025 12:56:12 +0800
Subject: [PATCH] #修改   1. 新增DO单,DO单明细

---
 rsf-admin/src/page/basicInfo/loc/LocEdit.jsx |  311 ++++++++++++++++++++-------------------------------
 1 files changed, 125 insertions(+), 186 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx b/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx
index 3ea6793..1e467c5 100644
--- a/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/LocEdit.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,6 +30,9 @@
 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 LocItemList from "./LocItemList";
 
 const FormToolbar = () => {
     const { getValues } = useFormContext();
@@ -42,200 +47,134 @@
 
 const LocEdit = () => {
     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: '80%' }} rowSpacing={3} columnSpacing={3}>
-                    <Grid item xs={12} md={10}>
-                        <Typography variant="h6" gutterBottom>
-                            {translate('common.edit.title.main')}
-                        </Typography>
-                        <Grid container rowSpacing={2} columnSpacing={2}>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <ReferenceInput
-                                    source="warehouseId"
-                                    reference="warehouse"
-                                >
-                                    <AutocompleteInput
-                                        label="table.field.loc.warehouseId"
-                                        optionText="name"
-                                        validate={[required()]}
-                                        filterToQuery={(val) => ({ name: val })}
-                                    />
-                                </ReferenceInput>
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <ReferenceInput
-                                    source="areaId"
-                                    reference="warehouseAreas"
-                                >
-                                    <AutocompleteInput
-                                        label="table.field.loc.areaId"
-                                        optionText="name"
-                                        validate={[required()]}
-                                        filterToQuery={(val) => ({ name: val })}
-                                    />
-                                </ReferenceInput>
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <TextInput
-                                    label="table.field.loc.code"
-                                    source="code"
-                                    parse={v => v}
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <ReferenceInput
-                                    source="type"
-                                    reference="dictData"
-                                    filter={{ dictTypeCode: 'sys_loc_type' }}
-                                >
-                                    <AutocompleteInput
-                                        label="table.field.loc.type"
-                                        optionText="label"
-                                        optionValue="value"
+                <SimpleForm
+                    shouldUnregister
+                    warnWhenUnsavedChanges
+                    toolbar={<FormToolbar />}
+                    mode="onTouched"
+                    defaultValues={{}}
+                // validate={(values) => { }}
+                >
+                    <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}>
+                        <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"
+                                            validate={[required()]}
+                                            onChange={warehouseChange}
+                                            filterToQuery={(val) => ({ name: val })}
+                                        />
+                                    </ReferenceInput>
+                                    <ReferenceInput
+                                        source="areaId"
+                                        reference="warehouseAreas"
+                                        filter={{ warehouseId }}
+                                    >
+                                        <AutocompleteInput
+                                            label="table.field.loc.areaId"
+                                            optionText="name"
+                                            validate={[required()]}
+                                            filterToQuery={(val) => ({ name: val })}
+                                        />
+                                    </ReferenceInput>
+                                    <TextInput
+                                        label="table.field.loc.code"
+                                        source="code"
                                         parse={v => v}
-                                        validate={[required()]}
+                                        validate={required()}
                                     />
-                                </ReferenceInput>
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <TextInput
-                                    label="table.field.loc.name"
-                                    source="name"
-                                    parse={v => v}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.flagLogic"
-                                    source="flagLogic"
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <TextInput
-                                    label="table.field.loc.fucAtrrs"
-                                    source="fucAtrrs"
-                                    parse={v => v}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <TextInput
-                                    label="table.field.loc.barcode"
-                                    source="barcode"
-                                    parse={v => v}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <TextInput
-                                    label="table.field.loc.unit"
-                                    source="unit"
-                                    parse={v => v}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.length"
-                                    source="length"
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.width"
-                                    source="width"
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.height"
-                                    source="height"
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.row"
-                                    source="lrow"
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.col"
-                                    source="col"
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.lev"
-                                    source="lev"
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.channel"
-                                    source="channel"
-                                    validate={required()}
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.maxParts"
-                                    source="maxParts"
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.maxPack"
-                                    source="maxPack"
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <NumberInput
-                                    label="table.field.loc.flagLabelMange"
-                                    source="flagLabelMange"
-                                />
-                            </Grid>
-                            <Grid item xs={6} display="flex" gap={1}>
-                                <TextInput
-                                    label="table.field.loc.locAttrs"
-                                    source="locAttrs"
-                                    parse={v => v}
-                                    validate={required()}
-                                />
+                                    <NumberInput
+                                        label="table.field.loc.length"
+                                        source="length"
+                                        validate={required()}
+                                    />
+
+                                    <NumberInput
+                                        label="table.field.loc.width"
+                                        source="width"
+                                        validate={required()}
+                                    />
+
+                                    <NumberInput
+                                        label="table.field.loc.height"
+                                        source="height"
+                                        validate={required()}
+                                    />
+                                </Grid>
+                                <Grid item display="flex" gap={1}>
+                                    <ReferenceArrayInput source="typeIds" reference="locType" >
+                                        <SelectArrayInput label="table.field.loc.type" validate={[required()]} />
+                                    </ReferenceArrayInput>
+                                    <TextInput
+                                        label="table.field.loc.unit"
+                                        source="unit"
+                                        parse={v => v}
+                                    />
+                                    <DictionarySelect
+                                        label={translate("table.field.loc.useStatus")}
+                                        name="useStatus"
+                                        validate={[required()]}
+                                        size="small"
+                                        dictTypeCode="sys_loc_use_stas"
+                                    />
+                                    <NumberInput
+                                        label="table.field.loc.row"
+                                        source="row"
+                                        validate={required()}
+                                    />
+
+                                    <NumberInput
+                                        label="table.field.loc.col"
+                                        source="col"
+                                        validate={required()}
+                                    />
+
+                                    <NumberInput
+                                        label="table.field.loc.lev"
+                                        source="lev"
+                                        validate={required()}
+                                    />
+                                </Grid>
                             </Grid>
                         </Grid>
-
+                        <Grid item xs={12} md={2}>
+                            <Typography variant="h6" gutterBottom>
+                                {translate('common.edit.title.common')}
+                            </Typography>
+                            <StatusSelectInput />
+                            <Box mt="2em" />
+                            <MemoInput />
+                        </Grid>
                     </Grid>
-                    <Grid item xs={12} md={2}>
-                        <Typography variant="h6" gutterBottom>
-                            {translate('common.edit.title.common')}
-                        </Typography>
-                        <StatusSelectInput />
-                        <Box mt="2em" />
-                        <MemoInput />
-                    </Grid>
-                </Grid>
-            </SimpleForm>
-        </Edit >
+                </SimpleForm>
+            </Edit >
+            <LocItemList />
+        </>
     )
 }
 

--
Gitblit v1.9.1