电气前端提交
1
newFront/c#前端/SWS.CAD/.vs/SWS.CAD.csproj.dtbcache.json
Normal file
58
newFront/c#前端/SWS.CAD/CADFunc/BlockDragJig.cs
Normal file
@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Bricscad.EditorInput;
|
||||
using Teigha.DatabaseServices;
|
||||
using Teigha.Geometry;
|
||||
using Teigha.GraphicsInterface;
|
||||
|
||||
namespace SWS.CAD.CADFunc
|
||||
{
|
||||
// 自定义Jig类
|
||||
public class BlockDragJig : DrawJig
|
||||
{
|
||||
private BlockReference _br;
|
||||
private Bricscad.EditorInput.Editor _ed;
|
||||
private Point3d _insertPoint;
|
||||
|
||||
public BlockDragJig(BlockReference br, Bricscad.EditorInput.Editor ed)
|
||||
{
|
||||
_br = br;
|
||||
_ed = ed;
|
||||
}
|
||||
|
||||
// 实时更新位置
|
||||
protected override bool WorldDraw(WorldDraw draw)
|
||||
{
|
||||
draw.Geometry.Draw(_br);
|
||||
return true;
|
||||
}
|
||||
|
||||
// 处理鼠标移动
|
||||
protected override SamplerStatus Sampler(JigPrompts prompts)
|
||||
{
|
||||
JigPromptPointOptions ppo = new JigPromptPointOptions("\n指定图元位置: ");
|
||||
ppo.UserInputControls = UserInputControls.Accept3dCoordinates |
|
||||
UserInputControls.NoZeroResponseAccepted |
|
||||
UserInputControls.NoNegativeResponseAccepted;
|
||||
|
||||
PromptPointResult ppr = prompts.AcquirePoint(ppo);
|
||||
|
||||
if (ppr.Value != _insertPoint)
|
||||
{
|
||||
_insertPoint = ppr.Value;
|
||||
_br.Position = _insertPoint;
|
||||
return SamplerStatus.OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
return SamplerStatus.NoChange;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取最终插入点
|
||||
public Point3d InsertPoint => _insertPoint;
|
||||
}
|
||||
}
|
30
newFront/c#前端/SWS.CAD/CADFunc/Editor/EditorHelper.cs
Normal file
@ -0,0 +1,30 @@
|
||||
using Bricscad.ApplicationServices;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Teigha.Runtime;
|
||||
|
||||
namespace SWS.CAD.CADFunc.Editor
|
||||
{
|
||||
public class EditorHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// 写提示文字
|
||||
/// </summary>
|
||||
/// <param name="info"></param>
|
||||
public static void WriteInfo(string info)
|
||||
{
|
||||
|
||||
var editor = Application.DocumentManager.MdiActiveDocument?.Editor;// 获取当前文档的命令行编辑器对象。
|
||||
if (editor != null)
|
||||
{
|
||||
editor.WriteMessage($"{GlobalObject.editorPre}{info}");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
1155
newFront/c#前端/SWS.CAD/CADFunc/General.cs
Normal file
1185
newFront/c#前端/SWS.CAD/Commands.cs
Normal file
15
newFront/c#前端/SWS.CAD/Event/GetHandsIdEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class GetHandsIdEvent : PubSubEvent<List<string>>
|
||||
{
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Event/GetdwgFileIdEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class GetdwgFileIdEvent : PubSubEvent<string>
|
||||
{
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Event/IORelationEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class IORelationEvent : PubSubEvent<bool>
|
||||
{
|
||||
}
|
||||
}
|
19
newFront/c#前端/SWS.CAD/Event/NewComponent_LostFocusEvent.cs
Normal file
@ -0,0 +1,19 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.Views.CustomControl;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
/// <summary>
|
||||
/// 新增元件页面的失去焦点事件
|
||||
/// </summary>
|
||||
public class NewComponent_LostFocusEvent : PubSubEvent<propertyModel>
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.Views.CustomControl;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
/// <summary>
|
||||
/// 选择电缆位号页面的选择变更事件
|
||||
/// </summary>
|
||||
public class NewPositional_SelectChangeEvent : PubSubEvent<propertyModel>
|
||||
{
|
||||
}
|
||||
}
|
10
newFront/c#前端/SWS.CAD/Event/SelectProjectEvent.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class SelectProjectEvent : PubSubEvent<List<ec_notification>>
|
||||
{
|
||||
}
|
||||
}
|
16
newFront/c#前端/SWS.CAD/Event/SelectionChangeEvent.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.Views.CustomControl;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class SelectionChangeEvent : PubSubEvent<propertyModel>
|
||||
{
|
||||
}
|
||||
}
|
16
newFront/c#前端/SWS.CAD/Event/checkInEvent.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.Models.NoEntity;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class checkInEvent : PubSubEvent<CheckInModel>
|
||||
{
|
||||
}
|
||||
}
|
16
newFront/c#前端/SWS.CAD/Event/checkInResultEvent.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.Models.NoEntity;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class checkInResultEvent : PubSubEvent<bool>
|
||||
{
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Event/drawingChangeEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class drawingChangeEvent : PubSubEvent<ec_drawing_file>
|
||||
{
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Event/getPropertyEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class getPropertyEvent : PubSubEvent<List<string>>
|
||||
{
|
||||
}
|
||||
}
|
9
newFront/c#前端/SWS.CAD/Event/loginEvent.cs
Normal file
@ -0,0 +1,9 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class loginEvent: PubSubEvent<JToken>
|
||||
{
|
||||
}
|
||||
}
|
16
newFront/c#前端/SWS.CAD/Event/propertyChangeEvent.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.Views.CustomControl;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class propertyChangeEvent : PubSubEvent<propertyModel>
|
||||
{
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Event/selectPixelsEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class selectPixelsEvent : PubSubEvent<string>
|
||||
{
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Event/tagChangeEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class tagChangeEvent : PubSubEvent<TreeModel>
|
||||
{
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Event/treeNodeChangeEvent.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Prism.Events;
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Event
|
||||
{
|
||||
public class treeNodeChangeEvent : PubSubEvent<TreeModel>
|
||||
{
|
||||
}
|
||||
}
|
455
newFront/c#前端/SWS.CAD/GlobalObject.cs
Normal file
@ -0,0 +1,455 @@
|
||||
using IniParser;
|
||||
using Prism.Ioc;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.Models.NoEntity;
|
||||
using SWS.CAD.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Media;
|
||||
using Unity;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
|
||||
|
||||
namespace SWS.CAD
|
||||
{
|
||||
public class GlobalObject
|
||||
{
|
||||
public static string templateForDrawing = "普通图框";
|
||||
public static string editorPre = "DI_Electrical ";
|
||||
public static string TemplateFile_Template = "普通图框";
|
||||
public enum DBConst
|
||||
{
|
||||
/// <summary>
|
||||
/// 图纸类型
|
||||
/// </summary>
|
||||
Be_DrawingType,
|
||||
/// <summary>
|
||||
/// 图纸阶段
|
||||
/// </summary>
|
||||
Be_DrawingStage,
|
||||
/// <summary>
|
||||
/// 图纸系统
|
||||
/// </summary>
|
||||
Be_DrawingSystem,
|
||||
/// <summary>
|
||||
/// 材料统计
|
||||
/// </summary>
|
||||
Be_MaterialCensus,
|
||||
/// <summary>
|
||||
/// 材料范围
|
||||
/// </summary>
|
||||
Be_MaterialRange
|
||||
|
||||
}
|
||||
|
||||
#region 图纸类型
|
||||
static List<ec_dataitemdetail> _dwgType;
|
||||
/// <summary>
|
||||
/// 初始化图纸类型列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<ec_dataitemdetail> DwgType()
|
||||
{
|
||||
var res0 = new ec_dataitem { DataItemName = "图纸类型", DataItemCode = DBConst.Be_DrawingType.ToString() };
|
||||
|
||||
if (_dwgType == null)
|
||||
{
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingType.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return _dwgType;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 材料范围
|
||||
static List<ec_dataitemdetail> _dwgMaterialRange;
|
||||
/// <summary>
|
||||
/// 初始化材料材料范围
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<ec_dataitemdetail> DwgMaterialRange()
|
||||
{
|
||||
var res0 = new ec_dataitem { DataItemName = "材料范围", DataItemCode = DBConst.Be_MaterialRange.ToString() };
|
||||
|
||||
if (_dwgMaterialRange == null)
|
||||
{
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_MaterialRange.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return _dwgMaterialRange;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 材料统计
|
||||
static List<ec_dataitemdetail> _dwgMaterialCensus;
|
||||
/// <summary>
|
||||
/// 初始化材料统计列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<ec_dataitemdetail> DwgMaterialCensus()
|
||||
{
|
||||
var res0 = new ec_dataitem { DataItemName = "材料统计", DataItemCode = DBConst.Be_MaterialCensus.ToString() };
|
||||
|
||||
if (_dwgMaterialCensus == null)
|
||||
{
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_MaterialCensus.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return _dwgMaterialCensus;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 图纸阶段
|
||||
static List<ec_dataitemdetail> _dwgStage;
|
||||
/// <summary>
|
||||
/// 初始化图纸阶段列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<ec_dataitemdetail> DwgStage()
|
||||
{
|
||||
var res0 = new ec_dataitem { DataItemName = "图纸阶段", DataItemCode = DBConst.Be_DrawingStage.ToString() };
|
||||
|
||||
if (_dwgStage == null)
|
||||
{
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingStage.ToString()));
|
||||
var res2 = res.Result;
|
||||
return res2;
|
||||
}
|
||||
else
|
||||
{
|
||||
return _dwgStage;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 图纸系统
|
||||
static ObservableCollection<TreeModel> _dwgSystem;
|
||||
/// <summary>
|
||||
/// 初始化图纸系统列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static ObservableCollection<TreeModel> DwgSystem()
|
||||
{
|
||||
var res0 = new ec_dataitem { DataItemName = "图纸系统", DataItemCode = DBConst.Be_DrawingSystem.ToString() };
|
||||
|
||||
if (_dwgSystem == null)
|
||||
{
|
||||
var serv = GlobalObject.container.Resolve<DataItemService>();
|
||||
var res = Task.Run(() => serv.GetDetails(DBConst.Be_DrawingSystem.ToString()));
|
||||
var res2 = res.Result;
|
||||
var res3 = DataItemDetailsToTree(res2);
|
||||
return res3;
|
||||
}
|
||||
else
|
||||
{
|
||||
return _dwgSystem;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region DataItemDetail列表转换成树形结果
|
||||
/// <summary>
|
||||
/// DataItemDetail列表转换成树形结果
|
||||
/// </summary>
|
||||
/// <param name="listData">列表数据</param>
|
||||
/// <param name="isChildres">是否子节点遍历添加</param>
|
||||
/// <returns></returns>
|
||||
public static ObservableCollection<TreeModel> DataItemDetailsToTree(List<ec_dataitemdetail> listData, bool isChildres = false)
|
||||
{
|
||||
ObservableCollection<TreeModel> result = new ObservableCollection<TreeModel>();
|
||||
List<ec_dataitemdetail> list = new List<ec_dataitemdetail>();
|
||||
if (isChildres)
|
||||
{ list = listData; }
|
||||
else
|
||||
{
|
||||
//取所有第一级树
|
||||
list = listData.Where(a => a.UpDataItemDetailID == "0").ToList();
|
||||
}
|
||||
foreach (var data in list)
|
||||
{
|
||||
//获取当前节点的所有子节点
|
||||
var details = listData.Where(a => a.UpDataItemDetailID == data.DataItemDetailID).ToList();
|
||||
if (details.Any())
|
||||
{
|
||||
//获取子节点
|
||||
var childrens = DataItemDetailsToTree(details, true);
|
||||
result.Add(new TreeModel
|
||||
{
|
||||
ID = data.DataItemDetailID,
|
||||
Text = data.DataItemName,
|
||||
ChildNodes = childrens
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
//没有子节点就添加当前节点Node
|
||||
result.Add(new TreeModel
|
||||
{
|
||||
ID = data.DataItemDetailID,
|
||||
Text = data.DataItemName,
|
||||
});
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 对象类型树
|
||||
/// <summary>
|
||||
/// 对象类型树
|
||||
/// </summary>
|
||||
public static List<TreeModel> objectTypeTree = new List<TreeModel>();
|
||||
#endregion
|
||||
|
||||
#region 设计浏览树
|
||||
/// <summary>
|
||||
/// 设计浏览树
|
||||
/// </summary>
|
||||
public static List<TreeModel> designTree = new List<TreeModel>();
|
||||
#endregion
|
||||
|
||||
public enum dialogPar
|
||||
{
|
||||
id,
|
||||
textYes,
|
||||
textNo,
|
||||
title,
|
||||
OK,
|
||||
unitTypeId,
|
||||
info,
|
||||
unit,
|
||||
para1,
|
||||
para2
|
||||
}
|
||||
public static IUnityContainer container;
|
||||
public static IContainerExtension _prismContainer;
|
||||
public static HttpClient client;
|
||||
public static loginRes userInfo;
|
||||
public static List<User> Users;
|
||||
|
||||
public static bool isConfigIniCreateBySys = true;
|
||||
//public static string drawingFileId;
|
||||
public static ec_project curProject;
|
||||
public static DateTime preClickTime = DateTime.Now;
|
||||
public static Style TransparentComboBoxStyle;
|
||||
public static Style WhiteStyle;
|
||||
public static Unit UnitSelected;
|
||||
public static List<ec_measuring_unit> Units;
|
||||
/// <summary>
|
||||
/// 打开的图纸名列表
|
||||
/// </summary>
|
||||
public static List<DrawingOpened> ListDwgOpened = new List<DrawingOpened>();
|
||||
/// <summary>
|
||||
/// 图纸树上的所有图纸名
|
||||
/// </summary>
|
||||
public static List<string> AllDwgName = new List<string>();
|
||||
public static string currentTagNumber;
|
||||
#region 本地文件目录
|
||||
static string _LocalFileDirectory;
|
||||
/// <summary>
|
||||
/// 获取本地目录文件夹
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string GetLocalFileDirectory()
|
||||
{
|
||||
if (string.IsNullOrEmpty(_LocalFileDirectory))
|
||||
{
|
||||
string path = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\SWS\Config.ini");
|
||||
FileIniDataParser parser = new FileIniDataParser();
|
||||
var data = parser.ReadFile(path);
|
||||
_LocalFileDirectory = data["Profile"]["Directory"];
|
||||
return _LocalFileDirectory;
|
||||
}
|
||||
else
|
||||
{ return _LocalFileDirectory; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 设置本地目录文件夹
|
||||
/// </summary>
|
||||
/// <param name="dir">文件夹目录</param>
|
||||
public static void SetLocalFileDirectory(string dir)
|
||||
{ _LocalFileDirectory = dir; }
|
||||
#endregion
|
||||
|
||||
#region 图纸文件所在文件夹
|
||||
/// <summary>
|
||||
/// 图纸文件所在文件夹
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string GetDwgFileFolder()
|
||||
{
|
||||
string path = Path.Combine(GetLocalFileDirectory(), curProject.ProjectIndex.ToString());
|
||||
if (!Directory.Exists(path))
|
||||
Directory.CreateDirectory(path);
|
||||
return path;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 图纸文件备份文件夹
|
||||
/// <summary>
|
||||
/// 图纸文件备份文件夹
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string GetBackupDwgFileFolder()
|
||||
{
|
||||
string path = Path.Combine(GetDwgFileFolder(), "Backup");
|
||||
if (!Directory.Exists(path))
|
||||
Directory.CreateDirectory(path);
|
||||
return path;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 根据ID获取用户名称
|
||||
/// <summary>
|
||||
/// 根据ID获取用户名称
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetUserNameById(string id)
|
||||
{
|
||||
if (string.IsNullOrEmpty(id))
|
||||
{ return ""; }
|
||||
var user = Users.FirstOrDefault(a => a.F_UserId == id || a.F_Account == id);
|
||||
if (user != null)
|
||||
{ return user.F_RealName; }
|
||||
else
|
||||
{
|
||||
return "";
|
||||
//user = GlobalObject.Users.FirstOrDefault(a => a.F_Account == id);
|
||||
//return user != null ? user.F_RealName : "";
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 查找子控件
|
||||
|
||||
/// <summary>
|
||||
/// 查找子控件
|
||||
/// </summary>
|
||||
/// <typeparam name="T">子控件的类型</typeparam>
|
||||
/// <param name="obj">要找的是obj的子控件</param>
|
||||
/// <param name="name">想找的子控件的Name属性</param>
|
||||
/// <returns>目标子控件</returns>
|
||||
public static T GetChildObject<T>(DependencyObject obj, string name) where T : FrameworkElement
|
||||
{
|
||||
DependencyObject child = null;
|
||||
T grandChild = null;
|
||||
for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
|
||||
{
|
||||
child = VisualTreeHelper.GetChild(obj, i);
|
||||
|
||||
if (child is T && (((T)child).Name == name | string.IsNullOrEmpty(name)))
|
||||
{
|
||||
return (T)child;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 在下一级中没有找到指定名字的子控件,就再往下一级找
|
||||
grandChild = GetChildObject<T>(child, name);
|
||||
if (grandChild != null)
|
||||
return grandChild;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 判断是否是电缆
|
||||
/// <summary>
|
||||
/// 判断是否是电缆
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool IsCable(ec_objecttype obj)
|
||||
{
|
||||
if (obj == null) { return false; }
|
||||
var flag = obj.ObjectTypeName.EndsWith("电缆");
|
||||
return flag;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 取字符串最后的一个或多个数字
|
||||
/// <summary>
|
||||
/// 取字符串最后的一个或多个数字
|
||||
/// </summary>
|
||||
/// <param name="input">输入字符串</param>
|
||||
/// <param name="preInput">数字前的字符串</param>
|
||||
/// <param name="num">最后的数字</param>
|
||||
/// <returns></returns>
|
||||
public static bool GetLastNumber(string input, ref string preInput, ref int num)
|
||||
{
|
||||
string pattern = @"(\d+)$"; // 正则表达式,匹配字符串末尾的一个或多个数字
|
||||
Match match = Regex.Match(input, pattern);
|
||||
if (match.Success)
|
||||
{
|
||||
preInput = input.Substring(0, input.Length - match.Value.Length);
|
||||
num = int.Parse(match.Value);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="resName">包括命名空间</param>
|
||||
/// <returns></returns>
|
||||
public static System.Windows.Media.ImageSource ImageSourceFromEmbeddedResourceStream(string resName)
|
||||
{
|
||||
System.Reflection.Assembly assy = System.Reflection.Assembly.GetExecutingAssembly();
|
||||
//foreach (string resource in assy.GetManifestResourceNames())
|
||||
//{
|
||||
// Console.WriteLine(resource);//遍历所有的内嵌资源
|
||||
//}
|
||||
System.IO.Stream stream = assy.GetManifestResourceStream(resName);
|
||||
if (stream == null)
|
||||
return null;
|
||||
System.Windows.Media.Imaging.BitmapImage img = new System.Windows.Media.Imaging.BitmapImage();
|
||||
img.BeginInit();
|
||||
img.StreamSource = stream;
|
||||
img.EndInit();
|
||||
return img;
|
||||
}
|
||||
|
||||
public static string GetPCInfo()
|
||||
{
|
||||
string computerName = Environment.MachineName; // 获取计算机名称
|
||||
string userName = Environment.UserName; // 获取当前用户名称
|
||||
|
||||
return $"{computerName} 计算机{userName} 用户";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
51
newFront/c#前端/SWS.CAD/Helper/Behavior/PasswordHelper.cs
Normal file
@ -0,0 +1,51 @@
|
||||
using Microsoft.Xaml.Behaviors;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using Telerik.Windows.Controls;
|
||||
|
||||
namespace SWS.CAD.Helper
|
||||
{
|
||||
public class PasswordBoxBehavior : Behavior<RadPasswordBox>
|
||||
{
|
||||
public static readonly DependencyProperty PasswordProperty =
|
||||
DependencyProperty.Register(nameof(Password), typeof(string), typeof(PasswordBoxBehavior),
|
||||
new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnPasswordChanged));
|
||||
|
||||
public string Password
|
||||
{
|
||||
get { return (string)GetValue(PasswordProperty); }
|
||||
set { SetValue(PasswordProperty, value); }
|
||||
}
|
||||
|
||||
protected override void OnAttached()
|
||||
{
|
||||
base.OnAttached();
|
||||
AssociatedObject.PasswordChanged += OnPasswordChanged;
|
||||
}
|
||||
|
||||
protected override void OnDetaching()
|
||||
{
|
||||
base.OnDetaching();
|
||||
AssociatedObject.PasswordChanged -= OnPasswordChanged;
|
||||
}
|
||||
|
||||
private void OnPasswordChanged(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Password = AssociatedObject.Password;
|
||||
}
|
||||
|
||||
private static void OnPasswordChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
if (d is PasswordBoxBehavior behavior)
|
||||
{
|
||||
behavior.AssociatedObject.Password = e.NewValue as string ?? string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
107
newFront/c#前端/SWS.CAD/Helper/ConfigService.cs
Normal file
@ -0,0 +1,107 @@
|
||||
using IniParser;
|
||||
using SWS.CAD.Services;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Media.Animation;
|
||||
|
||||
namespace SWS.CAD.Helper
|
||||
{
|
||||
public class ConfigService
|
||||
{
|
||||
public string path = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\SWS\Config.ini");
|
||||
public FileIniDataParser parser = new FileIniDataParser();
|
||||
public HttpService _httpService;
|
||||
/// <summary>
|
||||
/// config.ini 给默认值,且创建出来
|
||||
/// </summary>
|
||||
void SetDefaultConfigValue()
|
||||
{
|
||||
if (!File.Exists(path))
|
||||
{//默认值
|
||||
var data = parser.Parser.Parse("");
|
||||
data["Profile"]["Address"] = "1.117.161.11";
|
||||
data["Profile"]["Port"] = "8080";
|
||||
string userProfilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
|
||||
|
||||
|
||||
data["Profile"]["Directory"] = $"{userProfilePath}\\AppData\\Roaming\\SWS";
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(path));
|
||||
parser.WriteFile(path, data);
|
||||
GlobalObject.isConfigIniCreateBySys = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
GlobalObject.isConfigIniCreateBySys = false;
|
||||
}
|
||||
}
|
||||
public ConfigService(HttpService httpService)
|
||||
{
|
||||
_httpService = httpService;
|
||||
SetDefaultConfigValue();
|
||||
string address;
|
||||
int port;
|
||||
string locDrawingPath;
|
||||
Read(out address, out port,out locDrawingPath);
|
||||
_httpService.Init(address, port);
|
||||
}
|
||||
public void Read(out string address, out int port, out string directory)
|
||||
{
|
||||
var data = parser.ReadFile(path);
|
||||
address = data["Profile"]["Address"];
|
||||
port = int.Parse(data["Profile"]["Port"]);
|
||||
directory = data["Profile"]["Directory"];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询某个
|
||||
/// </summary>
|
||||
/// <param name="keyName"></param>
|
||||
/// <returns></returns>
|
||||
public string Read(string keyName)
|
||||
{
|
||||
var data = parser.ReadFile(path);
|
||||
return data["Profile"][keyName];
|
||||
}
|
||||
/// <summary>
|
||||
/// 查询某个
|
||||
/// </summary>
|
||||
/// <param name="session">节点</param>
|
||||
/// <param name="keyName">key名称</param>
|
||||
/// <returns></returns>
|
||||
public string Read(string session,string keyName)
|
||||
{
|
||||
try
|
||||
{
|
||||
var data = parser.ReadFile(path);
|
||||
return data[session][keyName];
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 保存某个
|
||||
/// </summary>
|
||||
/// <param name="keyName"></param>
|
||||
/// <param name="value"></param>
|
||||
public void Save(string keyName, string value)
|
||||
{
|
||||
var data = parser.ReadFile(path);
|
||||
data["Profile"][keyName] = value;
|
||||
parser.WriteFile(path, data);
|
||||
}
|
||||
/// <summary>
|
||||
/// 保存某个值
|
||||
/// </summary>
|
||||
/// <param name="session">节点</param>
|
||||
/// <param name="keyName">key名称</param>
|
||||
/// <param name="value">值</param>
|
||||
public void Save(string session, string keyName, string value)
|
||||
{
|
||||
var data = parser.ReadFile(path);
|
||||
data[session][keyName] = value;
|
||||
parser.WriteFile(path, data);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using SWS.CAD.Models;
|
||||
|
||||
namespace SWS.CAD.Helper.Converter
|
||||
{
|
||||
public class CollectionToStringConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
ObservableCollection<ec_dataitemdetail> WHCPUs = value as ObservableCollection<ec_dataitemdetail>;
|
||||
if (WHCPUs != null)
|
||||
{
|
||||
string sWHCPU = "";
|
||||
for (int i = 0; i < WHCPUs.Count; i++)
|
||||
{
|
||||
if (i!= WHCPUs.Count-1)
|
||||
{
|
||||
if (WHCPUs[i] != null)
|
||||
{
|
||||
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode + "|";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (WHCPUs[i] != null)
|
||||
{
|
||||
sWHCPU = sWHCPU + WHCPUs[i].DataItemCode;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return sWHCPU;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
using SWS.CAD.Models;
|
||||
using static OfficeOpenXml.ExcelErrorValue;
|
||||
|
||||
namespace SWS.CAD.Helper.Converter
|
||||
{
|
||||
public class ComboBoxFilterConverter : IMultiValueConverter
|
||||
{
|
||||
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
// 检查参数有效性
|
||||
if (values == null || values.Length < 2)
|
||||
return null;
|
||||
|
||||
// 获取当前行选中的值
|
||||
var currentSelection = values[0] as string;
|
||||
|
||||
// 获取可用选项集合(兼容C# 7.3的类型检查)
|
||||
var availableOptions = values[1] as ObservableCollection<string>;
|
||||
if (availableOptions == null)
|
||||
return null;
|
||||
|
||||
var validOptions = new List<string>(availableOptions);
|
||||
|
||||
// 添加当前行已选值(允许取消选择)
|
||||
if (!string.IsNullOrEmpty(currentSelection) && !validOptions.Contains(currentSelection))
|
||||
{
|
||||
validOptions.Add(currentSelection);
|
||||
}
|
||||
|
||||
return validOptions;
|
||||
}
|
||||
|
||||
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
25
newFront/c#前端/SWS.CAD/Helper/Converter/ExpandConverter.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SWS.CAD.Converter
|
||||
{
|
||||
public class ExpandConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
// 假设我们基于某个布尔属性来决定是否展开
|
||||
return (bool)value; // 直接返回布尔值,用于IsExpanded绑定
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
return (bool)value;
|
||||
//throw new NotImplementedException(); // 不需要实现反向转换
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SWS.CAD.Converter
|
||||
{
|
||||
public class ImageSourceConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value == null)
|
||||
return DependencyProperty.UnsetValue;
|
||||
|
||||
var path = value.ToString();
|
||||
BitmapImage image = new BitmapImage();
|
||||
image.BeginInit();
|
||||
image.CacheOption = BitmapCacheOption.OnLoad;
|
||||
image.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
|
||||
image.UriSource = new Uri(path, UriKind.Absolute);
|
||||
image.EndInit();
|
||||
return image;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SWS.CAD.Converter
|
||||
{
|
||||
public class NotificationCheckFLGConverter : IValueConverter
|
||||
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
|
||||
/// 源到目标
|
||||
|
||||
/// </summary>
|
||||
|
||||
/// <param name="value"></param>
|
||||
|
||||
/// <param name="targetType"></param>
|
||||
|
||||
/// <param name="parameter"></param>
|
||||
|
||||
/// <param name="culture"></param>
|
||||
|
||||
/// <returns></returns>
|
||||
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
|
||||
{
|
||||
|
||||
// string ret = "";
|
||||
|
||||
if (value == null)
|
||||
return "未读";
|
||||
|
||||
return value.ToString() == "0" ? "未读" : "已读";
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
/// 目标到源
|
||||
|
||||
/// </summary>
|
||||
|
||||
/// <param name="value"></param>
|
||||
|
||||
/// <param name="targetType"></param>
|
||||
|
||||
/// <param name="parameter"></param>
|
||||
|
||||
/// <param name="culture"></param>
|
||||
|
||||
/// <returns></returns>
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
|
||||
{
|
||||
|
||||
throw new NotImplementedException();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
using SWS.CAD.ViewModels;
|
||||
|
||||
namespace SWS.CAD.Helper.Converter
|
||||
{
|
||||
internal class RadGridViewRowToBoolConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
SignalManagementInfo smif = value as SignalManagementInfo;
|
||||
if (smif != null)
|
||||
{
|
||||
if (smif.Status.Equals("deleted") || smif.Status.Equals("Confirmed"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (smif.type.Equals("信号"))
|
||||
{
|
||||
switch (parameter.ToString())
|
||||
{
|
||||
case "关联的电缆信息":
|
||||
case "关联的通道信息":
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (parameter.ToString())
|
||||
{
|
||||
case "组别":
|
||||
case "编码":
|
||||
case "信号类型":
|
||||
case "Min":
|
||||
case "Max":
|
||||
case "单位":
|
||||
case "CODE":
|
||||
case "设备名":
|
||||
case "关联的电缆信息":
|
||||
case "关联的通道信息":
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,119 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
using SWS.CAD.Models;
|
||||
using SWS.CAD.ViewModels;
|
||||
using Teigha.GraphicsSystem;
|
||||
|
||||
namespace SWS.CAD.Helper.Converter
|
||||
{
|
||||
internal class SelectedItemToBoolConverter : IMultiValueConverter
|
||||
{
|
||||
|
||||
object IMultiValueConverter.Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (values[0] != null)
|
||||
{
|
||||
|
||||
TreeModel c = (TreeModel)values[0];
|
||||
dynamic dynamicObj = c.NodeExtData;
|
||||
string PanelIDValue = dynamicObj.PanelID;
|
||||
if (c.NodeType.Equals("0"))
|
||||
{
|
||||
switch (values[1].ToString())
|
||||
{
|
||||
case "新增位置":
|
||||
return true;
|
||||
case "新建端子排":
|
||||
return false;
|
||||
case "修改位置,端子排信息":
|
||||
return true;
|
||||
case "删除节点":
|
||||
return true;
|
||||
case "选择位号关联通道":
|
||||
return false;
|
||||
case "选择电缆关联通道":
|
||||
return false;
|
||||
case "解除电缆关联通道":
|
||||
return false;
|
||||
case "新增端子排通道":
|
||||
return false;
|
||||
case "删除端子排通道":
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (c.NodeType.Equals("1") && c.ID.Equals(PanelIDValue))
|
||||
{
|
||||
switch (values[1].ToString())
|
||||
{
|
||||
case "新增位置":
|
||||
return false;
|
||||
case "新建端子排":
|
||||
return true;
|
||||
case "修改位置,端子排信息":
|
||||
return false;
|
||||
case "删除节点":
|
||||
return false;
|
||||
case "选择位号关联通道":
|
||||
return false;
|
||||
case "选择电缆关联通道":
|
||||
return false;
|
||||
case "解除电缆关联通道":
|
||||
return false;
|
||||
case "新增端子排通道":
|
||||
return false;
|
||||
case "删除端子排通道":
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if(c.NodeType.Equals("1") && c.parentId.Equals(PanelIDValue))
|
||||
{
|
||||
switch (values[1].ToString())
|
||||
{
|
||||
case "新增位置":
|
||||
return false;
|
||||
case "新建端子排":
|
||||
return false;
|
||||
case "修改位置,端子排信息":
|
||||
return true;
|
||||
case "删除节点":
|
||||
return true;
|
||||
case "选择位号关联通道":
|
||||
return true;
|
||||
case "选择电缆关联通道":
|
||||
return true;
|
||||
case "解除电缆关联通道":
|
||||
return true;
|
||||
case "新增端子排通道":
|
||||
return true;
|
||||
case "删除端子排通道":
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
object[] IMultiValueConverter.ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
using SWS.CAD.ViewModels;
|
||||
|
||||
namespace SWS.CAD.Helper.Converter
|
||||
{
|
||||
internal class StatusToColourConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
SignalManagementInfo smif = value as SignalManagementInfo;
|
||||
if (smif != null)
|
||||
{
|
||||
return smif.Status;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
43
newFront/c#前端/SWS.CAD/Helper/Converter/YesNotConverter.cs
Normal file
@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace SWS.CAD.Converter
|
||||
{
|
||||
public class YesNotConverter : IValueConverter
|
||||
{
|
||||
/// <summary>
|
||||
/// 源到目标
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value == null)
|
||||
return "";
|
||||
return value.ToString() == "1" ? "是" : "否";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 目标到源
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
118
newFront/c#前端/SWS.CAD/Helper/FileHelper.cs
Normal file
@ -0,0 +1,118 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Helper
|
||||
{
|
||||
public static class FileHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// dwg等文件名是否合法。不带后缀
|
||||
/// </summary>
|
||||
/// <param name="fileName"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsValidFileName(string fileName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// 获取 Windows 文件系统中不允许出现在文件名中的字符数组
|
||||
char[] invalidChars = Path.GetInvalidFileNameChars();
|
||||
|
||||
// 检查文件名中是否包含非法字符
|
||||
foreach (char c in invalidChars)
|
||||
{
|
||||
if (fileName.IndexOf(c) >= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否为保留文件名
|
||||
string[] reservedNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" };
|
||||
string trimmedFileName = Path.GetFileNameWithoutExtension(fileName).Trim().ToUpper();
|
||||
foreach (string reservedName in reservedNames)
|
||||
{
|
||||
if (trimmedFileName == reservedName)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查文件名是否以空格或句点结尾
|
||||
if (fileName.TrimEnd().Length != fileName.Length || fileName.TrimEnd('.').Length != fileName.Length)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public static string GetFileMD5(string filePath)
|
||||
{
|
||||
if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath))
|
||||
{
|
||||
throw new ArgumentException("文件路径无效或文件不存在", nameof(filePath));
|
||||
}
|
||||
|
||||
using (var md5 = MD5.Create()) // 创建 MD5 哈希算法实例
|
||||
using (var stream = File.OpenRead(filePath)) // 打开文件流
|
||||
{
|
||||
// 计算文件的 MD5 值
|
||||
byte[] hashBytes = md5.ComputeHash(stream);
|
||||
|
||||
// 将字节数组转换为十六进制字符串
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (var b in hashBytes)
|
||||
{
|
||||
sb.Append(b.ToString("x2")); // x2 格式化为两位小写十六进制数
|
||||
}
|
||||
|
||||
return sb.ToString(); // 返回 MD5 值的字符串
|
||||
}
|
||||
}
|
||||
|
||||
#region 检查文件是否被其他进程占用
|
||||
/// <summary>
|
||||
/// 检查文件是否被其他进程占用
|
||||
/// </summary>
|
||||
public static bool IsFileLocked(string filePath)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 尝试以独占模式打开文件
|
||||
using (FileStream fs = File.Open(
|
||||
filePath,
|
||||
FileMode.Open,
|
||||
FileAccess.ReadWrite,
|
||||
FileShare.None)) // FileShare.None 表示禁止共享
|
||||
{
|
||||
return false; // 成功打开则未被占用
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
// 检查特定错误码
|
||||
int errorCode = Marshal.GetHRForException(ex) & 0xFFFF;
|
||||
return errorCode == 32 || errorCode == 33; // 32: 共享冲突, 33: 进程锁定
|
||||
}
|
||||
catch (UnauthorizedAccessException)
|
||||
{
|
||||
return true; // 无权限访问(可能被占用)
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false; // 其他异常视为未被占用
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
144
newFront/c#前端/SWS.CAD/Helper/LoggerHelper.cs
Normal file
@ -0,0 +1,144 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace SWS.CAD.Helper
|
||||
{
|
||||
/// <summary>
|
||||
/// nLog使用帮助类
|
||||
/// </summary>
|
||||
public class LoggerHelper
|
||||
{
|
||||
private static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
|
||||
private static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
|
||||
private static readonly log4net.ILog logdebug = log4net.LogManager.GetLogger("logdebug");
|
||||
private static readonly log4net.ILog logwarn = log4net.LogManager.GetLogger("logwarn");
|
||||
private static readonly log4net.ILog logfatal = log4net.LogManager.GetLogger("logfatal");
|
||||
|
||||
private static LoggerHelper _obj = null;
|
||||
private static string logPath = string.Empty;
|
||||
private LoggerHelper()
|
||||
{
|
||||
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
|
||||
string dllPath = codeBase.Replace("file:///", "");
|
||||
dllPath = Path.GetDirectoryName(dllPath);
|
||||
logPath = Path.Combine(dllPath, "Logs\\");
|
||||
var configFile = new FileInfo(Path.Combine(dllPath, "log4net.config"));
|
||||
log4net.Config.XmlConfigurator.ConfigureAndWatch(configFile);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取当前的日志记录<see cref="LoggerHelper"/>对象。
|
||||
/// </summary>
|
||||
public static LoggerHelper Current
|
||||
{
|
||||
get => _obj ?? (new LoggerHelper());
|
||||
set => _obj = value;
|
||||
}
|
||||
|
||||
#region Debug,调试
|
||||
/// <summary>
|
||||
/// 调试信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Debug(string msg)
|
||||
{
|
||||
logdebug.Debug(msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Info,信息
|
||||
/// <summary>
|
||||
/// 普通信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Info(string msg)
|
||||
{
|
||||
loginfo.Info(msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Warn,警告
|
||||
/// <summary>
|
||||
/// 警告级别信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Warn(string msg)
|
||||
{
|
||||
logwarn.Warn(msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Error,错误
|
||||
/// <summary>
|
||||
/// 错误级别信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
public void Error(string msg)
|
||||
{
|
||||
logerror.Error("----------------------------Error BEGIN------------------------------");
|
||||
logerror.Error(msg);
|
||||
logerror.Error("-----------------------------Error END-------------------------------");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Fatal,致命错误
|
||||
/// <summary>
|
||||
/// 致命错误级别信息输出。
|
||||
/// </summary>
|
||||
/// <param name="msg">需要记录的信息。</param>
|
||||
/// <param name="err">需要记录的系统异常。</param>
|
||||
public void Fatal(string msg)
|
||||
{
|
||||
logfatal.Fatal("----------------------------Fatal BEGIN------------------------------");
|
||||
logerror.Fatal(msg);
|
||||
logerror.Fatal("-----------------------------Fatal END-------------------------------");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 输出json日志
|
||||
|
||||
/// <summary>
|
||||
/// 输出json日志
|
||||
/// </summary>
|
||||
/// <param name="funName">json方法名</param>
|
||||
/// <param name="json">json数据</param>
|
||||
public void WriteJson(string funName, string json)
|
||||
{
|
||||
try
|
||||
{
|
||||
//json路径文件名 Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\SWS\Logs\"
|
||||
string filename = Path.Combine(logPath, funName + ".json");
|
||||
//判断文件是否被打开占用
|
||||
if (!FileHelper.IsFileLocked(filename))
|
||||
{
|
||||
File.Delete(filename);
|
||||
string strJson = string.Empty;
|
||||
if (json.StartsWith("["))
|
||||
{
|
||||
//格式化json数据 当前为组类型
|
||||
JArray jobj = JArray.Parse(json);
|
||||
strJson = jobj.ToString();
|
||||
}
|
||||
else if (json.StartsWith("{"))
|
||||
{
|
||||
//格式化json数据 当前为类类型
|
||||
JObject jobj = JObject.Parse(json);
|
||||
strJson = jobj.ToString();
|
||||
}
|
||||
//创建json文件,并输出数据
|
||||
FileStream fs = new FileStream(filename, FileMode.Append);
|
||||
StreamWriter wr = null;
|
||||
wr = new StreamWriter(fs);
|
||||
wr.WriteLine(strJson);
|
||||
wr.Close();
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
84
newFront/c#前端/SWS.CAD/Helper/TreeHelper.cs
Normal file
@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SWS.CAD.Models;
|
||||
|
||||
namespace SWS.CAD.Helper
|
||||
{
|
||||
public class TreeHelper
|
||||
{
|
||||
#region 获取树节点
|
||||
|
||||
/// <summary>
|
||||
/// 获取树节点
|
||||
/// </summary>
|
||||
public static TreeModel GetTreeModel(TreeModel node, string id)
|
||||
{
|
||||
// 如果根节点为空,则返回null
|
||||
if (node == null) return null;
|
||||
// 如果找到当前节点,返回当前节点
|
||||
if (node.ID == id) return node;
|
||||
//没有子节点就返回null
|
||||
if (node.ChildNodes == null) return null;
|
||||
// 否则,递归地在子节点中查找
|
||||
foreach (var child in node.ChildNodes)
|
||||
{
|
||||
var result = GetTreeModel(child, id);
|
||||
if (result != null)
|
||||
{
|
||||
return result; // 找到后立即返回
|
||||
}
|
||||
}
|
||||
// 如果在当前树中没有找到,返回null
|
||||
return null;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 获取树节点
|
||||
/// <summary>
|
||||
/// 获取树节点
|
||||
/// </summary>
|
||||
public static TreeModel GetTreeModel(List<TreeModel> nodes, string id)
|
||||
{
|
||||
TreeModel node = null;
|
||||
foreach (var dto in GlobalObject.objectTypeTree)
|
||||
{
|
||||
//获取节点下的图纸
|
||||
node = TreeHelper.GetTreeModel(dto, id);
|
||||
if (node != null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return node;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 获取树节点所有图纸名
|
||||
|
||||
/// <summary>
|
||||
/// 获取树节点所有图纸名
|
||||
/// </summary>
|
||||
public static void GetTreeText(TreeModel node)
|
||||
{
|
||||
// 如果根节点为空,则返回null
|
||||
if (node == null) return ;
|
||||
//没有子节点就返回null
|
||||
if (node.ChildNodes == null) return ;
|
||||
// 否则,递归地在子节点中查找
|
||||
foreach (var child in node.ChildNodes)
|
||||
{
|
||||
GetTreeText(child);
|
||||
|
||||
}
|
||||
if (node.Text.ToLower().EndsWith(".dwg") && !GlobalObject.AllDwgName.Contains(node.Text))
|
||||
{ GlobalObject.AllDwgName.Add(node.Text); }
|
||||
// 如果在当前树中没有找到,返回null
|
||||
return ;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
BIN
newFront/c#前端/SWS.CAD/Images/ActiveObject.png
Normal file
After Width: | Height: | Size: 963 B |
BIN
newFront/c#前端/SWS.CAD/Images/BatchSwitch.png
Normal file
After Width: | Height: | Size: 740 B |
BIN
newFront/c#前端/SWS.CAD/Images/CSharp.ico
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/CableConnect.png
Normal file
After Width: | Height: | Size: 479 B |
BIN
newFront/c#前端/SWS.CAD/Images/CableSinal.png
Normal file
After Width: | Height: | Size: 602 B |
BIN
newFront/c#前端/SWS.CAD/Images/CalBoot.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/CalCable.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/CheckCable.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/DConfig.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/EquipmentSys.png
Normal file
After Width: | Height: | Size: 801 B |
BIN
newFront/c#前端/SWS.CAD/Images/Equipmentjoin.png
Normal file
After Width: | Height: | Size: 979 B |
BIN
newFront/c#前端/SWS.CAD/Images/Export.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/File.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/Folder.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/GraphRec.png
Normal file
After Width: | Height: | Size: 685 B |
BIN
newFront/c#前端/SWS.CAD/Images/Group.png
Normal file
After Width: | Height: | Size: 437 B |
BIN
newFront/c#前端/SWS.CAD/Images/IO.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/Imput.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/Lock.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/Lock2.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/Login.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/Message.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/OPC.png
Normal file
After Width: | Height: | Size: 637 B |
BIN
newFront/c#前端/SWS.CAD/Images/OpenProject.png
Normal file
After Width: | Height: | Size: 916 B |
BIN
newFront/c#前端/SWS.CAD/Images/Parallel.png
Normal file
After Width: | Height: | Size: 617 B |
BIN
newFront/c#前端/SWS.CAD/Images/PlaneLayout.png
Normal file
After Width: | Height: | Size: 758 B |
BIN
newFront/c#前端/SWS.CAD/Images/Property.png
Normal file
After Width: | Height: | Size: 961 B |
BIN
newFront/c#前端/SWS.CAD/Images/RefreshBlock.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/RefreshFrame.png
Normal file
After Width: | Height: | Size: 968 B |
BIN
newFront/c#前端/SWS.CAD/Images/RefreshLink.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/RefreshPosition.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/RefreshProject.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/RefreshText.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/SConfig.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/ShowLink.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/SinalManage.png
Normal file
After Width: | Height: | Size: 755 B |
BIN
newFront/c#前端/SWS.CAD/Images/Switchbox.png
Normal file
After Width: | Height: | Size: 786 B |
BIN
newFront/c#前端/SWS.CAD/Images/TConfig.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/UnLock.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/UpdatePosition.png
Normal file
After Width: | Height: | Size: 681 B |
BIN
newFront/c#前端/SWS.CAD/Images/VerticalRec.png
Normal file
After Width: | Height: | Size: 725 B |
BIN
newFront/c#前端/SWS.CAD/Images/guanlian.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/guanlian2.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/history.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/history2.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/joinsys.png
Normal file
After Width: | Height: | Size: 929 B |
BIN
newFront/c#前端/SWS.CAD/Images/lightLine.png
Normal file
After Width: | Height: | Size: 578 B |
BIN
newFront/c#前端/SWS.CAD/Images/qiehuan.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
newFront/c#前端/SWS.CAD/Images/relevancy.png
Normal file
After Width: | Height: | Size: 536 B |
BIN
newFront/c#前端/SWS.CAD/Images/user.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Telerik.Windows.Controls;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
public class CheckInLogNeedApproveModel: ViewModelBase
|
||||
{
|
||||
#region 实体成员
|
||||
/// <summary>
|
||||
/// 图纸同步ID
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string DrawingSynID { get; set; }
|
||||
/// <summary>
|
||||
/// 图纸文件ID。<see cref="ec_drawing_fileEntity.DrawingFileID"/>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string DrawingFileID { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 版本
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string FileVersion { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 修改内容
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string Remark { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 附件文件夹ID
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string FolderId { get; set; } = "";
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 图号
|
||||
/// </summary>
|
||||
public string DrawingNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图名
|
||||
/// </summary>
|
||||
public string DrawingFile { get; set; }
|
||||
/// <summary>
|
||||
/// 相关页码
|
||||
/// </summary>
|
||||
public string PageNos { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 相关电缆
|
||||
/// </summary>
|
||||
public string Cables { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否影响填料函
|
||||
/// </summary>
|
||||
public int IsMaterial { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 修改类型(新增 删除 修改)
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 相关的云线句柄
|
||||
/// </summary>
|
||||
public string cloud { get; set; }
|
||||
/// <summary>
|
||||
/// 是否影响生产设计。1代表影响,然后需要生产主管去确认。
|
||||
/// </summary>
|
||||
public int IsProcess { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 涉及的其他图纸ID或name。
|
||||
/// </summary>
|
||||
public string otherDwgIds { get; set; }
|
||||
/// <summary>
|
||||
/// 是否被生产主管确认
|
||||
/// </summary>
|
||||
public int ApproveByAdmin { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CreateUserID { get; set; }
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
/// <summary>
|
||||
/// 更新人
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string UpdateUserID { get; set; }
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
#endregion
|
||||
|
||||
#region 扩展字段
|
||||
/// <summary>
|
||||
/// 创建人名称
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CreateUserName { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
private bool _IsSelected;
|
||||
/// <summary>
|
||||
/// 是否选中
|
||||
/// </summary>
|
||||
public bool IsSelected
|
||||
{
|
||||
get { return _IsSelected; }
|
||||
set { _IsSelected = value; OnPropertyChanged(nameof(IsSelected)); }
|
||||
}
|
||||
}
|
||||
}
|
15
newFront/c#前端/SWS.CAD/Models/NoEntity/CheckInModel.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
public class CheckInModel
|
||||
{
|
||||
public ec_drawing_file dwgObj { get; set; }
|
||||
public List<string> handles { get; set; }
|
||||
public ec_drawing_syn syn { get; set; }
|
||||
}
|
||||
}
|
36
newFront/c#前端/SWS.CAD/Models/NoEntity/ConfigIni.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Models.NoEntity
|
||||
{
|
||||
public class ConfigIni
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户名
|
||||
/// </summary>
|
||||
public string UserName { get; set; }
|
||||
/// <summary>
|
||||
/// 用户密码
|
||||
/// </summary>
|
||||
public string UserPs { get; set; }
|
||||
/// <summary>
|
||||
/// 项目id
|
||||
/// </summary>
|
||||
public string ProjectID { get; set; }
|
||||
/// <summary>
|
||||
/// 服务器ip
|
||||
/// </summary>
|
||||
public string Address { get; set; }
|
||||
/// <summary>
|
||||
/// 端口
|
||||
/// </summary>
|
||||
public string Port { get; set; }
|
||||
/// <summary>
|
||||
/// 设计元件 最近使用
|
||||
/// </summary>
|
||||
public string RecentObjectType { get; set; }
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
using Prism.Commands;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Models.NoEntity
|
||||
{
|
||||
public class ContextOperationModel
|
||||
{
|
||||
public string Header { get; set; }
|
||||
public string IconGlyph { get; set; }
|
||||
/// <summary>
|
||||
/// 大概率会直接在xaml里绑定command。如Setter Property="Command" Value="{Binding Command}"。
|
||||
/// 带了一个object参数,可以xaml里再绑定一个CommandParameter进去。
|
||||
/// </summary>
|
||||
public DelegateCommand<object> Command { get; set; }
|
||||
|
||||
public ContextOperationModel(string header, DelegateCommand<object> delegateCommand)
|
||||
{
|
||||
Header = header;
|
||||
Command = delegateCommand;
|
||||
}
|
||||
}
|
||||
}
|
27
newFront/c#前端/SWS.CAD/Models/NoEntity/DrawingOpened.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 已打开编辑的图纸信息
|
||||
/// </summary>
|
||||
public class DrawingOpened
|
||||
{
|
||||
/// <summary>
|
||||
/// 图纸ID
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
/// <summary>
|
||||
/// 图纸路径
|
||||
/// </summary>
|
||||
public string Path { get; set; }
|
||||
/// <summary>
|
||||
/// 是否只读
|
||||
/// </summary>
|
||||
public bool IsReadOnly { get; set; }
|
||||
}
|
||||
}
|
22
newFront/c#前端/SWS.CAD/Models/NoEntity/GroupAttribute.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.All | AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method,
|
||||
AllowMultiple = true, Inherited = true)]
|
||||
public class GroupAttribute : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 分组名称
|
||||
/// </summary>
|
||||
public string GroupName;
|
||||
/// <summary>
|
||||
/// 初始化
|
||||
/// </summary>
|
||||
/// <param name="groupName">分组名称</param>
|
||||
public GroupAttribute(string groupName)
|
||||
{
|
||||
GroupName=groupName;
|
||||
}
|
||||
}
|
||||
}
|
11
newFront/c#前端/SWS.CAD/Models/NoEntity/PageModel.cs
Normal file
@ -0,0 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
public class PageModel<T>
|
||||
{
|
||||
public List<T> Rows { get; set; }
|
||||
public int Total { get; set; }
|
||||
public int Records { get; set; }
|
||||
}
|
||||
}
|
130
newFront/c#前端/SWS.CAD/Models/NoEntity/PropertyObjectModel.cs
Normal file
@ -0,0 +1,130 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SWS.CAD.Views.CustomControl;
|
||||
using Telerik.Windows.Controls;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
public class PropertyObjectModel : ViewModelBase
|
||||
{
|
||||
private List<string> _listHandels = new List<string>();
|
||||
/// <summary>
|
||||
/// 句柄ID
|
||||
/// </summary>
|
||||
public List<string> listHandels
|
||||
{
|
||||
get { return _listHandels; }
|
||||
set { _listHandels = value; RaisePropertyChanged(nameof(listHandels)); }
|
||||
}
|
||||
private string _tagNumber;
|
||||
/// <summary>
|
||||
/// 位号
|
||||
/// </summary>
|
||||
public string tagNumber
|
||||
{
|
||||
get { return _tagNumber; }
|
||||
set
|
||||
{
|
||||
_tagNumber = value;
|
||||
RaisePropertyChanged(nameof(tagNumber));
|
||||
}
|
||||
}
|
||||
private string _objectTypeName;
|
||||
/// <summary>
|
||||
/// 元件名称
|
||||
/// </summary>
|
||||
public string objectTypeName
|
||||
{
|
||||
get { return _objectTypeName; }
|
||||
set
|
||||
{
|
||||
_objectTypeName = value;
|
||||
RaisePropertyChanged(nameof(objectTypeName));
|
||||
}
|
||||
}
|
||||
private string _CreateUserID;
|
||||
/// <summary>
|
||||
/// 元件创建者ID
|
||||
/// </summary>
|
||||
public string CreateUserID
|
||||
{
|
||||
get { return _CreateUserID; }
|
||||
set
|
||||
{
|
||||
_CreateUserID = value;
|
||||
RaisePropertyChanged(nameof(CreateUserID));
|
||||
}
|
||||
}
|
||||
private string _EngineDataID;
|
||||
/// <summary>
|
||||
/// 元件ID
|
||||
/// </summary>
|
||||
public string EngineDataID
|
||||
{
|
||||
get
|
||||
{
|
||||
return _EngineDataID;
|
||||
}
|
||||
set
|
||||
{
|
||||
_EngineDataID = value;
|
||||
OnPropertyChanged(nameof(EngineDataID));
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 显示名称
|
||||
/// </summary>
|
||||
public string objectDisplayName
|
||||
{
|
||||
get
|
||||
{
|
||||
if (listHandels.Count > 1)
|
||||
{
|
||||
return $"{_objectTypeName}(X{listHandels.Count})";
|
||||
}
|
||||
else
|
||||
{
|
||||
return _objectTypeName;
|
||||
}
|
||||
}
|
||||
}
|
||||
private ObservableCollection<propertyModel> _listProperty = new ObservableCollection<propertyModel>();
|
||||
/// <summary>
|
||||
/// 常用属性列表
|
||||
/// </summary>
|
||||
public ObservableCollection<propertyModel> listBasicTypeP
|
||||
{
|
||||
get { return _listProperty; }
|
||||
set
|
||||
{
|
||||
_listProperty = value;
|
||||
RaisePropertyChanged(nameof(listBasicTypeP));
|
||||
}
|
||||
}
|
||||
|
||||
//private ObservableCollection<propertyModel> _listNotBasicTypeP = new ObservableCollection<propertyModel>();
|
||||
///// <summary>
|
||||
///// 不常用属性列表
|
||||
///// </summary>
|
||||
//public ObservableCollection<propertyModel> listNotBasicTypeP
|
||||
//{
|
||||
// get { return _listNotBasicTypeP; }
|
||||
// set { _listNotBasicTypeP = value; RaisePropertyChanged(nameof(listNotBasicTypeP)); }
|
||||
//}
|
||||
/// <summary>
|
||||
/// 属性数据,修改属性值时进行比对是否有修改
|
||||
/// </summary>
|
||||
public List<ProtertyData> listData = new List<ProtertyData>();
|
||||
}
|
||||
public class ProtertyData
|
||||
{
|
||||
/// <summary>
|
||||
/// 属性数据,修改属性值时进行比对是否有修改
|
||||
/// </summary>
|
||||
public List<ec_enginedata> listEnginedata = new List<ec_enginedata>();
|
||||
}
|
||||
}
|
107
newFront/c#前端/SWS.CAD/Models/NoEntity/TreeModel.cs
Normal file
@ -0,0 +1,107 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows.Media;
|
||||
using Telerik.Windows.Controls;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TreeView;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
public class TreeModel : ViewModelBase, System.ICloneable
|
||||
{
|
||||
public string ID { get; set; }
|
||||
private string _Text;
|
||||
/// <summary>
|
||||
/// 节点显示数据
|
||||
/// </summary>
|
||||
public string Text
|
||||
{
|
||||
get { return _Text; }
|
||||
set
|
||||
{
|
||||
_Text = value;
|
||||
if (_Text.ToLower().EndsWith(".dwg"))
|
||||
{
|
||||
Glyph = "";
|
||||
}
|
||||
OnPropertyChanged(nameof(Text));
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 父级节点ID。比如某个目录下有什么文件
|
||||
/// </summary>
|
||||
public string parentId { get; set; }
|
||||
private bool _isexpand;
|
||||
/// <summary>
|
||||
/// 控制展开/折叠状态
|
||||
/// </summary>
|
||||
public bool isexpand
|
||||
{
|
||||
get { return _isexpand; }
|
||||
set { _isexpand = value; OnPropertyChanged(nameof(isexpand)); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 节点类型
|
||||
/// </summary>
|
||||
public string NodeType { get; set; }
|
||||
|
||||
string _ToolTipText;
|
||||
/// <summary>
|
||||
/// 鼠标悬停提示词
|
||||
/// </summary>
|
||||
public string ToolTipText
|
||||
{
|
||||
get { return _ToolTipText; }
|
||||
set { _ToolTipText = value; OnPropertyChanged(nameof(ToolTipText)); }
|
||||
}
|
||||
|
||||
Brush _fontColor = new SolidColorBrush(Colors.White);
|
||||
/// <summary>
|
||||
/// 节点字体颜色
|
||||
/// </summary>
|
||||
public Brush FontColor
|
||||
{
|
||||
get { return _fontColor; }
|
||||
set { _fontColor = value; OnPropertyChanged(nameof(FontColor)); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int? OrderNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态 0:检入, 1:自己检出, 2:别人检出
|
||||
/// </summary>
|
||||
public int CheckInOutStatus { get; set; }
|
||||
|
||||
private ObservableCollection<TreeModel> _ChildNodes=new ObservableCollection<TreeModel>();
|
||||
|
||||
public ObservableCollection<TreeModel> ChildNodes
|
||||
{
|
||||
get { return _ChildNodes; }
|
||||
set { _ChildNodes = value; RaisePropertyChanged(nameof(ChildNodes)); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 扩展数据。比如具体对象的实体类信息
|
||||
/// </summary>
|
||||
public object NodeExtData { get; set; }
|
||||
|
||||
string _Glyph = "";
|
||||
/// <summary>
|
||||
/// 节点图标
|
||||
/// </summary>
|
||||
public string Glyph
|
||||
{
|
||||
get { return _Glyph; }
|
||||
set { _Glyph = value; OnPropertyChanged(nameof(Glyph)); }
|
||||
}
|
||||
/// <summary>
|
||||
/// 克隆实体类
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public object Clone()
|
||||
{
|
||||
return this.MemberwiseClone();
|
||||
}
|
||||
}
|
||||
}
|
32
newFront/c#前端/SWS.CAD/Models/NoEntity/Unit.cs
Normal file
@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Telerik.Windows.Controls;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
public class Unit : ViewModelBase
|
||||
{
|
||||
private string _UnitId;
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
public string UnitId
|
||||
{
|
||||
get { return _UnitId; }
|
||||
set { _UnitId = value; RaisePropertyChanged(nameof(UnitId)); }
|
||||
}
|
||||
|
||||
private string _UnitName;
|
||||
/// <summary>
|
||||
/// 单位
|
||||
/// </summary>
|
||||
public string UnitName
|
||||
{
|
||||
get { return _UnitName; }
|
||||
set { _UnitName = value; RaisePropertyChanged(nameof(UnitName)); }
|
||||
}
|
||||
}
|
||||
}
|
13
newFront/c#前端/SWS.CAD/Models/NoEntity/learunHttpRes.cs
Normal file
@ -0,0 +1,13 @@
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// learun mvc标准的http返回结果
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class learunHttpRes<T>
|
||||
{
|
||||
public int code { get; set; }
|
||||
public string info { get; set; }
|
||||
public T data { get; set; }
|
||||
}
|
||||
}
|
22
newFront/c#前端/SWS.CAD/Models/NoEntity/loginRes.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SWS.CAD.Models.NoEntity
|
||||
{
|
||||
public class loginRes
|
||||
{
|
||||
public string token { get; set; }
|
||||
public string loginMark { get; set; }
|
||||
public string account { get; set; }
|
||||
public string userId { get; set; }
|
||||
public string RealName { get; set; }
|
||||
|
||||
public string userPs { get; set; }
|
||||
public string IsIOModuleAdmin { get; set; }
|
||||
public string isFirstLogin { get; set; }
|
||||
public string Department { get; set; }
|
||||
}
|
||||
}
|
77
newFront/c#前端/SWS.CAD/Models/annexesfile.cs
Normal file
@ -0,0 +1,77 @@
|
||||
|
||||
using System;
|
||||
|
||||
namespace SWS.CAD.Models
|
||||
{
|
||||
|
||||
public class annexesfile
|
||||
{
|
||||
#region 实体成员
|
||||
/// <summary>
|
||||
/// 文件主键
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_Id { get; set; }
|
||||
/// <summary>
|
||||
/// 附件夹主键
|
||||
/// </summary>
|
||||
public string F_FolderId { get; set; }
|
||||
/// <summary>
|
||||
/// 文件名称
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_FileName { get; set; }
|
||||
/// <summary>
|
||||
/// 文件路径
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_FilePath { get; set; }
|
||||
/// <summary>
|
||||
/// 文件大小
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_FileSize { get; set; } = "0";
|
||||
/// <summary>
|
||||
/// 文件后缀
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_FileExtensions { get; set; }
|
||||
/// <summary>
|
||||
/// 文件类型
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_FileType { get; set; }
|
||||
/// <summary>
|
||||
/// 下载次数
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public int? F_DownloadCount { get; set; }
|
||||
/// <summary>
|
||||
/// 创建日期
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public DateTime? F_CreateDate { get; set; }
|
||||
/// <summary>
|
||||
/// 创建用户主键
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_CreateUserId { get; set; }
|
||||
/// <summary>
|
||||
/// 创建用户
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_CreateUserName { get; set; }
|
||||
/// <summary>
|
||||
/// 缩略图路径
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_ThumbnailImgPath { get; set; }
|
||||
/// <summary>
|
||||
/// WebFileID文件 祝幸 20191112
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string F_WebFileID { get; set; }
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
114
newFront/c#前端/SWS.CAD/Models/ec_Cable.cs
Normal file
@ -0,0 +1,114 @@
|
||||
using SWS.CAD.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
namespace SWS.CAD.Models
|
||||
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
|
||||
/// Copyright (c) 2013-2018 Hexagon PPM
|
||||
/// 创 建:超级管理员
|
||||
/// 日 期:2022-06-21 15:32
|
||||
/// 描 述:接线模块 - panel柜子
|
||||
/// </summary>
|
||||
public class ec_Cable
|
||||
{
|
||||
#region 实体成员
|
||||
/// <summary>
|
||||
/// ID
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CableID { get; set; }
|
||||
/// <summary>
|
||||
/// Cable_Format
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string Cable_Format { get; set; } = "";
|
||||
/// <summary>
|
||||
/// EngineerDataID。对应<see cref="ec_Archive_enginedata.EngineDataID"/>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string EngineerDataID { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 是否为母线类型。如果是,里面走的信号也只能是通讯信号<see cref="ec_Wire_GroupEntity.CommunicationPoint"/>
|
||||
/// conventional或homerun
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CableClass { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// 即里面走的信号的信号类型?<see cref="ec_Wire_GroupEntity.IO_Type"/>
|
||||
/// RS485 RS422 TCP/IP MQTT(如果是通讯母线,通讯类型是什么。)
|
||||
/// Digital 4-20mA Pulse Pt100(如果是非母线,IO类型是什么。)
|
||||
/// </summary>
|
||||
public string PreAssignIOType { get; set; } = "";
|
||||
/// <summary>
|
||||
/// 电缆预分配时,必须指定它应该在哪个IO柜子
|
||||
/// </summary>
|
||||
public string PanelID { get; set; }
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string CreateUserID { get; set; }
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public DateTime? CreateTime { get; set; }
|
||||
/// <summary>
|
||||
/// 更新人
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string UpdateUserID { get; set; }
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
#endregion
|
||||
|
||||
|
||||
#region 扩展字段
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public List<ec_CableSet> Sets { set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// 平行电缆数据
|
||||
/// </summary>
|
||||
public List<ec_parallel_Cable> parallelCables { set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的通讯点
|
||||
/// </summary>
|
||||
public List<string> WireGroupIds { set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联的通讯点
|
||||
/// </summary>
|
||||
public IEnumerable<ec_Wire_Group> WireGroups { set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// 对应到<see cref="ec_Archive_enginedata.TagNumber"/>
|
||||
/// </summary>
|
||||
public string TagNumber { set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// From连接处的工程位号信息
|
||||
/// </summary>
|
||||
public ec_Panel FromPanel { set; get; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// From连接处的工程位号信息(
|
||||
/// </summary>
|
||||
public ec_Panel ToPanel { set; get; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|