From 7fba4f90e8f6a489bb8767fb48a8c1028fe1ed9f Mon Sep 17 00:00:00 2001 From: vincentlu <t1341870251@gmail.com> Date: 星期一, 21 四月 2025 09:23:25 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/header/MoreOperate.jsx | 35 +++++++++++++++++++++++++++-------- 1 files changed, 27 insertions(+), 8 deletions(-) diff --git a/zy-acs-flow/src/map/header/MoreOperate.jsx b/zy-acs-flow/src/map/header/MoreOperate.jsx index f3d7e4e..49c7d9c 100644 --- a/zy-acs-flow/src/map/header/MoreOperate.jsx +++ b/zy-acs-flow/src/map/header/MoreOperate.jsx @@ -1,24 +1,28 @@ import React, { useState, useRef, useEffect, useMemo } from "react"; import { useTranslate } from "react-admin"; import { + Box, Select, MenuItem, Button, useTheme, ListItemIcon, ListItemText, + CircularProgress, } from '@mui/material'; -import { handleRePositionAll } from "../http"; +import { handleLocateAllAgv } from "../http"; import GpsFixedIcon from '@mui/icons-material/GpsFixed'; +import { VERIFY_PASSWORD } from '@/config/setting'; const MoreOperate = ({ }) => { const translate = useTranslate(); const theme = useTheme(); + const [loading, setLoading] = useState(false); const verifyPassword = (fn) => { let pass = true; const pwd = prompt("please enter password:"); - if (pwd === 'xltys1995') { + if (pwd === VERIFY_PASSWORD) { pass = true; } else { pass = false; @@ -33,8 +37,13 @@ } } - const handleLocateAll = () => { - alert('瀹氫綅鎴愬姛'); + const handleLocateAll = async () => { + setLoading(true) + try { + await handleLocateAllAgv(); + } finally { + setLoading(false); + } } return ( @@ -44,11 +53,17 @@ onChange={(event) => { console.log(event.target.value); }} - renderValue={(selected) => - translate('page.map.action.moreOperation') - } + renderValue={() => ( + <Box sx={{ display: 'flex', alignItems: 'center' }}> + {loading && ( + <CircularProgress size={20} sx={{ mr: 1 }} /> + )} + {translate('page.map.action.moreOperation')} + </Box> + )} variant="outlined" size="small" + disabled={loading} sx={{ ml: 2, backgroundColor: theme.palette.background.paper, @@ -61,9 +76,13 @@ onClick={() => { verifyPassword(handleLocateAll); }} + disabled={loading} > <ListItemIcon> - <GpsFixedIcon fontSize="small" /> + {loading + ? <CircularProgress size={20} /> + : <GpsFixedIcon fontSize="small" /> + } </ListItemIcon> <ListItemText>{translate('page.map.action.oneClickLocate')}</ListItemText> </MenuItem> -- Gitblit v1.9.1