更新设备变量新追加
This commit is contained in:
@ -26,7 +26,7 @@ namespace HT.Cloud.Domain.DevicesManage
|
|||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName="DataType", ColumnDescription = "",ColumnDataType = "tinyint(3)")]
|
[SugarColumn(ColumnName="DataType", ColumnDescription = "",ColumnDataType = "tinyint(3)")]
|
||||||
public bool DataType { get; set; }
|
public short DataType { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -5,6 +5,8 @@ using System.Linq;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using HT.Cloud.Code;
|
using HT.Cloud.Code;
|
||||||
using HT.Cloud.Domain.DevicesManage;
|
using HT.Cloud.Domain.DevicesManage;
|
||||||
|
using Microsoft.Extensions.FileSystemGlobbing.Internal;
|
||||||
|
using Serenity.Services;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
|
|
||||||
namespace HT.Cloud.Service.DevicesManage
|
namespace HT.Cloud.Service.DevicesManage
|
||||||
@ -21,7 +23,7 @@ namespace HT.Cloud.Service.DevicesManage
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取服务器中设备与变量组信息树列表和子节点
|
/// 获取服务器中设备与变量组信息树列表和子节点,通讯参数driverid添加T,变量组配置id添加B
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<string> GetALLNode()
|
public async Task<string> GetALLNode()
|
||||||
@ -33,22 +35,22 @@ namespace HT.Cloud.Service.DevicesManage
|
|||||||
|
|
||||||
var ts = list_drive.Select(a => new
|
var ts = list_drive.Select(a => new
|
||||||
{
|
{
|
||||||
title = a.DriverName,
|
name = a.DriverName,
|
||||||
id = a.DriverID,
|
id = a.DriverID.ToString(),
|
||||||
children = new[] {
|
children = new[] {
|
||||||
new Children
|
new Children
|
||||||
{
|
{
|
||||||
id = "T" + a.DriverID,
|
id = "T" + a.DriverID,
|
||||||
title = "通讯参数",
|
name = "通讯参数",
|
||||||
},
|
},
|
||||||
new Children
|
new Children
|
||||||
{
|
{
|
||||||
id = "B" + a.DriverID,
|
id = "D" + a.DriverID,
|
||||||
title = "变量配置",
|
name = "变量配置",
|
||||||
children = list_group.Where(aa=>aa.DriverID == a.DriverID).Select(aa=>new Children
|
children = list_group.Where(aa=>aa.DriverID == a.DriverID).Select(aa=>new Children
|
||||||
{
|
{
|
||||||
title = aa.GroupName,
|
name = aa.GroupName,
|
||||||
id = aa.GroupID.ToString(),
|
id = "B" + aa.GroupID.ToString(),
|
||||||
}).ToList()
|
}).ToList()
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -59,15 +61,52 @@ namespace HT.Cloud.Service.DevicesManage
|
|||||||
// id = aa.GroupID,
|
// id = aa.GroupID,
|
||||||
//}).ToList()
|
//}).ToList()
|
||||||
}).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();
|
return ts.ToJsonNullValueHandling();
|
||||||
}
|
}
|
||||||
|
public class Children
|
||||||
public class Children
|
|
||||||
{
|
{
|
||||||
public string id { get; set; }
|
public string id { get; set; }
|
||||||
public string title { get; set; }
|
public string name { get; set; }
|
||||||
public List<Children> children { get; set; }
|
public List<Children> children { get; set; }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public async Task<string> GetDriverArgument(int driverId)
|
||||||
|
{
|
||||||
|
var listArgument = _context.Queryable<ArgumentEntity>().Where(x=>x.DriverID == driverId).ToList();
|
||||||
|
var dt = new Dictionary<string, string>();
|
||||||
|
foreach(var argument in listArgument)
|
||||||
|
{
|
||||||
|
dt.Add(argument.PropertyName, argument.PropertyValue);
|
||||||
|
}
|
||||||
|
return dt.ToJson();
|
||||||
|
}
|
||||||
|
public async Task<string> GetGroupVarTable(int groupId)
|
||||||
|
{
|
||||||
|
var listMetaTag = _context.Queryable<MetaTagEntity>().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<MetaTagEntity> data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ using HT.Cloud.Domain.ChartsManage;
|
|||||||
using HT.Cloud.Service;
|
using HT.Cloud.Service;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using HT.Cloud.Service.DevicesManage;
|
using HT.Cloud.Service.DevicesManage;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace HT.Cloud.Web.Areas.DevicesManage.Controllers
|
namespace HT.Cloud.Web.Areas.DevicesManage.Controllers
|
||||||
{
|
{
|
||||||
@ -27,7 +28,42 @@ namespace HT.Cloud.Web.Areas.DevicesManage.Controllers
|
|||||||
var data = await _metaTagService.GetALLNode();
|
var data = await _metaTagService.GetALLNode();
|
||||||
return Content(data);
|
return Content(data);
|
||||||
}
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<ActionResult> 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<ActionResult> 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<ActionResult> SaveArgument(string driverId, string name, string value)
|
||||||
|
{
|
||||||
|
var data = "";
|
||||||
|
return Content(data);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
195
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Form.cshtml
Normal file
195
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Form.cshtml
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
@{
|
||||||
|
ViewBag.Title = "Form";
|
||||||
|
Layout = "~/Views/Shared/_Form.cshtml";
|
||||||
|
}
|
||||||
|
<script>
|
||||||
|
|
||||||
|
layui.use(['jquery', 'form', 'laydate', 'tableEdit', 'commonTable', 'table', 'common', 'optimizeSelectOption'], function () {
|
||||||
|
debugger;
|
||||||
|
var form = layui.form,
|
||||||
|
$ = layui.$,
|
||||||
|
laydate = layui.laydate,
|
||||||
|
tableEdit = layui.tableEdit,
|
||||||
|
table = layui.table,
|
||||||
|
commonTable = layui.commonTable,
|
||||||
|
common = layui.common;
|
||||||
|
var keyValue = $.request("keyValue");
|
||||||
|
//执行一个laydate实例
|
||||||
|
laydate.render({
|
||||||
|
elem: '#F_NeedTime'
|
||||||
|
, trigger: 'click',
|
||||||
|
format: 'yyyy/MM/dd',
|
||||||
|
});
|
||||||
|
//权限字段
|
||||||
|
common.authorizeFields('adminform');
|
||||||
|
var listData = [];
|
||||||
|
$(function () {
|
||||||
|
debugger;
|
||||||
|
initControl();
|
||||||
|
if (!!keyValue) {
|
||||||
|
common.ajax({
|
||||||
|
url: '/OrderManagement/Order/GetFormJson',
|
||||||
|
dataType: 'json',
|
||||||
|
data: { keyValue: keyValue },
|
||||||
|
async: false,
|
||||||
|
success: function (data) {
|
||||||
|
common.val('adminform', data);
|
||||||
|
if (!!data.list && data.list.length > 0) {
|
||||||
|
listData = data.list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var code = new Date().formatDate('yyyyMMddhhmmss');
|
||||||
|
$('#F_OrderCode').val("OR-" + code);
|
||||||
|
}
|
||||||
|
form.render();
|
||||||
|
var params = [{ name: '未完成', value: 0 }, { name: '已完成', value: 1 }];
|
||||||
|
var cols = [[
|
||||||
|
{ type: "checkbox", width: 50 },
|
||||||
|
{
|
||||||
|
field: 'F_OrderState', title: '订单状态', width: 120, sort: true, event: 'orderState', config: { type: 'select', data: params, verify: { type: "required" } }
|
||||||
|
, templet: function (d) {
|
||||||
|
if (d.F_OrderState || d.F_OrderState == 0) {
|
||||||
|
if (d.F_OrderState.value || d.F_OrderState.value == 0) {
|
||||||
|
return d.F_OrderState.name;
|
||||||
|
}
|
||||||
|
for (var i = 0; i < params.length; i++) {
|
||||||
|
if (params[i].value == d.F_OrderState) {
|
||||||
|
return params[i].name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'F_ActualTime', title: '实际时间', minWidth: 160, sort: true, event: 'actualTime', config: { type: 'date', dateType: 'date' }
|
||||||
|
},
|
||||||
|
{ field: 'F_ProductName', title: '产品名称', minWidth: 145, sort: true, event: 'productName', config: { type: 'input', verify: { type: "required" } } },
|
||||||
|
{ field: 'F_ProductDescription', title: '产品规格', minWidth: 145, event: 'productDescription', config: { type: 'input'} },
|
||||||
|
{ field: 'F_ProductUnit', title: '产品单位', width: 120, event: 'productUnit', config: { type: 'input' } },
|
||||||
|
{ field: 'F_NeedNum', title: '需求数量', width: 140, event: 'needNum', config: { type: 'signedInput' } },
|
||||||
|
{ field: 'F_ActualNum', title: '实际数量', width: 140, event: 'actualNum', config: { type: 'signedInput' } },
|
||||||
|
{ field: 'F_Description', title: '备注', minWidth: 145, event: 'Description', config: { type: 'input' } },
|
||||||
|
]];
|
||||||
|
commonTable.rendertable({
|
||||||
|
elem: '#currentTableId',
|
||||||
|
data: listData,
|
||||||
|
defaultToolbar: [],
|
||||||
|
search: false,
|
||||||
|
limit: 9999,//每页数据 默认
|
||||||
|
page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
|
||||||
|
layout: ['count'] //自定义分页布局
|
||||||
|
, first: false //不显示首页
|
||||||
|
, last: false //不显示尾页
|
||||||
|
},
|
||||||
|
height: 'full-185',
|
||||||
|
filter: {
|
||||||
|
clearFilter: false,
|
||||||
|
},
|
||||||
|
cols: cols
|
||||||
|
});
|
||||||
|
var aopTable = tableEdit.aopObj(cols); //获取一个aop对象
|
||||||
|
aopTable.on('tool(currentTableFilter)', function (obj) {
|
||||||
|
var field = obj.field; //单元格字段
|
||||||
|
var value = obj.value; //修改后的值
|
||||||
|
var data = obj.data; //当前行旧数据
|
||||||
|
var event = obj.event; //当前单元格事件属性值
|
||||||
|
var update = {};
|
||||||
|
update[field] = value;
|
||||||
|
//把value更新到行中
|
||||||
|
obj.update(update);
|
||||||
|
});
|
||||||
|
//行点击事件监听,控制按钮显示
|
||||||
|
var oneList = [];//选择1条显示
|
||||||
|
var moreList = ["NF-delete"];//多条显示
|
||||||
|
commonTable.tableRowClick("checkbox", "currentTableFilter", "currentTableId", oneList, moreList);
|
||||||
|
});
|
||||||
|
wcLoading.close();
|
||||||
|
|
||||||
|
function initControl() {
|
||||||
|
//此处需修改
|
||||||
|
//绑定数据源
|
||||||
|
//类型为下拉框时
|
||||||
|
}
|
||||||
|
|
||||||
|
//监听提交
|
||||||
|
form.on('submit(saveBtn)', function (data) {
|
||||||
|
var postData = data.field;
|
||||||
|
postData.list = table.cache.currentTableId;
|
||||||
|
if (!postData.list || postData.list.length == 0) {
|
||||||
|
common.modalMsg("产品明细不能为空!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for (var i = 0; i < postData.list.length; i++) {
|
||||||
|
if (!postData.list[i].F_ProductName) {
|
||||||
|
common.modalMsg("请输入明细的产品名称!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
postData.list[i].F_OrderState = !!postData.list[i].F_OrderState.value ? postData.list[i].F_OrderState.value : postData.list[i].F_OrderState;
|
||||||
|
}
|
||||||
|
if (!postData["F_EnabledMark"]) postData["F_EnabledMark"] = false;
|
||||||
|
common.submitForm({
|
||||||
|
url: '/OrderManagement/Order/SubmitForm?keyValue=' + keyValue,
|
||||||
|
param: postData,
|
||||||
|
success: function () {
|
||||||
|
common.parentreload('data-search-btn');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="layuimini-container">
|
||||||
|
<div class="layuimini-main">
|
||||||
|
<form class="layui-form" action="">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">变量名称<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Description" name="Description" placeholder="请输入变量名称" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">变量编码<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="TagName" name="TagName" placeholder="请参照系统规则手册" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">数值类型<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="DataType" name="DataType" placeholder="请参照系统规则手册" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">起始地址<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Address" name="Address" placeholder="请参照系统规则手册" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">所属系统<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Subsystem" name="Subsystem" placeholder="请输入所属系统名称" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">变量单位<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Units" name="Units" placeholder="变量世界单位 Bool值缺省Y/N" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<button class="layui-btn" lay-submit lay-filter="formDemo">确认提交</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
@ -23,6 +23,19 @@
|
|||||||
common = layui.common;
|
common = layui.common;
|
||||||
//加载数据
|
//加载数据
|
||||||
wcLoading.close();
|
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是值传递)
|
//权限控制(js是值传递)
|
||||||
//toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
|
//toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
|
||||||
|
|
||||||
@ -31,23 +44,194 @@
|
|||||||
//获取所有子系统列表ok
|
//获取所有子系统列表ok
|
||||||
async function GetAllNode() {
|
async function GetAllNode() {
|
||||||
debugger;
|
debugger;
|
||||||
$.ajax({
|
//$.ajax({
|
||||||
url: "/DevicesManage/MetaTag/GetAllNode",
|
// url: "/DevicesManage/MetaTag/GetAllNode",
|
||||||
type: "Get",
|
// type: "Get",
|
||||||
//dataType: "json",
|
// //dataType: "json",
|
||||||
async: false,
|
// async: false,
|
||||||
//data: datapa,
|
// //data: datapa,
|
||||||
success: function (redata) {
|
// success: function (redata) {
|
||||||
debugger;
|
// var jsonData = JSON.stringify(redata);
|
||||||
var listsubsysname = JSON.parse(redata);
|
// debugger;
|
||||||
debugger;
|
|
||||||
tree.render({
|
// $('#test').tree()
|
||||||
elem: '#drtree',
|
// }
|
||||||
data:redata
|
//});
|
||||||
});
|
$('#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 @@
|
|||||||
<body style="height:100%">
|
<body style="height:100%">
|
||||||
|
|
||||||
<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>
|
<script type="text/javascript" src="~/lib/echarts-5.3.0/dist/echarts.js"></script>
|
||||||
<div class="layui-fluid" style="padding:0 0px;height:100%">
|
<div class="layui-row" style="padding:0 0px;height:100%">
|
||||||
<div class="layui-row layui-col-space5" style="height:100%">
|
<div class="layui-col-xs2" style="height:100%">
|
||||||
<div class="layui-col-md2 layui-col-xs3" style="height:100%;padding-right:12px;">
|
<div style="width:100%;height: 100%; width:100%;margin-right:10px;float:left;">
|
||||||
<div class="layui-card" style="text-align:left;overflow: auto;height:100%" id="toolbarDiv">
|
<table id="test" title="选择设备" class="easyui-treegrid"
|
||||||
@*<ul id="dataTree" class="dtree" data-id="0"></ul>*@
|
rownumbers="true" toolbar="#toolbar1"
|
||||||
<div id="aleft" style="float:left;width:100%;height:100%">
|
fitColumns="true" fit="true"
|
||||||
<div class="easyui-panel" title="选择设备信息" style="width:100%;height:100%">
|
idField="id" treeField="name">
|
||||||
<div class="layui-tree" id="drtree" title="设备列表" style="position: relative;width:100%;height:auto;overflow:auto;"></div>
|
<thead>
|
||||||
</div>
|
<tr>
|
||||||
</div>
|
<th field="name" width="100">设备名称</th>
|
||||||
</div>
|
</tr>
|
||||||
</div>
|
</thead>
|
||||||
<div class="layui-col-md10 layui-col-xs9" style="height:100%">
|
</table>
|
||||||
|
<div id="toolbar1">
|
||||||
<form class="layui-form" style="height:100%;width:100%" id="tablepanel">
|
<a href="javascript:;" class="easyui-linkbutton" iconCls="icon-add" plain="true" id="newgroup" onclick="newDriver()">新建设备</a>
|
||||||
<div class="layui-panel" id="gridpanel" style="width:100%;height: 100%;margin-bottom: 10px; ">
|
<a href="javascript:;" class="easyui-linkbutton" iconCls="icon-add" plain="true" id="new" onclick="newGroup()">新建变量组</a>
|
||||||
<div id="result" class="echart" style="width: 100%; height: 100% "></div>
|
<a href="javascript:;" class="easyui-linkbutton" iconCls="icon-edit" plain="true" id="edit" onclick="editModel1()">修改</a>
|
||||||
</div>
|
<a href="javascript:;" class="easyui-linkbutton" iconCls="icon-remove" plain="true" id="delete" onclick="destroyModel1()">删除</a>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-col-xs10" style="height:100%">
|
||||||
|
<div id="showdiv" style="height:100%;margin-left:10px;">
|
||||||
|
<div id="showArgument" style="height:100%;width:100%">@*//;background:red*@
|
||||||
|
<div id="argumentFormSiemens" class="formList" style="height:100%;width:100%;display:block">
|
||||||
|
<form class="layui-form" action="">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">CPU地址<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="ServerName_Siemens" name="ServerName" placeholder="请输入地址" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">Rack<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Rack_Siemens" name="Rack" placeholder="请输入Rack" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">Slot<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Slot_Siemens" name="Slot" placeholder="请输入Slot" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">超时时间<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="TimeOut_Siemens" name="TimeOut" placeholder="请输入超时时间" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">PLC类型<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block" style="width: 320px">
|
||||||
|
<select id="PLCType_Siemens" name="PLCType" lay-verify="required" class="select_wd320" style="width: 320px">
|
||||||
|
<option value=""></option>
|
||||||
|
<option value="S7300">S7-300</option>
|
||||||
|
<option value="S7400">S7-400</option>
|
||||||
|
<option value="S71200">S7-1200</option>
|
||||||
|
<option value="S71500">S7-1500</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<button class="layui-btn" lay-submit lay-filter="formDemo">确认修改</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div id="argumentFormAllen-Bradley" class="formList" style="height:100%;width:100%;display:none">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="argumentFormSchneideir" class="formList" style="height:100%;width:100%;display:none">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="showTag" style="height:100%;width:100%">@*;background:black*@
|
||||||
|
<div class="layui-btn-container" id="toolbar">
|
||||||
|
<button id="NF-add" name="NF-add" authorize class="layui-btn layui-btn-sm layui-btn-normal " lay-event="add" onclick="openForm()"><i class="layui-icon"></i>新增</button>
|
||||||
|
<button id="NF-edit" name="NF-edit" authorize class="layui-btn layui-btn-sm layui-btn-warm " lay-event="edit" onclick="openEdit()"><i class="layui-icon"></i>修改</button>
|
||||||
|
<button id="NF-delete" name="NF-delete" authorize class="layui-btn layui-btn-sm layui-btn-danger " lay-event="delete"> <i class="layui-icon"></i>删除</button>
|
||||||
|
@*<button id="NF-details" name="NF-details" authorize class="layui-btn layui-btn-sm layui-btn-normal " lay-event="details"> <i class="layui-icon"></i>查看</button>*@
|
||||||
|
</div>
|
||||||
|
<table id="metaTable" lay-filter="metafilter" ></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
86
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Modfiy.cshtml
Normal file
86
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTag/Modfiy.cshtml
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
@{
|
||||||
|
ViewBag.Title = "Details";
|
||||||
|
Layout = "~/Views/Shared/_Form.cshtml";
|
||||||
|
}
|
||||||
|
<script>
|
||||||
|
|
||||||
|
debugger;
|
||||||
|
layui.use(['jquery', 'form', 'laydate', 'tableEdit', 'commonTable', 'table', 'common'], function () {
|
||||||
|
var form = layui.form,
|
||||||
|
$ = layui.$,
|
||||||
|
laydate = layui.laydate,
|
||||||
|
tableEdit = layui.tableEdit,
|
||||||
|
table = layui.table,
|
||||||
|
commonTable = layui.commonTable,
|
||||||
|
common = layui.common;
|
||||||
|
|
||||||
|
var listData = [];
|
||||||
|
$(function () {
|
||||||
|
initControl();
|
||||||
|
});
|
||||||
|
wcLoading.close();
|
||||||
|
|
||||||
|
function initControl() {
|
||||||
|
//此处需修改
|
||||||
|
//绑定数据源
|
||||||
|
//类型为下拉框时
|
||||||
|
}
|
||||||
|
|
||||||
|
//监听提交
|
||||||
|
form.on('submit(saveBtn)', function (data) {
|
||||||
|
debugger;
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="layuimini-container">
|
||||||
|
<div class="layuimini-main">
|
||||||
|
<form class="layui-form" action="">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">变量名称<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Description" name="Description" placeholder="请输入变量名称" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">变量编码<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="TagName" name="TagName" placeholder="请参照系统规则手册" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">数值类型<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="DataType" name="DataType" placeholder="请参照系统规则手册" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">起始地址<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Address" name="Address" placeholder="请参照系统规则手册" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">所属系统<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Subsystem" name="Subsystem" placeholder="请输入所属系统名称" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">变量单位<em class="dotRed">*</em>:</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="Units" name="Units" placeholder="变量世界单位 Bool值缺省Y/N" class="layui-input" style="width: 320px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@*<div class="layui-form-item">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<button class="layui-btn" lay-submit lay-filter="formDemo">确认提交</button>
|
||||||
|
</div>
|
||||||
|
</div>*@
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
Reference in New Issue
Block a user