fix: 修复连接状态判断逻辑
This commit is contained in:
24
src/gui.rs
24
src/gui.rs
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user