<template> <el-dialog :visible.sync="dialogFormVisible" :title="listQuery.devcode+'历史数据'" width="60%" append-to-body class="lineDialog" > <div style="margin-bottom: 10px"> <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始时间" end-placeholder="结束时间" size="small"/> <el-button class="filter-item" type="primary" icon="el-icon-search" size="small" @click="fetchData">搜索</el-button> <!-- <el-button class="filter-item" type="primary" size="small" @click="exportData">导出</el-button> --> </div> <div v-loading="loading1"> <div> <el-table :data="data" size="mini" height="380px" > <el-table-column label="上报时间" prop="logtime" align="center"/> <el-table-column label="瞬时流速(Nm/s)" prop="instantVelocity" align="center"/> <el-table-column label="瞬时流量(m³/h)" prop="instantFlow" align="center"/> <el-table-column label="介质温度(℃)" prop="ambocetorTemperture" align="center"/> <el-table-column label="累计流量(m³)" prop="totalFlow" align="center"/> </el-table> </div> <!--分页--> <div class="pagination-container"> <el-pagination v-show="total>listQuery.limit" :current-page="listQuery.offset" :page-sizes="[20,30,50]" :page-size="listQuery.limit" :total="total" align="center" layout="total, sizes, prev, pager, next" @size-change="handleSizeChange" @current-change="handleCurrentChange"/> </div> </div> </el-dialog> </template> <script> import { getDayTime } from '@/utils/dateutils' import { totalDataGasFlow } from '@/api/device' import { batchExportWaterHistory } from '@/api/data' export default { name: 'GasFlowHistory', data() { return { total: 0, // 数据总数 loading1: true, timeRange: [], dialogFormVisible: false, // 对话框是否显示 listQuery: { offset: 1, limit: 20, devcode: '', beginTime: '', endTime: '' }, data: [] } }, methods: { initDialog: function(dialogFormVisible, row = null) { console.log(row, '========row=====') this.listQuery.devcode = row.devcode this.dialogFormVisible = dialogFormVisible const beginTime = getDayTime(new Date().getTime() - 24 * 7 * 60 * 60 * 1000).Format('yyyy-MM-dd hh:mm:ss') const endTime = new Date().Format('yyyy-MM-dd hh:mm:ss') this.timeRange = [beginTime, endTime] this.fetchData() // 传row }, // 改变页容量 handleSizeChange(val) { this.listQuery.limit = val this.fetchData() }, // 改变当前页 handleCurrentChange(val) { this.listQuery.offset = val this.fetchData() }, fetchData(isNowPage = true) { this.listLoading = true if (!isNowPage) { // 是否显示当前页,否则跳转第一页 this.listQuery.offset = 1 } this.loading1 = true if (this.timeRange && this.timeRange.length === 2) { this.listQuery.beginTime = this.timeRange[0] this.listQuery.endTime = this.timeRange[1] } else { this.listQuery.beginTime = '' this.listQuery.endTime = '' } totalDataGasFlow(this.listQuery).then(response => { this.data = response.data this.loading1 = false }) }, // 批量导出 exportData() { console.log('批量导出液位配置') // 全屏加载动画 const loading = this.$loading({ lock: true, text: '数据处理中,请稍后...', spinner: 'el-icon-loading', background: 'rgba(0, 0, 0, 0.7)' }) batchExportWaterHistory(this.listQuery).then((res) => { loading.close() // 关闭加载动画 console.log('download===', res) const blob = new Blob([res.data]) const downloadElement = document.createElement('a') const href = window.URL.createObjectURL(blob) // 创建下载的链接 downloadElement.href = href downloadElement.download = `${this.listQuery.devcode}远程水表历史数据.xlsx` // 下载后文件名 document.body.appendChild(downloadElement) downloadElement.click() // 点击下载 document.body.removeChild(downloadElement) // 下载完成移除元素 window.URL.revokeObjectURL(href) // 释放blob对象 }).catch((res) => { loading.close() }) } } } </script> <style> .el-dialog__header { padding: 10px !important; } .el-dialog__body { padding: 10px !important; } </style>