|  |  | 
 |  |  | import DialogCloseButton from "../components/DialogCloseButton"; | 
 |  |  | import StatusSelectInput from "../components/StatusSelectInput"; | 
 |  |  | import MemoInput from "../components/MemoInput"; | 
 |  |  | import request from '@/utils/request'; | 
 |  |  |  | 
 |  |  | const BusCreate = (props) => { | 
 |  |  |     const { open, setOpen } = props; | 
 |  |  |  | 
 |  |  |     const translate = useTranslate(); | 
 |  |  |     const notify = useNotify(); | 
 |  |  |  | 
 |  |  |     const [locStsIdByStock, setLocStsIdByStock] = useState(null); | 
 |  |  |     const [locStsIdByIdle, setLocStsIdByIdle] = useState(null); | 
 |  |  |  | 
 |  |  |     useEffect(() => { | 
 |  |  |         const queryLocStsByStock = async () => { | 
 |  |  |             request.post('/locSts/list', { | 
 |  |  |                 uuid: 'STOCK' | 
 |  |  |             }, { | 
 |  |  |                 headers: { | 
 |  |  |                     'Content-Type': 'application/x-www-form-urlencoded' | 
 |  |  |                 } | 
 |  |  |             }).then(res => { | 
 |  |  |                 setLocStsIdByStock(res.data.data[0]?.id); | 
 |  |  |             }) | 
 |  |  |         } | 
 |  |  |         const queryLocStsByIdle = async () => { | 
 |  |  |             request.post('/locSts/list', { | 
 |  |  |                 uuid: 'IDLE' | 
 |  |  |             }, { | 
 |  |  |                 headers: { | 
 |  |  |                     'Content-Type': 'application/x-www-form-urlencoded' | 
 |  |  |                 } | 
 |  |  |             }).then(res => { | 
 |  |  |                 setLocStsIdByIdle(res.data.data[0]?.id); | 
 |  |  |             }) | 
 |  |  |         } | 
 |  |  |         if (open) { | 
 |  |  |             console.log(1); | 
 |  |  |  | 
 |  |  |             queryLocStsByStock(); | 
 |  |  |             queryLocStsByIdle(); | 
 |  |  |         } | 
 |  |  |     }, [open]) | 
 |  |  |  | 
 |  |  |     const handleClose = (event, reason) => { | 
 |  |  |         if (reason !== "backdropClick") { | 
 |  |  | 
 |  |  |  | 
 |  |  |     return ( | 
 |  |  |         <> | 
 |  |  |             <CreateBase | 
 |  |  |                 record={{}} | 
 |  |  |                 transform={(data) => { | 
 |  |  |                     return data; | 
 |  |  |                 }} | 
 |  |  |                 mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} | 
 |  |  |             > | 
 |  |  |                 <Dialog | 
 |  |  |                     open={open} | 
 |  |  |                     onClose={handleClose} | 
 |  |  |                     aria-labelledby="form-dialog-title" | 
 |  |  |                     fullWidth | 
 |  |  |                     disableRestoreFocus | 
 |  |  |                     maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 
 |  |  |             {(locStsIdByStock && locStsIdByIdle) && ( | 
 |  |  |                 <CreateBase | 
 |  |  |                     record={{}} | 
 |  |  |                     transform={(data) => { | 
 |  |  |                         return data; | 
 |  |  |                     }} | 
 |  |  |                     mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} | 
 |  |  |                 > | 
 |  |  |                     <Form> | 
 |  |  |                         <DialogTitle id="form-dialog-title" sx={{ | 
 |  |  |                             position: 'sticky', | 
 |  |  |                             top: 0, | 
 |  |  |                             backgroundColor: 'background.paper', | 
 |  |  |                             zIndex: 1000 | 
 |  |  |                         }} | 
 |  |  |                         > | 
 |  |  |                             {translate('create.title')} | 
 |  |  |                             <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> | 
 |  |  |                                 <DialogCloseButton onClose={handleClose} /> | 
 |  |  |                             </Box> | 
 |  |  |                         </DialogTitle> | 
 |  |  |                         <DialogContent> | 
 |  |  |                             <Grid container rowSpacing={2} columnSpacing={2}> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <TextInput | 
 |  |  |                                         label="table.field.bus.busNo" | 
 |  |  |                                         source="busNo" | 
 |  |  |                                         parse={v => v} | 
 |  |  |                                         validate={required()} | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                     <DateTimeInput | 
 |  |  |                                         label="table.field.bus.startTime" | 
 |  |  |                                         source="startTime" | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                     <Dialog | 
 |  |  |                         open={open} | 
 |  |  |                         onClose={handleClose} | 
 |  |  |                         aria-labelledby="form-dialog-title" | 
 |  |  |                         fullWidth | 
 |  |  |                         disableRestoreFocus | 
 |  |  |                         maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 
 |  |  |                     > | 
 |  |  |                         <Form> | 
 |  |  |                             <DialogTitle id="form-dialog-title" sx={{ | 
 |  |  |                                 position: 'sticky', | 
 |  |  |                                 top: 0, | 
 |  |  |                                 backgroundColor: 'background.paper', | 
 |  |  |                                 zIndex: 1000 | 
 |  |  |                             }} | 
 |  |  |                             > | 
 |  |  |                                 {translate('create.title')} | 
 |  |  |                                 <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> | 
 |  |  |                                     <DialogCloseButton onClose={handleClose} /> | 
 |  |  |                                 </Box> | 
 |  |  |                             </DialogTitle> | 
 |  |  |                             <DialogContent> | 
 |  |  |                                 <Grid container rowSpacing={2} columnSpacing={2}> | 
 |  |  |                                     <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                         <TextInput | 
 |  |  |                                             label="table.field.bus.busNo" | 
 |  |  |                                             source="busNo" | 
 |  |  |                                             parse={v => v} | 
 |  |  |                                             validate={required()} | 
 |  |  |                                         /> | 
 |  |  |                                     </Grid> | 
 |  |  |                                     <Grid item xs={6} display="flex" gap={1}> | 
 |  |  |                                         <DateTimeInput | 
 |  |  |                                             label="table.field.bus.startTime" | 
 |  |  |                                             source="startTime" | 
 |  |  |                                         /> | 
 |  |  |                                     </Grid> | 
 |  |  |  | 
 |  |  |                                 <Grid item xs={12} display="flex" gap={1}> | 
 |  |  |                                     <ArrayInput | 
 |  |  |                                         source="taskList" | 
 |  |  |                                         validate={[required()]} | 
 |  |  |                                     > | 
 |  |  |                                         <SimpleFormIterator fullWidth getItemLabel={index => `#${index + 1}`}> | 
 |  |  |                                             <Box mt={1} /> | 
 |  |  |                                             <Stack direction="row" spacing={2}> | 
 |  |  |                                                 <TextInput source="seqNum" /> | 
 |  |  |                                                 <NumberInput source="priority" defaultValue={1} /> | 
 |  |  |                                             </Stack> | 
 |  |  |                                             <Stack direction="row" spacing={2}> | 
 |  |  |                                                 <ReferenceInput | 
 |  |  |                                                     source="oriSta" | 
 |  |  |                                                     reference="sta" | 
 |  |  |                                                 > | 
 |  |  |                                                     <AutocompleteInput | 
 |  |  |                                                         label="table.field.task.oriSta" | 
 |  |  |                                                         optionText="staNo" | 
 |  |  |                                                         filterToQuery={(val) => ({ staNo: val })} | 
 |  |  |                                                     /> | 
 |  |  |                                                 </ReferenceInput> | 
 |  |  |                                                 <ReferenceInput | 
 |  |  |                                                     source="oriLoc" | 
 |  |  |                                                     reference="loc" | 
 |  |  |                                                 > | 
 |  |  |                                                     <AutocompleteInput | 
 |  |  |                                                         label="table.field.task.oriLoc" | 
 |  |  |                                                         optionText="locNo" | 
 |  |  |                                                         filterToQuery={(val) => ({ locNo: val })} | 
 |  |  |                                                     /> | 
 |  |  |                                                 </ReferenceInput> | 
 |  |  |                                             </Stack> | 
 |  |  |                                             <Stack direction="row" spacing={2}> | 
 |  |  |                                                 <ReferenceInput | 
 |  |  |                                                     source="destSta" | 
 |  |  |                                                     reference="sta" | 
 |  |  |                                                 > | 
 |  |  |                                                     <AutocompleteInput | 
 |  |  |                                                         label="table.field.task.destSta" | 
 |  |  |                                                         optionText="staNo" | 
 |  |  |                                                         filterToQuery={(val) => ({ staNo: val })} | 
 |  |  |                                                     /> | 
 |  |  |                                                 </ReferenceInput> | 
 |  |  |                                                 <ReferenceInput | 
 |  |  |                                                     source="destLoc" | 
 |  |  |                                                     reference="loc" | 
 |  |  |                                                 > | 
 |  |  |                                                     <AutocompleteInput | 
 |  |  |                                                         label="table.field.task.destLoc" | 
 |  |  |                                                         optionText="locNo" | 
 |  |  |                                                         filterToQuery={(val) => ({ locNo: val })} | 
 |  |  |                                                     /> | 
 |  |  |                                                 </ReferenceInput> | 
 |  |  |                                             </Stack> | 
 |  |  |                                         </SimpleFormIterator> | 
 |  |  |                                     </ArrayInput> | 
 |  |  |                                     <Grid item xs={12} display="flex" gap={1}> | 
 |  |  |                                         <ArrayInput | 
 |  |  |                                             source="taskList" | 
 |  |  |                                             validate={[required()]} | 
 |  |  |                                         > | 
 |  |  |                                             <SimpleFormIterator fullWidth getItemLabel={index => `#${index + 1}`}> | 
 |  |  |                                                 <Box mt={1} /> | 
 |  |  |                                                 <Stack direction="row" spacing={2}> | 
 |  |  |                                                     <ReferenceInput | 
 |  |  |                                                         source="oriSta" | 
 |  |  |                                                         reference="sta" | 
 |  |  |                                                     > | 
 |  |  |                                                         <AutocompleteInput | 
 |  |  |                                                             label="table.field.task.oriSta" | 
 |  |  |                                                             optionText="staNo" | 
 |  |  |                                                             filterToQuery={(val) => ({ staNo: val })} | 
 |  |  |                                                         /> | 
 |  |  |                                                     </ReferenceInput> | 
 |  |  |                                                     <ReferenceInput | 
 |  |  |                                                         source="oriLoc" | 
 |  |  |                                                         reference="loc" | 
 |  |  |                                                         filter={{ locSts: locStsIdByStock }} | 
 |  |  |                                                     > | 
 |  |  |                                                         <AutocompleteInput | 
 |  |  |                                                             label="table.field.task.oriLoc" | 
 |  |  |                                                             optionText="locNo" | 
 |  |  |                                                             filterToQuery={(val) => ({ locNo: val })} | 
 |  |  |                                                         /> | 
 |  |  |                                                     </ReferenceInput> | 
 |  |  |                                                 </Stack> | 
 |  |  |                                                 <Stack direction="row" spacing={2}> | 
 |  |  |                                                     <ReferenceInput | 
 |  |  |                                                         source="destSta" | 
 |  |  |                                                         reference="sta" | 
 |  |  |                                                     > | 
 |  |  |                                                         <AutocompleteInput | 
 |  |  |                                                             label="table.field.task.destSta" | 
 |  |  |                                                             optionText="staNo" | 
 |  |  |                                                             filterToQuery={(val) => ({ staNo: val })} | 
 |  |  |                                                         /> | 
 |  |  |                                                     </ReferenceInput> | 
 |  |  |                                                     <ReferenceInput | 
 |  |  |                                                         source="destLoc" | 
 |  |  |                                                         reference="loc" | 
 |  |  |                                                         filter={{ locSts: locStsIdByIdle }} | 
 |  |  |                                                     > | 
 |  |  |                                                         <AutocompleteInput | 
 |  |  |                                                             label="table.field.task.destLoc" | 
 |  |  |                                                             optionText="locNo" | 
 |  |  |                                                             filterToQuery={(val) => ({ locNo: val })} | 
 |  |  |                                                         /> | 
 |  |  |                                                     </ReferenceInput> | 
 |  |  |                                                 </Stack> | 
 |  |  |                                                 <Stack direction="row" spacing={2} sx={{ maxWidth: '50%' }}> | 
 |  |  |                                                     {/* <TextInput source="seqNum" /> */} | 
 |  |  |                                                     <NumberInput source="priority" defaultValue={1} /> | 
 |  |  |                                                 </Stack> | 
 |  |  |                                             </SimpleFormIterator> | 
 |  |  |                                         </ArrayInput> | 
 |  |  |                                     </Grid> | 
 |  |  |                                     <Grid item xs={12} display="flex" gap={1}> | 
 |  |  |                                         <Stack direction="column" spacing={1} width={'100%'}> | 
 |  |  |                                             <MemoInput /> | 
 |  |  |                                         </Stack> | 
 |  |  |                                     </Grid> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item xs={12} display="flex" gap={1}> | 
 |  |  |                                     <Stack direction="column" spacing={1} width={'100%'}> | 
 |  |  |                                         <MemoInput /> | 
 |  |  |                                     </Stack> | 
 |  |  |                                 </Grid> | 
 |  |  |                             </Grid> | 
 |  |  |                         </DialogContent> | 
 |  |  |                         <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> | 
 |  |  |                             <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }}  > | 
 |  |  |                                 <SaveButton /> | 
 |  |  |                             </Toolbar> | 
 |  |  |                         </DialogActions> | 
 |  |  |                     </Form> | 
 |  |  |                 </Dialog> | 
 |  |  |             </CreateBase> | 
 |  |  |                             </DialogContent> | 
 |  |  |                             <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> | 
 |  |  |                                 <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }}  > | 
 |  |  |                                     <SaveButton /> | 
 |  |  |                                 </Toolbar> | 
 |  |  |                             </DialogActions> | 
 |  |  |                         </Form> | 
 |  |  |                     </Dialog> | 
 |  |  |                 </CreateBase> | 
 |  |  |             )} | 
 |  |  |         </> | 
 |  |  |     ) | 
 |  |  | } |