@@ -150,8 +157,8 @@ const ApiKeyList = () => {
type="text"
size="small"
icon={}
- onClick={() => handleCopyApiKey(record.key || '')}
- title="复制密钥"
+ onClick={() => void handleCopyApiKey(record.id)}
+ title="复制完整密钥"
/>
);
@@ -269,7 +276,7 @@ const ApiKeyList = () => {
dataSource={apiKeyPaging?.items || []}
loading={isLoading || isFetching}
rowKey="id"
- scroll={{x: 'max-content'}}
+ scroll={{x: 900}}
tableLayout="fixed"
pagination={{
current: pageIndex,
diff --git a/web/src/admin/pages/DDNS/index.tsx b/web/src/admin/pages/DDNS/index.tsx
index d52222a..00ceda9 100644
--- a/web/src/admin/pages/DDNS/index.tsx
+++ b/web/src/admin/pages/DDNS/index.tsx
@@ -134,6 +134,7 @@ const DDNSPage = () => {
{
title: '配置名称',
dataIndex: 'name',
+ width: 220,
render: (_, record) => (
@@ -306,7 +307,7 @@ const DDNSPage = () => {
dataSource={ddnsPaging?.items || []}
loading={isLoading || isFetching}
rowKey="id"
- scroll={{x: 'max-content'}}
+ scroll={{x: 1150}}
tableLayout="fixed"
pagination={{
current: pageIndex,
diff --git a/web/src/admin/pages/ManageApiKeys/ManageApiKeyList.tsx b/web/src/admin/pages/ManageApiKeys/ManageApiKeyList.tsx
index 7fe1065..e838e9c 100644
--- a/web/src/admin/pages/ManageApiKeys/ManageApiKeyList.tsx
+++ b/web/src/admin/pages/ManageApiKeys/ManageApiKeyList.tsx
@@ -2,13 +2,12 @@ import {useEffect, useState} from 'react';
import {useSearchParams} from 'react-router-dom';
import {App, Button, Input, Popconfirm, Space, Table, Tag} from 'antd';
import type {ColumnsType, TablePaginationConfig} from 'antd/es/table';
-import {Copy, Edit, Plus, RefreshCw, Trash2} from 'lucide-react';
+import {Edit, Plus, RefreshCw, Trash2} from 'lucide-react';
import {deleteManageApiKey, disableManageApiKey, enableManageApiKey, listManageApiKeys} from '@/api/manageApiKey.ts';
import type {ApiKey} from '@/types';
import dayjs from 'dayjs';
import {getErrorMessage} from '@/lib/utils';
import {PageHeader} from '@admin/components';
-import copy from 'copy-to-clipboard';
import ManageApiKeyModal from './ManageApiKeyModal';
import ShowManageApiKeyModal from './ShowManageApiKeyModal';
import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query';
@@ -120,22 +119,19 @@ const ManageApiKeyList = () => {
queryClient.invalidateQueries({queryKey: ['admin', 'manage-api-keys']});
};
- const handleCopyApiKey = (key: string) => {
- copy(key);
- messageApi.success('复制成功');
- };
-
const columns: ColumnsType
= [
{
title: '名称',
dataIndex: 'name',
key: 'name',
+ width: 220,
render: (text) => {text},
},
{
title: 'API密钥',
dataIndex: 'key',
key: 'key',
+ width: 260,
render: (_, record) => {
return (
@@ -143,13 +139,6 @@ const ManageApiKeyList = () => {
className="text-xs bg-gray-100 dark:bg-gray-800 dark:text-gray-200 px-2 py-1 rounded font-mono">
{record.key || ''}
-
);
},
@@ -266,7 +255,7 @@ const ManageApiKeyList = () => {
dataSource={apiKeyPaging?.items || []}
loading={isLoading || isFetching}
rowKey="id"
- scroll={{x: 'max-content'}}
+ scroll={{x: 900}}
tableLayout="fixed"
pagination={{
current: pageIndex,
diff --git a/web/src/admin/pages/Monitors/MonitorList.tsx b/web/src/admin/pages/Monitors/MonitorList.tsx
index d223f68..f59218c 100644
--- a/web/src/admin/pages/Monitors/MonitorList.tsx
+++ b/web/src/admin/pages/Monitors/MonitorList.tsx
@@ -106,6 +106,7 @@ const MonitorList = () => {
{
title: '名称',
dataIndex: 'name',
+ width: 220,
render: (_, record) => (
{record.name}
@@ -134,11 +135,13 @@ const MonitorList = () => {
{
title: '目标',
dataIndex: 'target',
+ width: 320,
ellipsis: true,
},
{
title: '探针范围',
dataIndex: 'agentIds',
+ width: 260,
render: (_, record) => {
const hasAgents = record.agentIds && record.agentIds.length > 0;
const hasTags = record.tags && record.tags.length > 0;
@@ -270,7 +273,7 @@ const MonitorList = () => {
dataSource={dataSource}
loading={isLoading || isFetching}
rowKey="id"
- scroll={{x: 'max-content'}}
+ scroll={{x: 1200}}
tableLayout="fixed"
pagination={{
current: pageIndex,
diff --git a/web/src/api/apiKey.ts b/web/src/api/apiKey.ts
index 2790e26..d88332a 100644
--- a/web/src/api/apiKey.ts
+++ b/web/src/api/apiKey.ts
@@ -6,12 +6,12 @@ export interface ListApiKeysResponse {
total: number;
}
-// 生成 API Key
+// 生成通信密钥
export const generateApiKey = (data: GenerateApiKeyRequest) => {
return post
('/admin/api-keys', data);
};
-// 获取 API Key 列表
+// 获取通信密钥列表
export const listApiKeys = (pageIndex: number = 1, pageSize: number = 10, name?: string) => {
const params = new URLSearchParams();
params.append('pageIndex', pageIndex.toString());
@@ -23,32 +23,32 @@ export const listApiKeys = (pageIndex: number = 1, pageSize: number = 10, name?:
return get(`/admin/api-keys?${params.toString()}`);
};
-// 获取 API Key 详情
+// 获取通信密钥详情
export const getApiKey = (id: string) => {
return get(`/admin/api-keys/${id}`);
};
-// 更新 API Key 名称
+// 更新通信密钥名称
export const updateApiKeyName = (id: string, data: UpdateApiKeyNameRequest) => {
return put(`/admin/api-keys/${id}`, data);
};
-// 启用 API Key
+// 启用通信密钥
export const enableApiKey = (id: string) => {
return post(`/admin/api-keys/${id}/enable`, {});
};
-// 禁用 API Key
+// 禁用通信密钥
export const disableApiKey = (id: string) => {
return post(`/admin/api-keys/${id}/disable`, {});
};
-// 删除 API Key
+// 删除通信密钥
export const deleteApiKey = (id: string) => {
return del(`/admin/api-keys/${id}`);
};
-// 获取 API Key 完整值
+// 获取通信密钥完整值
export const getApiKeyRaw = (id: string) => {
return get<{ key: string }>(`/admin/api-keys/${id}/raw`);
};
diff --git a/web/src/types/index.ts b/web/src/types/index.ts
index 3b530a0..17617d8 100644
--- a/web/src/types/index.ts
+++ b/web/src/types/index.ts
@@ -431,7 +431,7 @@ export interface LatestMetrics {
temperature?: TemperatureMetric[]; // 温度传感器列表
}
-// API Key 相关(探针通信密钥)
+// 通信密钥 / 管理 API Key 相关
export interface ApiKey {
id: string;
name: string;