skyouc
3 小时以前 5264cf0915ee9901cb9520fdcc6b8cdd5ecd4837
rsf-admin/src/page/dashboard/NbCard.jsx
@@ -4,12 +4,15 @@
    Box,
    Button,
    List,
    Grid,
    ListItem,
    Typography,
    ListItemAvatar,
    ListItemButton,
    ListItemText,
} from '@mui/material';
import CommentIcon from '@mui/icons-material/Comment';
import CardWithIcon from '../components/CardWithIcon';
import { Link } from 'react-router-dom';
import {
    ReferenceField,
@@ -18,90 +21,78 @@
    useTranslate,
    useIsDataLoaded,
} from 'react-admin';
import CardWithIcon from '../components/CardWithIcon';
const NbCard = (props) => {
    const { list, ...rest } = props;
    const { tasks, total, ...rset } = props;
    const translate = useTranslate();
    const {
        data: reviews,
        total,
        isPending,
    } = useGetList('reviews', {
        filter: { status: 'pending' },
        sort: { field: 'date', order: 'DESC' },
        pagination: { page: 1, perPage: 100 },
    });
    const display = 'display';
    const newList = list.concat(list);
    return (
        <CardWithIcon
            icon={CommentIcon}
            title={translate('pos.dashboard.pending_reviews')}
            subtitle={total}
            {...rest}
        >
            <List sx={{ display }}>
                {newList?.map((record) => (
                    <ListItem key={record.id} disablePadding>
                        <ListItemButton
                            alignItems="flex-start"
                            component={Link}
                            to={`/reviews/${record.id}`}
                        >
                            {/* <ListItemAvatar>
                                <Avatar
                                    sx={{
                                        // bgcolor: 'primary.main',
                                        bgcolor: '#a2beeaff',
                                        color: 'primary.contrastText', // 避免白字白底
                                        // width: 40,
                                        // height: 40,
                                        // fontSize: 16,
                                    }}
                                >
                                    {record.id}
                                </Avatar>
                            </ListItemAvatar> */}
                            <ListItemText
                                // primary={
                                //     <StarRatingField
                                //         record={record}
                                //         source="rating"
                                //     />
                                // }
                                primary={record.date + record.date}
                                secondary={record.total}
                                sx={{
                                    overflowY: 'hidden',
                                    height: '3em',
                                    display: '-webkit-box',
                                    WebkitLineClamp: 2,
                                    WebkitBoxOrient: 'vertical',
                                    paddingRight: 0,
                                }}
                            />
                        </ListItemButton>
                    </ListItem>
                ))}
            </List>
            <Box flexGrow={1}>&nbsp;</Box>
            <Button
                sx={{ borderRadius: 0 }}
                component={Link}
                to="/reviews"
                size="small"
                color="primary"
        <>
            <CardWithIcon
                icon={CommentIcon}
                title={translate('page.dashboard.pending_reviews')}
                subtitle={total}
                {...rset}
            >
                <Box p={1} sx={{ color: 'primary.main' }}>
                    {translate('pos.dashboard.all_reviews')}
                </Box>
            </Button>
        </CardWithIcon>
                <List sx={{ display }}>
                    {tasks?.map((record) => (
                        <ListItem key={record.id} disablePadding>
                            <ListItemButton
                                alignItems="flex-start"
                                component={Link}
                                to={`/task/${record.id}`}
                            >
                                <Grid container item md={12}>
                                    <Box sx={{ display: 'flex' }}>
                                        <Box sx={{ display: 'flex', padding: '1em' }}>
                                            <Typography color="textSecondary">{translate("table.field.task.taskCode")}:</Typography>
                                            <Typography color="textSecondary">{record?.taskCode}</Typography>
                                        </Box>
                                    </Box>
                                    <Box sx={{ display: 'flex' }}>
                                        <Box sx={{ display: 'flex', padding: '1em' }}>
                                            <Typography color="textSecondary">{translate("table.field.task.taskType")}:</Typography>
                                            <Typography color="textSecondary" maxWidth="200" overflow="hidden">{record?.taskType$}</Typography>
                                        </Box>
                                    </Box>
                                    <Box sx={{ display: 'flex' }}>
                                        <Box sx={{ display: 'flex', padding: '1em' }}>
                                            <Typography color="textSecondary">{translate("table.field.task.taskStatus")}:</Typography>
                                            <Typography color="textSecondary">{record?.taskStatus$}</Typography>
                                        </Box>
                                    </Box>
                                    <Box sx={{ display: 'flex' }}>
                                        <Box sx={{ display: 'flex', padding: '1em' }}>
                                            <Typography color="textSecondary">{translate("table.field.task.startTime")}:</Typography>
                                            <Typography color="textSecondary">{record?.createTime}</Typography>
                                        </Box>
                                    </Box>
                                </Grid>
                            </ListItemButton>
                            <Spacer />
                        </ListItem>
                    ))}
                </List>
                <Box flexGrow={1}>&nbsp;</Box>
                {/* <Button
                    sx={{ borderRadius: 0 }}
                    component={Link}
                    to="/task"
                    size="small"
                    color="primary"
                >
                    <Box p={1} sx={{ color: 'primary.main' }}>
                        {translate('pos.dashboard.all_reviews')}
                    </Box>
                </Button> */}
            </CardWithIcon>
        </>
    );
};
const Spacer = () => <span style={{ width: '1em', }} />;
export default NbCard;