|  |  |  | 
|---|
|  |  |  | 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([ | 
|---|
|  |  |  | 
|---|
|  |  |  | disableColumnMenu={true} | 
|---|
|  |  |  | disableColumnSorting | 
|---|
|  |  |  | disableMultipleColumnsSorting | 
|---|
|  |  |  | rowCount={rowCount} | 
|---|
|  |  |  | paginationMode="server" | 
|---|
|  |  |  | paginationModel={page} | 
|---|
|  |  |  | onPaginationModelChange={setPage} | 
|---|
|  |  |  | loading={isLoading} | 
|---|
|  |  |  | slotProps={{ | 
|---|
|  |  |  | loadingOverlay: { | 
|---|
|  |  |  | variant: 'linear-progress', | 
|---|
|  |  |  | noRowsVariant: 'linear-progress', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | ); | 
|---|