| | |
| | | <script> |
| | | import TimeSelectWithShortCuts from '../../sfc/TimeSelectWithShortCuts.vue'; |
| | | // import InputSearch from '../../sfc/InputSearch.vue'; |
| | | import AreaAndmonitorType from '../../sfc/AreaAndmonitorType.vue'; |
| | | import {useCommonFunction} from '../../utils/common.js'; |
| | | import requetsApi from '@/api/exportExcel/requetsApi.js' |
| | | import TimeShortCuts from '@/sfc/TimeShortCuts.vue'; |
| | | import AreaAndmonitorType from '@/sfc/AreaAndmonitorType.vue'; |
| | | import { useCommonFunction } from '../../utils/common.js'; |
| | | import requetsApi from '@/api/exportExcel/requetsApi.js'; |
| | | import dayjs from 'dayjs'; |
| | | import ButtonExportExcel from '@/sfc/ButtonExportExcel.vue' |
| | | import ButtonClick from '@/sfc/ButtonClick.vue' |
| | | |
| | | export default { |
| | | components: { |
| | | TimeSelectWithShortCuts, |
| | | // InputSearch |
| | | AreaAndmonitorType |
| | | TimeShortCuts, |
| | | AreaAndmonitorType, |
| | | ButtonExportExcel, |
| | | ButtonClick |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | total: 0, |
| | | // 表格数据 |
| | | tableData: [], |
| | | isNoData: false, |
| | | isNoData: true, |
| | | loading: false, |
| | | // begin: '2023-05-01', //开始时间 |
| | | // end: '2023-05-15', //结束时间 |
| | | |
| | | // 统计分析按钮加载中 |
| | | queryButton:false, |
| | | // 导出按钮加载中 |
| | | exportButton:false, |
| | | form: { |
| | | // 站点名称 |
| | | name: '', |
| | | // 设备编号 |
| | | number: '', |
| | | // 开始时间 |
| | | beginTime: '', |
| | | // 结束时间 |
| | |
| | | } |
| | | }; |
| | | }, |
| | | setup(){ |
| | | // 引入 百分号比较大小 导出功能 |
| | | const {cmpp,exportToExcel} = useCommonFunction() |
| | | return {cmpp,exportToExcel} |
| | | setup() { |
| | | // 引入 百分号比较大小 导出功能 |
| | | const { cmpp, exportToExcel } = useCommonFunction(); |
| | | return { cmpp, exportToExcel }; |
| | | }, |
| | | |
| | | // watch:{ |
| | | // pageSize(){ |
| | | // this.handleSizeChange() |
| | | // }, |
| | | // currentPage(){ |
| | | // this.handleCurrentChange() |
| | | // }, |
| | | // }, |
| | | |
| | | mounted() { |
| | | console.log(this.$route.matched); |
| | | this.form.name = ''; |
| | | }, |
| | | methods: { |
| | | // 功能:导出为Excel |
| | | exportData(){ |
| | | let params ={ |
| | | 'beginTime':this.form.beginTime, |
| | | 'endTime': this.form.endTime |
| | | } |
| | | requetsApi.fetchAllData(params).then(res => { |
| | | const data = res.data.data |
| | | console.log('长度:',data.length); |
| | | exportData() { |
| | | let params = { |
| | | beginTime: this.form.beginTime, |
| | | endTime: this.form.endTime |
| | | }; |
| | | this.exportButton = true |
| | | requetsApi.fetchAllData(params).then((res) => { |
| | | const data = res.data.data; |
| | | |
| | | const tableColumns = [ |
| | | 'name', |
| | | 'mnCode', |
| | | 'lst', |
| | | 'dayAvg', |
| | | 'min', |
| | | 'max', |
| | | 'dayOnline', |
| | | 'dayValid', |
| | | 'dayExceeding', |
| | | ] |
| | | const excelColumns = [['A1','站点名称'], |
| | | ['B1','设备编号'],['C1','监测日期'],['D1','平均值'], |
| | | ['E1','最小值'],['F1','最大值'],['G1','在线率'], |
| | | ['H1','有效率'],['I1','超标率']] |
| | | this.exportToExcel(data,tableColumns,excelColumns,'分析表.xlsx') |
| | | }) |
| | | |
| | | const tableColumns = [ |
| | | 'name', |
| | | 'mnCode', |
| | | 'lst', |
| | | 'dayAvg', |
| | | 'min', |
| | | 'max', |
| | | 'dayOnline', |
| | | 'dayValid', |
| | | 'dayExceeding' |
| | | ]; |
| | | const excelColumns = [ |
| | | ['A1', '站点名称'], |
| | | ['B1', '设备编号'], |
| | | ['C1', '监测日期'], |
| | | ['D1', '平均值'], |
| | | ['E1', '最小值'], |
| | | ['F1', '最大值'], |
| | | ['G1', '在线率'], |
| | | ['H1', '有效率'], |
| | | ['I1', '超标率'] |
| | | ]; |
| | | this.exportToExcel(data, tableColumns, excelColumns, '分析表.xlsx'); |
| | | this.exportButton = false |
| | | }); |
| | | }, |
| | | // 功能:改变表格某个单元格的颜色 |
| | | tableCellClassName({ row, column, rowIndex, columnIndex }) { |
| | | tableCellClassName({ row, columnIndex }) { |
| | | // 平均值不满足标准时 |
| | | if (columnIndex == 4) { |
| | | if (row.dayAvg >= 0.8) { |
| | |
| | | |
| | | // 在线率,有效率 不满足标准时 变颜色 |
| | | if (columnIndex == 7) { |
| | | if (!this.cmpp(row.dayOnline,'90%')) { |
| | | if (!this.cmpp(row.dayOnline, '90%')) { |
| | | return 'red-color'; |
| | | } |
| | | } |
| | | if (columnIndex == 8) { |
| | | if (!this.cmpp(row.dayValid,'90%')) { |
| | | if (!this.cmpp(row.dayValid, '90%')) { |
| | | return 'red-color'; |
| | | } |
| | | } |
| | |
| | | |
| | | // 页号改变时触发 |
| | | handleCurrentChange(val) { |
| | | console.log('当前页为:', val); |
| | | // 将当前页号给currentPage |
| | | this.currentPage = val; |
| | | |
| | |
| | | |
| | | // 点击统计按钮 |
| | | fetchData() { |
| | | console.log(this.form.name); |
| | | let params = {}; |
| | | params['page'] = this.currentPage; |
| | | params['pageSize'] = this.pageSize; |
| | |
| | | params['endTime'] = this.form.endTime; |
| | | } |
| | | this.loading = true; |
| | | this.queryButton = true |
| | | this.$http |
| | | .get('/dust/analysistime', { params: params }) |
| | | .then((response) => { |
| | | this.tableData = response.data.data.rows; |
| | | console.log(this.tableData); |
| | | this.loading = false; |
| | | this.queryButton = false |
| | | if (response.data.data.total == 0) { |
| | | this.isNoData = true; |
| | | return; |
| | |
| | | // 移除空数据状态 |
| | | this.isNoData = false; |
| | | this.total = response.data.data.total; |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | } |
| | |
| | | <div class="search-container"> |
| | | <el-container> |
| | | <el-main> |
| | | <el-form :inline="true" :model="form" class="demo-form-inline"> |
| | | <el-form :inline="true" :model="form"> |
| | | <el-form-item> |
| | | <AreaAndmonitorType></AreaAndmonitorType> |
| | | </el-form-item> |
| | | <!-- <el-form-item> |
| | | <InputSearch @submit-value="(n) => (form.name = n)"></InputSearch> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item> |
| | | <TimeSelectWithShortCuts |
| | | <TimeShortCuts |
| | | timeType="currentMonth" |
| | | @submit-time="giveTime" |
| | | ></TimeSelectWithShortCuts> |
| | | ></TimeShortCuts> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" @click="fetchData">统计分析</el-button> |
| | | <el-button type="warning" @click="exportData">导出</el-button> |
| | | <ButtonClick style="margin-right: 12px;" content="风险排名" type="primary" :loading="queryButton" @do-search="fetchData" ></ButtonClick> |
| | | <ButtonExportExcel content="导出数据" type="success" :loading="exportButton" @do-export="exportData"></ButtonExportExcel> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-card> |
| | | <el-empty v-show="isNoData" :image-size="200" /> |
| | | <!-- <LineChart :chartData="option"> </LineChart> --> |
| | | <el-card v-show="!isNoData"> |
| | | <el-table |
| | | :data="tableData" |
| | | height="600px" |
| | | style="width: 100%" |
| | | v-loading="loading" |
| | | :cell-class-name="tableCellClassName" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | prop="name" |
| | | label="序号" |
| | | :index="indexMethod" |
| | | fixed |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | prop="name" |
| | | label="站点名称" |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="mnCode" |
| | | label="设备编号" |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="lst" |
| | | label="监测日期" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayAvg" |
| | | label="日平均值" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | prop="min" |
| | | label="日最小值" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | prop="max" |
| | | label="日最大值" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayOnline" |
| | | label="日在线率" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayValid" |
| | | label="日有效率" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayExceeding" |
| | | label="日超标率" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | </el-table> |
| | | |
| | | <el-pagination |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :total="total" |
| | | layout="total,sizes, prev, pager, next, jumper" |
| | | v-model:current-page="currentPage" |
| | | v-model:page-size="pageSize" |
| | | @update:current-page="handleCurrentChange" |
| | | @update:page-size="handleSizeChange" |
| | | /> |
| | | </el-card> |
| | | |
| | | <el-table |
| | | :data="tableData" |
| | | height="600px" |
| | | style="width: 100%" |
| | | v-loading="loading" |
| | | :cell-class-name="tableCellClassName" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | prop="name" |
| | | label="序号" |
| | | :index="indexMethod" |
| | | fixed |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column prop="name" label="站点名称" show-overflow-tooltip /> |
| | | |
| | | <el-table-column |
| | | prop="mnCode" |
| | | label="设备编号" |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="lst" |
| | | label="监测日期" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayAvg" |
| | | label="日平均值" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | prop="min" |
| | | label="日最小值" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | prop="max" |
| | | label="日最大值" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayOnline" |
| | | label="日在线率" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayValid" |
| | | label="日有效率" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="dayExceeding" |
| | | label="日超标率" |
| | | sortable |
| | | show-overflow-tooltip |
| | | /> |
| | | </el-table> |
| | | |
| | | <el-pagination |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :total="total" |
| | | layout="total,sizes, prev, pager, next, jumper" |
| | | v-model:current-page="currentPage" |
| | | v-model:page-size="pageSize" |
| | | @update:current-page="handleCurrentChange" |
| | | @update:page-size="handleSizeChange" |
| | | /> |
| | | <el-empty v-show="isNoData" :image-size="200" /> |
| | | </el-main> |
| | | </el-container> |
| | | </div> |
| | |
| | | background-color: red; |
| | | } |
| | | .el-table { |
| | | color: #000000; |
| | | color: #333333; |
| | | } |
| | | |
| | | </style> |