This commit is contained in:
chenjinbu 2025-10-09 17:52:17 +08:00
commit 38e5331d09
58 changed files with 1643 additions and 767 deletions

File diff suppressed because it is too large Load Diff

View File

@ -631,10 +631,17 @@ namespace Learun.Application.Web.AppApi
//每个位号的属性信息 //每个位号的属性信息
foreach (var tag in objectType.tags) foreach (var tag in objectType.tags)
{ {
if (userDict.TryGetValue(tag.CreateUserID, out string createUserName)) if (!string.IsNullOrEmpty(tag.CreateUserID))
{ {
tag.CreateUserName = createUserName;// allUser.FirstOrDefault(x => x.F_UserId == item.CreateUserID)?.F_RealName; if (userDict.TryGetValue(tag.CreateUserID, out string createUserName))
{
tag.CreateUserName = createUserName;// allUser.FirstOrDefault(x => x.F_UserId == item.CreateUserID)?.F_RealName;
}
}
else
{
tag.CreateUserName = string.Empty;
} }
tag.EngineDataProperty = tagPropDictByTag[tag.EngineDataID];// tagPropAll.Where(x => x.EngineDataID == tag.EngineDataID).ToList(); tag.EngineDataProperty = tagPropDictByTag[tag.EngineDataID];// tagPropAll.Where(x => x.EngineDataID == tag.EngineDataID).ToList();

View File

@ -61,11 +61,17 @@ namespace Learun.Application.Web.AppApi
{ {
return Fail("项目数据字典中,没有找到【肋位号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉 return Fail("项目数据字典中,没有找到【肋位号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉
} }
ec_dataitemBLL ec_DataitemBLL = new ec_dataitemBLL();
var roomLists = ec_DataitemBLL.GetDetailList("RoomNo", "", ProjectId, false);
if (roomLists == null)
{
return Fail("项目数据字典中,没有找到【房间号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉
}
#endregion #endregion
var pointsOnDwg = SqlSugarHelper.Db.Queryable<ec_enginedata_pixelEntity>().AS(pixelTbName). var pointsOnDwg = SqlSugarHelper.Db.Queryable<ec_enginedata_pixelEntity>().AS(pixelTbName).
Where(x => x.DrawingFileID == drawingId).ToList(); Where(x => x.DrawingFileID == drawingId && x.DeleteFlg==0).ToList();
var pointTags = SqlSugarHelper.Db.Queryable<ec_enginedataEntity>().AS(tagTbName). var pointTags = SqlSugarHelper.Db.Queryable<ec_enginedataEntity>().AS(tagTbName).
Where(x => pointsOnDwg.Select(y => y.EngineDataID).Distinct().Contains(x.EngineDataID) Where(x => pointsOnDwg.Select(y => y.EngineDataID).Distinct().Contains(x.EngineDataID)
&& x.ObjectTypeID == pointType.ObjectTypeID).ToList(); && x.ObjectTypeID == pointType.ObjectTypeID).ToList();
@ -85,10 +91,17 @@ namespace Learun.Application.Web.AppApi
{ {
Prop_Frame = Prop_Frame.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN Prop_Frame = Prop_Frame.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN
}
var Prop_Room = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_Room)?.PropertyValue;
if (Prop_Room != null)
{
Prop_Room = Prop_Room.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN
} }
var matchedFrame = frameLists.FirstOrDefault(X => X.Num == Prop_Frame); var matchedFrame = frameLists.FirstOrDefault(X => X.Num == Prop_Frame);
if (matchedFrame == null) var matchedRoom = roomLists.FirstOrDefault(X => X.DataItemName == Prop_Room);
if (matchedFrame == null && matchedRoom == null)
{ {
//没有 //没有
//无效的基点 //无效的基点
@ -104,12 +117,22 @@ namespace Learun.Application.Web.AppApi
res.Add(layoutTagInvalid); res.Add(layoutTagInvalid);
continue; continue;
} }
var xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value; double xValue = 0 ;
if (xValue < 400) if (matchedFrame != null)
{ {
// 小于400我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm400mm的肋位号似乎也太小了。 xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value;
xValue = 1000 * xValue; // 转成mm if (xValue < 400)
{
// 小于400我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm400mm的肋位号似乎也太小了。
xValue = 1000 * xValue; // 转成mm
}
} }
string strRoom = string.Empty;
if (matchedRoom != null)
{
strRoom = matchedRoom.DataItemName;
}
var Prop_FrameOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue; var Prop_FrameOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue;
var Prop_YOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_YOff)?.PropertyValue; var Prop_YOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_YOff)?.PropertyValue;
var DECK = tagProps.FirstOrDefault(x => x.PropertyName == "甲板号")?.PropertyValue; var DECK = tagProps.FirstOrDefault(x => x.PropertyName == "甲板号")?.PropertyValue;
@ -128,9 +151,10 @@ namespace Learun.Application.Web.AppApi
YOff = Prop_YOff, YOff = Prop_YOff,
deck = DECK, deck = DECK,
area = AREA, area = AREA,
Scale = BasePointProp_scale == null ? 1 : (double.TryParse(BasePointProp_scale.PropertyValue, out double scale) ? scale : 1) Scale = BasePointProp_scale == null ? 1 : (double.TryParse(BasePointProp_scale.PropertyValue, out double scale) ? scale : 1),
RoomNo = strRoom
}; };
layoutTag.Scale = 1.0 / layoutTag.Scale; // 这里的比例是放大多少倍,所以取倒数。
@ -138,12 +162,12 @@ namespace Learun.Application.Web.AppApi
} }
// 找出area和deck列组合重复的行 // 找出area和deck列组合重复的行
var duplicateGroups = res var duplicateGroups = res
.GroupBy(r => new { r.area, r.deck }) .GroupBy(r => new { r.area, r.deck, r.RoomNo })
.Where(g => g.Count() > 1) .Where(g => g.Count() > 1)
.ToList(); .ToList();
if (duplicateGroups.Any()) if (duplicateGroups.Any())
{ {
return Fail("该图纸上有区域和甲板信息重复的基点存在。"); return Fail("该图纸上有甲板、房间号信息重复的基点存在。");
} }
//这里要考虑下拉列表 带 ||的问题 //这里要考虑下拉列表 带 ||的问题
@ -181,7 +205,7 @@ namespace Learun.Application.Web.AppApi
{ {
#region #region
//甲板 区域都和基点一致的设备 //甲板 区域都和基点一致的设备
var DeckMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "甲板号" && x.PropertyValue == basePoint.deck).Select(X => X.EngineDataID).ToList(); var DeckMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "甲板号" && (x.PropertyValue?.Split(new[] { "||" }, StringSplitOptions.None)[0] == basePoint.deck)).Select(X => X.EngineDataID).ToList();
//var AreaMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "区域" && x.PropertyValue == basePoint.area).Select(X => X.EngineDataID).ToList(); //var AreaMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "区域" && x.PropertyValue == basePoint.area).Select(X => X.EngineDataID).ToList();
//#task 9542 //#task 9542
var matchPointTagIds = DeckMatchedTagIds;//.Intersect(AreaMatchedTagIds).ToList(); var matchPointTagIds = DeckMatchedTagIds;//.Intersect(AreaMatchedTagIds).ToList();
@ -195,8 +219,14 @@ namespace Learun.Application.Web.AppApi
{ {
Prop_Frame = Prop_Frame.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN Prop_Frame = Prop_Frame.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN
} }
var Prop_RoomNo = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_Room)?.PropertyValue;
if (Prop_RoomNo != null)
{
Prop_RoomNo = Prop_RoomNo.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN
}
var matchedFrame = frameLists.FirstOrDefault(X => X.Num == Prop_Frame); var matchedFrame = frameLists.FirstOrDefault(X => X.Num == Prop_Frame);
if (matchedFrame == null) var matchedRoom = roomLists.FirstOrDefault(x => x.DataItemName == Prop_RoomNo);
if (matchedFrame == null && matchedRoom == null)
{ {
var layoutTagInfoInvalid = new layoutTagInfoBrief() var layoutTagInfoInvalid = new layoutTagInfoBrief()
{ {
@ -208,11 +238,20 @@ namespace Learun.Application.Web.AppApi
basePoint.Tags.Add(layoutTagInfoInvalid); basePoint.Tags.Add(layoutTagInfoInvalid);
continue; continue;
} }
var xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value; double xValue = 0;
if (xValue < 400) if (matchedFrame != null)
{ {
// 小于400我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm400mm的肋位号似乎也太小了。 xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value;
xValue = 1000 * xValue; // 转成mm if (xValue < 400)
{
// 小于400我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm400mm的肋位号似乎也太小了。
xValue = 1000 * xValue; // 转成mm
}
}
string strRoom = string.Empty;
if (matchedRoom != null)
{
strRoom = matchedRoom.DataItemName;
} }
var Prop_FrameOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue; var Prop_FrameOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue;
var Prop_YOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_YOff)?.PropertyValue; var Prop_YOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_YOff)?.PropertyValue;
@ -309,7 +348,8 @@ namespace Learun.Application.Web.AppApi
YOff = Prop_YOff, YOff = Prop_YOff,
deck = basePoint.deck, deck = basePoint.deck,
area = basePoint.area, area = basePoint.area,
Scale = basePoint.Scale Scale = basePoint.Scale,
RoomNo = strRoom
}; };
basePoint.Tags.Add(layoutTagInfo); basePoint.Tags.Add(layoutTagInfo);
} }

View File

@ -80,6 +80,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
public const string propName_FrameOff = "肋位号偏移量(mm)"; public const string propName_FrameOff = "肋位号偏移量(mm)";
public const string propName_YOff = "纵骨偏移量(mm)"; public const string propName_YOff = "纵骨偏移量(mm)";
public const string propName_TagNumber = "TagNumber"; public const string propName_TagNumber = "TagNumber";
public const string propName_Room = "房间号";
#endregion #endregion
#region projSetting #region projSetting

View File

@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Drawing.Spreadsheet; using DocumentFormat.OpenXml.Drawing.Spreadsheet;
using DocumentFormat.OpenXml.Spreadsheet;
using Learun.Util; using Learun.Util;
using Learun.Util.SqlSugar; using Learun.Util.SqlSugar;
using SqlSugar; using SqlSugar;
@ -7,6 +8,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Data; using System.Data;
using System.Linq; using System.Linq;
using System.Windows;
namespace Learun.Application.TwoDevelopment.ZZDT_EC namespace Learun.Application.TwoDevelopment.ZZDT_EC
{ {
@ -307,77 +309,34 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
cable.ToPanel = panelObj;//暂用一下topanel属性相当于电缆预分配的采集箱背后的Panel对象。 cable.AssignedPanel = panelObj;
var IOsOnPanel = panelObj.allowedIOTypes.Split(',').ToList(); var IOsOnPanel = panelObj.allowedIOTypes.Split(',').ToList();
//剩下的感觉都可以是set上的参数 //剩下的感觉都可以是set上的参数
foreach (var set in sets) foreach (var set in sets)
{ {
#region io匹配程度 #region io匹配程度
if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && cable.PreAssignIOType.ToLower() == "digital") var setNew = SetIOMatchPanel(cable.PreAssignIOType, set, IOsOnPanel);
if (IOsOnPanel.Contains(setNew.IOType.ToString()))
{ {
set.IOType = GlobalEnum.IOType.DI; setNew.IOTypeMatch = true;
}
else if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && cable.PreAssignIOType.ToLower() == "digital")
{
set.IOType = GlobalEnum.IOType.DO;
}
else if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && cable.PreAssignIOType == "4~20mA")
{
set.IOType = GlobalEnum.IOType.AI;
}
else if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && cable.PreAssignIOType == "4~20mA")
{
set.IOType = GlobalEnum.IOType.AO;
}
else if (cable.PreAssignIOType == "10v")
{
set.IOType = GlobalEnum.IOType.TenVolt;
}
else if (cable.PreAssignIOType == GlobalEnum.signalType.PT100.ToString())
{
set.IOType = GlobalEnum.IOType.PT100;
}
else if (cable.PreAssignIOType.ToUpper() == GlobalEnum.signalType.PULSE.ToString())
{
set.IOType = GlobalEnum.IOType.PULSE;
}
else if (cable.PreAssignIOType == GlobalEnum.signalType.PT100.ToString())
{
set.IOType = GlobalEnum.IOType.PT100;
}
//下面是通讯的
else
{
}
if (IOsOnPanel.Contains(set.IOType.ToString()))
{
set.IOTypeMatch = true;
} }
else else
{ {
set.IOTypeMatch = false; setNew.IOTypeMatch = false;
cable.IOTypesNotMatchedList.Add(set.IOType.ToString());//从电缆上就能知道哪些io是匹配补上的 cable.IOTypesNotMatchedList.Add(setNew.IOType.ToString());//从电缆上就能知道哪些io是匹配补上的
} }
#endregion #endregion
var wires = Wires.Where(x => x.CableSetID == set.CableSetID); var wires = Wires.Where(x => x.CableSetID == setNew.CableSetID);
set.Wires = wires.ToList(); setNew.Wires = wires.ToList();
cable.Sets.Add(setNew);
} }
cable.Sets = sets; //cable.Sets = sets;
//if (cable.Sets.Any(x => !x.IOTypeMatch))
//{
// cable.IOTypeMatch = true;
//}
//else
//{
// cable.IOTypeMatch = false;
//}
} }
//分组 //排序
preAssignedCables = preAssignedCables.OrderBy(x => x.PreAssignIOType).ToList(); preAssignedCables = preAssignedCables.OrderBy(x => x.PreAssignIOType).ToList();
@ -397,7 +356,59 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
else { ec_CableService.DeleteEntity(ProjectId, CableID); } else { ec_CableService.DeleteEntity(ProjectId, CableID); }
} }
/// <summary>
/// 预分配的电缆上的io是否和电缆上的io能匹配
/// </summary>
/// <returns></returns>
public static ec_CableSetEntity SetIOMatchPanel(string signalOnCable, ec_CableSetEntity set, List<string> IOsOnPanel)
{
//var IOsOnPanel = panelObj.allowedIOTypes.Split(',').ToList();
//剩下的感觉都可以是set上的参数
#region io匹配程度
if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && signalOnCable.ToLower() == "digital")
{
set.IOType = GlobalEnum.IOType.DI;
}
else if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && signalOnCable.ToLower() == "digital")
{
set.IOType = GlobalEnum.IOType.DO;
}
else if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && signalOnCable == "4~20mA")
{
set.IOType = GlobalEnum.IOType.AI;
}
else if (set.PreAssignInOrOut == GlobalEnum.inOrOut..ToString() && signalOnCable == "4~20mA")
{
set.IOType = GlobalEnum.IOType.AO;
}
else if (signalOnCable == "10v")
{
set.IOType = GlobalEnum.IOType.TenVolt;
}
else if (signalOnCable == GlobalEnum.signalType.PT100.ToString())
{
set.IOType = GlobalEnum.IOType.PT100;
}
else if (signalOnCable.ToUpper() == GlobalEnum.signalType.PULSE.ToString())
{
set.IOType = GlobalEnum.IOType.PULSE;
}
else if (signalOnCable == GlobalEnum.signalType.PT100.ToString())
{
set.IOType = GlobalEnum.IOType.PT100;
}
//下面是通讯的
else
{
}
#endregion
return set;
}
/// <summary> /// <summary>
/// 保存实体数据(新增、修改) /// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param> /// <param name="keyValue">主键</param>

View File

@ -87,6 +87,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
} }
/// <summary> /// <summary>
/// 编辑调用 /// 编辑调用
/// </summary> /// </summary>
@ -109,7 +110,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// ///
/// </summary> /// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public List<ec_CableSetEntity> Sets { set; get; } public List<ec_CableSetEntity> Sets { set; get; } = new List<ec_CableSetEntity>();
/// <summary> /// <summary>
/// 平行电缆数据 /// 平行电缆数据
@ -147,12 +148,15 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// <summary> /// <summary>
/// From连接处的工程位号信息。同时也表达下预分配电缆panelid对应的柜子信息。 /// From连接处的工程位号信息。
/// </summary> /// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public ec_PanelEntity ToPanel { set; get; } public ec_PanelEntity ToPanel { set; get; }
/// <summary>
/// 根据<see cref="PanelID"/>算出来的实际分配的箱子当然也能和panelid不同而是就近的另外一个采集箱
/// </summary>
[SugarColumn(IsIgnore = true)]
public ec_PanelEntity AssignedPanel { set; get; }
#endregion #endregion
} }
} }

View File

@ -148,7 +148,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 是否被连接 /// 是否被连接
/// </summary> /// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public bool? IsConned { set; get; } public bool? IsConned { set; get; } = false;
/// <summary> /// <summary>
/// 当前这个set的连接情况 /// 当前这个set的连接情况
@ -168,8 +168,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#endregion #endregion
public ec_CableSetEntity() public ec_CableSetEntity()
{ {
IsConned = null;
} }
} }
} }

View File

@ -986,7 +986,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#region #region
var resourcePixelList = ec_enginedata_pixelService.GetList("{ProjectId:\"" + item.ProjectId + "\",DrawingFileID:\"" + item.DrawingFileID + "\"}",ProjectId).ToList(); var resourcePixelList = ec_enginedata_pixelService.GetList("{ProjectId:\"" + item.ProjectId + "\",DrawingFileID:\"" + item.DrawingFileID + "\"}", item.ProjectId).ToList();
if (resourcePixelList != null && resourcePixelList.Count() > 0)//不包含deleteflg的 if (resourcePixelList != null && resourcePixelList.Count() > 0)//不包含deleteflg的
{ {
//获取拷贝图纸所有的工程数据ID //获取拷贝图纸所有的工程数据ID

View File

@ -59,9 +59,10 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 基点从属的、或者说附近的设备位号 /// 基点从属的、或者说附近的设备位号
/// </summary> /// </summary>
public List<layoutTagInfoBrief> Tags { get; set; } = new List<layoutTagInfoBrief>(); public List<layoutTagInfoBrief> Tags { get; set; } = new List<layoutTagInfoBrief>();
public string RoomNo { get; set; }
#endregion #endregion
} }
} }

View File

@ -117,7 +117,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
this.ChannelID = Guid.NewGuid().ToString(); this.ChannelID = Guid.NewGuid().ToString();
this.CreateTime = Time.MySqlTime; this.CreateTime = Time.MySqlTime;
UserInfo userInfo = LoginUserInfo.Get(); UserInfo userInfo = LoginUserInfo.Get();
this.CreateUserID = userInfo.userId; this.CreateUserID = userInfo?.userId;
} }

View File

@ -73,7 +73,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
this.StripID = Guid.NewGuid().ToString(); this.StripID = Guid.NewGuid().ToString();
this.CreateTime = Time.MySqlTime; this.CreateTime = Time.MySqlTime;
UserInfo userInfo = LoginUserInfo.Get(); UserInfo userInfo = LoginUserInfo.Get();
this.CreateUserID = userInfo.userId; this.CreateUserID = userInfo?.userId;
} }
@ -96,15 +96,23 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// </summary> /// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public List<ec_PanelChannelEntity> Channels { set; get; } = new List<ec_PanelChannelEntity>(); public List<ec_PanelChannelEntity> Channels { set; get; } = new List<ec_PanelChannelEntity>();
/// <summary>
/// channel在<see cref="ec_WireTerminalEntity"/>里有,同时<see cref="ec_Wire_GroupEntity.ChannelID"/>也有
/// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public int ChannelsUsed { set; get; } = 0; public int ChannelsUsed { set; get; } = 0;
/// <summary>
/// channel在<see cref="ec_WireTerminalEntity"/>里有,但是没有信号
/// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public int ChannelsUsedNoSignal { set; get; } = 0; public int ChannelsUsedNoSignal { set; get; } = 0;
/// <summary>
/// channel在<see cref="ec_WireTerminalEntity"/>里没有
/// </summary>
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public int ChannelsSpared { set; get; } = 0; public int ChannelsSpared { set; get; } = 0;
[SugarColumn(IsIgnore = true)] [SugarColumn(IsIgnore = true)]
public string TagNumber { set; get; } public string TagNumber { set; get; }

View File

@ -1,5 +1,5 @@
 
FD:\陈进步\项目\009\SWSDBSchemeUpgradeTool\MainWindow.xaml;; FE:\Di-Electrical\SWSDBSchemeUpgradeTool\MainWindow.xaml;;
FD:\陈进步\项目\009\SWSDBSchemeUpgradeTool\SQLPreview.xaml;; FE:\Di-Electrical\SWSDBSchemeUpgradeTool\SQLPreview.xaml;;

View File

@ -5,6 +5,7 @@ using Bricscad.Global;
using SWS.CAD.CADFunc.Editor; using SWS.CAD.CADFunc.Editor;
using SWS.CAD.Helper; using SWS.CAD.Helper;
using SWS.CAD.Views.CustomControl; using SWS.CAD.Views.CustomControl;
using SWS.Commons;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;

View File

@ -181,12 +181,8 @@
<Compile Include="Helper\Converter\RadGridViewRowToBoolConverter.cs" /> <Compile Include="Helper\Converter\RadGridViewRowToBoolConverter.cs" />
<Compile Include="Helper\Converter\StatusToColourConverter.cs" /> <Compile Include="Helper\Converter\StatusToColourConverter.cs" />
<Compile Include="Helper\Converter\YesNotConverter.cs" /> <Compile Include="Helper\Converter\YesNotConverter.cs" />
<Compile Include="Helper\FileHelper.cs" />
<Compile Include="Helper\Behavior\PasswordHelper.cs" />
<Compile Include="Helper\TreeHelper.cs" />
<Compile Include="Start.cs" /> <Compile Include="Start.cs" />
<Compile Include="GlobalObje.cs" /> <Compile Include="GlobalObje.cs" />
<Compile Include="Helper\LoggerHelper.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ViewModels\CheckInApproveViewModel.cs" /> <Compile Include="ViewModels\CheckInApproveViewModel.cs" />
<Compile Include="ViewModels\DialogCableConnectionVM\DialogCableConnection_NewStripViewModel.cs" /> <Compile Include="ViewModels\DialogCableConnectionVM\DialogCableConnection_NewStripViewModel.cs" />
@ -534,11 +530,17 @@
<Project>{51cb6f5b-16e9-4ee0-baa4-144dd1ec8580}</Project> <Project>{51cb6f5b-16e9-4ee0-baa4-144dd1ec8580}</Project>
<Name>SWS.Service</Name> <Name>SWS.Service</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\SWS.Share\SWS.Share.csproj">
<Project>{87E71797-E60A-4637-BA32-C8B57154ABC3}</Project>
<Name>SWS.Share</Name>
</ProjectReference>
<ProjectReference Include="..\SWS.WPF\SWS.WPF.csproj"> <ProjectReference Include="..\SWS.WPF\SWS.WPF.csproj">
<Project>{7aff9117-78e7-4395-9f23-6dcfe09f9299}</Project> <Project>{7aff9117-78e7-4395-9f23-6dcfe09f9299}</Project>
<Name>SWS.WPF</Name> <Name>SWS.WPF</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup>
<Folder Include="Helper\Behavior\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@ -53,7 +53,7 @@ namespace SWS.CAD.ViewModels
} }
private List<ec_Cable> CablePreAssigns; private List<ec_Cable> CablePreAssigns;
public async void OnDialogOpened(IDialogParameters parameters) public void OnDialogOpened(IDialogParameters parameters)
{ {
//title = parameters.GetValue<string>(GlobalObject.dialogPar.title.ToString()); //title = parameters.GetValue<string>(GlobalObject.dialogPar.title.ToString());
title = "待分配的信号预览和统计"; title = "待分配的信号预览和统计";
@ -128,7 +128,7 @@ namespace SWS.CAD.ViewModels
IDialogParameters para = new Prism.Services.Dialogs.DialogParameters(); IDialogParameters para = new Prism.Services.Dialogs.DialogParameters();
para.Add(GlobalObject.dialogPar.para1.ToString(), PreAssignCables); para.Add(GlobalObject.dialogPar.para1.ToString(), PreAssignCables);
var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>(); var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
_dialogService.ShowDialog(nameof(DialogCablePreAssignResult), para, async (RES) => _dialogService.ShowDialog(nameof(DialogCablePreAssignResult), para, (RES) =>
{ {
if (RES.Result == ButtonResult.Yes) if (RES.Result == ButtonResult.Yes)
{ {
@ -182,7 +182,7 @@ namespace SWS.CAD.ViewModels
/// 页面左侧按钮 /// 页面左侧按钮
/// </summary> /// </summary>
/// <param name="parameter"></param> /// <param name="parameter"></param>
public virtual async void Button_Click(object parameter) public virtual void Button_Click(object parameter)
{ {
if (parameter.ToString().Equals("全选")) if (parameter.ToString().Equals("全选"))
{ {
@ -288,7 +288,7 @@ namespace SWS.CAD.ViewModels
TagNumber = ec_Cable.TagNumber; TagNumber = ec_Cable.TagNumber;
PreAssignIOType = ec_Cable.PreAssignIOType; PreAssignIOType = ec_Cable.PreAssignIOType;
CableClass = ec_Cable.CableClass.Equals("homerun") ? "是" : "否"; CableClass = ec_Cable.CableClass.Equals("homerun") ? "是" : "否";
ToPanel_TagNumber = ec_Cable.ToPanel != null ? ec_Cable.ToPanel.TagNumber : null; ToPanel_TagNumber = ec_Cable.AssignedPanel != null ? ec_Cable.AssignedPanel.TagNumber : null;
} }
#endregion #endregion

View File

@ -108,6 +108,7 @@ namespace SWS.CAD.ViewModels
public override async void ExecuteOKCommandAsync(object para) public override async void ExecuteOKCommandAsync(object para)
{ {
//只传入分配成功的电缆
var Cables = new List<ec_Cable>(); var Cables = new List<ec_Cable>();
if (AllPreAssignCables != null) if (AllPreAssignCables != null)
{ {
@ -153,7 +154,7 @@ namespace SWS.CAD.ViewModels
{ {
foreach (var PreAssignCable in AllPreAssignCables) foreach (var PreAssignCable in AllPreAssignCables)
{ {
if (PreAssignCable.Sets != null && !string.IsNullOrEmpty(PreAssignCable.Sets.FirstOrDefault().ConnectionInfo)) if (PreAssignCable.AssignedPanel!=null)
{ {
PreAssignCables.Add(PreAssignCable); PreAssignCables.Add(PreAssignCable);
} }
@ -163,7 +164,7 @@ namespace SWS.CAD.ViewModels
{ {
foreach (var PreAssignCable in AllPreAssignCables) foreach (var PreAssignCable in AllPreAssignCables)
{ {
if (PreAssignCable.Sets == null || string.IsNullOrEmpty(PreAssignCable.Sets.FirstOrDefault().ConnectionInfo)) if (PreAssignCable.AssignedPanel == null)
{ {
PreAssignCables.Add(PreAssignCable); PreAssignCables.Add(PreAssignCable);
} }
@ -179,14 +180,14 @@ namespace SWS.CAD.ViewModels
PreAllocationResultls = new ObservableCollection<PreAllocationResult>(); PreAllocationResultls = new ObservableCollection<PreAllocationResult>();
if (cable == null) return; if (cable == null) return;
if (cable.Sets != null) if (cable.AssignedPanel != null)
{ {
foreach (var Set in cable.Sets) foreach (var Set in cable.Sets)
{ {
PreAllocationResult preAllocationResult = new PreAllocationResult(); PreAllocationResult preAllocationResult = new PreAllocationResult();
preAllocationResult.CablePair = Set.CableSetName; preAllocationResult.CablePair = Set.CableSetName;
preAllocationResult.IOType = cable.PreAssignIOType; preAllocationResult.IOType = cable.PreAssignIOType;
preAllocationResult.ToPanel_TagNumber = cable.ToPanel == null ? "" : cable.ToPanel.TagNumber; preAllocationResult.ToPanel_TagNumber = cable.AssignedPanel == null ? "" : cable.AssignedPanel.TagNumber;
preAllocationResult.Panel_TagNumber = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[0].Split('')[1].Trim(); preAllocationResult.Panel_TagNumber = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[0].Split('')[1].Trim();
preAllocationResult.StripName = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[1].Split('')[1].Trim(); preAllocationResult.StripName = string.IsNullOrEmpty(Set.ConnectionInfo) ? "" : Set.ConnectionInfo.Split('/')[1].Split('')[1].Trim();
preAllocationResult.Terms = new ObservableCollection<ec_PanelStripTerm>(Set.AssignedTerms); preAllocationResult.Terms = new ObservableCollection<ec_PanelStripTerm>(Set.AssignedTerms);
@ -220,7 +221,9 @@ namespace SWS.CAD.ViewModels
public string CablePair public string CablePair
{ {
get { return _CablePair; } get { return _CablePair; }
set { _CablePair = value; } set { _CablePair = value;
RaisePropertyChanged(nameof(CablePair));
}
} }
private string _IOType; private string _IOType;
@ -230,7 +233,9 @@ namespace SWS.CAD.ViewModels
public string IOType public string IOType
{ {
get { return _IOType; } get { return _IOType; }
set { _IOType = value; } set { _IOType = value;
RaisePropertyChanged(nameof(IOType));
}
} }
@ -241,7 +246,9 @@ namespace SWS.CAD.ViewModels
public string ToPanel_TagNumber public string ToPanel_TagNumber
{ {
get { return _ToPanel_TagNumber; } get { return _ToPanel_TagNumber; }
set { _ToPanel_TagNumber = value; } set { _ToPanel_TagNumber = value;
RaisePropertyChanged(nameof(ToPanel_TagNumber));
}
} }
private string _Panel_TagNumber; private string _Panel_TagNumber;
@ -251,7 +258,9 @@ namespace SWS.CAD.ViewModels
public string Panel_TagNumber public string Panel_TagNumber
{ {
get { return _Panel_TagNumber; } get { return _Panel_TagNumber; }
set { _Panel_TagNumber = value; } set { _Panel_TagNumber = value;
RaisePropertyChanged(nameof(Panel_TagNumber));
}
} }
private string _StripName; private string _StripName;
@ -261,7 +270,9 @@ namespace SWS.CAD.ViewModels
public string StripName public string StripName
{ {
get { return _StripName; } get { return _StripName; }
set { _StripName = value; } set { _StripName = value;
RaisePropertyChanged(nameof(StripName));
}
} }
private ObservableCollection<ec_PanelStripTerm> _Terms; private ObservableCollection<ec_PanelStripTerm> _Terms;
@ -271,7 +282,9 @@ namespace SWS.CAD.ViewModels
public ObservableCollection<ec_PanelStripTerm> Terms public ObservableCollection<ec_PanelStripTerm> Terms
{ {
get { return _Terms; } get { return _Terms; }
set { _Terms = value; } set { _Terms = value;
RaisePropertyChanged(nameof(Terms));
}
} }

View File

@ -410,7 +410,7 @@ namespace SWS.CAD.ViewModels
#endregion #endregion
#region #region
private async void UpdateButtonEnabled() private void UpdateButtonEnabled()
{ {
if (SelectedChannelInfo != null) if (SelectedChannelInfo != null)
{ {
@ -2723,7 +2723,7 @@ namespace SWS.CAD.ViewModels
IDialogParameters para = new Prism.Services.Dialogs.DialogParameters(); IDialogParameters para = new Prism.Services.Dialogs.DialogParameters();
para.Add(GlobalObject.dialogPar.para1.ToString(), PreAssignCables); para.Add(GlobalObject.dialogPar.para1.ToString(), PreAssignCables);
var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>(); var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
_dialogService.ShowDialog(nameof(DialogCablePreAssignPreview), para, async (RES) => _dialogService.ShowDialog(nameof(DialogCablePreAssignPreview), para, (RES) =>
{ {
if (RES.Result == ButtonResult.Yes) if (RES.Result == ButtonResult.Yes)
{ {

View File

@ -22,6 +22,9 @@ using Unity;
namespace SWS.CAD.ViewModels namespace SWS.CAD.ViewModels
{ {
/// <summary>
/// 信号预分配页面的模型类
/// </summary>
public class DialogSignalPredistributionViewModel : DialogBase, IDialogAware public class DialogSignalPredistributionViewModel : DialogBase, IDialogAware
{ {
#region #region

View File

@ -506,7 +506,7 @@ namespace SWS.CAD.ViewModels
foreach (var id in listObjectTypeId) foreach (var id in listObjectTypeId)
{ {
//获取节点 //获取节点
Model.TreeModel node = Helper.TreeHelper.GetTreeModel(GlobalObject.objectTypeTree, id); Model.TreeModel node = TreeHelper.GetTreeModel(GlobalObject.objectTypeTree, id);
if (node != null) if (node != null)
{ {
var node1 = (Model.TreeModel)node.Clone(); var node1 = (Model.TreeModel)node.Clone();
@ -531,7 +531,7 @@ namespace SWS.CAD.ViewModels
GlobalObject.AllDwgName.Clear(); GlobalObject.AllDwgName.Clear();
foreach (var dwg in Drawings) foreach (var dwg in Drawings)
{ {
Helper.TreeHelper.GetTreeText(dwg); TreeHelper.GetTreeText(dwg);
} }
#endregion #endregion
@ -1975,7 +1975,7 @@ namespace SWS.CAD.ViewModels
foreach (var dto in historyDrawingsTree) foreach (var dto in historyDrawingsTree)
{ {
//获取节点下的图纸 //获取节点下的图纸
node = Helper.TreeHelper.GetTreeModel(dto, item.DrawingFileID); node = TreeHelper.GetTreeModel(dto, item.DrawingFileID);
if (node != null) if (node != null)
{ {
break; break;
@ -2283,7 +2283,7 @@ namespace SWS.CAD.ViewModels
if (string.IsNullOrEmpty(strRecentObjectType)) if (string.IsNullOrEmpty(strRecentObjectType))
{ {
//获取节点 //获取节点
Model.TreeModel node = Helper.TreeHelper.GetTreeModel(GlobalObject.objectTypeTree, selectType.ID); Model.TreeModel node = TreeHelper.GetTreeModel(GlobalObject.objectTypeTree, selectType.ID);
var addNode = (Model.TreeModel)node.Clone(); var addNode = (Model.TreeModel)node.Clone();
var firstNode = objectTypeTree[0]; var firstNode = objectTypeTree[0];
//UI添加到最近使用 //UI添加到最近使用
@ -2304,7 +2304,7 @@ namespace SWS.CAD.ViewModels
} }
listObjectTypeId.Insert(0, selectType.ID); listObjectTypeId.Insert(0, selectType.ID);
//获取节点 //获取节点
Model.TreeModel node = Helper.TreeHelper.GetTreeModel(GlobalObject.objectTypeTree, selectType.ID); Model.TreeModel node = TreeHelper.GetTreeModel(GlobalObject.objectTypeTree, selectType.ID);
var addNode = (Model.TreeModel)node.Clone(); var addNode = (Model.TreeModel)node.Clone();
firstNode.ChildNodes.Insert(0, addNode);//UI添加到最近使用 firstNode.ChildNodes.Insert(0, addNode);//UI添加到最近使用
ids = string.Join(",", listObjectTypeId); ids = string.Join(",", listObjectTypeId);

View File

@ -254,7 +254,7 @@ namespace SWS.CAD.ViewModels
//所属系统下拉框 //所属系统下拉框
foreach (var item in dwgSystem) foreach (var item in dwgSystem)
{ {
var node = Helper.TreeHelper.GetTreeModel(item, dwgFile.DrawingSystem); var node = TreeHelper.GetTreeModel(item, dwgFile.DrawingSystem);
if (node != null) if (node != null)
{ {
SelectedSystemItem = node; SelectedSystemItem = node;
@ -264,7 +264,7 @@ namespace SWS.CAD.ViewModels
//图纸目录下拉框 //图纸目录下拉框
foreach (var item in dwgCatalogueID) foreach (var item in dwgCatalogueID)
{ {
var node = Helper.TreeHelper.GetTreeModel(item, dwgFile.DrawingCatalogueID); var node = TreeHelper.GetTreeModel(item, dwgFile.DrawingCatalogueID);
if (node != null) if (node != null)
{ {
SelectedCatalogueIDItem = node; SelectedCatalogueIDItem = node;
@ -476,7 +476,7 @@ namespace SWS.CAD.ViewModels
foreach (var catalogueId in tempCatalogueID) foreach (var catalogueId in tempCatalogueID)
{ {
//遍历获取当前节点数据 //遍历获取当前节点数据
node = Helper.TreeHelper.GetTreeModel(catalogueId, dwgNode.ID); node = TreeHelper.GetTreeModel(catalogueId, dwgNode.ID);
if (node != null) if (node != null)
{ break; } { break; }
} }

View File

@ -92,7 +92,13 @@
ShowGroupPanel="False" telerik:StyleManager.Theme="Office_Blue" ShowGroupPanel="False" telerik:StyleManager.Theme="Office_Blue"
ItemsSource="{Binding PreAllocationResultls}" SelectedItem="{Binding SelectedChannelInfo, Mode=TwoWay}" ItemsSource="{Binding PreAllocationResultls}" SelectedItem="{Binding SelectedChannelInfo, Mode=TwoWay}"
> >
<telerik:RadGridView.Columns> <telerik:EventToCommandBehavior.EventBindings>
<telerik:EventBinding
Command="{Binding EditEndCmd}"
EventName="CellEditEnded"
PassEventArgsToCommand="True" />
</telerik:EventToCommandBehavior.EventBindings>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="电缆对" DataMemberBinding="{Binding CablePair}" IsReadOnly="True"/> <telerik:GridViewDataColumn Header="电缆对" DataMemberBinding="{Binding CablePair}" IsReadOnly="True"/>
<telerik:GridViewDataColumn Header="IO类型" DataMemberBinding="{Binding IOType}" IsReadOnly="True"/> <telerik:GridViewDataColumn Header="IO类型" DataMemberBinding="{Binding IOType}" IsReadOnly="True"/>
<telerik:GridViewDataColumn Header="预分配箱子" DataMemberBinding="{Binding ToPanel_TagNumber}" IsReadOnly="True"/> <telerik:GridViewDataColumn Header="预分配箱子" DataMemberBinding="{Binding ToPanel_TagNumber}" IsReadOnly="True"/>

View File

@ -241,7 +241,7 @@
<ItemsControl.ItemTemplate> <ItemsControl.ItemTemplate>
<DataTemplate> <DataTemplate>
<Border BorderBrush="#cccccc" BorderThickness="0,0,0,1" Padding="0"> <Border BorderBrush="#cccccc" BorderThickness="0,0,0,1" Padding="0">
<TextBlock Text="{Binding}" TextAlignment="Center" Padding="4,2" /> <TextBlock Text="{Binding}" TextAlignment="Center" Padding="4,2" />
</Border> </Border>
</DataTemplate> </DataTemplate>
</ItemsControl.ItemTemplate> </ItemsControl.ItemTemplate>
@ -364,135 +364,135 @@
</ResourceDictionary> </ResourceDictionary>
</UserControl.Resources> </UserControl.Resources>
<telerik:RadBusyIndicator BusyContent="{Binding BusyContent}" IsBusy="{Binding IsBusy}"> <telerik:RadBusyIndicator BusyContent="{Binding BusyContent}" IsBusy="{Binding IsBusy}">
<Grid > <Grid >
<StackPanel> <StackPanel>
<CustomControl:customWindowTitleBar/> <CustomControl:customWindowTitleBar/>
<Grid Background="#5d6b99"> <Grid Background="#5d6b99">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="260" /> <ColumnDefinition Width="260" />
<ColumnDefinition Width="5" /> <ColumnDefinition Width="5" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel Background="#5d6b99"> <StackPanel Background="#5d6b99">
<!-- 按钮区域 --> <!-- 按钮区域 -->
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="10,0,10,5"> <StackPanel Grid.Column="0" Orientation="Horizontal" Margin="10,0,10,5">
<Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/> <Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe702;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe702;}"
ToolTip="新增位置" ToolTip="新增位置"
Command="{Binding HeadButtonCmd}" CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> Command="{Binding HeadButtonCmd}" CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe12e;}" x:Name="IconButton2" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe12e;}" x:Name="IconButton2"
ToolTip="新建端子排" ToolTip="新建端子排"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe649;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe649;}"
ToolTip="修改位置,端子排信息" ToolTip="修改位置,端子排信息"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe10c;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe10c;}"
ToolTip="删除节点" ToolTip="删除节点"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/> <Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe111;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe111;}"
ToolTip="选择位号关联通道" ToolTip="选择位号关联通道"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe10f;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe10f;}"
ToolTip="选择电缆关联通道" ToolTip="选择电缆关联通道"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe110;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe110;}"
ToolTip="解除电缆关联通道" ToolTip="解除电缆关联通道"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/> <Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe12f;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe12f;}"
ToolTip="新增端子排通道" ToolTip="新增端子排通道"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe681;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe681;}"
ToolTip="删除端子排通道" ToolTip="删除端子排通道"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
<telerik:RadPathButton.IsEnabled> <telerik:RadPathButton.IsEnabled>
<MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}"> <MultiBinding Converter="{StaticResource SelectedItemToBoolConverter}">
<Binding ElementName="treeView1" Path="SelectedItem" /> <Binding ElementName="treeView1" Path="SelectedItem" />
<Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" /> <Binding RelativeSource="{RelativeSource Self}" Path="ToolTip" />
</MultiBinding> </MultiBinding>
</telerik:RadPathButton.IsEnabled> </telerik:RadPathButton.IsEnabled>
</telerik:RadPathButton> </telerik:RadPathButton>
<Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/> <Line X1="0" Y1="1" X2="0" Y2="29" StrokeThickness="0.3" Stroke="Black"/>
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe134;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe134;}"
ToolTip="导出端子排(模块)使用明细表" ToolTip="导出端子排(模块)使用明细表"
Command="{Binding HeadButtonCmd}" Command="{Binding HeadButtonCmd}"
CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"> CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}">
</telerik:RadPathButton> </telerik:RadPathButton>
</StackPanel> </StackPanel>
<Border Grid.Row="1" BorderThickness="1" > <Border Grid.Row="1" BorderThickness="1" >
<StackPanel> <StackPanel>
<Border BorderThickness="0 0 0 1" Margin="10,0,0,0"> <Border BorderThickness="0 0 0 1" Margin="10,0,0,0">
<TextBlock Text="端子排浏览" Foreground="White" /> <TextBlock Text="端子排浏览" Foreground="White" />
</Border> </Border>
<!-- 左侧树形结构 --> <!-- 左侧树形结构 -->
<Border> <Border>
<telerik:RadTreeView x:Name="treeView1" Height="660" Background="White" <telerik:RadTreeView x:Name="treeView1" Height="660" Background="White"
IsLineEnabled="True" ExpanderStyle="{StaticResource ExpanderStyle}" IsLineEnabled="True" ExpanderStyle="{StaticResource ExpanderStyle}"
ItemsSource="{Binding PanelTreels}" SelectedItem="{Binding SelectedTreeNode,Mode=TwoWay}" ItemsSource="{Binding PanelTreels}" SelectedItem="{Binding SelectedTreeNode,Mode=TwoWay}"
ItemContainerStyle="{StaticResource ExpandedTreeViewItemStyle}" ItemContainerStyle="{StaticResource ExpandedTreeViewItemStyle}"
@ -502,117 +502,123 @@
IsVirtualizing="True" IsVirtualizing="True"
telerik:TextSearch.TextPath="Text" telerik:TextSearch.TextPath="Text"
> >
<telerik:RadTreeView.ItemTemplate> <telerik:RadTreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ChildNodes}"> <HierarchicalDataTemplate ItemsSource="{Binding ChildNodes}">
<TextBlock Text="{Binding Text}"> <TextBlock Text="{Binding Text}">
</TextBlock> </TextBlock>
<HierarchicalDataTemplate.ItemTemplate> <HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ChildNodes}"> <HierarchicalDataTemplate ItemsSource="{Binding ChildNodes}">
<TextBlock Text="{Binding Text}"/> <TextBlock Text="{Binding Text}"/>
<HierarchicalDataTemplate.ItemTemplate> <HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding PanelTreels}"> <HierarchicalDataTemplate ItemsSource="{Binding PanelTreels}">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Text}"/> <TextBlock Text="{Binding Text}"/>
<TextBlock Text=" (" /> <TextBlock Text=" (" />
<TextBlock Text="{Binding NodeExtData.ChannelsSpared}" FontWeight="Bold" /> <TextBlock Text="{Binding NodeExtData.ChannelsSpared}" FontWeight="Bold" />
<TextBlock Text=")" /> <TextBlock Text=")" />
</StackPanel> </StackPanel>
</HierarchicalDataTemplate> </HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate> </HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate> </HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate> </HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate> </HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate> </telerik:RadTreeView.ItemTemplate>
<telerik:RadTreeView.ContextMenu> <telerik:RadTreeView.ContextMenu>
<ContextMenu x:Name="TreeItemContextMenu"> <ContextMenu x:Name="TreeItemContextMenu">
<!-- 菜单项将会在后台动态填充 --> <!-- 菜单项将会在后台动态填充 -->
</ContextMenu> </ContextMenu>
</telerik:RadTreeView.ContextMenu> </telerik:RadTreeView.ContextMenu>
</telerik:RadTreeView> </telerik:RadTreeView>
</Border> </Border>
</StackPanel> </StackPanel>
</Border> </Border>
</StackPanel> </StackPanel>
<StackPanel Grid.Column="2" Margin="0,0,5,20" Background="#5d6b99"> <StackPanel Grid.Column="2" Margin="0,0,5,20" Background="#5d6b99">
<!-- 按钮区域 --> <!-- 按钮区域 -->
<DockPanel Margin="0,0,0,0"> <DockPanel Margin="0,0,0,0">
<telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe649;}" <telerik:RadPathButton PathGeometry="{telerik:RadGlyph Glyph=&#xe649;}"
ToolTip="端子排模版设置" Padding="0" ToolTip="端子排模版设置" Padding="0"
Command="{Binding HeadButtonCmd}" CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"/> Command="{Binding HeadButtonCmd}" CommandParameter="{Binding ToolTip,RelativeSource={RelativeSource Self}}"/>
<telerik:RadButton Content="上移通道(L)" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/> <telerik:RadButton Content="上移通道(L)" Width="auto" Style="{StaticResource sysBtn}" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/>
<telerik:RadButton Content="下移通道(D)" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/> <telerik:RadButton Content="下移通道(D)" Width="auto" Style="{StaticResource sysBtn}" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/>
<telerik:RadButton Content="迁移通道(M)" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/> <telerik:RadButton Content="迁移通道(M)" Width="auto" Style="{StaticResource sysBtn}" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/>
<telerik:RadButton Content="锁定通道(L)" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/> <telerik:RadButton Content="锁定通道(L)" Width="auto" Style="{StaticResource sysBtn}" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/>
<telerik:RadButton Content="解锁通道(L)" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/> <telerik:RadButton Content="解锁通道(L)" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/>
<telerik:RadButton Content="关联信号" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" IsEnabled="{Binding IsEnabledASButton}" Margin="5"> <telerik:RadButton Content="关联信号" Style="{StaticResource sysBtn}" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" IsEnabled="{Binding IsEnabledASButton}" Margin="5">
</telerik:RadButton> </telerik:RadButton>
<telerik:RadButton Content="解除信号" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" IsEnabled="{Binding IsEnabledClearButton}" Margin="5"/> <telerik:RadButton Content="解除信号" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" IsEnabled="{Binding IsEnabledClearButton}" Margin="5"/>
<telerik:RadButton Content="母线详情" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/> <telerik:RadButton Content="母线详情" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/>
<telerik:RadButton Content="批量分配" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/> <telerik:RadButton Content="批量分配" Style="{StaticResource sysBtn}" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5"/>
<telerik:RadButton Content="保存" HorizontalAlignment="Right" Width="50" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5,5,0,5"/> <telerik:RadButton Style="{StaticResource sysBtn}" Content="保存" HorizontalAlignment="Right" Width="50" Command="{Binding TableButtonCmd}" CommandParameter="{Binding Content,RelativeSource={RelativeSource Self}}" Margin="5,5,0,5"/>
</DockPanel> </DockPanel>
<Border BorderThickness="0 0 0 1"> <Border BorderThickness="0 0 0 1">
<TextBlock Text="通道详细信息" Foreground="White" /> <TextBlock Text="通道详细信息" Foreground="White" />
</Border> </Border>
<!-- 数据表格 --> <!-- 数据表格 -->
<Grid> <Grid>
<telerik:RadGridView x:Name="RadGridView1" SelectionMode="Single" Width="auto" Height="660" <telerik:RadGridView x:Name="RadGridView1" SelectionMode="Single" Width="auto" Height="660"
AutoGenerateColumns="False" IsFilteringAllowed="False" AutoGenerateColumns="False" IsFilteringAllowed="False"
IsReadOnly="False" RowIndicatorVisibility="Collapsed" IsReadOnly="False" RowIndicatorVisibility="Collapsed"
ShowGroupPanel="False" telerik:StyleManager.Theme="Office_Blue" ShowGroupPanel="False" telerik:StyleManager.Theme="Office_Blue"
ItemsSource="{Binding ChannelInfos}" SelectedItem="{Binding SelectedChannelInfo, Mode=TwoWay}" ItemsSource="{Binding ChannelInfos}" SelectedItem="{Binding SelectedChannelInfo, Mode=TwoWay}"
> >
<telerik:RadGridView.Columns> <telerik:EventToCommandBehavior.EventBindings>
<telerik:GridViewDataColumn Header="序号" CellTemplate="{StaticResource CellTemplate1}" CellStyle="{StaticResource CellTyle1}" IsReadOnly="True"/> <telerik:EventBinding
<telerik:GridViewDataColumn Header="通道号" DataMemberBinding="{Binding ChannelNumber}" Command="{Binding EditEndCmd}"
EventName="CellEditEnded"
PassEventArgsToCommand="True" />
</telerik:EventToCommandBehavior.EventBindings>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="序号" CellTemplate="{StaticResource CellTemplate1}" CellStyle="{StaticResource CellTyle1}" IsReadOnly="True"/>
<telerik:GridViewDataColumn Header="通道号" DataMemberBinding="{Binding ChannelNumber}"
IsCellMergingEnabled="True"/> IsCellMergingEnabled="True"/>
<telerik:GridViewDataColumn Header="端子号" CellTemplate="{StaticResource CellTemplate2}" CellEditTemplate="{StaticResource CellEditTemplate2}"/> <telerik:GridViewDataColumn Header="端子号" CellTemplate="{StaticResource CellTemplate2}" CellEditTemplate="{StaticResource CellEditTemplate2}"/>
<telerik:GridViewDataColumn Header="占用人" DataMemberBinding="{Binding Occupant}" IsReadOnly="True"/> <telerik:GridViewDataColumn Header="占用人" DataMemberBinding="{Binding Occupant}" IsReadOnly="True" Width="100" Background="#f0f0f0"/>
<telerik:GridViewDataColumn Header="电缆位号" DataMemberBinding="{Binding CableTag}" IsReadOnly="True" Width="100"> <telerik:GridViewDataColumn Header="电缆位号" DataMemberBinding="{Binding CableTag}" IsReadOnly="True" Width="100" Background="#f0f0f0">
<telerik:GridViewDataColumn.CellTemplate> <telerik:GridViewDataColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding CableTag}" <TextBlock Text="{Binding CableTag}"
TextTrimming="CharacterEllipsis" TextTrimming="CharacterEllipsis"
ToolTip="{Binding CableTag}"/> ToolTip="{Binding CableTag}"/>
</DataTemplate> </DataTemplate>
</telerik:GridViewDataColumn.CellTemplate> </telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn> </telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="电缆对" DataMemberBinding="{Binding CablePair}"/> <telerik:GridViewDataColumn Header="电缆对" DataMemberBinding="{Binding CablePair}"/>
<telerik:GridViewDataColumn Header="电缆线号" CellTemplate="{StaticResource CellTemplate3}" CellEditTemplate="{StaticResource CellEditTemplate3}"/> <telerik:GridViewDataColumn Header="电缆线号" CellTemplate="{StaticResource CellTemplate3}" CellEditTemplate="{StaticResource CellEditTemplate3}"/>
<telerik:GridViewDataColumn Header="极性" CellTemplate="{StaticResource CellTemplate4}" CellEditTemplate="{StaticResource CellEditTemplate4}"/> <telerik:GridViewDataColumn Header="极性" CellTemplate="{StaticResource CellTemplate4}" CellEditTemplate="{StaticResource CellEditTemplate4}"/>
<telerik:GridViewDataColumn Header="信号名称" DataMemberBinding="{Binding SignalName}"/> <telerik:GridViewDataColumn Header="信号名称" DataMemberBinding="{Binding SignalName}"/>
<telerik:GridViewDataColumn Header="信号组别" DataMemberBinding="{Binding GroupOther}" IsReadOnly="True"/> <telerik:GridViewDataColumn Header="信号组别" DataMemberBinding="{Binding GroupOther}" IsReadOnly="True" Background="#f0f0f0"/>
<telerik:GridViewDataColumn Header="信号编码" DataMemberBinding="{Binding SignalCode}" IsReadOnly="True"/> <telerik:GridViewDataColumn Header="信号编码" DataMemberBinding="{Binding SignalCode}" IsReadOnly="True" Background="#f0f0f0"/>
<telerik:GridViewDataColumn Header="中文描述" DataMemberBinding="{Binding ChineseDescription}" Width="120"> <telerik:GridViewDataColumn Header="中文描述" DataMemberBinding="{Binding ChineseDescription}" Width="120">
<telerik:GridViewDataColumn.CellTemplate> <telerik:GridViewDataColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding ChineseDescription}" <TextBlock Text="{Binding ChineseDescription}"
TextTrimming="CharacterEllipsis" TextTrimming="CharacterEllipsis"
ToolTip="{Binding ChineseDescription}"/> ToolTip="{Binding ChineseDescription}"/>
</DataTemplate> </DataTemplate>
</telerik:GridViewDataColumn.CellTemplate> </telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn> </telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="英文描述" DataMemberBinding="{Binding EnglishDescription}" Width="120"> <telerik:GridViewDataColumn Header="英文描述" DataMemberBinding="{Binding EnglishDescription}" Width="120">
<telerik:GridViewDataColumn.CellTemplate> <telerik:GridViewDataColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding EnglishDescription}" <TextBlock Text="{Binding EnglishDescription}"
TextTrimming="CharacterEllipsis" TextTrimming="CharacterEllipsis"
ToolTip="{Binding EnglishDescription}"/> ToolTip="{Binding EnglishDescription}"/>
</DataTemplate> </DataTemplate>
</telerik:GridViewDataColumn.CellTemplate> </telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn> </telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="信号类型" DataMemberBinding="{Binding SignalType}" <telerik:GridViewDataColumn Header="信号类型" DataMemberBinding="{Binding SignalType}"
Width="*"/> Width="*"/>
</telerik:RadGridView.Columns> </telerik:RadGridView.Columns>
</telerik:RadGridView> </telerik:RadGridView>
</Grid> </Grid>
</StackPanel> </StackPanel>
</Grid> </Grid>
</StackPanel> </StackPanel>
</Grid> </Grid>
</telerik:RadBusyIndicator> </telerik:RadBusyIndicator>
</UserControl> </UserControl>

View File

@ -0,0 +1,12 @@
<UserControl x:Class="SWS.CAD.Views.Dialog.DialogSectionBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:SWS.CAD.Views.Dialog"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
</Grid>
</UserControl>

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace SWS.CAD.Views.Dialog
{
/// <summary>
/// DialogSectionBox.xaml 的交互逻辑
/// </summary>
public partial class DialogSectionBox : UserControl
{
public DialogSectionBox()
{
InitializeComponent();
}
}
}

View File

@ -4,8 +4,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:local="clr-namespace:SWS.CAD.Views.CustomControl" xmlns:local="clr-namespace:SWS.CAD.Views.CustomControl"
xmlns:local2="clr-namespace:SWS.CAD.Helper" xmlns:local2="clr-namespace:SWS.Commons;assembly=SWS.Commons"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Width="300" Width="300"
Height="250" Height="250"
AllowsTransparency="True" AllowsTransparency="True"

View File

@ -39,6 +39,10 @@
<Setter Property="Foreground" Value="Black" /> <Setter Property="Foreground" Value="Black" />
</DataTrigger> </DataTrigger>
<!-- 按钮禁用时 -->
<DataTrigger Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false">
<Setter Property="Foreground" Value="Black" />
</DataTrigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>
<Style x:Key="sysBtn2" TargetType="Button"> <Style x:Key="sysBtn2" TargetType="Button">

View File

@ -130,6 +130,10 @@
<Project>{1995385b-d1b0-4c55-835e-d3e769972a6a}</Project> <Project>{1995385b-d1b0-4c55-835e-d3e769972a6a}</Project>
<Name>SWS.Model</Name> <Name>SWS.Model</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\SWS.Share\SWS.Share.csproj">
<Project>{87E71797-E60A-4637-BA32-C8B57154ABC3}</Project>
<Name>SWS.Share</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Images\OpenProject.png" /> <EmbeddedResource Include="Images\OpenProject.png" />

View File

@ -1,159 +0,0 @@
#pragma checksum "..\..\..\Views\DialogAutoArrangeLayout.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "8E0302C7B31AF0BFE57DDCDA7BD9F7E1B53C3458B14B24E3C31D70FADF66C1B2"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using Microsoft.Xaml.Behaviors;
using Microsoft.Xaml.Behaviors.Core;
using Microsoft.Xaml.Behaviors.Input;
using Microsoft.Xaml.Behaviors.Layout;
using Microsoft.Xaml.Behaviors.Media;
using Prism.DryIoc;
using Prism.Interactivity;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Regions.Behaviors;
using Prism.Services.Dialogs;
using Prism.Unity;
using SWS.CustomControl;
using SWS.Electrical;
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.Animation;
using Telerik.Windows.Controls.Behaviors;
using Telerik.Windows.Controls.Carousel;
using Telerik.Windows.Controls.ComboBox;
using Telerik.Windows.Controls.Data.PropertyGrid;
using Telerik.Windows.Controls.DragDrop;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Controls.LayoutControl;
using Telerik.Windows.Controls.Legend;
using Telerik.Windows.Controls.MultiColumnComboBox;
using Telerik.Windows.Controls.Primitives;
using Telerik.Windows.Controls.RadialMenu;
using Telerik.Windows.Controls.TransitionEffects;
using Telerik.Windows.Controls.TreeListView;
using Telerik.Windows.Controls.TreeView;
using Telerik.Windows.Controls.Wizard;
using Telerik.Windows.Data;
using Telerik.Windows.DragDrop;
using Telerik.Windows.DragDrop.Behaviors;
using Telerik.Windows.Input.Touch;
using Telerik.Windows.Shapes;
namespace SWS.Electrical.Views {
/// <summary>
/// DialogAutoArrangeLayout
/// </summary>
public partial class DialogAutoArrangeLayout : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
#line 122 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal SWS.CustomControl.customWindowTitleBar titleBar;
#line default
#line hidden
#line 245 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.DataGrid dgTag;
#line default
#line hidden
#line 351 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.DataGrid dgErrTag;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/SWS.Electrical;component/views/dialogautoarrangelayout.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.titleBar = ((SWS.CustomControl.customWindowTitleBar)(target));
return;
case 2:
this.dgTag = ((System.Windows.Controls.DataGrid)(target));
#line 251 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
this.dgTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
#line default
#line hidden
return;
case 3:
this.dgErrTag = ((System.Windows.Controls.DataGrid)(target));
#line 357 "..\..\..\Views\DialogAutoArrangeLayout.xaml"
this.dgErrTag.LoadingRow += new System.EventHandler<System.Windows.Controls.DataGridRowEventArgs>(this.dgTag_LoadingRow);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}

View File

@ -1,125 +0,0 @@
#pragma checksum "..\..\..\Views\DialogTest2.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "6D6B0D2E8B29B2F4DE2F7CF02D2382F69B7F06455C4BC9504C7F76B8C7D980B6"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using Microsoft.Xaml.Behaviors;
using Microsoft.Xaml.Behaviors.Core;
using Microsoft.Xaml.Behaviors.Input;
using Microsoft.Xaml.Behaviors.Layout;
using Microsoft.Xaml.Behaviors.Media;
using Prism.DryIoc;
using Prism.Interactivity;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Regions.Behaviors;
using Prism.Services.Dialogs;
using Prism.Unity;
using SWS.CustomControl;
using SWS.Electrical.Views;
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.Animation;
using Telerik.Windows.Controls.Behaviors;
using Telerik.Windows.Controls.Carousel;
using Telerik.Windows.Controls.ComboBox;
using Telerik.Windows.Controls.Data.PropertyGrid;
using Telerik.Windows.Controls.DragDrop;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Controls.LayoutControl;
using Telerik.Windows.Controls.Legend;
using Telerik.Windows.Controls.MultiColumnComboBox;
using Telerik.Windows.Controls.Primitives;
using Telerik.Windows.Controls.RadialMenu;
using Telerik.Windows.Controls.TransitionEffects;
using Telerik.Windows.Controls.TreeListView;
using Telerik.Windows.Controls.TreeView;
using Telerik.Windows.Controls.Wizard;
using Telerik.Windows.Data;
using Telerik.Windows.DragDrop;
using Telerik.Windows.DragDrop.Behaviors;
using Telerik.Windows.Input.Touch;
using Telerik.Windows.Shapes;
namespace SWS.Electrical.Views {
/// <summary>
/// DialogTest2
/// </summary>
public partial class DialogTest2 : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {
#line 33 "..\..\..\Views\DialogTest2.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal SWS.CustomControl.customWindowTitleBar titleBar;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/SWS.Electrical;component/views/dialogtest2.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Views\DialogTest2.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.titleBar = ((SWS.CustomControl.customWindowTitleBar)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@ -23,6 +23,7 @@ using Prism.Regions.Behaviors;
using Prism.Services.Dialogs; using Prism.Services.Dialogs;
using Prism.Unity; using Prism.Unity;
using SWS.CustomControl; using SWS.CustomControl;
using SWS.Electrical;
using SWS.Electrical.Views; using SWS.Electrical.Views;
using System; using System;
using System.Diagnostics; using System.Diagnostics;

View File

@ -9,6 +9,23 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
using Microsoft.Xaml.Behaviors;
using Microsoft.Xaml.Behaviors.Core;
using Microsoft.Xaml.Behaviors.Input;
using Microsoft.Xaml.Behaviors.Layout;
using Microsoft.Xaml.Behaviors.Media;
using Prism.DryIoc;
using Prism.Interactivity;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Regions.Behaviors;
using Prism.Services.Dialogs;
using Prism.Unity;
using SWS.CustomControl;
using SWS.Electrical;
using SWS.Electrical.Views;
using SWS.Model;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Windows; using System.Windows;
@ -29,6 +46,28 @@ using System.Windows.Media.TextFormatting;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using System.Windows.Shell; using System.Windows.Shell;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.Animation;
using Telerik.Windows.Controls.Behaviors;
using Telerik.Windows.Controls.Carousel;
using Telerik.Windows.Controls.ComboBox;
using Telerik.Windows.Controls.Data.PropertyGrid;
using Telerik.Windows.Controls.DragDrop;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Controls.LayoutControl;
using Telerik.Windows.Controls.Legend;
using Telerik.Windows.Controls.MultiColumnComboBox;
using Telerik.Windows.Controls.Primitives;
using Telerik.Windows.Controls.RadialMenu;
using Telerik.Windows.Controls.TransitionEffects;
using Telerik.Windows.Controls.TreeListView;
using Telerik.Windows.Controls.TreeView;
using Telerik.Windows.Controls.Wizard;
using Telerik.Windows.Data;
using Telerik.Windows.DragDrop;
using Telerik.Windows.DragDrop.Behaviors;
using Telerik.Windows.Input.Touch;
using Telerik.Windows.Shapes;
namespace SWS.Electrical.Views { namespace SWS.Electrical.Views {

View File

@ -9,6 +9,23 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
using Microsoft.Xaml.Behaviors;
using Microsoft.Xaml.Behaviors.Core;
using Microsoft.Xaml.Behaviors.Input;
using Microsoft.Xaml.Behaviors.Layout;
using Microsoft.Xaml.Behaviors.Media;
using Prism.DryIoc;
using Prism.Interactivity;
using Prism.Ioc;
using Prism.Mvvm;
using Prism.Regions;
using Prism.Regions.Behaviors;
using Prism.Services.Dialogs;
using Prism.Unity;
using SWS.CustomControl;
using SWS.Electrical;
using SWS.Electrical.Views;
using SWS.Model;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Windows; using System.Windows;
@ -29,6 +46,28 @@ using System.Windows.Media.TextFormatting;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using System.Windows.Shell; using System.Windows.Shell;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.Animation;
using Telerik.Windows.Controls.Behaviors;
using Telerik.Windows.Controls.Carousel;
using Telerik.Windows.Controls.ComboBox;
using Telerik.Windows.Controls.Data.PropertyGrid;
using Telerik.Windows.Controls.DragDrop;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Controls.LayoutControl;
using Telerik.Windows.Controls.Legend;
using Telerik.Windows.Controls.MultiColumnComboBox;
using Telerik.Windows.Controls.Primitives;
using Telerik.Windows.Controls.RadialMenu;
using Telerik.Windows.Controls.TransitionEffects;
using Telerik.Windows.Controls.TreeListView;
using Telerik.Windows.Controls.TreeView;
using Telerik.Windows.Controls.Wizard;
using Telerik.Windows.Data;
using Telerik.Windows.DragDrop;
using Telerik.Windows.DragDrop.Behaviors;
using Telerik.Windows.Input.Touch;
using Telerik.Windows.Shapes;
namespace SWS.Electrical.Views { namespace SWS.Electrical.Views {

View File

@ -115,7 +115,6 @@
<Compile Include="ec_wire_group_notice.cs" /> <Compile Include="ec_wire_group_notice.cs" />
<Compile Include="ec_wire_group_propertyhis.cs" /> <Compile Include="ec_wire_group_propertyhis.cs" />
<Compile Include="KeyValueModel.cs" /> <Compile Include="KeyValueModel.cs" />
<Compile Include="LayoutTagInfoBrief.cs" />
<Compile Include="NoEntity\BomConfig.cs" /> <Compile Include="NoEntity\BomConfig.cs" />
<Compile Include="NoEntity\CheckInLogNeedApproveModel.cs" /> <Compile Include="NoEntity\CheckInLogNeedApproveModel.cs" />
<Compile Include="NoEntity\CheckInModel.cs" /> <Compile Include="NoEntity\CheckInModel.cs" />
@ -141,5 +140,11 @@
<ItemGroup> <ItemGroup>
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SWS.Share\SWS.Share.csproj">
<Project>{87e71797-e60a-4637-ba32-c8b57154abc3}</Project>
<Name>SWS.Share</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView> <ProjectView>ProjectFiles</ProjectView>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using SWS.Model; using SWS.Model;
using SWS.Share;
using Telerik.Windows.Controls; using Telerik.Windows.Controls;
using Telerik.Windows.Data; using Telerik.Windows.Data;

View File

@ -67,11 +67,11 @@ namespace SWS.Model
set { _IO_Type = value; } set { _IO_Type = value; }
} }
private Model.Action _ActionID; private Share.Action _ActionID;
/// <summary> /// <summary>
/// 操作ID /// 操作ID
/// </summary> /// </summary>
public Model.Action ActionID public Share.Action ActionID
{ {
get { return _ActionID; } get { return _ActionID; }
set { _ActionID = value; } set { _ActionID = value; }

View File

@ -107,6 +107,8 @@ namespace SWS.Model
/// </summary> /// </summary>
public ec_Panel ToPanel { set; get; } public ec_Panel ToPanel { set; get; }
public ec_Panel AssignedPanel { set; get; }
#endregion #endregion
} }
} }

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using SWS.Share;
namespace SWS.Model namespace SWS.Model
{ {
@ -393,43 +394,4 @@ namespace SWS.Model
public List<ec_wire_group_log> Logs { get; set; } public List<ec_wire_group_log> Logs { get; set; }
#endregion #endregion
} }
public enum WireGroupStatusEnum
{
/// <summary>
/// 待删除
/// </summary>
[Description("待删除")]
ToDelete = 01,
/// <summary>
/// 新增的
/// </summary>
[Description("新增的")]
New = 02,
/// <summary>
/// 已关联
/// </summary>
[Description("已使用(关联)")]
Used = 03,
/// <summary>
/// 已审核
/// </summary>
[Description("已确认(审核)")]
Confirmed = 04,
/// <summary>
/// 重新打开
/// </summary>
[Description("重新打开")]
Reopen = 05,
/// <summary>
/// 彻底删除
/// </summary>
[Description("彻底删除")]
deleted = 06
}
public class ActionHistory
{
public DateTime? ActionTime { get; set; }
public Action ActionType { get; set; }
public string reason { get; set; }
}
} }

View File

@ -10,7 +10,7 @@ namespace SWS.Model
{ {
} }
public ec_wire_group_log(Action OperateType, string WireGroupID) public ec_wire_group_log(Share.Action OperateType, string WireGroupID)
{ {
this.OperateType = OperateType; this.OperateType = OperateType;
this.WireGroupID = WireGroupID; this.WireGroupID = WireGroupID;
@ -22,7 +22,7 @@ namespace SWS.Model
/// <param name="OperateType"></param> /// <param name="OperateType"></param>
/// <param name="WireGroupID"></param> /// <param name="WireGroupID"></param>
/// <param name="createtime">因为<see cref="ec_Wire_GroupEntity.ActionHistorys"/>的关系,所以时间是有值的</param> /// <param name="createtime">因为<see cref="ec_Wire_GroupEntity.ActionHistorys"/>的关系,所以时间是有值的</param>
public ec_wire_group_log(Action OperateType, string WireGroupID, DateTime? createtime) public ec_wire_group_log(Share.Action OperateType, string WireGroupID, DateTime? createtime)
{ {
this.OperateType = OperateType; this.OperateType = OperateType;
this.WireGroupID = WireGroupID; this.WireGroupID = WireGroupID;
@ -50,7 +50,7 @@ namespace SWS.Model
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
public Action OperateType { get; set; } public Share.Action OperateType { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>

View File

@ -3,24 +3,6 @@
namespace SWS.Model namespace SWS.Model
{ {
/// <summary>
/// 动作。和状态是两码事情。
/// </summary>
public enum Action
{
= 0,
= 1,
= 2,
= 3,
= 4,
= 5,
= 6,
= 7,
= 8,
= 9
}
public enum Department public enum Department
{ {
= 0, = 0,

View File

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using SWS.Commons; using SWS.Commons;
using SWS.Model; using SWS.Model;
using SWS.Share;
namespace SWS.Service namespace SWS.Service
{ {

View File

@ -62,7 +62,7 @@ namespace SWS.Service
/// </summary> /// </summary>
/// <param name="entity"></param> /// <param name="entity"></param>
/// <returns></returns> /// <returns></returns>
public async Task<string> CanSaveSignals(WireGroups entity ,Model.Action ActionType) public async Task<string> CanSaveSignals(WireGroups entity ,Share.Action ActionType)
{ {
var res = await this.PostBodyAsync<List<ec_Wire_Group>, WireGroups>($"WireGroupApi/CanSaveSignals?projId={GlobalObject.curProject?.ProjectId}&ActionType={ActionType}", entity); var res = await this.PostBodyAsync<List<ec_Wire_Group>, WireGroups>($"WireGroupApi/CanSaveSignals?projId={GlobalObject.curProject?.ProjectId}&ActionType={ActionType}", entity);
if (res.code == 200) if (res.code == 200)

View File

@ -0,0 +1 @@
{"RootPath":"E:\\Di-Electrical\\newFront\\c#前端\\SWS.Share","ProjectFileName":"SWS.Share.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"BOMGroupInfo.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.6.1.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"E:\\Di-Electrical\\newFront\\c#前端\\SWS.Share\\bin\\Debug\\SWS.Share.dll","OutputItemRelativePath":"SWS.Share.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SWS.Share
{
public class ActionHistory
{
public DateTime? ActionTime { get; set; }
public Action ActionType { get; set; }
public string reason { get; set; }
}
}

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SWS.Share
{
public class ConstString
{
}
}

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SWS.Share
{
public class Enum
{
public enum inOrOut
{
= 0,
= 1
}
public enum cableClass
{
conventional = 0,
homerun = 1
}
}
}

View File

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SWS.Share
{
/// <summary>
/// 动作。和状态是两码事情。
/// </summary>
public enum Action
{
= 0,
= 1,
= 2,
= 3,
= 4,
= 5,
= 6,
= 7,
= 8,
= 9
}
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SWS.Share
{
public enum WireGroupStatusEnum
{
/// <summary>
/// 待删除
/// </summary>
[Description("待删除")]
ToDelete = 01,
/// <summary>
/// 新增的
/// </summary>
[Description("新增的")]
New = 02,
/// <summary>
/// 已关联
/// </summary>
[Description("已使用(关联)")]
Used = 03,
/// <summary>
/// 已审核
/// </summary>
[Description("已确认(审核)")]
Confirmed = 04,
/// <summary>
/// 重新打开
/// </summary>
[Description("重新打开")]
Reopen = 05,
/// <summary>
/// 彻底删除
/// </summary>
[Description("彻底删除")]
deleted = 06
}
}

View File

@ -0,0 +1,80 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SWS.Share
{
/// <summary>
/// 精简的类,用于布置图绘制
/// </summary>
public class LayoutTagInfoBrief
{
public LayoutTagInfoBrief()
{
}
#region
/// <summary>
/// 工程数据ID
/// </summary>
public string EngineDataID { get; set; }
/// <summary>
/// 位号
/// </summary>
public string TagNumber { get; set; } = "";
/// <summary>
/// tag
/// </summary>
public string TagNumber_Upper { get; set; } = "";
/// <summary>
/// system
/// </summary>
public string TagNumber_Lower { get; set; } = "";
/// <summary>
/// 图元文件Id
/// </summary>
public string FileId { get; set; }
/// <summary>
/// 基点在布置图上的句柄
/// </summary>
public string PixelOnDwg { get; set; }
/// <summary>
/// 比例
/// </summary>
public double Scale { get; set; }
/// <summary>
/// true:默认块false异性块
/// </summary>
public bool IsNotDefaultSymbol { get; set; }
/// <summary>
/// 肋位号 和 偏移量
/// </summary>
public double X { get; set; }
private string _XOff;
public string XOff
{
get { return string.IsNullOrEmpty(_XOff) ? "0" : _XOff; }
set { _XOff = value; }
}
/// <summary>
/// 纵骨号 偏移量
/// </summary>
private string _YOff;
public string YOff
{
get { return string.IsNullOrEmpty(_YOff) ? "0" : _YOff; }
set { _YOff = value; }
}
public string deck { get; set; }
public string area { get; set; }
/// <summary>
/// 基点从属的、或者说附近的设备位号
/// </summary>
public List<LayoutTagInfoBrief> Tags { get; set; } = new List<LayoutTagInfoBrief>();
#endregion
}
}

View File

@ -42,8 +42,14 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Enums\Action.cs" />
<Compile Include="ActionHistory.cs" />
<Compile Include="BOMGroupInfo.cs" /> <Compile Include="BOMGroupInfo.cs" />
<Compile Include="LayoutTagInfoBrief.cs" />
<Compile Include="ConstString.cs" />
<Compile Include="Enum.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Enums\WireGroupStatusEnum.cs" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<ProjectView>ProjectFiles</ProjectView> <ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -191,6 +191,10 @@
<Project>{51cb6f5b-16e9-4ee0-baa4-144dd1ec8580}</Project> <Project>{51cb6f5b-16e9-4ee0-baa4-144dd1ec8580}</Project>
<Name>SWS.Service</Name> <Name>SWS.Service</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\SWS.Share\SWS.Share.csproj">
<Project>{87E71797-E60A-4637-BA32-C8B57154ABC3}</Project>
<Name>SWS.Share</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Style\StyleSelectors\" /> <Folder Include="Style\StyleSelectors\" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView> <ProjectView>ProjectFiles</ProjectView>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -20,6 +20,7 @@ using DryIoc;
using ImTools; using ImTools;
using System.Timers; using System.Timers;
using System.Windows.Threading; using System.Windows.Threading;
using SWS.Share;
namespace SWS.WPF.ViewModels namespace SWS.WPF.ViewModels
{ {
@ -903,7 +904,7 @@ namespace SWS.WPF.ViewModels
new ActionHistory() new ActionHistory()
{ {
ActionTime= DateTime.Now, ActionTime= DateTime.Now,
ActionType = SWS.Model.Action., ActionType = Share.Action.,
reason = Reason reason = Reason
} }
@ -961,7 +962,7 @@ namespace SWS.WPF.ViewModels
new ActionHistory() new ActionHistory()
{ {
ActionTime= DateTime.Now, ActionTime= DateTime.Now,
ActionType = Model.Action., ActionType = Share.Action.,
} }
}; };
@ -1022,7 +1023,7 @@ namespace SWS.WPF.ViewModels
WireGroups ent = new WireGroups(); WireGroups ent = new WireGroups();
ent.Signals = Signals; ent.Signals = Signals;
string message = await _wireGroupService.CanSaveSignals(ent, Model.Action.); string message = await _wireGroupService.CanSaveSignals(ent, Share.Action.);
if (message != "OK") if (message != "OK")
{ {
// 显示消息框 // 显示消息框
@ -1036,7 +1037,7 @@ namespace SWS.WPF.ViewModels
new ActionHistory() new ActionHistory()
{ {
ActionTime= DateTime.Now, ActionTime= DateTime.Now,
ActionType = Model.Action., ActionType = Share.Action.,
reason = "" reason = ""
} }
@ -1113,7 +1114,7 @@ namespace SWS.WPF.ViewModels
new ActionHistory() new ActionHistory()
{ {
ActionTime= DateTime.Now, ActionTime= DateTime.Now,
ActionType = Model.Action., ActionType = Share.Action.,
reason = Reason reason = Reason
} }
@ -1166,7 +1167,7 @@ namespace SWS.WPF.ViewModels
}; };
WireGroups ent = new WireGroups(); WireGroups ent = new WireGroups();
ent.Signals = Signals; ent.Signals = Signals;
string message = await _wireGroupService.CanSaveSignals(ent, Model.Action.); string message = await _wireGroupService.CanSaveSignals(ent, Share.Action.);
if (message != "OK") if (message != "OK")
{ {
// 显示消息框 // 显示消息框
@ -1180,7 +1181,7 @@ namespace SWS.WPF.ViewModels
new ActionHistory() new ActionHistory()
{ {
ActionTime= DateTime.Now, ActionTime= DateTime.Now,
ActionType = Model.Action., ActionType = Share.Action.,
reason = "" reason = ""
} }
@ -1222,7 +1223,7 @@ namespace SWS.WPF.ViewModels
new ActionHistory() new ActionHistory()
{ {
ActionTime= DateTime.Now, ActionTime= DateTime.Now,
ActionType = Model.Action., ActionType = Share.Action.,
reason = Reason reason = Reason
} }

View File

@ -212,11 +212,11 @@ namespace SWS.WPF.ViewModels
set { _WireGroupID = value; } set { _WireGroupID = value; }
} }
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
private Model.Action _OperateType; private Share.Action _OperateType;
/// <summary> /// <summary>
/// 操作 /// 操作
/// </summary> /// </summary>
public Model.Action OperateType public Share.Action OperateType
{ {
get { return _OperateType; } get { return _OperateType; }
set { _OperateType = value; } set { _OperateType = value; }

View File

@ -9,6 +9,8 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
using SWS.Commons.Helper.Converter;
using SWS.CustomControl;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Windows; using System.Windows;
@ -29,6 +31,28 @@ using System.Windows.Media.TextFormatting;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using System.Windows.Shell; using System.Windows.Shell;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.Animation;
using Telerik.Windows.Controls.Behaviors;
using Telerik.Windows.Controls.Carousel;
using Telerik.Windows.Controls.ComboBox;
using Telerik.Windows.Controls.Data.PropertyGrid;
using Telerik.Windows.Controls.DragDrop;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Controls.LayoutControl;
using Telerik.Windows.Controls.Legend;
using Telerik.Windows.Controls.MultiColumnComboBox;
using Telerik.Windows.Controls.Primitives;
using Telerik.Windows.Controls.RadialMenu;
using Telerik.Windows.Controls.TransitionEffects;
using Telerik.Windows.Controls.TreeListView;
using Telerik.Windows.Controls.TreeView;
using Telerik.Windows.Controls.Wizard;
using Telerik.Windows.Data;
using Telerik.Windows.DragDrop;
using Telerik.Windows.DragDrop.Behaviors;
using Telerik.Windows.Input.Touch;
using Telerik.Windows.Shapes;
namespace SWS.WPF.Views { namespace SWS.WPF.Views {

View File

@ -9,6 +9,8 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
using SWS.Commons.Helper.Converter;
using SWS.CustomControl;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Windows; using System.Windows;
@ -29,6 +31,28 @@ using System.Windows.Media.TextFormatting;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using System.Windows.Shell; using System.Windows.Shell;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.Animation;
using Telerik.Windows.Controls.Behaviors;
using Telerik.Windows.Controls.Carousel;
using Telerik.Windows.Controls.ComboBox;
using Telerik.Windows.Controls.Data.PropertyGrid;
using Telerik.Windows.Controls.DragDrop;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows.Controls.LayoutControl;
using Telerik.Windows.Controls.Legend;
using Telerik.Windows.Controls.MultiColumnComboBox;
using Telerik.Windows.Controls.Primitives;
using Telerik.Windows.Controls.RadialMenu;
using Telerik.Windows.Controls.TransitionEffects;
using Telerik.Windows.Controls.TreeListView;
using Telerik.Windows.Controls.TreeView;
using Telerik.Windows.Controls.Wizard;
using Telerik.Windows.Data;
using Telerik.Windows.DragDrop;
using Telerik.Windows.DragDrop.Behaviors;
using Telerik.Windows.Input.Touch;
using Telerik.Windows.Shapes;
namespace SWS.WPF.Views { namespace SWS.WPF.Views {