#
luxiaotao1123
2024-09-24 a7a2a9b8f1524831898501d11bbedc0c4a3da3a4
zy-acs-flow/src/page/task/TaskListAside.jsx
@@ -6,12 +6,13 @@
    FilterListItem,
    useTheme,
    useStore,
    useTranslate,
} from 'react-admin';
import { Box, Typography, Card, CardContent } from '@mui/material';
import * as Common from '@/utils/common';
import WcIcon from '@mui/icons-material/Wc';
import BookmarkIcon from '@mui/icons-material/BookmarkBorder';
import StyleIcon from '@mui/icons-material/Style';
import RunningWithErrorsIcon from '@mui/icons-material/RunningWithErrors';
import TypeSpecimenIcon from '@mui/icons-material/TypeSpecimen';
import AccessTimeIcon from '@mui/icons-material/AccessTime';
import {
    endOfYesterday,
@@ -24,32 +25,22 @@
const TaskListAside = (props) => {
    const theme = useTheme();
    const [roles, setRoles] = React.useState([]);
    const translate = useTranslate();
    const [taskStsList, setTaskStsList] = React.useState([]);
    const [taskTypeList, setTaskTypeList] = React.useState([]);
    React.useEffect(() => {
        request.post('/role/list', {}).then(res => {
        request.post('/taskSts/list', {}).then(res => {
            if (res?.data?.code === 200) {
                setRoles(res.data.data);
                setTaskStsList(res.data.data);
            }
        })
        request.post('/taskType/list', {}).then(res => {
            if (res?.data?.code === 200) {
                setTaskTypeList(res.data.data);
            }
        })
    }, [])
    const isSelected = (value, filters) => {
        const roleIds = filters.roleIds || [];
        return roleIds.includes(value.roleId);
    };
    const toggleFilter = (value, filters) => {
        const roleIds = filters.roleIds || [];
        return {
            ...filters,
            roleIds: roleIds.includes(value.roleId)
                ? roleIds.filter(v => v !== value.roleId)
                // : [...roleIds, value.roleId],
                : [value.roleId],
        };
    };
    return (
        <Card
@@ -60,12 +51,12 @@
                mt: 8,
                alignSelf: 'flex-start',
                border: theme[0] === 'light' && '1px solid #e0e0e3',
                // width: 200
                width: 255
            }}
        >
            <CardContent>
                <SavedQueriesList icon={<BookmarkIcon />} />
                <FilterLiveSearch source='condition' hiddenLabel />
                <FilterLiveSearch label={translate("table.field.task.seqNum")} source='seqNum' hiddenLabel />
                <FilterList
                    label="filters.lastCreated"
@@ -115,21 +106,25 @@
                    />
                </FilterList>
                <FilterList label="table.field.user.sex" icon={<WcIcon />}>
                    <FilterListItem label="table.field.user.sexes.female" value={{ sex: '2' }} />
                    <FilterListItem label="table.field.user.sexes.male" value={{ sex: '1' }} />
                    <FilterListItem label="table.field.user.sexes.unknown" value={{ sex: '0' }} />
                </FilterList>
                <FilterList label="table.field.user.role" icon={<StyleIcon />}>
                    {roles.map(role => {
                <FilterList label="table.field.task.taskSts" icon={<RunningWithErrorsIcon />}>
                    {taskStsList.map(taskSts => {
                        return (
                            <FilterListItem
                                key={role.id}
                                label={`${role.name}`}
                                value={{ roleId: role.id }}
                                isSelected={isSelected}
                                toggleFilter={toggleFilter}
                                key={taskSts.id}
                                label={`${taskSts.name}`}
                                value={{ taskSts: taskSts.id }}
                            />
                        )
                    })}
                </FilterList>
                <FilterList label="table.field.task.taskType" icon={<TypeSpecimenIcon />}>
                    {taskTypeList.map(taskType => {
                        return (
                            <FilterListItem
                                key={taskType.id}
                                label={`${taskType.name}`}
                                value={{ taskType: taskType.id }}
                            />
                        )
                    })}