import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; 
 | 
import { useNavigate } from 'react-router-dom'; 
 | 
import { 
 | 
    List, 
 | 
    DatagridConfigurable, 
 | 
    SearchInput, 
 | 
    TopToolbar, 
 | 
    SelectColumnsButton, 
 | 
    FilterButton, 
 | 
    WrapperField, 
 | 
    useRecordContext, 
 | 
    useTranslate, 
 | 
    useNotify, 
 | 
    useListContext, 
 | 
    TextField, 
 | 
    NumberField, 
 | 
    DateField, 
 | 
    TextInput, 
 | 
    DateInput, 
 | 
    SelectInput, 
 | 
    NumberInput, 
 | 
    useGetRecordId, 
 | 
    Button, 
 | 
    useRefresh, 
 | 
} from 'react-admin'; 
 | 
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; 
 | 
import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline'; 
 | 
import StopCircleOutlinedIcon from '@mui/icons-material/StopCircleOutlined'; 
 | 
import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined'; 
 | 
import { Box, Typography, Card, Stack } from '@mui/material'; 
 | 
import ContentCreate from '@mui/icons-material/Create'; 
 | 
import PageDrawer from "../../components/PageDrawer"; 
 | 
import { styled } from '@mui/material/styles'; 
 | 
import WaveItemCreate from "./WaveItemCreate"; 
 | 
import WaveItemEdit from "./WaveItemEdit"; 
 | 
import request from '@/utils/request'; 
 | 
  
 | 
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ 
 | 
    '& .css-1vooibu-MuiSvgIcon-root': { 
 | 
        height: '.9em' 
 | 
    }, 
 | 
    '& .RaDatagrid-row': { 
 | 
        cursor: 'auto' 
 | 
    }, 
 | 
    '& .column-name': { 
 | 
    }, 
 | 
    '& .opt': { 
 | 
        width: 140 
 | 
    }, 
 | 
})); 
 | 
  
 | 
const filters = [ 
 | 
    <SearchInput source="condition" alwaysOn />, 
 | 
    <DateInput label='common.time.after' source="timeStart" alwaysOn />, 
 | 
    <DateInput label='common.time.before' source="timeEnd" alwaysOn />, 
 | 
    <NumberInput source="waveId" label="table.field.waveItem.waveId" />, 
 | 
    <TextInput source="waveCode" label="table.field.waveItem.waveCode" />, 
 | 
    <NumberInput source="matnrId" label="table.field.waveItem.matnrId" />, 
 | 
    <TextInput source="maktx" label="table.field.waveItem.matnrName" />, 
 | 
    <TextInput source="matnrCode" label="table.field.waveItem.matnrCode" />, 
 | 
    <TextInput source="batch" label="table.field.waveItem.batch" />, 
 | 
    <TextInput source="splrBatch" label="table.field.waveItem.splrBatch" />, 
 | 
    <TextInput source="unit" label="table.field.waveItem.unit" />, 
 | 
    <TextInput source="fieldsIndex" label="table.field.waveItem.fieldsIndex" />, 
 | 
    <NumberInput source="anfme" label="table.field.waveItem.anfme" />, 
 | 
    <NumberInput source="workQty" label="table.field.waveItem.workQty" />, 
 | 
    <TextInput label="common.field.memo" source="memo" />, 
 | 
    <SelectInput 
 | 
        label="common.field.status" 
 | 
        source="status" 
 | 
        choices={[ 
 | 
            { id: '1', name: 'common.enums.statusTrue' }, 
 | 
            { id: '0', name: 'common.enums.statusFalse' }, 
 | 
        ]} 
 | 
        resettable 
 | 
    />, 
 | 
] 
 | 
  
 | 
const WaveItemList = () => { 
 | 
    const translate = useTranslate(); 
 | 
    const waveId = useGetRecordId(); 
 | 
    const [createDialog, setCreateDialog] = useState(false); 
 | 
    const [editDialog, setEditDialog] = useState(false); 
 | 
    const [drawerVal, setDrawerVal] = useState(false); 
 | 
  
 | 
    return ( 
 | 
        <Box display="flex"> 
 | 
            <List 
 | 
                resource="waveItem" 
 | 
                sx={{ 
 | 
                    flexGrow: 1, 
 | 
                    transition: (theme) => 
 | 
                        theme.transitions.create(['all'], { 
 | 
                            duration: theme.transitions.duration.enteringScreen, 
 | 
                        }), 
 | 
                    marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, 
 | 
                }} 
 | 
                title={"menu.waveItem"} 
 | 
                empty={false} 
 | 
                filters={filters} 
 | 
                filter={{ waveId: waveId }} 
 | 
                sort={{ field: "create_time", order: "desc" }} 
 | 
                actions={( 
 | 
                    <TopToolbar> 
 | 
                        <FilterButton /> 
 | 
                        <SelectColumnsButton preferenceKey='waveItem' /> 
 | 
                    </TopToolbar> 
 | 
                )} 
 | 
                perPage={DEFAULT_PAGE_SIZE} 
 | 
            > 
 | 
                <StyledDatagrid 
 | 
                    preferenceKey='waveItem' 
 | 
                    bulkActionButtons={false} 
 | 
                    rowClick={(id, resource, record) => false} 
 | 
                    expand={false} 
 | 
                    expandSingle={false} 
 | 
                    omit={['id', 'createTime', 'matnrId', 'waveId', 'batch', 'orderItemId', 'fieldsIndex', 'createBy']} 
 | 
                > 
 | 
                    <NumberField source="id" /> 
 | 
                    <NumberField source="waveId" label="table.field.waveItem.waveId" /> 
 | 
                    <TextField source="waveCode" label="table.field.waveItem.waveCode" /> 
 | 
                    <NumberField source="matnrId" label="table.field.waveItem.matnrId" /> 
 | 
                    <TextField source="matnrCode" label="table.field.waveItem.matnrCode" /> 
 | 
                    <TextField source="maktx" label="table.field.waveItem.matnrName" /> 
 | 
                    <TextField source="batch" label="table.field.waveItem.batch" /> 
 | 
                    <TextField source="splrBatch" label="table.field.waveItem.splrBatch" /> 
 | 
                    <NumberField source="anfme" label="table.field.waveItem.anfme" /> 
 | 
                    <TextField source="fieldsIndex" label="table.field.waveItem.fieldsIndex" /> 
 | 
                    <NumberField source="workQty" label="table.field.waveItem.workQty" /> 
 | 
                    <TextField source="unit" label="table.field.waveItem.unit" /> 
 | 
                    <TextField source="updateBy$" label="common.field.updateBy" /> 
 | 
                    <DateField source="updateTime" label="common.field.updateTime" showTime /> 
 | 
                    <TextField source="createBy$" label="common.field.createBy" /> 
 | 
                    <DateField source="createTime" label="common.field.createTime" showTime /> 
 | 
                    <TextField source="exceStatus$" label="table.field.waveItem.exceStatus" /> 
 | 
                    <TextField source="memo" label="common.field.memo" sortable={false} /> 
 | 
                </StyledDatagrid> 
 | 
            </List> 
 | 
            <WaveItemEdit 
 | 
                open={editDialog} 
 | 
                setOpen={setEditDialog} 
 | 
            /> 
 | 
            <WaveItemCreate 
 | 
                open={createDialog} 
 | 
                setOpen={setCreateDialog} 
 | 
            /> 
 | 
            <PageDrawer 
 | 
                title='WaveItem Detail' 
 | 
                drawerVal={drawerVal} 
 | 
                setDrawerVal={setDrawerVal} 
 | 
            > 
 | 
            </PageDrawer> 
 | 
        </Box> 
 | 
    ) 
 | 
} 
 | 
  
 | 
export default WaveItemList; 
 | 
  
 | 
const DetailButton = (setEditDialog) => { 
 | 
    const record = useRecordContext(); 
 | 
    const editClick = (event) => { 
 | 
        event.stopPropagation() 
 | 
        setEditDialog(true) 
 | 
    } 
 | 
    return ( 
 | 
        <Button label="ra.action.edit" onClick={editClick} startIcon={<ContentCreate />} /> 
 | 
    ) 
 | 
} 
 |