From f788849c6f649dbc6c5c8699d8f83d71ba484376 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 15 八月 2025 09:03:55 +0800 Subject: [PATCH] 库存使用率修改 --- rsf-admin/src/page/dashboard/NbList.jsx | 17 +++++--- rsf-admin/src/page/components/CardWithIcon.jsx | 1 rsf-admin/src/i18n/zh.js | 2 rsf-admin/src/i18n/en.js | 5 ++ rsf-admin/src/page/dashboard/index.jsx | 23 +++++++++-- rsf-admin/src/page/dashboard/NbPie.jsx | 40 ++++++++------------ 6 files changed, 52 insertions(+), 36 deletions(-) diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js index 4312ccf..f9fd34b 100644 --- a/rsf-admin/src/i18n/en.js +++ b/rsf-admin/src/i18n/en.js @@ -1215,6 +1215,11 @@ inStockQty: '', outStockQty: '', taskWorkQty: '', + planQty: 'Plan', + realQty: 'Real Qty', + waitQty: 'Wait Qty', + waitOutQty: 'Wait Out Qty', + stockUsage: 'Stock Usage', }, chart: { histories: 'Orders Echart', diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js index 2ca1992..b7642e8 100644 --- a/rsf-admin/src/i18n/zh.js +++ b/rsf-admin/src/i18n/zh.js @@ -1231,7 +1231,7 @@ realQty: '瀹為檯', waitQty: '寰呭叆', waitOutQty: '寰呭嚭', - + stockUsage: '搴撳瓨浣跨敤鐜�', }, chart: { histories: '鍑哄叆搴撹秼鍔垮浘', diff --git a/rsf-admin/src/page/components/CardWithIcon.jsx b/rsf-admin/src/page/components/CardWithIcon.jsx index 567a0bb..5e4b3d0 100644 --- a/rsf-admin/src/page/components/CardWithIcon.jsx +++ b/rsf-admin/src/page/components/CardWithIcon.jsx @@ -11,6 +11,7 @@ <Card sx={{ width: '100%', + maxHeight: 1025, minHeight: 52, flexDirection: 'column', flex: '1', diff --git a/rsf-admin/src/page/dashboard/NbList.jsx b/rsf-admin/src/page/dashboard/NbList.jsx index 4cb2005..4149f63 100644 --- a/rsf-admin/src/page/dashboard/NbList.jsx +++ b/rsf-admin/src/page/dashboard/NbList.jsx @@ -19,20 +19,23 @@ const NbList = ({ deadStock }) => { const translate = useTranslate(); return ( - <Card sx={{ flex: 1 }}> + <Card sx={{ + flex: 1, + }}> <CardHeader title={translate('page.dashboard.list.stock')} /> - <List dense={true}> - {deadStock.map(record => ( - <PendingOrder key={`record?.id + ${Math.random().toString(36).substr(2, 9)} `} order={record} /> - ))} - </List> + <Box sx={{ maxHeight: 500, overflowY: 'auto',}}> + <List dense={true}> + {deadStock.map(record => ( + <PendingOrder key={`record?.id + ${Math.random().toString(36).substr(2, 9)} `} order={record} /> + ))} + </List> + </Box> </Card> ); }; export const PendingOrder = (props) => { const { order } = props; - console.log(order); const translate = useTranslate(); // const { referenceRecord: customer, isPending } = useReference({ // reference: 'customers', diff --git a/rsf-admin/src/page/dashboard/NbPie.jsx b/rsf-admin/src/page/dashboard/NbPie.jsx index 6b2d64e..c614e70 100644 --- a/rsf-admin/src/page/dashboard/NbPie.jsx +++ b/rsf-admin/src/page/dashboard/NbPie.jsx @@ -1,47 +1,39 @@ import * as React from 'react'; import { Pie, PieChart, ResponsiveContainer, Tooltip } from 'recharts'; -import { Card } from "@mui/material"; +import { Card, CardHeader } from "@mui/material"; import { useTranslate } from "react-admin"; -const NbPie = ({ deadStock }) => { +const NbPie = ({ deadStock, locUsage }) => { 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 }, - ]; + console.log(locUsage); return ( <> - <Card> + <Card sx={{ + width: '100%', + maxHeight: 570, + flexDirection: 'column', + flex: '1', + '& a': { + textDecoration: 'none', + color: 'inherit', + }, + }}> + <CardHeader title={translate('page.dashboard.header.stockUsage')} /> <ResponsiveContainer width="100%" height="100%"> <PieChart width={400} height={400}> <Pie dataKey="value" isAnimationActive={false} - data={data01} + data={locUsage} cx="50%" - cy="50%" + cy="40%" outerRadius={80} fill="#8884d8" label /> - <Pie dataKey="value" data={data02} cx={500} cy={200} innerRadius={40} outerRadius={80} fill="#82ca9d" /> <Tooltip /> </PieChart> </ResponsiveContainer> diff --git a/rsf-admin/src/page/dashboard/index.jsx b/rsf-admin/src/page/dashboard/index.jsx index c2f7fd8..d47caa1 100644 --- a/rsf-admin/src/page/dashboard/index.jsx +++ b/rsf-admin/src/page/dashboard/index.jsx @@ -13,7 +13,6 @@ import NbChart from "./NbChart"; import NbList from "./NbList"; import NbCard from "./NbCard"; -import { orderBy } from 'lodash'; import NbPie from './NbPie'; const styles = { @@ -75,11 +74,13 @@ const [statistic, setStatistic] = useState({}); const [stock, setStock] = useState([]); const [deadStock, setDeadStock] = useState([]); + const [locUsage, setLocUsages] = useState([]); useEffect(() => { getDashBoardHeader() getRecentTrands() getRecentStocks() + getRecentUsage() }, []) @@ -101,6 +102,21 @@ const { code, msg, data } = res?.data; if (code === 200) { setDeadStock(data?.records); + } 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 { notify(msg, { type: 'error', messageArgs: { _: msg } }); } @@ -151,12 +167,11 @@ <NbChart orders={stock} /> </Box> <Spacer /> - <Box sx={{ display: 'flex' }}> + <Box sx={{ display: 'flex', justifyContent: 'space-between' }}> <NbList deadStock={deadStock} /> - <NbPie /> + <NbPie locUsage={locUsage} /> </Box> <Spacer /> - </Grid> <Grid item md={4}> <Box sx={{ display: 'flex' }}> -- Gitblit v1.9.1