信号管理,io分配bug
This commit is contained in:
parent
516581840d
commit
8a2c73eabb
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -24,6 +24,7 @@ using Panel = Bricscad.Windows.Panel;
|
||||
using GlobalObject = SWS.Commons.GlobalObject;
|
||||
using SWS.Model;
|
||||
using SWS.Service;
|
||||
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
|
||||
|
||||
|
||||
[assembly: CommandClass(typeof(Commands))]
|
||||
@ -540,6 +541,8 @@ namespace SWS.CAD
|
||||
//选择的元素返回的属性信息
|
||||
var ResTagInfosByPixels = new Model.ec_objecttype();
|
||||
var listPropertys = new List<propertyModel>();
|
||||
var _objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
|
||||
var _iOModuleService = GlobalObject.container.Resolve<IOModuleService>();
|
||||
// 持续选择直到获取有效电缆
|
||||
bool isValidCable = false;
|
||||
|
||||
@ -564,7 +567,7 @@ namespace SWS.CAD
|
||||
{
|
||||
// 获取句柄(Handle 是字符串类型)
|
||||
var handId = (cable.Handle.ToString());
|
||||
var _objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
|
||||
_objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
|
||||
var res = await _objectTypeService.GetTagInfosByPixels(dwgFile.Id, handId);
|
||||
if (res != null)
|
||||
{
|
||||
@ -600,8 +603,20 @@ namespace SWS.CAD
|
||||
//Thread.Sleep(2000);
|
||||
if (isValidCable)
|
||||
{
|
||||
var _iOModuleService = GlobalObject.container.Resolve<IOModuleService>();
|
||||
var ResTagNumberById = await _objectTypeService.GetTagNumberById(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
|
||||
var ObjectTypePListBy = await _objectTypeService.GetObjectTypePListByIds(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
|
||||
string CableSpecification = ObjectTypePListBy.Where(q => q.PropertyName.Equals("电缆规格")).Select(s => s.EnumDataCode).FirstOrDefault();
|
||||
CableSpecification = CableSpecification.Substring(0, CableSpecification.Length - 1);
|
||||
var LatestSerialNumber = await _objectTypeService.GetLatestSerialNumber(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
|
||||
//获取位号的电缆属性,判断是否设置电缆规格
|
||||
var TagNumberBys = await _objectTypeService.GetEngineDataListByTags(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber);
|
||||
var TagNumberBy = TagNumberBys.Where(t => t.TagNumber.Equals(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber)).FirstOrDefault();
|
||||
if (string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
//if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
{
|
||||
System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); return;
|
||||
|
||||
}
|
||||
var ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
|
||||
//如果配置不存在
|
||||
if (ResCableEngID == null)
|
||||
@ -636,6 +651,7 @@ namespace SWS.CAD
|
||||
ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
@ -645,6 +661,7 @@ namespace SWS.CAD
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
@ -653,6 +670,20 @@ namespace SWS.CAD
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n - 1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
@ -663,12 +694,9 @@ namespace SWS.CAD
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1).ToString();
|
||||
Tag = (i + 1) + "-" + (j + 1).ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
a = ResTagInfosByPixels.tags.FirstOrDefault().TagNumber;
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
@ -705,6 +733,7 @@ namespace SWS.CAD
|
||||
ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
@ -714,6 +743,7 @@ namespace SWS.CAD
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
@ -722,6 +752,20 @@ namespace SWS.CAD
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n - 1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
@ -732,12 +776,9 @@ namespace SWS.CAD
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1).ToString();
|
||||
Tag = (i + 1) + "-" + (j + 1).ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
a = ResTagInfosByPixels.tags.FirstOrDefault().TagNumber;
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
@ -849,10 +890,286 @@ namespace SWS.CAD
|
||||
btnCableSinal.ToolTip = "信号预分配";
|
||||
btnCableSinal.Text = "信号预分配";
|
||||
btnCableSinal.ButtonStyle = RibbonButtonStyle.SmallWithText;
|
||||
btnCableSinal.CommandHandler = new DelegateCommand(x =>
|
||||
btnCableSinal.CommandHandler = new DelegateCommand(async x =>
|
||||
{
|
||||
if (GlobalObject.userInfo == null || GlobalObject.curProject == null)
|
||||
{
|
||||
MessageBox.Show("请先登录系统并选择项目!");
|
||||
return;
|
||||
}
|
||||
|
||||
//在SWS系统内打开且不是只读的图纸才可
|
||||
var dwgName = General.GetDwgName();
|
||||
var dwgFile = GlobalObject.ListDwgOpened.FirstOrDefault(a => a.Path == dwgName && a.IsReadOnly == false);
|
||||
if (dwgFile == null)
|
||||
{ return; }
|
||||
Document doc = Application.DocumentManager.MdiActiveDocument;
|
||||
Database db = doc.Database;
|
||||
Editor ed = doc.Editor;
|
||||
//选择的元素返回的属性信息
|
||||
var ResTagInfosByPixels = new Model.ec_objecttype();
|
||||
var listPropertys = new List<propertyModel>();
|
||||
var _objectTypeService = GlobalObject.container.Resolve<ObjectTypeService>();
|
||||
var _iOModuleService = GlobalObject.container.Resolve<IOModuleService>();
|
||||
// 持续选择直到获取有效电缆
|
||||
bool isValidCable = false;
|
||||
|
||||
try
|
||||
{
|
||||
#region 选择电缆
|
||||
// 创建选择选项(禁用回车确认)
|
||||
PromptEntityOptions options = new PromptEntityOptions("\n请单击选择电缆: ");
|
||||
options.AllowNone = false; // 禁止空选
|
||||
|
||||
// 执行选择(直接单击生效)
|
||||
PromptEntityResult resultEntity = ed.GetEntity(options);
|
||||
//WindowVisibility = System.Windows.Visibility.Hidden;
|
||||
|
||||
while (resultEntity.Status == PromptStatus.OK)
|
||||
{
|
||||
using (Transaction tr = db.TransactionManager.StartTransaction())
|
||||
{
|
||||
// 获取选中的电缆实体
|
||||
Entity cable = tr.GetObject(resultEntity.ObjectId, OpenMode.ForRead) as Entity;
|
||||
//if (cable != null&&cable.XData != null)
|
||||
if (cable != null)
|
||||
{
|
||||
// 获取句柄(Handle 是字符串类型)
|
||||
var handId = (cable.Handle.ToString());
|
||||
var res = await _objectTypeService.GetTagInfosByPixels(dwgFile.Id, handId);
|
||||
if (res != null)
|
||||
{
|
||||
if (res.Count == 1)
|
||||
{
|
||||
var item = res[0];
|
||||
var objTypeName = item.ObjectTypeName;
|
||||
if (objTypeName.Contains("电缆"))
|
||||
{
|
||||
ResTagInfosByPixels = item;
|
||||
isValidCable = true; // 校验通过
|
||||
ed.WriteMessage($"\n已选择电缆:{ResTagInfosByPixels.tags.FirstOrDefault().TagNumber}");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
tr.Commit();
|
||||
}
|
||||
if (isValidCable)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
ed.WriteMessage($"\n已选择电缆:");
|
||||
resultEntity = ed.GetEntity(options);
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
//Thread.Sleep(2000);
|
||||
if (isValidCable)
|
||||
{
|
||||
var ResTagNumberById = await _objectTypeService.GetTagNumberById(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
|
||||
var ObjectTypePListBy = await _objectTypeService.GetObjectTypePListByIds(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
|
||||
string CableSpecification = ObjectTypePListBy.Where(q => q.PropertyName.Equals("电缆规格")).Select(s => s.EnumDataCode).FirstOrDefault();
|
||||
CableSpecification = CableSpecification.Substring(0, CableSpecification.Length - 1);
|
||||
var LatestSerialNumber = await _objectTypeService.GetLatestSerialNumber(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
|
||||
//获取位号的电缆属性,判断是否设置电缆规格
|
||||
var TagNumberBys = await _objectTypeService.GetEngineDataListByTags(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber);
|
||||
var TagNumberBy = TagNumberBys.Where(t => t.TagNumber.Equals(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber)).FirstOrDefault();
|
||||
if(string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
//if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
{
|
||||
System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); return;
|
||||
|
||||
}
|
||||
var ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
|
||||
//如果配置不存在
|
||||
if (ResCableEngID == null)
|
||||
{
|
||||
listPropertys = new List<propertyModel>();
|
||||
System.Windows.MessageBoxResult result = System.Windows.MessageBox.Show($"是否为通讯母线?", "KunHengCAD", System.Windows.MessageBoxButton.OKCancel, System.Windows.MessageBoxImage.Question);
|
||||
if (result == System.Windows.MessageBoxResult.OK)
|
||||
{
|
||||
listPropertys = new List<propertyModel>();
|
||||
Dictionary<string, string> pulldownlist;
|
||||
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对数", GroupName = "基本参数", PropertyValue = "1", ControlTypeName = PROPERTYType.TextBox, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "每电缆对芯数", GroupName = "基本参数", PropertyValue = "2", ControlTypeName = PROPERTYType.TextBox, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对编号前缀", GroupName = "基本参数", PropertyValue = "Set", ControlTypeName = PROPERTYType.TextBox, });
|
||||
pulldownlist = new Dictionary<string, string>();
|
||||
pulldownlist.Add("数字", "数字");
|
||||
pulldownlist.Add("字母", "字母");
|
||||
pulldownlist.Add("电缆对序号", "电缆对序号");
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号类型", GroupName = "电芯参数", PropertyValue = "数字", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
|
||||
pulldownlist = new Dictionary<string, string>();
|
||||
pulldownlist.Add("按电缆编号", "按电缆编号");
|
||||
pulldownlist.Add("按电缆对编号", "按电缆对编号");
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号规则", GroupName = "电芯参数", PropertyValue = "按电缆对编号", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电芯编号前缀", GroupName = "电芯参数", PropertyValue = "C", ControlTypeName = PROPERTYType.TextBox, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "极性", GroupName = "电芯参数", PropertyValue = "+,-,s", ControlTypeName = PROPERTYType.TextBox, });
|
||||
//显示属性弹窗
|
||||
var ReslistPro = ShowPropertyMessage("新建" + ResTagInfosByPixels.tags.FirstOrDefault().TagNumber + "电缆配置", listPropertys);
|
||||
if (ReslistPro == null || ReslistPro.Count() == 0) return;
|
||||
ec_Cable ec_Cable = new ec_Cable();
|
||||
ec_Cable.CableClass = "homerun";//母线
|
||||
ec_Cable.Cable_Format = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault();
|
||||
ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
ec_CableSet.CableSetName = ReslistPro.Where(p => p.DisplayText.Equals("电缆对编号前缀")).Select(p => p.PropertyValue).FirstOrDefault() + (i + 1);
|
||||
ec_CableSet.CableSetSeq = i + 1;
|
||||
ec_CableSet.Wires = new List<ec_CableSetWire>();
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
string a = ReslistPro.Where(p => p.DisplayText.Equals("电芯编号前缀")).Select(p => p.PropertyValue).FirstOrDefault();//组成线号名的前缀
|
||||
string Tag = "";//线号名的中间部分
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n - 1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + j);
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + (j + 1).ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
}
|
||||
ec_Cable.Sets.Add(ec_CableSet);
|
||||
}
|
||||
var httpres = await _iOModuleService.CreateCableByProfile(ec_Cable);
|
||||
ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
|
||||
}
|
||||
else
|
||||
{
|
||||
listPropertys = new List<propertyModel>();
|
||||
Dictionary<string, string> pulldownlist;
|
||||
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对数", GroupName = "基本参数", PropertyValue = "10", ControlTypeName = PROPERTYType.TextBox, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "每电缆对芯数", GroupName = "基本参数", PropertyValue = "2", ControlTypeName = PROPERTYType.TextBox, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对编号前缀", GroupName = "基本参数", PropertyValue = "Set", ControlTypeName = PROPERTYType.TextBox, });
|
||||
pulldownlist = new Dictionary<string, string>();
|
||||
pulldownlist.Add("数字", "数字");
|
||||
pulldownlist.Add("字母", "字母");
|
||||
pulldownlist.Add("电缆对序号", "电缆对序号");
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号类型", GroupName = "电芯参数", PropertyValue = "数字", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
|
||||
pulldownlist = new Dictionary<string, string>();
|
||||
pulldownlist.Add("按电缆编号", "按电缆编号");
|
||||
pulldownlist.Add("按电缆对编号", "按电缆对编号");
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号规则", GroupName = "电芯参数", PropertyValue = "按电缆对编号", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电芯编号前缀", GroupName = "电芯参数", PropertyValue = "C", ControlTypeName = PROPERTYType.TextBox, });
|
||||
listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "极性", GroupName = "电芯参数", PropertyValue = "+,-,s", ControlTypeName = PROPERTYType.TextBox, });
|
||||
//显示属性弹窗
|
||||
var ReslistPro = ShowPropertyMessage("新建" + ResTagInfosByPixels.tags.FirstOrDefault().TagNumber + "电缆配置", listPropertys);
|
||||
if (ReslistPro == null || ReslistPro.Count() == 0) return;
|
||||
ec_Cable ec_Cable = new ec_Cable();
|
||||
ec_Cable.CableClass = "conventional";//常规电缆
|
||||
ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
ec_CableSet.CableSetName = ReslistPro.Where(p => p.DisplayText.Equals("电缆对编号前缀")).Select(p => p.PropertyValue).FirstOrDefault() + (i + 1);
|
||||
ec_CableSet.CableSetSeq = i + 1;
|
||||
ec_CableSet.Wires = new List<ec_CableSetWire>();
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
string a = ReslistPro.Where(p => p.DisplayText.Equals("电芯编号前缀")).Select(p => p.PropertyValue).FirstOrDefault();//组成线号名的前缀
|
||||
string Tag = "";//线号名的中间部分
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号"://所有的电缆对中的电芯一起编号
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n-1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i+1)+"-"+ n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号"://一个电缆对中线号按顺序编号,另一个电缆对中线号重新从1开始编号
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + j);
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i+1) + "-" + (j+1).ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
}
|
||||
ec_Cable.Sets.Add(ec_CableSet);
|
||||
}
|
||||
var httpres = await _iOModuleService.CreateCableByProfile(ec_Cable);
|
||||
ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
|
||||
}
|
||||
}
|
||||
if (ResCableEngID != null)
|
||||
{
|
||||
|
||||
IntPtr cadHandle = Bricscad.ApplicationServices.Application.MainWindow.Handle;
|
||||
//打开窗体
|
||||
var para = new Prism.Services.Dialogs.DialogParameters();
|
||||
//para.Add(GlobalObject.dialogPar.para1.ToString(), "6e2919e4-28cd-4fb6-9035-10b2ff0e30fb");
|
||||
para.Add(GlobalObject.dialogPar.info.ToString(), cadHandle);
|
||||
|
||||
para.Add(GlobalObject.dialogPar.para1.ToString(), ResCableEngID);
|
||||
para.Add(GlobalObject.dialogPar.para2.ToString(), ResTagInfosByPixels.tags.FirstOrDefault().TagNumber);
|
||||
var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
|
||||
_dialogService.ShowDialog(nameof(DialogSignalPredistribution), para, (RES) =>
|
||||
{
|
||||
@ -863,6 +1180,15 @@ namespace SWS.CAD
|
||||
else if (RES.Result == ButtonResult.No)
|
||||
{ }
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
ed.WriteMessage($"\n错误: {ex.Message}");
|
||||
}
|
||||
});
|
||||
btnCableSinal.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"CableSinal.png");
|
||||
btnCableSinal.Id = "信号预分配";
|
||||
|
9
newFront/c#前端/SWS.CAD/Event/ScrollToItemEvent.cs
Normal file
9
newFront/c#前端/SWS.CAD/Event/ScrollToItemEvent.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class ScrollToItemEvent: PubSubEvent<object>
|
||||
{
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
using IniParser;
|
||||
using Prism.Ioc;
|
||||
using SWS.Commons;
|
||||
using SWS.Model;
|
||||
using SWS.Service;
|
||||
using System;
|
||||
@ -59,7 +60,7 @@ namespace SWS.CAD
|
||||
|
||||
if (_dwgType == null)
|
||||
{
|
||||
var serv = GlobalObje.container.Resolve<DataItemService>();
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingType.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
@ -83,7 +84,7 @@ namespace SWS.CAD
|
||||
|
||||
if (_dwgMaterialRange == null)
|
||||
{
|
||||
var serv = GlobalObje.container.Resolve<DataItemService>();
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_MaterialRange.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
@ -107,7 +108,7 @@ namespace SWS.CAD
|
||||
|
||||
if (_dwgMaterialCensus == null)
|
||||
{
|
||||
var serv = GlobalObje.container.Resolve<DataItemService>();
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_MaterialCensus.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
@ -131,7 +132,7 @@ namespace SWS.CAD
|
||||
|
||||
if (_dwgStage == null)
|
||||
{
|
||||
var serv = GlobalObje.container.Resolve<DataItemService>();
|
||||
var serv =GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingStage.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
@ -155,7 +156,7 @@ namespace SWS.CAD
|
||||
|
||||
if (_dwgSystem == null)
|
||||
{
|
||||
var serv = GlobalObje.container.Resolve<DataItemService>();
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingSystem.ToString()));
|
||||
var res2 = res.Result;
|
||||
var res3 = DataItemDetailsToTree(res2);
|
||||
@ -243,11 +244,11 @@ namespace SWS.CAD
|
||||
para1,
|
||||
para2
|
||||
}
|
||||
public static IUnityContainer container;
|
||||
public static IContainerExtension _prismContainer;
|
||||
public static HttpClient client;
|
||||
public static loginRes userInfo;
|
||||
public static List<User> Users;
|
||||
//public static IUnityContainer container;
|
||||
//public static IContainerExtension _prismContainer;
|
||||
//public static HttpClient client;
|
||||
//public static loginRes userInfo;
|
||||
//public static List<User> Users;
|
||||
|
||||
public static bool isConfigIniCreateBySys = true;
|
||||
//public static string drawingFileId;
|
||||
@ -321,27 +322,27 @@ namespace SWS.CAD
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 根据ID获取用户名称
|
||||
/// <summary>
|
||||
/// 根据ID获取用户名称
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetUserNameById(string id)
|
||||
{
|
||||
if (string.IsNullOrEmpty(id))
|
||||
{ return ""; }
|
||||
var user = Users.FirstOrDefault(a => a.F_UserId == id || a.F_Account == id);
|
||||
if (user != null)
|
||||
{ return user.F_RealName; }
|
||||
else
|
||||
{
|
||||
return "";
|
||||
//user = GlobalObject.Users.FirstOrDefault(a => a.F_Account == id);
|
||||
//return user != null ? user.F_RealName : "";
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
//#region 根据ID获取用户名称
|
||||
///// <summary>
|
||||
///// 根据ID获取用户名称
|
||||
///// </summary>
|
||||
///// <param name="id"></param>
|
||||
///// <returns></returns>
|
||||
//public static string GetUserNameById(string id)
|
||||
//{
|
||||
// if (string.IsNullOrEmpty(id))
|
||||
// { return ""; }
|
||||
// var user = Users.FirstOrDefault(a => a.F_UserId == id || a.F_Account == id);
|
||||
// if (user != null)
|
||||
// { return user.F_RealName; }
|
||||
// else
|
||||
// {
|
||||
// return "";
|
||||
// //user = GlobalObject.Users.FirstOrDefault(a => a.F_Account == id);
|
||||
// //return user != null ? user.F_RealName : "";
|
||||
// }
|
||||
//}
|
||||
//#endregion
|
||||
|
||||
#region 查找子控件
|
||||
|
||||
|
@ -167,6 +167,7 @@
|
||||
<Compile Include="Event\propertyChangeEvent.cs" />
|
||||
<Compile Include="Event\IORelationEvent.cs" />
|
||||
<Compile Include="Event\tagChangeEvent.cs" />
|
||||
<Compile Include="Event\ScrollToItemEvent.cs" />
|
||||
<Compile Include="Event\treeNodeChangeEvent.cs" />
|
||||
<Compile Include="Event\SelectProjectEvent.cs" />
|
||||
<Compile Include="Helper\Converter\ComboBoxFilterConverter.cs" />
|
||||
|
@ -10,6 +10,7 @@ using System.Windows.Threading;
|
||||
using Bricscad.ApplicationServices;
|
||||
using Bricscad.EditorInput;
|
||||
using OfficeOpenXml;
|
||||
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
|
||||
using Prism.Events;
|
||||
using Prism.Ioc;
|
||||
using Prism.Services.Dialogs;
|
||||
@ -56,6 +57,8 @@ namespace SWS.CAD.ViewModels
|
||||
|
||||
RaisePropertyChanged(nameof(SelectedTreeNode));
|
||||
UpdateChannelInfos();
|
||||
var path = FindNodePath(PanelTreels, _SelectedTreeNode);
|
||||
_eventAggregator.GetEvent<ScrollToItemEvent>().Publish(path);
|
||||
}
|
||||
}
|
||||
|
||||
@ -279,7 +282,7 @@ namespace SWS.CAD.ViewModels
|
||||
{
|
||||
ChannelInfo c = new ChannelInfo();
|
||||
//电缆位号,电缆对,电缆线号,极性
|
||||
foreach (var Term in child.Terms)
|
||||
foreach (var Term in child.Terms.OrderBy(p => p.Term_Seq).ToList())
|
||||
{
|
||||
index++;
|
||||
c.Index.Add(index.ToString());
|
||||
@ -302,7 +305,8 @@ namespace SWS.CAD.ViewModels
|
||||
c.Polaritys.Add(new ec_WireTerminal());
|
||||
}
|
||||
}
|
||||
c.Terms.AddRange(child.Terms);
|
||||
//端子号
|
||||
c.Terms.AddRange(child.Terms.OrderBy(p => p.Term_Seq).ToList());
|
||||
//关联信号
|
||||
c.Signal = child.Signal;
|
||||
if (child.Signal != null)
|
||||
@ -523,6 +527,44 @@ namespace SWS.CAD.ViewModels
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 查找节点路径
|
||||
public List<string> FindNodePath(ObservableCollection<TreeModel> nodes, TreeModel targetNode)
|
||||
{
|
||||
List<string> path = new List<string>();
|
||||
FindNodePathRecursive(nodes, targetNode, path);
|
||||
return path;
|
||||
}
|
||||
|
||||
private bool FindNodePathRecursive(IEnumerable<TreeModel> nodes, TreeModel targetNode, List<string> currentPath)
|
||||
{
|
||||
foreach (var node in nodes)
|
||||
{
|
||||
currentPath.Add(node.Text);
|
||||
if (node == targetNode) return true; // 找到目标节点,返回True并结束搜索
|
||||
if (node.ChildNodes.Count > 0 && FindNodePathRecursive(node.ChildNodes, targetNode, currentPath))
|
||||
return true; // 在子节点中继续搜索并找到目标节点,返回True并结束搜索
|
||||
currentPath.RemoveAt(currentPath.Count - 1); // 回溯,尝试下一个兄弟节点或父节点的其他兄弟节点
|
||||
}
|
||||
return false; // 没有找到目标节点,返回False
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 通过id查找项
|
||||
private TreeModel FindTreeModelById(IEnumerable<TreeModel> TreeModels, string id)
|
||||
{
|
||||
foreach (var Tree in TreeModels)
|
||||
{
|
||||
if (Tree.ID == id)
|
||||
return Tree;
|
||||
|
||||
var foundInChildren = FindTreeModelById(Tree.ChildNodes, id);
|
||||
if (foundInChildren != null)
|
||||
return foundInChildren;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 树形结构右键点击事件
|
||||
public ICommand MouseRightCmd => new DelegateCommand(MouseRight_Click);
|
||||
@ -685,13 +727,14 @@ namespace SWS.CAD.ViewModels
|
||||
DataItemName = listPro.Where(p => p.DisplayText.Equals("位置名称")).Select(p => p.PropertyValue).FirstOrDefault(),
|
||||
OrderID = int.Parse(listPro.Where(p => p.DisplayText.Equals("排序号")).Select(p => p.PropertyValue).FirstOrDefault()),
|
||||
};
|
||||
var httpres = await _dataItemService.SaveDetailForm(ent);
|
||||
if (httpres != null)
|
||||
var httpres = await _dataItemService.SaveDetailForm(ent) as learunHttpRes<ec_dataitemdetail>;
|
||||
if (httpres.code != 200)
|
||||
{
|
||||
System.Windows.MessageBox.Show(httpres.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
System.Windows.MessageBox.Show(httpres.info.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
}
|
||||
PanelTreels.Clear();
|
||||
PanelTreels.AddRange(await _iOModuleService.GetPanelTree());
|
||||
SelectedTreeNode = FindNodeByNodeId(PanelTreels, httpres.data.DataItemID);
|
||||
}
|
||||
else if (RES.Result == ButtonResult.No)
|
||||
{ }
|
||||
@ -881,13 +924,15 @@ namespace SWS.CAD.ViewModels
|
||||
}
|
||||
#endregion
|
||||
|
||||
var httpres = await _iOModuleService.CreatePanelStripByProfile(e);
|
||||
if (httpres != null)
|
||||
var httpres = await _iOModuleService.CreatePanelStripByProfile(e) as learunHttpRes<ec_PanelStrip>;
|
||||
if (httpres.code != 200)
|
||||
{
|
||||
System.Windows.MessageBox.Show(httpres.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
System.Windows.MessageBox.Show(httpres.info.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
}
|
||||
PanelTreels.Clear();
|
||||
PanelTreels.AddRange(await _iOModuleService.GetPanelTree());
|
||||
SelectedTreeNode = FindTreeModelById(PanelTreels, httpres.data.StripID);
|
||||
|
||||
}
|
||||
else if (RES.Result == ButtonResult.No)
|
||||
{ }
|
||||
@ -940,13 +985,14 @@ namespace SWS.CAD.ViewModels
|
||||
DataItemName = listPro.Where(p => p.DisplayText.Equals("位置名称")).Select(p => p.PropertyValue).FirstOrDefault(),
|
||||
OrderID = int.Parse(listPro.Where(p => p.DisplayText.Equals("排序号")).Select(p => p.PropertyValue).FirstOrDefault()),
|
||||
};
|
||||
var httpres = await _dataItemService.SaveDetailForm(ent);
|
||||
if (httpres != null)
|
||||
var httpres = await _dataItemService.SaveDetailForm(ent) as learunHttpRes<ec_dataitemdetail>;
|
||||
if (httpres.code != 200)
|
||||
{
|
||||
System.Windows.MessageBox.Show(httpres.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
System.Windows.MessageBox.Show(httpres.info.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
}
|
||||
PanelTreels.Clear();
|
||||
PanelTreels.AddRange(await _iOModuleService.GetPanelTree());
|
||||
SelectedTreeNode = FindNodeByNodeId(PanelTreels, httpres.info);
|
||||
}
|
||||
else if (RES.Result == ButtonResult.No)
|
||||
{ }
|
||||
@ -974,6 +1020,7 @@ namespace SWS.CAD.ViewModels
|
||||
{
|
||||
if (RES.Result == ButtonResult.Yes)
|
||||
{
|
||||
var tempID = SelectedTreeNode.ID;
|
||||
var listPro = RES.Parameters.GetValue<ObservableCollection<propertyModel>>(GlobalObject.dialogPar.para1.ToString());
|
||||
|
||||
ec_PanelStrip ent = new ec_PanelStrip()
|
||||
@ -985,12 +1032,13 @@ namespace SWS.CAD.ViewModels
|
||||
StripID = StripIDValue,
|
||||
};
|
||||
var httpres = await _iOModuleService.SavePanelStrip(ent);
|
||||
if (httpres != null)
|
||||
if (httpres!= null)
|
||||
{
|
||||
System.Windows.MessageBox.Show(httpres.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
}
|
||||
PanelTreels.Clear();
|
||||
PanelTreels.AddRange(await _iOModuleService.GetPanelTree());
|
||||
SelectedTreeNode = FindNodeByNodeId(PanelTreels, tempID);
|
||||
}
|
||||
else if (RES.Result == ButtonResult.No)
|
||||
{ }
|
||||
@ -1017,7 +1065,15 @@ namespace SWS.CAD.ViewModels
|
||||
MessageBoxResult result = System.Windows.MessageBox.Show($"确定删除[{SelectedTreeNode.Text}]节点以及子节点吗", "KunHengCAD", MessageBoxButton.OKCancel, MessageBoxImage.Question);
|
||||
if (result == MessageBoxResult.OK)
|
||||
{
|
||||
var tempParentId = SelectedTreeNode.parentId;
|
||||
var httpres = await _iOModuleService.DeletePanelStrip(SelectedTreeNode.ID);
|
||||
if (httpres!=null)
|
||||
{
|
||||
System.Windows.MessageBox.Show(httpres.ToString(), "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
}
|
||||
PanelTreels.Clear();
|
||||
PanelTreels.AddRange(await _iOModuleService.GetPanelTree());
|
||||
SelectedTreeNode = FindTreeModelById(PanelTreels, tempParentId);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@ -1069,7 +1125,8 @@ namespace SWS.CAD.ViewModels
|
||||
//获取位号的电缆属性,判断是否设置电缆规格
|
||||
var TagNumberBys = await _objectTypeService.GetEngineDataListByTags(selectTagNumberOB.TagNumber);
|
||||
var TagNumberBy = TagNumberBys.Where(t => t.TagNumber.Equals(selectTagNumberOB.TagNumber)).FirstOrDefault();
|
||||
if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
if (string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
//if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
{
|
||||
System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
|
||||
@ -1108,6 +1165,7 @@ namespace SWS.CAD.ViewModels
|
||||
ec_Cable.EngineerDataID = selectTagNumberOB.EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
@ -1117,6 +1175,7 @@ namespace SWS.CAD.ViewModels
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
@ -1125,6 +1184,20 @@ namespace SWS.CAD.ViewModels
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n - 1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
@ -1135,12 +1208,9 @@ namespace SWS.CAD.ViewModels
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1).ToString();
|
||||
Tag = (i + 1) + "-" + (j + 1).ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
a = selectTagNumberOB.TagNumber;
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
@ -1177,6 +1247,7 @@ namespace SWS.CAD.ViewModels
|
||||
ec_Cable.EngineerDataID = selectTagNumberOB.EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
@ -1186,6 +1257,7 @@ namespace SWS.CAD.ViewModels
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
@ -1194,6 +1266,20 @@ namespace SWS.CAD.ViewModels
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n - 1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
@ -1204,12 +1290,9 @@ namespace SWS.CAD.ViewModels
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1).ToString();
|
||||
Tag = (i + 1) + "-" + (j + 1).ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
a = selectTagNumberOB.TagNumber;
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
@ -1502,11 +1585,12 @@ namespace SWS.CAD.ViewModels
|
||||
//获取位号的电缆属性,判断是否设置电缆规格
|
||||
var TagNumberBys = await _objectTypeService.GetEngineDataListByTags(resTagNumberListByPixels.TagNumber);
|
||||
var TagNumberBy = TagNumberBys.Where(t => t.TagNumber.Equals(resTagNumberListByPixels.TagNumber)).FirstOrDefault();
|
||||
if (string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
//if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
|
||||
//{
|
||||
// System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
{
|
||||
System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); return;
|
||||
|
||||
//}
|
||||
}
|
||||
//获取电缆的配置,没有则创建新配置
|
||||
var CableBy = await _iOModuleService.GetCableByEngID(resTagNumberListByPixels?.EngineDataID);
|
||||
if (CableBy == null)
|
||||
@ -1540,6 +1624,7 @@ namespace SWS.CAD.ViewModels
|
||||
ec_Cable.EngineerDataID = resTagNumberListByPixels.EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
@ -1549,6 +1634,7 @@ namespace SWS.CAD.ViewModels
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
@ -1557,6 +1643,20 @@ namespace SWS.CAD.ViewModels
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n - 1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
@ -1567,12 +1667,9 @@ namespace SWS.CAD.ViewModels
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1).ToString();
|
||||
Tag = (i + 1) + "-" + (j + 1).ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
a = resTagNumberListByPixels.TagNumber;
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
@ -1609,6 +1706,7 @@ namespace SWS.CAD.ViewModels
|
||||
ec_Cable.EngineerDataID = resTagNumberListByPixels.EngineDataID;
|
||||
ec_Cable.Sets = new List<ec_CableSet>();
|
||||
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
|
||||
int n = 0;
|
||||
for (int i = 0; i < CableSetCount; i++)
|
||||
{
|
||||
ec_CableSet ec_CableSet = new ec_CableSet();
|
||||
@ -1618,6 +1716,7 @@ namespace SWS.CAD.ViewModels
|
||||
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
|
||||
for (int j = 0; j < WireCount; j++)
|
||||
{
|
||||
n++;
|
||||
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
|
||||
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
|
||||
ec_CableSetWire.SetLevel = j + 1;
|
||||
@ -1626,6 +1725,20 @@ namespace SWS.CAD.ViewModels
|
||||
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
|
||||
{
|
||||
case "按电缆编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = n.ToString();
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
|
||||
{
|
||||
Tag = Tag + (char)('A' + (n - 1));
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1) + "-" + n.ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
|
||||
{
|
||||
Tag = (j + 1).ToString();
|
||||
@ -1636,12 +1749,9 @@ namespace SWS.CAD.ViewModels
|
||||
}
|
||||
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
|
||||
{
|
||||
Tag = (i + 1).ToString();
|
||||
Tag = (i + 1) + "-" + (j + 1).ToString();
|
||||
}
|
||||
break;
|
||||
case "按电缆对编号":
|
||||
a = resTagNumberListByPixels.TagNumber;
|
||||
break;
|
||||
}
|
||||
ec_CableSetWire.Wire_Tag = a + Tag;
|
||||
ec_CableSet.Wires.Add(ec_CableSetWire);
|
||||
@ -2055,7 +2165,7 @@ namespace SWS.CAD.ViewModels
|
||||
if (result == MessageBoxResult.OK)
|
||||
{
|
||||
var httpres = await _iOModuleService.DeletePanelChannel(SelectedChannelInfo.ChannelID);
|
||||
if (httpres!=null)
|
||||
if (httpres != null)
|
||||
{
|
||||
System.Windows.MessageBox.Show(httpres, "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning); return;
|
||||
|
||||
@ -2531,8 +2641,8 @@ namespace SWS.CAD.ViewModels
|
||||
ent.Signals = new List<SWS.Model.ec_Wire_Group>();
|
||||
ent.Signals.Add(SelectedChannelInfo.Signal);
|
||||
//解除信号
|
||||
var data = await _wireGroupService.SaveSignals(ent);
|
||||
if (data != null)
|
||||
var data = await _wireGroupService.SaveSignals(ent) as learunHttpRes<List<ec_Wire_Group>>;
|
||||
if (data.code ==200)
|
||||
{
|
||||
ChannelInfos.Clear();
|
||||
UpdateChannelInfos();
|
||||
|
@ -1,29 +1,208 @@
|
||||
|
||||
using Prism.Events;
|
||||
using Prism.Ioc;
|
||||
using Prism.Services.Dialogs;
|
||||
using SWS.CAD.Event;
|
||||
using SWS.CAD.ViewModels.myViewModelBase;
|
||||
using SWS.CAD.Views;
|
||||
using SWS.CAD.Views.CustomControl;
|
||||
using SWS.Commons;
|
||||
using SWS.Model;
|
||||
using SWS.Service;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using Telerik.Windows.Controls;
|
||||
using Unity;
|
||||
using DelegateCommand = Prism.Commands.DelegateCommand;
|
||||
|
||||
namespace SWS.CAD.ViewModels
|
||||
{
|
||||
public class DialogSignalPredistributionViewModel : DialogBase, IDialogAware
|
||||
{
|
||||
private string objectTypeId;
|
||||
#region 字段
|
||||
private ObservableCollection<Model.TreeModel> _PanelTreels = new ObservableCollection<Model.TreeModel>();
|
||||
/// <summary>
|
||||
/// 新建位号
|
||||
/// 页面左侧树形结构数据
|
||||
/// </summary>
|
||||
public ICommand Command_NewTagNumber { get; set; }
|
||||
public ObservableCollection<Model.TreeModel> PanelTreels
|
||||
{
|
||||
get { return _PanelTreels; }
|
||||
set { _PanelTreels = value; RaisePropertyChanged(nameof(PanelTreels)); }
|
||||
}
|
||||
|
||||
private Model.TreeModel _SelectedTreeNode;
|
||||
/// <summary>
|
||||
/// 当前选中的树形节点
|
||||
/// </summary>
|
||||
public Model.TreeModel SelectedTreeNode
|
||||
{
|
||||
get { return _SelectedTreeNode; }
|
||||
set
|
||||
{
|
||||
_SelectedTreeNode = value;
|
||||
RaisePropertyChanged(nameof(SelectedTreeNode));
|
||||
var path= FindNodePath(PanelTreels, _SelectedTreeNode);
|
||||
_eventAggregator.GetEvent<ScrollToItemEvent>().Publish(path);
|
||||
}
|
||||
}
|
||||
|
||||
private ObservableCollection<SignalPredistributionInfo> _SignalPredistributionInfos = new ObservableCollection<SignalPredistributionInfo>();
|
||||
/// <summary>
|
||||
/// 表格数据
|
||||
/// </summary>
|
||||
public ObservableCollection<SignalPredistributionInfo> SignalPredistributionInfos
|
||||
{
|
||||
get { return _SignalPredistributionInfos; }
|
||||
set
|
||||
{
|
||||
_SignalPredistributionInfos = value;
|
||||
RaisePropertyChanged(nameof(SignalPredistributionInfos));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private string _SelectedOption1;
|
||||
/// <summary>
|
||||
/// 是否通讯母线
|
||||
/// </summary>
|
||||
public string SelectedOption1
|
||||
{
|
||||
get { return _SelectedOption1; }
|
||||
set
|
||||
{
|
||||
_SelectedOption1 = value;
|
||||
RaisePropertyChanged(nameof(SelectedOption1));
|
||||
}
|
||||
}
|
||||
|
||||
private string _SelectedOption2;
|
||||
/// <summary>
|
||||
/// 选择的信号类型
|
||||
/// </summary>
|
||||
public string SelectedOption2
|
||||
{
|
||||
get { return _SelectedOption2; }
|
||||
set
|
||||
{
|
||||
_SelectedOption2 = value;
|
||||
SignalColumnName = value;
|
||||
RaisePropertyChanged(nameof(SelectedOption2));
|
||||
}
|
||||
}
|
||||
|
||||
private string _SignalColumnName;
|
||||
/// <summary>
|
||||
/// 信号类型列的列名
|
||||
/// </summary>
|
||||
public string SignalColumnName
|
||||
{
|
||||
get { return _SignalColumnName; }
|
||||
set
|
||||
{
|
||||
_SignalColumnName = value;
|
||||
RaisePropertyChanged(nameof(SignalColumnName));
|
||||
if (value.Equals("Digital"))
|
||||
{
|
||||
SignalTypeColumn = new ObservableCollection<string>() { "无公共端接线(断开报警NC)", "无公共端接线(闭合报警NO)", "带公共端接线(断开报警NC)", "带公共端接线(闭合报警NO)" };
|
||||
}
|
||||
else if (value.Equals("4-20mA"))
|
||||
{
|
||||
SignalTypeColumn = new ObservableCollection<string>() { "无源", "有源" };
|
||||
}
|
||||
else if (value.Equals("-10V-10V"))
|
||||
{
|
||||
SignalTypeColumn = new ObservableCollection<string>() { "无源", "有源" };
|
||||
}
|
||||
else if (value.Equals("PT100"))
|
||||
{
|
||||
SignalTypeColumn = new ObservableCollection<string>() { "量程100", "量程150", "量程200", "量程600" };
|
||||
}
|
||||
else if (value.Equals("Pulse"))
|
||||
{
|
||||
SignalTypeColumn = new ObservableCollection<string>() { "脉冲信号" };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private List<string> _CommunicationFormats = new List<string>() { "RS485", "RS482", "TCP/IP", "MQTT" };
|
||||
/// <summary>
|
||||
/// 通讯格式集合
|
||||
/// </summary>
|
||||
public List<string> CommunicationFormats
|
||||
{
|
||||
get { return _CommunicationFormats; }
|
||||
set
|
||||
{
|
||||
_CommunicationFormats = value;
|
||||
RaisePropertyChanged(nameof(CommunicationFormats));
|
||||
}
|
||||
}
|
||||
|
||||
private string _CommunicationFormat = "RS485";
|
||||
/// <summary>
|
||||
/// 通讯格式
|
||||
/// </summary>
|
||||
public string CommunicationFormat
|
||||
{
|
||||
get { return _CommunicationFormat; }
|
||||
set
|
||||
{
|
||||
_CommunicationFormat = value;
|
||||
RaisePropertyChanged(nameof(CommunicationFormat));
|
||||
}
|
||||
}
|
||||
|
||||
private ObservableCollection<string> _SignalTypeColumn;
|
||||
/// <summary>
|
||||
/// 信号类型列的下拉列表
|
||||
/// </summary>
|
||||
public ObservableCollection<string> SignalTypeColumn
|
||||
{
|
||||
get { return _SignalTypeColumn; }
|
||||
set
|
||||
{
|
||||
_SignalTypeColumn = value;
|
||||
RaisePropertyChanged(nameof(SignalTypeColumn));
|
||||
if (SignalPredistributionInfos != null)
|
||||
{
|
||||
foreach (var item in SignalPredistributionInfos)
|
||||
{
|
||||
item.SignalType = _SignalTypeColumn.FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private List<string> _InorOuts = new List<string>() { "输出", "输入" };
|
||||
/// <summary>
|
||||
/// 输入/输出列的下拉列表
|
||||
/// </summary>
|
||||
public List<string> InorOuts
|
||||
{
|
||||
get { return _InorOuts; }
|
||||
set
|
||||
{
|
||||
_InorOuts = value;
|
||||
RaisePropertyChanged(nameof(InorOuts));
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
IOModuleService _iOModuleService;
|
||||
IEventAggregator _eventAggregator;
|
||||
|
||||
public DialogSignalPredistributionViewModel()
|
||||
{
|
||||
title = "电缆信号预分配";
|
||||
_iOModuleService = GlobalObject.container.Resolve<IOModuleService>();
|
||||
_eventAggregator = GlobalObject.container.Resolve<IEventAggregator>();
|
||||
|
||||
}
|
||||
public string Title => "";
|
||||
|
||||
@ -39,14 +218,155 @@ namespace SWS.CAD.ViewModels
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void OnDialogOpened(IDialogParameters parameters)
|
||||
private ec_Cable CableBy;
|
||||
public async void OnDialogOpened(IDialogParameters parameters)
|
||||
{
|
||||
//listTags = parameters.GetValue<ObservableCollection<KeyValueModel>>(GlobalObject.dialogPar.info.ToString());
|
||||
objectTypeId = parameters.GetValue<string>(GlobalObject.dialogPar.id.ToString());
|
||||
title = $"电缆信号({parameters.GetValue<string>(GlobalObject.dialogPar.para2.ToString())})预分配";
|
||||
//树形结构数据
|
||||
PanelTreels.AddRange(await _iOModuleService.GetPanelTree());
|
||||
//电缆信息
|
||||
CableBy = parameters.GetValue<ec_Cable>(GlobalObject.dialogPar.para1.ToString());
|
||||
//是否母线
|
||||
if (CableBy.CableClass.Equals("homerun"))
|
||||
{
|
||||
SelectedOption1 = "是";
|
||||
}
|
||||
public override void ExecuteOKCommandAsync(object para)
|
||||
else if (CableBy.CableClass.Equals("conventional") || CableBy.CableClass.Equals(""))
|
||||
{
|
||||
SelectedOption1 = "否";
|
||||
|
||||
}
|
||||
//设置默认信号类型
|
||||
if (string.IsNullOrEmpty(CableBy.PreAssignIOType))
|
||||
{
|
||||
SelectedOption2 = "Digital";
|
||||
}
|
||||
else
|
||||
{
|
||||
SelectedOption2 = CableBy.PreAssignIOType;
|
||||
}
|
||||
|
||||
//设置表格数据
|
||||
int index = 0;
|
||||
foreach (var Set in CableBy.Sets)
|
||||
{
|
||||
SignalPredistributionInfo predistributionInfo = new SignalPredistributionInfo();
|
||||
predistributionInfo.CablePair = Set.CableSetName;
|
||||
foreach (var Wire in Set.Wires)
|
||||
{
|
||||
index++;
|
||||
predistributionInfo.Index.Add(index.ToString());
|
||||
predistributionInfo.CableWires.Add(Wire);
|
||||
predistributionInfo.Polaritys.Add(Wire);
|
||||
}
|
||||
if (string.IsNullOrEmpty(Set.PreAssignIOTypeDetail))
|
||||
{
|
||||
predistributionInfo.SignalType = SignalTypeColumn.FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
predistributionInfo.SignalType = Set.PreAssignIOTypeDetail;
|
||||
}
|
||||
predistributionInfo.ChineseDescription = Set.PreAssignGroup_Desc;
|
||||
predistributionInfo.EnglishDescription = Set.PreAssignGroup_Desc_EN;
|
||||
|
||||
if (string.IsNullOrEmpty(Set.PreAssignInOrOut))
|
||||
{
|
||||
predistributionInfo.InorOut = InorOuts.FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
predistributionInfo.InorOut = Set.PreAssignInOrOut;
|
||||
}
|
||||
predistributionInfo.SensorCode = Set.PreAssignSensorCode;
|
||||
|
||||
|
||||
SignalPredistributionInfos.Add(predistributionInfo);
|
||||
}
|
||||
//是否预关联,有则选中节点
|
||||
foreach (var Panel in PanelTreels)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Panel.ID))
|
||||
{
|
||||
if (Panel.ID.Equals(CableBy.PanelID))
|
||||
{
|
||||
SelectedTreeNode = Panel;
|
||||
break;
|
||||
}
|
||||
}
|
||||
foreach (var Child in Panel.ChildNodes)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Child.ID))
|
||||
{
|
||||
if (Child.ID.Equals(CableBy.PanelID))
|
||||
{
|
||||
SelectedTreeNode = Child;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
public override async void ExecuteOKCommandAsync(object para)
|
||||
{
|
||||
//创建SaveCable接口实例
|
||||
ec_Cable newCable = new ec_Cable();
|
||||
if (SelectedOption1.Equals("是"))
|
||||
{
|
||||
newCable.CableClass = "homerun";
|
||||
newCable.PreAssignIOType = CommunicationFormat;
|
||||
}
|
||||
else
|
||||
{
|
||||
newCable.CableClass = "conventional";
|
||||
newCable.PreAssignIOType = SelectedOption2;
|
||||
}
|
||||
|
||||
newCable.CableID = CableBy.CableID;
|
||||
newCable.EngineerDataID = CableBy.EngineerDataID;
|
||||
if (SelectedTreeNode != null)
|
||||
{
|
||||
newCable.PanelID = SelectedTreeNode.ID;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("请选择系统柜!", "KunHengCAD", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
newCable.UpdateUserID = GlobalObject.userInfo.userId;
|
||||
newCable.Sets = new List<ec_CableSet>();
|
||||
foreach (var CableBySet in CableBy.Sets)
|
||||
{
|
||||
ec_CableSet newCableSet = new ec_CableSet();
|
||||
newCableSet.CableSetID = CableBySet.CableSetID;
|
||||
newCableSet.CableSetName = CableBySet.CableSetName;
|
||||
newCableSet.CableSetSeq = CableBySet.CableSetSeq;
|
||||
newCableSet.IsConned = CableBySet.IsConned;
|
||||
newCableSet.PreAssignGroup_Desc = SignalPredistributionInfos.FirstOrDefault(s => s.CablePair.Equals(CableBySet.CableSetName)).ChineseDescription;
|
||||
newCableSet.PreAssignGroup_Desc_EN = SignalPredistributionInfos.FirstOrDefault(s => s.CablePair.Equals(CableBySet.CableSetName)).EnglishDescription;
|
||||
newCableSet.PreAssignIOTypeDetail = SignalPredistributionInfos.FirstOrDefault(s => s.CablePair.Equals(CableBySet.CableSetName)).SignalType;
|
||||
newCableSet.PreAssignInOrOut = SignalPredistributionInfos.FirstOrDefault(s => s.CablePair.Equals(CableBySet.CableSetName)).InorOut;
|
||||
newCableSet.PreAssignSensorCode = SignalPredistributionInfos.FirstOrDefault(s => s.CablePair.Equals(CableBySet.CableSetName)).SensorCode;
|
||||
newCableSet.Wires = new List<ec_CableSetWire>();
|
||||
foreach (var wire in CableBySet.Wires)
|
||||
{
|
||||
ec_CableSetWire newWire = new ec_CableSetWire();
|
||||
newWire.Polarity = wire.Polarity;
|
||||
newWire.SetLevel = 0;
|
||||
newWire.WireID = wire.WireID;
|
||||
newWire.Wire_Tag = wire.Wire_Tag;
|
||||
newWire.Wire_Color_ID = wire.Wire_Color_ID;
|
||||
newWire.PreAssignChannelTermNo = SignalPredistributionInfos.FirstOrDefault(s => s.CablePair.Equals(CableBySet.CableSetName)).CableWires.FirstOrDefault(c => c.Wire_Tag.Equals(wire.Wire_Tag)).PreAssignChannelTermNo;
|
||||
|
||||
newCableSet.Wires.Add(newWire);
|
||||
}
|
||||
newCable.Sets.Add(newCableSet);
|
||||
}
|
||||
|
||||
var httpres = await _iOModuleService.SaveCable(newCable);
|
||||
|
||||
IDialogParameters res = new Prism.Services.Dialogs.DialogParameters();
|
||||
//res.Add(GlobalObject.dialogPar.info.ToString(), TagNumber);
|
||||
@ -65,8 +385,199 @@ namespace SWS.CAD.ViewModels
|
||||
}
|
||||
this.Dispose();
|
||||
}
|
||||
#region 方法
|
||||
public ICommand ButtonCmd => new DelegateCommand(Button_Click);
|
||||
/// <summary>
|
||||
/// 页面左侧按钮
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public virtual async void Button_Click(object parameter)
|
||||
{
|
||||
#region 清除配置
|
||||
if (parameter.ToString().Equals("清除配置"))
|
||||
{
|
||||
|
||||
MessageBoxResult result = MessageBox.Show($"确定删除“{ CableBy.TagNumber}”电缆配置?", "KunHengCAD", MessageBoxButton.OKCancel, MessageBoxImage.Question);
|
||||
if (result == MessageBoxResult.OK)
|
||||
{
|
||||
var httpres = await _iOModuleService.DeleteCableProfile(CableBy.CableID);
|
||||
if (httpres == null)
|
||||
{
|
||||
RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
|
||||
this.Dispose();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 指定中英文
|
||||
if (parameter.ToString().Equals("指定中英文"))
|
||||
{
|
||||
//SelectedTreeNode = PanelTreels[2].ChildNodes.LastOrDefault();
|
||||
return;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
#region 查找节点路径
|
||||
public List<string> FindNodePath(ObservableCollection<TreeModel> nodes, TreeModel targetNode)
|
||||
{
|
||||
List<string> path = new List<string>();
|
||||
FindNodePathRecursive(nodes, targetNode, path);
|
||||
return path;
|
||||
}
|
||||
|
||||
private bool FindNodePathRecursive(IEnumerable<TreeModel> nodes, TreeModel targetNode, List<string> currentPath)
|
||||
{
|
||||
foreach (var node in nodes)
|
||||
{
|
||||
currentPath.Add(node.Text);
|
||||
if (node == targetNode) return true; // 找到目标节点,返回True并结束搜索
|
||||
if (node.ChildNodes.Count > 0 && FindNodePathRecursive(node.ChildNodes, targetNode, currentPath))
|
||||
return true; // 在子节点中继续搜索并找到目标节点,返回True并结束搜索
|
||||
currentPath.RemoveAt(currentPath.Count - 1); // 回溯,尝试下一个兄弟节点或父节点的其他兄弟节点
|
||||
}
|
||||
return false; // 没有找到目标节点,返回False
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
public class SignalPredistributionInfo : DialogBase
|
||||
{
|
||||
#region 字段
|
||||
private ObservableCollection<string> _Index = new ObservableCollection<string>();
|
||||
/// <summary>
|
||||
/// 序号集合
|
||||
/// </summary>
|
||||
public ObservableCollection<string> Index
|
||||
{
|
||||
get { return _Index; }
|
||||
set { _Index = value; }
|
||||
}
|
||||
|
||||
private string _CablePair;
|
||||
/// <summary>
|
||||
/// 电缆对
|
||||
/// </summary>
|
||||
public string CablePair
|
||||
{
|
||||
get { return _CablePair; }
|
||||
set { _CablePair = value; }
|
||||
}
|
||||
|
||||
private ObservableCollection<ec_CableSetWire> _CableWires = new ObservableCollection<ec_CableSetWire>();
|
||||
/// <summary>
|
||||
/// 电缆线号
|
||||
/// </summary>
|
||||
public ObservableCollection<ec_CableSetWire> CableWires
|
||||
{
|
||||
get { return _CableWires; }
|
||||
set { _CableWires = value; }
|
||||
}
|
||||
|
||||
private ObservableCollection<ec_CableSetWire> _Polaritys = new ObservableCollection<ec_CableSetWire>();
|
||||
/// <summary>
|
||||
/// 极性
|
||||
/// </summary>
|
||||
public ObservableCollection<ec_CableSetWire> Polaritys
|
||||
{
|
||||
get { return _Polaritys; }
|
||||
set
|
||||
{
|
||||
_Polaritys = value;
|
||||
RaisePropertyChanged(nameof(Polaritys));
|
||||
}
|
||||
}
|
||||
|
||||
private string _SignalType;
|
||||
/// <summary>
|
||||
/// 信号类型
|
||||
/// </summary>
|
||||
public string SignalType
|
||||
{
|
||||
get { return _SignalType; }
|
||||
set
|
||||
{
|
||||
_SignalType = value;
|
||||
RaisePropertyChanged(nameof(SignalType));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private string _ChineseDescription;
|
||||
/// <summary>
|
||||
/// 中文描述
|
||||
/// </summary>
|
||||
public string ChineseDescription
|
||||
{
|
||||
get { return _ChineseDescription; }
|
||||
set
|
||||
{
|
||||
_ChineseDescription = value;
|
||||
RaisePropertyChanged(nameof(ChineseDescription));
|
||||
}
|
||||
}
|
||||
|
||||
private string _EnglishDescription;
|
||||
/// <summary>
|
||||
/// 英文描述
|
||||
/// </summary>
|
||||
public string EnglishDescription
|
||||
{
|
||||
get { return _EnglishDescription; }
|
||||
set
|
||||
{
|
||||
_EnglishDescription = value;
|
||||
RaisePropertyChanged(nameof(EnglishDescription));
|
||||
}
|
||||
}
|
||||
|
||||
private string _InorOut;
|
||||
/// <summary>
|
||||
/// 输入/输出
|
||||
/// </summary>
|
||||
public string InorOut
|
||||
{
|
||||
get { return _InorOut; }
|
||||
set
|
||||
{
|
||||
_InorOut = value;
|
||||
RaisePropertyChanged(nameof(InorOut));
|
||||
}
|
||||
}
|
||||
|
||||
private string _SensorCode;
|
||||
/// <summary>
|
||||
/// 传感器编号
|
||||
/// </summary>
|
||||
public string SensorCode
|
||||
{
|
||||
get { return _SensorCode; }
|
||||
set
|
||||
{
|
||||
_SensorCode = value;
|
||||
RaisePropertyChanged(nameof(SensorCode));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private ObservableCollection<ec_PanelStripTerm> _Terms = new ObservableCollection<ec_PanelStripTerm>();
|
||||
/// <summary>
|
||||
/// 端子号集合
|
||||
/// </summary>
|
||||
public ObservableCollection<ec_PanelStripTerm> Terms
|
||||
{
|
||||
get { return _Terms; }
|
||||
set { _Terms = value; }
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -248,7 +248,6 @@
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="CellEditTemplate1">
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<ItemsControl ItemsSource="{Binding Index}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
@ -265,7 +264,6 @@
|
||||
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<DataTemplate x:Key="CellTemplate2">
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<ItemsControl ItemsSource="{Binding Terms}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
@ -283,7 +281,6 @@
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="CellEditTemplate2">
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<ItemsControl ItemsSource="{Binding Terms}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
@ -503,6 +500,7 @@
|
||||
Margin="5" telerik:StyleManager.Theme="Office_Blue" AllowDrop="True"
|
||||
AutoScrollToSelectedItem="True"
|
||||
IsVirtualizing="True"
|
||||
telerik:TextSearch.TextPath="Text"
|
||||
>
|
||||
<telerik:RadTreeView.ItemTemplate>
|
||||
<HierarchicalDataTemplate ItemsSource="{Binding ChildNodes}">
|
||||
|
@ -1,12 +1,17 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Event;
|
||||
using SWS.CAD.ViewModels;
|
||||
using SWS.Commons;
|
||||
using Telerik.Windows.Controls;
|
||||
using Unity;
|
||||
|
||||
namespace SWS.CAD.Views.Dialog
|
||||
{
|
||||
@ -15,10 +20,14 @@ namespace SWS.CAD.Views.Dialog
|
||||
/// </summary>
|
||||
public partial class DialogIODistribution : UserControl
|
||||
{
|
||||
IEventAggregator _eventAggregator;
|
||||
|
||||
public DialogIODistribution()
|
||||
{
|
||||
InitializeComponent();
|
||||
DataContext = new DialogIODistributionViewModel();
|
||||
_eventAggregator = GlobalObject.container.Resolve<IEventAggregator>();
|
||||
_eventAggregator.GetEvent<ScrollToItemEvent>().Subscribe(ScrollToSelectedItem, ThreadOption.UIThread, true);
|
||||
}
|
||||
|
||||
private void RadTreeView_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
|
||||
@ -83,5 +92,13 @@ namespace SWS.CAD.Views.Dialog
|
||||
return source as T;
|
||||
}
|
||||
|
||||
// 滚动到选中项
|
||||
private void ScrollToSelectedItem(object path)
|
||||
{
|
||||
var pathls = path as List<string>;
|
||||
var ph = string.Join("\\", pathls);
|
||||
treeView1.BringPathIntoView(ph);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -6,8 +6,9 @@
|
||||
xmlns:prism="http://prismlibrary.com/"
|
||||
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
|
||||
xmlns:local="clr-namespace:SWS.CAD.Views.Dialog"
|
||||
xmlns:cvt="clr-namespace:SWS.Commons.Helper.Converter;assembly=SWS.Commons"
|
||||
xmlns:CustomControl="clr-namespace:SWS.CustomControl;assembly=SWS.CustomControl"
|
||||
Width="1000" Height="800"
|
||||
Width="1000" Height="790"
|
||||
mc:Ignorable="d" >
|
||||
<prism:Dialog.WindowStyle>
|
||||
<Style TargetType="Window">
|
||||
@ -27,6 +28,220 @@
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/SWS.WPF;component/Style/CustomStyles.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<!-- 转换器 -->
|
||||
<cvt:RadioButtonValueConverter x:Key="RadioButtonValueCvt" />
|
||||
|
||||
<!-- 树结构展开按钮样式 -->
|
||||
<Style x:Key="ExpanderStyle" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="IsEnabled" Value="True" />
|
||||
<Setter Property="IsTabStop" Value="True" />
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type ToggleButton}">
|
||||
<Grid>
|
||||
<Grid x:Name="ButtonOver" Opacity="0" Margin="0,4,0,0"
|
||||
HorizontalAlignment="Right" VerticalAlignment="Top"
|
||||
Width="16" Height="16">
|
||||
<Rectangle Stroke="#FF027BA6" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" Width="Auto" Height="Auto"
|
||||
RadiusX="3" RadiusY="3">
|
||||
<Rectangle.Fill>
|
||||
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
|
||||
<GradientStop Color="#FF00BCFF" Offset="0" />
|
||||
<GradientStop Color="#FF027BA6" Offset="1" />
|
||||
<GradientStop Color="#FF00A5E0" Offset="0.5" />
|
||||
<GradientStop Color="#FF005674" Offset="0.501" />
|
||||
</LinearGradientBrush>
|
||||
</Rectangle.Fill>
|
||||
</Rectangle>
|
||||
<Rectangle x:Name="CollapsedVisualOver"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top"
|
||||
Width="2" Height="8" RadiusX="0" RadiusY="0"
|
||||
Fill="#FFFFFFFF" Margin="7,4,0,0" />
|
||||
<Rectangle RadiusX="0" RadiusY="0" Fill="#FFFFFFFF"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top"
|
||||
Width="8" Height="2" Margin="4,7,0,0" />
|
||||
</Grid>
|
||||
<Grid x:Name="Button" Margin="0,6,5.5,0" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Top" Width="10" Height="10">
|
||||
<Rectangle Stroke="#ffc7defc" HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch" Width="Auto" Height="Auto"
|
||||
RadiusX="1" RadiusY="1" Fill="#ffc7defc">
|
||||
</Rectangle>
|
||||
<Rectangle x:Name="CollapsedVisual" HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top" Width="2" Height="6" RadiusX="0"
|
||||
RadiusY="0" Fill="#FF3C6AA3" Margin="4,2,0,0" />
|
||||
<Rectangle RadiusX="0" RadiusY="0" Fill="#FF3C6AA3"
|
||||
HorizontalAlignment="Left" Margin="2,3.5,0,0"
|
||||
VerticalAlignment="Top" Width="6" Height="2" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Trigger.EnterActions>
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="CollapsedVisualOver" Storyboard.TargetProperty="(UIElement.Opacity)" To="0"/>
|
||||
<DoubleAnimation Storyboard.TargetName="CollapsedVisual" Storyboard.TargetProperty="(UIElement.Opacity)" To="0"/>
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.EnterActions>
|
||||
<Trigger.ExitActions>
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="CollapsedVisualOver" Storyboard.TargetProperty="(UIElement.Opacity)" To="1"/>
|
||||
<DoubleAnimation Storyboard.TargetName="CollapsedVisual" Storyboard.TargetProperty="(UIElement.Opacity)" To="1"/>
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.ExitActions>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- 树结构节点默认展开样式设置 -->
|
||||
<Style x:Key="ExpandedTreeViewItemStyle" TargetType="telerik:RadTreeViewItem">
|
||||
<Setter Property="IsExpanded" Value="True"/>
|
||||
</Style>
|
||||
|
||||
<!-- GridViewCell样式 -->
|
||||
<Style x:Key="CellTyle1" TargetType="telerik:GridViewCell" >
|
||||
<Setter Property="Background" Value="#F8F9F1" />
|
||||
</Style>
|
||||
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<DataTemplate x:Key="CellTemplate1">
|
||||
<ItemsControl ItemsSource="{Binding Index}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border BorderBrush="#cccccc" BorderThickness="0,0,0,1" Padding="0">
|
||||
<TextBlock Text="{Binding}" TextAlignment="Center" Padding="4,2" />
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="CellEditTemplate1">
|
||||
<ItemsControl ItemsSource="{Binding Index}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding}" TextAlignment="Center" Padding="4,2" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<DataTemplate x:Key="CellTemplate2">
|
||||
<ItemsControl ItemsSource="{Binding CableWires}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border BorderBrush="#cccccc" BorderThickness="0,0,0,1" Padding="0"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<TextBlock Text="{Binding PreAssignChannelTermNo}" TextAlignment="Center" Padding="4,2" />
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="CellEditTemplate2">
|
||||
<ItemsControl ItemsSource="{Binding CableWires}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding PreAssignChannelTermNo}" TextAlignment="Center" Padding="4,2" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<DataTemplate x:Key="CellTemplate3">
|
||||
<ItemsControl ItemsSource="{Binding CableWires}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border BorderBrush="#cccccc" BorderThickness="0,0,0,1" Padding="0">
|
||||
<TextBlock Text="{Binding Wire_Tag}" TextAlignment="Center" Padding="4,2" Width="auto"/>
|
||||
</Border>
|
||||
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="CellEditTemplate3">
|
||||
<ItemsControl ItemsSource="{Binding CableWires}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding Wire_Tag}" TextAlignment="Center" Padding="4,2" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
|
||||
<!-- 使用ItemsControl垂直显示多个值 -->
|
||||
<DataTemplate x:Key="CellTemplate4">
|
||||
<ItemsControl ItemsSource="{Binding Polaritys}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border BorderBrush="#cccccc" BorderThickness="0,0,0,1" Padding="0">
|
||||
<TextBlock Text="{Binding Polarity}" TextAlignment="Center" Padding="4,2" />
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="CellEditTemplate4">
|
||||
<ItemsControl ItemsSource="{Binding Polaritys}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding Polarity}" TextAlignment="Center" Padding="4,2" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</DataTemplate>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
<telerik:RadBusyIndicator BusyContent="{Binding BusyContent}" IsBusy="{Binding IsBusy}">
|
||||
@ -39,25 +254,46 @@
|
||||
Header="通讯信号">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="是否通讯母线" Margin="5"/>
|
||||
<RadioButton Content="是" GroupName="OptionGroup1" Margin="5"/>
|
||||
<RadioButton x:Name="RadioButton1" Content="否" GroupName="OptionGroup1" Margin="5"/>
|
||||
<RadioButton x:Name="RadioButton2"
|
||||
Content="是"
|
||||
GroupName="OptionGroup1"
|
||||
Margin="5"
|
||||
IsChecked="{Binding SelectedOption1 ,Converter={StaticResource RadioButtonValueCvt},ConverterParameter=是}"/>
|
||||
<RadioButton x:Name="RadioButton1"
|
||||
Content="否"
|
||||
GroupName="OptionGroup1"
|
||||
Margin="5"
|
||||
IsChecked="{Binding SelectedOption1 ,Converter={StaticResource RadioButtonValueCvt},ConverterParameter=否}"/>
|
||||
<TextBlock Text="通讯格式" Margin="5"/>
|
||||
<ComboBox />
|
||||
<ComboBox Width="100"
|
||||
IsEnabled="{Binding IsChecked,ElementName=RadioButton2}"
|
||||
ItemsSource="{Binding CommunicationFormats}"
|
||||
SelectedItem="{Binding CommunicationFormat }"/>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
<GroupBox Margin="5,0,5,5"
|
||||
VerticalAlignment="Bottom"
|
||||
Header="信号类型">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}" Content="Digital" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}" Content="4-20mA" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}" Content="-10V-10V" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}" Content="PT100" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}" Content="Pulse" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}"
|
||||
IsChecked="{Binding SelectedOption2 ,Converter={StaticResource RadioButtonValueCvt},ConverterParameter=Digital}"
|
||||
Content="Digital" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}"
|
||||
IsChecked="{Binding SelectedOption2 ,Converter={StaticResource RadioButtonValueCvt},ConverterParameter=4-20mA}"
|
||||
Content="4-20mA" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}"
|
||||
IsChecked="{Binding SelectedOption2 ,Converter={StaticResource RadioButtonValueCvt},ConverterParameter=-10V-10V}"
|
||||
Content="-10V-10V" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}"
|
||||
IsChecked="{Binding SelectedOption2 ,Converter={StaticResource RadioButtonValueCvt},ConverterParameter=PT100}"
|
||||
Content="PT100" GroupName="OptionGroup2" Margin="5"/>
|
||||
<RadioButton IsEnabled="{Binding IsChecked,ElementName=RadioButton1}"
|
||||
IsChecked="{Binding SelectedOption2 ,Converter={StaticResource RadioButtonValueCvt},ConverterParameter=Pulse}"
|
||||
Content="Pulse" GroupName="OptionGroup2" Margin="5"/>
|
||||
</StackPanel>
|
||||
</GroupBox>
|
||||
</StackPanel>
|
||||
<GroupBox Margin="5,0,5,5"
|
||||
<GroupBox Margin="5,0,5,0"
|
||||
Grid.Row="2"
|
||||
VerticalAlignment="Bottom"
|
||||
Header="电缆配置信息">
|
||||
@ -67,23 +303,26 @@
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<Border BorderThickness="0 0 0 1" Margin="10,0,0,0">
|
||||
<TextBlock Text="选择系统柜" Foreground="Black" />
|
||||
<Border BorderThickness="0 0 0 1" Margin="0,0,0,0">
|
||||
<Label Height="30" Content="选择系统柜" Foreground="Black" VerticalContentAlignment="Bottom"/>
|
||||
</Border>
|
||||
|
||||
<!-- 左侧树形结构 -->
|
||||
<Border>
|
||||
<telerik:RadTreeView x:Name="treeView1"
|
||||
Height="660"
|
||||
Height="600"
|
||||
Width="200"
|
||||
Background="White"
|
||||
IsLineEnabled="True"
|
||||
ItemContainerStyle="{StaticResource ExpandedTreeViewItemStyle}"
|
||||
ExpanderStyle="{StaticResource ExpanderStyle}"
|
||||
ItemsSource="{Binding PanelTreels}"
|
||||
SelectedItem="{Binding SelectedTreeNode,Mode=TwoWay}"
|
||||
Margin="5"
|
||||
telerik:StyleManager.Theme="Office_Blue"
|
||||
AllowDrop="True"
|
||||
AutoScrollToSelectedItem="True"
|
||||
IsVirtualizing="True"
|
||||
telerik:TextSearch.TextPath="Text"
|
||||
>
|
||||
<telerik:RadTreeView.ItemTemplate>
|
||||
<HierarchicalDataTemplate ItemsSource="{Binding ChildNodes}">
|
||||
@ -109,8 +348,106 @@
|
||||
</telerik:RadTreeView>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
<!-- 数据表格 -->
|
||||
<Grid Grid.Column="1">
|
||||
<telerik:RadGridView x:Name="RadGridView1" SelectionMode="Single" Width="auto" Height="630"
|
||||
AutoGenerateColumns="False" IsFilteringAllowed="False" Background="#a0a0a0"
|
||||
IsReadOnly="False" RowIndicatorVisibility="Collapsed"
|
||||
ShowGroupPanel="False" telerik:StyleManager.Theme="Office_Blue"
|
||||
ItemsSource="{Binding SignalPredistributionInfos}" SelectedItem="{Binding SelectedChannelInfo, Mode=TwoWay}"
|
||||
>
|
||||
<telerik:RadGridView.Columns>
|
||||
<telerik:GridViewDataColumn Header="序号" CellTemplate="{StaticResource CellTemplate1}" CellStyle="{StaticResource CellTyle1}" IsReadOnly="True"/>
|
||||
|
||||
<telerik:GridViewDataColumn Header="电缆对" DataMemberBinding="{Binding CablePair}"/>
|
||||
<telerik:GridViewDataColumn Header="电缆线芯" CellTemplate="{StaticResource CellTemplate3}" CellEditTemplate="{StaticResource CellEditTemplate3}"/>
|
||||
<telerik:GridViewDataColumn Header="极性" CellTemplate="{StaticResource CellTemplate4}" CellEditTemplate="{StaticResource CellEditTemplate4}"/>
|
||||
<telerik:GridViewComboBoxColumn Header="{Binding SignalColumnName,Mode=TwoWay}"
|
||||
IsVisible="{Binding IsChecked,ElementName=RadioButton1}"
|
||||
ItemsSource="{Binding DataContext.SignalTypeColumn, RelativeSource={RelativeSource AncestorType={x:Type telerik:RadGridView}}}"
|
||||
DataMemberBinding="{Binding SignalType}"
|
||||
Width="120">
|
||||
<telerik:GridViewComboBoxColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding SignalType}"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
ToolTip="{Binding SignalType}"/>
|
||||
</DataTemplate>
|
||||
</telerik:GridViewComboBoxColumn.CellTemplate>
|
||||
</telerik:GridViewComboBoxColumn>
|
||||
<telerik:GridViewDataColumn Header="中文描述" DataMemberBinding="{Binding ChineseDescription}" Width="120">
|
||||
<telerik:GridViewDataColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding ChineseDescription}"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
ToolTip="{Binding ChineseDescription}"/>
|
||||
</DataTemplate>
|
||||
</telerik:GridViewDataColumn.CellTemplate>
|
||||
</telerik:GridViewDataColumn>
|
||||
<telerik:GridViewDataColumn Header="英文描述" DataMemberBinding="{Binding EnglishDescription}" Width="120">
|
||||
<telerik:GridViewDataColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding EnglishDescription}"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
ToolTip="{Binding EnglishDescription}"/>
|
||||
</DataTemplate>
|
||||
</telerik:GridViewDataColumn.CellTemplate>
|
||||
</telerik:GridViewDataColumn>
|
||||
<telerik:GridViewComboBoxColumn Header="输入/输出"
|
||||
ItemsSource="{Binding DataContext.InorOuts, RelativeSource={RelativeSource AncestorType={x:Type telerik:RadGridView}}}"
|
||||
DataMemberBinding="{Binding InorOut}"
|
||||
Width="60">
|
||||
|
||||
</telerik:GridViewComboBoxColumn>
|
||||
<telerik:GridViewDataColumn Header="传感器编号" DataMemberBinding="{Binding EnglishDescription}" Width="auto">
|
||||
<telerik:GridViewDataColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding SensorCode}"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
ToolTip="{Binding SensorCode}"/>
|
||||
</DataTemplate>
|
||||
</telerik:GridViewDataColumn.CellTemplate>
|
||||
</telerik:GridViewDataColumn>
|
||||
<telerik:GridViewDataColumn Header="端子号" Width="*" CellTemplate="{StaticResource CellTemplate2}" CellEditTemplate="{StaticResource CellEditTemplate2}"/>
|
||||
</telerik:RadGridView.Columns>
|
||||
</telerik:RadGridView>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<Grid>
|
||||
<StackPanel Margin="5" Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<telerik:RadButton Margin="0,0,20,0"
|
||||
Width="100"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource sysBtn4}"
|
||||
Command="{Binding ButtonCmd}"
|
||||
CommandParameter="清除配置"
|
||||
Content="清除配置" />
|
||||
<telerik:RadButton Margin="0,0,0,0"
|
||||
Width="100"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource sysBtn2}"
|
||||
Command="{Binding ButtonCmd}"
|
||||
CommandParameter="指定中英文"
|
||||
Content="指定中英文" />
|
||||
</StackPanel>
|
||||
<StackPanel Margin="5" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<telerik:RadButton Margin="0,0,20,0"
|
||||
Width="100"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource sysBtn}"
|
||||
Command="{Binding OKCommand}"
|
||||
CommandParameter="确定"
|
||||
Content="确定" />
|
||||
<telerik:RadButton Margin="0,0,0,0"
|
||||
Width="100"
|
||||
HorizontalAlignment="Right"
|
||||
Style="{StaticResource sysBtn2}"
|
||||
Command="{Binding CloseCommand}"
|
||||
CommandParameter="取消"
|
||||
Content="取消" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</telerik:RadBusyIndicator>
|
||||
</UserControl>
|
||||
|
@ -12,6 +12,13 @@ using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using System.Windows.Threading;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Event;
|
||||
using SWS.Commons;
|
||||
using SWS.Model;
|
||||
using Telerik.Windows.Controls;
|
||||
using Unity;
|
||||
|
||||
namespace SWS.CAD.Views.Dialog
|
||||
{
|
||||
@ -20,9 +27,23 @@ namespace SWS.CAD.Views.Dialog
|
||||
/// </summary>
|
||||
public partial class DialogSignalPredistribution : UserControl
|
||||
{
|
||||
IEventAggregator _eventAggregator;
|
||||
|
||||
public DialogSignalPredistribution()
|
||||
{
|
||||
InitializeComponent();
|
||||
_eventAggregator = GlobalObject.container.Resolve<IEventAggregator>();
|
||||
_eventAggregator.GetEvent<ScrollToItemEvent>().Subscribe(ScrollToSelectedItem, ThreadOption.UIThread, true);
|
||||
}
|
||||
|
||||
// 滚动到选中项
|
||||
private void ScrollToSelectedItem(object path)
|
||||
{
|
||||
var pathls = path as List<string>;
|
||||
var ph = string.Join("\\", pathls);
|
||||
treeView1.BringPathIntoView(ph);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -84,6 +84,7 @@ namespace SWS.Commons
|
||||
public static List<TreeModel> designTree = new List<TreeModel>();
|
||||
#endregion
|
||||
|
||||
|
||||
public enum DBConst
|
||||
{
|
||||
/// <summary>
|
||||
|
@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using SWS.Model;
|
||||
|
||||
namespace SWS.Commons.Helper.Converter
|
||||
{
|
||||
public class RadioButtonValueConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is string isChecked)
|
||||
{
|
||||
if (isChecked.Equals(parameter.ToString()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is bool isChecked)
|
||||
{
|
||||
return parameter.ToString();
|
||||
}
|
||||
return parameter.ToString();
|
||||
}
|
||||
}
|
||||
}
|
@ -106,6 +106,7 @@
|
||||
<Compile Include="GlobalObject.cs" />
|
||||
<Compile Include="Helper\Converter\CollectionToStringConverter.cs" />
|
||||
<Compile Include="Helper\Converter\TimeSpanToColourValueConverter.cs" />
|
||||
<Compile Include="Helper\Converter\RadioButtonValueConverter.cs" />
|
||||
<Compile Include="Helper\Converter\TimeSpanValueConverter.cs" />
|
||||
<Compile Include="Helper\Converter\RadGridViewRowToBoolConverter.cs" />
|
||||
<Compile Include="Helper\Converter\ColumnValueConverter.cs" />
|
||||
|
@ -50,16 +50,16 @@ namespace SWS.Service
|
||||
public async Task<object> SaveDetailForm(ec_dataitemdetail entity)
|
||||
{
|
||||
var res = await this.PostBodyAsync<ec_dataitemdetail, ec_dataitemdetail>($"DataItemApi/SaveDetailForm?ProjectId={GlobalObject.curProject?.ProjectId}", entity);
|
||||
if (res.code == 200)
|
||||
{
|
||||
//return res.info;
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
return res.info; // 返回错误信息
|
||||
}
|
||||
|
||||
//if (res.code == 200)
|
||||
//{
|
||||
// //return res.info;
|
||||
// return null;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// return res.info; // 返回错误信息
|
||||
//}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -139,16 +139,16 @@ namespace SWS.Service
|
||||
public async Task<object> CreatePanelStripByProfile(ec_PanelStrip entity)
|
||||
{
|
||||
var res = await this.PostBodyAsync<ec_PanelStrip, ec_PanelStrip>($"IOModuleApi/CreatePanelStripByProfile?projId={GlobalObject.curProject?.ProjectId}", entity);
|
||||
if (res.code == 200)
|
||||
{
|
||||
//return res.info;
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
return res.info; // 返回错误信息
|
||||
}
|
||||
|
||||
//if (res.code == 200)
|
||||
//{
|
||||
// //return res.info;
|
||||
// return null;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// return res.info; // 返回错误信息
|
||||
//}
|
||||
return res;
|
||||
}
|
||||
|
||||
public async Task<string> DeletePanel(string PanelID)
|
||||
|
@ -423,6 +423,10 @@ namespace SWS.WPF.ViewModels
|
||||
//DateTime startTime = DateTime.Now;
|
||||
//设置信号源
|
||||
signals = await _wireGroupService.GetSignals(GlobalObject.curProject.ProjectId, false);
|
||||
if (signals == null)
|
||||
{
|
||||
signals = new List<ec_Wire_Group>();
|
||||
}
|
||||
//TimeSpan duration = DateTime.Now - startTime;
|
||||
//System.Windows.MessageBox.Show($"Time taken: {duration.Seconds} milliseconds");
|
||||
count = signals.Count().ToString();
|
||||
|
Loading…
x
Reference in New Issue
Block a user