|  |  | 
 |  |  | import { | 
 |  |  |     Edit, | 
 |  |  |     SimpleForm, | 
 |  |  |     FormDataConsumer, | 
 |  |  |     useTranslate, | 
 |  |  |     TextInput, | 
 |  |  |     NumberInput, | 
 |  |  |     BooleanInput, | 
 |  |  |     DateInput, | 
 |  |  |     SelectInput, | 
 |  |  |     ReferenceInput, | 
 |  |  |     ReferenceArrayInput, | 
 |  |  |     AutocompleteInput, | 
 |  |  |     SaveButton, | 
 |  |  |     Toolbar, | 
 |  |  |     Labeled, | 
 |  |  |     NumberField, | 
 |  |  |     required, | 
 |  |  |     useRecordContext, | 
 |  |  |     DeleteButton, | 
 |  |  | } from 'react-admin'; | 
 |  |  | import { useWatch, useFormContext } from "react-hook-form"; | 
 |  |  | import { Stack, Grid, Box, Typography } from '@mui/material'; | 
 |  |  | import * as Common from '@/utils/common'; | 
 |  |  | import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; | 
 |  |  | import EditBaseAside from "../components/EditBaseAside"; | 
 |  |  | import CustomerTopToolBar from "../components/EditTopToolBar"; | 
 |  |  | import MemoInput from "../components/MemoInput"; | 
 |  |  | import StatusSelectInput from "../components/StatusSelectInput"; | 
 |  |  | import WaitPakinItemList from "./WaitPakinItemList"; | 
 |  |  |  | 
 |  |  | const FormToolbar = () => { | 
 |  |  |     const { getValues } = useFormContext(); | 
 |  |  |  | 
 |  |  |     return ( | 
 |  |  |         <Toolbar sx={{ justifyContent: 'space-between' }}> | 
 |  |  |         <Toolbar sx={{ justifyContent: 'end' }}> | 
 |  |  |             <SaveButton /> | 
 |  |  |             <DeleteButton mutationMode="optimistic" /> | 
 |  |  |         </Toolbar> | 
 |  |  | 
 |  |  |     const translate = useTranslate(); | 
 |  |  |  | 
 |  |  |     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 />} | 
 |  |  |             > | 
 |  |  |                 <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}> | 
 |  |  |                             <TextInput | 
 |  |  |                                 label="table.field.waitPakin.code" | 
 |  |  |                                 source="code" | 
 |  |  |                                 parse={v => v} | 
 |  |  |                                 autoFocus | 
 |  |  |                             /> | 
 |  |  |                         </Stack> | 
 |  |  |                         <Stack direction='row' gap={2}> | 
 |  |  |                             <NumberInput | 
 |  |  |                                 label="table.field.waitPakin.ansId" | 
 |  |  |                                 source="ansId" | 
 |  |  |                             /> | 
 |  |  |                         </Stack> | 
 |  |  |                         <Stack direction='row' gap={2}> | 
 |  |  |                             <TextInput | 
 |  |  |                                 label="table.field.waitPakin.asnCode" | 
 |  |  |                                 source="asnCode" | 
 |  |  |                                 parse={v => v} | 
 |  |  |                             /> | 
 |  |  |                         </Stack> | 
 |  |  |                         <Stack direction='row' gap={2}> | 
 |  |  |                             <TextInput | 
 |  |  |                                 label="table.field.waitPakin.barcode" | 
 |  |  |                                 source="barcode" | 
 |  |  |                                 parse={v => v} | 
 |  |  |                             /> | 
 |  |  |                         </Stack> | 
 |  |  |                         <Stack direction='row' gap={2}> | 
 |  |  |                             <NumberInput | 
 |  |  |                                 label="table.field.waitPakin.anfme" | 
 |  |  |                                 source="anfme" | 
 |  |  |                             /> | 
 |  |  |                         </Stack> | 
 |  |  |                         <Stack direction='row' gap={2}> | 
 |  |  |                             <SelectInput | 
 |  |  |                                 label="table.field.waitPakin.ioStatus" | 
 |  |  |                                 source="ioStatus" | 
 |  |  |                                 choices={[ | 
 |  |  |                                     { id: 0, name: '待入库' }, | 
 |  |  |                                     { id:  1, name: ' 入库中' }, | 
 |  |  |                                 ]} | 
 |  |  |                             /> | 
 |  |  |                         </Stack> | 
 |  |  |                 <SimpleForm | 
 |  |  |                     sx={{ | 
 |  |  |                         '& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled': { | 
 |  |  |                             bgcolor: "white", | 
 |  |  |                             color: "black", | 
 |  |  |                             '-webkit-text-fill-color': "rgba(0, 0, 0)" | 
 |  |  |                         }, | 
 |  |  |                         '& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled': { | 
 |  |  |                             color: 'rgba(0, 0, 0, 0.77)' | 
 |  |  |                         } | 
 |  |  |                     }} | 
 |  |  |                     shouldUnregister | 
 |  |  |                     warnWhenUnsavedChanges | 
 |  |  |                     toolbar={<></>} | 
 |  |  |                     mode="onTouched" | 
 |  |  |                     defaultValues={{}} | 
 |  |  |                 > | 
 |  |  |                     <Grid container width={{ xs: '100%', xl: '100%' }}> | 
 |  |  |                         <Grid item xs={24} md={12}> | 
 |  |  |                             <Typography variant="h6" gutterBottom> | 
 |  |  |                                 {translate('common.edit.title.main')} | 
 |  |  |                             </Typography> | 
 |  |  |                             <Stack direction='row' gap={2}> | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label="table.field.waitPakin.code" | 
 |  |  |                                     source="code" | 
 |  |  |                                     readOnly | 
 |  |  |                                     parse={v => v} | 
 |  |  |                                     autoFocus | 
 |  |  |                                 /> | 
 |  |  |                                 <SelectInput | 
 |  |  |                                     label="table.field.waitPakin.flagDefect" | 
 |  |  |                                     readOnly | 
 |  |  |                                     source="flagDefect" | 
 |  |  |                                     choices={[ | 
 |  |  |                                         { id: 0, name: '否' }, | 
 |  |  |                                         { id: 1, name: ' 是' }, | 
 |  |  |                                     ]} | 
 |  |  |                                 /> | 
 |  |  |  | 
 |  |  |                                 <TextInput | 
 |  |  |                                     label="table.field.waitPakin.barcode" | 
 |  |  |                                     readOnly | 
 |  |  |                                     source="barcode" | 
 |  |  |                                     parse={v => v} | 
 |  |  |                                 /> | 
 |  |  |                                 <NumberInput | 
 |  |  |                                     label="table.field.waitPakin.anfme" | 
 |  |  |                                     readOnly | 
 |  |  |                                     source="anfme" | 
 |  |  |                                 /> | 
 |  |  |                                 <SelectInput | 
 |  |  |                                     label="table.field.waitPakin.ioStatus" | 
 |  |  |                                     readOnly | 
 |  |  |                                     source="ioStatus" | 
 |  |  |                                     choices={[ | 
 |  |  |                                         { id: 0, name: '待入库' }, | 
 |  |  |                                         { id: 1, name: ' 入库中' }, | 
 |  |  |                                     ]} | 
 |  |  |                                 /> | 
 |  |  |                             </Stack> | 
 |  |  |                         </Grid> | 
 |  |  |                     </Grid> | 
 |  |  |                     <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 > | 
 |  |  |                 </SimpleForm> | 
 |  |  |             </Edit > | 
 |  |  |             <WaitPakinItemList /> | 
 |  |  |         </> | 
 |  |  |     ) | 
 |  |  | } | 
 |  |  |  |