From fd6d26f8ffe6a37533e741337f3eca9134d934c7 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 15 一月 2025 10:42:59 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/page/mission/MissionCard.jsx | 82 +++++++++++++++++++++++++++++++----------
1 files changed, 62 insertions(+), 20 deletions(-)
diff --git a/zy-acs-flow/src/page/mission/MissionCard.jsx b/zy-acs-flow/src/page/mission/MissionCard.jsx
index 4fe4b4e..0fc1c16 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,16 +21,24 @@
);
};
-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, {
_scrollToTop: false,
});
+ };
+
+ const [sliderValue, setSliderValue] = useState(mission.progress || 0);
+
+ useEffect(() => {
+ setSliderValue(mission.progress || 0);
+ }, [mission.progress]);
+
+ const handleSliderChange = (event, newValue) => {
+ setSliderValue(newValue);
};
return (
@@ -42,24 +53,55 @@
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: 30,
+ height: 30,
+ bgcolor: theme.palette.primary.main,
+ }}
+ >
+ {mission.agv}
+ </Avatar>
+ <Divider orientation="vertical" flexItem sx={{ margin: '0 8px' }} />
+ <Typography variant="body1" noWrap>
{mission.groupNo}
</Typography>
- <Typography variant="caption" color="textSecondary">
- 1
- </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