|  |  | 
 |  |  |     MenuItem | 
 |  |  | } from '@mui/material'; | 
 |  |  | import DialogCloseButton from "../../components/DialogCloseButton"; | 
 |  |  | import StatusSelectInput from "../../components/StatusSelectInput"; | 
 |  |  | import ConfirmButton from "../../components/ConfirmButton"; | 
 |  |  | import MatnrInfoModal from "./MatnrInfoModal"; | 
 |  |  | import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form"; | 
 |  |  | import SaveIcon from '@mui/icons-material/Save'; | 
 |  |  | import request from '@/utils/request'; | 
 |  |  | import { Add, Edit, Delete } from '@mui/icons-material'; | 
 |  |  | import _, { set } from 'lodash'; | 
 |  |  | import { DataGrid, useGridApiRef } from '@mui/x-data-grid'; | 
 |  |  | import DictionarySelect from "../../components/DictionarySelect"; | 
 |  |  | import DictSelect from "../../components/DictSelect"; | 
 |  |  | import "./asnOrder.css"; | 
 |  |  |  | 
 |  |  | const SelectMatnrModal = (props) => { | 
 |  |  |     const { open, setOpen, asnId, billReload } = props; | 
 |  |  | 
 |  |  |  | 
 |  |  |     const [formData, setFormData] = useState({ | 
 |  |  |         type: '', | 
 |  |  |         wkType: '', | 
 |  |  |         wkType: '7', | 
 |  |  |         checkType: '0', | 
 |  |  |         poCode: '', | 
 |  |  |         logisNo: '', | 
 |  |  |         arrTime: '' | 
 |  |  | 
 |  |  |     const resetData = () => { | 
 |  |  |         setFormData({ | 
 |  |  |             type: '', | 
 |  |  |             wkType: '', | 
 |  |  |             wkType: '7', | 
 |  |  |             checkType: '0', | 
 |  |  |             poCode: '', | 
 |  |  |             logisNo: '', | 
 |  |  |             arrTime: '' | 
 |  |  | 
 |  |  |                 "orders": formData, | 
 |  |  |                 "items": tabelData, | 
 |  |  |             } | 
 |  |  |             const res = await request.post(`/outStock/items/save`, parmas); | 
 |  |  |             const res = await request.post(`/check/items/save`, parmas); | 
 |  |  |             if (res?.data?.code === 200) { | 
 |  |  |                 setOpen(false); | 
 |  |  |                 refresh(); | 
 |  |  | 
 |  |  |                 "orders": formData, | 
 |  |  |                 "items": tabelData, | 
 |  |  |             } | 
 |  |  |             const res = await request.post(`/outStock/items/update`, parmas); | 
 |  |  |             const res = await request.post(`/check/items/update`, parmas); | 
 |  |  |             if (res?.data?.code === 200) { | 
 |  |  |                 setOpen(false); | 
 |  |  |                 refresh(); | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     const handleDelete = async () => { | 
 |  |  |         const res = await request.post(`/outStock/remove/${asnId}`); | 
 |  |  |         const res = await request.post(`/check/remove/${asnId}`); | 
 |  |  |         if (res?.data?.code === 200) { | 
 |  |  |             setOpen(false); | 
 |  |  |             refresh(); | 
 |  |  | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     const requestGetHead = async () => { | 
 |  |  |         const res = await request.get(`/outStock/${asnId}`); | 
 |  |  |         const res = await request.get(`/check/${asnId}`); | 
 |  |  |         if (res?.data?.code === 200) { | 
 |  |  |             setFormData(res.data.data) | 
 |  |  |         } else { | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     const requestGetBody = async () => { | 
 |  |  |         const res = await request.post(`/outStockItem/page`, { asnId }); | 
 |  |  |         const res = await request.post(`/checkItem/page`, { orderId: asnId }); | 
 |  |  |         if (res?.data?.code === 200) { | 
 |  |  |             setTableData(res.data.data.records) | 
 |  |  |         } else { | 
 |  |  | 
 |  |  |                 aria-hidden | 
 |  |  |                 fullWidth | 
 |  |  |                 disableRestoreFocus | 
 |  |  |                 maxWidth="lg"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 
 |  |  |                 maxWidth="xl"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 
 |  |  |             > | 
 |  |  |                 <DialogTitle id="form-dialog-title" sx={{ | 
 |  |  |                     position: 'sticky', | 
 |  |  | 
 |  |  |                     <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> | 
 |  |  |                         <Form defaultValues={formData}> | 
 |  |  |                             <Grid container spacing={2}> | 
 |  |  |                                 {/* <Grid item md={2}> | 
 |  |  |                                     <DictSelect | 
 |  |  |                                         label={translate("table.field.asnOrder.type")} | 
 |  |  |                                         value={formData.type} | 
 |  |  |                                         onChange={(e) => handleChange(e.target.value, 'type')} | 
 |  |  |                                         dictTypeCode="sys_order_type" | 
 |  |  |                                         required | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> */} | 
 |  |  |                                 <Grid item md={2}> | 
 |  |  |                                     <DictSelect | 
 |  |  |                                         label={translate("table.field.outStock.wkType")} | 
 |  |  |                                         label={translate("table.field.checkOrder.type")} | 
 |  |  |                                         value={formData.wkType} | 
 |  |  |                                         variant="filled" | 
 |  |  |                                         group='2' | 
 |  |  |                                         onChange={(e) => handleChange(e.target.value, 'wkType')} | 
 |  |  |                                         dictTypeCode="sys_business_type" | 
 |  |  |                                         dictTypeCode="sys_check_order_type" | 
 |  |  |                                         required | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item md={2}> | 
 |  |  |                                     <TextField | 
 |  |  |                                         label={translate("table.field.outStock.poCode")} | 
 |  |  |                                         value={formData.poCode} | 
 |  |  |                                     <DictSelect | 
 |  |  |                                         label={translate("table.field.checkOrder.checkType")} | 
 |  |  |                                         value={formData.checkType} | 
 |  |  |                                         variant="filled" | 
 |  |  |                                         size='small' | 
 |  |  |                                         onChange={(e) => handleChange(e.target.value, 'poCode')} | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item md={2}> | 
 |  |  |                                     <TextField | 
 |  |  |                                         label={translate("table.field.outStock.logisNo")} | 
 |  |  |                                         value={formData.logisNo} | 
 |  |  |                                         variant="filled" | 
 |  |  |                                         size='small' | 
 |  |  |                                         onChange={(e) => handleChange(e.target.value, 'logisNo')} | 
 |  |  |                                         onChange={(e) => handleChange(e.target.value, 'checkType')} | 
 |  |  |                                         dictTypeCode="sys_check_type" | 
 |  |  |                                         required | 
 |  |  |                                     /> | 
 |  |  |                                 </Grid> | 
 |  |  |                                 <Grid item md={2}> | 
 |  |  | 
 |  |  |                             </Grid> | 
 |  |  |                         </Form> | 
 |  |  |                     </Box> | 
 |  |  |  | 
 |  |  |                     <Box sx={{ mt: 2 }}> | 
 |  |  |                         <Stack direction="row" spacing={2}> | 
 |  |  |                             <Button variant="contained" onClick={() => setCreateDialog(true)}>新增物料</Button> | 
 |  |  |                             {/* {asnId !== '' && <ConfirmButton label={'删除'} variant="outlined" color="error" onConfirm={handleDelete} />} */} | 
 |  |  |                             <ConfirmButton label={'删除'} variant="outlined" color="error" onConfirm={handleDeleteItem} /> | 
 |  |  |                             <Button variant="contained" onClick={() => setCreateDialog(true)} > | 
 |  |  |                                 {translate('common.action.newAddMats')} | 
 |  |  |                             </Button> | 
 |  |  |                             <ConfirmButton label={"toolbar.delete"} variant="outlined" color="error" onConfirm={handleDeleteItem} /> | 
 |  |  |                         </Stack> | 
 |  |  |                     </Box> | 
 |  |  |                     <Box sx={{ mt: 2 }}> | 
 |  |  | 
 |  |  | const AsnOrderModalTable = ({ tabelData, setTableData, asnId, selectedRows, setSelectedRows, tableRef }) => { | 
 |  |  |     const translate = useTranslate(); | 
 |  |  |     const notify = useNotify(); | 
 |  |  |     const [check, setCheck] = useState([]); | 
 |  |  |  | 
 |  |  |     const [columns, setColumns] = useState([ | 
 |  |  |         { | 
 |  |  | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |             field: 'anfme', | 
 |  |  |             headerName: translate('table.field.outStockItem.anfme') + "*", | 
 |  |  |             headerName: translate('table.field.checkOrder.anfme') + "*", | 
 |  |  |             type: 'number', | 
 |  |  |             minWidth: 100, | 
 |  |  |             minWidth: 120, | 
 |  |  |             flex: 1, | 
 |  |  |             editable: true, | 
 |  |  |             valueFormatter: (val) => val < 0 ? 0 : val, | 
 |  |  | 
 |  |  |     let cdata = useRef([]); | 
 |  |  |  | 
 |  |  |     useEffect(() => { | 
 |  |  |         getDynamicFields(); | 
 |  |  |         if (check == null || check.length < 1) { | 
 |  |  |             getDynamicFields(); | 
 |  |  |         } | 
 |  |  |     }, []); | 
 |  |  |  | 
 |  |  |     useEffect(() => { | 
 |  |  | 
 |  |  |         if (code === 200) { | 
 |  |  |             const cols = data.map(el => ({ | 
 |  |  |                 field: el.fields, | 
 |  |  |                 key: el.id, | 
 |  |  |                 headerName: el.fieldsAlise, | 
 |  |  |                 minWidth: 100, | 
 |  |  |                 flex: 1, | 
 |  |  |                 editable: false | 
 |  |  |             })) | 
 |  |  |             setCheck(cols); | 
 |  |  |             setColumns([...columns, ...cols, action]) | 
 |  |  |         } else { | 
 |  |  |             notify(msg); |