diff --git a/BetterGenshinImpact/View/Pages/GearTaskListPage.xaml b/BetterGenshinImpact/View/Pages/GearTaskListPage.xaml index f6cb413e..9ff18221 100644 --- a/BetterGenshinImpact/View/Pages/GearTaskListPage.xaml +++ b/BetterGenshinImpact/View/Pages/GearTaskListPage.xaml @@ -144,6 +144,10 @@ Content="新建" Icon="{ui:SymbolIcon Add24}" Margin="0,0,4,0" /> + @@ -167,6 +171,10 @@ + - \ No newline at end of file + diff --git a/BetterGenshinImpact/ViewModel/Pages/GearTaskListPageViewModel.cs b/BetterGenshinImpact/ViewModel/Pages/GearTaskListPageViewModel.cs index 7fcb039d..357d06d8 100644 --- a/BetterGenshinImpact/ViewModel/Pages/GearTaskListPageViewModel.cs +++ b/BetterGenshinImpact/ViewModel/Pages/GearTaskListPageViewModel.cs @@ -317,6 +317,46 @@ public partial class GearTaskListPageViewModel : ViewModel await DeleteTaskDefinition(SelectedTaskDefinition); } + /// + /// 执行选中的任务定义(整组执行) + /// + [RelayCommand] + private async Task ExecuteSelectedTaskDefinition() + { + await ExecuteTaskDefinition(SelectedTaskDefinition); + } + + /// + /// 执行指定任务定义(整组执行) + /// + [RelayCommand] + private async Task ExecuteTaskDefinition(GearTaskDefinitionViewModel? taskDefinition) + { + taskDefinition ??= SelectedTaskDefinition; + if (taskDefinition == null) + { + Toast.Warning("请先选择要执行的任务组"); + return; + } + + try + { + var executor = App.GetRequiredService(); + if (executor.IsExecuting) + { + Toast.Warning("已有任务组正在执行,请稍后再试"); + return; + } + + await executor.ExecuteTaskDefinitionAsync(taskDefinition.Name); + } + catch (Exception ex) + { + _logger.LogError(ex, "执行任务定义失败: {TaskName}", taskDefinition.Name); + Toast.Error($"执行任务组失败:{ex.Message}"); + } + } + /// /// 添加任务节点