You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.8 KiB
C#
120 lines
3.8 KiB
C#
using System.Globalization;
|
|
using System.Linq;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Sln.Wcs.Model.Domain;
|
|
using Sln.Wcs.Repository.service;
|
|
using Sln.Wcs.UI.Controls;
|
|
|
|
namespace Sln.Wcs.UI.Page.BasicInfo.DeviceInfo
|
|
{
|
|
public partial class DeviceInfoPage : UserControl
|
|
{
|
|
private readonly IBaseDeviceInfoService _deviceInfoService;
|
|
|
|
public DeviceInfoPage()
|
|
{
|
|
InitializeComponent();
|
|
_deviceInfoService = App.ServiceProvider.GetService<IBaseDeviceInfoService>();
|
|
LoadData();
|
|
}
|
|
|
|
public void LoadData()
|
|
{
|
|
var list = _deviceInfoService.Query();
|
|
DeviceGrid.ItemsSource = list;
|
|
}
|
|
|
|
private void BtnQuery_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var code = TxtQueryCode.Text?.Trim();
|
|
var name = TxtQueryName.Text?.Trim();
|
|
var list = _deviceInfoService.Query()
|
|
.Where(d => string.IsNullOrEmpty(code) || d.deviceCode.Contains(code))
|
|
.Where(d => string.IsNullOrEmpty(name) || (d.deviceName != null && d.deviceName.Contains(name)))
|
|
.ToList();
|
|
DeviceGrid.ItemsSource = list;
|
|
}
|
|
|
|
private void BtnAdd_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
var window = new DeviceAddWindow(this);
|
|
window.Owner = Window.GetWindow(this);
|
|
window.ShowDialog();
|
|
}
|
|
|
|
private void BtnEdit_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (DeviceGrid.SelectedItem is BaseDeviceInfo device)
|
|
{
|
|
var window = new DeviceEditWindow(this, device);
|
|
window.Owner = Window.GetWindow(this);
|
|
window.ShowDialog();
|
|
}
|
|
}
|
|
|
|
private void BtnDelete_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (DeviceGrid.SelectedItem is BaseDeviceInfo device)
|
|
{
|
|
var result = CustomMessageBox.Show($"确认删除设备: {device.deviceName}?", "删除确认", MessageBoxButton.YesNo);
|
|
if (result == MessageBoxResult.Yes)
|
|
{
|
|
var success = _deviceInfoService.Delete(device);
|
|
if (success)
|
|
{
|
|
CustomMessageBox.Show("删除成功", "提示", MessageBoxButton.OK);
|
|
LoadData();
|
|
}
|
|
else
|
|
{
|
|
CustomMessageBox.Show("删除失败", "错误", MessageBoxButton.OK);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
[ValueConversion(typeof(int), typeof(string))]
|
|
public class DeviceTypeConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
return value switch
|
|
{
|
|
0 => "输送线",
|
|
1 => "AGV",
|
|
2 => "提升机",
|
|
_ => "未知"
|
|
};
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
|
|
[ValueConversion(typeof(int), typeof(string))]
|
|
public class DeviceStatusConverter : IValueConverter
|
|
{
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
return value switch
|
|
{
|
|
0 => "正常",
|
|
1 => "在忙",
|
|
2 => "异常",
|
|
_ => "未知"
|
|
};
|
|
}
|
|
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|