@@ -76,9 +76,11 @@ | |||||
Width="200" | Width="200" | ||||
FontFamily="楷体" | FontFamily="楷体" | ||||
FontSize="20" | FontSize="20" | ||||
IsEditable="False" | |||||
IsEditable="False" | |||||
SelectedValuePath="Key" DisplayMemberPath="Value" | |||||
ItemsSource="{Binding DataContext.materialsName, RelativeSource={RelativeSource AncestorType=ItemsControl, Mode=FindAncestor}}" | ItemsSource="{Binding DataContext.materialsName, RelativeSource={RelativeSource AncestorType=ItemsControl, Mode=FindAncestor}}" | ||||
SelectedItem="{Binding Name}" | |||||
SelectedValue="{Binding ID}" | |||||
/> | /> | ||||
<StackPanel | <StackPanel | ||||
Grid.Column="1" | Grid.Column="1" | ||||
@@ -18,8 +18,8 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
/// <summary> | /// <summary> | ||||
/// 原料名称集合 | /// 原料名称集合 | ||||
/// </summary> | /// </summary> | ||||
public ObservableCollection<string> materialsName { get; set; } = new ObservableCollection<string>(); | |||||
public Dictionary<string, string> materialsName { get; set; } = new Dictionary<string, string>(); | |||||
/// <summary> | /// <summary> | ||||
/// 配方名称 | /// 配方名称 | ||||
/// </summary> | /// </summary> | ||||
@@ -50,13 +50,11 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
public RecipesConfigureViewModel() | public RecipesConfigureViewModel() | ||||
{ | { | ||||
AddMaterailsCommand = new RelayCommand(() => | AddMaterailsCommand = new RelayCommand(() => | ||||
{ | { | ||||
recipeMaterials.Add(new RecipeMaterials() | recipeMaterials.Add(new RecipeMaterials() | ||||
{ | { | ||||
ID = Guid.NewGuid().ToString() | |||||
//ID = Guid.NewGuid().ToString() | |||||
}); | }); | ||||
}); | }); | ||||
@@ -70,6 +68,11 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
return; | return; | ||||
} | } | ||||
recipeMaterials?.ToList().ForEach(p => { | |||||
if (materialsName.ContainsKey(p.ID)) p.Name = materialsName[p.ID]; | |||||
}); | |||||
if (Globle.GlobleData.ChangeRecipes != null) | if (Globle.GlobleData.ChangeRecipes != null) | ||||
{ | { | ||||
var res = Json<LocalRecipes>.Data.locaRecipes.FirstOrDefault(p => p.ID == Globle.GlobleData.ChangeRecipes.ID); | var res = Json<LocalRecipes>.Data.locaRecipes.FirstOrDefault(p => p.ID == Globle.GlobleData.ChangeRecipes.ID); | ||||
@@ -101,7 +104,7 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
{ | { | ||||
foreach (var materail in Json<LocalMaterails>.Data.locaMaterails) | foreach (var materail in Json<LocalMaterails>.Data.locaMaterails) | ||||
{ | { | ||||
materialsName.Add(materail.Name); | |||||
materialsName.Add(materail.ID,materail.Name); | |||||
} | } | ||||
} | } | ||||
if (Globle.GlobleData.ChangeRecipes != null) | if (Globle.GlobleData.ChangeRecipes != null) | ||||
@@ -1,7 +1,8 @@ | |||||
<Application x:Class="BPASmartClient.JXJFoodSmallStation.App" | |||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |||||
xmlns:con="clr-namespace:BPASmartClient.CustomResource.Converters;assembly=BPASmartClient.CustomResource" | |||||
<Application | |||||
x:Class="BPASmartClient.JXJFoodSmallStation.App" | |||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |||||
xmlns:con="clr-namespace:BPASmartClient.CustomResource.Converters;assembly=BPASmartClient.CustomResource" | |||||
xmlns:local="clr-namespace:BPASmartClient.JXJFoodSmallStation"> | xmlns:local="clr-namespace:BPASmartClient.JXJFoodSmallStation"> | ||||
<Application.Resources> | <Application.Resources> | ||||
<ResourceDictionary> | <ResourceDictionary> | ||||
@@ -34,7 +34,7 @@ namespace BPASmartClient.MorkS | |||||
public override void DoMain() | public override void DoMain() | ||||
{ | { | ||||
MonitorViewModel.DeviceId = DeviceId; | MonitorViewModel.DeviceId = DeviceId; | ||||
ServerInit(); | ServerInit(); | ||||
@@ -60,12 +60,12 @@ namespace BPASmartClient.MorkS | |||||
ActionManage.GetInstance.Register(new Action<object[]>((o) => | ActionManage.GetInstance.Register(new Action<object[]>((o) => | ||||
{ | { | ||||
if (o.Length > 0 ) | |||||
if (o.Length > 0) | |||||
{ | { | ||||
Random rd = new Random(); | Random rd = new Random(); | ||||
ThreadManage.GetInstance().StartLong(new Action(() => | ThreadManage.GetInstance().StartLong(new Action(() => | ||||
{ | { | ||||
int NoodleLoc = (int)o[0] == 0? rd.Next(1, 6) : (int)o[0]; | |||||
int NoodleLoc = (int)o[0] == 0 ? rd.Next(1, 6) : (int)o[0]; | |||||
int BowlLoc = (int)o[1] == 0 ? rd.Next(10, 12) : (int)o[1]; | int BowlLoc = (int)o[1] == 0 ? rd.Next(10, 12) : (int)o[1]; | ||||
string guid = new Guid().ToString(); | string guid = new Guid().ToString(); | ||||
@@ -144,7 +144,7 @@ namespace BPASmartClient.MorkS | |||||
private void GetStatus(string key, Action<object> action) | private void GetStatus(string key, Action<object> action) | ||||
{ | { | ||||
if (peripheralStatus.ContainsKey(key)) | if (peripheralStatus.ContainsKey(key)) | ||||
{ | |||||
{ | |||||
if (peripheralStatus[key] != null) | if (peripheralStatus[key] != null) | ||||
{ | { | ||||
action?.Invoke(peripheralStatus[key]); | action?.Invoke(peripheralStatus[key]); | ||||
@@ -633,10 +633,10 @@ namespace BPASmartClient.MorkS | |||||
/// </summary> | /// </summary> | ||||
/// <param name="meal"></param> | /// <param name="meal"></param> | ||||
private void WaitMeaLSpeak(string meal) | private void WaitMeaLSpeak(string meal) | ||||
{ | |||||
{ | |||||
VoiceAPI.m_SystemPlayWav(@"Vioce\电子提示音.wav"); | VoiceAPI.m_SystemPlayWav(@"Vioce\电子提示音.wav"); | ||||
Thread.Sleep(1000); | Thread.Sleep(1000); | ||||
if(meal!= null) mORKS.speech.Speak(meal); | |||||
if (meal != null) mORKS.speech.Speak(meal); | |||||
VoiceAPI.m_SystemPlayWav(@"Vioce\取餐通知.wav"); | VoiceAPI.m_SystemPlayWav(@"Vioce\取餐通知.wav"); | ||||
} | } | ||||
@@ -30,6 +30,7 @@ | |||||
<ResourceDictionary> | <ResourceDictionary> | ||||
<ImageBrush x:Key="hbl" ImageSource="/BPASmartClient.CustomResource;component/Image/HBL.png" /> | <ImageBrush x:Key="hbl" ImageSource="/BPASmartClient.CustomResource;component/Image/HBL.png" /> | ||||
<ImageBrush x:Key="dbxt" ImageSource="/BPASmartClient.CustomResource;component/Image/顶部线条.png" /> | <ImageBrush x:Key="dbxt" ImageSource="/BPASmartClient.CustomResource;component/Image/顶部线条.png" /> | ||||
<SolidColorBrush x:Key="PoupTextblockColor" Color="#009dff" /> | |||||
</ResourceDictionary> | </ResourceDictionary> | ||||
</ResourceDictionary.MergedDictionaries> | </ResourceDictionary.MergedDictionaries> | ||||
@@ -9,6 +9,7 @@ using System.Windows; | |||||
using BPASmartClient.CustomResource.Pages.Enums; | using BPASmartClient.CustomResource.Pages.Enums; | ||||
using BPASmartClient.CustomResource.Pages.Model; | using BPASmartClient.CustomResource.Pages.Model; | ||||
using BPASmartClient.CustomResource.Pages.View; | using BPASmartClient.CustomResource.Pages.View; | ||||
using BPASmartClient.SmallBatchingSystem.Services; | |||||
namespace BPASmartClient.SmallBatchingSystem | namespace BPASmartClient.SmallBatchingSystem | ||||
{ | { | ||||
@@ -23,16 +24,17 @@ namespace BPASmartClient.SmallBatchingSystem | |||||
base.OnStartup(e); | base.OnStartup(e); | ||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; | AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; | ||||
MenuInit(); | MenuInit(); | ||||
SiloServer siloServer = new SiloServer(); | |||||
MainView mv = new MainView(); | MainView mv = new MainView(); | ||||
LoginView lv = new LoginView(); | |||||
var res = lv.ShowDialog(); | |||||
if (res != null && res == true) | |||||
{ | |||||
MessageLog.GetInstance.ShowUserLog("用户登录"); | |||||
//LoginView lv = new LoginView(); | |||||
//var res = lv.ShowDialog(); | |||||
//if (res != null && res == true) | |||||
//{ | |||||
// MessageLog.GetInstance.ShowUserLog("用户登录"); | |||||
mv.Show(); | mv.Show(); | ||||
} | |||||
else | |||||
mv.Close(); | |||||
//} | |||||
//else | |||||
// mv.Close(); | |||||
MainWindow = mv; | MainWindow = mv; | ||||
} | } | ||||
@@ -20,6 +20,7 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\BPASmart.RecipeManagement\BPASmart.RecipeManagement.csproj" /> | <ProjectReference Include="..\BPASmart.RecipeManagement\BPASmart.RecipeManagement.csproj" /> | ||||
<ProjectReference Include="..\BPASmartClient.CustomResource\BPASmartClient.CustomResource.csproj" /> | <ProjectReference Include="..\BPASmartClient.CustomResource\BPASmartClient.CustomResource.csproj" /> | ||||
<ProjectReference Include="..\BPASmartClient.Modbus\BPASmartClient.Modbus.csproj" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |
@@ -0,0 +1,36 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using System.Collections.ObjectModel; | |||||
namespace BPASmartClient.SmallBatchingSystem.Models | |||||
{ | |||||
/// <summary> | |||||
/// 出料口信息 | |||||
/// </summary> | |||||
public class OutletInfoModel : ObservableObject | |||||
{ | |||||
/// <summary> | |||||
/// 出料口名称 | |||||
/// </summary> | |||||
public string OutletName { get { return _mOutletName; } set { _mOutletName = value; OnPropertyChanged(); } } | |||||
private string _mOutletName; | |||||
/// <summary> | |||||
/// 出来哦口位置 | |||||
/// </summary> | |||||
public int OutletLoc { get { return _mOutletLoc; } set { _mOutletLoc = value; OnPropertyChanged(); } } | |||||
private int _mOutletLoc; | |||||
/// <summary> | |||||
/// 出料口对应的料仓信息 | |||||
/// </summary> | |||||
public ObservableCollection<SiloInfoModel> SiloInfos { get { return _mSiloInfos; } set { _mSiloInfos = value; OnPropertyChanged(); } } | |||||
private ObservableCollection<SiloInfoModel> _mSiloInfos; | |||||
} | |||||
} |
@@ -7,11 +7,22 @@ using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
namespace BPASmartClient.SmallBatchingSystem.Models | namespace BPASmartClient.SmallBatchingSystem.Models | ||||
{ | { | ||||
/// <summary> | |||||
/// 原料仓信息 | |||||
/// </summary> | |||||
public class SiloInfoModel : ObservableObject | public class SiloInfoModel : ObservableObject | ||||
{ | { | ||||
public SiloInfoModel() | |||||
{ | |||||
/// <summary> | |||||
/// 料仓原料名称 | |||||
/// </summary> | |||||
public string SiloName { get { return _mSiloName; } set { _mSiloName = value; OnPropertyChanged(); } } | |||||
private string _mSiloName; | |||||
/// <summary> | |||||
/// 料仓原料位置 | |||||
/// </summary> | |||||
public int SiloLoc { get { return _mSiloLoc; } set { _mSiloLoc = value; OnPropertyChanged(); } } | |||||
private int _mSiloLoc; | |||||
} | |||||
} | } | ||||
} | } |
@@ -4,8 +4,8 @@ using System.Linq; | |||||
using System.Text; | using System.Text; | ||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using BPA.Communication; | |||||
using BPA.Helper; | using BPA.Helper; | ||||
using BPASmartClient.Modbus; | |||||
using BPASmartClient.SmallBatchingSystem.Models; | using BPASmartClient.SmallBatchingSystem.Models; | ||||
namespace BPASmartClient.SmallBatchingSystem.Services | namespace BPASmartClient.SmallBatchingSystem.Services | ||||
@@ -16,7 +16,7 @@ namespace BPASmartClient.SmallBatchingSystem.Services | |||||
public static PlcServer GetInstance => _Instance ?? (_Instance = new PlcServer()); | public static PlcServer GetInstance => _Instance ?? (_Instance = new PlcServer()); | ||||
private PlcServer() { } | private PlcServer() { } | ||||
ModbusTcp Communication = new ModbusTcp(); | |||||
public ModbusTcp Communication = new ModbusTcp(); | |||||
public void Connect() | public void Connect() | ||||
{ | { | ||||
@@ -33,5 +33,18 @@ namespace BPASmartClient.SmallBatchingSystem.Services | |||||
Communication.ModbusTcpConnect(Json<CommunicationPar>.Data.Host, Json<CommunicationPar>.Data.Port); | Communication.ModbusTcpConnect(Json<CommunicationPar>.Data.Host, Json<CommunicationPar>.Data.Port); | ||||
} | } | ||||
public void WriteData(string address, object value) | |||||
{ | |||||
if (address != null && value != null) | |||||
Communication.Write(address, value); | |||||
} | |||||
public object ReadData(string address,int length) | |||||
{ | |||||
object res=null; | |||||
if (address != null) | |||||
res= Communication.Read(address,(ushort)length); | |||||
return res; | |||||
} | |||||
} | } | ||||
} | } |
@@ -0,0 +1,216 @@ | |||||
using BPASmart.Model; | |||||
using BPASmartClient.Helper; | |||||
using System; | |||||
using System.Collections.Concurrent; | |||||
using System.Collections.Generic; | |||||
using System.Collections.ObjectModel; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading; | |||||
using System.Threading.Tasks; | |||||
namespace BPASmartClient.SmallBatchingSystem.Services | |||||
{ | |||||
/// <summary> | |||||
/// 料仓服务线程 | |||||
/// </summary> | |||||
public class SiloServer | |||||
{ | |||||
public SiloServer() | |||||
{ | |||||
BusinessThread(); | |||||
RefreshRecips(); | |||||
MakeToRecipsID("2d1ac4da-110b-4d4d-9e94-36aac6d67124"); | |||||
} | |||||
#region 临时变量 | |||||
/// <summary> | |||||
/// 物料数据 | |||||
/// </summary> | |||||
public ObservableCollection<RecipeMaterials> RecipeMaterialsDic = new ObservableCollection<RecipeMaterials>(); | |||||
/// <summary> | |||||
/// 当前配方 | |||||
/// </summary> | |||||
public ObservableCollection<Recipes> RecipesDic = new ObservableCollection<Recipes>(); | |||||
#endregion | |||||
#region 订单管理 | |||||
public ConcurrentQueue<Recipes> MakeOrderQueue { get; set; }=new ConcurrentQueue<Recipes>(); | |||||
#endregion | |||||
#region 业务 | |||||
/// <summary> | |||||
/// 业务线程 | |||||
/// </summary> | |||||
public void BusinessThread() | |||||
{ | |||||
ThreadManage.GetInstance().Start(new Action(() => | |||||
{ | |||||
PlcServer.GetInstance.Connect(); | |||||
}), "启动PLC", false); | |||||
ThreadManage.GetInstance().StartLong(new Action(() => | |||||
{ | |||||
// if (PlcServer.GetInstance.Communication.Connected) | |||||
{ | |||||
if (MakeOrderQueue.TryDequeue(out Recipes recipes)) | |||||
{ | |||||
Make(recipes); | |||||
} | |||||
} | |||||
}), "配料线程启动", true); | |||||
} | |||||
#endregion | |||||
#region 调用函数 | |||||
/// <summary> | |||||
/// 刷新配方数据 | |||||
/// </summary> | |||||
public void RefreshRecips() | |||||
{ | |||||
try | |||||
{ | |||||
//读取料仓物料数据 配方数据 | |||||
Json<LocalMaterails>.Read(); | |||||
Json<LocalRecipes>.Read(); | |||||
RecipeMaterialsDic = Json<LocalMaterails>.Data.locaMaterails; | |||||
RecipesDic = Json<LocalRecipes>.Data.locaRecipes; | |||||
RecipesDic?.ToList().ForEach(par => { | |||||
par.recipeMaterials?.ToList().ForEach((recipeMaterial) => | |||||
{ | |||||
RecipeMaterials recipe = RecipeMaterialsDic?.ToList().Find(k => k.ID == recipeMaterial.ID); | |||||
if (recipe != null) | |||||
{ | |||||
recipeMaterial.MaterialType = recipe.MaterialType; | |||||
recipeMaterial.MaterialPosion = recipe.MaterialPosion; | |||||
recipeMaterial.PropertyCollections = recipe.PropertyCollections; | |||||
} | |||||
}); | |||||
}); | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 根据配方ID制作流程 | |||||
/// </summary> | |||||
public void MakeToRecipsID(string id) | |||||
{ | |||||
try | |||||
{ | |||||
//chaxun 配方 | |||||
Recipes info = RecipesDic?.ToList().Find(par => par.ID == id); | |||||
if (info != null) | |||||
{ | |||||
//添加到队列 | |||||
MakeOrderQueue.Enqueue(info); | |||||
} | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 根据配方控制流程 | |||||
/// </summary> | |||||
/// <param name="recipes"></param> | |||||
public async void Make(Recipes recipes) | |||||
{ | |||||
try | |||||
{ | |||||
//遍历配方物料集合 | |||||
recipes?.recipeMaterials?.ToList().ForEach(recipe => | |||||
{ | |||||
//料仓位置 | |||||
int recipesLoc = 1; int.TryParse(recipe.PropertyCollections?.First()?.PropertyValue, out recipesLoc); | |||||
//原料位置 | |||||
int storeLoc = 1; int.TryParse(recipe.MaterialPosion, out recipesLoc); | |||||
//原料需求(g)数 | |||||
int storeWeight = recipe.MaterialWeight; | |||||
//1.写PLC VW302 目标位置 -> recipesLoc M10.0 定位启动 开始运行 | |||||
//2.读取PLC M20.0 到达目标位置 <- 标志 (bool) 【等待】 | |||||
//3.写PLC VW100 料口X需求 ->写入重量 storeWeight | |||||
//4.写PLC M0.0 启动出料口xx ->storeLoc (bool) | |||||
//5.读PLC M4.0 通道XX出料完成<-标志 (bool) 【等待】 | |||||
if (storeWeight > 0) | |||||
{ | |||||
WriteData("VW302", recipesLoc); | |||||
WriteData("M10.0",true); | |||||
#region 读取是否到达目标位置,超时10秒 | |||||
bool IsOver = false; | |||||
int fade1 = 1000; | |||||
while (fade1 != -1 && !IsOver) | |||||
{ | |||||
IsOver = (bool)ReadData("M20.0", 1); | |||||
Thread.Sleep(10); | |||||
fade1--; | |||||
} | |||||
#endregion | |||||
if (IsOver)//到达指定位置 | |||||
{ | |||||
//写需求 | |||||
string adder = $"VW{100 + 2 * (storeLoc - 1)}"; | |||||
WriteData(adder, storeWeight); | |||||
//写启动料口 | |||||
adder = storeLoc <= 8 ? $"M0.{(storeLoc - 1)}" : $"M1.{(storeLoc - 9)}"; | |||||
WriteData(adder, true); | |||||
//读取通道下料是否完成 | |||||
adder = storeLoc <= 8 ? $"M4.{(storeLoc - 1)}" : $"M5.{(storeLoc - 9)}"; | |||||
#region 通道XX出料完成,超时10秒 | |||||
bool IsXLOver = false; | |||||
int fade1XL = 1000; | |||||
while (fade1XL != -1 && !IsXLOver) | |||||
{ | |||||
IsXLOver = (bool)ReadData("M20.0", 1); | |||||
Thread.Sleep(30); | |||||
fade1XL--; | |||||
} | |||||
#endregion | |||||
} | |||||
} | |||||
}); | |||||
//6.写PLC M10.4 上位机配料完成 | |||||
} | |||||
catch (Exception ex) { } | |||||
} | |||||
#endregion | |||||
#region 调用外部PLC | |||||
/// <summary> | |||||
/// 写PLC | |||||
/// </summary> | |||||
/// <param name="address"></param> | |||||
/// <param name="value"></param> | |||||
public void WriteData(string address, object value) | |||||
{ | |||||
//PlcServer.GetInstance.WriteData(address, value); | |||||
} | |||||
/// <summary> | |||||
/// 读PLC | |||||
/// </summary> | |||||
/// <param name="address"></param> | |||||
/// <param name="length"></param> | |||||
/// <returns></returns> | |||||
public object ReadData(string address, int length) | |||||
{ | |||||
//return PlcServer.GetInstance.ReadData(address, length); | |||||
return null; | |||||
} | |||||
#endregion | |||||
} | |||||
} |
@@ -0,0 +1,17 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||||
{ | |||||
public class NewOutletViewModel : ObservableObject | |||||
{ | |||||
public NewOutletViewModel() | |||||
{ | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,34 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using BPASmartClient.SmallBatchingSystem.Models; | |||||
using Microsoft.Toolkit.Mvvm.Input; | |||||
using BPA.Helper; | |||||
namespace BPASmartClient.SmallBatchingSystem.ViewModels | |||||
{ | |||||
public class NewSiloViewModel : ObservableObject | |||||
{ | |||||
public NewSiloViewModel() | |||||
{ | |||||
CancelCommand = new RelayCommand(() => { ActionManage.GetInstance.Send("Cancel"); }); | |||||
OkCommand = new RelayCommand(() => { ActionManage.GetInstance.Send("OK"); }); | |||||
} | |||||
public SiloInfoModel SiloInfoModelObj { get { return _mSiloInfoModelObj; } set { _mSiloInfoModelObj = value; OnPropertyChanged(); } } | |||||
private SiloInfoModel _mSiloInfoModelObj; | |||||
public string ErrorInfo { get { return _mErrorInfo; } set { _mErrorInfo = value; OnPropertyChanged(); } } | |||||
private string _mErrorInfo; | |||||
public RelayCommand CancelCommand { get; set; } | |||||
public RelayCommand OkCommand { get; set; } | |||||
} | |||||
} |
@@ -3,10 +3,17 @@ using System.Collections.Generic; | |||||
using System.Linq; | using System.Linq; | ||||
using System.Text; | using System.Text; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
namespace BPASmartClient.SmallBatchingSystem.ViewModels | namespace BPASmartClient.SmallBatchingSystem.ViewModels | ||||
{ | { | ||||
public class SiloManagementViewModel | |||||
public class SiloManagementViewModel : ObservableObject | |||||
{ | { | ||||
public SiloManagementViewModel() | |||||
{ | |||||
} | |||||
} | } | ||||
} | } |
@@ -0,0 +1,265 @@ | |||||
<Window | |||||
x:Class="BPASmartClient.SmallBatchingSystem.Views.NewOutletView" | |||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |||||
xmlns:con="clr-namespace:BPASmartClient.SmallBatchingSystem.Converter" | |||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||||
xmlns:local="clr-namespace:BPASmartClient.SmallBatchingSystem.Views" | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||||
Title="NewOutletView" | |||||
Width="500" | |||||
Height="300" | |||||
AllowsTransparency="True" | |||||
Background="{x:Null}" | |||||
WindowStartupLocation="CenterScreen" | |||||
WindowStyle="None" | |||||
mc:Ignorable="d"> | |||||
<Window.Resources> | |||||
<SolidColorBrush x:Key="FontColor" Color="#FF2AB2E7" /> | |||||
<SolidColorBrush x:Key="tabColor" Color="#FF2AB2E7" /> | |||||
<!--<SolidColorBrush x:Key="bordColor" Color="#33ffffff" />--> | |||||
<SolidColorBrush x:Key="bordColor" Color="#332AB2E7" /> | |||||
<con:DataTableRedundantConverter x:Key="tabConvert" /> | |||||
<Style x:Key="TextBlockStyle" TargetType="TextBlock"> | |||||
<Setter Property="VerticalAlignment" Value="Center" /> | |||||
<Setter Property="HorizontalAlignment" Value="Right" /> | |||||
<Setter Property="Foreground" Value="{StaticResource FontColor}" /> | |||||
<Setter Property="FontSize" Value="20" /> | |||||
</Style> | |||||
<Style x:Key="TextBoxStyle" TargetType="TextBox"> | |||||
<Setter Property="FontFamily" Value="楷体" /> | |||||
<Setter Property="FontSize" Value="22" /> | |||||
<Setter Property="VerticalContentAlignment" Value="Center" /> | |||||
<Setter Property="Width" Value="188" /> | |||||
<Setter Property="Padding" Value="6,0,0,0" /> | |||||
<Setter Property="Height" Value="37" /> | |||||
<Setter Property="BorderThickness" Value="0" /> | |||||
<Setter Property="Foreground" Value="{StaticResource PoupTextblockColor}" /> | |||||
<Setter Property="BorderBrush" Value="{StaticResource PoupTextblockColor}" /> | |||||
<Setter Property="CaretBrush" Value="{StaticResource PoupTextblockColor}" /> | |||||
<Setter Property="VerticalAlignment" Value="Center" /> | |||||
<Setter Property="Background"> | |||||
<Setter.Value> | |||||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/textBox.png" Stretch="Fill" /> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<Style x:Key="ControlButtonStyle" TargetType="Button"> | |||||
<Setter Property="Margin" Value="0" /> | |||||
<Setter Property="FontSize" Value="18" /> | |||||
<Setter Property="Foreground" Value="#FFF53F62" /> | |||||
<Setter Property="FontWeight" Value="SemiBold" /> | |||||
<Setter Property="FontFamily" Value="楷体" /> | |||||
<Setter Property="VerticalContentAlignment" Value="Center" /> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="Button"> | |||||
<Border | |||||
Name="TitleBarBr" | |||||
BorderBrush="#00c2f4" | |||||
BorderThickness="0" | |||||
CornerRadius="0" | |||||
Opacity="0.8"> | |||||
<ContentPresenter | |||||
Margin="{TemplateBinding Margin}" | |||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" | |||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> | |||||
<Border.Background> | |||||
<ImageBrush | |||||
ImageSource="/BPASmartClient.CustomResource;component/Image/组合边框1.1.png" | |||||
Opacity="0.8" | |||||
Stretch="Fill" /> | |||||
</Border.Background> | |||||
</Border> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="true"> | |||||
<Setter TargetName="TitleBarBr" Property="Opacity" Value="1" /> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<Style x:Key="TitleTextblockStyle" TargetType="TextBlock"> | |||||
<Setter Property="FontSize" Value="16" /> | |||||
<Setter Property="HorizontalAlignment" Value="Center" /> | |||||
<Setter Property="VerticalAlignment" Value="Center" /> | |||||
<Setter Property="Foreground" Value="{StaticResource tabColor}" /> | |||||
<Setter Property="FontFamily" Value="楷体" /> | |||||
<Setter Property="FontWeight" Value="SemiBold" /> | |||||
</Style> | |||||
</Window.Resources> | |||||
<Grid> | |||||
<Grid.Background> | |||||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/容器边框.png" /> | |||||
</Grid.Background> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="0.18*" /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<TextBlock | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="20" | |||||
Foreground="{StaticResource FontColor}" | |||||
Text="新建出料口" /> | |||||
<Grid Grid.Row="1"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="0.2*" /> | |||||
<RowDefinition Height="0.2*" /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<TextBlock | |||||
Margin="15,0,0,0" | |||||
HorizontalAlignment="Left" | |||||
Style="{StaticResource TextBlockStyle}" | |||||
Text="出料口名称:" /> | |||||
<StackPanel | |||||
Grid.Row="1" | |||||
Margin="10,0,0,0" | |||||
Orientation="Horizontal"> | |||||
<TextBox | |||||
Width="180" | |||||
Height="35" | |||||
Margin="5,0,0,0" | |||||
FontSize="20" | |||||
Style="{StaticResource TextBoxStyle}" | |||||
Text="{Binding TrayNum}" /> | |||||
<Button | |||||
Width="90" | |||||
Height="30" | |||||
Margin="5,0,5,0" | |||||
Command="{Binding AddCommand}" | |||||
Content="添加料仓" | |||||
FontSize="20" | |||||
Style="{StaticResource ImageButtonStyle}" /> | |||||
<Button | |||||
Width="90" | |||||
Height="30" | |||||
Margin="5,0,5,0" | |||||
Command="{Binding AddCommand}" | |||||
Content="取消" | |||||
FontSize="20" | |||||
Style="{StaticResource ImageButtonStyle}" /> | |||||
<Button | |||||
Grid.Column="1" | |||||
Width="90" | |||||
Height="30" | |||||
Margin="5,0,5,0" | |||||
Command="{Binding AddCommand}" | |||||
Content="保存" | |||||
FontSize="20" | |||||
Style="{StaticResource ImageButtonStyle}" /> | |||||
</StackPanel> | |||||
<Grid Grid.Row="2" Margin="15,0,10,0"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="35" /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<!--#region 表格标题栏设置--> | |||||
<Grid Margin="0,10,0,0" Background="#ff0C255F"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition Width="0.68*" /> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock | |||||
Grid.Column="0" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="选择料仓" /> | |||||
<Grid Grid.Column="1"> | |||||
<TextBlock Style="{StaticResource TitleTextblockStyle}" Text="功能操作" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<Border | |||||
Grid.ColumnSpan="2" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" /> | |||||
</Grid> | |||||
<!--#endregion--> | |||||
<ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"> | |||||
<ItemsControl ItemsSource="{Binding RawMaterials}"> | |||||
<ItemsControl.ItemTemplate> | |||||
<DataTemplate> | |||||
<RadioButton GroupName="all"> | |||||
<RadioButton.Template> | |||||
<ControlTemplate TargetType="RadioButton"> | |||||
<Grid Name="gr" Height="40"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition Width="0.68*" /> | |||||
</Grid.ColumnDefinitions> | |||||
<ComboBox | |||||
Name="cb" | |||||
Grid.Column="0" | |||||
Margin="3,1" | |||||
VerticalAlignment="Center" | |||||
BorderBrush="#FF074B92" | |||||
BorderThickness="1" | |||||
FontFamily="楷体" | |||||
FontSize="20" | |||||
Foreground="#FF2AB2E7" | |||||
IsEditable="False" | |||||
ItemsSource="{Binding DataContext.RawMaterialNames, RelativeSource={RelativeSource AncestorType=ItemsControl, Mode=FindAncestor}}" | |||||
SelectedIndex="0" | |||||
Style="{StaticResource ComboBoxStyle}" | |||||
Text="{Binding RawMaterialName}" /> | |||||
<Button | |||||
Grid.Column="1" | |||||
Width="80" | |||||
Command="{Binding DataContext.RemoveCommand, RelativeSource={RelativeSource AncestorType=ItemsControl, Mode=FindAncestor}}" | |||||
CommandParameter="{Binding RawMaterialId}" | |||||
Content="删除" /> | |||||
</Grid> | |||||
</ControlTemplate> | |||||
</RadioButton.Template> | |||||
</RadioButton> | |||||
</DataTemplate> | |||||
</ItemsControl.ItemTemplate> | |||||
</ItemsControl> | |||||
</ScrollViewer> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</Window> |
@@ -0,0 +1,27 @@ | |||||
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 BPASmartClient.SmallBatchingSystem.Views | |||||
{ | |||||
/// <summary> | |||||
/// NewOutletView.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class NewOutletView : Window | |||||
{ | |||||
public NewOutletView() | |||||
{ | |||||
InitializeComponent(); | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,143 @@ | |||||
<Window | |||||
x:Class="BPASmartClient.SmallBatchingSystem.Views.NewSiloView" | |||||
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:local="clr-namespace:BPASmartClient.SmallBatchingSystem.Views" | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||||
xmlns:vm="clr-namespace:BPASmartClient.SmallBatchingSystem.ViewModels" | |||||
Title="NewSiloView" | |||||
Width="500" | |||||
Height="300" | |||||
AllowsTransparency="True" | |||||
Background="{x:Null}" | |||||
WindowStartupLocation="CenterScreen" | |||||
WindowStyle="None" | |||||
mc:Ignorable="d"> | |||||
<Window.DataContext> | |||||
<vm:NewSiloViewModel /> | |||||
</Window.DataContext> | |||||
<Window.Resources> | |||||
<SolidColorBrush x:Key="FontColor" Color="#FF2AB2E7" /> | |||||
<Style x:Key="TextBlockStyle" TargetType="TextBlock"> | |||||
<Setter Property="VerticalAlignment" Value="Center" /> | |||||
<Setter Property="HorizontalAlignment" Value="Right" /> | |||||
<Setter Property="Foreground" Value="{StaticResource FontColor}" /> | |||||
<Setter Property="FontSize" Value="20" /> | |||||
</Style> | |||||
<Style x:Key="TextBoxStyle" TargetType="TextBox"> | |||||
<Setter Property="FontFamily" Value="楷体" /> | |||||
<Setter Property="FontSize" Value="22" /> | |||||
<Setter Property="VerticalContentAlignment" Value="Center" /> | |||||
<Setter Property="Width" Value="188" /> | |||||
<Setter Property="Padding" Value="6,0,0,0" /> | |||||
<Setter Property="Height" Value="37" /> | |||||
<Setter Property="BorderThickness" Value="0" /> | |||||
<Setter Property="Foreground" Value="{StaticResource PoupTextblockColor}" /> | |||||
<Setter Property="BorderBrush" Value="{StaticResource PoupTextblockColor}" /> | |||||
<Setter Property="CaretBrush" Value="{StaticResource PoupTextblockColor}" /> | |||||
<Setter Property="VerticalAlignment" Value="Center" /> | |||||
<Setter Property="Background"> | |||||
<Setter.Value> | |||||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/textBox.png" Stretch="Fill" /> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
</Window.Resources> | |||||
<Grid> | |||||
<Grid.Background> | |||||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/容器边框.png" /> | |||||
</Grid.Background> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="0.18*" /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<TextBlock | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="20" | |||||
Foreground="{StaticResource FontColor}" | |||||
Text="新建料仓" /> | |||||
<Grid Grid.Row="1"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition /> | |||||
<RowDefinition /> | |||||
<RowDefinition Height="0.5*" /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="0.8*" /> | |||||
<ColumnDefinition /> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Style="{StaticResource TextBlockStyle}" Text="料仓原料名称:" /> | |||||
<TextBlock | |||||
Grid.Row="1" | |||||
Style="{StaticResource TextBlockStyle}" | |||||
Text="料仓原料位置:" /> | |||||
<TextBox | |||||
Grid.Column="1" | |||||
Width="250" | |||||
Height="40" | |||||
Margin="0,0,5,0" | |||||
FontSize="20" | |||||
Style="{StaticResource TextBoxStyle}" | |||||
Text="{Binding SiloInfoModelObj.SiloName}" /> | |||||
<TextBox | |||||
Grid.Row="1" | |||||
Grid.Column="1" | |||||
Width="250" | |||||
Height="40" | |||||
Margin="0,0,5,0" | |||||
FontSize="20" | |||||
Style="{StaticResource TextBoxStyle}" | |||||
Text="{Binding SiloInfoModelObj.SiloLoc}" /> | |||||
<TextBlock | |||||
Grid.Row="2" | |||||
Grid.ColumnSpan="2" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Top" | |||||
FontSize="20" | |||||
Foreground="#FFF53F62" | |||||
Text="{Binding ErrorInfo}" /> | |||||
<Button | |||||
Grid.Row="3" | |||||
Width="150" | |||||
Height="40" | |||||
Margin="5,0,5,0" | |||||
Command="{Binding CancelCommand}" | |||||
Content="取消" | |||||
FontSize="20" | |||||
Style="{StaticResource ImageButtonStyle}" /> | |||||
<Button | |||||
Grid.Row="3" | |||||
Grid.Column="1" | |||||
Width="150" | |||||
Height="40" | |||||
Margin="5,0,5,0" | |||||
Command="{Binding OkCommand}" | |||||
Content="保存" | |||||
FontSize="20" | |||||
Style="{StaticResource ImageButtonStyle}" /> | |||||
</Grid> | |||||
</Grid> | |||||
</Window> |
@@ -0,0 +1,28 @@ | |||||
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; | |||||
using BPA.Helper; | |||||
namespace BPASmartClient.SmallBatchingSystem.Views | |||||
{ | |||||
/// <summary> | |||||
/// NewSiloView.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class NewSiloView : Window | |||||
{ | |||||
public NewSiloView() | |||||
{ | |||||
InitializeComponent(); | |||||
} | |||||
} | |||||
} |
@@ -21,6 +21,32 @@ | |||||
<SolidColorBrush x:Key="bordColor" Color="#332AB2E7" /> | <SolidColorBrush x:Key="bordColor" Color="#332AB2E7" /> | ||||
<con:DataTableRedundantConverter x:Key="tabConvert" /> | <con:DataTableRedundantConverter x:Key="tabConvert" /> | ||||
<Style x:Key="UserItemContainerStyle" TargetType="ListBoxItem"> | |||||
<Style.Resources> | |||||
<!-- SelectedItem with focus --> | |||||
<SolidColorBrush | |||||
x:Key="{x:Static SystemColors.HighlightBrushKey}" | |||||
Opacity=".4" | |||||
Color="White" /> | |||||
<!-- SelectedItem without focus --> | |||||
<SolidColorBrush | |||||
x:Key="{x:Static SystemColors.ControlBrushKey}" | |||||
Opacity=".4" | |||||
Color="White" /> | |||||
</Style.Resources> | |||||
<!-- 设置触发器 --> | |||||
<Style.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="true"> | |||||
<Setter Property="Background" Value="White" /> | |||||
<Setter Property="Foreground" Value="White" /> | |||||
</Trigger> | |||||
<Trigger Property="IsFocused" Value="true"> | |||||
<Setter Property="Background" Value="White" /> | |||||
<Setter Property="Foreground" Value="White" /> | |||||
</Trigger> | |||||
</Style.Triggers> | |||||
</Style> | |||||
<Style x:Key="RowRadioButtonStyle" TargetType="{x:Type RadioButton}"> | <Style x:Key="RowRadioButtonStyle" TargetType="{x:Type RadioButton}"> | ||||
<Setter Property="Template"> | <Setter Property="Template"> | ||||
<Setter.Value> | <Setter.Value> | ||||
@@ -125,7 +151,6 @@ | |||||
<Grid Margin="10"> | <Grid Margin="10"> | ||||
<Grid.RowDefinitions> | <Grid.RowDefinitions> | ||||
<RowDefinition Height="40" /> | |||||
<RowDefinition Height="40" /> | <RowDefinition Height="40" /> | ||||
<RowDefinition /> | <RowDefinition /> | ||||
</Grid.RowDefinitions> | </Grid.RowDefinitions> | ||||
@@ -136,7 +161,7 @@ | |||||
Height="40" | Height="40" | ||||
Margin="10,0,10,0" | Margin="10,0,10,0" | ||||
Command="{Binding AddCommand}" | Command="{Binding AddCommand}" | ||||
Content="添加原料参数" | |||||
Content="添加料仓" | |||||
FontSize="20" | FontSize="20" | ||||
Style="{StaticResource ImageButtonStyle}" /> | Style="{StaticResource ImageButtonStyle}" /> | ||||
<Button | <Button | ||||
@@ -149,220 +174,108 @@ | |||||
Style="{StaticResource ImageButtonStyle}" /> | Style="{StaticResource ImageButtonStyle}" /> | ||||
</StackPanel> | </StackPanel> | ||||
<!--#region 表格标题栏设置--> | |||||
<Grid | |||||
Grid.Row="1" | |||||
Margin="0,10,0,0" | |||||
Background="#ff0C255F"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock | |||||
Grid.Column="0" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="原料名称" /> | |||||
<Grid Grid.Column="1"> | |||||
<TextBlock Style="{StaticResource TitleTextblockStyle}" Text="慢加重量(g)" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<TextBlock | |||||
Grid.Column="2" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="提前关阀重量" /> | |||||
<Grid Grid.Column="3"> | |||||
<TextBlock Style="{StaticResource TitleTextblockStyle}" Text="快加速度" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<TextBlock | |||||
Grid.Column="4" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="慢加速度" /> | |||||
<Grid Grid.Column="5"> | |||||
<TextBlock Style="{StaticResource TitleTextblockStyle}" Text="伺服手动速度" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<TextBlock | |||||
Grid.Column="6" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="料仓上限重量" /> | |||||
<Grid Grid.Column="7"> | |||||
<TextBlock Style="{StaticResource TitleTextblockStyle}" Text="料仓下限重量" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<TextBlock | |||||
Grid.Column="8" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="搅拌速度" /> | |||||
<Grid Grid.Column="9"> | |||||
<TextBlock Style="{StaticResource TitleTextblockStyle}" Text="功能操作" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<Border | |||||
Grid.ColumnSpan="10" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" /> | |||||
</Grid> | |||||
<!--#endregion--> | |||||
<Grid Grid.Row="2"> | |||||
<ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"> | |||||
<ItemsControl ItemsSource="{Binding deviceParModels}"> | |||||
<ItemsControl.ItemTemplate> | |||||
<DataTemplate> | |||||
<Grid Name="gr" Height="30"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid Grid.Row="1"> | |||||
<ListView | |||||
Margin="10" | |||||
Background="Transparent" | |||||
BorderBrush="#00BEFA" | |||||
BorderThickness="0" | |||||
ItemsSource="{Binding devices}" | |||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"> | |||||
<ListView.ItemsPanel> | |||||
<ItemsPanelTemplate> | |||||
<WrapPanel Orientation="Horizontal" /> | |||||
</ItemsPanelTemplate> | |||||
</ListView.ItemsPanel> | |||||
<ListView.ItemTemplate> | |||||
<DataTemplate> | |||||
<Border | |||||
Name="ShadowElement" | |||||
Width="180" | |||||
Height="150" | |||||
Margin="10" | |||||
VerticalAlignment="Top" | |||||
BorderBrush="#00BEFA" | |||||
BorderThickness="0" | |||||
ClipToBounds="True" | |||||
CornerRadius="0"> | |||||
<Border.Background> | |||||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/蓝色背景.png" Stretch="Fill" /> | |||||
</Border.Background> | |||||
<TextBox | |||||
<Grid Margin="20,0"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition /> | |||||
<RowDefinition /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<TextBlock | |||||
Grid.Row="0" | |||||
Grid.ColumnSpan="2" | |||||
Margin="0,10,0,0" | |||||
VerticalAlignment="Center" | |||||
FontSize="20" | |||||
Foreground="#00BEFA" | |||||
Text="{Binding DeviceName}" /> | |||||
<StackPanel | |||||
Grid.Row="1" | |||||
VerticalAlignment="Center" | |||||
Orientation="Horizontal"> | |||||
<TextBlock | |||||
Grid.Row="1" | |||||
FontSize="14" | |||||
Foreground="#aa00BEFA" | |||||
Text="设备IP:" /> | |||||
<TextBlock | |||||
Grid.Row="1" | |||||
FontSize="14" | |||||
Foreground="#aa00BEFA" | |||||
Text="{Binding IpAddress}" /> | |||||
</StackPanel> | |||||
<Button | |||||
Grid.Row="2" | |||||
Width="130" | |||||
Height="30" | |||||
Margin="0,0,0,0" | |||||
VerticalAlignment="Top" | |||||
Command="{Binding DataContext.ChangeNameCommand, RelativeSource={RelativeSource AncestorType=ListView, Mode=FindAncestor}}" | |||||
CommandParameter="{Binding IpAddress}" | |||||
Content="修改原料名称" | |||||
FontSize="16" | |||||
IsEnabled="{Binding IsEnable}" | |||||
Style="{StaticResource ImageButtonStyle}" /> | |||||
<!--<Button | |||||
Grid.Row="1" | |||||
Grid.Column="0" | Grid.Column="0" | ||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding MaterialName}" /> | |||||
<Grid Grid.Column="1"> | |||||
<TextBox | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding SlowlyAddWeight}" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<TextBox | |||||
Grid.Column="2" | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding PreCloseValveWeight}" /> | |||||
<Grid Grid.Column="3"> | |||||
<TextBox | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding RapidAcceleration}" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
Grid.ColumnSpan="2" | |||||
Foreground="#00BEFA" | |||||
Width="130" | |||||
Height="30" | |||||
Margin="0,0,0,10" | |||||
HorizontalAlignment="Left" | |||||
VerticalAlignment="Bottom" | |||||
Command="{Binding DataContext.ChangeNameCommand, RelativeSource={RelativeSource AncestorType=ListView, Mode=FindAncestor}}" | |||||
CommandParameter="{Binding IpAddress}" | |||||
Content="修改原料名称" | |||||
IsEnabled="{Binding IsEnable}"> | |||||
<Button.Background> | |||||
<ImageBrush ImageSource="/BPASmartClient.CustomResource;component/Image/系统名称.png" /> | |||||
</Button.Background> | |||||
</Button>--> | |||||
<TextBox | |||||
Grid.Column="4" | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding SlowAcceleration}" /> | |||||
<Grid Grid.Column="5"> | |||||
<TextBox | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding ServoManualSpeed}" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<TextBox | |||||
Grid.Column="6" | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding SiloUpperLimitWeight}" /> | |||||
<Grid Grid.Column="7"> | |||||
<TextBox | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding LowerLimitWeightOfSilo}" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<TextBox | |||||
Grid.Column="8" | |||||
Foreground="{Binding IsRedundant, Converter={StaticResource tabConvert}}" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding StirringSpeed}" /> | |||||
<Grid Grid.Column="9"> | |||||
<Button | |||||
Command="{Binding DataContext.RemoveCommand, RelativeSource={RelativeSource AncestorType=ItemsControl, Mode=FindAncestor}}" | |||||
CommandParameter="{Binding MaterialName}" | |||||
Content="删除" | |||||
FontSize="16" | |||||
Style="{StaticResource ControlButtonStyle}" /> | |||||
<Border | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" | |||||
Cursor="SizeWE" /> | |||||
</Grid> | |||||
<Border | |||||
Grid.ColumnSpan="10" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,1" /> | |||||
</Grid> | </Grid> | ||||
<DataTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="true"> | |||||
<Setter TargetName="gr" Property="Background" Value="#112AB2E7" /> | |||||
</Trigger> | |||||
</DataTemplate.Triggers> | |||||
</DataTemplate> | |||||
</ItemsControl.ItemTemplate> | |||||
</ItemsControl> | |||||
</ScrollViewer> | |||||
</Border> | |||||
</DataTemplate> | |||||
</ListView.ItemTemplate> | |||||
</ListView> | |||||
</Grid> | </Grid> | ||||
@@ -178,11 +178,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.PageLoad", "BPASma | |||||
EndProject | EndProject | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.CustomResource", "BPASmart.CustomResource\BPASmart.CustomResource.csproj", "{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}" | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.CustomResource", "BPASmart.CustomResource\BPASmart.CustomResource.csproj", "{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}" | ||||
EndProject | EndProject | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HK-Advertisement", "..\..\TEST\HK-Advertisement\HK-Advertisement.csproj", "{CE98BFD2-9D96-4AB4-A727-662BB341200C}" | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.MorkMOC", "BPASmartClient.MorkMOC\BPASmartClient.MorkMOC.csproj", "{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}" | |||||
EndProject | EndProject | ||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmartClient.MorkMOC", "BPASmartClient.MorkMOC\BPASmartClient.MorkMOC.csproj", "{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmartClient.SmallBatchingSystem", "BPASmartClient.SmallBatchingSystem\BPASmartClient.SmallBatchingSystem.csproj", "{BA588F22-87FB-4124-AF62-CA8DC492ED7D}" | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmartClient.SmallBatchingSystem", "BPASmartClient.SmallBatchingSystem\BPASmartClient.SmallBatchingSystem.csproj", "{BA588F22-87FB-4124-AF62-CA8DC492ED7D}" | |||||
EndProject | EndProject | ||||
Global | Global | ||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
@@ -1658,26 +1656,6 @@ Global | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x64.Build.0 = Release|Any CPU | {E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x64.Build.0 = Release|Any CPU | ||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.ActiveCfg = Release|Any CPU | {E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.ActiveCfg = Release|Any CPU | ||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.Build.0 = Release|Any CPU | {E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.Build.0 = Release|Any CPU | ||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM64.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM64.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM64.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM64.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x64.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x86.Build.0 = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | {D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.Build.0 = Debug|Any CPU | {D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.ActiveCfg = Debug|Any CPU | {D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.ActiveCfg = Debug|Any CPU | ||||
@@ -1799,9 +1777,9 @@ Global | |||||
{897F8379-3301-4CBE-9BCA-AF7FD2F963A9} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | {897F8379-3301-4CBE-9BCA-AF7FD2F963A9} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | ||||
{06F30619-AD37-4CA0-838F-0431867E0932} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | {06F30619-AD37-4CA0-838F-0431867E0932} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | ||||
{2DB084E8-B951-4D71-A203-FD0902EBA2C6} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | {2DB084E8-B951-4D71-A203-FD0902EBA2C6} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | ||||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | {E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | ||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2} = {9FB27073-61A0-4FE3-94DB-5FDDE062332F} | {D5081D7B-3EBB-42C7-8FB9-A889870D08C2} = {9FB27073-61A0-4FE3-94DB-5FDDE062332F} | ||||
{BA588F22-87FB-4124-AF62-CA8DC492ED7D} = {8712125E-14CD-4E1B-A1CE-4BDE03805942} | |||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(ExtensibilityGlobals) = postSolution | GlobalSection(ExtensibilityGlobals) = postSolution | ||||
SolutionGuid = {9AEC9B81-0222-4DE9-B642-D915C29222AC} | SolutionGuid = {9AEC9B81-0222-4DE9-B642-D915C29222AC} | ||||