SettingViewModel.GlobalVar.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Prism.Commands;
  2. using TeamAAS.Communication;
  3. using TeamAAS.Communication.Models;
  4. using TeamAAS.FlowEditor.Execution;
  5. namespace TeamAAS.ViewModels
  6. {
  7. /// <summary>
  8. /// 设置页 - 全局固定变量(Global 作用域,不随产品变)。
  9. /// 产品级(Product 作用域)变量在产品右键“全局变量”弹窗中编辑,不在此页。
  10. /// 采用克隆-编辑-提交:编辑器工作集与 live 列表解耦,点“保存”才提交并落盘 Config\global_vars.json。
  11. /// </summary>
  12. public partial class SettingViewModel
  13. {
  14. #region 全局固定变量(Global 作用域)
  15. /// <summary>Global 作用域变量编辑器(工作集克隆)。绑定 GlobalVarEditorView。</summary>
  16. public GlobalVarEditorViewModel GlobalVarEditor { get; private set; }
  17. /// <summary>保存 Global 固定变量命令。</summary>
  18. public DelegateCommand SaveGlobalVarsCommand { get; }
  19. /// <summary>(重新)从 live 列表克隆 Global 变量到编辑器工作集。进入该区/延迟加载/保存后调用。</summary>
  20. public void InitGlobalVarEditor()
  21. {
  22. GlobalVarEditor = new GlobalVarEditorViewModel(
  23. VarScope.Global,
  24. GlobalVariableManager.Instance.CloneScoped(VarScope.Global));
  25. RaisePropertyChanged(nameof(GlobalVarEditor));
  26. }
  27. /// <summary>提交 Global 工作集到 live 列表并落盘 Config\global_vars.json。</summary>
  28. private void SaveGlobalVars()
  29. {
  30. if (GlobalVarEditor == null) return;
  31. GlobalVariableManager.Instance.ReplaceScoped(VarScope.Global, GlobalVarEditor.Items);
  32. GlobalVariableManager.Instance.SaveGlobalScoped();
  33. ResultRegistry.RefreshGlobals();
  34. DialogHelper.Success("全局固定变量已保存");
  35. InitGlobalVarEditor();
  36. }
  37. #endregion
  38. }
  39. }