From e5a2d3c14472d64255d80cef130d83f6e24e591d Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 15 八月 2025 10:49:56 +0800
Subject: [PATCH] 首页功能优化

---
 rsf-admin/src/page/dashboard/NbList.jsx        |    3 
 rsf-admin/src/page/components/CardWithIcon.jsx |    2 
 rsf-admin/src/page/dashboard/NbCard.jsx        |   87 ++++++++++++----------------
 rsf-admin/src/page/dashboard/index.jsx         |   30 ++++++++--
 rsf-admin/.env                                 |    2 
 5 files changed, 66 insertions(+), 58 deletions(-)

diff --git a/rsf-admin/.env b/rsf-admin/.env
index a3c69b2..f793907 100644
--- a/rsf-admin/.env
+++ b/rsf-admin/.env
@@ -1,3 +1,3 @@
-VITE_BASE_IP=127.0.0.1
+VITE_BASE_IP=192.168.4.151
 # VITE_BASE_IP=47.76.147.249
 VITE_BASE_PORT=8080
diff --git a/rsf-admin/src/page/components/CardWithIcon.jsx b/rsf-admin/src/page/components/CardWithIcon.jsx
index 5e4b3d0..88a5914 100644
--- a/rsf-admin/src/page/components/CardWithIcon.jsx
+++ b/rsf-admin/src/page/components/CardWithIcon.jsx
@@ -71,7 +71,7 @@
                         </Box>}
                     </Box> : <Box>
                         <Typography  sx={{ display: 'flex', padding: '1em' }}>
-                            {'鈥�12234'}
+                            { title }
                         </Typography>
                     </Box>}
                 </Box>
diff --git a/rsf-admin/src/page/dashboard/NbCard.jsx b/rsf-admin/src/page/dashboard/NbCard.jsx
index 4701aef..80c8772 100644
--- a/rsf-admin/src/page/dashboard/NbCard.jsx
+++ b/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,23 +21,12 @@
     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 (
         <>
@@ -42,55 +34,49 @@
                 icon={CommentIcon}
                 title={translate('page.dashboard.pending_reviews')}
                 subtitle={total}
-                {...rest}
+                {...rset}
             >
                 <List sx={{ display }}>
-                    {newList?.map((record) => (
+                    {tasks?.map((record) => (
                         <ListItem key={record.id} disablePadding>
                             <ListItemButton
                                 alignItems="flex-start"
                                 component={Link}
                                 to={`/task/${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,
-                                    }}
-                                />
+                                <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
+                {/* <Button
                     sx={{ borderRadius: 0 }}
                     component={Link}
                     to="/task"
@@ -100,10 +86,13 @@
                     <Box p={1} sx={{ color: 'primary.main' }}>
                         {translate('pos.dashboard.all_reviews')}
                     </Box>
-                </Button>
+                </Button> */}
             </CardWithIcon>
         </>
     );
 };
 
+const Spacer = () => <span style={{ width: '1em', }} />;
+
+
 export default NbCard;
diff --git a/rsf-admin/src/page/dashboard/NbList.jsx b/rsf-admin/src/page/dashboard/NbList.jsx
index 4149f63..3794797 100644
--- a/rsf-admin/src/page/dashboard/NbList.jsx
+++ b/rsf-admin/src/page/dashboard/NbList.jsx
@@ -44,7 +44,8 @@
 
     return (
         <ListItem disablePadding>
-            <ListItemButton component={Link} to={`/orders/${order.id}`}>
+            {/* component={Link} to={`/locItem/${order.id}`} */}
+            <ListItemButton >
                 {/* <ListItemAvatar>
                     {isPending ? (
                         <Avatar />
diff --git a/rsf-admin/src/page/dashboard/index.jsx b/rsf-admin/src/page/dashboard/index.jsx
index d47caa1..db9883b 100644
--- a/rsf-admin/src/page/dashboard/index.jsx
+++ b/rsf-admin/src/page/dashboard/index.jsx
@@ -3,6 +3,7 @@
 import React, { useState, useRef, useEffect, useMemo } from "react";
 import SensorOccupiedIcon from '@mui/icons-material/SensorOccupied';
 import CardWithIcon from '../components/CardWithIcon';
+import CommentIcon from '@mui/icons-material/Comment';
 import WifiIcon from '@mui/icons-material/Wifi';
 import { useTheme } from '@mui/material/styles';
 import { useNavigate } from 'react-router-dom';
@@ -75,18 +76,22 @@
     const [stock, setStock] = useState([]);
     const [deadStock, setDeadStock] = useState([]);
     const [locUsage, setLocUsages] = useState([]);
+    const [tasks, setTasks] = useState([]);
+    const [total, setTotal] = useState(0);
+
 
     useEffect(() => {
         getDashBoardHeader()
         getRecentTrands()
         getRecentStocks()
         getRecentUsage()
+        getExcingTasks()
 
     }, [])
 
     const getDashBoardHeader = async () => {
         await request.post('/asnOrder/dashbord/header').then(res => {
-            const { code, msg, data } = res.data?.data;
+            const { code, msg, data } = res?.data;
             if (code === 200) {
                 setStatistic(data);
             } else {
@@ -110,11 +115,23 @@
         })
     }
 
+    const getExcingTasks = async () => {
+        await request.post('/task/page', { current: 1, pageSize: 100, orderBy: 'sort desc' }).then(res => {
+            const { code, msg, data } = res?.data;
+            if (code === 200) {
+                setTasks(data?.records)
+                setTotal(data?.total)
+            } else {
+                notify(msg, { type: 'error', messageArgs: { _: msg } });
+            }
+        }).catch((error) => {
+            notify(error.message, { type: 'error', messageArgs: { _: error.message } });
+        })
+    }
+
     const getRecentUsage = () => {
         request.post("/loc/pie/list").then(res => {
             const { code, msg, data } = res?.data;
-            console.log(data);
-            console.log(code);
             if (code === 200) {
                 setLocUsages(data?.data)
             } else {
@@ -177,16 +194,17 @@
                     <Box sx={{ display: 'flex' }}>
                         <Spacer />
                         <NbCard
-                            icon={SensorOccupiedIcon}
+                            icon={CommentIcon}
                             subtitle={translate('page.dashboard.header.taskWorkQty')}
-                            title={`${statistic?.membersTotalQua}`}
+                            title={`${statistic?.taskQty}`}
+                            total={total}
                             to={{
                                 pathname: '/task',
                                 search: JSON.stringify({
                                     filter: JSON.stringify({ status: 1 }),
                                 }),
                             }}
-                            list={deadStock}
+                            tasks={tasks}
                         />
                     </Box>
                 </Grid>

--
Gitblit v1.9.1