|  |  | 
 |  |  |     Paper, | 
 |  |  |     styled | 
 |  |  | } from '@mui/material'; | 
 |  |  | import { EDIT_MODE, DEFAULT_START_PAGE, DEFAULT_PAGE_SIZE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; | 
 |  |  | import DialogCloseButton from "../../components/DialogCloseButton"; | 
 |  |  | import { useTranslate, useNotify, useRefresh } from 'react-admin'; | 
 |  |  | import request from '@/utils/request'; | 
 |  |  | 
 |  |  | import TreeSelectInput from "@/page/components/TreeSelectInput"; | 
 |  |  | const AsnWareModal = (props) => { | 
 |  |  |     const { open, setOpen, data, setData } = props; | 
 |  |  |  | 
 |  |  |     const translate = useTranslate(); | 
 |  |  |     const notify = useNotify(); | 
 |  |  |     const refresh = useRefresh(); | 
 |  |  |  | 
 |  |  |     const handleClose = (event, reason) => { | 
 |  |  |         if (reason !== "backdropClick") { | 
 |  |  |             setOpen(false); | 
 |  |  |         } | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE }); | 
 |  |  |     const [rowCount, setRowCount] = useState(0); | 
 |  |  |     const [isLoading, setIsLoading] = useState(false); | 
 |  |  |     const [formData, setFormData] = useState({}); | 
 |  |  |     const [tableData, setTableData] = useState([]); | 
 |  |  |     const [dyFields, setDyFields] = useState([]); | 
 |  |  | 
 |  |  |         const hasarr = data.map(el => +el.matnrId) | 
 |  |  |         const selectedData = selectedRows.filter(item => !hasarr.includes(item)).map(id => (tableData.find(row => row.id === id))); | 
 |  |  |         const value = selectedData.map((el => { | 
 |  |  |             console.log(el); | 
 |  |  |             const dynamicFields = dyFields.reduce((acc, item) => { | 
 |  |  |                 acc[item.fields] = el['extendFields']?.[item.fields] || ''; | 
 |  |  |                 return acc; | 
 |  |  | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     const getData = async () => { | 
 |  |  |         setIsLoading(true) | 
 |  |  |         const res = await request.post(`/matnr/page`, { | 
 |  |  |             ...formData, | 
 |  |  |             current: 1, | 
 |  |  |             pageSize: 100, | 
 |  |  |             current: page?.page, | 
 |  |  |             pageSize: page?.pageSize, | 
 |  |  |             orderBy: "create_time desc" | 
 |  |  |         }); | 
 |  |  |         if (res?.data?.code === 200) { | 
 |  |  |             setTableData(res.data.data.records); | 
 |  |  |             console.log(res.data); | 
 |  |  |             setRowCount(res.data?.data.total) | 
 |  |  |         } else { | 
 |  |  |             notify(res.data.msg); | 
 |  |  |         } | 
 |  |  |         setIsLoading(false) | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     useEffect(() => { | 
 |  |  |         getData(); | 
 |  |  |     }, [open]); | 
 |  |  |     }, [open, page]); | 
 |  |  |  | 
 |  |  |     const handleSearch = () => { | 
 |  |  |         getData() | 
 |  |  | 
 |  |  |                     <AsnWareModalTable | 
 |  |  |                         tableData={tableData} | 
 |  |  |                         setTableData={setTableData} | 
 |  |  |                         page={page} | 
 |  |  |                         rowCount={rowCount} | 
 |  |  |                         setPage={setPage} | 
 |  |  |                         isLoading={isLoading} | 
 |  |  |                         dyFields={dyFields} | 
 |  |  |                         setDyFields={setDyFields} | 
 |  |  |                         selectedRows={selectedRows} | 
 |  |  | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | export default AsnWareModal; | 
 |  |  | const AsnWareModalTable = ({ tableData, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => { | 
 |  |  | const AsnWareModalTable = ({ tableData, isLoading, page, setPage, rowCount, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => { | 
 |  |  |     const translate = useTranslate(); | 
 |  |  |     const notify = useNotify(); | 
 |  |  |     const [columns, setColumns] = useState([ | 
 |  |  |         // { field: 'id', headerName: 'ID', width: 100 }, | 
 |  |  |         { field: 'name', headerName: translate('table.field.matnr.name'), width: 300 }, | 
 |  |  |         { field: 'code', headerName: translate('table.field.matnr.code'), width: 200 }, | 
 |  |  |         { field: 'name', headerName: translate('table.field.matnr.name'), width: 300 }, | 
 |  |  |         { field: 'groupId$', headerName: translate('table.field.matnr.groupId'), width: 100 }, | 
 |  |  |         { field: 'spec', headerName: translate('table.field.matnr.spec'), width: 100 }, | 
 |  |  |         { field: 'model', headerName: translate('table.field.matnr.model'), width: 100 }, | 
 |  |  | 
 |  |  |                 disableColumnMenu={true} | 
 |  |  |                 disableColumnSorting | 
 |  |  |                 disableMultipleColumnsSorting | 
 |  |  |                 rowCount={rowCount} | 
 |  |  |                 paginationMode="server" | 
 |  |  |                 paginationModel={page} | 
 |  |  |                 onPaginationModelChange={setPage} | 
 |  |  |                 loading={isLoading} | 
 |  |  |                 slotProps={{ | 
 |  |  |                     loadingOverlay: { | 
 |  |  |                         variant: 'linear-progress', | 
 |  |  |                         noRowsVariant: 'linear-progress', | 
 |  |  |                     }, | 
 |  |  |                 }} | 
 |  |  |             /> | 
 |  |  |         </div> | 
 |  |  |     ); |