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