UnprocessedEarlyWarningManagementIndex.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. function viewModel() {
  2. this.ID = "";
  3. this.init = function () {
  4. InitTable();
  5. }
  6. };
  7. function InitTable() {
  8. var params = {};
  9. params.WCLZT = "红色,橙色";
  10. params.ZT = 1;
  11. //提交表单信息到具体得页面
  12. var url = '/CloudMonitor/GetServerAlertBySearch';
  13. $.post(url, params, function (data) {
  14. const result = separateByWorkHours(data);
  15. LoadTable($("#treegrid1"), result.workHoursData.sort((a, b) => {
  16. // 将时间字符串转换为 Date 对象
  17. const dateA = new Date(a["创建时间"]);
  18. const dateB = new Date(b["创建时间"]);
  19. // 进行倒序排序
  20. return dateB - dateA;
  21. }));
  22. LoadTable($("#treegrid2"), result.offWorkHoursData.sort((a, b) => {
  23. // 将时间字符串转换为 Date 对象
  24. const dateA = new Date(a["创建时间"]);
  25. const dateB = new Date(b["创建时间"]);
  26. // 进行倒序排序
  27. return dateB - dateA;
  28. }));
  29. });
  30. }
  31. function gethours(dateStr) {
  32. // 以 "HH:MM:SS" 格式处理时间字符串
  33. const [hours, minutes, seconds] = dateStr.split(':').map(Number);
  34. return hours;
  35. }
  36. function isWithinWorkHours(dateStr, workStartHour, workEndHour) {
  37. const date = new Date(dateStr);
  38. const hours = date.getHours();
  39. // 判断时间是否在工作时间内
  40. return (hours > workStartHour && hours < workEndHour);
  41. }
  42. function separateByWorkHours(data) {
  43. const workHoursData = [];
  44. const offWorkHoursData = [];
  45. try {
  46. // 定义工作时间的开始和结束时间
  47. const workStartHour = gethours(window.starTime);
  48. const workEndHour = gethours(window.endTime);
  49. data.forEach(item => {
  50. if (isWithinWorkHours(item["创建时间"], workStartHour, workEndHour)) {
  51. workHoursData.push(item);
  52. } else {
  53. offWorkHoursData.push(item);
  54. }
  55. });
  56. return {
  57. workHoursData,
  58. offWorkHoursData
  59. };
  60. } catch (e) {
  61. top.ZLPMS.Msg("当前工作时间定义获取失败");
  62. return {
  63. workHoursData:[],
  64. offWorkHoursData: []
  65. };
  66. }
  67. }
  68. function LoadTable(ele, data) {
  69. //初始化树形表格
  70. ele.datagrid({
  71. idField: 'ID',
  72. data: data,
  73. fit: true,
  74. pageSize: 0,
  75. toolbar: window.proId != null ? "" : "#Channeltb",
  76. rownumbers: true,
  77. //底部显示分页工具栏
  78. pagination: false,
  79. //列名称
  80. columns: [[
  81. { field: '项目名称', title: '项目', width: 100 },
  82. { field: '渠道名称', title: '渠道', width: 100 },
  83. { field: '预警类型显示', title: '预警类型', width: 120, align: 'center' },
  84. { field: '异常说明', title: '异常说明', width: 350, align: 'left' },
  85. {
  86. field: '创建时间', title: '初次预警时间', width: 150, align: 'center', formatter: ZLPMS.formatterData
  87. },
  88. { field: '最后上报时间', title: '最后上报时间', width: 150, align: 'center', formatter: ZLPMS.formatterData },
  89. {
  90. field: '预警次数', title: '预警次数', width: 100, align: 'center'
  91. },
  92. {
  93. field: '服务器IP', title: 'IP', width: 100, align: 'center'
  94. },
  95. { field: '服务器类型显示', title: '服务器类型', width: 100, align: 'center' },
  96. { field: '负责人', title: '负责人', width: 100, align: 'center' },
  97. {
  98. field: '预警状态显示', title: '状态', width: 100, align: 'center',
  99. formatter: function (value, rowData, index) {
  100. let className = "";
  101. switch (rowData.预警状态显示) {
  102. case "已处理": {
  103. className = "Normal";
  104. break
  105. }
  106. case "未处理": {
  107. className = "Serious";
  108. break
  109. }
  110. default: {
  111. className = "Warning";
  112. }
  113. }
  114. return `<div class="${className}">${value}</div>`;
  115. }
  116. },
  117. { field: '处理时间', title: '处理时间', width: 150, align: 'center', formatter: ZLPMS.formatterData }
  118. ]],
  119. singleSelect: true,
  120. onClickRow: function (index, row) {
  121. },
  122. onSelectAll: function (rows) {
  123. }
  124. });
  125. }
  126. //提交表单信息
  127. var Forms = {
  128. Submit: function (index, layero) {
  129. var iframeWin = ZLPMS.GetChildFrame(layero);//得到iframe页的窗口对象,执行iframe页的方法:
  130. //调用子页面的方法,得到子页面返回的ids
  131. var param = iframeWin.GetData();
  132. if (!param) return;
  133. if (param != null) {
  134. if (param.创建时间 == "") {
  135. top.ZLPMS.Msg("请填写处理时间");
  136. return;
  137. }
  138. if (param.处理人 == "") {
  139. top.ZLPMS.Msg("请填写处理人");
  140. return;
  141. }
  142. if (param.处理状态 == "") {
  143. top.ZLPMS.Msg("请选择处理状态");
  144. return;
  145. }
  146. //提交表单信息到具体得页面
  147. var url = '/CloudMonitor/InsertServerAlertProcess';
  148. $.post(url, param, function (data) {
  149. if (data == "1") {
  150. top.ZLPMS.CloseWindow(index);
  151. top.ZLPMS.Msg("保存成功");
  152. //刷新页面
  153. List.Reload();
  154. }
  155. else {
  156. ZLPMS.Msg(data.msg, 2);
  157. }
  158. });
  159. }
  160. }
  161. };
  162. //重新刷新页面 7
  163. var List = {
  164. //重新加载页面所有信息
  165. Reload: function () {
  166. $('#treegrid').datagrid('reload');
  167. }
  168. };
  169. //删除
  170. var Doajax = function (data) {
  171. $.ajax({
  172. url: `/CloudMonitor/DeleteCustomAlertById?id=${data.ID}`,
  173. method: 'GET',
  174. success: function (data) {
  175. if (data == "1") {
  176. top.ZLPMS.Msg("删除成功");
  177. //刷新页面
  178. List.Reload();
  179. }
  180. else {
  181. top.ZLPMS.Msg("删除失败");
  182. List.Reload();
  183. }
  184. }
  185. });
  186. }
  187. //回车提交查询
  188. function Enter_Submit() {
  189. InitTable();
  190. }