流程控制,前台可以模拟审批

This commit is contained in:
akwkevin
2021-07-27 16:15:30 +08:00
parent c6d5601558
commit b93160481f
12 changed files with 380 additions and 92 deletions

View File

@@ -1,4 +1,5 @@
using AIStudio.Wpf.ADiagram.Helpers;
using AIStudio.Wpf.ADiagram.Services;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -12,11 +13,12 @@ namespace AIStudio.Wpf.ADiagram.Demos.Flowchart
{
public class FlowNode : DesignerItemViewModelBase
{
protected IUIVisualizerService visualiserService;
public FlowNode(NodeKinds kind) : base()
{
Kind = kind;
Text = Kind.GetDescription();
ShowText = true;
Text = Kind.GetDescription();
ItemWidth = 80;
ItemHeight = 40;
@@ -32,6 +34,10 @@ namespace AIStudio.Wpf.ADiagram.Demos.Flowchart
base.Init();
ShowRotate = false;
ShowText = true;
IsReadOnlyText = true;
visualiserService = ApplicationServicesProvider.Instance.Provider.VisualizerService;
}
protected override void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase)
@@ -68,7 +74,7 @@ namespace AIStudio.Wpf.ADiagram.Demos.Flowchart
[Browsable(false)]
public string StateImage { get; set; }
#region 使
#region 使,
private int _status;
public int Status
@@ -89,6 +95,10 @@ namespace AIStudio.Wpf.ADiagram.Demos.Flowchart
SetProperty(ref _remark, value);
}
}
public List<string> PreStepId { get; set; }
public string NextStepId { get; set; }
public Dictionary<string, string> SelectNextStep { get; set; } = new Dictionary<string, string>();
#endregion
}

View File

@@ -42,8 +42,14 @@
<Border BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
<Grid>
<Border HorizontalAlignment="Left" Width="3" Background="{Binding Color}"/>
</Grid>
</Border>
<TextBlock Text="{Binding Remark}" FontSize="9" RenderTransformOrigin="1,0.5" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2">
<TextBlock.RenderTransform>
<TranslateTransform X="{Binding ItemWidth}"/>
</TextBlock.RenderTransform>
</TextBlock>
</Grid>
</ControlTemplate>
@@ -109,7 +115,7 @@
<Viewbox Stretch="Fill">
<Grid>
<ContentControl Style="{StaticResource CustomFlowNodeStyle}" Margin="2"/>
<TextBlock Text="{Binding Text}" Margin="5" Foreground="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" VerticalAlignment="Center" HorizontalAlignment="Center" />
<TextBlock Text="{Binding Text}" Margin="5" Foreground="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" HorizontalAlignment="Left" />
</Grid>
</Viewbox>
</Grid>
@@ -126,4 +132,18 @@
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type demo:MiddleFlowNodeData}">
<Grid Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}">
<StackPanel Orientation="Vertical">
<StackPanel Margin="5" Orientation="Horizontal" >
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=100}, ConverterParameter=100}" Content="通过"/>
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=2}, ConverterParameter=2}" Content="驳回上一级"/>
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=3}, ConverterParameter=3}" Content="驳回重提"/>
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=4}, ConverterParameter=4}" Content="否决"/>
</StackPanel>
<TextBox Height="28" Margin="5" Text="{Binding Remark}" VerticalContentAlignment="Center"></TextBox>
</StackPanel>
</Grid>
</DataTemplate>
</ResourceDictionary>

View File

@@ -1,10 +1,7 @@
using AIStudio.Wpf.ADiagram.Controls;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Util.DiagramDesigner;
namespace AIStudio.Wpf.ADiagram.Demos.Flowchart
@@ -56,5 +53,25 @@ namespace AIStudio.Wpf.ADiagram.Demos.Flowchart
SetProperty(ref _actType, value);
}
}
protected override void ExecuteEditCommand(object param)
{
if (IsReadOnly == true) return;
if (Status == 1)
{
MiddleFlowNodeData data = new MiddleFlowNodeData();
if (visualiserService.ShowDialog(data) == true)
{
FlowchartService.Approve(this, data.Status, data.Remark);
}
}
else
{
MessageBox.Show("该节点不能进行审批!!!");
}
}
}
}

View File

@@ -0,0 +1,38 @@
using AIStudio.Wpf.ADiagram.Models;
namespace AIStudio.Wpf.ADiagram.Demos.Flowchart
{
public class MiddleFlowNodeData : TitleBindableBase
{
public MiddleFlowNodeData()
{
Title = "审批";
}
private int _status = 100;
public int Status
{
get
{
return _status;
}
set
{
SetProperty(ref _status, value);
}
}
private string _remark;
public string Remark
{
get
{
return _remark;
}
set
{
SetProperty(ref _remark, value);
}
}
}
}