alarm-handler.js 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // 全局函数,处理告警按钮点击
  2. function processAlarm(btn) {
  3. // alert("处理按钮已点击!"); // 移除测试提示
  4. console.log("处理按钮被点击:", btn);
  5. try {
  6. var alarmId = btn.getAttribute('data-id');
  7. var row = btn.closest('tr');
  8. // 获取当前行数据
  9. var alarmLevel = row.querySelector('td:nth-child(2) .badge').textContent;
  10. var deviceName = row.querySelector('td:nth-child(3)').textContent;
  11. var deviceId = row.querySelector('td:nth-child(4)').textContent;
  12. var deviceType = row.querySelector('td:nth-child(5)').textContent;
  13. var field = row.querySelector('td:nth-child(6)').textContent;
  14. var farm = row.querySelector('td:nth-child(7)').textContent;
  15. var alarmContent = row.querySelector('td:nth-child(8)').textContent;
  16. var alarmTime = row.querySelector('td:nth-child(9)').textContent;
  17. // 填充模态框数据
  18. var modal = document.getElementById('alarmHandleModal');
  19. modal.querySelector('.alarm-level').textContent = alarmLevel;
  20. modal.querySelector('.alarm-time').textContent = alarmTime;
  21. modal.querySelector('.alarm-content').textContent = alarmContent;
  22. modal.querySelector('.alarm-device-name').textContent = deviceName;
  23. modal.querySelector('.alarm-device-id').textContent = deviceId;
  24. modal.querySelector('.alarm-device-type').textContent = deviceType;
  25. modal.querySelector('.alarm-field').textContent = field;
  26. modal.querySelector('.alarm-farm').textContent = farm;
  27. // 根据告警等级设置背景样式
  28. var alarmBox = modal.querySelector('.p-4.mb-4');
  29. if (alarmLevel.includes('紧急')) {
  30. alarmBox.className = 'p-4 mb-4 bg-red-50 alarm-type-urgent';
  31. modal.querySelector('.alarm-level').className = 'badge badge-danger alarm-level';
  32. } else if (alarmLevel.includes('警告')) {
  33. alarmBox.className = 'p-4 mb-4 bg-yellow-50 alarm-type-warning';
  34. modal.querySelector('.alarm-level').className = 'badge badge-warning alarm-level';
  35. } else {
  36. alarmBox.className = 'p-4 mb-4 bg-blue-50 alarm-type-notice';
  37. modal.querySelector('.alarm-level').className = 'badge badge-primary alarm-level';
  38. }
  39. // 记录当前操作的行
  40. modal.setAttribute('data-row', Array.from(row.parentNode.children).indexOf(row));
  41. // 重置表单
  42. document.getElementById('handleResult').value = '1';
  43. document.getElementById('handleRemark').value = '';
  44. document.getElementById('fileCount').textContent = '未选择文件';
  45. document.getElementById('fileList').innerHTML = '';
  46. if(document.getElementById('notifyRelated')) {
  47. document.getElementById('notifyRelated').checked = false;
  48. }
  49. if(document.getElementById('attachmentUpload')) {
  50. document.getElementById('attachmentUpload').value = '';
  51. }
  52. // 显示模态框
  53. modal.style.display = 'flex';
  54. } catch (e) {
  55. console.error("处理告警出错:", e);
  56. alert("处理告警出错:" + e.message);
  57. }
  58. return false; // 防止表单提交和页面刷新
  59. }
  60. // 为兼容现有代码而添加的函数
  61. function showAlarmModal(btn) {
  62. return processAlarm(btn);
  63. }