zmc
2023-08-07 1e18f0bcee0358e13c0e2cb750d17cd7ef5bf4d6
src/views/HistoryFume.vue
@@ -2,7 +2,7 @@
<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';
@@ -23,6 +23,8 @@
},
  data() {
    return {
      // 空状态
      isNoData:false,
      // 下拉框一开始展示的名字
      beginShowShopName:[],
      options: {},
@@ -256,8 +258,7 @@
  beforeRouteUpdate(to, from, next) {
    if (to.name === this.$route.name) {
      this.backMinuteDataAWeekAgo();
      this.backMinuteDataAWeekAgo();
    }
    next();
  },
@@ -401,7 +402,7 @@
  },
  // 返回前一周分钟数据表数据
  backMinuteDataAWeekAgo() {
    // 打开页面加载最近一周的数据
    this.loading = true;
@@ -412,7 +413,9 @@
    // 给时间选择器设置默认时间
    // 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);
@@ -421,9 +424,14 @@
    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;
        // 分页
@@ -443,6 +451,9 @@
      alert('时间跨度不能超过一个月');
      return;
    }
    // 将时间同步给导出时间
    this.exportBeginTime =this.beginTime
    this.exportEndTime = this.endTime
    let params = {};
    if (this.devId[1]) {
      params['devId'] = this.devId[1];
@@ -453,11 +464,22 @@
    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;
@@ -497,7 +519,7 @@
      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);
    });
@@ -524,7 +546,7 @@
    // 编辑表头行    修改表头
    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³)';
@@ -691,12 +713,12 @@
  </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 }">
@@ -713,7 +735,7 @@
          </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>
@@ -747,6 +769,7 @@
      <!-- layout="total, sizes, prev, pager, next, jumper"  -->
    </div>
    <el-empty v-show="isNoData" :image-size="200" />
  </div>
</template>
@@ -804,6 +827,9 @@
  flex-direction: column;
  height: 100vh;
}
:deep().el-dialog {
  border-radius: 9px;
}
@media screen and (max-width: 768px) {
  /* 在小屏幕上应用的样式 */
}