冰箱设置根据配置文件显示
This commit is contained in:
parent
6fd35e569f
commit
17a6ddd0da
|
@ -59,7 +59,7 @@
|
||||||
<add key="ScanCodePortPath" value="COM8" />
|
<add key="ScanCodePortPath" value="COM8" />
|
||||||
|
|
||||||
|
|
||||||
<!--是否有冰箱抽屉0无1有-->
|
<!--是否有冰箱抽屉0无,1有一个,2两个-->
|
||||||
<add key="hasFridge" value="1"/>
|
<add key="hasFridge" value="1"/>
|
||||||
<!-- 冰箱的串口号 -->
|
<!-- 冰箱的串口号 -->
|
||||||
<add key="FridgePortPath" value="COM7" />
|
<add key="FridgePortPath" value="COM7" />
|
||||||
|
|
|
@ -233,8 +233,10 @@ namespace DM_Weight
|
||||||
containerRegistry.RegisterForNavigation<DebugWindow, DebugWindowViewModel>();
|
containerRegistry.RegisterForNavigation<DebugWindow, DebugWindowViewModel>();
|
||||||
//主设置页面
|
//主设置页面
|
||||||
containerRegistry.RegisterForNavigation<SettingMainWindow, SettingMainWindowViewModel>();
|
containerRegistry.RegisterForNavigation<SettingMainWindow, SettingMainWindowViewModel>();
|
||||||
//冰箱抽屉设置页面
|
//两个冰箱抽屉设置页面
|
||||||
containerRegistry.RegisterForNavigation<FridgeWindow, FridgeWindowViewModel>();
|
containerRegistry.RegisterForNavigation<FridgeWindow, FridgeWindowViewModel>();
|
||||||
|
//只有一个冰箱抽屉设置页面
|
||||||
|
containerRegistry.RegisterForNavigation<FridgeOnlyWindow, FridgeOnlyWindowViewModel>();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ using PreviewDemo;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using DM_Weight.Common;
|
using DM_Weight.Common;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace DM_Weight.Port
|
namespace DM_Weight.Port
|
||||||
{
|
{
|
||||||
|
@ -963,6 +964,37 @@ namespace DM_Weight.Port
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 药盒操作
|
||||||
|
/// <summary>
|
||||||
|
/// 打开药盒
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ColNo"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task OpenBox(int ColNo)
|
||||||
|
{
|
||||||
|
var vlock = 321;
|
||||||
|
decimal decolNO = (decimal)ColNo;
|
||||||
|
var channel = Convert.ToInt32((DrawerNo * 10 + Math.Ceiling(decolNO % 3)).ToString(), 16);
|
||||||
|
byte[] buffer = new byte[] { 0xaa, (byte)channel, 5,(byte)vlock, 0x00,0x00,0x00,0xee};
|
||||||
|
canBusSerial.Write(buffer, 0, 8);
|
||||||
|
await Task.Delay(TimeSpan.FromMilliseconds(20));
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 查询药盒状态
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="text"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<byte[]> GetBoxLockState(int ColNo)
|
||||||
|
{
|
||||||
|
decimal deColNo = (decimal)ColNo;
|
||||||
|
var channel = Convert.ToInt32((DrawerNo * 10 + Math.Ceiling(deColNo / 3)).ToString(), 16);
|
||||||
|
byte[] buffer = new byte[] {0xaa,(byte)channel,2,0,0,0,0,0xee };
|
||||||
|
canBusSerial.Write(buffer, 0, 8);
|
||||||
|
return await GetBufferByPort(canBusSerial, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
private string trim(string text)
|
private string trim(string text)
|
||||||
{
|
{
|
||||||
//此处使用了转义字符如:\',\",\\,分别表示单引号,双引号,反斜杠
|
//此处使用了转义字符如:\',\",\\,分别表示单引号,双引号,反斜杠
|
||||||
|
@ -1095,6 +1127,18 @@ namespace DM_Weight.Port
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 标签显示屏
|
||||||
|
//清屏
|
||||||
|
public void ClearContentMethod(int drawerNo,int colNo)
|
||||||
|
{
|
||||||
|
decimal deColNo = colNo;
|
||||||
|
var channel = drawerNo * 10 + Math.Ceiling(deColNo / 3);
|
||||||
|
var colNo2 = 321;
|
||||||
|
byte[] buffer = new byte[] { 0xaa };
|
||||||
|
canBusSerial.Write(buffer, 0, 8);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 回收箱操作
|
#region 回收箱操作
|
||||||
|
@ -1314,6 +1358,7 @@ namespace DM_Weight.Port
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 冰箱使能
|
/// 冰箱使能
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -1694,7 +1739,6 @@ namespace DM_Weight.Port
|
||||||
//FridgeOperate = false;
|
//FridgeOperate = false;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#endregion
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,224 @@
|
||||||
|
using DM_Weight.Common;
|
||||||
|
using DM_Weight.msg;
|
||||||
|
using DM_Weight.Port;
|
||||||
|
using DM_Weight.util;
|
||||||
|
using Prism.Commands;
|
||||||
|
using Prism.Events;
|
||||||
|
using Prism.Mvvm;
|
||||||
|
using Prism.Regions;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Xml;
|
||||||
|
|
||||||
|
namespace DM_Weight.ViewModels
|
||||||
|
{
|
||||||
|
public class FridgeOnlyWindowViewModel : BindableBase, IRegionMemberLifetime, INavigationAware
|
||||||
|
{
|
||||||
|
//温度区间
|
||||||
|
private string _temperatureRange = CommonClass.ReadAppSetting("temperatureRange").ToString();
|
||||||
|
public string TemperatureRange
|
||||||
|
{
|
||||||
|
get => _temperatureRange;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref _temperatureRange, value);
|
||||||
|
//更新配置文件中冰箱温度区间
|
||||||
|
CommonClass.SaveAppSetting("temperatureRange", _temperatureRange);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private float defaultValue = Convert.ToSingle(CommonClass.ReadAppSetting("temperatureValue"));
|
||||||
|
//温度值
|
||||||
|
private float _temperatureValue = Convert.ToSingle(CommonClass.ReadAppSetting("temperatureValue"));
|
||||||
|
public float TemperatureValue
|
||||||
|
{
|
||||||
|
get => _temperatureValue;
|
||||||
|
set => SetProperty(ref _temperatureValue, value);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 根据冰箱温度控制保存按钮是否可点击
|
||||||
|
/// </summary>
|
||||||
|
private bool _isInvalid;
|
||||||
|
public bool IsInvalid
|
||||||
|
{
|
||||||
|
get => _isInvalid;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref _isInvalid, value);
|
||||||
|
BtnIsEnable = !IsInvalid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 根据冰箱温度控制保存按钮是否可用
|
||||||
|
/// </summary>
|
||||||
|
private bool _btnIsEnable = true;
|
||||||
|
public bool BtnIsEnable
|
||||||
|
{
|
||||||
|
get => _btnIsEnable;
|
||||||
|
set => SetProperty(ref _btnIsEnable, value);
|
||||||
|
}
|
||||||
|
//冰箱状态:true关;false开
|
||||||
|
private bool _fridgeState;
|
||||||
|
public bool FridgeState
|
||||||
|
{
|
||||||
|
get => _fridgeState;
|
||||||
|
set => SetProperty(ref _fridgeState, value);
|
||||||
|
}
|
||||||
|
//报警状态:true关;false开
|
||||||
|
private bool _alarmState;
|
||||||
|
public bool AlarmState
|
||||||
|
{
|
||||||
|
get => _alarmState;
|
||||||
|
set => SetProperty(ref _alarmState, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int _defaultLoginMode;//1开0关
|
||||||
|
|
||||||
|
private int _defaultAlarmMode;//1开0关
|
||||||
|
|
||||||
|
private float retTemperature = Convert.ToSingle(ConfigurationManager.AppSettings["temperatureValue"]);
|
||||||
|
|
||||||
|
private PortUtil _portUtil;
|
||||||
|
IEventAggregator _eventAggregator;
|
||||||
|
public FridgeOnlyWindowViewModel(PortUtil portUtil, IEventAggregator eventAggregator)
|
||||||
|
{
|
||||||
|
_portUtil = portUtil;
|
||||||
|
_eventAggregator = eventAggregator;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 保存按钮
|
||||||
|
/// </summary>
|
||||||
|
public DelegateCommand SaveCommand { get => new DelegateCommand(SaveAction, () => !IsInvalid); }
|
||||||
|
|
||||||
|
public bool KeepAlive => false;
|
||||||
|
|
||||||
|
private async void SaveAction()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_portUtil.FridgeOperate = true;
|
||||||
|
|
||||||
|
//设置温度值验证不通过则直接返回不保存
|
||||||
|
//获取冰箱温度
|
||||||
|
//if (_fridgeState != _defaultLoginMode.Equals(1))
|
||||||
|
//{
|
||||||
|
// ConfigurationManager.RefreshSection("FridgeState");
|
||||||
|
//发送冰箱使能/失能指令
|
||||||
|
if (_fridgeState)
|
||||||
|
{
|
||||||
|
await _portUtil.FridgeOff(1);
|
||||||
|
Thread.Sleep(100);
|
||||||
|
CommonClass.SaveAppSetting("FridgeState", "0");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _portUtil.FridegOpen(1);
|
||||||
|
Thread.Sleep(100);
|
||||||
|
CommonClass.SaveAppSetting("FridgeState", "1");
|
||||||
|
}
|
||||||
|
//发送警报使能/失能指令
|
||||||
|
if (_alarmState)
|
||||||
|
{
|
||||||
|
await _portUtil.FridgeAlarmOff(1);
|
||||||
|
Thread.Sleep(100);
|
||||||
|
CommonClass.SaveAppSetting("AlarmState", "0");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _portUtil.FridgeAlarmOn(1);
|
||||||
|
Thread.Sleep(100);
|
||||||
|
CommonClass.SaveAppSetting("AlarmState", "1");
|
||||||
|
}
|
||||||
|
//设定冰箱1温度区间
|
||||||
|
string[] range = ConfigurationManager.AppSettings["temperatureRange"].Split('-');
|
||||||
|
string[] newRange = TemperatureRange.Split('-');
|
||||||
|
if (range.Length >= 2)
|
||||||
|
{
|
||||||
|
bool bMix = float.TryParse(range[0], out float Min);
|
||||||
|
bool bMax = float.TryParse(range[1], out float Max);
|
||||||
|
|
||||||
|
if (bMix && bMax)
|
||||||
|
{
|
||||||
|
if (Min != Convert.ToSingle(newRange[0]))
|
||||||
|
{
|
||||||
|
//设定冰箱温度最小值
|
||||||
|
await _portUtil.FridgeMinSetting(Convert.ToSingle(newRange[0]), 1);
|
||||||
|
Thread.Sleep(100);
|
||||||
|
}
|
||||||
|
if (Max != Convert.ToSingle(newRange[1]))
|
||||||
|
{
|
||||||
|
Thread.Sleep(100);
|
||||||
|
//设定冰箱温度最大值
|
||||||
|
await _portUtil.FridgeMaxSetting(Convert.ToSingle(newRange[1]), 1);
|
||||||
|
Thread.Sleep(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_portUtil.FridgeOperate = false;
|
||||||
|
AlertMsg alertMsg = new AlertMsg
|
||||||
|
{
|
||||||
|
Message = $"保存成功",
|
||||||
|
Type = MsgType.SUCCESS
|
||||||
|
};
|
||||||
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
AlertMsg alertMsg = new AlertMsg
|
||||||
|
{
|
||||||
|
Message = $"保存异常{ex.ToString}",
|
||||||
|
Type = MsgType.ERROR
|
||||||
|
};
|
||||||
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
||||||
|
_portUtil.FridgeOperate = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//手动实现调用配置的逻辑 规避修改配置文件后不起作用的问题
|
||||||
|
public int ReadAppSetting(string key)
|
||||||
|
{
|
||||||
|
string xPath = "/configuration/appSettings//add[@key='" + key + "']";
|
||||||
|
XmlDocument doc = new XmlDocument();
|
||||||
|
string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
|
||||||
|
doc.Load(exeFileName + ".dll.config");
|
||||||
|
XmlNode node = doc.SelectSingleNode(xPath);
|
||||||
|
return Convert.ToInt32(node.Attributes["value"].Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||||
|
{
|
||||||
|
_fridgeState = ReadAppSetting("FridgeState").Equals(0);
|
||||||
|
_defaultLoginMode = ReadAppSetting("FridgeState");
|
||||||
|
_defaultAlarmMode = ReadAppSetting("AlarmState");
|
||||||
|
_alarmState = ReadAppSetting("AlarmState").Equals(0);
|
||||||
|
|
||||||
|
GetTemperature();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsNavigationTarget(NavigationContext navigationContext)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnNavigatedFrom(NavigationContext navigationContext)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
//获取冰箱温度值,如有更改则保存更改
|
||||||
|
private async Task GetTemperature()
|
||||||
|
{
|
||||||
|
|
||||||
|
//float retT = await _portUtil.GetFridgeTemperature();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -46,8 +46,8 @@ namespace DM_Weight.ViewModels
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否有冰箱抽屉
|
/// 是否有冰箱抽屉
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private string hasFridge= ConfigurationManager.AppSettings["hasFridge"].ToString().Equals("1")? "Visible" : "Collapsed";
|
private string hasFridge = ConfigurationManager.AppSettings["hasFridge"].ToString().Equals("1") ? "Visible" : "Collapsed";
|
||||||
public string HasFridge { get => hasFridge; set => SetProperty(ref hasFridge,value); }
|
public string HasFridge { get => hasFridge; set => SetProperty(ref hasFridge, value); }
|
||||||
|
|
||||||
private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1");
|
private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1");
|
||||||
public bool MultiLogin
|
public bool MultiLogin
|
||||||
|
@ -128,6 +128,17 @@ namespace DM_Weight.ViewModels
|
||||||
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
|
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (value.PremissionPath.Equals("SettingMainWindow") || value.PremissionPath.Equals("SettingWindow"))
|
||||||
|
{
|
||||||
|
if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"])>0)
|
||||||
|
{
|
||||||
|
_regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_regionManager.RequestNavigate("ContentRegion", "SettingWindow");
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_regionManager.RequestNavigate("ContentRegion", value.PremissionPath);
|
_regionManager.RequestNavigate("ContentRegion", value.PremissionPath);
|
||||||
|
@ -300,9 +311,13 @@ namespace DM_Weight.ViewModels
|
||||||
byte[] data = null;
|
byte[] data = null;
|
||||||
float retT = await _portUtil.GetFridgeTemperature(1);
|
float retT = await _portUtil.GetFridgeTemperature(1);
|
||||||
Thread.Sleep(80);
|
Thread.Sleep(80);
|
||||||
float retTemp = await _portUtil.GetFridgeTemperature(2);
|
WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃;";
|
||||||
Thread.Sleep(80);
|
if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 1)
|
||||||
WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT - 1.5), 2)}℃;{retTemp}℃";
|
{
|
||||||
|
float retTemp = await _portUtil.GetFridgeTemperature(2);
|
||||||
|
Thread.Sleep(80);
|
||||||
|
WD += $"{retTemp}℃";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -443,7 +458,7 @@ namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
|
|
||||||
//指定时间内无人操作鼠标键盘则停止录像
|
//指定时间内无人操作鼠标键盘则停止录像
|
||||||
if (!_portUtil.Operate && CheckComputerFreeState.GetLastInputTime() > stopRecord)
|
if (!_portUtil.Operate && CheckComputerFreeState.GetLastInputTime() > stopRecord)
|
||||||
{
|
{
|
||||||
_chkFunction.HIKStopDVRRecord();
|
_chkFunction.HIKStopDVRRecord();
|
||||||
}
|
}
|
||||||
|
|
|
@ -396,18 +396,27 @@ namespace DM_Weight.ViewModels
|
||||||
PremissionName = "角色管理",
|
PremissionName = "角色管理",
|
||||||
PremissionPath = "RoleManagerWindow",
|
PremissionPath = "RoleManagerWindow",
|
||||||
};
|
};
|
||||||
//PremissionDm sysset3 = new PremissionDm
|
PremissionDm sysset3;
|
||||||
//{
|
if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 0)
|
||||||
// Id = 53,
|
|
||||||
// PremissionName = "设置",
|
|
||||||
// PremissionPath = "SettingWindow",
|
|
||||||
//};
|
|
||||||
PremissionDm sysset3 = new PremissionDm
|
|
||||||
{
|
{
|
||||||
Id = 53,
|
//有冰箱,需要冰箱设置(两个冰箱)
|
||||||
PremissionName = "设置",
|
sysset3 = new PremissionDm
|
||||||
PremissionPath = "SettingMainWindow",
|
{
|
||||||
};
|
Id = 53,
|
||||||
|
PremissionName = "设置",
|
||||||
|
PremissionPath = "SettingMainWindow",
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sysset3 = new PremissionDm
|
||||||
|
{
|
||||||
|
Id = 53,
|
||||||
|
PremissionName = "设置",
|
||||||
|
PremissionPath = "SettingWindow",
|
||||||
|
};
|
||||||
|
}
|
||||||
syssetChild.Add(sysset1);
|
syssetChild.Add(sysset1);
|
||||||
syssetChild.Add(sysset2);
|
syssetChild.Add(sysset2);
|
||||||
syssetChild.Add(sysset3);
|
syssetChild.Add(sysset3);
|
||||||
|
|
|
@ -8,20 +8,21 @@ using Prism.Regions;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Configuration;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DM_Weight.ViewModels
|
namespace DM_Weight.ViewModels
|
||||||
{
|
{
|
||||||
public class SettingMainWindowViewModel : BindableBase, INavigationAware,IRegionMemberLifetime
|
public class SettingMainWindowViewModel : BindableBase, INavigationAware, IRegionMemberLifetime
|
||||||
{
|
{
|
||||||
//设置页面数据集
|
//设置页面数据集
|
||||||
private ObservableCollection<SettingPage> _settingPages;
|
private ObservableCollection<SettingPage> _settingPages;
|
||||||
public ObservableCollection<SettingPage> SettingPages
|
public ObservableCollection<SettingPage> SettingPages
|
||||||
{
|
{
|
||||||
get => _settingPages;
|
get => _settingPages;
|
||||||
set=>SetProperty(ref _settingPages, value);
|
set => SetProperty(ref _settingPages, value);
|
||||||
}
|
}
|
||||||
//默认加载页面
|
//默认加载页面
|
||||||
string defaultView = string.Empty;
|
string defaultView = string.Empty;
|
||||||
|
@ -30,7 +31,7 @@ namespace DM_Weight.ViewModels
|
||||||
|
|
||||||
public SettingMainWindowViewModel(IRegionManager regionManager)
|
public SettingMainWindowViewModel(IRegionManager regionManager)
|
||||||
{
|
{
|
||||||
this._regionManager=regionManager;
|
this._regionManager = regionManager;
|
||||||
}
|
}
|
||||||
//选中事件
|
//选中事件
|
||||||
public DelegateCommand<string> NavigateCommand { get => new DelegateCommand<string>(navigateAction); }
|
public DelegateCommand<string> NavigateCommand { get => new DelegateCommand<string>(navigateAction); }
|
||||||
|
@ -39,7 +40,7 @@ namespace DM_Weight.ViewModels
|
||||||
|
|
||||||
private void navigateAction(string obj)
|
private void navigateAction(string obj)
|
||||||
{
|
{
|
||||||
if(obj==null||string.IsNullOrWhiteSpace(obj))
|
if (obj == null || string.IsNullOrWhiteSpace(obj))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -57,16 +58,23 @@ namespace DM_Weight.ViewModels
|
||||||
|
|
||||||
public void OnNavigatedTo(NavigationContext navigationContext)
|
public void OnNavigatedTo(NavigationContext navigationContext)
|
||||||
{
|
{
|
||||||
if(SettingPages is null|| SettingPages.Count<=0)
|
if (SettingPages is null || SettingPages.Count <= 0)
|
||||||
{
|
{
|
||||||
SettingPages=new ObservableCollection<SettingPage>(SqlSugarHelper.Db.Queryable<SettingPage>().ToList());
|
if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) <= 1)
|
||||||
if(SettingPages.Count>0)
|
|
||||||
{
|
{
|
||||||
if(string.IsNullOrEmpty(defaultView))
|
SettingPages = new ObservableCollection<SettingPage>(SqlSugarHelper.Db.Queryable<SettingPage>().Where(p=>p.Id!="2").ToList());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SettingPages = new ObservableCollection<SettingPage>(SqlSugarHelper.Db.Queryable<SettingPage>().Where(p => p.Id != "3").ToList());
|
||||||
|
}
|
||||||
|
if (SettingPages.Count > 0)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(defaultView))
|
||||||
{
|
{
|
||||||
defaultView = SettingPages[0].ViewName;
|
defaultView = SettingPages[0].ViewName;
|
||||||
}
|
}
|
||||||
_regionManager.RequestNavigate(PrismManager.SettingViewRegionName,defaultView);
|
_regionManager.RequestNavigate(PrismManager.SettingViewRegionName, defaultView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
<UserControl x:Class="DM_Weight.Views.FridgeOnlyWindow"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:DM_Weight.Views"
|
||||||
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||||
|
xmlns:rules="clr-namespace:DM_Weight.Common"
|
||||||
|
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||||
|
xmlns:behavior="clr-namespace:DM_Weight.Commons.ValidatRules;assembly=DM_Weight.Commons"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
d:DesignHeight="450" d:DesignWidth="800">
|
||||||
|
<i:Interaction.Behaviors>
|
||||||
|
<behavior:ValidationErrorMappingBehavior HasValidationError="{Binding IsInvalid, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
||||||
|
</i:Interaction.Behaviors>
|
||||||
|
<Grid Width="400">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
<ColumnDefinition Width="2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="1.2*"/>
|
||||||
|
<RowDefinition Height="2*"/>
|
||||||
|
<RowDefinition Height="2*"/>
|
||||||
|
<RowDefinition Height="2*"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<TextBlock Margin="6 0 0 0" Text="冰箱温度区间:" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
|
||||||
|
<TextBox Grid.Row="1"
|
||||||
|
Grid.Column="1"
|
||||||
|
materialDesign:HintAssist.Hint="温度区间2-8度以-分隔"
|
||||||
|
Margin="6 0 0 10"
|
||||||
|
Style="{StaticResource MaterialDesignOutlinedTextBox}">
|
||||||
|
<TextBox.Text>
|
||||||
|
<Binding Path="TemperatureRange" Delay="1000" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
|
||||||
|
<Binding.ValidationRules>
|
||||||
|
<rules:TemperatureRangeRule/>
|
||||||
|
</Binding.ValidationRules>
|
||||||
|
</Binding>
|
||||||
|
</TextBox.Text>
|
||||||
|
</TextBox>
|
||||||
|
<TextBlock Text="冰箱状态:" Margin="0 18 0 0" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
|
||||||
|
<ToggleButton Grid.Row="2" Grid.Column="1" Width="38" Height="38" Margin="6 18 0 0"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
x:Name="MaterialDesignFilledTextBoxEnabledComboBox"
|
||||||
|
Style="{StaticResource MaterialDesignActionToggleButton}"
|
||||||
|
IsChecked="{Binding FridgeState}"
|
||||||
|
ToolTip="冰箱状态"
|
||||||
|
Content="打开"
|
||||||
|
materialDesign:ToggleButtonAssist.OnContent="关闭" />
|
||||||
|
<TextBlock Text="报警状态:" Margin="0 18 0 0" Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="14" FontWeight="Bold" />
|
||||||
|
<ToggleButton Grid.Row="3" Grid.Column="1" Width="38" Height="38" Margin="6 18 0 0"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
Style="{StaticResource MaterialDesignActionToggleButton}"
|
||||||
|
IsChecked="{Binding AlarmState}"
|
||||||
|
ToolTip="报警状态"
|
||||||
|
Content="打开"
|
||||||
|
materialDesign:ToggleButtonAssist.OnContent="关闭" />
|
||||||
|
|
||||||
|
<Button Grid.Row="4" Grid.ColumnSpan="2" Content="保存" Command="{Binding SaveCommand}" IsEnabled="{Binding BtnIsEnable}" />
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
||||||
|
|
|
@ -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.Navigation;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
|
namespace DM_Weight.Views
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// FridgeOnlyWindow.xaml 的交互逻辑
|
||||||
|
/// </summary>
|
||||||
|
public partial class FridgeOnlyWindow : UserControl
|
||||||
|
{
|
||||||
|
public FridgeOnlyWindow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue