From f2833c7f3e01c997e94a66bd5dd9be738b5c6cc7 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 26 六月 2025 13:31:08 +0800 Subject: [PATCH] 波次任务下发功能优化 --- rsf-admin/src/page/orders/wave/WaveList.jsx | 65 +++++++++++++++++++++++++++----- 1 files changed, 54 insertions(+), 11 deletions(-) diff --git a/rsf-admin/src/page/orders/wave/WaveList.jsx b/rsf-admin/src/page/orders/wave/WaveList.jsx index a0fb5a4..f8576d0 100644 --- a/rsf-admin/src/page/orders/wave/WaveList.jsx +++ b/rsf-admin/src/page/orders/wave/WaveList.jsx @@ -8,34 +8,26 @@ SelectColumnsButton, EditButton, FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, WrapperField, useRecordContext, useTranslate, useNotify, useListContext, - FunctionField, TextField, NumberField, DateField, BooleanField, - ReferenceField, TextInput, - DateTimeInput, DateInput, SelectInput, NumberInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - DeleteButton, useRefresh, useRedirect, Button, } from 'react-admin'; -import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_WAVE_AUTO_EXCE } from '@/config/setting'; +import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined'; +import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline'; import { Box, Typography, Card, Stack } from '@mui/material'; import ConfirmButton from "../../components/ConfirmButton"; import PageDrawer from "../../components/PageDrawer"; @@ -97,9 +89,21 @@ const WaveList = () => { const translate = useTranslate(); const [createDialog, setCreateDialog] = useState(false); + const [autoExce, setAutoExce] = useState(false); const [detailDialog, setDetailDialog] = useState(false); const [select, setSelectIds] = useState({}); const [drawerVal, setDrawerVal] = useState(false); + + useEffect(() => { + getConfig() + }, []) + + const getConfig = async () => { + const { data: { code, data, msg } } = await request.get('/config/flag/' + DEFAULT_WAVE_AUTO_EXCE); + if (code === 200) { + setAutoExce(JSON.parse(data?.val)) + } + } return ( <Box display="flex"> @@ -118,6 +122,8 @@ sort={{ field: "create_time", order: "desc" }} actions={( <TopToolbar> + <BulkStartButton autoExce={autoExce} setAutoExce={setAutoExce} /> + <BulkPauseButton autoExce={autoExce} setAutoExce={setAutoExce} /> <FilterButton /> <SelectColumnsButton preferenceKey='wave' /> </TopToolbar> @@ -186,4 +192,41 @@ return ( record?.exceStatus == 0 ? <ConfirmButton label={"toolbar.createTask"} startIcon={<PublicIcon />} onConfirm={pubClick} size='small' /> : <></> ); +} + +const BulkStartButton = ({ autoExce, setAutoExce }) => { + const { data, selectedIds, onUnselectItems } = useListContext(); + const notify = useNotify(); + const startClick = async () => { + onUnselectItems() + setAutoExce(true) + const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: true, flag: 'WaveAutoExce' }); + if (code === 200) { + notify(msg); + } else { + notify(msg); + } + } + return ( + !autoExce ? <Button label="toolbar.start" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} /> : <></> + ) +} + +const BulkPauseButton = ({ autoExce, setAutoExce }) => { + const notify = useNotify(); + const { data, selectedIds, onUnselectItems } = useListContext(); + + const pauseClick = async () => { + onUnselectItems() + const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: false, flag: 'WaveAutoExce' }); + if (code === 200) { + notify(msg); + setAutoExce(false) + } else { + notify(msg); + } + } + return ( + autoExce ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></> + ) } \ No newline at end of file -- Gitblit v1.9.1