清理冗余

This commit is contained in:
sky22333
2026-04-21 21:51:09 +08:00
parent f0af5722f0
commit 628980f1fd
6 changed files with 227 additions and 437 deletions

View File

@@ -11,7 +11,6 @@ import { getApiErrorMessage } from '@/utils/http';
interface FileUploadProps {
targetHostIds: number[] | 'all';
onUploadComplete: () => void; // Callback when upload finishes
onClose: () => void; // Callback to close the dialog
}
@@ -25,7 +24,7 @@ interface UploadResult {
};
}
function FileUpload({ targetHostIds, onUploadComplete, onClose }: FileUploadProps) {
function FileUpload({ targetHostIds, onClose }: FileUploadProps) {
const [file, setFile] = useState<File | null>(null);
const [remotePath, setRemotePath] = useState('/tmp/'); // Default remote path
const [isUploading, setIsUploading] = useState(false);
@@ -96,8 +95,6 @@ function FileUpload({ targetHostIds, onUploadComplete, onClose }: FileUploadProp
});
}
// 不自动关闭对话框,让用户查看结果
onUploadComplete(); // 仅通知父组件上传完成
} else {
// 全部失败时的显示
toast.error("文件上传失败", {

View File

@@ -10,7 +10,6 @@ import { getApiErrorMessage } from '@/utils/http';
interface PlaybookExecutorProps {
targetHostIds: number[] | 'all';
onExecutionComplete: () => void;
onClose: () => void;
}
@@ -40,7 +39,7 @@ const defaultPlaybook = `---
var: hello_result.stdout
`;
function PlaybookExecutor({ targetHostIds, onExecutionComplete, onClose }: PlaybookExecutorProps) {
function PlaybookExecutor({ targetHostIds, onClose }: PlaybookExecutorProps) {
const [playbook, setPlaybook] = useState(defaultPlaybook);
const [isExecuting, setIsExecuting] = useState(false);
const [executionProgress, setExecutionProgress] = useState(0);
@@ -89,8 +88,6 @@ function PlaybookExecutor({ targetHostIds, onExecutionComplete, onClose }: Playb
});
}
// 不自动关闭对话框,让用户查看结果
onExecutionComplete(); // 仅通知父组件执行完成
} else {
// 执行失败时的显示
toast.error("Playbook执行失败", {

View File

@@ -309,52 +309,10 @@ function MainPage() {
};
const openTerminal = (hostId: number) => {
// 打开新窗口
const terminalWindow = window.open(`/terminal/${hostId}`, `terminal_${hostId}`, 'width=800,height=600');
// 确保新窗口成功打开
if (!terminalWindow) {
toast.error('无法打开终端', { description: '请允许浏览器打开弹出窗口' });
return;
}
// 等待新窗口加载完成
const sendAuthInfo = () => {
try {
// 获取认证令牌
const token = authStorage.getToken();
const expiresAt = new Date();
expiresAt.setHours(expiresAt.getHours() + 5); // 5小时过期时间
// 如果terminalWindow可用且已加载完成发送认证信息
if (terminalWindow && terminalWindow.document.readyState === 'complete') {
localStorage.setItem('isAuthenticated', 'true');
localStorage.setItem('authExpiresAt', expiresAt.toISOString());
if (token) {
localStorage.setItem('token', token);
}
// 尝试向新窗口发送消息,以便它可以检测认证状态
terminalWindow.postMessage({
type: 'AUTH_INFO',
isAuthenticated: true,
authExpiresAt: expiresAt.toISOString(),
token: token
}, '*');
// 移除敏感日志
} else {
// 如果窗口未完成加载,稍后再试
setTimeout(sendAuthInfo, 500);
}
} catch {
// 移除敏感日志
toast.error('无法连接到终端', { description: '认证信息传递失败' });
}
};
// 开始尝试发送认证信息
setTimeout(sendAuthInfo, 500);
};
const openUploadDialog = (target: 'selected' | 'all') => {
@@ -370,10 +328,6 @@ function MainPage() {
setIsUploadDialogOpen(true);
};
const handleUploadComplete = () => {
console.log("Upload complete callback triggered");
};
const handleCleanupAccessLogs = async () => {
if (!confirm('确定要清理7天前的访问日志吗')) return;
try {
@@ -398,10 +352,6 @@ function MainPage() {
setIsPlaybookDialogOpen(true);
};
const handlePlaybookComplete = () => {
console.log("Playbook execution complete");
};
const isAllSelected = hosts.length > 0 && selectedHostIds.length === hosts.length;
const isIndeterminate = selectedHostIds.length > 0 && selectedHostIds.length < hosts.length;
@@ -792,7 +742,6 @@ function MainPage() {
{uploadTarget && (
<FileUpload
targetHostIds={uploadTarget === 'all' ? 'all' : selectedHostIds}
onUploadComplete={handleUploadComplete}
onClose={() => setIsUploadDialogOpen(false)}
/>
)}
@@ -812,7 +761,6 @@ function MainPage() {
{playbookTarget && (
<PlaybookExecutor
targetHostIds={playbookTarget === 'all' ? 'all' : selectedHostIds}
onExecutionComplete={handlePlaybookComplete}
onClose={() => setIsPlaybookDialogOpen(false)}
/>
)}

View File

@@ -59,26 +59,3 @@ export const prepareHostData = <T extends HostPasswordState>(
return preparedData;
};
/**
* 获取密码显示值
* 对于已加密的密码,显示占位符,否则显示原始值
* @param host 主机信息
* @returns 用于显示的密码值
*/
export const getPasswordDisplayValue = (host?: HostPasswordState | null): string => {
if (!host) return '';
// 如果密码已加密,显示占位符
if (isPasswordEncrypted(host)) {
return '********';
}
// 否则显示原始密码
return host.password || '';
};
export default {
isPasswordEncrypted,
prepareHostData,
getPasswordDisplayValue,
};