import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; 
 | 
import { useNavigate, useLocation } from 'react-router-dom'; 
 | 
import { 
 | 
    List, 
 | 
    DatagridConfigurable, 
 | 
    SearchInput, 
 | 
    TopToolbar, 
 | 
    SelectColumnsButton, 
 | 
    EditButton, 
 | 
    FilterButton, 
 | 
    CreateButton, 
 | 
    ExportButton, 
 | 
    BulkDeleteButton, 
 | 
    WrapperField, 
 | 
    useRecordContext, 
 | 
    useTranslate, 
 | 
    useNotify, 
 | 
    useListContext, 
 | 
    FunctionField, 
 | 
    TextField, 
 | 
    NumberField, 
 | 
    DateField, 
 | 
    BooleanField, 
 | 
    ReferenceField, 
 | 
    TextInput, 
 | 
    DateTimeInput, 
 | 
    DateInput, 
 | 
    SelectInput, 
 | 
    NumberInput, 
 | 
    ReferenceInput, 
 | 
    ReferenceArrayInput, 
 | 
    AutocompleteInput, 
 | 
    DeleteButton, 
 | 
    useGetRecordId, 
 | 
    useGetPathForRecord, 
 | 
    useGetOne, 
 | 
} from 'react-admin'; 
 | 
import { Box, Typography, Card, Stack } from '@mui/material'; 
 | 
import { styled } from '@mui/material/styles'; 
 | 
import DictDataCreate from "./DictDataCreate"; 
 | 
import EmptyData from "../../../components/EmptyData"; 
 | 
import MyCreateButton from "../../../components/MyCreateButton"; 
 | 
import MyExportButton from '../../../components/MyExportButton'; 
 | 
import PageDrawer from "../../../components/PageDrawer"; 
 | 
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; 
 | 
  
 | 
  
 | 
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ 
 | 
    '& .css-1vooibu-MuiSvgIcon-root': { 
 | 
        height: '.9em' 
 | 
    }, 
 | 
    '& .RaDatagrid-row': { 
 | 
        cursor: 'auto' 
 | 
    }, 
 | 
    '& .column-name': { 
 | 
    }, 
 | 
    '& .opt': { 
 | 
        width: 200 
 | 
    }, 
 | 
})); 
 | 
  
 | 
const filters = [ 
 | 
    <SearchInput source="condition" alwaysOn />, 
 | 
    <TextInput source="dictTypeId" label="table.field.dictData.dictTypeId" />, 
 | 
    <TextInput source="dictTypeCode" label="table.field.dictData.dictTypeCode" />, 
 | 
    <TextInput source="value" label="table.field.dictData.value" />, 
 | 
    <TextInput source="label" label="table.field.dictData.label" />, 
 | 
    <NumberInput source="sort" label="table.field.dictData.sort" />, 
 | 
    // <TextInput source="color" label="table.field.dictData.color" />, 
 | 
    <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 DictDataList = () => { 
 | 
    const translate = useTranslate(); 
 | 
    const [createDialog, setCreateDialog] = useState(false); 
 | 
    const [drawerVal, setDrawerVal] = useState(false); 
 | 
    const dictId = useGetRecordId(); 
 | 
    const {data: dicts, isPending, error} =  useGetOne('dictType', {id: dictId}); 
 | 
     
 | 
    return ( 
 | 
        <> 
 | 
            <Box display="flex" > 
 | 
                <List 
 | 
                    resource="dictData" 
 | 
                    sx={{ 
 | 
                        flexGrow: 1, 
 | 
                        transition: (theme) => 
 | 
                            theme.transitions.create(['all'], { 
 | 
                                duration: theme.transitions.duration.enteringScreen, 
 | 
                            }), 
 | 
                        marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, 
 | 
                    }} 
 | 
                    title={"menu.dictData"} 
 | 
                    empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} 
 | 
                    filters={filters} 
 | 
                    filter={{ dictTypeId: dictId }} 
 | 
                    sort={{ field: "create_time", order: "desc" }} 
 | 
                    actions={( 
 | 
                        <TopToolbar> 
 | 
                            <FilterButton /> 
 | 
                            <MyCreateButton onClick={() => { setCreateDialog(true) }} /> 
 | 
                            <SelectColumnsButton preferenceKey='dictData' /> 
 | 
                            <MyExportButton /> 
 | 
                        </TopToolbar> 
 | 
                    )} 
 | 
                    perPage={DEFAULT_PAGE_SIZE} 
 | 
                > 
 | 
                    <StyledDatagrid 
 | 
                        preferenceKey='dictData' 
 | 
                        bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} 
 | 
                        rowClick="edit" 
 | 
                        omit={['id', 'createTime', 'createBy', 'memo']} 
 | 
                    > 
 | 
                        <NumberField source="id" /> 
 | 
                        <TextField source="dictTypeId" label="table.field.dictData.dictTypeId" /> 
 | 
                        <TextField source="dictTypeCode" label="table.field.dictData.dictTypeCode" /> 
 | 
                        <TextField source="value" label="table.field.dictData.value" /> 
 | 
                        <TextField source="label" label="table.field.dictData.label" /> 
 | 
                        <NumberField source="sort" label="table.field.dictData.sort" /> 
 | 
                        <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 /> 
 | 
                        <BooleanField source="statusBool" label="common.field.status" sortable={false} /> 
 | 
                        <TextField source="memo" label="common.field.memo" sortable={false} /> 
 | 
                        <WrapperField cellClassName="opt" label="common.field.opt"> 
 | 
                            <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> 
 | 
                            <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} redirect={"/dictType/" + dictId} /> 
 | 
                        </WrapperField> 
 | 
                    </StyledDatagrid> 
 | 
                </List> 
 | 
                <DictDataCreate 
 | 
                    open={createDialog} 
 | 
                    record={dicts} 
 | 
                    setOpen={setCreateDialog} 
 | 
                /> 
 | 
                <PageDrawer 
 | 
                    title='DictData Detail' 
 | 
                    drawerVal={drawerVal} 
 | 
                    setDrawerVal={setDrawerVal} 
 | 
                > 
 | 
                </PageDrawer> 
 | 
            </Box> 
 | 
        </> 
 | 
  
 | 
    ) 
 | 
} 
 | 
  
 | 
export default DictDataList; 
 |