feat: monitor button

This commit is contained in:
jialin
2026-02-04 20:14:25 +08:00
parent 47596fdb1a
commit 4e8b5e26ae
40 changed files with 352 additions and 176 deletions
@@ -0,0 +1,50 @@
import { DeleteOutlined, PlusOutlined } from '@ant-design/icons';
import { useIntl } from '@umijs/max';
import { Button, Space } from 'antd';
import React from 'react';
export interface WorkerRightActionsProps {
handleDeleteByBatch: () => void;
handleClickPrimary?: () => void;
MonitorButton?: React.ReactNode;
rowSelection: {
selectedRowKeys: React.Key[];
};
}
const WorkerRightActions: React.FC<WorkerRightActionsProps> = ({
handleDeleteByBatch,
handleClickPrimary,
rowSelection,
MonitorButton
}) => {
const intl = useIntl();
return (
<Space size={16}>
{MonitorButton}
<Button
icon={<PlusOutlined />}
type="primary"
onClick={handleClickPrimary}
>
{intl.formatMessage({ id: 'resources.button.create' })}
</Button>
<Button
icon={<DeleteOutlined />}
danger
onClick={handleDeleteByBatch}
disabled={!rowSelection?.selectedRowKeys?.length}
>
<span>
{intl.formatMessage({ id: 'common.button.delete' })}
{rowSelection?.selectedRowKeys?.length > 0 && (
<span>({rowSelection?.selectedRowKeys?.length})</span>
)}
</span>
</Button>
</Space>
);
};
export default WorkerRightActions;
+14 -2
View File
@@ -25,6 +25,7 @@ import useWorkerColumns from '../hooks/use-worker-columns';
import useWorkerMaintenance from '../hooks/use-worker-maintenance';
import UpdateLabels from './update-labels';
import WorkerDetailModal from './worker-detail-modal';
import WorkerRightActions from './worker-right-actions';
const Workers: React.FC<{
clusterId?: string | number | null;
@@ -65,7 +66,10 @@ const Workers: React.FC<{
cluster_id: clusterId
}
});
const { goToGrafana } = useGranfanaLink({ type: 'worker' });
const { goToGrafana, ActionButton } = useGranfanaLink({
type: 'worker',
dataList: dataSource.dataList || []
});
const { MaintenanceModal, handleStopMaintenance, setOpenStatus } =
useWorkerMaintenance({ fetchData: handleSearch });
@@ -268,11 +272,19 @@ const Workers: React.FC<{
handleDeleteByBatch={handleDeleteBatch}
handleSearch={handleSearch}
handleSelectChange={handleClusterChange}
handleClickPrimary={showAddButton ? handleOnAddWorker : undefined}
handleClickPrimary={handleOnAddWorker}
handleInputChange={handleNameChange}
rowSelection={rowSelection}
selectOptions={clusterData.list}
widths={widths}
right={
<WorkerRightActions
handleDeleteByBatch={handleDeleteBatch}
handleClickPrimary={handleOnAddWorker}
rowSelection={rowSelection}
MonitorButton={ActionButton()}
></WorkerRightActions>
}
></FilterBar>
<ConfigProvider renderEmpty={renderEmpty}>
<Table