From 7b1922131a91d253597ca764dfe5bb0648c57794 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 13 八月 2025 12:06:47 +0800 Subject: [PATCH] 首页修改 --- rsf-admin/src/page/dashboard/index.jsx | 201 ++++++++++++++++++++++++++------------------------ 1 files changed, 104 insertions(+), 97 deletions(-) diff --git a/rsf-admin/src/page/dashboard/index.jsx b/rsf-admin/src/page/dashboard/index.jsx index d8694e0..b832f8d 100644 --- a/rsf-admin/src/page/dashboard/index.jsx +++ b/rsf-admin/src/page/dashboard/index.jsx @@ -1,15 +1,15 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { useNavigate } from 'react-router-dom'; -import { useTheme } from '@mui/material/styles'; import { useTranslate, useAuthProvider, Title, useNotify } from 'react-admin'; -import { WordEffect } from './WordEffect'; -import { getSystemDicts } from '@/api/auth' -import Welcome from "./Welcome"; -import CardWithIcon from '../components/CardWithIcon'; +import { Box, Typography, LinearProgress, Stack, Grid } from '@mui/material'; +import React, { useState, useRef, useEffect, useMemo } from "react"; import SensorOccupiedIcon from '@mui/icons-material/SensorOccupied'; +import CardWithIcon from '../components/CardWithIcon'; import WifiIcon from '@mui/icons-material/Wifi'; +import { useTheme } from '@mui/material/styles'; +import { useNavigate } from 'react-router-dom'; +import { getSystemDicts } from '@/api/auth' +import { WordEffect } from './WordEffect'; import request from '@/utils/request'; -import { Box, Typography, LinearProgress, Stack } from '@mui/material'; +import Welcome from "./Welcome"; import NbChart from "./NbChart"; import NbList from "./NbList"; import NbCard from "./NbCard"; @@ -17,8 +17,8 @@ const styles = { flex: { display: 'flex' }, flexColumn: { display: 'flex', flexDirection: 'column' }, - leftCol: { flex: 1, marginRight: '0.5em' }, - rightCol: { flex: 1, marginLeft: '0.5em' }, + leftCol: { flex: 1, }, + rightCol: { flex: 1, }, singleCol: { marginTop: '1em', marginBottom: '1em' }, }; @@ -70,139 +70,146 @@ const DashboardSummaryView = () => { const translate = useTranslate(); const notify = useNotify(); - const [statistic, setStatistic] = useState(null); + const [statistic, setStatistic] = useState({}); + const [stock, setStock] = useState([]); useEffect(() => { - request.get('/dashboard/member/statistic', { - params: {} - }).then(res => { - const { code, msg, data } = res.data; + getDashBoardHeader() + getRecentTrands() + getRecentStocks() + + }, []) + + const getDashBoardHeader = async () => { + await request.post('/asnOrder/dashbord/header').then(res => { + const { code, msg, data } = res.data?.data; if (code === 200) { setStatistic(data); } else { - // notify(msg, { type: 'error', messageArgs: { _: msg } }); + notify(msg, { type: 'error', messageArgs: { _: msg } }); } }).catch((error) => { - // notify(error.message, { type: 'error', messageArgs: { _: error.message } }); - console.error(error); + notify(error.message, { type: 'error', messageArgs: { _: error.message } }); }) - }, []) + } + + const getRecentStocks = async () => { + await request.post('/asnOrder/dashbord/header').then(res => { + const { code, msg, data } = res.data?.data; + if (code === 200) { + setStatistic(data); + } else { + notify(msg, { type: 'error', messageArgs: { _: msg } }); + } + }).catch((error) => { + notify(error.message, { type: 'error', messageArgs: { _: error.message } }); + }) + } + + + /** + * 鑾峰彇搴撹繎涓�涓湀鍑哄叆搴撲俊鎭� + */ + const getRecentTrands = async () => { + await request.post('/asnOrder/stock/trand').then(res => { + const { code, msg, data } = res.data?.data; + if (code === 200) { + setStock(data) + } else { + notify(msg, { type: 'error', messageArgs: { _: msg } }); + } + }).catch((error) => { + notify(error.message, { type: 'error', messageArgs: { _: error.message } }); + }) + } const recentOrders = [ { id: 1, name: 'a', date: "2025-08-10T12:23:56.959Z", - total: 138.94 + total: 138.94, + inTotal: 254, }, { id: 2, name: 'b', date: "2025-08-03T07:45:00.304Z", - total: 214.66 + total: 214.66, + inTotal: 258, }, { id: 3, name: 'c', date: "2025-07-28T00:20:10.968Z", - total: 68.19 + total: 68.19, + inTotal: 154, }, { id: 4, name: 'd', date: "2025-07-22T20:39:00.293Z", - total: 36.56 + total: 36.56, + inTotal: 124, }, { id: 5, name: 'e', date: "2025-07-16T17:40:24.791Z", - total: 100.82 + total: 100.82, + inTotal: 354, }, ] return ( <> - <div style={styles.flex}> - <div style={styles.leftCol}> - <div style={styles.flex}> + <Grid container md={12}> + <Grid item md={8}> + <Box sx={{ display: "flex" }}> <CardWithIcon icon={WifiIcon} - title={translate('page.member.header.onlineMembers')} - subtitle={`${statistic?.membersOnlineQua}`} + subtitle={translate('page.dashboard.header.inStockQty')} + title={`${statistic?.inAnf}`} + type={"in"} + statistic={statistic} /> <Spacer /> <CardWithIcon icon={SensorOccupiedIcon} - title={translate('page.member.header.totalMembers')} - subtitle={`${statistic?.membersTotalQua}`} - /> - </div> - <div style={styles.singleCol}> - <NbChart orders={recentOrders} /> - </div> - <div style={styles.singleCol}> - <NbList orders={recentOrders} /> - </div> - </div> - <div style={styles.rightCol}> - <div style={styles.flex}> - <NbCard - icon={WifiIcon} - title={translate('page.member.header.onlineMembers')} - subtitle={`${statistic?.membersOnlineQua}`} - to={{ - pathname: '/task', - search: JSON.stringify({ - filter: JSON.stringify({ status: 1 }), - }), - }} - list={recentOrders} - /> - <Spacer /> - <NbCard - icon={SensorOccupiedIcon} - title={translate('page.member.header.totalMembers')} - subtitle={`${statistic?.membersTotalQua}`} - to={{ - pathname: '/task', - search: JSON.stringify({ - filter: JSON.stringify({ status: 1 }), - }), - }} - list={recentOrders} - /> - </div> - </div> - </div> + subtitle={translate('page.dashboard.header.outStockQty')} + title={`${statistic?.membersTotalQua}`} + type={"out"} + statistic={statistic} - {/* <Box sx={{ - display: 'flex', - mt: 2, - gap: 2, - justifyContent: 'space-between', - }}> - <CardWithIcon - icon={WifiIcon} - title={translate('page.member.header.onlineMembers')} - subtitle={`${statistic?.membersOnlineQua}`} - /> - <CardWithIcon - icon={SensorOccupiedIcon} - title={translate('page.member.header.totalMembers')} - subtitle={`${statistic?.membersTotalQua}`} - /> - <CardWithIcon - icon={WifiIcon} - title={translate('page.member.header.onlineMembers')} - subtitle={`${statistic?.membersOnlineQua}`} - /> - <CardWithIcon - icon={SensorOccupiedIcon} - title={translate('page.member.header.totalMembers')} - subtitle={`${statistic?.membersTotalQua}`} - /> - </Box > */} + /> + </Box> + <Spacer /> + <Box> + <NbChart orders={stock} /> + </Box> + <Spacer /> + <Box> + <NbList orders={recentOrders} /> + </Box> + </Grid> + <Grid item md={4}> + <Box sx={{ display: 'flex' }}> + <Spacer /> + <NbCard + icon={SensorOccupiedIcon} + subtitle={translate('page.dashboard.header.taskWorkQty')} + title={`${statistic?.membersTotalQua}`} + to={{ + pathname: '/task', + search: JSON.stringify({ + filter: JSON.stringify({ status: 1 }), + }), + }} + list={recentOrders} + /> + </Box> + </Grid> + </Grid> </> ) } -- Gitblit v1.9.1