From fb93a0da4d477d7bbc00b801a6cc24f15e1ddcf4 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 11 八月 2025 12:58:41 +0800
Subject: [PATCH] #
---
rsf-admin/src/page/dashboard/NbList.jsx | 79 +++++++++++++++++++++++++++++++++++++++
rsf-admin/src/page/dashboard/index.jsx | 13 ++++++
rsf-admin/src/page/dashboard/NbChart.jsx | 6 +-
3 files changed, 94 insertions(+), 4 deletions(-)
diff --git a/rsf-admin/src/page/dashboard/NbChart.jsx b/rsf-admin/src/page/dashboard/NbChart.jsx
index 2ed9df8..a0b6373 100644
--- a/rsf-admin/src/page/dashboard/NbChart.jsx
+++ b/rsf-admin/src/page/dashboard/NbChart.jsx
@@ -64,12 +64,12 @@
>
<stop
offset="5%"
- stopColor="#8884d8"
+ stopColor="#5091abff"
stopOpacity={0.8}
/>
<stop
offset="95%"
- stopColor="#8884d8"
+ stopColor="#5091abff"
stopOpacity={0}
/>
</linearGradient>
@@ -102,7 +102,7 @@
<Area
type="monotone"
dataKey="total"
- stroke="#8884d8"
+ stroke="#5091abff"
strokeWidth={2}
fill="url(#colorUv)"
/>
diff --git a/rsf-admin/src/page/dashboard/NbList.jsx b/rsf-admin/src/page/dashboard/NbList.jsx
new file mode 100644
index 0000000..9bb7024
--- /dev/null
+++ b/rsf-admin/src/page/dashboard/NbList.jsx
@@ -0,0 +1,79 @@
+import * as React from 'react';
+import { useTranslate, useReference } from 'react-admin';
+import {
+ ListItem,
+ ListItemSecondaryAction,
+ ListItemAvatar,
+ ListItemText,
+ Avatar,
+ Box,
+ ListItemButton,
+ Card,
+ CardHeader,
+ List,
+} from '@mui/material';
+import { Link } from 'react-router-dom';
+
+const NbList = (props) => {
+ const { orders = [] } = props;
+ const translate = useTranslate();
+
+ return (
+ <Card sx={{ flex: 1 }}>
+ <CardHeader title={translate('pos.dashboard.pending_orders')} />
+ <List dense={true}>
+ {orders.map(record => (
+ <PendingOrder key={record.id} order={record} />
+ ))}
+ </List>
+ </Card>
+ );
+};
+
+export const PendingOrder = (props) => {
+ const { order } = props;
+ console.log(order);
+
+ const translate = useTranslate();
+ const { referenceRecord: customer, isPending } = useReference({
+ reference: 'customers',
+ id: order.customer_id,
+ });
+
+ return (
+ <ListItem disablePadding>
+ <ListItemButton component={Link} to={`/orders/${order.id}`}>
+ {/* <ListItemAvatar>
+ {isPending ? (
+ <Avatar />
+ ) : (
+ <Avatar
+ src={`${customer?.avatar}?size=32x32`}
+ sx={{ bgcolor: 'background.paper' }}
+ alt={`${customer?.first_name} ${customer?.last_name}`}
+ />
+ )}
+ </ListItemAvatar> */}
+ <ListItemText
+ primary={new Date(order.date).toLocaleString('en-GB')}
+ secondary={translate('pos.dashboard.order.items', {
+ name: order.name
+ })}
+ />
+ <ListItemSecondaryAction>
+ <Box
+ component="span"
+ sx={{
+ marginRight: '1em',
+ color: 'text.primary',
+ }}
+ >
+ {order.total}$
+ </Box>
+ </ListItemSecondaryAction>
+ </ListItemButton>
+ </ListItem>
+ );
+};
+
+export default NbList;
\ 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 c02706a..6dfbcbc 100644
--- a/rsf-admin/src/page/dashboard/index.jsx
+++ b/rsf-admin/src/page/dashboard/index.jsx
@@ -11,6 +11,7 @@
import request from '@/utils/request';
import { Box, Typography, LinearProgress, Stack } from '@mui/material';
import NbChart from "./NbChart";
+import NbList from "./NbList";
const styles = {
flex: { display: 'flex' },
@@ -88,22 +89,32 @@
const recentOrders = [
{
+ id: 1,
+ name: 'a',
date: "2025-08-10T12:23:56.959Z",
total: 138.94
},
{
+ id: 2,
+ name: 'b',
date: "2025-08-03T07:45:00.304Z",
total: 214.66
},
{
+ id: 3,
+ name: 'c',
date: "2025-07-28T00:20:10.968Z",
total: 68.19
},
{
+ id: 4,
+ name: 'd',
date: "2025-07-22T20:39:00.293Z",
total: 36.56
},
{
+ id: 5,
+ name: 'e',
date: "2025-07-16T17:40:24.791Z",
total: 100.82
},
@@ -130,7 +141,7 @@
<NbChart orders={recentOrders} />
</div>
<div style={styles.singleCol}>
- {/* <PendingOrders orders={pendingOrders} /> */}
+ <NbList orders={recentOrders} />
</div>
</div>
<div style={styles.rightCol}>
--
Gitblit v1.9.1