|  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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" | 
|---|
|  |  |  | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </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 }} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | })} | 
|---|