using AntDesign; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using wispro.sp.entity.workflowDefine; using wispro.sp.web.Services; namespace wispro.sp.web.Pages.Workflow { public partial class WorkflowDetail { Components.FlowChart chart; entity.workflowDefine.Workflow workflow; List Steps; List Actions; List Transfers; List inputValueSettings; UserField userField = new UserField(); [Parameter] public int WorkflowId { get; set; } [Inject] protected MessageService _msgService { get; set; } [Inject] protected WorkflowService _wfService { get; set; } async Task InitData() { //int Id = int.Parse(WorkflowId.ToString()); workflow = await _wfService.GetWorkflow(WorkflowId); Steps = await _wfService.GetSteps(WorkflowId); Actions = await _wfService.GetActions(WorkflowId); Transfers = await _wfService.GetTransfers(WorkflowId); } protected async override Task OnInitializedAsync() { await base.OnInitializedAsync(); #region Demo流程数据 await InitData(); #endregion } void OnClickStep(entity.workflowDefine.Step step) { //_msgService.Info($"您点击了:【{step.Name}】步骤"); } void OnDblClickStep(entity.workflowDefine.Step step) { bool b = (workflow.EndStepId != null && workflow.EndStepId.Value == step.Id); EditStep = new share.NewStepObject() { Step = step, isLastStep = b }; try { userField = System.Text.Json.JsonSerializer.Deserialize(step.defaultResponseSetting); } catch { userField = new UserField(); } EditStep.actions = GetActions(step.Id); //Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(EditStep)); StepModalShow = true; } void OnClickAction(entity.workflowDefine.Action action) { //_msgService.Info($"您点击了:【{action.Name}】操作"); } void OnClickTransfer(entity.workflowDefine.TrasferCondition transfer) { //_msgService.Info($"您点击了:从步骤【{transfer.StepId}】到步骤【{transfer.nextStepId}】的移转条件!"); } share.NewStepObject EditStep; entity.workflowDefine.Action EditAction; entity.workflowDefine.TrasferCondition EditTransfer; bool StepModalShow = false; bool ActionModalShow = false; bool TransferModalShow = false; void AddNewStep() { EditStep = new share.NewStepObject(); EditStep.Step = new entity.workflowDefine.Step() { Name = "新步骤", stepType = 2, workflowId = workflow.Id }; EditStep.isLastStep = false; userField = new UserField(); newActions = new List(); StepModalShow = true; } void AddNewAction() { EditAction = new entity.workflowDefine.Action(); EditAction.Name = "新操作"; EditAction.inputValuesSettings = new List(); ActionModalShow = true; } async Task BeginEditAction(int Id) { EditAction = Actions.FirstOrDefault(a=>a.Id == Id); if(EditAction != null) { if(EditAction.inputValuesSettings == null) { EditAction.inputValuesSettings = await _wfService.getInputValueSteeing(EditAction.Id); } ActionModalShow = true; } } async void DeleteAction(int Id) { var ret = await _wfService.DeleteAction(Id); if (!ret.Success) { await _msgService.Error("删除Action出错!"); } else { Actions = await _wfService.GetActions(workflow.Id); EditStep.actions = GetActions(EditStep.Step.Id); } } void AddNewTransfer() { EditTransfer = new entity.workflowDefine.TrasferCondition(); TransferModalShow = true; } List GetActions(int stepId) { return Actions.Where(a=>a.StepId == stepId).ToList(); } async Task EditStepOK() { Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(userField)); EditStep.Step.defaultResponseSetting = System.Text.Json.JsonSerializer.Serialize(userField); var ret = await _wfService.SaveStep(EditStep); if (ret.Success) { StepModalShow = false; await InitData(); } else { await _msgService.Error("保存出现错误!"); } OnRefresh(); } void EditStepCancel() { StepModalShow = false; } List newActions; async Task EditActionOK() { if (EditStep != null) { if (!EditStep.actions.Contains(EditAction)) { EditStep.actions.Add(EditAction); } } else { if(newActions == null) { newActions.Add(EditAction); } } ActionModalShow = false; } void EditActionCancel() { ActionModalShow = false; } async Task EditTransferOK() { Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(EditTransfer)); if(EditTransfer.StepId!= null && EditTransfer.StepId.Value == 0) { EditTransfer.StepId = null; } var ret = await _wfService.SaveTransfer(EditTransfer); if (ret.Success) { TransferModalShow = false; await InitData(); } else { await _msgService.Error("保存出现错误!"); } OnRefresh(); } void EditTransferCancel() { TransferModalShow = false; } void OnRefresh() { chart.Refresh(); } [Inject] ModalService _modalService { get; set; } async Task DeleteObject() { if(chart.SelectedObject != null) { if(chart.SelectedObject is entity.workflowDefine.TrasferCondition) { TrasferCondition transfer = chart.SelectedObject as TrasferCondition; await _wfService.DeleteTransfer(transfer); } if(chart.SelectedObject is entity.workflowDefine.Step) { await _wfService.DeleteStep((entity.workflowDefine.Step)chart.SelectedObject); } } await InitData(); chart.Refresh(); } } }