function viewModel() { this.ID = ""; this.init = function () { InitTable(); } }; function InitTable() { var params = {}; params.WCLZT = "红色,橙色"; params.ZT = 1; //提交表单信息到具体得页面 var url = '/CloudMonitor/GetServerAlertBySearch'; $.post(url, params, function (data) { // 获取今天的日期 const today = new Date(); //未及时处理判断 data = data.filter(item => { switch (item.预警等级显示) { case "橙色预警": { if (Number(((new Date() - new Date(item.创建时间)) / (1000 * 60))) > window.未及时处理预警橙色) { return true; } return false; break; } case "红色预警": { if (Number(((new Date() - new Date(item.创建时间)) / (1000 * 60))) > window.未及时处理预警红色) { return true; } return false; break; } } return false; }) // 计算每个记录的 "创建时间" 距离今天的天数,并添加到新字段中 data.forEach(record => { const creationDate = new Date(record["创建时间"]); const diffTime = today - creationDate; // 计算时间差(毫秒) const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24)); // 转换为天数 record["距离今天的天数"] = diffDays + "天"; }); const result = separateByWorkHours(data); LoadTable($("#treegrid1"), result.workHoursData.sort((a, b) => { // 将时间字符串转换为 Date 对象 const dateA = new Date(a["创建时间"]); const dateB = new Date(b["创建时间"]); // 进行倒序排序 return dateA - dateB; })); LoadTable($("#treegrid2"), result.offWorkHoursData.sort((a, b) => { // 将时间字符串转换为 Date 对象 const dateA = new Date(a["创建时间"]); const dateB = new Date(b["创建时间"]); // 进行倒序排序 return dateB - dateA; })); }); } function gethours(dateStr) { // 以 "HH:MM:SS" 格式处理时间字符串 const [hours, minutes, seconds] = dateStr.split(':').map(Number); return hours; } function isWithinWorkHours(dateStr, workStartHour, workEndHour) { const date = new Date(dateStr); const hours = date.getHours(); // 判断时间是否在工作时间内 return (hours > workStartHour && hours < workEndHour); } function separateByWorkHours(data) { const workHoursData = []; const offWorkHoursData = []; try { // 定义工作时间的开始和结束时间 const workStartHour = gethours(window.starTime); const workEndHour = gethours(window.endTime); data.forEach(item => { if (isWithinWorkHours(item["创建时间"], workStartHour, workEndHour)) { workHoursData.push(item); } else { offWorkHoursData.push(item); } }); return { workHoursData, offWorkHoursData }; } catch (e) { top.ZLPMS.Msg("当前工作时间定义获取失败"); return { workHoursData:[], offWorkHoursData: [] }; } } function LoadTable(ele, data) { //初始化树形表格 ele.datagrid({ idField: 'ID', data: data, fit: true, pageSize: 0, toolbar: window.proId != null ? "" : "#Channeltb", rownumbers: true, //底部显示分页工具栏 pagination: false, //列名称 columns: [[ { field: '项目名称', title: '项目', width: 300 }, { field: '渠道名称', title: '渠道', width: 100 }, { field: '预警类型显示', title: '预警类型', width: 120, align: 'center' }, { field: '异常说明', title: '异常说明', width: 350, align: 'left' }, { field: '创建时间', title: '初次预警时间', width: 150, align: 'center', formatter: ZLPMS.formatterData }, { field: '预警次数', title: '预警次数', width: 100, align: 'center' }, { field: '服务器IP', title: 'IP', width: 100, align: 'center' }, { field: '服务器类型显示', title: '服务器类型', width: 100, align: 'center' }, { field: '负责人', title: '负责人', width: 100, align: 'center' }, { field: '预警等级显示', title: '预警等级', width: 100, align: 'center', formatter: function (value, rowData, index) { let className = ""; if (rowData.预警状态显示 == "已处理") { className = "Normal"; } else { switch (rowData.预警等级显示) { case "橙色预警": { className = "Warning"; break } case "红色预警": { className = "Serious"; break } } } return `