fix: 修复连接状态判断逻辑
This commit is contained in:
24
src/gui.rs
24
src/gui.rs
@@ -94,22 +94,29 @@ pub struct AppState {
|
|||||||
|
|
||||||
impl AppState {
|
impl AppState {
|
||||||
pub fn new(config: &Config) -> Self {
|
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);
|
let c = ProxmoxClient::new(&config.host, config.port, &config.token_id, &config.token_secret);
|
||||||
Arc::new(Mutex::new(Some(c)))
|
Arc::new(Mutex::new(Some(c)))
|
||||||
} else {
|
} else {
|
||||||
Arc::new(Mutex::new(None))
|
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 {
|
Self {
|
||||||
client,
|
client,
|
||||||
vm_id: config.vm_id,
|
vm_id: config.vm_id,
|
||||||
node: config.node.clone(),
|
node: config.node.clone(),
|
||||||
vm_status: "未知".to_string(),
|
vm_status: "未知".to_string(),
|
||||||
log_buffer: vec!["程序启动".to_string()],
|
log_buffer: log,
|
||||||
is_connected,
|
is_connected: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,15 +261,16 @@ impl eframe::App for App {
|
|||||||
if let Some(c) = client.as_ref() {
|
if let Some(c) = client.as_ref() {
|
||||||
match c.get_nodes().await {
|
match c.get_nodes().await {
|
||||||
Ok(nodes) => {
|
Ok(nodes) => {
|
||||||
*nodes_clone.write().unwrap() = nodes.clone();
|
let mut state = state_clone.write().unwrap();
|
||||||
|
state.is_connected = true;
|
||||||
if !nodes.is_empty() {
|
if !nodes.is_empty() {
|
||||||
state_clone.write().unwrap().add_log(&format!("找到节点: {:?}", nodes));
|
state.add_log(&format!("✓ 连接成功,找到节点: {:?}", nodes));
|
||||||
} else {
|
} else {
|
||||||
state_clone.write().unwrap().add_log("未找到节点");
|
state.add_log("未找到节点");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
state_clone.write().unwrap().add_log(&format!("获取节点失败: {}", e));
|
state_clone.write().unwrap().add_log(&format!("✗ 连接失败: {}", e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user