WorkflowDetail.razor.cs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. using AntDesign;
  2. using Microsoft.AspNetCore.Components;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. using wispro.sp.entity.workflowDefine;
  8. using wispro.sp.web.Services;
  9. namespace wispro.sp.web.Pages.Workflow
  10. {
  11. public partial class WorkflowDetail
  12. {
  13. Components.FlowChart chart;
  14. entity.workflowDefine.Workflow workflow;
  15. List<entity.workflowDefine.Step> Steps;
  16. List<entity.workflowDefine.Action> Actions;
  17. List<entity.workflowDefine.TrasferCondition> Transfers;
  18. UserField userField = new UserField();
  19. [Parameter]
  20. public int WorkflowId { get; set; }
  21. [Inject] protected MessageService _msgService { get; set; }
  22. [Inject] protected WorkflowService _wfService { get; set; }
  23. async Task InitData()
  24. {
  25. //int Id = int.Parse(WorkflowId.ToString());
  26. workflow = await _wfService.GetWorkflow(WorkflowId);
  27. Steps = await _wfService.GetSteps(WorkflowId);
  28. Actions = await _wfService.GetActions(WorkflowId);
  29. Transfers = await _wfService.GetTransfers(WorkflowId);
  30. }
  31. protected async override Task OnInitializedAsync()
  32. {
  33. await base.OnInitializedAsync();
  34. #region Demo流程数据
  35. await InitData();
  36. //在此处添加获取流程数据栏位
  37. //workflow = new entity.workflowDefine.Workflow();
  38. //workflow.Name = "请假流程";
  39. //workflow.InitAction = new entity.workflowDefine.Action();
  40. //workflow.InitAction.Name = "填写请假条";
  41. //Steps = new List<entity.workflowDefine.Step>();
  42. //var step1 = new entity.workflowDefine.Step();
  43. //step1.Name = "部门主管申核";
  44. //step1.Id = 1;
  45. //Steps.Add(step1);
  46. //var step2 = new entity.workflowDefine.Step();
  47. //step2.Name = "总经理申核";
  48. //step2.Id = 2;
  49. //Steps.Add(step2);
  50. //var step3 = new entity.workflowDefine.Step();
  51. //step3.Name = "申核结果通知";
  52. //step3.Id = 3;
  53. //Steps.Add(step3);
  54. //var step4 = new entity.workflowDefine.Step();
  55. //step4.Name = "新步骤";
  56. //step4.Id = 4;
  57. //Steps.Add(step4);
  58. //var step5 = new entity.workflowDefine.Step();
  59. //step5.Name = "新步骤";
  60. //step5.Id = 5;
  61. //Steps.Add(step5);
  62. //workflow.EndStepId = 3;
  63. //Transfers = new List<entity.workflowDefine.TrasferCondition>();
  64. //var t = new entity.workflowDefine.TrasferCondition();
  65. //t.StepId = null;
  66. //t.nextStepId = 1;
  67. //Transfers.Add(t);
  68. //var t1 = new entity.workflowDefine.TrasferCondition();
  69. //t1.StepId = 1;
  70. //t1.nextStepId = 2;
  71. //Transfers.Add(t1);
  72. //var t2 = new entity.workflowDefine.TrasferCondition();
  73. //t2.StepId = 1;
  74. //t2.nextStepId = 3;
  75. //Transfers.Add(t2);
  76. //var t3 = new entity.workflowDefine.TrasferCondition();
  77. //t3.StepId = 2;
  78. //t3.nextStepId = 3;
  79. //Transfers.Add(t3);
  80. #endregion
  81. }
  82. void OnClickStep(entity.workflowDefine.Step step)
  83. {
  84. //_msgService.Info($"您点击了:【{step.Name}】步骤");
  85. }
  86. void OnDblClickStep(entity.workflowDefine.Step step)
  87. {
  88. bool b = (workflow.EndStepId != null && workflow.EndStepId.Value == step.Id);
  89. EditStep = new share.NewStepObject() { Step = step, isLastStep = b };
  90. try
  91. {
  92. userField = System.Text.Json.JsonSerializer.Deserialize<UserField>(step.defaultResponseSetting);
  93. }
  94. catch {
  95. userField = new UserField();
  96. }
  97. //Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(EditStep));
  98. StepModalShow = true;
  99. }
  100. void OnClickAction(entity.workflowDefine.Action action)
  101. {
  102. //_msgService.Info($"您点击了:【{action.Name}】操作");
  103. }
  104. void OnClickTransfer(entity.workflowDefine.TrasferCondition transfer)
  105. {
  106. //_msgService.Info($"您点击了:从步骤【{transfer.StepId}】到步骤【{transfer.nextStepId}】的移转条件!");
  107. }
  108. share.NewStepObject EditStep;
  109. entity.workflowDefine.Action EditAction;
  110. entity.workflowDefine.TrasferCondition EditTransfer;
  111. bool StepModalShow = false;
  112. bool ActionModalShow = false;
  113. bool TransferModalShow = false;
  114. void AddNewStep()
  115. {
  116. EditStep = new share.NewStepObject();
  117. EditStep.Step = new entity.workflowDefine.Step() { Name = "新步骤", stepType = 2, workflowId = workflow.Id };
  118. EditStep.isLastStep = false;
  119. userField = new UserField();
  120. StepModalShow = true;
  121. }
  122. void AddNewAction()
  123. {
  124. EditAction = new entity.workflowDefine.Action();
  125. EditAction.Name = "新操作";
  126. EditAction.inputValuesSettings = new List<entity.workflowDefine.InputValueSetting>();
  127. ActionModalShow = true;
  128. }
  129. void AddNewTransfer()
  130. {
  131. EditTransfer = new entity.workflowDefine.TrasferCondition();
  132. TransferModalShow = true;
  133. }
  134. async Task EditStepOK()
  135. {
  136. Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(userField));
  137. EditStep.Step.defaultResponseSetting = System.Text.Json.JsonSerializer.Serialize(userField);
  138. var ret = await _wfService.SaveStep(EditStep);
  139. if (ret.Success)
  140. {
  141. StepModalShow = false;
  142. await InitData();
  143. chart.Refresh();
  144. StateHasChanged();
  145. }
  146. else
  147. {
  148. await _msgService.Error("保存出现错误!");
  149. }
  150. }
  151. void EditStepCancel()
  152. {
  153. StepModalShow = false;
  154. }
  155. async Task EditActionOK()
  156. {
  157. var ret =await _wfService.SaveAction(EditAction);
  158. if (ret.Success)
  159. {
  160. ActionModalShow = false;
  161. await InitData();
  162. chart.Refresh();
  163. StateHasChanged();
  164. }
  165. else
  166. {
  167. await _msgService.Error("保存出现错误!");
  168. }
  169. }
  170. void EditActionCancel()
  171. {
  172. ActionModalShow = false;
  173. }
  174. int EditTransferStepId = 0;
  175. async Task EditTransferOK()
  176. {
  177. Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(EditTransfer));
  178. if(EditTransfer.StepId!= null && EditTransfer.StepId.Value == 0)
  179. {
  180. EditTransfer.StepId = null;
  181. }
  182. var ret = await _wfService.SaveTransfer(EditTransfer);
  183. if (ret.Success)
  184. {
  185. TransferModalShow = false;
  186. await InitData();
  187. chart.Refresh();
  188. StateHasChanged();
  189. }
  190. else {
  191. await _msgService.Error("保存出现错误!");
  192. }
  193. }
  194. void EditTransferCancel()
  195. {
  196. TransferModalShow = false;
  197. }
  198. }
  199. }