From 4b81cc671814355c769e9c4c67ccb6e2ebf6321d Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 21 四月 2025 10:02:13 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/header/MoreOperate.jsx |   60 ++++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 46 insertions(+), 14 deletions(-)

diff --git a/zy-acs-flow/src/map/header/MoreOperate.jsx b/zy-acs-flow/src/map/header/MoreOperate.jsx
index 49c7d9c..c210132 100644
--- a/zy-acs-flow/src/map/header/MoreOperate.jsx
+++ b/zy-acs-flow/src/map/header/MoreOperate.jsx
@@ -10,9 +10,11 @@
     ListItemText,
     CircularProgress,
 } from '@mui/material';
-import { handleLocateAllAgv } from "../http";
+import { locateAllAgv, startPatrolBatch, cancelPatrolBatch } from "../http";
 import GpsFixedIcon from '@mui/icons-material/GpsFixed';
 import { VERIFY_PASSWORD } from '@/config/setting';
+import TimelineIcon from '@mui/icons-material/Timeline';
+import CloseIcon from '@mui/icons-material/Close';
 
 const MoreOperate = ({ }) => {
     const translate = useTranslate();
@@ -37,13 +39,25 @@
         }
     }
 
-    const handleLocateAll = async () => {
-        setLoading(true)
+    const debounced = async (fn) => {
+        setLoading(true);
         try {
-            await handleLocateAllAgv();
+            await fn();
         } finally {
             setLoading(false);
         }
+    }
+
+    const handleLocateAll = () => {
+        debounced(locateAllAgv);
+    }
+
+    const handleStartPatrolBatch = () => {
+        debounced(startPatrolBatch);
+    }
+
+    const handleCancelPatrolBatch = () => {
+        debounced(cancelPatrolBatch);
     }
 
     return (
@@ -51,7 +65,6 @@
             <Select
                 value={translate('page.map.action.moreOperation')}
                 onChange={(event) => {
-                    console.log(event.target.value);
                 }}
                 renderValue={() => (
                     <Box sx={{ display: 'flex', alignItems: 'center' }}>
@@ -86,17 +99,36 @@
                     </ListItemIcon>
                     <ListItemText>{translate('page.map.action.oneClickLocate')}</ListItemText>
                 </MenuItem>
+                <MenuItem
+                    onClick={() => {
+                        verifyPassword(handleStartPatrolBatch);
+                    }}
+                    disabled={loading}
+                >
+                    <ListItemIcon>
+                        {loading
+                            ? <CircularProgress size={20} />
+                            : <TimelineIcon fontSize="small" />
+                        }
+                    </ListItemIcon>
+                    <ListItemText>{translate('page.map.action.oneClickPatrol')}</ListItemText>
+                </MenuItem>
+                <MenuItem
+                    onClick={() => {
+                        verifyPassword(handleCancelPatrolBatch);
+                    }}
+                    disabled={loading}
+                >
+                    <ListItemIcon>
+                        {loading
+                            ? <CircularProgress size={20} />
+                            : <CloseIcon fontSize="small" />
+                        }
+                    </ListItemIcon>
+                    <ListItemText>{translate('page.map.action.cancelPatrol')}</ListItemText>
+                </MenuItem>
             </Select>
-            {/* <Button
-                variant="contained"
-                color="primary"
-                onClick={handleToggle}
-                sx={{ mr: 2 }}
-            >
-                閲嶆柊瀹氫綅
-            </Button> */}
         </>
-
     );
 }
 

--
Gitblit v1.9.1