export default { data() { return { downloadLoading: false, } }, created() { }, methods: { //获取导出文件名称 getFileName() { var tmpDate = new Date(); var year = tmpDate.getFullYear(); var month = ("0" + (tmpDate.getMonth() + 1)).slice(-2) var date = ("0" + tmpDate.getDate()).slice(-2) var h = ("0" + tmpDate.getHours()).slice(-2) var m = ("0" + tmpDate.getMinutes()).slice(-2) var s = ("0" + tmpDate.getSeconds()).slice(-2) return '告警统计' + year + month + date + h + m + s }, //导出告警设备 exportDeviceForAll(){ this.downloadLoading = true const tHeader=['序号', '资产编号', '所属区域', '设备详细地址', '单位名称', '告警个数', '告警时间'] const filterVal=['id', 'asset_no', 'area_name', 'addr', 'depart_name', 'alarm_num', 'alarm_time'] const query =this.queryParam this.$http.post('device/exportAlarmDevice', { params: query },{'timeout':120000}).then(response => { let data = response.data this.exportExcel(data,tHeader,filterVal); }) }, exportDeviceBySelectIds(selectedIds) { this.downloadLoading = true let list = [] const tHeader=['序号', '资产编号', '所属区域', '设备详细地址', '单位名称', '告警个数', '告警时间'] const filterVal=['id', 'asset_no', 'area_name', 'addr', 'depart_name', 'alarm_num', 'alarm_time'] this.data.forEach(item => { if(selectedIds.indexOf(item.id) !='-1' ){ list.push(item); } }) this.exportExcel(list,tHeader,filterVal); }, //告警心跳导出 exportExcelForAll(confirm_user_id){ this.downloadLoading = true const query =this.queryParam query.confirm_user_id=confirm_user_id; const tHeader=['序号', '设备类型', '告警原因', '告警类型', '资产编号', '设备详细地址', '告警时间', '告警持续时间'] const filterVal=['id', 'device_type', 'alarm_reason', 'alarm_source', 'asset_no', 'addr', 'start_time', 'continue_time'] this.$http.post('alarm/exportAlarm', { params: query },{'timeout':120000}).then(response => { let data = response.data this.exportExcel(data,tHeader,filterVal); }) }, exportExcelBySelectIds(selectedIds) { this.downloadLoading = true const tHeader=['序号', '设备类型', '告警原因', '告警类型', '资产编号', '设备详细地址', '告警时间', '告警持续时间'] const filterVal=['id', 'device_type', 'alarm_reason', 'alarm_source', 'asset_no', 'address', 'start_time', 'continue_time'] let list = [] this.data.forEach(item => { if(selectedIds.indexOf(item.id) !='-1' ){ list.push(item); } }) this.exportExcel(list,tHeader,filterVal); }, exportExcel(list,tHeader,filterVal) { import('@/vendor/Export2Excel').then(excel => { const data = this.formatJson(filterVal, list) excel.export_json_to_excel({ header: tHeader, data, filename: this.getFileName(), autoWidth: true, bookType: 'xlsx', }) this.downloadLoading = false }) }, formatJson(filterVal, jsonData) { return jsonData.map(v => filterVal.map(j => { if (j === 'address') { return v['device_info']['addr'] } else { return v[j] } })) } } }