Przeglądaj źródła

refactor(ui): 合并设备详情配置与任务状态提示

移除独立的任务状态显示区域,统一使用配置校验文本块展示所有操作反馈,简化界面布局。
yangkaixiang 1 miesiąc temu
rodzic
commit
fdadc46aa2

+ 1 - 6
windows/QuickIP.Client/DeviceDetailsWindow.xaml

@@ -103,7 +103,6 @@
                     <RowDefinition Height="Auto" />
                     <RowDefinition Height="Auto" />
                     <RowDefinition Height="Auto" />
-                    <RowDefinition Height="Auto" />
                 </Grid.RowDefinitions>
 
                 <TextBlock FontSize="13" FontWeight="SemiBold" Foreground="#111827" Text="新配置" />
@@ -137,11 +136,7 @@
                     <TextBlock x:Name="ConfigValidationTextBlock" FontSize="12" Foreground="#3730A3" TextWrapping="Wrap" Text="点击 1/2/3 按顺序操作:先读取当前配置,再校验,最后应用。" />
                 </Border>
 
-                <Border Grid.Row="4" Margin="0,12,0,0" Padding="10" Background="#ECFDF5" CornerRadius="10">
-                    <TextBlock x:Name="ApplyTaskStatusTextBlock" FontSize="12" Foreground="#065F46" TextWrapping="Wrap" Text="尚未提交配置任务。" />
-                </Border>
-
-                <Border Grid.Row="5" Margin="0,12,0,0" Padding="12" Background="#FEF2F2" CornerRadius="10">
+                <Border Grid.Row="4" Margin="0,12,0,0" Padding="12" Background="#FEF2F2" CornerRadius="10">
                     <Grid>
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="*" />

+ 9 - 12
windows/QuickIP.Client/DeviceDetailsWindow.xaml.cs

@@ -77,7 +77,6 @@ public partial class DeviceDetailsWindow : Window
         NewGatewayTextBox.Text = string.Empty;
         NewDnsTextBox.Text = string.Empty;
         ConfigValidationTextBlock.Text = "点击 1/2/3 按顺序操作:先读取当前配置,再校验,最后应用。";
-        ApplyTaskStatusTextBlock.Text = "尚未提交配置任务。";
         _configValidated = false;
     }
 
@@ -117,7 +116,6 @@ public partial class DeviceDetailsWindow : Window
         _suppressConfigChangeHandling = false;
         _configValidated = false;
         ConfigValidationTextBlock.Text = "已回填目标接口当前配置,可直接修改后校验。";
-        ApplyTaskStatusTextBlock.Text = "尚未提交配置任务。";
         UpdateButtonStates();
     }
 
@@ -155,7 +153,7 @@ public partial class DeviceDetailsWindow : Window
             ConfigValidationTextBlock.Text = $"校验失败:{result.Message}";
         }
 
-        ApplyTaskStatusTextBlock.Text = _configValidated ? "配置已通过校验,可提交应用。" : "当前配置尚未通过校验。";
+        ConfigValidationTextBlock.Text = _configValidated ? "配置已通过校验,可提交应用。" : "当前配置尚未通过校验。";
         UpdateButtonStates();
     }
 
@@ -185,11 +183,11 @@ public partial class DeviceDetailsWindow : Window
         var applyResult = await _agentApiService.ApplyInterfaceConfigAsync(_baseAddress, _password, _localIPv4, request);
         if (!applyResult.Success || applyResult.Data is null)
         {
-            ApplyTaskStatusTextBlock.Text = $"提交配置任务失败:{applyResult.Message}";
+            ConfigValidationTextBlock.Text = $"提交配置任务失败:{applyResult.Message}";
             return;
         }
 
-        ApplyTaskStatusTextBlock.Text = $"配置任务已提交:{applyResult.Data.TaskId},正在轮询状态。";
+        ConfigValidationTextBlock.Text = $"配置任务已提交:{applyResult.Data.TaskId},正在轮询状态。";
         await PollTaskAsync(applyResult.Data.TaskId);
     }
 
@@ -205,17 +203,17 @@ public partial class DeviceDetailsWindow : Window
                 if (result.StatusCode is null)
                 {
                     transientFailureCount++;
-                    ApplyTaskStatusTextBlock.Text = $"任务 {taskId} 轮询中,检测到短暂断连,正在重试({transientFailureCount})。";
+                    ConfigValidationTextBlock.Text = $"任务 {taskId} 轮询中,检测到短暂断连,正在重试({transientFailureCount})。";
                     continue;
                 }
 
-                ApplyTaskStatusTextBlock.Text = $"读取任务状态失败:{result.Message}";
+                ConfigValidationTextBlock.Text = $"读取任务状态失败:{result.Message}";
                 return;
             }
 
             transientFailureCount = 0;
             var task = result.Data;
-            ApplyTaskStatusTextBlock.Text = $"任务 {task.TaskId} / {task.Status} / {task.Step} / {task.Detail}";
+            ConfigValidationTextBlock.Text = $"任务 {task.TaskId} / {task.Status} / {task.Step} / {task.Detail}";
             if (task.Status is "success" or "failed" or "rolled_back")
             {
                 if (RemoteTargetInterfaceComboBox.SelectedItem is RemoteInterfaceInfo selected)
@@ -227,7 +225,7 @@ public partial class DeviceDetailsWindow : Window
             }
         }
 
-        ApplyTaskStatusTextBlock.Text = $"任务 {taskId} 轮询超时,请稍后手动刷新。";
+        ConfigValidationTextBlock.Text = $"任务 {taskId} 轮询超时,请稍后手动刷新。";
     }
 
     private async void RebootButton_OnClick(object sender, RoutedEventArgs e)
@@ -256,11 +254,11 @@ public partial class DeviceDetailsWindow : Window
         var result = await action();
         if (!result.Success || result.Data is null)
         {
-            ApplyTaskStatusTextBlock.Text = $"{title}失败:{result.Message}";
+            ConfigValidationTextBlock.Text = $"{title}失败:{result.Message}";
             return;
         }
 
-        ApplyTaskStatusTextBlock.Text = $"{title}任务已提交:{result.Data.TaskId}。命令已发出,设备可能立即断开。";
+        ConfigValidationTextBlock.Text = $"{title}任务已提交:{result.Data.TaskId}。命令已发出,设备可能立即断开。";
     }
 
     private RemoteInterfaceConfig? BuildConfigRequest(string interfaceName)
@@ -355,7 +353,6 @@ public partial class DeviceDetailsWindow : Window
 
         _configValidated = false;
         ConfigValidationTextBlock.Text = "配置内容已变更,请重新点击“2. 校验配置”。";
-        ApplyTaskStatusTextBlock.Text = "当前配置尚未通过校验。";
         UpdateButtonStates();
     }