From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 十一月 2024 10:22:45 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/components/PulseSignal.jsx |   71 +++++++++++++++++++++++------------
 1 files changed, 46 insertions(+), 25 deletions(-)

diff --git a/zy-acs-flow/src/page/components/PulseSignal.jsx b/zy-acs-flow/src/page/components/PulseSignal.jsx
index b4a0750..c1d33c5 100644
--- a/zy-acs-flow/src/page/components/PulseSignal.jsx
+++ b/zy-acs-flow/src/page/components/PulseSignal.jsx
@@ -1,36 +1,57 @@
 import * as React from 'react';
 import { Paper, Typography, Box, Chip, Avatar } from '@mui/material';
+import { teal, red } from '@mui/material/colors';
 
 const PulseSignal = (props) => {
-    const { flag = true, width = 8, ...rest } = props;
+    const {
+        flag = true,
+        width = 8,
+        negative = false,
+        positiveColor = teal[400],
+        negativeColor = red[400],
+        ...rest
+    } = props;
 
     return (
         <>
-            <Box
-                {...rest}
-                sx={{
-                    width: width,
-                    height: width,
-                    borderRadius: '50%',
-                    backgroundColor: flag ? '#3f51b5' : '#f44336',
-                    display: 'inline-block',
-                    animation: 'pulse 1.5s infinite',
-                    '@keyframes pulse': {
-                        '0%': {
-                            transform: 'scale(1)',
-                            opacity: 1,
+            {flag ? (
+                <Box
+                    {...rest}
+                    sx={{
+                        width: width,
+                        height: width,
+                        borderRadius: '50%',
+                        backgroundColor: positiveColor,
+                        display: 'inline-block',
+                        animation: `pulse ${negative ? '2' : '1.2'}s infinite`,
+                        '@keyframes pulse': {
+                            '0%': {
+                                transform: 'scale(1)',
+                                opacity: 1,
+                            },
+                            '50%': {
+                                transform: 'scale(1.3)',
+                                opacity: 0.7,
+                            },
+                            '100%': {
+                                transform: 'scale(1)',
+                                opacity: 1,
+                            },
                         },
-                        '50%': {
-                            transform: 'scale(1.2)',
-                            opacity: 0.7,
-                        },
-                        '100%': {
-                            transform: 'scale(1)',
-                            opacity: 1,
-                        },
-                    },
-                }}
-            />
+                    }}
+                />
+            ) : (
+                <Box
+                    {...rest}
+                    sx={{
+                        width: width + width / 10,
+                        height: width + width / 10,
+                        borderRadius: '50%',
+                        backgroundColor: negativeColor,
+                        display: 'inline-block',
+                    }}
+                />
+            )}
         </>
     )
 

--
Gitblit v1.9.1