add-条码绑定登录界面

main
liuwf 10 months ago
parent f23ff1bc4b
commit dda1ddd162

@ -17,13 +17,20 @@
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
</ResourceDictionary.MergedDictionaries>
<!--重写框架主体色-->
<SolidColorBrush x:Key="PrimaryHueLightBrush" Color="#0288d1" />
<SolidColorBrush x:Key="PrimaryHueLightForegroundBrush" Color="#0288d1" />
<SolidColorBrush x:Key="PrimaryHueMidBrush" Color="#0288d1" />
<SolidColorBrush x:Key="PrimaryHueLightBrush" Color="#4285DE" />
<SolidColorBrush x:Key="PrimaryHueLightForegroundBrush" Color="#4285DE" />
<SolidColorBrush x:Key="PrimaryHueMidBrush" Color="#4285DE" />
<!--字体颜色设置-->
<SolidColorBrush x:Key="PrimaryHueMidForegroundBrush" Color="#DDFFFFFF" />
<SolidColorBrush x:Key="PrimaryHueDarkBrush" Color="#0288d1" />
<SolidColorBrush x:Key="PrimaryHueDarkForegroundBrush" Color="#0288d1" />
<SolidColorBrush x:Key="PrimaryHueDarkBrush" Color="#DDFFFFFF" />
<SolidColorBrush x:Key="PrimaryHueDarkForegroundBrush" Color="#DDFFFFFF" />
<!--字体大小设置-->
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="18"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontFamily" Value="Microsoft YaHei"/>
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>

@ -25,8 +25,26 @@ namespace Aucma.Core.CodeBinding
var host = CreateHostBuilder(e.Args).Build();//生成宿主。
ServiceProvider = host.Services;
host.Services.GetRequiredService<MainWindow>()?.Show();
await host.StartAsync();
try
{
var loginWindow = host.Services.GetRequiredService<LoginPageView>();
if (loginWindow != null && !loginWindow.IsActive)
{
loginWindow.Show();
await host.StartAsync();
}
else
{
// 处理窗口已关闭的情况
// 可以选择重新创建主窗口或者退出应用程序
Application.Current.Shutdown();
}
}
catch (Exception ex)
{
Application.Current.Shutdown();
}
}
/// <summary>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

@ -28,6 +28,7 @@
<None Remove="Assets\Images\background.jpg" />
<None Remove="Assets\Images\Green.png" />
<None Remove="Assets\Images\Icon.png" />
<None Remove="Assets\Images\login-background.png" />
<None Remove="Assets\Images\logo.png" />
<None Remove="Assets\Images\Newlog.png" />
<None Remove="Assets\Images\Red.png" />
@ -50,6 +51,9 @@
<ItemGroup>
<Resource Include="Assets\Images\background.jpg" />
<Resource Include="Assets\Images\Icon.png" />
<Resource Include="Assets\Images\login-background.png">
<CopyToOutputDirectory></CopyToOutputDirectory>
</Resource>
<Resource Include="Assets\Images\Newlog.png" />
</ItemGroup>

@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Aucma.Core.CodeBinding.Common
{
public class OSKHelper
{
#region 打开软盘
/// <summary>
/// 打开软盘
/// </summary>
public static void OpenOsk()
{
try
{
Process proc = new Process();
proc.StartInfo.FileName = @"C:\Windows\System32\osk.exe";
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
proc.Start();
}
catch
{
}
}
#endregion
#region 关闭软盘
/// <summary>
/// 关闭软盘
/// </summary>
public static void CloseOsk()
{
try
{
// 查找并关闭 osk.exe 进程
foreach (Process proc in Process.GetProcessesByName("osk"))
{
proc.Kill();
}
}
catch
{
// 可以在这里处理异常情况
}
}
#endregion
}
}

@ -0,0 +1,79 @@
using Admin.Core.Common.Config;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Aucma.Core.CodeBinding.Config
{
public sealed class AppConfig
{
private static IniHelper iniHelper = new IniHelper(System.Environment.CurrentDirectory + "/config/App.InI");
private static readonly Lazy<AppConfig> lazy = new Lazy<AppConfig>(() => new AppConfig());
public static AppConfig Instance
{
get
{
return lazy.Value;
}
}
public AppConfig()
{
}
/// <summary>
/// 产线编号
/// </summary>
public string ProductlineCode
{
get { return iniHelper.IniReadValue("system", "ProductlineCode"); }
set { iniHelper.IniWriteValue("system", "ProductlineCode", value); }
}
/// <summary>
/// 工位编号
/// </summary>
public string StationCode
{
get { return iniHelper.IniReadValue("system", "StationCode"); }
set { iniHelper.IniWriteValue("system", "StationCode", value); }
}
/// <summary>
/// 班组代码
/// </summary>
public string TeamCode
{
get { return iniHelper.IniReadValue("system", "TeamCode"); }
set { iniHelper.IniWriteValue("system", "TeamCode", value); }
}
/// <summary>
/// 班组名称
/// </summary>
public string TeamName
{
get { return iniHelper.IniReadValue("system", "TeamName"); }
set { iniHelper.IniWriteValue("system", "TeamName", value); }
}
/// <summary>
/// 用户名
/// </summary>
public string Account
{
get { return iniHelper.IniReadValue("system", "Account"); }
set { iniHelper.IniWriteValue("system", "Account", value); }
}
}
}

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Aucma.Core.CodeBinding.Models
{
/**
*
* */
public class Result
{
/// <summary>
/// 返回结果
/// </summary>
public string msg { get; set; }
/// <summary>
/// 返回状态
/// </summary>
public int code { get; set; }
/// <summary>
/// 返回令牌
/// </summary>
public string token { get; set; }
}
}

@ -0,0 +1,135 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using log4net;
using System.Windows;
using Admin.Core.Common;
using Admin.Core.IService;
using Admin.Core.Service;
using Microsoft.Extensions.DependencyInjection;
using System.Collections.ObjectModel;
using Admin.Core.Model.Model_New;
using StackExchange.Profiling.Internal;
using System;
using System.Text.Json;
using System.Windows.Input;
using MaterialDesignThemes.Wpf;
using NPOI.Util.Collections;
using Aucma.Core.CodeBinding.Config;
using Aucma.Core.CodeBinding.Models;
using Aucma.Core.CodeBinding.Views;
namespace Aucma.Core.CodeBinding.ViewModels
{
public partial class LoginPageViewModel : ObservableObject
{
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(LoginPageViewModel));
protected readonly IBaseTeamMembersServices _baseTeamMembersServices;
private AppConfig appConfig = AppConfig.Instance;
public LoginPageViewModel() {
_baseTeamMembersServices = App.ServiceProvider.GetService<IBaseTeamMembersServices>();
AddTeamData();
}
#region 登录
/// <summary>
/// 登录
/// </summary>
/// <param name="team">选择的班组信息</param>
/// <param name="userName">用户名</param>
/// <param name="passWord">密码</param>
public void Login(BaseTeamMembers team, string userName, string passWord,object parameter)
{
try
{
//获取Token
string url = $"http://10.100.72.10:8080/login";
var content = new
{
username = userName,
password = passWord
};
var loginResult = HttpHelper.Post(url, content.ToJson());//发送用户名密码给API
Result result = JsonSerializer.Deserialize<Result>(loginResult);
if (result == null)
{
MessageBox.Show("登录失败!", "系统提醒");
return;
}
if (result.code == 200)
{
// 存储账号信息
appConfig.TeamCode = team.TeamCode;
appConfig.TeamName = team.TeamName;
appConfig.Account = userName;
//跳转
var window = parameter as LoginPageView;
if (window == null) return;
window.Hide();
MainWindow indexPage = new MainWindow();
indexPage.Show();
window.Close();
}
else
{
MessageBox.Show($"登录失败!{result.msg}", "系统提醒");
return;
}
}
catch (Exception ex)
{
log.Error($"登录异常:{ex.Message}");
}
}
#endregion
#region 关闭当前界面
/// <summary>
/// 关闭当前界面
/// </summary>
/// <param name="parameter"></param>
public void CloseWindow(object parameter)
{
var window = parameter as Window;
if (window == null) return;
window.Close();
}
#endregion
#region 班组数据
/// <summary>
/// 班组数据
/// </summary>
private ObservableCollection<BaseTeamMembers> _teamMembersList = new ObservableCollection<BaseTeamMembers>();
public ObservableCollection<BaseTeamMembers> TeamMembersList
{
get
{
return this._teamMembersList;
}
set
{
SetProperty(ref _teamMembersList, value);
}
}
#endregion
#region 班组添加到集合中
public void AddTeamData()
{
var baseTeamMembersList = _baseTeamMembersServices.QueryAsync(d => d.ProductLineCode==appConfig.ProductlineCode).Result;
if (baseTeamMembersList == null) return;
foreach (var item in baseTeamMembersList)
{
TeamMembersList.Add(item);
}
}
#endregion
}
}

@ -25,6 +25,7 @@ using MvCodeHelper = Aucma.Core.CodeBinding.Business.MvCodeHelper;
using Aucma.Core.HwPLc;
using Admin.Core.Socket;
using System.Collections.Generic;
using Aucma.Core.CodeBinding.Config;
namespace Aucma.Core.CodeBinding.ViewModels
{
@ -40,7 +41,7 @@ namespace Aucma.Core.CodeBinding.ViewModels
// sn扫码器ip
private static string SnScannerIp = allScanners.First(x => x.Name == "sn扫码器").Ip;
private AppConfig appConfig = AppConfig.Instance;
/// <summary>
/// 查询信息更新
@ -54,10 +55,9 @@ namespace Aucma.Core.CodeBinding.ViewModels
UserContent = firstPage;
// 创建一个DispatcherTimer对象
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += Timer_Tick;
timer.Interval = new TimeSpan(0, 0, 1); //间隔1秒
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
Scanner1State(false);
Scanner2State(false);
@ -74,6 +74,7 @@ namespace Aucma.Core.CodeBinding.ViewModels
#region 初始化班组刷新定时任务
public void init()
{
TeamName = $"班组:{appConfig.TeamName} 用户:{appConfig.Account}";
// 设备状态刷新定时器
System.Timers.Timer timer = new System.Timers.Timer(1000 * 5);
timer.Elapsed += new System.Timers.ElapsedEventHandler(RefreshStatus);
@ -83,6 +84,17 @@ namespace Aucma.Core.CodeBinding.ViewModels
}
#endregion
#region 班组信息
/// <summary>
/// 班组信息
/// </summary>
public string _teamName;
public string TeamName
{
get => _teamName;
set => SetProperty(ref _teamName, value);
}
#endregion
#region 开启海康扫码器
//public void InitHikRobot()
@ -92,10 +104,10 @@ namespace Aucma.Core.CodeBinding.ViewModels
// Task.Run(() =>
// {
// Thread.Sleep(2000);
// Business.MvCodeHelper.Shell();
// });
// Task.Run(() =>
@ -120,7 +132,7 @@ namespace Aucma.Core.CodeBinding.ViewModels
// Business.MvCodeHelper.Liner();
// });
@ -201,15 +213,7 @@ namespace Aucma.Core.CodeBinding.ViewModels
string controlType = obj as string;
switch (controlType)
{
// 关闭当前窗口
case "Exit":
if (System.Windows.MessageBox.Show("确定要退出系统吗?", "系统提醒", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
{
Application.Current.Shutdown();
Environment.Exit(0);
}
break;
// 打开软盘
case "TabTip":
@ -229,10 +233,7 @@ namespace Aucma.Core.CodeBinding.ViewModels
}
break;
// 最小化当前窗口
case "Minimized":
Application.Current.MainWindow.WindowState = WindowState.Minimized;
break;
default:
break;
}
@ -243,6 +244,52 @@ namespace Aucma.Core.CodeBinding.ViewModels
}
}
#region 最小化界面
/// <summary>
/// 关闭当前界面
/// </summary>
/// <param name="parameter"></param>
[RelayCommand]
public void MinWindow(object parameter)
{
var window = parameter as Window;
if (window == null) return;
window.WindowState = WindowState.Minimized;
}
#endregion
#region 关闭当前界面
/// <summary>
/// 关闭当前界面
/// </summary>
/// <param name="parameter"></param>
[RelayCommand]
public void CloseWindow(object parameter)
{
var window = parameter as Window;
if (window == null) return;
if (MessageBox.Show("确定要退出系统吗?", "系统提醒", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
{
appConfig.TeamCode = "";
appConfig.TeamName = "";
appConfig.Account = "";
window.Hide();
//跳转到登录页
LoginPageView login = new LoginPageView();
login.Show();
window.Close();
}
}
#endregion
#endregion
#region 打开软盘
@ -519,23 +566,17 @@ namespace Aucma.Core.CodeBinding.ViewModels
set => SetProperty(ref _shiftStr, value);
}
private void Timer_Tick(object sender, EventArgs e)
#region 定时刷新时间
void timer_Tick(object sender, EventArgs e)
{
DateTime now = DateTime.Now;
// 判断当前是否是白班时间段
if (now.Hour >= 8 && now.Hour < 20)
{
ShiftStr = $"白班 08点-20点";
}
else
System.Windows.Application.Current.Dispatcher.Invoke((Action)(() =>
{
CurrentDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
ShiftStr = $"夜班 20点-08点";
}
CurrentDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
}));
}
#endregion
}
}

@ -146,7 +146,7 @@
</Grid>
<Button Cursor="Hand" Content="空板启动" Background="#FF9900" BorderBrush="#FF9900" Click="Button_Click" Width="100" HorizontalAlignment="Left" VerticalAlignment="Bottom" Grid.Row="2" />
<Button Cursor="Hand" FontSize="18" Content="空板启动" Background="#FF9900" BorderBrush="#FF9900" Click="Button_Click" Width="120" HorizontalAlignment="Left" VerticalAlignment="Bottom" Grid.Row="2" />
</Grid>
<Grid Grid.Column="1">

@ -0,0 +1,82 @@
<Window x:Class="Aucma.Core.CodeBinding.Views.LoginPageView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
Title="登录"
x:Name="MainWindow"
FontFamily="Microsoft YaHei"
WindowStartupLocation="CenterScreen"
WindowState="Maximized" d:DesignWidth="1200" d:DesignHeight="900"
>
<Window.Background>
<ImageBrush ImageSource="/Assets/Images/login-background.png" />
</Window.Background>
<Border Margin="5" Background="Transparent">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="2*"/>
<RowDefinition/>
</Grid.RowDefinitions>
<UniformGrid Grid.Row="0">
<StackPanel HorizontalAlignment="Left">
<Image Source="/Assets/Images/Newlog.png" Width="100" />
</StackPanel>
</UniformGrid>
<UniformGrid Grid.Row="1" Margin="0 10">
<Border BorderThickness="4" CornerRadius="5" x:Name="DialogHost" Width="400" Height="350" VerticalAlignment="Center" HorizontalAlignment="Center" >
<StackPanel Background="White">
<ComboBox Margin="0 50 0 0"
x:Name="selectTeamComboBox"
Width="300"
BorderThickness="1"
BorderBrush="{StaticResource MaterialDesignDivider}"
materialDesign:HintAssist.Hint="班组"
SelectedValuePath="TeamCode"
DisplayMemberPath="TeamName"
ItemsSource="{Binding TeamMembersList}"
Style="{StaticResource MaterialDesignOutlinedComboBox}" />
<TextBox Margin="0 10 0 0"
x:Name="txtUserName"
Width="300"
FontSize="18"
materialDesign:HintAssist.Hint="用户名"
BorderThickness="1"
BorderBrush="{StaticResource MaterialDesignDivider}"
Style="{StaticResource MaterialDesignOutlinedTextBox}"
GotFocus="TextBox_GotFocus"
LostFocus="TextBox_LostFocus"/>
<PasswordBox
Margin="0 10 0 0"
x:Name="txtPassword"
Width="300"
FontSize="12"
materialDesign:HintAssist.Hint="密码"
BorderThickness="1"
BorderBrush="{StaticResource MaterialDesignDivider}"
Style="{StaticResource MaterialDesignOutlinedPasswordBox}"
GotFocus="TextBox_GotFocus"
LostFocus="TextBox_LostFocus"/>
<Button Margin="0 20 0 0"
x:Name="loginBtn"
Style="{StaticResource MaterialDesignFlatMidBgButton}"
Width="300"
Height="53"
Command="{Binding LoginCommand}"
materialDesign:ButtonAssist.CornerRadius="10"
Content="登录" Click="loginBtn_Click"/>
</StackPanel>
</Border>
</UniformGrid>
<UniformGrid Grid.Row="2">
</UniformGrid>
</Grid>
</Border>
</Window>

@ -0,0 +1,73 @@
using Admin.Core.Model.Model_New;
using Aucma.Core.CodeBinding.Common;
using Aucma.Core.CodeBinding.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Aucma.Core.CodeBinding.Views
{
/// <summary>
/// LoginPageView.xaml 的交互逻辑
/// </summary>
public partial class LoginPageView : Window
{
LoginPageViewModel loginViewModel = new LoginPageViewModel();
public LoginPageView()
{
InitializeComponent();
this.DataContext = loginViewModel;
}
private void loginBtn_Click(object sender, RoutedEventArgs e)
{
string userName = txtUserName.Text;
string passWord = txtPassword.Password;
BaseTeamMembers teamMembers = (BaseTeamMembers)this.selectTeamComboBox.SelectedItem;
if (teamMembers==null)
{
MessageBox.Show("请选择班组!","系统提醒");
return;
}
// 非空校验,账号密码正则校验
if (string.IsNullOrWhiteSpace(userName))
{
MessageBox.Show("用户名不可为空!", "系统提醒");
return;
}
if (string.IsNullOrWhiteSpace(passWord))
{
MessageBox.Show("密码不可为空!", "系统提醒");
return;
}
// 登录校验
loginViewModel.Login(teamMembers,userName, passWord,this);
}
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
// 弹出系统键盘
OSKHelper.OpenOsk();
}
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
// 隐藏系统键盘
OSKHelper.CloseOsk();
}
}
}

@ -4,7 +4,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
mc:Ignorable="d" Name="window"
FontFamily="Microsoft YaHei"
Title="SCADA" Height="1080" Width="1920" Icon="/Assets/images/Icon.png"
WindowState="Maximized" WindowStyle="None" ResizeMode="NoResize">
@ -27,28 +27,23 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="澳柯玛条码自动绑定系统" FontSize="42" Foreground="White" FontWeight="Bold"/>
</StackPanel>
<StackPanel Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right">
<StackPanel Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0 20 0 0" >
<Grid>
<!--<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>-->
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding ShiftStr}" FontSize="25" Foreground="White" FontWeight="Bold" Margin="0,0,30,0"/>
<TextBlock Grid.Row="1" Text="{Binding CurrentDateTime}" FontSize="20" Foreground="White" FontWeight="Bold" Margin="0,0,30,0"/>
<!--<TextBlock Grid.Column="1" Text="|" FontSize="25" Foreground="White" FontWeight="Bold" Margin="0,0,30,0"/>
<TextBlock Grid.Column="2" Text="SCADA" FontSize="25" Foreground="White" FontWeight="Bold" Margin="0,0,10,0"/>-->
<StackPanel Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Grid.Column="0" Text="{Binding TeamName}" FontSize="25" Foreground="White" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Left"/>
<TextBlock Grid.Column="1" Text="{Binding CurrentDateTime}" FontSize="18" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</StackPanel>
</Grid>
</StackPanel>
</Grid>
@ -66,8 +61,9 @@
<Button Content="实时监控" x:Name="FirstPage" Height="40" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=FirstPage}" />
<Button Content="绑定记录" x:Name="RecordPage" Height="40" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=RecordPage}" />
<Button Content="键盘" x:Name="TabTip" Height="40" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=TabTip}" />
<Button Content="最小化" x:Name="Minimized" Height="40" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Minimized}" Background="#FF9900" BorderBrush="#FF9900" />
<Button Content="退 出" x:Name="Exit" Height="40" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Exit}" Background="#FF0033" BorderBrush="#FF0033" />
<Button Content="最小化" x:Name="Minimized" Height="40" Margin="5 0" Command="{Binding MinWindowCommand}" CommandParameter="{Binding ElementName=window}" Width="100" Background="#FF9900" BorderBrush="#FF9900" />
<Button Content="退 出" x:Name="Exit" Height="40" Margin="5 0" Command="{Binding CloseWindowCommand}" CommandParameter="{Binding ElementName=window}" Width="100" Background="#FF0033" BorderBrush="#FF0033" />
</StackPanel>
<StackPanel Height="50" Orientation="Horizontal" HorizontalAlignment="Right">
<Border Width="30" Height="30" CornerRadius="15">

@ -54,11 +54,10 @@ namespace Aucma.Core.DoorFoam.ViewModels
timer.Enabled = true;
timer.Start();
// 创建一个DispatcherTimer对象
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
dispatcherTimer.Tick += Timer_Tick;
dispatcherTimer.Start();
DispatcherTimer timer1 = new DispatcherTimer();
timer1.Interval = new TimeSpan(0, 0, 1); //间隔1秒
timer1.Tick += new EventHandler(timer_Tick);
timer1.Start();
}
#endregion
@ -556,23 +555,17 @@ namespace Aucma.Core.DoorFoam.ViewModels
set => SetProperty(ref _shiftStr, value);
}
private void Timer_Tick(object sender, EventArgs e)
#region 定时刷新时间
void timer_Tick(object sender, EventArgs e)
{
DateTime now = DateTime.Now;
// 判断当前是否是白班时间段
if (now.Hour >= 8 && now.Hour < 20)
{
ShiftStr = $"白班 08点-20点";
}
else
System.Windows.Application.Current.Dispatcher.Invoke((Action)(() =>
{
CurrentDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
ShiftStr = $"夜班 20点-08点";
}
CurrentDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
}));
}
#endregion
}
}

@ -31,7 +31,7 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center">

@ -210,7 +210,7 @@
"PlcType": "Siemens",
"Enabled": true,
"IP": "10.10.92.180",
// "IP": "127.0.0.1",
// "IP": "127.0.0.1",
"Port": 102
},
{

@ -80,6 +80,7 @@
<ItemGroup>
<ProjectReference Include="..\Admin.Core.Extensions\Admin.Core.Extensions.csproj" />
<ProjectReference Include="..\Aucma.Core.Palletiz\Aucma.Core.Palletiz.csproj" />
</ItemGroup>
<ItemGroup>

Loading…
Cancel
Save