From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 十一月 2024 10:22:45 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/user/UserListAside.jsx |  159 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 102 insertions(+), 57 deletions(-)

diff --git a/zy-acs-flow/src/page/user/UserListAside.jsx b/zy-acs-flow/src/page/user/UserListAside.jsx
index 1f6dd0c..f265332 100644
--- a/zy-acs-flow/src/page/user/UserListAside.jsx
+++ b/zy-acs-flow/src/page/user/UserListAside.jsx
@@ -8,12 +8,11 @@
     useStore,
 } from 'react-admin';
 import { Box, Typography, Card, CardContent } from '@mui/material';
-import { styled } from '@mui/material/styles';
-import { DEFAULT_THEME_NAME } from '@/config/setting';
 import * as Common from '@/utils/common';
-import MailIcon from '@mui/icons-material/MailOutline'
+import WcIcon from '@mui/icons-material/Wc';
 import BookmarkIcon from '@mui/icons-material/BookmarkBorder';
-import CategoryIcon from '@mui/icons-material/LocalOffer';
+import StyleIcon from '@mui/icons-material/Style';
+import AccessTimeIcon from '@mui/icons-material/AccessTime';
 import {
     endOfYesterday,
     startOfWeek,
@@ -21,77 +20,123 @@
     startOfMonth,
     subMonths,
 } from 'date-fns';
+import request from '@/utils/request'
 
 const UserListAside = (props) => {
     const theme = useTheme();
-    const [themeName] = useStore('themeName', DEFAULT_THEME_NAME);
-    console.log()
+    const [roles, setRoles] = React.useState([]);
+
+    React.useEffect(() => {
+        request.post('/role/list', {}).then(res => {
+            if (res?.data?.code === 200) {
+                setRoles(res.data.data);
+            }
+        })
+    }, [])
 
     const isSelected = (value, filters) => {
-        const categories = filters.categories || [];
-        return categories.includes(value.category);
+        const roleIds = filters.roleIds || [];
+        return roleIds.includes(value.roleId);
     };
 
     const toggleFilter = (value, filters) => {
-        const categories = filters.categories || [];
+        const roleIds = filters.roleIds || [];
         return {
             ...filters,
-            categories: categories.includes(value.category)
-                // Remove the category if it was already present
-                ? categories.filter(v => v !== value.category)
-                // Add the category if it wasn't already present
-                : [...categories, value.category],
+            roleIds: roleIds.includes(value.roleId)
+                ? roleIds.filter(v => v !== value.roleId)
+                // : [...roleIds, value.roleId],
+                : [value.roleId],
         };
     };
 
 
     return (
-        <>
-            <Card
-                sx={{
-                    display: { xs: 'none', md: 'block', },
-                    order: -1,
-                    mr: 2,
-                    mt: 8,
-                    alignSelf: 'flex-start',
-                    border: theme[0] === 'light' && '1px solid #e0e0e3',
-                    // borderRadius: 0,
-                    // width: 200
-                }}
-            >
-                <CardContent>
-                    <SavedQueriesList icon={<BookmarkIcon />} />
+        <Card
+            sx={{
+                display: { xs: 'none', md: 'block', },
+                order: -1,
+                mr: 2,
+                mt: 8,
+                alignSelf: 'flex-start',
+                border: theme[0] === 'light' && '1px solid #e0e0e3',
+                // width: 200
+            }}
+        >
+            <CardContent>
+                <SavedQueriesList icon={<BookmarkIcon />} />
+                <FilterLiveSearch source='condition' hiddenLabel />
 
-                    <FilterLiveSearch source='condition' hiddenLabel />
+                <FilterList
+                    label="filters.lastCreated"
+                    icon={<AccessTimeIcon />}
+                >
+                    <FilterListItem
+                        label="filters.today"
+                        value={{
+                            timeStart: endOfYesterday().toISOString(),
+                            timeEnd: undefined,
+                        }}
+                    />
+                    <FilterListItem
+                        label="filters.thisWeek"
+                        value={{
+                            timeStart: startOfWeek(new Date()).toISOString(),
+                            timeEnd: undefined,
+                        }}
+                    />
+                    <FilterListItem
+                        label="filters.lastWeek"
+                        value={{
+                            timeStart: subWeeks(startOfWeek(new Date()), 1).toISOString(),
+                            timeEnd: startOfWeek(new Date()).toISOString(),
+                        }}
+                    />
+                    <FilterListItem
+                        label="filters.thisMonth"
+                        value={{
+                            timeStart: startOfMonth(new Date()).toISOString(),
+                            timeEnd: undefined,
+                        }}
+                    />
+                    <FilterListItem
+                        label="filters.lastMonth"
+                        value={{
+                            timeStart: subMonths(startOfMonth(new Date()), 1).toISOString(),
+                            timeEnd: startOfMonth(new Date()).toISOString(),
+                        }}
+                    />
+                    <FilterListItem
+                        label="filters.earlier"
+                        value={{
+                            timeStart: undefined,
+                            timeEnd: subMonths(startOfMonth(new Date()), 1).toISOString(),
+                        }}
+                    />
+                </FilterList>
 
-                    <FilterList label="aa" icon={<MailIcon />}>
-                        <FilterListItem label="Yes" value={{ status: '1' }} />
-                        <FilterListItem label="No" value={{ status: '0' }} />
-                    </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="Categories" icon={<CategoryIcon />}>
-                        <FilterListItem
-                            label="Tests"
-                            value={{ category: 'tests' }}
-                            isSelected={isSelected}
-                            toggleFilter={toggleFilter}
-                        />
-                        <FilterListItem
-                            label="News"
-                            value={{ category: 'news' }}
-                            isSelected={isSelected}
-                            toggleFilter={toggleFilter}
-                        />
-                        <FilterListItem
-                            label="Deals"
-                            value={{ category: 'deals' }}
-                            isSelected={isSelected}
-                            toggleFilter={toggleFilter}
-                        />
-                    </FilterList>
-                </CardContent>
-            </Card>
-        </>
+                <FilterList label="table.field.user.role" icon={<StyleIcon />}>
+                    {roles.map(role => {
+                        return (
+                            <FilterListItem
+                                key={role.id}
+                                label={`${role.name}`}
+                                value={{ roleId: role.id }}
+                                isSelected={isSelected}
+                                toggleFilter={toggleFilter}
+                            />
+                        )
+                    })}
+                </FilterList>
+
+            </CardContent>
+        </Card>
     )
 }
 

--
Gitblit v1.9.1