From bdc1625cac2a70dc261ecb8af031f3cee603f878 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@gmail.com> Date: 星期四, 17 四月 2025 10:00:49 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/segment/SegmentList.jsx | 49 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 43 insertions(+), 6 deletions(-) diff --git a/zy-acs-flow/src/page/segment/SegmentList.jsx b/zy-acs-flow/src/page/segment/SegmentList.jsx index d1d49af..1bce14c 100644 --- a/zy-acs-flow/src/page/segment/SegmentList.jsx +++ b/zy-acs-flow/src/page/segment/SegmentList.jsx @@ -32,6 +32,7 @@ DeleteButton, FunctionField, Count, + useNotify, } from 'react-admin'; import { Box, Typography, Stack, useMediaQuery, Tabs, Tab, Divider } from '@mui/material'; import { styled } from '@mui/material/styles'; @@ -42,6 +43,9 @@ import MyField from "../components/MyField"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; import * as Common from '@/utils/common'; +import ConfirmButton from "../components/ConfirmButton"; +import ClearIcon from '@mui/icons-material/Clear'; +import request from '@/utils/request'; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -53,13 +57,13 @@ '& .column-name': { }, '& .opt': { - width: 200 + width: 120 }, })); const filters = [ // <SearchInput source="condition" alwaysOn />, - <TextInput source="groupId" label="table.field.segment.groupId" alwaysOn/>, + <TextInput source="groupId" label="table.field.segment.groupId" alwaysOn />, <ReferenceInput source="agvId" label="table.field.segment.agvId" reference="agv" alwaysOn> <AutocompleteInput label="table.field.segment.agvId" optionText="uuid" filterToQuery={(val) => ({ uuid: val })} /> </ReferenceInput>, @@ -140,6 +144,7 @@ const TabbedDatagrid = () => { const translate = useTranslate(); + const notify = useNotify(); const { filterValues, setFilters, displayedFilters } = useListContext(); const isXSmall = useMediaQuery(theme => theme.breakpoints.down('sm') @@ -152,6 +157,19 @@ ); }, [filterValues, setFilters, displayedFilters]); + const handleDeprecate = (segmentId) => { + request.get("/segment/cancel/" + segmentId).then(res => { + const { code, msg, data } = res.data; + if (code === 200) { + notify(msg || 'common.response.success', { type: 'success', messageArgs: { _: msg } }); + refresh(); + } else { + notify(msg || 'common.response.fail', { type: 'error', messageArgs: { _: msg } }); + } + }).catch(error => { + notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } }); + }) + } return ( <> @@ -240,10 +258,29 @@ <DateField source="createTime" label="common.field.createTime" showTime /> <BooleanField source="statusBool" label="common.field.status" sortable={false} /> <TextField source="memo" label="common.field.memo" sortable={false} /> - {/* <FunctionField label="common.field.opt" cellClassName="opt" render={record => ( - <> - </> - )} /> */} + {filterValues.state === 'RUNNING' && ( + <FunctionField label="common.field.opt" cellClassName="opt" render={record => ( + <> + <ConfirmButton + label="common.action.deprecate" + size="small" + color="error" + startIcon={<ClearIcon />} + sx={{ + padding: '1px', + fontSize: '.75rem', + '& .MuiButton-startIcon': { + marginRight: '2px' + }, + }} + data={record.id} + onConfirm={() => { + handleDeprecate(record.id); + }} + /> + </> + )} /> + )} </StyledDatagrid> </> )} -- Gitblit v1.9.1