From 13ea8b334572c2423abb8d156fd8428f8d074172 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 03 七月 2025 08:24:58 +0800
Subject: [PATCH] 1
---
zy-acs-flow/src/page/mission/MissionCard.jsx | 80 +++++++++++++++++++++++++++++++---------
1 files changed, 62 insertions(+), 18 deletions(-)
diff --git a/zy-acs-flow/src/page/mission/MissionCard.jsx b/zy-acs-flow/src/page/mission/MissionCard.jsx
index dc0d9ab..99bbe5f 100644
--- a/zy-acs-flow/src/page/mission/MissionCard.jsx
+++ b/zy-acs-flow/src/page/mission/MissionCard.jsx
@@ -1,6 +1,9 @@
+import React, { useState, useEffect } from 'react';
import { Draggable } from '@hello-pangea/dnd';
-import { Box, Card, Typography } from '@mui/material';
-import { ReferenceField, useRedirect } from 'react-admin';
+import { Box, Card, Typography, Avatar, Divider, Stack, Slider, useTheme } from '@mui/material';
+import { ReferenceField, useRedirect, useTranslate } from 'react-admin';
+import { blueGrey } from '@mui/material/colors';
+import { styled } from '@mui/material/styles';
export const MissionCard = ({ mission, index }) => {
if (!mission) return null;
@@ -18,7 +21,9 @@
);
};
-export const MissionCardContent = ({ provided, snapshot, mission, }) => {
+export const MissionCardContent = ({ provided, snapshot, mission }) => {
+ const theme = useTheme();
+ const translate = useTranslate();
const redirect = useRedirect();
const handleClick = () => {
redirect(`/mission/${mission.id}/show`, undefined, undefined, undefined, {
@@ -26,8 +31,15 @@
});
};
- console.log(mission);
-
+ const [sliderValue, setSliderValue] = useState(mission.progress || 0);
+
+ useEffect(() => {
+ setSliderValue(mission.progress || 0);
+ }, [mission.progress]);
+
+ const handleSliderChange = (event, newValue) => {
+ setSliderValue(newValue);
+ };
return (
<Box
@@ -41,24 +53,56 @@
style={{
opacity: snapshot?.isDragging ? 0.9 : 1,
transform: snapshot?.isDragging ? 'rotate(-2deg)' : '',
+ transition: '0.3s',
}}
elevation={snapshot?.isDragging ? 3 : 1}
>
- <Box padding={1} display="flex">
- <ReferenceField
- source="company_id"
- record={mission}
- reference="companies"
- link={false}
- >
- </ReferenceField>
- <Box sx={{ marginLeft: 1 }}>
- <Typography variant="body2" gutterBottom>
+ <Box padding={2} pb={1} display="flex" flexDirection="column">
+ <Box display="flex" alignItems="center" mb={1.5}>
+ <Avatar
+ sx={{
+ width: 40,
+ height: 28,
+ bgcolor: theme.palette.primary.main,
+ }}
+ variant="rounded"
+ >
+ {mission.agv}
+ </Avatar>
+ <Divider orientation="vertical" flexItem sx={{ margin: '0 8px' }} />
+ <Typography variant="body1" noWrap>
{mission.groupNo}
</Typography>
- <Typography variant="caption" color="textSecondary">
- {mission.posType}
- </Typography>
+ </Box>
+ <Box>
+ <Stack direction="row" justifyContent="space-between" mb={1}>
+ <Typography variant="caption" color="textSecondary">
+ {translate('table.field.mission.backpack')} : {mission.backpack}
+ </Typography>
+ <Typography variant="caption" color="textPrimary">
+ {translate('table.field.mission.code')}: {mission.currCode}
+ </Typography>
+ </Stack>
+ <Divider orientation="horizontal" flexItem />
+ <Stack direction="row" justifyContent="space-between" >
+ <Typography variant="overline">
+ {translate('table.field.mission.task')}: [{mission.taskNos.join(',')}]
+ </Typography>
+ </Stack>
+ <Stack pl={0.5} pr={0.5} direction="row" spacing={1} alignItems="center" mb={.6}>
+ <Slider
+ aria-label="Progress"
+ // defaultValue={mission.progress}
+ value={sliderValue}
+ onChange={handleSliderChange}
+ getAriaValueText={(value) => {
+ return `${value}%`;
+ }}
+ color="secondary"
+ size="small"
+ marks
+ />
+ </Stack>
</Box>
</Box>
</Card>
--
Gitblit v1.9.1