更新 评测前bug修复
This commit is contained in:
111
HT.Cloud.Domain/Entity/DevicesManage/MetaTagScopeEntity.cs
Normal file
111
HT.Cloud.Domain/Entity/DevicesManage/MetaTagScopeEntity.cs
Normal file
@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using SqlSugar;
|
||||
|
||||
namespace HT.Cloud.Domain.DevicesManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 创 建:cdl
|
||||
/// 日 期:2023-03-16 09:39
|
||||
/// 描 述:设备报警信息实体类
|
||||
/// </summary>
|
||||
[SugarTable("Meta_Tag_Scope")]
|
||||
public class MetaTagScopeEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// TagID
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="TagID", ColumnDescription = "TagID",ColumnDataType = "smallint(5)",IsIdentity = true,IsPrimaryKey = true)]
|
||||
public int TagID { get; set; }
|
||||
/// <summary>
|
||||
/// 变量名称
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="TagName", ColumnDescription = "变量名称",ColumnDataType = "nvarchar(512)")]
|
||||
public string TagName { get; set; }
|
||||
/// <summary>
|
||||
/// 数据类型
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="DataType", ColumnDescription = "数据类型",ColumnDataType = "tinyint(3)")]
|
||||
public bool DataType { get; set; }
|
||||
/// <summary>
|
||||
/// 读取地址
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Address", ColumnDescription = "读取地址",ColumnDataType = "varchar(64)")]
|
||||
public string Address { get; set; }
|
||||
/// <summary>
|
||||
/// GroupID
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="GroupID", ColumnDescription = "GroupID",ColumnDataType = "smallint(5)")]
|
||||
public int GroupID { get; set; }
|
||||
/// <summary>
|
||||
/// 是否启用
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="IsActive", ColumnDescription = "是否启用",ColumnDataType = "bit(1)")]
|
||||
public bool IsActive { get; set; }
|
||||
/// <summary>
|
||||
/// 描述
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Description", ColumnDescription = "描述",ColumnDataType = "nvarchar(128)", IsNullable = true)]
|
||||
public string Description { get; set; }
|
||||
/// <summary>
|
||||
/// 子系统
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Subsystem", ColumnDescription = "子系统",ColumnDataType = "varchar(64)")]
|
||||
public string Subsystem { get; set; }
|
||||
/// <summary>
|
||||
/// 单位
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Units", ColumnDescription = "单位",ColumnDataType = "varchar(20)")]
|
||||
public string Units { get; set; }
|
||||
/// <summary>
|
||||
/// 回写地址
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="WriteAddress", ColumnDescription = "回写地址",ColumnDataType = "varchar(64)", IsNullable = true)]
|
||||
public string WriteAddress { get; set; }
|
||||
/// <summary>
|
||||
/// 低三级报警值
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="LLLmum", ColumnDescription = "低三级报警值",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? LLLmum { get; set; }
|
||||
/// <summary>
|
||||
/// 低二级报警值
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="LLmum", ColumnDescription = "低二级报警值",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? LLmum { get; set; }
|
||||
/// <summary>
|
||||
/// 低一级报警值
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Lmum", ColumnDescription = "低一级报警值",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? Lmum { get; set; }
|
||||
/// <summary>
|
||||
/// 高一级报警值
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Hmum", ColumnDescription = "高一级报警值",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? Hmum { get; set; }
|
||||
/// <summary>
|
||||
/// 高二级报警值
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="HHmum", ColumnDescription = "高二级报警值",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? HHmum { get; set; }
|
||||
/// <summary>
|
||||
/// 高三级报警值
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="HHHmum", ColumnDescription = "高三级报警值",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? HHHmum { get; set; }
|
||||
/// <summary>
|
||||
/// 报警级别
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Htlevel", ColumnDescription = "报警级别",ColumnDataType = "int(10)", IsNullable = true)]
|
||||
public int? Htlevel { get; set; }
|
||||
/// <summary>
|
||||
/// 下限
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Lowmum", ColumnDescription = "下限",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? Lowmum { get; set; }
|
||||
/// <summary>
|
||||
/// 上限
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Highmum", ColumnDescription = "上限",ColumnDataType = "real(24)", IsNullable = true)]
|
||||
public Single? Highmum { get; set; }
|
||||
}
|
||||
}
|
96
HT.Cloud.Domain/Entity/ReportManage/MetaTagAlarmEntity.cs
Normal file
96
HT.Cloud.Domain/Entity/ReportManage/MetaTagAlarmEntity.cs
Normal file
@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using SqlSugar;
|
||||
|
||||
namespace HT.Cloud.Domain.ReportManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 创 建:cdl
|
||||
/// 日 期:2023-03-16 16:11
|
||||
/// 描 述:报警变量表实体类
|
||||
/// </summary>
|
||||
[SugarTable("Meta_Tag_Alarm")]
|
||||
public class MetaTagAlarmEntity
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="TagID", ColumnDescription = "",ColumnDataType = "smallint(5)",IsIdentity = true,IsPrimaryKey = true)]
|
||||
public int TagID { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="TagName", ColumnDescription = "",ColumnDataType = "nvarchar(512)")]
|
||||
public string TagName { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="DataType", ColumnDescription = "",ColumnDataType = "tinyint(3)")]
|
||||
public bool DataType { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="DataSize", ColumnDescription = "",ColumnDataType = "smallint(5)")]
|
||||
public int DataSize { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Address", ColumnDescription = "",ColumnDataType = "varchar(64)")]
|
||||
public string Address { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="GroupID", ColumnDescription = "",ColumnDataType = "smallint(5)")]
|
||||
public int GroupID { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="IsActive", ColumnDescription = "",ColumnDataType = "bit(1)")]
|
||||
public bool IsActive { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Archive", ColumnDescription = "",ColumnDataType = "bit(1)")]
|
||||
public bool Archive { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="DefaultValue", ColumnDescription = "",ColumnDataType = "sql_variant", IsNullable = true)]
|
||||
public string DefaultValue { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Description", ColumnDescription = "",ColumnDataType = "nvarchar(128)", IsNullable = true)]
|
||||
public string Description { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Maximum", ColumnDescription = "",ColumnDataType = "real(24)")]
|
||||
public Single Maximum { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Minimum", ColumnDescription = "",ColumnDataType = "real(24)")]
|
||||
public Single Minimum { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Cycle", ColumnDescription = "",ColumnDataType = "int(10)")]
|
||||
public int Cycle { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Subsystem", ColumnDescription = "",ColumnDataType = "varchar(64)")]
|
||||
public string Subsystem { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="Units", ColumnDescription = "",ColumnDataType = "varchar(20)")]
|
||||
public string Units { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName="WriteAddress", ColumnDescription = "",ColumnDataType = "varchar(64)", IsNullable = true)]
|
||||
public string WriteAddress { get; set; }
|
||||
}
|
||||
}
|
107
HT.Cloud.Service/DevicesManage/MetaTagScopeService.cs
Normal file
107
HT.Cloud.Service/DevicesManage/MetaTagScopeService.cs
Normal file
@ -0,0 +1,107 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
using HT.Cloud.Code;
|
||||
using SqlSugar;
|
||||
using HT.Cloud.DataBase;
|
||||
using HT.Cloud.Domain.DevicesManage;
|
||||
|
||||
namespace HT.Cloud.Service.DevicesManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 创 建:cdl
|
||||
/// 日 期:2023-03-16 09:39
|
||||
/// 描 述:设备报警信息服务类
|
||||
/// </summary>
|
||||
public class MetaTagScopeService : BaseService<MetaTagScopeEntity>, IDenpendency
|
||||
{
|
||||
public MetaTagScopeService(ISqlSugarClient context) : base(context)
|
||||
{
|
||||
}
|
||||
#region 获取数据
|
||||
public async Task<List<MetaTagScopeEntity>> GetList(string keyword = "")
|
||||
{
|
||||
var data = repository.IQueryable();
|
||||
if (!string.IsNullOrEmpty(keyword))
|
||||
{
|
||||
data = data.Where(a => a.Description.Contains(keyword));
|
||||
}
|
||||
return await data.OrderBy(a => a.TagID).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<List<MetaTagScopeEntity>> GetLookList(string keyword = "")
|
||||
{
|
||||
var query = repository.IQueryable();
|
||||
if (!string.IsNullOrEmpty(keyword))
|
||||
{
|
||||
//此处需修改
|
||||
query = query.Where(a => a.Description.Contains(keyword));
|
||||
}
|
||||
//权限过滤
|
||||
query = GetDataPrivilege("a", "", query);
|
||||
return await query.OrderBy(a => a.TagID).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<List<MetaTagScopeEntity>> GetLookList(SoulPage<MetaTagScopeEntity> pagination,string keyword = "",string id="")
|
||||
{
|
||||
var query = repository.IQueryable();
|
||||
if (!string.IsNullOrEmpty(keyword))
|
||||
{
|
||||
query = query.Where(a => a.Description.Contains(keyword));
|
||||
}
|
||||
if(!string.IsNullOrEmpty(id))
|
||||
{
|
||||
query= query.Where(a=>a.TagID==int.Parse(id));
|
||||
}
|
||||
//权限过滤
|
||||
query = GetDataPrivilege("a","",query);
|
||||
return await query.ToPageListAsync(pagination);
|
||||
}
|
||||
|
||||
public async Task<MetaTagScopeEntity> GetForm(string keyValue)
|
||||
{
|
||||
var data = await repository.FindEntity(keyValue);
|
||||
return data;
|
||||
}
|
||||
#endregion
|
||||
|
||||
public async Task<MetaTagScopeEntity> GetLookForm(string keyValue)
|
||||
{
|
||||
var data = await repository.FindEntity(keyValue);
|
||||
return GetFieldsFilterData(data);
|
||||
}
|
||||
|
||||
#region 提交数据
|
||||
public async Task SubmitForm(MetaTagScopeEntity entity, string keyValue)
|
||||
{
|
||||
/* 模板代码 TagID报错 暂时不使用!!!
|
||||
//if(string.IsNullOrEmpty(keyValue))
|
||||
//{
|
||||
// //初始值添加
|
||||
// entity.TagID = Utils.GuId();
|
||||
// await repository.Insert(entity);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// //此处需修改
|
||||
// entity.TagID = keyValue;
|
||||
// await repository.Update(entity);
|
||||
//}
|
||||
*/
|
||||
|
||||
/* 暂时代码 */
|
||||
entity.TagID = int.Parse(keyValue);
|
||||
await repository.Update(entity);
|
||||
|
||||
}
|
||||
|
||||
public async Task DeleteForm(string keyValue)
|
||||
{
|
||||
var ids = keyValue.Split(',');
|
||||
await repository.Delete(a => ids.Contains(a.TagID.ToString()));
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
@ -100,13 +100,106 @@ namespace HT.Cloud.Service.DevicesManage
|
||||
|
||||
return metaTagRedata.ToJson();
|
||||
}
|
||||
public class MetaTagRedata
|
||||
public async Task<string> GetGroupVarTreeTable(int groupId)
|
||||
{
|
||||
|
||||
var reList = new List<Tree_MetaTagEntity>();
|
||||
|
||||
var listMetaTag = _context.Queryable<MetaTagEntity>().Where(x => x.GroupID == groupId).ToList();
|
||||
var treeListMetaTag = new List<Tree_MetaTagEntity>();
|
||||
foreach (var item in listMetaTag)
|
||||
{
|
||||
|
||||
var tree_MetaTag = PCAutoCopy(item);
|
||||
treeListMetaTag.Add(tree_MetaTag);
|
||||
}
|
||||
|
||||
|
||||
var listArray = treeListMetaTag.GroupBy(x=>x.Subsystem).ToList();
|
||||
|
||||
int gi = 1;
|
||||
foreach(var item in listArray)
|
||||
{
|
||||
var f_MetaTagEntity = new Tree_MetaTagEntity
|
||||
{
|
||||
TreeId = gi,
|
||||
F_TreeId = 0,
|
||||
|
||||
Address = item.First().Address,
|
||||
Subsystem = item.First().Subsystem,
|
||||
TagID = gi,
|
||||
};
|
||||
reList.Add(f_MetaTagEntity);
|
||||
foreach(var entity in item)
|
||||
{
|
||||
entity.F_TreeId = gi;
|
||||
entity.TreeId = entity.TagID;
|
||||
entity.Address = "";
|
||||
reList.Add(entity);
|
||||
}
|
||||
gi++;
|
||||
}
|
||||
|
||||
var tree_MetaTagRedata = new Tree_MetaTagRedata
|
||||
{
|
||||
code = 0,
|
||||
msg = "",
|
||||
count = reList.Count,
|
||||
data = reList
|
||||
};
|
||||
|
||||
return tree_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; }
|
||||
}
|
||||
public class Tree_MetaTagRedata
|
||||
{
|
||||
public int code { get; set; }
|
||||
public string msg { get; set; }
|
||||
public int count { get; set; }
|
||||
public List<Tree_MetaTagEntity> data { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 树组件专用继承类
|
||||
/// </summary>
|
||||
public class Tree_MetaTagEntity:MetaTagEntity
|
||||
{
|
||||
public int F_TreeId { get; set; }
|
||||
public int TreeId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 父类的value赋值给子类
|
||||
/// </summary>
|
||||
/// <param name="parent"></param>
|
||||
/// <returns></returns>
|
||||
private Tree_MetaTagEntity PCAutoCopy(MetaTagEntity parent)
|
||||
{
|
||||
Tree_MetaTagEntity child = new Tree_MetaTagEntity();
|
||||
|
||||
|
||||
var ParentType = typeof(MetaTagEntity);
|
||||
|
||||
|
||||
var Properties = ParentType.GetProperties();
|
||||
|
||||
|
||||
foreach (var Propertie in Properties)
|
||||
{
|
||||
if (Propertie.CanRead && Propertie.CanWrite)
|
||||
{
|
||||
Propertie.SetValue(child, Propertie.GetValue(parent, null), null);
|
||||
}
|
||||
}
|
||||
|
||||
return child;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
124
HT.Cloud.Service/ReportManage/MetaTagAlarmService.cs
Normal file
124
HT.Cloud.Service/ReportManage/MetaTagAlarmService.cs
Normal file
@ -0,0 +1,124 @@
|
||||
using HT.Cloud.Code;
|
||||
using HT.Cloud.Domain.DevicesManage;
|
||||
using HT.Cloud.Domain.ReportManage;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace HT.Cloud.Service.ReportManage
|
||||
{
|
||||
public class MetaTagAlarmService : BaseService<MetaTagAlarmEntity>, IDenpendency
|
||||
{
|
||||
public MetaTagAlarmService(ISqlSugarClient context) : base(context)
|
||||
{
|
||||
}
|
||||
public async Task<string> GetAllSubsystemTag()
|
||||
{
|
||||
List<SubsysytemNameList> subsystems = new List<SubsysytemNameList>();
|
||||
var grouped = repository.IQueryable().ToList();
|
||||
List<string> list_name_two = grouped.Select(t => t.Subsystem).GroupBy(c => c).Select(c => c.First()).ToList();
|
||||
int i = 0;
|
||||
foreach (var Meta_Tag in list_name_two)
|
||||
{
|
||||
subsystems.Add(new SubsysytemNameList() { Lable = "a" + i, Value = Meta_Tag });
|
||||
i++;
|
||||
}
|
||||
return subsystems.ToJson();
|
||||
}
|
||||
public async Task<string> GetSubsystemAllTag(string subsysytemName)
|
||||
{
|
||||
|
||||
var subsysname = subsysytemName;
|
||||
var response = repository.IQueryable().Where(x => x.Subsystem == subsysname).Select(x => new { x.TagID, x.Description, x.Units }).ToList();
|
||||
var reList = new List<SubAllTagReturn>();
|
||||
foreach (var subsystem in response)
|
||||
{
|
||||
reList.Add(
|
||||
new SubAllTagReturn()
|
||||
{
|
||||
TagID = (short)subsystem.TagID,
|
||||
Description = subsystem.Description + $"({subsystem.Units})",
|
||||
Units = subsystem.Units
|
||||
}
|
||||
);
|
||||
}
|
||||
return reList.ToJson();
|
||||
}
|
||||
|
||||
public async Task<string> GetAlarmRecord(short tagid, string startdt, string enddt)
|
||||
{
|
||||
|
||||
SugarParameter[] sqlParameters =
|
||||
{
|
||||
new SugarParameter("@Henddt",enddt),
|
||||
new SugarParameter("@Hstartdt",startdt),
|
||||
new SugarParameter("@Htagid",tagid)
|
||||
|
||||
};
|
||||
var dt = _context.Ado.UseStoredProcedure().GetDataTable("Query_Tag_Alarm", sqlParameters);
|
||||
var valuelist = DataTableConvertModel<AlarmValue>.ConvertDataTableToList(dt);
|
||||
return valuelist.ToJson();
|
||||
|
||||
|
||||
// var testdata = new List<AlarmValue>
|
||||
// {
|
||||
// new AlarmValue() {
|
||||
// Description= "测试标题",
|
||||
// StartTime = "08点37分",
|
||||
// EndTime = "08点38分"
|
||||
// },
|
||||
// new AlarmValue() {
|
||||
// Description= "测试标题",
|
||||
// StartTime = "08点37分",
|
||||
// EndTime = "08点38分"
|
||||
// },
|
||||
// new AlarmValue() {
|
||||
// Description= "测试标题",
|
||||
// StartTime = "08点37分",
|
||||
// EndTime = "08点38分"
|
||||
// },
|
||||
// new AlarmValue() {
|
||||
// Description= "测试标题",
|
||||
// StartTime = "08点37分",
|
||||
// EndTime = "08点38分"
|
||||
// }
|
||||
//};
|
||||
// return testdata.ToJson();
|
||||
|
||||
|
||||
|
||||
//var resultlist = new List<ChartData>();
|
||||
//foreach (var value in valuelist)
|
||||
//{
|
||||
// resultlist.Add(new ChartData()
|
||||
// {
|
||||
// name = value.HDATETIME,
|
||||
// value = value.VALUE
|
||||
// });
|
||||
//}
|
||||
//return resultlist.ToJson();
|
||||
}
|
||||
|
||||
private class AlarmValue
|
||||
{
|
||||
public string Description { get; set; }
|
||||
public string startdt { get; set; }
|
||||
public string enddt { get; set; }
|
||||
}
|
||||
private class SubsysytemNameList
|
||||
{
|
||||
public string Lable { get; set; }
|
||||
public string Value { get; set; }
|
||||
}
|
||||
private class SubAllTagReturn
|
||||
{
|
||||
//x.TagID, x.Description, x.Units
|
||||
public short TagID { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string Units { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@ -326,6 +326,9 @@
|
||||
|
||||
var series = new Array();
|
||||
for (var si = 0; si < StaticSelectTagList.length; si++) {
|
||||
debugger;
|
||||
//bool变量取消平滑采取折线
|
||||
let issmooth = !(StaticSelectTagList[si].Units ==='Y/N')
|
||||
let seriesdata = {
|
||||
data: yDataArr[si],
|
||||
// 曲线名
|
||||
@ -334,7 +337,7 @@
|
||||
yAxisIndex: si,
|
||||
type: 'line',
|
||||
// 曲线平滑设置
|
||||
smooth: true
|
||||
smooth: issmooth
|
||||
}
|
||||
series.push(seriesdata);
|
||||
}
|
||||
|
@ -282,6 +282,8 @@
|
||||
|
||||
var series = new Array();
|
||||
for (var si = 0; si < StaticSelectTagList.length; si++) {
|
||||
//bool变量取消平滑采取折线
|
||||
let issmooth = !(StaticSelectTagList[si].Units === 'Y/N')
|
||||
let seriesdata = {
|
||||
data: yDataArr[si],
|
||||
// 曲线名
|
||||
@ -290,7 +292,7 @@
|
||||
yAxisIndex: si,
|
||||
type: 'line',
|
||||
// 曲线平滑设置
|
||||
smooth: true
|
||||
smooth: issmooth
|
||||
}
|
||||
series.push(seriesdata);
|
||||
}
|
||||
|
@ -58,7 +58,22 @@ namespace HT.Cloud.Web.Areas.DevicesManage.Controllers
|
||||
var data = await _metaTagService.GetGroupVarTable(groupIId);
|
||||
return Content(data);
|
||||
}
|
||||
[HttpPost]
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> GetGroupVarTreeTable(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.GetGroupVarTreeTable(groupIId);
|
||||
return Content(data);
|
||||
}
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> SaveArgument(string driverId, string name, string value)
|
||||
{
|
||||
var data = "";
|
||||
|
@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using HT.Cloud.Code;
|
||||
using HT.Cloud.Domain.DevicesManage;
|
||||
using HT.Cloud.Service;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using HT.Cloud.Service.DevicesManage;
|
||||
|
||||
namespace HT.Cloud.Web.Areas.DevicesManage.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 创 建:cdl
|
||||
/// 日 期:2023-03-16 09:39
|
||||
/// 描 述:设备报警信息控制器类
|
||||
/// </summary>
|
||||
[Area("DevicesManage")]
|
||||
public class MetaTagScopeController : BaseController
|
||||
{
|
||||
public MetaTagScopeService _service {get;set;}
|
||||
|
||||
#region 获取数据
|
||||
[HandlerAjaxOnly]
|
||||
[IgnoreAntiforgeryToken]
|
||||
public async Task<ActionResult> GetGridJson(SoulPage<MetaTagScopeEntity> pagination, string keyword)
|
||||
{
|
||||
if (string.IsNullOrEmpty(pagination.field))
|
||||
{
|
||||
pagination.field = "TagID";
|
||||
pagination.order = "asc";
|
||||
}
|
||||
var data = await _service.GetLookList(pagination,keyword);
|
||||
return Content(pagination.setData(data).ToJson());
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[HandlerAjaxOnly]
|
||||
public async Task<ActionResult> GetListJson(string keyword)
|
||||
{
|
||||
var data = await _service.GetList(keyword);
|
||||
return Content(data.ToJson());
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[HandlerAjaxOnly]
|
||||
public async Task<ActionResult> GetFormJson(string keyValue)
|
||||
{
|
||||
var data = await _service.GetLookForm(keyValue);
|
||||
return Content(data.ToJson());
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 提交数据
|
||||
[HttpPost]
|
||||
[HandlerAjaxOnly]
|
||||
public async Task<ActionResult> SubmitForm(MetaTagScopeEntity entity, string keyValue)
|
||||
{
|
||||
try
|
||||
{
|
||||
await _service.SubmitForm(entity, keyValue);
|
||||
return await Success("操作成功。", "", keyValue);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return await Error(ex.Message, "", keyValue);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[HandlerAjaxOnly]
|
||||
[HandlerAuthorize]
|
||||
public async Task<ActionResult> DeleteForm(string keyValue)
|
||||
{
|
||||
try
|
||||
{
|
||||
await _service.DeleteForm(keyValue);
|
||||
return await Success("操作成功。", "", keyValue, DbLogType.Delete);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return await Error(ex.Message, "", keyValue, DbLogType.Delete);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -133,48 +133,54 @@
|
||||
// ]]
|
||||
//});
|
||||
await $.ajax({
|
||||
url: "/DevicesManage/MetaTag/GetGroupVarTable",
|
||||
url: "/DevicesManage/MetaTag/GetGroupVarTreeTable",//GetGroupVarTable
|
||||
type: "Post",
|
||||
dataType: "json",
|
||||
traditional: true,//这里设置为true
|
||||
data: { groupId: datapa },
|
||||
success: function (redata) {
|
||||
table.render({
|
||||
var options ={
|
||||
elem: '#metaTable',
|
||||
height:'full-10',
|
||||
//defaultToolbar: ['filter', 'print', 'exports', {
|
||||
//title: '提示' //标题
|
||||
//,layEvent: 'LAYTABLE_TIPS' //事件名,用于 toolbar 事件中使用
|
||||
//,icon: 'layui-icon-tips' //图标类名
|
||||
//}],
|
||||
data: redata.data,
|
||||
editTrigger:'dblclick',
|
||||
//page:true,
|
||||
//limit:20,
|
||||
treeIdName: 'TreeId',
|
||||
treePidName: 'F_TreeId',
|
||||
cols:[[
|
||||
{ type: 'checkbox' },
|
||||
{ field: 'TagID', title: 'ID', sort: true },
|
||||
{ field: 'Subsystem', title: '子系统', edit: 'text'},
|
||||
{ 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: 'Address', title: '起始地址', edit: 'text' },
|
||||
//{ field: 'DataType' , title:'数值类型' , edit:'text'},
|
||||
{ field: 'Units' , title:'变量单位' , edit:'text'},
|
||||
|
||||
//{ field: 'TagID', title: 'ID' },
|
||||
]],
|
||||
page:true,
|
||||
limit:20,
|
||||
// response:{
|
||||
// statusName:'code', //规定返回的状态码字段为code
|
||||
// statusCode:0 //规定成功的状态码味200
|
||||
// },
|
||||
// parseData:function(res){
|
||||
//return {
|
||||
//"code" : redata.code, //解析接口状态
|
||||
//"msg" : redata.msg, //解析提示文本
|
||||
// "data" : redata.data //解析数据列表
|
||||
//}
|
||||
//},
|
||||
});
|
||||
}
|
||||
commonTable.rendertreetable(options);
|
||||
//table.render({
|
||||
// elem: '#metaTable',
|
||||
// height:'full-10',
|
||||
// data: redata.data,
|
||||
// editTrigger:'dblclick',
|
||||
// cols:[[
|
||||
// { type: 'checkbox' },
|
||||
// { field: 'Subsystem', title: '子系统', edit: 'text'},
|
||||
|
||||
// { field: 'Description' , title:'变量名称' , edit:'text'},
|
||||
// //{ field: 'TagName' , title:'变量编码' , edit:'text'},
|
||||
// { field: 'Address', title: '起始地址', edit: 'text' },
|
||||
// { field: 'DataType' , title:'数值类型' , edit:'text'},
|
||||
|
||||
// //{ field: 'RtValue' , title:'当前值' , edit:'text'},
|
||||
// { field: 'Units' , title:'变量单位' , edit:'text'},
|
||||
// { field: 'TagID', title: 'ID', sort: true },
|
||||
|
||||
// ]],
|
||||
// page:true,
|
||||
// limit:20,
|
||||
//});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -71,7 +71,7 @@
|
||||
<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;">
|
||||
<input type="text" id="Units" name="Units" placeholder="变量数据单位 Bool值缺省Y/N" class="layui-input" style="width: 320px;">
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="layui-form-item">
|
||||
|
@ -0,0 +1,127 @@
|
||||
@{
|
||||
ViewBag.Title = "Details";
|
||||
Layout = "~/Views/Shared/_Form.cshtml";
|
||||
}
|
||||
<script>
|
||||
layui.use(['jquery', 'form', 'laydate', 'common'], function () {
|
||||
var form = layui.form,
|
||||
$ = layui.$,
|
||||
common = layui.common,
|
||||
laydate = layui.laydate;
|
||||
var keyValue = $.request("keyValue");
|
||||
//权限字段
|
||||
common.authorizeFields('adminform');
|
||||
//此处需修改
|
||||
//类型为时间时
|
||||
//laydate.render({
|
||||
//elem: '#F_Birthday'
|
||||
//, btns: ['clear', 'now']
|
||||
//, trigger: 'click',
|
||||
//format: 'yyyy-MM-dd',
|
||||
//});
|
||||
|
||||
$(function () {
|
||||
initControl();
|
||||
common.ajax({
|
||||
url: '/DevicesManage/MetaTagScope/GetFormJson',
|
||||
dataType: 'json',
|
||||
data: { keyValue: keyValue },
|
||||
async: false,
|
||||
success: function (data) {
|
||||
common.val('adminform', data);
|
||||
common.setReadOnly('adminform');
|
||||
form.render();
|
||||
}
|
||||
});
|
||||
});
|
||||
wcLoading.close();
|
||||
|
||||
function initControl() {
|
||||
//此处需修改
|
||||
//绑定数据源
|
||||
//类型为下拉框时
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<body>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-form layuimini-form" lay-filter="adminform">
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">描述</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Description" name="Description" lay-verify="required" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">子系统</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Subsystem" name="Subsystem" lay-verify="required" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">单位</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Units" name="Units" lay-verify="required" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">报警级别</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Htlevel" name="Htlevel" lay-verify="required" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">低三级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="LLLmum" name="LLLmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">低二级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="LLmum" name="LLmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">低一级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Lmum" name="Lmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">高一级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Hmum" name="Hmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">高二级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="HHmum" name="HHmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">高三级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="HHHmum" name="HHHmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">下限</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Lowmum" name="Lowmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">上限</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Highmum" name="Highmum" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
144
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTagScope/Form.cshtml
Normal file
144
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTagScope/Form.cshtml
Normal file
@ -0,0 +1,144 @@
|
||||
@{
|
||||
ViewBag.Title = "Form";
|
||||
Layout = "~/Views/Shared/_Form.cshtml";
|
||||
}
|
||||
<script>
|
||||
layui.use(['jquery', 'form', 'laydate', 'common','optimizeSelectOption'], function () {
|
||||
var form = layui.form,
|
||||
$ = layui.$,
|
||||
common = layui.common,
|
||||
laydate = layui.laydate;
|
||||
var keyValue = $.request("keyValue");
|
||||
//权限字段
|
||||
common.authorizeFields('adminform');
|
||||
//此处需修改
|
||||
//类型为时间时
|
||||
//laydate.render({
|
||||
//elem: '#F_Birthday'
|
||||
//, btns: ['clear', 'now']
|
||||
//, trigger: 'click',
|
||||
//format: 'yyyy-MM-dd',
|
||||
//});
|
||||
|
||||
$(function () {
|
||||
initControl();
|
||||
if (!!keyValue) {
|
||||
common.ajax({
|
||||
url: '/DevicesManage/MetaTagScope/GetFormJson',
|
||||
dataType: 'json',
|
||||
data: { keyValue: keyValue },
|
||||
async: false,
|
||||
success: function (data) {
|
||||
common.val('adminform', data);
|
||||
}
|
||||
});
|
||||
}
|
||||
form.render();
|
||||
});
|
||||
wcLoading.close();
|
||||
|
||||
function initControl() {
|
||||
//此处需修改
|
||||
//绑定数据源
|
||||
//类型为下拉框时
|
||||
}
|
||||
|
||||
//监听提交
|
||||
form.on('submit(saveBtn)', function (data) {
|
||||
var postData = data.field;
|
||||
common.submitForm({
|
||||
url: '/DevicesManage/MetaTagScope/SubmitForm?keyValue=' + keyValue,
|
||||
param: postData,
|
||||
success: function () {
|
||||
common.parentreload('data-search-btn');
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<body>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<div class="layui-form layuimini-form" lay-filter="adminform">
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">描述</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Description" name="Description" autocomplete="off" lay-verify="required" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">子系统</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Subsystem" name="Subsystem" autocomplete="off" lay-verify="required" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">单位</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Units" name="Units" autocomplete="off" lay-verify="required" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label required">报警级别</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Htlevel" name="Htlevel" autocomplete="off" lay-verify="required" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">低三级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="LLLmum" name="LLLmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">低二级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="LLmum" name="LLmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">低一级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Lmum" name="Lmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">高一级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Hmum" name="Hmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">高二级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="HHmum" name="HHmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">高三级报警值</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="HHHmum" name="HHHmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">下限</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Lowmum" name="Lowmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<label class="layui-form-label">上限</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="Highmum" name="Highmum" autocomplete="off" placeholder="请输入" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide">
|
||||
<button class="layui-btn site-demo-active" lay-submit id="submit" lay-filter="saveBtn">确认保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
193
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTagScope/Index.cshtml
Normal file
193
HT.Cloud.Web/Areas/DevicesManage/Views/MetaTagScope/Index.cshtml
Normal file
@ -0,0 +1,193 @@
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
Layout = "~/Views/Shared/_Index.cshtml";
|
||||
}
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<fieldset class="table-search-fieldset layui-hide" id="searchField">
|
||||
<div>
|
||||
<form class="layui-form layui-form-pane" >
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">关键字:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="txt_keyword" name="txt_keyword" autocomplete="off" class="layui-input" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button type="submit" class="layui-btn layui-btn-primary" lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
<script type="text/html" id="toolbarDemo">
|
||||
<div class="layui-btn-container" id="toolbar">
|
||||
<button id="NF-add" name="NF-add" authorize class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon"></i>新增</button>
|
||||
<button id="NF-edit" name="NF-edit" authorize class="layui-btn layui-btn-sm layui-btn-warm layui-hide" lay-event="edit"><i class="layui-icon"></i>修改</button>
|
||||
<button id="NF-delete" name="NF-delete" authorize class="layui-btn layui-btn-sm layui-btn-danger layui-hide" 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 layui-hide" lay-event="details"> <i class="layui-icon"></i>查看</button>
|
||||
</div>
|
||||
</script>
|
||||
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
|
||||
<script type="text/html" id="currentTableBar">
|
||||
<a id="NF-edit" authorize class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
|
||||
<a id="NF-delete" authorize class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</a>
|
||||
<a id="NF-details" authorize class="layui-btn layui-btn-xs layui-btn-normal" lay-event="details">查看</a>
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.use(['jquery', 'form','table','commonTable', 'common','optimizeSelectOption'], function () {
|
||||
var $ = layui.jquery,
|
||||
form = layui.form,
|
||||
table = layui.table,commonTable = layui.commonTable
|
||||
common = layui.common;
|
||||
//权限控制(js是值传递)
|
||||
currentTableBar.innerHTML = common.authorizeButtonNew(currentTableBar.innerHTML);
|
||||
toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
|
||||
commonTable.rendertable({
|
||||
elem: '#currentTableId',
|
||||
id: 'currentTableId',
|
||||
limit:16,
|
||||
url: '/DevicesManage/MetaTagScope/GetGridJson',
|
||||
cols: [[
|
||||
//此处需修改
|
||||
{ type: "checkbox", width: 50, fixed: 'left' },
|
||||
//{ field: 'TagName', title: '变量名称', width: 100,sort: true,filter: true },
|
||||
//{ field: 'DataType', title: '数据类型', width: 100,sort: true,filter: true },
|
||||
//{ field: 'Address', title: '读取地址', width: 100,sort: true,filter: true },
|
||||
//{ field: 'GroupID', title: 'GroupID', width: 100,sort: true,filter: true },
|
||||
//{ field: 'IsActive', title: '是否启用', width: 100,sort: true,filter: true },
|
||||
{ field: 'Subsystem', title: '所属系统', sort: true, filter: true },
|
||||
{ field: 'Description', title: '描述', sort: true,filter: true },
|
||||
{ field: 'Units', title: '单位', width: 100,sort: true,filter: true },
|
||||
//{ field: 'WriteAddress', title: '回写地址', width: 100,sort: true,filter: true },
|
||||
{ field: 'LLLmum', title: '低三级报警值', width: 100,sort: true,filter: true },
|
||||
{ field: 'LLmum', title: '低二级报警值', width: 100,sort: true,filter: true },
|
||||
{ field: 'Lmum', title: '低一级报警值', width: 100,sort: true,filter: true },
|
||||
{ field: 'Hmum', title: '高一级报警值', width: 100,sort: true,filter: true },
|
||||
{ field: 'HHmum', title: '高二级报警值', width: 100,sort: true,filter: true },
|
||||
{ field: 'HHHmum', title: '高三级报警值', width: 100,sort: true,filter: true },
|
||||
{ field: 'Htlevel', title: '报警级别', width: 100,sort: true,filter: true },
|
||||
{ field: 'Lowmum', title: '下限', width: 100,sort: true,filter: true },
|
||||
{ field: 'Highmum', title: '上限', width: 100,sort: true,filter: true },
|
||||
{ title: '操作', width: 160, toolbar: '#currentTableBar', align: "center", fixed: 'right' }
|
||||
]]
|
||||
});
|
||||
// 监听搜索操作
|
||||
form.on('submit(data-search-btn)', function (data) {
|
||||
//执行搜索重载
|
||||
commonTable.reloadtable({
|
||||
elem: 'currentTableId',
|
||||
curr: 1,
|
||||
where: { keyword: data.field.txt_keyword}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
wcLoading.close();
|
||||
//行点击事件监听,控制按钮显示
|
||||
var oneList = ["NF-edit", "NF-details"];//选择1条显示
|
||||
var morerList = ["NF-delete"];//选中1条以上显示
|
||||
commonTable.tableRowClick("checkbox", "currentTableFilter", "currentTableId", oneList, morerList);
|
||||
//toolbar监听事件
|
||||
table.on('toolbar(currentTableFilter)', function (obj) {
|
||||
var data = table.checkStatus('currentTableId').data;
|
||||
var id = data.length > 0 ? data[0].TagID : null;
|
||||
if (obj.event === 'add') { // 监听添加操作
|
||||
common.modalOpen({
|
||||
title: "添加界面",
|
||||
url: "/DevicesManage/MetaTagScope/Form",
|
||||
width: "500px",
|
||||
height: "500px",
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'delete') {
|
||||
if (data.length == 0) {
|
||||
common.modalMsg("未选中数据", "warning");
|
||||
return false;
|
||||
}
|
||||
var ids = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
ids.push(data[i].TagID);
|
||||
}
|
||||
common.deleteForm({
|
||||
url: "/DevicesManage/MetaTagScope/DeleteForm",
|
||||
param: { keyValue: ids.join(',') },
|
||||
success: function () {
|
||||
common.reload('data-search-btn');
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'edit') {
|
||||
if (data.length == 0) {
|
||||
common.modalMsg("未选中数据", "warning");
|
||||
return false;
|
||||
}
|
||||
common.modalOpen({
|
||||
title: "编辑界面",
|
||||
url: "/DevicesManage/MetaTagScope/Form?keyValue=" + id,
|
||||
width: "500px",
|
||||
height: "500px",
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'details') {
|
||||
if (data.length == 0) {
|
||||
common.modalMsg("未选中数据", "warning");
|
||||
return false;
|
||||
}
|
||||
common.modalOpen({
|
||||
title: "查看界面",
|
||||
url: "/DevicesManage/MetaTagScope/Details?keyValue=" + id,
|
||||
width: "500px",
|
||||
height: "500px",
|
||||
btn: []
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'TABLE_SEARCH') {
|
||||
var _that = $("#searchField");
|
||||
if (_that.hasClass("layui-hide")) {
|
||||
_that.removeClass('layui-hide');
|
||||
} else {
|
||||
_that.addClass('layui-hide');
|
||||
}
|
||||
table.resize();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
//toolrow监听事件
|
||||
table.on('tool(currentTableFilter)', function (obj) {
|
||||
var id = obj.data.TagID;
|
||||
if (obj.event === 'delete') {
|
||||
common.deleteForm({
|
||||
url: "/DevicesManage/MetaTagScope/DeleteForm",
|
||||
param: { keyValue: id },
|
||||
success: function () {
|
||||
obj.del();
|
||||
}
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'edit') {
|
||||
common.modalOpen({
|
||||
title: "编辑界面",
|
||||
url: "/DevicesManage/MetaTagScope/Form?keyValue=" + id,
|
||||
width: "500px",
|
||||
height: "500px",
|
||||
});
|
||||
}
|
||||
else if (obj.event === 'details') {
|
||||
common.modalOpen({
|
||||
title: "查看界面",
|
||||
url: "/DevicesManage/MetaTagScope/Details?keyValue=" +id,
|
||||
width: "500px",
|
||||
height: "500px",
|
||||
btn: []
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
@ -0,0 +1,98 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using HT.Cloud.Code;
|
||||
using HT.Cloud.Domain.ChartsManage;
|
||||
using HT.Cloud.Service;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using HT.Cloud.Service.ChartsManage;
|
||||
using HT.Cloud.Service.ReportManage;
|
||||
using Serenity.Services;
|
||||
|
||||
namespace HT.Cloud.Web.Areas.ReportManage.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 创 建:cdl
|
||||
/// 日 期:2023-02-23 11:10
|
||||
/// 描 述:历史趋势控制器类
|
||||
/// </summary>
|
||||
[Area("ReportManage")]
|
||||
public class MetaTagAlarmController : BaseController
|
||||
{
|
||||
public MetaTagAlarmService _metaTagAlarmService { get;set;}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<ActionResult> GetAllSubsystemTag()
|
||||
{
|
||||
|
||||
var data = await _metaTagAlarmService.GetAllSubsystemTag();
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> GetSubsystemAllTag(ChartSubsysytemName chartSubsysytemName)
|
||||
{
|
||||
var data = await _metaTagAlarmService.GetSubsystemAllTag(chartSubsysytemName.SubsysytemName);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<ActionResult> GetAlarmRecord(Alarm_Params charts_Params)
|
||||
{
|
||||
short TagID = short.Parse(charts_Params.TagID);
|
||||
var StartTime = Gettime(charts_Params.StartTime);
|
||||
var EndTime = Gettime(charts_Params.EndTime);
|
||||
|
||||
var data = await _metaTagAlarmService.GetAlarmRecord(TagID, StartTime, EndTime);
|
||||
return Content(data);
|
||||
}
|
||||
|
||||
public string Gettime(string longtime)
|
||||
{
|
||||
long jsTimeStamp = long.Parse(longtime);
|
||||
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
|
||||
DateTime dt = startTime.AddMilliseconds(jsTimeStamp);
|
||||
return (dt.ToString("yyyy/MM/dd HH:mm:ss"));
|
||||
}
|
||||
|
||||
//public class SubAllTagReturn
|
||||
//{
|
||||
// //x.TagID, x.Description, x.Units
|
||||
// public short TagID { get; set; }
|
||||
// public string Description { get; set; }
|
||||
// public string Units { get; set; }
|
||||
//}
|
||||
|
||||
//public class SubsysytemNameList
|
||||
//{
|
||||
// public string Lable { get; set; }
|
||||
// public string Value { get; set; }
|
||||
//}
|
||||
|
||||
public class ChartSubsysytemName
|
||||
{
|
||||
public string SubsysytemName { get; set; }
|
||||
}
|
||||
|
||||
//public class HDATETIMEVALUE
|
||||
//{
|
||||
// public String HDATETIME { get; set; }
|
||||
// public decimal VALUE { get; set; }
|
||||
//}
|
||||
//public class ChartData
|
||||
//{
|
||||
// public decimal value { get; set; }
|
||||
// public String name { get; set; }
|
||||
//}
|
||||
|
||||
public class Alarm_Params
|
||||
{
|
||||
public string TagID { get; set; }
|
||||
public string StartTime { get; set; }
|
||||
public string EndTime { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -207,8 +207,9 @@
|
||||
// 文件普通操作
|
||||
var handler = {};
|
||||
//right_content
|
||||
var rootpath = window.location.host;
|
||||
//在页面未加载完毕之前显示的loading Html自定义内容
|
||||
var _LoadingHtml = '<div id="loadingDiv" style="display: none; "><div id="over" style=" position: absolute;top: 0;left: 0; width: 100%;height: 100%; background-color: #f5f5f5;opacity:0.5;z-index: 1000;"></div><div id="layout" style="position: absolute;top: 40%; left: 40%;width: 20%; height: 20%; z-index: 1001;text-align:center;"><img src="../images/loading.gif" /></div></div>';
|
||||
var _LoadingHtml = '<div id="loadingDiv" style="display: none; "><div id="over" style=" position: absolute;top: 0;left: 0; width: 100%;height: 100%; background-color: #f5f5f5;opacity:0.5;z-index: 1000;"></div><div id="layout" style="position: absolute;top: 40%; left: 40%;width: 20%; height: 20%; z-index: 1001;text-align:center;"><img src="//'+ rootpath +'/images/loading.gif" /></div></div>';
|
||||
//呈现loading效果
|
||||
document.getElementById("workerdiv").innerHTML += _LoadingHtml;
|
||||
//移除loading效果
|
||||
@ -229,7 +230,7 @@
|
||||
|
||||
window.open(filepath);
|
||||
}
|
||||
function GetReportView() {
|
||||
async function GetReportView() {
|
||||
debugger;
|
||||
showLoading();
|
||||
var datetimestart = $('#dateReStartTime')[0].value;
|
||||
@ -271,11 +272,11 @@
|
||||
//var datapa = { "StartTime": datetimestart, "EndTime": datetimeend, "Interval": timeInterval };
|
||||
debugger;
|
||||
var result = "";
|
||||
$.ajax({
|
||||
await $.ajax({
|
||||
url: "/ReportManage/HistoryReport/GetReport",
|
||||
type: "POST",
|
||||
//dataType: "json",
|
||||
async: false,
|
||||
//async: false,
|
||||
data:datapa,
|
||||
success: function (redata) {
|
||||
result = redata;
|
||||
|
320
HT.Cloud.Web/Areas/ReportManage/Views/MetaTagAlarm/Index.cshtml
Normal file
320
HT.Cloud.Web/Areas/ReportManage/Views/MetaTagAlarm/Index.cshtml
Normal file
@ -0,0 +1,320 @@
|
||||
@{
|
||||
ViewBag.Title = "Index";
|
||||
Layout = "~/Views/Shared/_Index.cshtml";
|
||||
}
|
||||
<style>
|
||||
|
||||
.layui-table-tool > .layui-table-tool-temp {
|
||||
padding-right: 0px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
debugger;
|
||||
layui.use(['jquery', 'form', 'table', 'common', 'dtree', 'commonTable', 'optimizeSelectOption'], function () {
|
||||
var $ = layui.jquery,
|
||||
form = layui.form,
|
||||
commonTable = layui.commonTable,
|
||||
table = layui.table,
|
||||
dtree = layui.dtree,
|
||||
//echarts = layui.echarts,
|
||||
common = layui.common;
|
||||
//加载数据
|
||||
wcLoading.close();
|
||||
//权限控制(js是值传递)
|
||||
//toolbarDemo.innerHTML = common.authorizeButtonNew(toolbarDemo.innerHTML);
|
||||
|
||||
GetAllSubsystemTag();
|
||||
|
||||
var starttime = new Date(new Date().setHours(0, 0, 0, 0));
|
||||
var starttimeString = starttime.getFullYear() + "-" + parseInt(starttime.getMonth() + 1) + "-" + starttime.getDate() + " " + (starttime.getHours()) + ":" + starttime.getMinutes() + ":" + starttime.getSeconds();
|
||||
var endtime = new Date();
|
||||
endtime.setDate(endtime.getDate())
|
||||
var endtimeString = endtime.getFullYear() + "-" + parseInt(endtime.getMonth() + 1) + "-" + endtime.getDate() + " " + (endtime.getHours()) + ":" + endtime.getMinutes() + ":" + endtime.getSeconds();
|
||||
layui.use('laydate', function () {
|
||||
var laydate = layui.laydate;
|
||||
lay('#dateReStartTime').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
format: "yyyy-MM-dd HH:mm:ss",
|
||||
//value: "2023-02-23 13:56:25",
|
||||
value: starttimeString,
|
||||
});
|
||||
});
|
||||
lay('#dateReEndTime').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
format: "yyyy-MM-dd HH:mm:ss",
|
||||
//value: "2023-02-23 13:56:25",
|
||||
value: endtimeString,
|
||||
});
|
||||
});
|
||||
});
|
||||
function getFormatDate(date) {
|
||||
let year = date.getFullYear();
|
||||
let month = date.getMonth() + 1;
|
||||
let day = date.getDate();
|
||||
let hour = date.getHours();
|
||||
let minutes = date.getMinutes();
|
||||
let seconds = date.getSeconds();
|
||||
month = (month < 10) ? '0' + month : month;
|
||||
day = (day < 10) ? '0' + day : day;
|
||||
hour = (hour < 10) ? '0' + hour : hour;
|
||||
minutes = (minutes < 10) ? '0' + minutes : minutes;
|
||||
seconds = (seconds < 10) ? '0' + seconds : seconds;
|
||||
let currentDate = year + "-" + month + "-" + day
|
||||
+ " " + hour + ":" + minutes + ":" + seconds;
|
||||
return currentDate;
|
||||
}
|
||||
|
||||
function json_array(data) {
|
||||
var len = eval(data).length;
|
||||
var arr = [];
|
||||
for (var i = 0; i < len; i++) {
|
||||
arr[i] = []; //js中二维数组必须进行重复的声明,否则会undefind
|
||||
arr[i]['url'] = data[i].url;
|
||||
arr[i]['oldname'] = data[i].oldname;
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
//var StaticSelectTagList = new Array();
|
||||
//获取所有子系统列表ok
|
||||
async function GetAllSubsystemTag() {
|
||||
debugger;
|
||||
$.ajax({
|
||||
url: "/ReportManage/MetaTagAlarm/GetAllSubsystemTag",
|
||||
type: "Get",
|
||||
//dataType: "json",
|
||||
//async: false,
|
||||
//data: datapa,
|
||||
success: function (redata) {
|
||||
debugger;
|
||||
var listsubsysname = JSON.parse(redata);
|
||||
$('#subsystemselect').combobox({
|
||||
data: listsubsysname,
|
||||
valueField: 'Lable',
|
||||
textField: 'Value',
|
||||
|
||||
checkOnSelect: true,
|
||||
selectOnCheck: true
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
//获取选中子系统tag
|
||||
updateSelect = async function (data) {
|
||||
var para = { "SubsysytemName": data.Value }
|
||||
//var subsystemAllTag = await Call(api.DataHistoryCharts.GetSubsystemAllTag, para);
|
||||
debugger;
|
||||
myajax = $.ajax({
|
||||
url: "/ReportManage/MetaTagAlarm/GetSubsystemAllTag",
|
||||
type: "Post",
|
||||
//dataType: "json",
|
||||
data: para,
|
||||
success: function (redata){}
|
||||
});
|
||||
debugger;
|
||||
$.when(myajax).done(function (redata){
|
||||
var subsystemAllTag = JSON.parse(redata);
|
||||
$('#subsystemTagList').datalist({
|
||||
data: subsystemAllTag,
|
||||
valueField: 'TagID',
|
||||
textField: 'Description',
|
||||
idField: 'TagID',
|
||||
});
|
||||
//var datalistArr = $('#subsystemTagList').datalist("getData").rows;
|
||||
//if (datalistArr.length > 0 && StaticSelectTagList.length > 0) {
|
||||
// for (var ni = 0; ni < datalistArr.length; ni++) {
|
||||
// if (StaticSelectTagList.indexOf(datalistArr[i]) != -1) {
|
||||
// $('#subsystemTagList').datalist("selectRecord", datalistArr[i].TagID);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
$('#subsystemTagList').datalist('resize', {
|
||||
height: ($('#aright').height() - 75)
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
//checkTagAdd = function (rowIndex, rowData) {
|
||||
// checkAddTaglist(rowData);
|
||||
//}
|
||||
|
||||
//function checkAddTaglist(rowData) {
|
||||
// if (StaticSelectTagList.indexOf(rowData) == -1) {
|
||||
// StaticSelectTagList.push(rowData);
|
||||
// }
|
||||
//}
|
||||
|
||||
//checkTagDec = function (rowIndex, rowData) {
|
||||
// checkDecTaglist(rowData);
|
||||
|
||||
//}
|
||||
|
||||
//function checkDecTaglist(rowData) {
|
||||
// if (StaticSelectTagList.indexOf(rowData) != -1) {
|
||||
// StaticSelectTagList.splice(StaticSelectTagList.indexOf(rowData), 1);
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
showTable = async function(){
|
||||
var showdata = await GetAlarmRecordValue();
|
||||
table.render({
|
||||
elem: '#result',
|
||||
height:'full-10',
|
||||
data: showdata,
|
||||
//editTrigger:'dblclick',
|
||||
cols:[[
|
||||
//{ type: 'checkbox' },
|
||||
//{ field: 'Subsystem', title: '子系统', edit: 'text'},
|
||||
|
||||
{ field: 'Description' , title:'报警名称' },
|
||||
//{ field: 'TagName' , title:'变量编码' , edit:'text'},
|
||||
//{ field: 'Address', title: '起始地址', edit: 'text' },
|
||||
//{ field: 'DataType' , title:'数值类型' , edit:'text'},
|
||||
|
||||
//{ field: 'RtValue' , title:'当前值' , edit:'text'},
|
||||
{ field: 'startdt', title: '开始时间'},
|
||||
{ field: 'enddt', title: '结束时间' },
|
||||
|
||||
]],
|
||||
page:true,
|
||||
limit:20,
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//获取tagvalue
|
||||
async function GetAlarmRecordValue() {
|
||||
var alarmlist = new Array();
|
||||
|
||||
let datetimestart = $('#dateReStartTime')[0].value;
|
||||
let datetimeend = $('#dateReEndTime')[0].value;
|
||||
|
||||
//getChecked
|
||||
var checkRow = $('#subsystemTagList').datalist("getChecked");
|
||||
let datapa = { "TagID": checkRow[0].TagID, "StartTime": Date.parse(new Date(datetimestart)), "EndTime": Date.parse(new Date(datetimeend)) };
|
||||
let result;
|
||||
debugger;
|
||||
|
||||
myajax = await $.ajax({
|
||||
url: "/ReportManage/MetaTagAlarm/GetAlarmRecord",
|
||||
type: "Post",
|
||||
//dataType: "json",
|
||||
data: datapa,
|
||||
success: function (redata) { }
|
||||
});
|
||||
|
||||
debugger;
|
||||
|
||||
$.when(myajax).done(function (redata){
|
||||
result = JSON.parse(redata);
|
||||
});
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
<html style="height:100%">
|
||||
<body style="height:100%">
|
||||
|
||||
@*<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 layui-col-space5" style="height:100%">
|
||||
<div class="layui-col-md2 layui-col-xs3" style="height:100%;padding-right:12px;">
|
||||
<div class="layui-card" style="text-align:left;overflow: auto;height:100%" id="toolbarDiv">
|
||||
@*<ul id="dataTree" class="dtree" data-id="0"></ul>*@
|
||||
<div id="aleft" style="float:left;width:100%;height:100%">
|
||||
<div class="easyui-panel" title="选择设备信息" style="width:100%;height:100%">
|
||||
<div class="easyui-combobox" id="subsystemselect" name="state" data-options="onSelect:function(rec){updateSelect(rec)}" style="width:100%;height:40px">
|
||||
</div>
|
||||
<div class="easyui-datalist" id="subsystemTagList" title="变量列表" style="position: relative;width:100%;height:auto;overflow:auto;" data-options="
|
||||
checkbox: true,
|
||||
selectOnCheck:true,
|
||||
checkOnSelect:true,
|
||||
sigleselect:true,
|
||||
@*onCheck:function(rowIndex,rowData){checkTagAdd(rowIndex,rowData)},
|
||||
onUncheck:function(rowIndex,rowData){checkTagDec(rowIndex,rowData)}*@
|
||||
">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md10 layui-col-xs9" style="height:100%">
|
||||
@*<div class="layui-card" style="padding: 5px;">
|
||||
<div id="echartdiv" style="width:100%;height: 100%;margin-bottom: 10px;">
|
||||
<div id="result" class="echart" style="width: 100%; height: 100% "></div>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
<form class="layui-form" style="height:auto;" id="formPreviewForm">
|
||||
<div id="grid_2" class="layui-form-item layui-row grid active" data-id="grid_2"
|
||||
data-tag="grid" data-index="0">
|
||||
<div class="layui-col-md3 widget-col-list column0" data-index="0" data-parentindex="0">
|
||||
<div id="ReStartTime" class="layui-form-item active" data-id="ReStartTime"
|
||||
data-tag="date" data-index="0">
|
||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||
开始时间:
|
||||
</label>
|
||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||
<input id="dateReStartTime" name="ndateReStartTime" lay-verify="required"
|
||||
class="layui-input icon-date widget-date " style="line-height: 40px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3 widget-col-list column1" data-index="1" data-parentindex="0">
|
||||
<div id="ReEndTime" class="layui-form-item active" data-id="ReEndTime"
|
||||
data-tag="date" data-index="0">
|
||||
<label class="layui-form-label layui-form-required" style="width: 80px;">
|
||||
结束世间:
|
||||
</label>
|
||||
<div class="layui-input-block" style="width:calc(100% - 110px);margin-left: 110px;">
|
||||
<input id="dateReEndTime" name="ndateReEndTime" lay-verify="required" class="layui-input icon-date widget-date "
|
||||
style="line-height: 40px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md2 widget-col-list column3" data-index="3" data-parentindex="0">
|
||||
<div id="bottom_5" class="layui-form-item active" data-id="bottom_5" data-tag="bottom"
|
||||
data-index="0">
|
||||
<div class="layui-input-block" style="margin-left: 30px;">
|
||||
<button id="btn_search" type="button" class="layui-btn custom-zc" ; onclick="showTable()">
|
||||
<i class="layui-icon ">
|
||||
</i>
|
||||
确定
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<form class="layui-form" style="height:calc(100vh - 55px);width:100%" id="tablepanel">
|
||||
<div class="layui-panel" id="gridpanel" style="width:100%;height: 100%;margin-bottom: 10px; ">
|
||||
<table id="result" lay-filter="metafilter"></table> @*style="width: 100%; height: 100% "*@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -263,13 +263,13 @@
|
||||
|
||||
<div class="layui-col-md4">
|
||||
|
||||
<div class="layui-card">
|
||||
@*<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-bullhorn icon icon-tip"></i>系统公告</div>
|
||||
<div class="layui-card-body layui-text layui-watercloud-notice">
|
||||
</div>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
<div class="layui-card">
|
||||
@*<div class="layui-card">
|
||||
<div class="layui-card-header"><i class="fa fa-fire icon"></i>版本信息</div>
|
||||
<div class="layui-card-body layui-text">
|
||||
<table class="layui-table">
|
||||
@ -314,7 +314,7 @@
|
||||
<p>技术交流QQ群(1065447456):<a target="_blank" href="https://jq.qq.com/?_wv=1027&k=51RHQVG"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="watercloud" title="watercloud"></a>(加群请备注)</p>
|
||||
<p>喜欢此模板的可以给我的Gitee加个Star支持一下</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -61,7 +61,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span>测试账号admin,密码0000</span>
|
||||
@* <span>测试账号admin,密码0000</span>*@
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="login_tips"></div>
|
||||
|
@ -39,6 +39,13 @@
|
||||
描 述:变量信息控制器类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:HT.Cloud.Web.Areas.DevicesManage.Controllers.MetaTagScopeController">
|
||||
<summary>
|
||||
创 建:cdl
|
||||
日 期:2023-03-16 09:39
|
||||
描 述:设备报警信息控制器类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:HT.Cloud.Web.Areas.FileManage.Controllers.UploadfileController">
|
||||
<summary>
|
||||
创 建:超级管理员
|
||||
@ -88,6 +95,13 @@
|
||||
描 述:订单管理控制器类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:HT.Cloud.Web.Areas.ReportManage.Controllers.MetaTagAlarmController">
|
||||
<summary>
|
||||
创 建:cdl
|
||||
日 期:2023-02-23 11:10
|
||||
描 述:历史趋势控制器类
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:HT.Cloud.Web.Areas.SystemManage.Controllers.CodegeneratelogController">
|
||||
<summary>
|
||||
创 建:超级管理员
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 455 KiB After Width: | Height: | Size: 306 KiB |
BIN
HT.Cloud.Web/wwwroot/report/Report20230320150308.xlsx
Normal file
BIN
HT.Cloud.Web/wwwroot/report/Report20230320150308.xlsx
Normal file
Binary file not shown.
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153457.xlsx
Normal file
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153457.xlsx
Normal file
Binary file not shown.
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153752.xlsx
Normal file
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153752.xlsx
Normal file
Binary file not shown.
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153820.xlsx
Normal file
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153820.xlsx
Normal file
Binary file not shown.
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153843.xlsx
Normal file
BIN
HT.Cloud.Web/wwwroot/report/Report20230320153843.xlsx
Normal file
Binary file not shown.
BIN
HT.Cloud.Web/wwwroot/report/Report20230320154653.xlsx
Normal file
BIN
HT.Cloud.Web/wwwroot/report/Report20230320154653.xlsx
Normal file
Binary file not shown.
BIN
HT.Cloud.Web/wwwroot/report/Report20230320154836.xlsx
Normal file
BIN
HT.Cloud.Web/wwwroot/report/Report20230320154836.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user