Browse Source

小炒更新

样式分支
taoye 2 years ago
parent
commit
a8fa0a4097
19 changed files with 1184 additions and 808 deletions
  1. BIN
     
  2. +1
    -1
      BPASmartClient.CustomResource/Pages/Model/AlarmHelper.cs
  3. +82
    -2
      BPASmartClient.CustomResource/Pages/Model/AlarmInfo.cs
  4. +6
    -2
      BPASmartClient.CustomResource/Pages/View/UserLogView.xaml
  5. +75
    -2
      BPASmartClient.CustomResource/Pages/View/UserManageView.xaml
  6. +9
    -2
      BPASmartClient.CustomResource/Pages/View/UserManageView.xaml.cs
  7. +4
    -2
      BPASmartClient.CustomResource/Pages/View/VariableConfigView.xaml
  8. +3
    -3
      BPASmartClient.CustomResource/Pages/ViewModel/AlarmViewModel.cs
  9. +47
    -47
      BPASmartClient.CustomResource/Pages/ViewModel/LoginViewModel.cs
  10. +31
    -4
      BPASmartClient.CustomResource/Pages/ViewModel/UserManageViewModel.cs
  11. +824
    -632
      BPASmartClient.MorkF/Control_MorkF.cs
  12. +9
    -1
      BPASmartClient.MorkF/GVL_MorkF.cs
  13. +11
    -10
      FryPot_DosingSystem/App.xaml.cs
  14. +40
    -90
      FryPot_DosingSystem/Control/DosingLogicControl.cs
  15. +7
    -3
      FryPot_DosingSystem/Control/GlobalVariable.cs
  16. +26
    -3
      FryPot_DosingSystem/Resources/fonts/demo_index.html
  17. BIN
     
  18. +2
    -2
      FryPot_DosingSystem/View/UserManageView.xaml
  19. +7
    -2
      FryPot_DosingSystem/View/UserManageView.xaml.cs

BIN
View File


+ 1
- 1
BPASmartClient.CustomResource/Pages/Model/AlarmHelper.cs View File

@@ -82,7 +82,7 @@ namespace BPASmartClient.CustomResource.Pages.Model
Value = value.ToString(),
Time = DateTime.Now.ToString("HH:mm:ss"),
};
var res = Sqlite<Alarm>.GetInstance.Base.Add(tempAlarm);
Sqlite<Alarm>.GetInstance.Save();



+ 82
- 2
BPASmartClient.CustomResource/Pages/Model/AlarmInfo.cs View File

@@ -12,7 +12,8 @@ namespace BPASmartClient.CustomResource.Pages.Model
{

}

#region 180项目报警信息
/// <summary>
/// 1 号滚筒线故障
/// </summary>
@@ -53,7 +54,86 @@ namespace BPASmartClient.CustomResource.Pages.Model
/// </summary>
[Alarm("【5】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)]
public ushort FryPotFiveRollerTrouble { get; set; }
#region 滚筒是否运行状态监测
/// <summary>
/// 1号滚筒线滚筒未运行
/// </summary>
[Alarm("【1】号滚筒线未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort LineOneRollerRunning { get; set; }
/// <summary>
/// 2号滚筒线滚筒未运行
/// </summary>
[Alarm("【2】号滚筒线未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort LineTwoRollerRunning { get; set; }
/// <summary>
/// 3号滚筒线滚筒未运行
/// </summary>
[Alarm("【3】号滚筒线未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort LineThreeRollerRunning { get; set; }
/// <summary>
/// 1号炒锅进料滚筒未运行
/// </summary>
[Alarm("【1】号炒锅进料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotOneRollerRunning { get; set; }
/// <summary>
/// 2号炒锅进料滚筒未运行
/// </summary>
[Alarm("【2】号炒锅进料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotTwoRollerRunning { get; set; }
/// <summary>
/// 3号炒锅进料滚筒未运行
/// </summary>
[Alarm("【3】号炒锅进料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotThreeRollerRunning { get; set; }
/// <summary>
/// 4号炒锅进料滚筒未运行
/// </summary>
[Alarm("【4】号炒锅进料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotFourRollerRunning { get; set; }
/// <summary>
/// 5号炒锅进料滚筒未运行
/// </summary>
[Alarm("【5】号炒锅进料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotFiveRollerRunning { get; set; }
/// <summary>
/// 1号炒锅空桶出料滚筒未运行
/// </summary>
[Alarm("【1】号炒锅空桶出料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotOneEmptyRollerRunning { get; set; }

/// <summary>
/// 2号炒锅空桶出料滚筒未运行
/// </summary>
[Alarm("【2】号炒锅空桶出料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotTwoEmptyRollerRunning { get; set; }
/// <summary>
/// 3号炒锅空桶出料滚筒未运行
/// </summary>
[Alarm("【3】号炒锅空桶出料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotThreeEmptyRollerRunning { get; set; }
/// <summary>
/// 4号炒锅空桶出料滚筒未运行
/// </summary>
[Alarm("【4】号炒锅空桶出料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotFourEmptyRollerRunning { get; set; }
/// <summary>
/// 5号炒锅空桶出料滚筒未运行
/// </summary>
[Alarm("【5】号炒锅空桶出料滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort FryPotFiveEmptyRollerRunning { get; set; }
/// <summary>
/// 洗桶工位进桶滚筒未运行
/// </summary>
[Alarm("洗桶工位进桶滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort CleanEnterRollerRunning { get; set; }
/// <summary>
/// 洗桶工位出桶滚筒未运行
/// </summary>
[Alarm("洗桶工位出桶滚筒未运行", AlarmTriggerType.Falling, AlarmLevel.一般报警)]
public ushort CleanOutputRollerRunning { get; set; }
#endregion
#endregion


}
}

+ 6
- 2
BPASmartClient.CustomResource/Pages/View/UserLogView.xaml View File

@@ -256,7 +256,7 @@
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="日期" />
<Grid Grid.Column="1">
<TextBlock
HorizontalAlignment="Center"
@@ -264,11 +264,13 @@
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="时间" />
<Border
BorderBrush="{StaticResource TitleBorderColor}"
BorderThickness="1,0,1,0"
Cursor="SizeWE" />
</Grid>

<TextBlock
Grid.Column="2"
@@ -277,6 +279,7 @@
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="操作权限" />

<Grid Grid.Column="3">
<TextBlock
@@ -285,6 +288,7 @@
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="用户名" />
<Border
BorderBrush="{StaticResource TitleBorderColor}"
BorderThickness="1,0,1,0"
@@ -340,7 +344,7 @@
<Grid Grid.Column="3">
<TextBlock
Margin="10,0,0,0"
HorizontalAlignment="Left"
HorizontalAlignment="Center"
Style="{StaticResource DataTextBlockStyle}"
Text="{Binding UserName}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="1,0,1,0" />


+ 75
- 2
BPASmartClient.CustomResource/Pages/View/UserManageView.xaml View File

@@ -317,11 +317,84 @@
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="FocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" StrokeDashArray="1 2" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" SnapsToDevicePixels="true" StrokeThickness="1"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<SolidColorBrush x:Key="Button.Static.Background1" Color="#FFDDDDDD"/>
<SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
<SolidColorBrush x:Key="Button.MouseOver.Background1" Color="#FF2AB2E7"/>
<SolidColorBrush x:Key="Button.MouseOver.Border1" Color="#FF3C7FB1"/>
<SolidColorBrush x:Key="Button.Pressed.Background1" Color="#FFC4E5F6"/>
<SolidColorBrush x:Key="Button.Pressed.Border1" Color="#FF2C628B"/>
<SolidColorBrush x:Key="Button.Disabled.Background1" Color="#FFF4F4F4"/>
<SolidColorBrush x:Key="Button.Disabled.Border1" Color="#FFADB2B5"/>
<SolidColorBrush x:Key="Button.Disabled.Foreground1" Color="#FF838383"/>
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
<Setter Property="Background" Value="{StaticResource Button.Static.Background1}"/>
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true">
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsDefaulted" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background1}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border1}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background1}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border1}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background1}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border1}"/>
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground1}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid>
<ScrollViewer VerticalScrollBarVisibility="Hidden">
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel x:Name="btn" Orientation="Horizontal" HorizontalAlignment="Right">
<!--<Button HorizontalAlignment="Right" Width="100" Height="30" Content="保存数据" BorderThickness="1" BorderBrush="Cyan" Background="Transparent" Foreground="Aqua" FontSize="16" Command="{Binding SaveDataCommand}" Margin="0,0,10,0"></Button>-->
<Button Style="{DynamicResource ButtonStyle1}" Width="105" Height="30" Background="Transparent" Foreground="Aqua" Command="{Binding AddUserInfoCommand}" Margin="0,0,10,0">
<Button.Content>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock x:Name="t1" Width="auto" Height="auto" FontFamily="../../Fonts/font/#iconfont" Text="&#xe602;" VerticalAlignment="Center" FontSize="18" Margin="0,0,6,0"/>
<TextBlock x:Name="t2" Width="auto" Height="auto" Text="添加账号" FontSize="17" VerticalAlignment="Center"/>
</StackPanel>
</Button.Content>
</Button>
</StackPanel>
<ScrollViewer VerticalScrollBarVisibility="Hidden" Grid.Row="1">
<DataGrid ItemsSource="{Binding usersInfo}" GridLinesVisibility="All" Background="Transparent"
AutoGenerateColumns="False"
CanUserAddRows="False"
IsReadOnly="False" Style="{StaticResource dataGrid }"
ColumnHeaderStyle="{StaticResource columsHeader}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}">
<DataGrid.Columns>
@@ -418,7 +491,7 @@
<Button Command="{Binding DataContext.SaveCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
CommandParameter="{Binding UserName}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Foreground="Cyan" Content="Save" Margin="5,0"></Button>
<!--<Button Command="{Binding DataContext.UpdateCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Update" Grid.Column="1" Margin="5,0"></Button>-->
<Button Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Delete" Grid.Column="1" Foreground="Cyan" Margin="5,0"></Button>
<Button Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding Id}" Template="{DynamicResource ButtonTemplate1}" Style="{StaticResource btnStyle}" Content="Delete" Grid.Column="1" Foreground="Cyan" Margin="5,0" ></Button>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>


+ 9
- 2
BPASmartClient.CustomResource/Pages/View/UserManageView.xaml.cs View File

@@ -25,6 +25,7 @@ namespace BPASmartClient.CustomResource.Pages.View
public UserManageView()
{
InitializeComponent();
//this.DataContext = UserManageViewModel.GetInstance;
}

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -32,15 +33,21 @@ namespace BPASmartClient.CustomResource.Pages.View
ComboBox cbo = sender as ComboBox;
var id = cbo.Tag;
var per = cbo.SelectedItem;
if (id == null)
if (id != null)
{
var a = UserManageViewModel.GetInstance.usersInfo.FirstOrDefault(p => p.Id == id);
var a = UserManageViewModel.usersInfo.FirstOrDefault(p => p.Id == id.ToString());
if (a != null && per != null)
{
a.permission = (Permission)Enum.Parse(typeof(Permission), per.ToString());

}
}
else
{
UserManageViewModel.usersInfo.Last().permission = (Permission)Enum.Parse(typeof(Permission), per.ToString());
}
}

}
}

+ 4
- 2
BPASmartClient.CustomResource/Pages/View/VariableConfigView.xaml View File

@@ -374,13 +374,15 @@
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<ComboBox ItemsSource="{Binding DeviceName}" SelectedValue="滚筒输送线" Style="{StaticResource ComboBoxStyle1}"
VerticalContentAlignment="Center" SelectionChanged="ComboBox_SelectionChanged" FontSize="20" Foreground="#FF2AB2E7" Width="130" Height="40" Margin="0,0,10,0"></ComboBox>
VerticalContentAlignment="Center"
SelectionChanged="ComboBox_SelectionChanged" FontSize="20" Foreground="#FF2AB2E7" Width="130" Height="40" Margin="0,0,10,0"></ComboBox>
<Button HorizontalAlignment="Right" Width="120" Height="40" Margin="0,0,10,0" Background="Transparent" Content="保存配置" Foreground="#FF2AB2E7" FontSize="20" BorderBrush="LightSkyBlue" BorderThickness="1" Command="{Binding SaveDataCommand}"></Button>
</StackPanel>
<!--变量配置-->
<DataGrid Name="GT" Grid.Row="1" ItemsSource="{Binding Variables}" GridLinesVisibility="All" Background="Transparent" EnableRowVirtualization="False"
AutoGenerateColumns="False" IsReadOnly="False" Style="{StaticResource dataGrid}"
LoadingRow="DataGrid_LoadingRow" ColumnHeaderStyle="{StaticResource ColumHeaderStyle}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}">
LoadingRow="DataGrid_LoadingRow"
CanUserDeleteRows="True" ColumnHeaderStyle="{StaticResource ColumHeaderStyle}" RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}">
<DataGrid.Columns>
<DataGridTemplateColumn IsReadOnly="True" Width="0.1*" Header="ID">
<DataGridTemplateColumn.CellTemplate>


+ 3
- 3
BPASmartClient.CustomResource/Pages/ViewModel/AlarmViewModel.cs View File

@@ -64,8 +64,8 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel
}
});

AlarmInfos = MessageLog.GetInstance.alarmLogs;
//AlarmInfos = MessageLog.GetInstance.alarmLogs;
AlarmInfos = AlarmHelper<AlarmInfo>.Alarms;
}

private void GetHistoryAlarm()
@@ -130,7 +130,7 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel
private DateTime _mEndDateTime = DateTime.Now;


public ObservableCollection<Alarm> AlarmInfos { get; set; }
public ObservableCollection<Alarm> AlarmInfos { get; set; }
public ObservableCollection<Alarm> HistoryAlarm { get; set; } = new ObservableCollection<Alarm>();

}


+ 47
- 47
BPASmartClient.CustomResource/Pages/ViewModel/LoginViewModel.cs View File

@@ -59,58 +59,58 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel
if (res != null)
{
Global.userInfo = res;
Global.userInfo.LastLogInTime = DateTime.Now.ToString();
res.LastLogInTime = DateTime.Now.ToString();
Config.GetInstance.SaveUser();
if(res.permission == Enums.Permission.管理员)
{
foreach( var items in MenuManage.GetInstance.menuModels)
{
foreach(var item in items.subMenumodels)
{
item.SubMenuVisibility = Visibility.Visible;
}
}
}
else
{
if (res.userTreeViewModels != null)
{
if (res.userTreeViewModels.Count > 0)
{
foreach (var items in MenuManage.GetInstance.menuModels)
{
foreach (var item in items.subMenumodels)
{
if (res.userTreeViewModels.FirstOrDefault(p => p.Name == item.SubMenuName) != null)
{
item.SubMenuVisibility = Visibility.Visible;
}
}
}
}
}
}

//for (int i = 0; i < MenuManage.GetInstance.menuModels.Count; i++)
//Global.userInfo.LastLogInTime = DateTime.Now.ToString();
//res.LastLogInTime = DateTime.Now.ToString();
//Config.GetInstance.SaveUser();
//if(res.permission == Enums.Permission.管理员)
//{
// if (MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuPermission.Contains(res.permission))
// MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Visible;
// else
// MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed;

// if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.FirstOrDefault(p => p.SubMenuPermission.Contains(res.permission)) == null)
// MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed;

// for (int m = 0; m < MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.Count; m++)
// foreach( var items in MenuManage.GetInstance.menuModels)
// {
// if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuPermission.Contains(res.permission))
// MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Visible;
// else
// MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Collapsed;
// foreach(var item in items.subMenumodels)
// {
// item.SubMenuVisibility = Visibility.Visible;
// }
// }
//}
//else
//{
// if (res.userTreeViewModels != null)
// {
// if (res.userTreeViewModels.Count > 0)
// {
// foreach (var items in MenuManage.GetInstance.menuModels)
// {
// foreach (var item in items.subMenumodels)
// {
// if (res.userTreeViewModels.FirstOrDefault(p => p.Name == item.SubMenuName) != null)
// {
// item.SubMenuVisibility = Visibility.Visible;
// }
// }
// }
// }
// }
//}

for (int i = 0; i < MenuManage.GetInstance.menuModels.Count; i++)
{
if (MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuPermission.Contains(res.permission))
MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Visible;
else
MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed;

if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.FirstOrDefault(p => p.SubMenuPermission.Contains(res.permission)) == null)
MenuManage.GetInstance.menuModels.ElementAt(i).MainMenuVisibility = Visibility.Collapsed;

for (int m = 0; m < MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.Count; m++)
{
if (MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuPermission.Contains(res.permission))
MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Visible;
else
MenuManage.GetInstance.menuModels.ElementAt(i).subMenumodels.ElementAt(m).SubMenuVisibility = Visibility.Collapsed;
}
}
ActionManage.GetInstance.Send("PermissionChange");
ActionManage.GetInstance.Send("LoginOk");


+ 31
- 4
BPASmartClient.CustomResource/Pages/ViewModel/UserManageViewModel.cs View File

@@ -17,14 +17,18 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel
{
internal class UserManageViewModel:ObservableObject
{
private static UserManageViewModel _instance;
public static UserManageViewModel GetInstance => _instance ??= new UserManageViewModel();
public ObservableCollection<UserInfo> usersInfo { get; set; } = new ObservableCollection<UserInfo>();
//private static UserManageViewModel _instance;
//public static UserManageViewModel GetInstance => _instance ??= new UserManageViewModel();
public static ObservableCollection<UserInfo> usersInfo { get; set; } = new ObservableCollection<UserInfo>();

//public List<Permission> Authorities { get; set; } = new List<Permission>() { Permission.管理员, Permission.操作员, Permission.观察员, Permission.技术员 };
public List<string> Authorities { get; set; } = new List<string>();
public RelayCommand<string> SaveCommand { get; set; }
public RelayCommand<string> DeleteCommand { get; set; }

public RelayCommand AddUserInfoCommand { get; set; }

public RelayCommand SaveDataCommand { get; set; }
public UserManageViewModel()
{
var userManager = JsonConvert.DeserializeObject<UserManager>(File.ReadAllText("up.hbl").AESDecrypt());
@@ -52,7 +56,10 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel
MessageBox.Show("保存成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);

}

}
else
{
MessageBox.Show("用户名为空或输入后未回车确认", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
}
});
DeleteCommand = new RelayCommand<string>((str) =>
@@ -73,6 +80,26 @@ namespace BPASmartClient.CustomResource.Pages.ViewModel
MessageBox.Show("未找到对应记录", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
}
}
else
{
usersInfo.Remove(usersInfo.Last());
Global.userManager.userInfos = usersInfo;
File.WriteAllText("up.hbl", JsonConvert.SerializeObject(Global.userManager).AESEncrypt());
}
});


AddUserInfoCommand = new RelayCommand( ()=>
{
usersInfo.Add(new UserInfo());
});
SaveDataCommand = new RelayCommand(() =>
{
Global.userManager.userInfos = usersInfo;
File.WriteAllText("up.hbl", JsonConvert.SerializeObject(Global.userManager).AESEncrypt());
MessageBox.Show("保存成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information);

});
}



+ 824
- 632
BPASmartClient.MorkF/Control_MorkF.cs
File diff suppressed because it is too large
View File


+ 9
- 1
BPASmartClient.MorkF/GVL_MorkF.cs View File

@@ -80,7 +80,7 @@ namespace BPASmartClient.MorkF
/// </summary>
public bool MaterialArriveComplete { get; set; }
/// <summary>
/// 机器人空闲状态
/// 机器人空闲状态 1:忙碌 0:空闲
/// </summary>
public bool RoobotIdle { get; set; }
/// <summary>
@@ -291,6 +291,14 @@ namespace BPASmartClient.MorkF
/// 辅流程所执行的锅位置
/// </summary>
public int MinorProcessPotLoc { get; set; }


#region 单口锅逻辑变量
/// <summary>
/// 订单唯一ID
/// </summary>
public string CurrentOrderId { get; set; }
#endregion
}
}


+ 11
- 10
FryPot_DosingSystem/App.xaml.cs View File

@@ -38,6 +38,7 @@ namespace FryPot_DosingSystem
if (res != null && res == true)
{
mv.Show();
MessageLog.GetInstance.ShowUserLog("用户登录");
DeviceOperate deviceOperate = DeviceOperate.GetInstance;//开启实时PLC数据读取
DosingLogicControl logigControl = DosingLogicControl.GetInstance;//开启逻辑控制任务程序
HubHelper.GetInstance.Connect("192.168.1.40", 8089);
@@ -105,7 +106,7 @@ namespace FryPot_DosingSystem
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "操作日志",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员,Permission.观察员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.UserLogView"
});
@@ -113,7 +114,7 @@ namespace FryPot_DosingSystem
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "运行日志",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.观察员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.RunLogView"
});
@@ -121,14 +122,14 @@ namespace FryPot_DosingSystem
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "报警记录",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.观察员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.AlarmView"
});
InfoLog.Add(new SubMenumodel()
{
SubMenuName = "炒锅状态记录",
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.观察员 },
AssemblyName = "FryPot_DosingSystem",
ToggleWindowPath = "View.SqliteDataView"
});
@@ -138,7 +139,7 @@ namespace FryPot_DosingSystem
MainMenuIcon = "&#xe668;",
MainMenuName = "消息日志",
Alias = "Message Log",
MainMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
MainMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
subMenumodels = InfoLog,
});
#endregion
@@ -155,7 +156,7 @@ namespace FryPot_DosingSystem
DeviceMonitor.Add(new SubMenumodel()
{
SubMenuName = "PLC变量配置",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.VariableConfigView"
});
@@ -180,7 +181,7 @@ namespace FryPot_DosingSystem
DeviceMonitor.Add(new SubMenumodel()
{
SubMenuName = "AGV视图",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员, Permission.观察员 },
AssemblyName = "FryPot_DosingSystem",
ToggleWindowPath = "View.AgvView"
});
@@ -200,7 +201,7 @@ namespace FryPot_DosingSystem
UserManager.Add(new SubMenumodel()
{
SubMenuName = "用户登录",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.SubPagLoginView"
});
@@ -208,7 +209,7 @@ namespace FryPot_DosingSystem
UserManager.Add(new SubMenumodel()
{
SubMenuName = "密码修改",
SubMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
SubMenuPermission = new Permission[] { Permission.管理员 },
AssemblyName = "BPASmartClient.CustomResource",
ToggleWindowPath = "Pages.View.PasswordChangeView"
});
@@ -231,7 +232,7 @@ namespace FryPot_DosingSystem
MainMenuIcon = "&#xe66d;",
MainMenuName = "用户管理",
Alias = "User Management",
MainMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 },
MainMenuPermission = new Permission[] { Permission.管理员, Permission.技术员 },
subMenumodels = UserManager,
});
#endregion


+ 40
- 90
FryPot_DosingSystem/Control/DosingLogicControl.cs View File

@@ -1372,9 +1372,11 @@ namespace FryPot_DosingSystem.Control
globalVar.rollerLineOne.OutMaterialingSingle = data[3];
globalVar.rollerLineTwo.OutMaterialingSingle = data[4];
globalVar.rollerLineThree.OutMaterialingSingle = data[5];
//globalVar.rollerLineOne.OutMaterialingTroubleSingle = data[6];
//globalVar.rollerLineTwo.OutMaterialingTroubleSingle = data[7];
//globalVar.rollerLineThree.OutMaterialingTroubleSingle = data[8];

AlarmHelper<AlarmInfo>.Alarm.LineOneRollerRunning = data[3];
AlarmHelper<AlarmInfo>.Alarm.LineTwoRollerRunning = data[4];
AlarmHelper<AlarmInfo>.Alarm.LineThreeRollerRunning = data[5];

AlarmHelper<AlarmInfo>.Alarm.LOneRollerTrouble = data[6];
AlarmHelper<AlarmInfo>.Alarm.LTwoRollerTrouble = data[7];
AlarmHelper<AlarmInfo>.Alarm.LThreeRollerTrouble = data[8];
@@ -1387,6 +1389,13 @@ namespace FryPot_DosingSystem.Control
globalVar.fryPotThree.InputMaterialRollerRunningSingle = data[2];
globalVar.fryPotFour.InputMaterialRollerRunningSingle = data[3];
globalVar.fryPotFive.InputMaterialRollerRunningSingle = data[4];

AlarmHelper<AlarmInfo>.Alarm.FryPotOneRollerRunning= data[0];
AlarmHelper<AlarmInfo>.Alarm.FryPotTwoRollerRunning = data[1];
AlarmHelper<AlarmInfo>.Alarm.FryPotThreeRollerRunning = data[2];
AlarmHelper<AlarmInfo>.Alarm.FryPotFourRollerRunning = data[3];
AlarmHelper<AlarmInfo>.Alarm.FryPotFiveRollerRunning = data[4];

}));
GetAddressData("D2045", new Action<ushort[]>((data) =>
{
@@ -1411,6 +1420,12 @@ namespace FryPot_DosingSystem.Control
globalVar.fryPotThree.EmptyBarrelRollerRunningSingle = data[2];
globalVar.fryPotFour.EmptyBarrelRollerRunningSingle = data[3];
globalVar.fryPotFive.EmptyBarrelRollerRunningSingle = data[4];

AlarmHelper<AlarmInfo>.Alarm.FryPotOneEmptyRollerRunning = data[0];
AlarmHelper<AlarmInfo>.Alarm.FryPotTwoEmptyRollerRunning = data[1];
AlarmHelper<AlarmInfo>.Alarm.FryPotThreeEmptyRollerRunning = data[2];
AlarmHelper<AlarmInfo>.Alarm.FryPotFourEmptyRollerRunning = data[3];
AlarmHelper<AlarmInfo>.Alarm.FryPotFiveEmptyRollerRunning = data[4];
}));
GetAddressData("D2070", new Action<ushort[]>((data) =>
{
@@ -1433,7 +1448,7 @@ namespace FryPot_DosingSystem.Control
}));
GetAddressData("D2075", new Action<ushort[]>(data =>
{
AlarmHelper<AlarmInfo>.Alarm.CleanEnterRollerRunning = data[0];
globalVar.CleadBarrelEnterSingle = data[0];
}));
GetAddressData("2076", new Action<ushort[]>(data =>
@@ -1443,7 +1458,7 @@ namespace FryPot_DosingSystem.Control
}));
GetAddressData("D2077", new Action<ushort[]>(data =>
{
AlarmHelper<AlarmInfo>.Alarm.CleanOutputRollerRunning = data[0];
globalVar.CleadBarrelExitSingle = data[0];
}));
//炒锅1状态数据
@@ -2056,7 +2071,10 @@ namespace FryPot_DosingSystem.Control
WritePlcData("D1066", 1);//AGV空桶出桶就位信号下发PlC
MessageLog.GetInstance.ShowRunLog("AGV到达清洗台空桶上料位置");
// MessageLog.GetInstance.ShowRunLog("清洗台空桶装载完成");
if (globalVar.CleadBarrelExitSingle == 0)
{
MessageLog.GetInstance.ShowRunLog("警告:清洗台出桶滚筒未运行!!");
}
}
}

@@ -2158,10 +2176,12 @@ namespace FryPot_DosingSystem.Control
{
globalVar.rollerLineOne.agvArriveCleanUnLoad = false;
MessageLog.GetInstance.ShowRunLog("空桶从线体1到达清洗位置,准备卸桶");
//plc交互
WritePlcData("D1065", 1);//AGV空桶洗桶就位信号下发PLC
// MessageLog.GetInstance.ShowRunLog("卸桶完成");
if (globalVar.CleadBarrelEnterSingle == 0)
{
MessageLog.GetInstance.ShowRunLog("警告:清洗台进桶滚筒未运行!!");
}
}
if (globalVar.rollerLineTwo.agvArriveCleanUnLoad)
{
@@ -2170,7 +2190,10 @@ namespace FryPot_DosingSystem.Control

//plc交互
WritePlcData("D1065", 1);//AGV空桶洗桶就位信号下发PLC
// MessageLog.GetInstance.ShowRunLog("卸桶完成");
if (globalVar.CleadBarrelEnterSingle == 0)
{
MessageLog.GetInstance.ShowRunLog("警告:清洗台进桶滚筒未运行!!");
}
}
if (globalVar.rollerLineThree.agvArriveCleanUnLoad)
{
@@ -2179,8 +2202,12 @@ namespace FryPot_DosingSystem.Control

//plc交互
WritePlcData("D1065", 1);//AGV空桶洗桶就位信号下发PLC
// MessageLog.GetInstance.ShowRunLog("卸桶完成");
if (globalVar.CleadBarrelEnterSingle == 0)
{
MessageLog.GetInstance.ShowRunLog("警告:清洗台进桶滚筒未运行!!");
}
}
}
/// <summary>
@@ -2313,7 +2340,7 @@ namespace FryPot_DosingSystem.Control
//Sqlite<PotFiveStatus>.GetInstance.Save();//保存数据
}
globalVar.LTwoCurrentRecipeName = string.Empty;
Task.Run(() => { Thread.Sleep(2000); fryTwoRecipe = string.Empty; fryFiveRecipe = string.Empty; });
Task.Run(() => { Thread.Sleep(1500); fryTwoRecipe = string.Empty; fryFiveRecipe = string.Empty; });
}
}

@@ -2377,9 +2404,6 @@ namespace FryPot_DosingSystem.Control
globalVar.rollerLineTwo.RecipeComMidSingle = 0;
}
}



}

/// <summary>
@@ -3053,82 +3077,8 @@ namespace FryPot_DosingSystem.Control

}
///// <summary>
///// 2号线体对应空桶清洗
///// </summary>
//public void LTwoEmptyRollerToLineFour()
//{
// if (globalVar.LTwoEmptyRollerUnLoadcCom)//agv在4号线体下料完成
// {
// globalVar.AllowAgvToLineTwoLoadRoller = true;
// globalVar.LTwoLoadRoller = false;
// globalVar.LTwoAgvToFryPot = false;
// globalVar.LTwoPotInputMaterialArrive = false;
// globalVar.LTwoPotOutputRollerArrive = false;
// globalVar.LTwoAgvArrivePot = false;
// }
//}
///// <summary>
///// 3号线体对应空桶清洗
///// </summary>
//public void LThreeEmptyRollerToLinFour()
//{
// if (globalVar.LThreeEmptyRollerUnLoadcCom)//agv在4号线体下料完成
// {
// globalVar.AllowAgvToLineThreeLoadRoller = true;
// globalVar.LThreeLoadRoller = false;
// globalVar.LThreeAgvToFryPot = false;
// globalVar.LThreePotInputMaterialArrive = false;
// globalVar.LThreePotOutputRollerArrive = false;
// globalVar.LThreeAgvArrivePot = false;
// }
//}

/// <summary>
/// 炒锅滚筒进料运行到位处理
/// </summary>
//public void FryPotInputMaterialRollerOperate(ConcurrentQueue<MaterialInfo> queue)
//{
// switch (queue.ElementAt(0).materialType.MaterialLoc / 100)
// {
// case 1:
// while (globalVar.fryPotOne.InputMaterialArrivedSingle == 0)
// {
// Thread.Sleep(5); if (globalVar.ExitMainTask)
// return;
// }
// MessageLog.GetInstance.ShowRunLog($"炒锅【1】原料:{OutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break;
// case 2:
// while (globalVar.fryPotTwo.InputMaterialArrivedSingle == 0)
// {
// Thread.Sleep(5); if (globalVar.ExitMainTask)
// return;
// }
// MessageLog.GetInstance.ShowRunLog($"炒锅【2】原料:{OutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break;
// case 3:
// while (globalVar.fryPotThree.InputMaterialArrivedSingle == 0)
// {
// Thread.Sleep(5); if (globalVar.ExitMainTask)
// return;
// }
// MessageLog.GetInstance.ShowRunLog($"炒锅【3】原料:{OutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break;
// case 4:
// while (globalVar.fryPotFour.InputMaterialArrivedSingle == 0)
// {
// Thread.Sleep(5); if (globalVar.ExitMainTask)
// return;
// }
// MessageLog.GetInstance.ShowRunLog($"炒锅【4】原料:{OutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break;
// case 5:
// while (globalVar.fryPotFive.InputMaterialArrivedSingle == 0)
// {
// Thread.Sleep(5); if (globalVar.ExitMainTask)
// return;
// }
// MessageLog.GetInstance.ShowRunLog($"炒锅【5】原料:{OutputMaterialQuene.ElementAt(0).materialType.MaterialName}已到进料位置,准备倒料"); break;
// }

//}
/// <summary>
/// 炒锅1,4滚筒进料运行到位处理
/// </summary>


+ 7
- 3
FryPot_DosingSystem/Control/GlobalVariable.cs View File

@@ -197,7 +197,7 @@ namespace FryPot_DosingSystem.Control
public bool agvArriveLineOneLoadCom { get; set; } //agv线体1空桶上料完成
public bool agvArriveLineTwoLoadCom { get; set; } //agv线体2空桶上料完成
public bool agvArriveLineThreeLoadCom { get; set; }//agv线体3空桶上料完成
//空桶清洗流程锁
#endregion
}
/// <summary>
@@ -263,10 +263,12 @@ namespace FryPot_DosingSystem.Control
public ushort EmptyRollerNum { get; set; }

/// <summary>
/// 上一个桶是否是空桶
/// 上一个桶是否是空桶,空桶上料结束后,配方料桶AGV才能去1号线装桶
/// </summary>
public bool IsEpmtyBefore { get; set; } //空桶上料结束后,配方料桶AGV才能去1号线装桶

/// <summary>
/// 配方料桶上料结束后,线体空桶AGV才能1号线装桶
/// </summary>
public bool CanRun { get; set; } = true; //配方料桶上料结束后,线体空桶AGV才能1号线装桶
/// <summary>
/// 线体1上所有空桶的编号集合
@@ -280,6 +282,8 @@ namespace FryPot_DosingSystem.Control
/// AGV从线体1到达清洗台
/// </summary>
public bool agvArriveCleanUnLoad { get; set; }


}
/// <summary>
/// 滚筒线2相关变量


+ 26
- 3
FryPot_DosingSystem/Resources/fonts/demo_index.html View File

@@ -3,8 +3,8 @@
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64.svg"/>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
@@ -88,6 +88,12 @@
<div class="code-name">&amp;#xe695;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe602;</span>
<div class="name">加号</div>
<div class="code-name">&amp;#xe602;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe62b;</span>
<div class="name">密码</div>
@@ -166,7 +172,7 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.ttf?t=1659942239310') format('truetype');
src: url('iconfont.ttf?t=1660817438136') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -246,6 +252,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-jiahao"></span>
<div class="name">
加号
</div>
<div class="code-name">.icon-jiahao
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-mima"></span>
<div class="name">
@@ -411,6 +426,14 @@
<div class="code-name">#icon-window-max_line</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-jiahao"></use>
</svg>
<div class="name">加号</div>
<div class="code-name">#icon-jiahao</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-mima"></use>


BIN
View File


+ 2
- 2
FryPot_DosingSystem/View/UserManageView.xaml View File

@@ -8,9 +8,9 @@
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2">
<UserControl.DataContext>
<!--<UserControl.DataContext>
<vm:UserManageViewModel/>
</UserControl.DataContext>
</UserControl.DataContext>-->
<UserControl.Resources>
<Style x:Key="dgCell" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center"/>


+ 7
- 2
FryPot_DosingSystem/View/UserManageView.xaml.cs View File

@@ -29,6 +29,7 @@ namespace FryPot_DosingSystem.View
public UserManageView()
{
InitializeComponent();
this.DataContext = UserManageViewModel.GetInstance;
}

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -38,13 +39,17 @@ namespace FryPot_DosingSystem.View
var per = cbo.SelectedItem;
if (id != null)
{
var a = UserManageViewModel.GetInstance.usersInfo.FirstOrDefault(p => p.Id == id);
var a = UserManageViewModel.GetInstance.usersInfo.FirstOrDefault(p => p.Id == id.ToString());

if (a != null && per != null)
{
a.permission = (Permission)Enum.Parse(typeof(Permission), per.ToString());

}
}
}
else
{
UserManageViewModel.GetInstance.usersInfo.Last().permission = (Permission)Enum.Parse(typeof(Permission), per.ToString());
}
}
}


Loading…
Cancel
Save