fix: 修复连接状态判断逻辑

This commit is contained in:
xiaji
2026-04-14 07:44:10 +08:00
parent 43e5746892
commit 439d62fcc3

View File

@@ -94,22 +94,29 @@ pub struct AppState {
impl AppState {
pub fn new(config: &Config) -> Self {
let client = if !config.host.is_empty() && !config.token_id.is_empty() && !config.token_secret.is_empty() {
let has_config = !config.host.is_empty() && !config.token_id.is_empty() && !config.token_secret.is_empty();
let client = if has_config {
let c = ProxmoxClient::new(&config.host, config.port, &config.token_id, &config.token_secret);
Arc::new(Mutex::new(Some(c)))
} else {
Arc::new(Mutex::new(None))
};
let is_connected = !config.host.is_empty() && !config.token_id.is_empty() && !config.token_secret.is_empty();
let mut log = vec!["程序启动".to_string()];
if has_config {
log.push("已加载配置,请点击刷新节点测试连接".to_string());
} else {
log.push("请在设置中配置连接信息".to_string());
}
Self {
client,
vm_id: config.vm_id,
node: config.node.clone(),
vm_status: "未知".to_string(),
log_buffer: vec!["程序启动".to_string()],
is_connected,
log_buffer: log,
is_connected: false,
}
}
@@ -254,15 +261,16 @@ impl eframe::App for App {
if let Some(c) = client.as_ref() {
match c.get_nodes().await {
Ok(nodes) => {
*nodes_clone.write().unwrap() = nodes.clone();
let mut state = state_clone.write().unwrap();
state.is_connected = true;
if !nodes.is_empty() {
state_clone.write().unwrap().add_log(&format!("找到节点: {:?}", nodes));
state.add_log(&format!("✓ 连接成功,找到节点: {:?}", nodes));
} else {
state_clone.write().unwrap().add_log("未找到节点");
state.add_log("未找到节点");
}
}
Err(e) => {
state_clone.write().unwrap().add_log(&format!("获取节点失败: {}", e));
state_clone.write().unwrap().add_log(&format!("✗ 连接失败: {}", e));
}
}
} else {