| | |
| | | <script > |
| | | import * as XLSX from 'xlsx/xlsx.mjs'; |
| | | import dayjs from 'dayjs'; |
| | | import axiosInstance from '../utils/request.js' |
| | | import axiosInstanceInstance from '../utils/request.js' |
| | | import TimeSelect from '../sfc/TimeSelect.vue'; |
| | | |
| | | // import ShopNameAndID from '../sfc/TimeSelect.vue'; |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | // 空状态 |
| | | isNoData:false, |
| | | // 下拉框一开始展示的名字 |
| | | beginShowShopName:[], |
| | | options: {}, |
| | |
| | | beforeRouteUpdate(to, from, next) { |
| | | if (to.name === this.$route.name) { |
| | | this.backMinuteDataAWeekAgo(); |
| | | |
| | | } |
| | | next(); |
| | | }, |
| | |
| | | // 给时间选择器设置默认时间 |
| | | // this.beginTime = dayjs().subtract(1, 'week').format('YYYY-MM-DD HH:mm:ss'); |
| | | // this.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | |
| | | // 将时间同步给导出时间 |
| | | this.exportBeginTime =this.beginTime |
| | | this.exportEndTime = this.endTime |
| | | |
| | | console.log(this.currentDateTime, this.oneWeekAgoDateTime); |
| | | |
| | |
| | | params['beginTime'] = this.beginTime; |
| | | params['endTime'] = this.endTime; |
| | | |
| | | axiosInstance |
| | | axiosInstanceInstance |
| | | .get('/fume/history', { params: params }) |
| | | .then((response) => { |
| | | if(response.data.data.length==0){ |
| | | alert('该时段无数据') |
| | | this.isNoData = true |
| | | return |
| | | } |
| | | // 保存返回的 |
| | | this.exceedingData = response.data.data; |
| | | // 分页 |
| | |
| | | alert('时间跨度不能超过一个月'); |
| | | return; |
| | | } |
| | | // 将时间同步给导出时间 |
| | | this.exportBeginTime =this.beginTime |
| | | this.exportEndTime = this.endTime |
| | | let params = {}; |
| | | if (this.devId[1]) { |
| | | params['devId'] = this.devId[1]; |
| | |
| | | if (this.endTime) { |
| | | params['endTime'] = this.endTime; |
| | | } |
| | | axiosInstance |
| | | this.loading=true |
| | | axiosInstanceInstance |
| | | .get('/fume/history', { params: params }) |
| | | .then((response) => { |
| | | |
| | | // 保存返回的 |
| | | this.exceedingData = response.data.data; |
| | | this.loading=false |
| | | |
| | | if(response.data.data.length==0){ |
| | | alert('该时段无数据') |
| | | this.isNoData = true |
| | | return |
| | | } |
| | | // 移除空数据状态 |
| | | this.isNoData = false |
| | | // this.displayData = response.data.data //表格渲染 |
| | | // 分页 |
| | | this.total = this.exceedingData.length; |
| | |
| | | params['exportEndTime'] = this.exportEndTime; |
| | | } |
| | | |
| | | axiosInstance.get('/fume/export', { params: params }).then((result) => { |
| | | axiosInstanceInstance.get('/fume/export', { params: params }).then((result) => { |
| | | this.exportData = result.data.data; |
| | | console.log(this.exportData); |
| | | }); |
| | |
| | | // 编辑表头行 修改表头 |
| | | xls['A1'].v = '设备编号'; |
| | | xls['B1'].v = '店铺名称'; |
| | | xls['C1'].v = '报警时间'; |
| | | xls['C1'].v = '采集时间'; |
| | | xls['D1'].v = '风机电流(A)'; |
| | | xls['E1'].v = '净化器电流(A)'; |
| | | xls['F1'].v = '油烟浓度(mg/m³)'; |
| | |
| | | </div> |
| | | |
| | | |
| | | <div v-show="!isSwitch" class="chart-container"> |
| | | <div v-show="!isSwitch && !isNoData" v-loading="loading" class="chart-container"> |
| | | <lineChart :chartData="options"></lineChart> |
| | | </div> |
| | | |
| | | <!-- 表格数据 --> |
| | | <div v-show="isSwitch" class="container"> |
| | | <div v-show="isSwitch && !isNoData" v-loading="loading" class="container"> |
| | | <el-table :data="displayData" style="width: 100%; margin-top: 25px" height="500px" table-layout="auto"> |
| | | <el-table-column fixed prop="mvStatCode" label="设备编号"> |
| | | <template #default="{ row }"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="mvDataTime" label="采样时间"> |
| | | <el-table-column prop="mvDataTime" label="采集时间"> |
| | | <template #default="{ row }"> |
| | | <el-tooltip effect="dark" :content="row.mvDataTime"> |
| | | <div class="cell ellipsis">{{ row.mvDataTime }}</div> |
| | |
| | | |
| | | <!-- layout="total, sizes, prev, pager, next, jumper" --> |
| | | </div> |
| | | <el-empty v-show="isNoData" :image-size="200" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | flex-direction: column; |
| | | height: 100vh; |
| | | } |
| | | :deep().el-dialog { |
| | | border-radius: 9px; |
| | | } |
| | | @media screen and (max-width: 768px) { |
| | | /* 在小屏幕上应用的样式 */ |
| | | } |