diff --git a/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs b/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs index a6307f5..b82ff70 100644 --- a/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs +++ b/HT.Cloud.Domain/Entity/DevicesManage/MetaTagEntity.cs @@ -26,7 +26,7 @@ namespace HT.Cloud.Domain.DevicesManage /// /// [SugarColumn(ColumnName="DataType", ColumnDescription = "",ColumnDataType = "tinyint(3)")] - public bool DataType { get; set; } + public short DataType { get; set; } /// /// /// diff --git a/HT.Cloud.Service/DevicesManage/MetaTagService.cs b/HT.Cloud.Service/DevicesManage/MetaTagService.cs index 90dae6c..1bf0653 100644 --- a/HT.Cloud.Service/DevicesManage/MetaTagService.cs +++ b/HT.Cloud.Service/DevicesManage/MetaTagService.cs @@ -5,6 +5,8 @@ using System.Linq; using System.Threading.Tasks; using HT.Cloud.Code; using HT.Cloud.Domain.DevicesManage; +using Microsoft.Extensions.FileSystemGlobbing.Internal; +using Serenity.Services; using SqlSugar; namespace HT.Cloud.Service.DevicesManage @@ -21,7 +23,7 @@ namespace HT.Cloud.Service.DevicesManage } /// - /// 获取服务器中设备与变量组信息树列表和子节点 + /// 获取服务器中设备与变量组信息树列表和子节点,通讯参数driverid添加T,变量组配置id添加B /// /// public async Task GetALLNode() @@ -33,22 +35,22 @@ namespace HT.Cloud.Service.DevicesManage var ts = list_drive.Select(a => new { - title = a.DriverName, - id = a.DriverID, + name = a.DriverName, + id = a.DriverID.ToString(), children = new[] { new Children { id = "T" + a.DriverID, - title = "通讯参数", + name = "通讯参数", }, new Children { - id = "B" + a.DriverID, - title = "变量配置", + id = "D" + a.DriverID, + name = "变量配置", children = list_group.Where(aa=>aa.DriverID == a.DriverID).Select(aa=>new Children { - title = aa.GroupName, - id = aa.GroupID.ToString(), + name = aa.GroupName, + id = "B" + aa.GroupID.ToString(), }).ToList() } @@ -59,15 +61,52 @@ namespace HT.Cloud.Service.DevicesManage // id = aa.GroupID, //}).ToList() }).ToList(); - + #region 取消key值引号 + //string pattern = "\"(\\w+)\"(\\s*:\\s*)"; + //string replacement = "$1$2"; + //System.Text.RegularExpressions.Regex rgx = new System.Text.RegularExpressions.Regex(pattern); + //return rgx.Replace(ts.ToJsonNullValueHandling(), replacement); + #endregion return ts.ToJsonNullValueHandling(); - } - - public class Children + } + public class Children { public string id { get; set; } - public string title { get; set; } + public string name { get; set; } public List children { get; set; } } - } + + public async Task GetDriverArgument(int driverId) + { + var listArgument = _context.Queryable().Where(x=>x.DriverID == driverId).ToList(); + var dt = new Dictionary(); + foreach(var argument in listArgument) + { + dt.Add(argument.PropertyName, argument.PropertyValue); + } + return dt.ToJson(); + } + public async Task GetGroupVarTable(int groupId) + { + var listMetaTag = _context.Queryable().Where(x => x.GroupID == groupId).ToList(); + + var metaTagRedata = new MetaTagRedata + { + code = 0, + msg = "", + count = listMetaTag.Count, + data = listMetaTag + }; + + return metaTagRedata.ToJson(); + } + public class MetaTagRedata + { + public int code { get;set; } + public string msg { get; set; } + public int count { get; set; } + public List data { get; set; } + } + + } } diff --git a/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs b/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs index f48f7fe..d4342c3 100644 --- a/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs +++ b/HT.Cloud.Web/Areas/DevicesManage/Controllers/MetaTagController.cs @@ -8,6 +8,7 @@ using HT.Cloud.Domain.ChartsManage; using HT.Cloud.Service; using Microsoft.AspNetCore.Authorization; using HT.Cloud.Service.DevicesManage; +using System.Text.RegularExpressions; namespace HT.Cloud.Web.Areas.DevicesManage.Controllers { @@ -27,7 +28,42 @@ namespace HT.Cloud.Web.Areas.DevicesManage.Controllers var data = await _metaTagService.GetALLNode(); return Content(data); } - + [HttpPost] + public async Task GetDriverArgument(string[] driverId) + { + int drivreIId = 0; + try + { + drivreIId = int.Parse(Regex.Replace(driverId[0], "[a-zA-Z]", "", RegexOptions.IgnoreCase)); + } + catch(Exception ex) + { + Console.WriteLine(ex.Message); + } + var data = await _metaTagService.GetDriverArgument(drivreIId); + return Content(data); + } + [HttpPost] + public async Task GetGroupVarTable(string[] groupId) + { + int groupIId = 0; + try + { + groupIId = int.Parse(Regex.Replace(groupId[0], "[a-zA-Z]", "", RegexOptions.IgnoreCase)); + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + var data = await _metaTagService.GetGroupVarTable(groupIId); + return Content(data); + } + [HttpPost] + public async Task SaveArgument(string driverId, string name, string value) + { + var data = ""; + return Content(data); + } } } diff --git a/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Form.cshtml b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Form.cshtml new file mode 100644 index 0000000..33a7361 --- /dev/null +++ b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Form.cshtml @@ -0,0 +1,195 @@ +@{ + ViewBag.Title = "Form"; + Layout = "~/Views/Shared/_Form.cshtml"; +} + + + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+ + diff --git a/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml index 14874af..9d23ed5 100644 --- a/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml +++ b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Index.cshtml @@ -23,6 +23,19 @@ common = layui.common; //加载数据 wcLoading.close(); + + + + var showArgument = document.getElementById('showArgument');//选取id为test的div元素 + var showTag = document.getElementById('showTag');//选取id为test的div元素 + + showArgument.style.display = 'none';// 隐藏选择的元素 + showTag.style.display = 'none';// 隐藏选择的元素 + //t.style.display = 'none';// 隐藏选择的元素 + + //t.style.display = 'block';// 以块级样式显示 + + //权限控制(js是值传递) //toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML); @@ -31,23 +44,194 @@ //获取所有子系统列表ok async function GetAllNode() { debugger; - $.ajax({ - url: "/DevicesManage/MetaTag/GetAllNode", - type: "Get", - //dataType: "json", - async: false, - //data: datapa, - success: function (redata) { - debugger; - var listsubsysname = JSON.parse(redata); - debugger; - tree.render({ - elem: '#drtree', - data:redata - }); - } - }); + //$.ajax({ + // url: "/DevicesManage/MetaTag/GetAllNode", + // type: "Get", + // //dataType: "json", + // async: false, + // //data: datapa, + // success: function (redata) { + // var jsonData = JSON.stringify(redata); + // debugger; + + // $('#test').tree() + // } + //}); + $('#test').treegrid({ + method:"get", + url: "/DevicesManage/MetaTag/GetAllNode", + onClickRow: function (row) { + if (/T/.test(row.id.toString())) { + showArgument.style.display = 'block';// 隐藏选择的元素 + showTag.style.display = 'none';// 隐藏选择的元素 + LaodArgument(row); + } + if (/B/.test(row.id.toString())) { + showArgument.style.display = 'none';// 隐藏选择的元素 + showTag.style.display = 'block';// 隐藏选择的元素 + LaodTagList(row); + } + }, + onLoadSuccess(row, data) { + //$('#test').treegrid('select', 'T' + window.querystring("id")); + } + }); } + + async function LaodArgument(row){ + debugger; + var driver_Id = row.id.toString(); + var datapa = new Array; + datapa.push(driver_Id); + debugger; + await $.ajax({ + url: "/DevicesManage/MetaTag/GetDriverArgument", + type: "Post", + dataType: "json", + traditional: true,//这里设置为true + data: { driverId: datapa }, + success: function (redata) { + //在此判断cpu类型并展现不同的表单。 + var argumentFormSiemens = document.getElementById('argumentFormSiemens'); + argumentFormSiemens.style.display = 'block'; + debugger; + document.getElementById('ServerName_Siemens').value = redata.ServerName; + document.getElementById('Rack_Siemens').value = redata.Rack; + document.getElementById('Slot_Siemens').value = redata.Slot; + document.getElementById('TimeOut_Siemens').value = redata.TimeOut; + //document.getElementById('PLCType_Siemens').value = redata.PLCType; + select_value("PLCType_Siemens", redata.PLCType); + } + }); + } + function select_value(id, value) {//按照option的值来选择 + selectdom = document.getElementById(id); + option = selectdom.getElementsByTagName("option"); + for (var i = 0; i < option.length; i++) { + if (option[i].value == value) { + selectdom.selectedIndex = i; break; + } + } + } + async function LaodTagList(row) { + debugger; + var group_Id = row.id.toString(); + var datapa = new Array; + datapa.push(group_Id); + var tableHeight = showTag.style.height - 10; + //var oUrl = window.location.host + "/DevicesManage/MetaTag/GetGroupVarTable"; + //var dataUrl = getUrl(oUrl, { groupId: datapa }); + //debugger; + //table.render({ + // elem: 'metaTable', + // url: dataUrl, + // editTrigger:'dblclick', + // cols:[[ + // { type: 'checkbox' }, + // {fiele:'TagID',title:'ID',width:'auto',sort : true }, + + // ]] + //}); + await $.ajax({ + url: "/DevicesManage/MetaTag/GetGroupVarTable", + type: "Post", + dataType: "json", + traditional: true,//这里设置为true + data: { groupId: datapa }, + success: function (redata) { + table.render({ + elem: '#metaTable', + height:'full-10', + //defaultToolbar: ['filter', 'print', 'exports', { + //title: '提示' //标题 + //,layEvent: 'LAYTABLE_TIPS' //事件名,用于 toolbar 事件中使用 + //,icon: 'layui-icon-tips' //图标类名 + //}], + data: redata.data, + editTrigger:'dblclick', + cols:[[ + { type: 'checkbox' }, + { field: 'TagID', title: 'ID', sort: true }, + { field: 'Description' , title:'变量名称' , edit:'text'}, + { field: 'TagName' , title:'变量编码' , edit:'text'}, + { field: 'DataType' , title:'数值类型' , edit:'text'}, + { field: 'Address' , title:'起始地址' , edit:'text'}, + { field: 'Subsystem' , title:'所属系统' , edit:'text', filter:true}, + //{ field: 'RtValue' , title:'当前值' , edit:'text'}, + { field: 'Units' , title:'变量单位' , edit:'text'}, + + ]], + page:true, + limit:20, + // response:{ + // statusName:'code', //规定返回的状态码字段为code + // statusCode:0 //规定成功的状态码味200 + // }, + // parseData:function(res){ + //return { + //"code" : redata.code, //解析接口状态 + //"msg" : redata.msg, //解析提示文本 + // "data" : redata.data //解析数据列表 + //} + //}, + }); + } + }); + } + /** + * 传入对象返回url参数 + * param{ Object } data { a: 1 } + * returns{ string } + */ + function getParam(data){ + let url = ''; + for (var k in data) { + let value = data[k] !== undefined ? data[k] : ''; + url += `&${k}=${encodeURIComponent(value)}` + } + return url ? url.substring(1) : '' + } + + /** + * 将url和参数拼接成完整地址 + * param {string} url url地址 + * param {Json} data json对象 + * returns {string} + */ + function getUrl(url, data){ + //看原始url地址中开头是否带?,然后拼接处理好的参数 + return url += (url.indexOf('?') < 0 ? '?' : '') + this.getParam(data) + } + + openForm = function(){ + common.modalOpen({ + title: "添加变量", + url: "/DevicesManage/MetaTag/Form", + width: "850px", + height: "700px", + }); + } + openEdit = function () { + common.modalOpen({ + title: "修改变量", + url: "/DevicesManage/MetaTag/Form", + width: "849px", + height: "699px", + }); + } + + newDriver = function () { + + } + newGroup = function () { + + } + editModel1 = function () { + + } + destroyModel1 = function () { + + } }); @@ -56,27 +240,95 @@ -
-
-
-
- @*
    *@ -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    +
    +
    +
    + + + + + + +
    设备名称
    + +
    +
    +
    +
    @*//;background:red*@ +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + +
    +
    @*;background:black*@ +
    + + + + @**@ +
    +
    +
    +
    +
    + diff --git a/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Modfiy.cshtml b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Modfiy.cshtml new file mode 100644 index 0000000..a3f0460 --- /dev/null +++ b/HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Modfiy.cshtml @@ -0,0 +1,86 @@ +@{ + ViewBag.Title = "Details"; + Layout = "~/Views/Shared/_Form.cshtml"; +} + + + +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + @*
    +
    + +
    +
    *@ +
    +
    +
    + +