|  |  | 
 |  |  |     DateInput, | 
 |  |  |     SelectInput, | 
 |  |  |     ReferenceInput, | 
 |  |  |     SelectArrayInput, | 
 |  |  |     ReferenceArrayInput, | 
 |  |  |     AutocompleteInput, | 
 |  |  |     SaveButton, | 
 |  |  | 
 |  |  |     required, | 
 |  |  |     useRecordContext, | 
 |  |  |     DeleteButton, | 
 |  |  |     useNotify, | 
 |  |  | } from 'react-admin'; | 
 |  |  | import { useWatch, useFormContext } from "react-hook-form"; | 
 |  |  | import { Stack, Grid, Box, Typography } from '@mui/material'; | 
 |  |  | 
 |  |  | 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 /> | 
 |  |  |         </> | 
 |  |  |     ) | 
 |  |  | } | 
 |  |  |  |