| import React, { useState, useRef, useEffect, useMemo } from "react"; | 
| import { | 
|     Edit, | 
|     SimpleForm, | 
|     FormDataConsumer, | 
|     useTranslate, | 
|     TextInput, | 
|     NumberInput, | 
|     BooleanInput, | 
|     DateInput, | 
|     SelectInput, | 
|     ReferenceInput, | 
|     SelectArrayInput, | 
|     ReferenceArrayInput, | 
|     AutocompleteInput, | 
|     SaveButton, | 
|     Toolbar, | 
|     Labeled, | 
|     NumberField, | 
|     required, | 
|     useRecordContext, | 
|     DeleteButton, | 
|     useNotify, | 
| } from 'react-admin'; | 
| import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; | 
| import StatusSelectInput from "../components/StatusSelectInput"; | 
| import DictionarySelect from "../components/DictionarySelect"; | 
| import CustomerTopToolBar from "../components/EditTopToolBar"; | 
| import { Stack, Grid, Box, Typography } from '@mui/material'; | 
| import { useWatch, useFormContext } from "react-hook-form"; | 
| import EditBaseAside from "../components/EditBaseAside"; | 
| import MemoInput from "../components/MemoInput"; | 
| import LocPreviewItems from "./LocPreviewItems"; | 
| import * as Common from '@/utils/common'; | 
| import request from '@/utils/request'; | 
|   | 
|   | 
| const LocPreviewEdit = () => { | 
|     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 | 
|                 mutationMode={EDIT_MODE} | 
|                 actions={<CustomerTopToolBar />} | 
|                 aside={<EditBaseAside />} | 
|                 title={"menu.loc"} | 
|             > | 
|                 <SimpleForm | 
|                     shouldUnregister | 
|                     warnWhenUnsavedChanges | 
|                     toolbar={false} | 
|                     mode="onTouched" | 
|                     sx={{ | 
|                         "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": { | 
|                             bgcolor: 'white', | 
|                             WebkitTextFillColor: "rgba(0, 0, 0)" | 
|                         }, | 
|                         "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": { | 
|                             bgcolor: 'white', | 
|                             WebkitTextFillColor: "rgba(0, 0, 0)" | 
|                         }, | 
|                         "& .MuiFilledInput-root.MuiInputBase-sizeSmall": { | 
|                             bgcolor: 'white', | 
|                         } | 
|                     }} | 
|                 // validate={(values) => { }} | 
|                 > | 
|                     <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}> | 
|                         <Grid item xs={12} md={12}> | 
|                             <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 })} | 
|                                             readOnly | 
|                                         /> | 
|                                     </ReferenceInput> | 
|                                     <ReferenceInput | 
|                                         source="areaId" | 
|                                         reference="warehouseAreas" | 
|                                         filter={{ warehouseId }} | 
|                                     > | 
|                                         <AutocompleteInput | 
|                                             label="table.field.loc.areaId" | 
|                                             optionText="name" | 
|                                             validate={[required()]} | 
|                                             filterToQuery={(val) => ({ name: val })} | 
|                                             readOnly | 
|                                         /> | 
|                                     </ReferenceInput> | 
|                                     <TextInput | 
|                                         label="table.field.loc.code" | 
|                                         source="code" | 
|                                         parse={v => v} | 
|                                         validate={required()} | 
|                                         readOnly | 
|                                     /> | 
|                                     <NumberInput | 
|                                         label="table.field.loc.length" | 
|                                         source="length" | 
|                                         readOnly | 
|                                     /> | 
|   | 
|                                     <NumberInput | 
|                                         label="table.field.loc.width" | 
|                                         source="width" | 
|                                         readOnly | 
|                                     /> | 
|   | 
|                                     <NumberInput | 
|                                         label="table.field.loc.height" | 
|                                         source="height" | 
|                                         readOnly | 
|                                     /> | 
|                                 </Grid> | 
|                                 <Grid item display="flex" gap={1}> | 
|                                     <ReferenceArrayInput source="typeIds" reference="locType" > | 
|                                         <SelectArrayInput label="table.field.loc.type"  readOnly/> | 
|                                     </ReferenceArrayInput> | 
|                                     <TextInput | 
|                                         label="table.field.loc.unit" | 
|                                         source="unit" | 
|                                         parse={v => v} | 
|                                         readOnly | 
|                                     /> | 
|                                     <DictionarySelect | 
|                                         label={translate("table.field.loc.useStatus")} | 
|                                         name="useStatus" | 
|                                         validate={[required()]} | 
|                                         size="small" | 
|                                         dictTypeCode="sys_loc_use_stas" | 
|                                         readOnly | 
|                                     /> | 
|                                     <NumberInput | 
|                                         label="table.field.loc.row" | 
|                                         source="row" | 
|                                         validate={required()} | 
|                                         readOnly | 
|                                     /> | 
|   | 
|                                     <NumberInput | 
|                                         label="table.field.loc.col" | 
|                                         source="col" | 
|                                         validate={required()} | 
|                                         readOnly | 
|                                     /> | 
|                                     <NumberInput | 
|                                         label="table.field.loc.lev" | 
|                                         source="lev" | 
|                                         validate={required()} | 
|                                         readOnly | 
|                                     /> | 
|                                 </Grid> | 
|                             </Grid> | 
|                         </Grid> | 
|                     </Grid> | 
|                 </SimpleForm> | 
|             </Edit > | 
|             <LocPreviewItems /> | 
|         </> | 
|     ) | 
| } | 
|   | 
| export default LocPreviewEdit; |