exportAlarm.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. export default {
  2. data() {
  3. return {
  4. downloadLoading: false,
  5. }
  6. },
  7. created() {
  8. },
  9. methods: {
  10. //获取导出文件名称
  11. getFileName() {
  12. var tmpDate = new Date();
  13. var year = tmpDate.getFullYear();
  14. var month = ("0" + (tmpDate.getMonth() + 1)).slice(-2)
  15. var date = ("0" + tmpDate.getDate()).slice(-2)
  16. var h = ("0" + tmpDate.getHours()).slice(-2)
  17. var m = ("0" + tmpDate.getMinutes()).slice(-2)
  18. var s = ("0" + tmpDate.getSeconds()).slice(-2)
  19. return '告警统计' + year + month + date + h + m + s
  20. },
  21. //导出告警设备
  22. exportDeviceForAll(){
  23. this.downloadLoading = true
  24. const tHeader=['序号', '资产编号', '所属区域', '设备详细地址', '单位名称', '告警个数', '告警时间']
  25. const filterVal=['id', 'asset_no', 'area_name', 'addr', 'depart_name', 'alarm_num', 'alarm_time']
  26. const query =this.queryParam
  27. this.$http.post('device/exportAlarmDevice', { params: query },{'timeout':120000}).then(response => {
  28. let data = response.data
  29. this.exportExcel(data,tHeader,filterVal);
  30. })
  31. },
  32. exportDeviceBySelectIds(selectedIds) {
  33. this.downloadLoading = true
  34. let list = []
  35. const tHeader=['序号', '资产编号', '所属区域', '设备详细地址', '单位名称', '告警个数', '告警时间']
  36. const filterVal=['id', 'asset_no', 'area_name', 'addr', 'depart_name', 'alarm_num', 'alarm_time']
  37. this.data.forEach(item => {
  38. if(selectedIds.indexOf(item.id) !='-1' ){
  39. list.push(item);
  40. }
  41. })
  42. this.exportExcel(list,tHeader,filterVal);
  43. },
  44. //告警心跳导出
  45. exportExcelForAll(confirm_user_id){
  46. this.downloadLoading = true
  47. const query =this.queryParam
  48. query.confirm_user_id=confirm_user_id;
  49. const tHeader=['序号', '设备类型', '告警原因', '告警类型', '资产编号', '设备详细地址', '告警时间', '告警持续时间']
  50. const filterVal=['id', 'device_type', 'alarm_reason', 'alarm_source', 'asset_no', 'addr', 'start_time', 'continue_time']
  51. this.$http.post('alarm/exportAlarm', { params: query },{'timeout':120000}).then(response => {
  52. let data = response.data
  53. this.exportExcel(data,tHeader,filterVal);
  54. })
  55. },
  56. exportExcelBySelectIds(selectedIds) {
  57. this.downloadLoading = true
  58. const tHeader=['序号', '设备类型', '告警原因', '告警类型', '资产编号', '设备详细地址', '告警时间', '告警持续时间']
  59. const filterVal=['id', 'device_type', 'alarm_reason', 'alarm_source', 'asset_no', 'address', 'start_time', 'continue_time']
  60. let list = []
  61. this.data.forEach(item => {
  62. if(selectedIds.indexOf(item.id) !='-1' ){
  63. list.push(item);
  64. }
  65. })
  66. this.exportExcel(list,tHeader,filterVal);
  67. },
  68. exportExcel(list,tHeader,filterVal) {
  69. import('@/vendor/Export2Excel').then(excel => {
  70. const data = this.formatJson(filterVal, list)
  71. excel.export_json_to_excel({
  72. header: tHeader,
  73. data,
  74. filename: this.getFileName(),
  75. autoWidth: true,
  76. bookType: 'xlsx',
  77. })
  78. this.downloadLoading = false
  79. })
  80. },
  81. formatJson(filterVal, jsonData) {
  82. return jsonData.map(v => filterVal.map(j => {
  83. if (j === 'address') {
  84. return v['device_info']['addr']
  85. } else {
  86. return v[j]
  87. }
  88. }))
  89. }
  90. }
  91. }