From 0cd6dfd544b900ff66682881fe4d6df0b90e386d Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 14 八月 2025 11:21:02 +0800 Subject: [PATCH] no message --- rsf-admin/src/page/dashboard/NbList.jsx | 61 +++++++++++++++----- rsf-admin/src/page/dashboard/index.jsx | 60 ++++--------------- rsf-admin/src/page/dashboard/NbPie.jsx | 53 +++++++++++++++++ rsf-admin/src/page/dashboard/NbChart.jsx | 2 4 files changed, 111 insertions(+), 65 deletions(-) diff --git a/rsf-admin/src/page/dashboard/NbChart.jsx b/rsf-admin/src/page/dashboard/NbChart.jsx index de79803..a154760 100644 --- a/rsf-admin/src/page/dashboard/NbChart.jsx +++ b/rsf-admin/src/page/dashboard/NbChart.jsx @@ -44,8 +44,6 @@ const NbChart = (props) => { const { orders } = props; - console.log(orders); - const translate = useTranslate(); if (!orders) return null; diff --git a/rsf-admin/src/page/dashboard/NbList.jsx b/rsf-admin/src/page/dashboard/NbList.jsx index 2d1ca12..4cb2005 100644 --- a/rsf-admin/src/page/dashboard/NbList.jsx +++ b/rsf-admin/src/page/dashboard/NbList.jsx @@ -5,25 +5,25 @@ ListItemSecondaryAction, ListItemAvatar, ListItemText, + Typography, Avatar, Box, ListItemButton, Card, CardHeader, List, + Grid, } from '@mui/material'; import { Link } from 'react-router-dom'; -const NbList = (props) => { - const { orders = [] } = props; +const NbList = ({ deadStock }) => { const translate = useTranslate(); - return ( <Card sx={{ flex: 1 }}> <CardHeader title={translate('page.dashboard.list.stock')} /> <List dense={true}> - {orders.map(record => ( - <PendingOrder key={record.id} order={record} /> + {deadStock.map(record => ( + <PendingOrder key={`record?.id + ${Math.random().toString(36).substr(2, 9)} `} order={record} /> ))} </List> </Card> @@ -32,11 +32,12 @@ export const PendingOrder = (props) => { const { order } = props; + console.log(order); const translate = useTranslate(); - const { referenceRecord: customer, isPending } = useReference({ - reference: 'customers', - id: order.customer_id, - }); + // const { referenceRecord: customer, isPending } = useReference({ + // reference: 'customers', + // id: order.id, + // }); return ( <ListItem disablePadding> @@ -52,13 +53,41 @@ /> )} </ListItemAvatar> */} - <ListItemText - primary={new Date(order.date).toLocaleString('en-GB')} + {/* <ListItemText + primary={new Date(order.createTime).toLocaleString('en-GB')} secondary={translate('page.dashboard.list.stock', { - name: order.name + name: order.maktx })} - /> - <ListItemSecondaryAction> + > + + </ListItemText> */} + <Grid container item md={12}> + <Box sx={{ display: 'flex' }}> + <Box sx={{ display: 'flex', padding: '1em' }}> + <Typography color="textSecondary">{translate("table.field.asnOrderItem.matnrCode")}锛�</Typography> + <Typography color="textSecondary">{order?.matnrCode}</Typography> + </Box> + </Box> + <Box sx={{ display: 'flex' }}> + <Box sx={{ display: 'flex', padding: '1em' }}> + <Typography color="textSecondary">{translate("table.field.asnOrderItem.maktx")}锛�</Typography> + <Typography color="textSecondary" maxWidth="200" overflow="hidden">{order?.maktx}</Typography> + </Box> + </Box> + <Box sx={{ display: 'flex' }}> + <Box sx={{ display: 'flex', padding: '1em' }}> + <Typography color="textSecondary">{translate("table.field.asnOrderItem.anfme")}锛�</Typography> + <Typography color="textSecondary">{order?.anfme}</Typography> + </Box> + </Box> + <Box sx={{ display: 'flex' }}> + <Box sx={{ display: 'flex', padding: '1em' }}> + <Typography color="textSecondary">{translate("table.field.locItem.deadTime")}锛�</Typography> + <Typography color="textSecondary">{order?.deadTime}</Typography> + </Box> + </Box> + </Grid> + {/* <ListItemSecondaryAction> <Box component="span" sx={{ @@ -66,9 +95,9 @@ color: 'text.primary', }} > - {order.total}$ + {order.deadTime} </Box> - </ListItemSecondaryAction> + </ListItemSecondaryAction> */} </ListItemButton> </ListItem> ); diff --git a/rsf-admin/src/page/dashboard/NbPie.jsx b/rsf-admin/src/page/dashboard/NbPie.jsx new file mode 100644 index 0000000..6b2d64e --- /dev/null +++ b/rsf-admin/src/page/dashboard/NbPie.jsx @@ -0,0 +1,53 @@ + +import * as React from 'react'; +import { Pie, PieChart, ResponsiveContainer, Tooltip } from 'recharts'; +import { Card } from "@mui/material"; +import { useTranslate } from "react-admin"; + + +const NbPie = ({ deadStock }) => { + const translate = useTranslate(); + + const data01 = [ + { name: 'Group A', value: 400 }, + { name: 'Group B', value: 300 }, + { name: 'Group C', value: 300 }, + { name: 'Group D', value: 200 }, + { name: 'Group E', value: 278 }, + { name: 'Group F', value: 189 }, + ]; + + const data02 = [ + { name: 'Group A', value: 2400 }, + { name: 'Group B', value: 4567 }, + { name: 'Group C', value: 1398 }, + { name: 'Group D', value: 9800 }, + { name: 'Group E', value: 3908 }, + { name: 'Group F', value: 4800 }, + ]; + + return ( + <> + <Card> + <ResponsiveContainer width="100%" height="100%"> + <PieChart width={400} height={400}> + <Pie + dataKey="value" + isAnimationActive={false} + data={data01} + cx="50%" + cy="50%" + outerRadius={80} + fill="#8884d8" + label + /> + <Pie dataKey="value" data={data02} cx={500} cy={200} innerRadius={40} outerRadius={80} fill="#82ca9d" /> + <Tooltip /> + </PieChart> + </ResponsiveContainer> + </Card> + </> + ); +} + +export default NbPie; \ No newline at end of file diff --git a/rsf-admin/src/page/dashboard/index.jsx b/rsf-admin/src/page/dashboard/index.jsx index b832f8d..c2f7fd8 100644 --- a/rsf-admin/src/page/dashboard/index.jsx +++ b/rsf-admin/src/page/dashboard/index.jsx @@ -13,6 +13,8 @@ import NbChart from "./NbChart"; import NbList from "./NbList"; import NbCard from "./NbCard"; +import { orderBy } from 'lodash'; +import NbPie from './NbPie'; const styles = { flex: { display: 'flex' }, @@ -72,6 +74,7 @@ const notify = useNotify(); const [statistic, setStatistic] = useState({}); const [stock, setStock] = useState([]); + const [deadStock, setDeadStock] = useState([]); useEffect(() => { getDashBoardHeader() @@ -94,10 +97,10 @@ } const getRecentStocks = async () => { - await request.post('/asnOrder/dashbord/header').then(res => { - const { code, msg, data } = res.data?.data; + await request.post('/locItem/page', { current: 1, pageSize: 10, orderBy: 'create_time asc' }).then(res => { + const { code, msg, data } = res?.data; if (code === 200) { - setStatistic(data); + setDeadStock(data?.records); } else { notify(msg, { type: 'error', messageArgs: { _: msg } }); } @@ -105,7 +108,6 @@ notify(error.message, { type: 'error', messageArgs: { _: error.message } }); }) } - /** * 鑾峰彇搴撹繎涓�涓湀鍑哄叆搴撲俊鎭� @@ -123,47 +125,9 @@ }) } - const recentOrders = [ - { - id: 1, - name: 'a', - date: "2025-08-10T12:23:56.959Z", - total: 138.94, - inTotal: 254, - }, - { - id: 2, - name: 'b', - date: "2025-08-03T07:45:00.304Z", - total: 214.66, - inTotal: 258, - }, - { - id: 3, - name: 'c', - date: "2025-07-28T00:20:10.968Z", - total: 68.19, - inTotal: 154, - }, - { - id: 4, - name: 'd', - date: "2025-07-22T20:39:00.293Z", - total: 36.56, - inTotal: 124, - }, - { - id: 5, - name: 'e', - date: "2025-07-16T17:40:24.791Z", - total: 100.82, - inTotal: 354, - }, - ] - return ( <> - <Grid container md={12}> + <Grid container md={12} item> <Grid item md={8}> <Box sx={{ display: "flex" }}> <CardWithIcon @@ -180,7 +144,6 @@ title={`${statistic?.membersTotalQua}`} type={"out"} statistic={statistic} - /> </Box> <Spacer /> @@ -188,9 +151,12 @@ <NbChart orders={stock} /> </Box> <Spacer /> - <Box> - <NbList orders={recentOrders} /> + <Box sx={{ display: 'flex' }}> + <NbList deadStock={deadStock} /> + <NbPie /> </Box> + <Spacer /> + </Grid> <Grid item md={4}> <Box sx={{ display: 'flex' }}> @@ -205,7 +171,7 @@ filter: JSON.stringify({ status: 1 }), }), }} - list={recentOrders} + list={deadStock} /> </Box> </Grid> -- Gitblit v1.9.1