<template> <div class="app-container"> <!-- 搜索工作栏 --> <search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> <!-- 列表 --> <base-table :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-props="tableProps" :table-data="list" :max-height="tableH" /> <pagination :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" :total="total" @pagination="getList" /> </div> </template> <script> import { energyReportPage, energyReportPageExport } from "@/api/monitoring/energyReport"; import { getEnergyTypeListAll } from "@/api/base/energyType" const tableProps = [ { prop: 'statisticName', label: '统计方案' }, { prop: 'energyType', label: '能源类型' }, { prop: 'startNum', label: '抄表数(起始)' }, { prop: 'endNum', label: '抄表数(结束)' }, { prop: 'useNum', label: '消耗量' } ] export default { name: "EnergyReportSearch", data() { return { formConfig: [ { type: 'input', label: '统计方案', param: 'statisticName' }, { type: 'select', label: '能源类型', selectOptions: [], param: 'energyTypeId', filterable: true }, { type: 'datePicker', label: '时间(必填)', dateType: 'datetimerange', format: 'yyyy-MM-dd HH:mm:ss', valueFormat: "timestamp", rangeSeparator: '-', startPlaceholder: '开始时间', endPlaceholder: '结束时间', param: 'timeVal', defaultSelect: [], width: 350, clearable: false }, { type: 'button', btnName: '查询', name: 'search', color: 'primary' }, { type: 'separate' }, { type: this.$auth.hasPermi('monitoring:energy-report-search:export') ? 'button' : '', btnName: '导出', name: 'add', color: 'primary', plain: true } ], tableProps, tableH: this.tableHeight(260), // 总条数 total: 0, // 班次基础信息列表 list: [], // 查询参数 queryParams: { pageNo: 1, pageSize: 20, statisticName: null, startTime: null, endTime: null }, energyTypeList: [] }; }, created() { window.addEventListener('resize', () => { this.tableH = this.tableHeight(260) }) if (this.$route.params.startTime && this.$route.params.endTime) { this.formConfig[2].defaultSelect = [this.$route.params.startTime, this.$route.params.endTime] } else { this.formConfig[2].defaultSelect = [Date.now() - 7*24*3600000, Date.now()] } this.queryParams.startTime = this.formConfig[2].defaultSelect[0] this.queryParams.endTime = this.formConfig[2].defaultSelect[1] this.getList() this.getTypeList() }, methods: { getTypeList() { getEnergyTypeListAll().then((res) => { this.formConfig[1].selectOptions = res.data || [] }) }, buttonClick(val) { switch (val.btnName) { case 'search': this.queryParams.pageNo = 1 this.queryParams.statisticName = val.statisticName this.queryParams.energyTypeId = val.energyTypeId this.queryParams.startTime = val.timeVal ? val.timeVal[0] : null this.queryParams.endTime = val.timeVal ? val.timeVal[1] : null this.getList() break default: this.$modal.confirm('是否确认导出').then(() => { return energyReportPageExport({...this.queryParams}); }).then(response => { this.$download.excel(response, '能源统计查询报表.xls'); }).catch(() => {}) } }, /** 查询列表 */ getList() { energyReportPage({...this.queryParams}).then(response => { this.list = response.data.list || []; this.total = response.data.total; }); } } }; </script>