From 836c8c17007532540a503197a433f5d8c9a0f198 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Sun, 08 Oct 2023 17:34:36 +0800
Subject: [PATCH] fix:接口修改

---
 src/views/air/index.vue | 1119 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 745 insertions(+), 374 deletions(-)

diff --git a/src/views/air/index.vue b/src/views/air/index.vue
index 9c2479b..e01af93 100644
--- a/src/views/air/index.vue
+++ b/src/views/air/index.vue
@@ -1,123 +1,157 @@
 <template>
   <div class="analyseAir">
-<!--    ������-->
+    <!--    ������-->
     <div class="exTop">
       <div class="cascader-demo">
         <el-select v-model="value" clearable placeholder="���������������">
           <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
           </el-option>
         </el-select>
       </div>
       <el-date-picker
-          v-if="value==='gx'"
-          v-model="value3"
-          style="margin-right: 5%"
-          align="right"
-          type="date"
-          placeholder="������������">
+        v-model="value3"
+        style="margin-right: 5%"
+        align="right"
+        type="date"
+        placeholder="������������"
+      >
       </el-date-picker>
       <el-upload
-          v-if="value==='gx'"
-          class="upload-demo"
-          ref="upload1"
-          action=""
-          accept="xlsx"
-          :on-change="handleChange"
-          :on-remove="handleRemove"
-          :file-list="fileList"
-          :limit="1"
-          :on-exceed="handleExceed"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">������������������������������</div>
+        v-if="value === 'gx'"
+        class="upload-demo"
+        ref="upload1"
+        action=""
+        accept="xlsx"
+        :on-change="handleChange"
+        :on-remove="handleRemove"
+        :file-list="fileList"
+        :limit="1"
+        :on-exceed="handleExceed"
+        multiple
+        :auto-upload="false"
+      >
+        <el-button slot="trigger" type="primary" size="small"
+          >������������</el-button
+        >
+        <div slot="tip" class="el-upload__tip" v-if="value === 'gx'">
+          ������������������������������
+        </div>
+        <div slot="tip" class="el-upload__tip" v-else></div>
       </el-upload>
       <el-upload
-          v-if="value==='gx'"
-          class="upload-demo"
-          ref="upload2"
-          action=""
-          accept="xlsx"
-          :on-change="handleChange2"
-          :on-remove="handleRemove2"
-          :file-list="fileList2"
-          :limit="1"
-          :on-exceed="handleExceed"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������������������������</div>
+        v-if="value === 'gx'"
+        class="upload-demo"
+        ref="upload2"
+        action=""
+        accept="xlsx"
+        :on-change="handleChange2"
+        :on-remove="handleRemove2"
+        :file-list="fileList2"
+        :limit="1"
+        :on-exceed="handleExceed"
+        multiple
+        :auto-upload="false"
+      >
+        <el-button slot="trigger" type="primary" size="small"
+          >������������</el-button
+        >
+        <div slot="tip" class="el-upload__tip" v-if="value === 'gx'">
+          ���������������������������
+        </div>
+        <div slot="tip" class="el-upload__tip" v-else></div>
       </el-upload>
       <el-upload
-          v-if="value==='gx'"
-          class="upload-demo"
-          ref="upload3"
-          action=""
-          accept="xlsx"
-          :on-change="handleChange3"
-          :on-remove="handleRemove3"
-          :file-list="fileList3"
-          :limit="1"
-          :on-exceed="handleExceed"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������������������������</div>
+        v-if="value === 'gx'"
+        class="upload-demo"
+        ref="upload3"
+        action=""
+        accept="xlsx"
+        :on-change="handleChange3"
+        :on-remove="handleRemove3"
+        :file-list="fileList3"
+        :limit="1"
+        :on-exceed="handleExceed"
+        multiple
+        :auto-upload="false"
+      >
+        <el-button slot="trigger" type="primary" size="small"
+          >������������</el-button
+        >
+        <div slot="tip" class="el-upload__tip" v-if="value === 'gx'">
+          ���������������������������
+        </div>
+        <div slot="tip" class="el-upload__tip" v-else></div>
       </el-upload>
       <el-upload
-          v-if="value==='gx'"
-          class="upload-demo"
-          ref="upload4"
-          action=""
-          accept="xlsx"
-          :on-change="handleChange4"
-          :on-remove="handleRemove4"
-          :file-list="fileList4"
-          :limit="1"
-          :on-exceed="handleExceed"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">������������������������������</div>
+        v-if="value === 'gx'"
+        class="upload-demo"
+        ref="upload4"
+        action=""
+        accept="xlsx"
+        :on-change="handleChange4"
+        :on-remove="handleRemove4"
+        :file-list="fileList4"
+        :limit="1"
+        :on-exceed="handleExceed"
+        multiple
+        :auto-upload="false"
+      >
+        <el-button slot="trigger" type="primary" size="small"
+          >������������</el-button
+        >
+        <div slot="tip" class="el-upload__tip" v-if="value === 'gx'">
+          ������������������������������
+        </div>
+        <div slot="tip" class="el-upload__tip" v-else></div>
       </el-upload>
       <el-upload
-          v-if="value==='gx'"
-          class="upload-demo"
-          ref="upload5"
-          action=""
-          accept="xlsx"
-          :on-change="handleChange5"
-          :on-remove="handleRemove5"
-          :file-list="fileList5"
-          :limit="1"
-          :on-exceed="handleExceed"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">������������������������</div>
+        v-if="value === 'gx'"
+        class="upload-demo"
+        ref="upload5"
+        action=""
+        accept="xlsx"
+        :on-change="handleChange5"
+        :on-remove="handleRemove5"
+        :file-list="fileList5"
+        :limit="1"
+        :on-exceed="handleExceed"
+        multiple
+        :auto-upload="false"
+      >
+        <el-button slot="trigger" type="primary" size="small"
+          >������������</el-button
+        >
+        <div slot="tip" class="el-upload__tip" v-if="value === 'gx'">
+          ������������������������
+        </div>
+        <div slot="tip" class="el-upload__tip" v-else></div>
       </el-upload>
       <el-upload
-          v-if="value==='gx'"
-          class="upload-demo"
-          ref="upload6"
-          action=""
-          accept="xlsx"
-          :on-change="handleChange6"
-          :on-remove="handleRemove6"
-          :file-list="fileList6"
-          :limit="1"
-          :on-exceed="handleExceed"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
+        v-if="value === 'gx'"
+        class="upload-demo"
+        ref="upload6"
+        action=""
+        accept="xlsx"
+        :on-change="handleChange6"
+        :on-remove="handleRemove6"
+        :file-list="fileList6"
+        :limit="1"
+        :on-exceed="handleExceed"
+        multiple
+        :auto-upload="false"
+      >
+        <el-button slot="trigger" type="primary" size="small"
+          >������������</el-button
+        >
         <div slot="tip" class="el-upload__tip">������������������������������</div>
       </el-upload>
-<!--      <el-upload
-          v-if="value==='gx'"
+      <div v-if="value === 'hn'" style="position: relative">
+        <el-upload
           class="upload-demo"
           ref="upload7"
           action=""
@@ -128,11 +162,25 @@
           :limit="1"
           :on-exceed="handleExceed"
           multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">������������</div>
-      </el-upload>
-      <el-upload
+          :auto-upload="false"
+        >
+          <el-button slot="trigger" type="primary" size="small"
+            >������������</el-button
+          >
+          <div slot="tip" class="el-upload__tip">
+            ������������������������������������������AQI������
+          </div>
+        </el-upload>
+        <el-button
+          type="success"
+          @click="submitUpload"
+          :disabled="idDisabled"
+          size="small"
+          style="position: absolute; right: 20%; bottom: -100%"
+          >������������</el-button
+        >
+      </div>
+      <!--      <el-upload
           v-if="value==='gx'"
           class="upload-demo"
           ref="upload8"
@@ -148,86 +196,117 @@
         <el-button slot="trigger" type="primary" size="small">������������</el-button>
         <div slot="tip" class="el-upload__tip">������������</div>
       </el-upload>-->
-      <div style="position: absolute; bottom: 2%; right: 20%" v-if="value==='gx'">
-        <el-button type="success" @click="submitUpload" size="small">������������</el-button>
-<!--        <el-button type="primary" @click="exportReport" size="small">������������</el-button>-->
+      <!--      <div style="position: absolute; bottom: 2%; right: 20%">-->
+      <div style="position: absolute; right: 20%; padding-top: 20px">
+        <el-button
+          v-if="value === 'gx'"
+          type="success"
+          @click="submitUpload"
+          size="small"
+          >������������</el-button
+        >
       </div>
     </div>
-    <div class="exDown" v-if="value==='gx'">
+    <div class="exDown">
       <el-card class="box-card" style="position: relative">
-        <div class="block" style="margin-bottom: 30px;">
+        <div class="block" style="margin-bottom: 30px">
           <el-date-picker
-              v-model="value2"
-              type="daterange"
-              align="right"
-              unlink-panels
-              range-separator="���"
-              start-placeholder="������������"
-              end-placeholder="������������"
-              :picker-options="pickerOptions">
+            v-model="value2"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="���"
+            start-placeholder="������������"
+            end-placeholder="������������"
+            :picker-options="pickerOptions"
+          >
           </el-date-picker>
           <el-select v-model="valueSelect" clearable placeholder="���������������">
             <el-option
-                v-for="item in optionsSelect"
-                :key="item.valueSelect"
-                :label="item.label"
-                :value="item.valueSelect">
+              v-for="item in optionsSelect"
+              :key="item.valueSelect"
+              :label="item.label"
+              :value="item.valueSelect"
+            >
             </el-option>
           </el-select>
-          <el-button type="primary" @click="selectReport" size="small" class="selectBtn">������</el-button>
-<!--          <el-button type="primary" @click="selectReport" size="small" class="selectBtn">������������</el-button>-->
-        </div>
-        <el-table
-            :data="tableData"
-            style="width: 100%">
-<!--          <el-table-column
-          width="100"
-          align="center">
-            <template slot="header">
-              <el-checkbox
-                  :indeterminate="isIndeterminate"
-                  v-model="checkAll"
-                  @change="handleCheckAllChange">������</el-checkbox>
-            </template>
-            <template slot-scope="scope">
-              <el-checkbox
-                  v-model="scope.row.checked"
-                  @change="handleCheckOneChange(scope.row)"></el-checkbox>
-            </template>
-          </el-table-column>-->
-          <el-table-column
-              prop="name"
-              label="������������"
-             >
-          </el-table-column>
-          <el-table-column
-              prop="time"
-              label="������������"
-           >
-          </el-table-column>
-          <el-table-column
-              prop="date"
-              label="������������"
+          <el-button
+            type="primary"
+            @click="selectReport(1)"
+            size="small"
+            class="selectBtn"
+            >������</el-button
           >
-          </el-table-column>
-          <el-table-column label="������">
-            <template slot-scope="scope">
-              <el-button type="text" size="medium" @click="expReport(scope.row)">������</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-<!--        <el-pagination
-            class="paginationDemo"
+          <!--          <el-button type="primary" @click="selectReport" size="small" class="selectBtn">������������</el-button>-->
+        </div>
+        <div style="overflow-y: auto; height: 82%; margin-bottom: 2%">
+          <el-table :data="tableData" style="width: 100%">
+            <!--          <el-table-column
+                      width="100"
+                      align="center">
+                        <template slot="header">
+                          <el-checkbox
+                              :indeterminate="isIndeterminate"
+                              v-model="checkAll"
+                              @change="handleCheckAllChange">������</el-checkbox>
+                        </template>
+                        <template slot-scope="scope">
+                          <el-checkbox
+                              v-model="scope.row.checked"
+                              @change="handleCheckOneChange(scope.row)"></el-checkbox>
+                        </template>
+                      </el-table-column>-->
+            <el-table-column prop="name" label="������������"> </el-table-column>
+            <el-table-column prop="time" label="������������"> </el-table-column>
+            <el-table-column prop="date" label="������������"> </el-table-column>
+            <el-table-column label="������">
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  size="medium"
+                  v-if="valueSelect === 'gx'"
+                  @click="expReport(scope.row)"
+                  >������</el-button
+                >
+                <!--������excel-->
+                <img
+                  src="../../assets/icon/hn_excel.png"
+                  alt="������������excel"
+                  v-if="valueSelect === 'hn'"
+                  @click="hnExcel(scope.row)"
+                  style="margin-left: 0; cursor: pointer"
+                />
+                <!--������word -->
+                <img
+                  src="../../assets/icon/hn_word.png"
+                  alt="���������������������������������"
+                  v-if="valueSelect === 'hn'"
+                  @click="hnExpReport(scope.row)"
+                  style="cursor: pointer"
+                />
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div class="block" v-if="isDisplay">
+          <el-pagination
             background
-            layout="prev, pager, next"
-            :total="100">
-        </el-pagination>-->
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page.sync="currentPage3"
+            :page-size="onePageCount"
+            layout="total, prev, pager, next, jumper"
+            :total="totalNumber"
+          >
+          </el-pagination>
+        </div>
       </el-card>
     </div>
   </div>
 </template>
 <script>
 import { ExportBriefDataDocx } from '@/utils/exportBriefDataDocx'
+import { ExportHunnanExcel } from '@/utils/ExportHunnanExcel'
 export default {
   data() {
     return {
@@ -248,53 +327,60 @@
       file7: null,
       file8: null,
       pickerOptions: {
-        shortcuts: [{
-          text: '������������',
-          onClick(picker) {
-            const end = new Date()
-            const start = new Date()
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-            picker.$emit('pick', [start, end])
-          }
-        }, {
-          text: '���������������',
-          onClick(picker) {
-            const end = new Date()
-            const start = new Date()
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-            picker.$emit('pick', [start, end])
-          }
-        }, {
-          text: '���������������',
-          onClick(picker) {
-            const end = new Date()
-            const start = new Date()
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
-            picker.$emit('pick', [start, end])
-          }
-        }]
+        shortcuts: [
+          {
+            text: '������������',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '���������������',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+              picker.$emit('pick', [start, end])
+            },
+          },
+          {
+            text: '���������������',
+            onClick(picker) {
+              const end = new Date()
+              const start = new Date()
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+              picker.$emit('pick', [start, end])
+            },
+          },
+        ],
       },
       value2: [new Date(), new Date()], // ������������������������
       value3: new Date(), // ���������������������������
       options: [
         {
-          value: 'sy',
-          label: '������'
-        }, {
+          value: 'hn',
+          label: '���������',
+        },
+        {
           value: 'gx',
-          label: '���������'
-        }
+          label: '���������',
+        },
       ],
       value: 'gx', // ������
       valueSelect: 'gx',
+      valueSelect2: 'hn',
       optionsSelect: [
         {
-          valueSelect: 'sy',
-          label: '������'
-        }, {
+          valueSelect: 'hn',
+          label: '���������',
+        },
+        {
           valueSelect: 'gx',
-          label: '���������'
-        }
+          label: '���������',
+        },
       ],
       tableData: [],
       sensorTime: [], // ���������������������
@@ -305,13 +391,42 @@
       isIndeterminate: true,
       dateArr: [], // ���������������������
       airData: {},
-      reportInfo: {}
+      reportInfo: {},
+      hunNanAirData: [], // ���������word������������
+      hnexcelID: '',
+      idDisabled: false,
+      currentPage3: 1, // ���������������
+      totalNumber: 0, // ���������
+      onePageCount: 8, // ���������������
+      isDisplay: false, // ������������������
     }
   },
+  watch: {
+    value(newName, oldName) {
+      this.valueSelect = newName
+      this.tableData = []
+      this.value2 = [new Date(), new Date()]
+    },
+    valueSelect(newName, oldName) {
+      this.tableData = []
+    },
+  },
   methods: {
+    // ������
+    handleSizeChange(val) {
+      console.log(`������ ${val} ���`)
+    },
+    handleCurrentChange(val) {
+      console.log(`���������: ${val}`)
+      this.selectReport(val)
+    },
+    // ������
     handleChange(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
-        this.$refs.upload.handleRemove(file)
+      if (
+        file.raw.type !==
+        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+      ) {
+        this.$refs.upload1.handleRemove(file)
         this.$message.warning(`���������������������������`)
         return
       }
@@ -323,7 +438,10 @@
       this.file1 = fileList[0]
     },
     handleChange2(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+      if (
+        file.raw.type !==
+        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+      ) {
         this.$refs.upload2.handleRemove(file)
         this.$message.warning(`���������������������������`)
         return
@@ -336,7 +454,10 @@
       this.file2 = fileList[0]
     },
     handleChange3(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+      if (
+        file.raw.type !==
+        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+      ) {
         this.$refs.upload3.handleRemove(file)
         this.$message.warning(`���������������������������`)
         return
@@ -349,7 +470,10 @@
       this.file3 = fileList[0]
     },
     handleChange4(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+      if (
+        file.raw.type !==
+        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+      ) {
         this.$refs.upload4.handleRemove(file)
         this.$message.warning(`���������������������������`)
         return
@@ -362,7 +486,10 @@
       this.file4 = fileList[0]
     },
     handleChange5(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+      if (
+        file.raw.type !==
+        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+      ) {
         this.$refs.upload5.handleRemove(file)
         this.$message.warning(`���������������������������`)
         return
@@ -375,7 +502,11 @@
       this.file5 = fileList[0]
     },
     handleChange6(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' && file.raw.type !== 'application/vnd.ms-excel') {
+      if (
+        file.raw.type !==
+          'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' &&
+        file.raw.type !== 'application/vnd.ms-excel'
+      ) {
         this.$refs.upload6.handleRemove(file)
         this.$message.warning(`���������������������������`)
         return
@@ -387,8 +518,12 @@
       this.fileList6 = fileList
       this.file6 = fileList[0]
     },
-    /* handleChange7(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+    handleChange7(file, fileList) {
+      if (
+        file.raw.type !==
+          'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' &&
+        file.raw.type !== 'application/vnd.ms-excel'
+      ) {
         this.$refs.upload7.handleRemove(file)
         this.$message.warning(`���������������������������`)
         return
@@ -400,33 +535,40 @@
       this.fileList7 = fileList
       this.file7 = fileList[0]
     },
-    handleChange8(file, fileList) {
-      if (file.raw.type !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
-        this.$refs.upload8.handleRemove(file)
-        this.$message.warning(`���������������������������`)
-        return
-      }
-      this.fileList8 = fileList
-      this.file8 = fileList[0]
-    },
-    handleRemove8(file, fileList) {
-      this.fileList8 = fileList
-      this.file8 = fileList[0]
-    },*/
     handleExceed(files, fileList) {
-      this.$message.warning(`������������������ 1 ��������������������������� ${files.length} ������������������������ ${files.length + fileList.length} ���������`)
+      this.$message.warning(
+        `������������������ 1 ��������������������������� ${files.length} ������������������������ ${
+          files.length + fileList.length
+        } ���������`
+      )
     },
     submitUpload() {
       this.formData2 = []
-
       if (!this.value3) {
         this.$message({
           message: '���������������',
-          type: 'warning'
+          type: 'warning',
         })
         return
       }
-      if (this.file1 && this.file2 && this.file3 && this.file4 && this.file5 && this.file6) {
+      if (this.value === 'gx') {
+        // ���������������������
+        this.gxSubmit()
+      } else {
+        // ���������������������
+        this.hnSubmit()
+      }
+    },
+    // ���������������������������
+    gxSubmit() {
+      if (
+        this.file1 &&
+        this.file2 &&
+        this.file3 &&
+        this.file4 &&
+        this.file5 &&
+        this.file6
+      ) {
         const formData = new FormData()
         formData.append(`code`, this.value)
         this.sensorTime = this.newTime(this.value3, 'submit')
@@ -443,33 +585,86 @@
         // formData.append(`file7`, this.file7.raw)
         // formData.append(`file8`, this.file8.raw)
         // ������������������
-        this.MultipartFile(formData).then(res => {
-          if (res.code === 0) {
-            var reportInfo = res.data
-            this.value2 = [this.value3, this.value3]
-            reportInfo.name = '���������������������������������' + reportInfo.time.split('-').join('')
-            this.tableData = [reportInfo]
-          }
-        }).catch(err => {
-          console.log(err)
-        })
+        this.MultipartFile(formData)
+          .then((res) => {
+            if (res.code === 0) {
+              var reportInfo = res.data
+              this.value2 = [this.value3, this.value3]
+              reportInfo.name =
+                '���������������������������������������' +
+                reportInfo.time.split('-').join('')
+              this.tableData = [reportInfo]
+            }
+          })
+          .catch((err) => {
+            console.log(err)
+          })
       } else {
         this.$message({
           message: '���������������������������',
-          type: 'warning'
+          type: 'warning',
         })
       }
     },
-    // ������������������
-    MultipartFile(data) {
-      return this.$request({
-        url: '/excel/excelImport',
-        method: 'post',
-        headers: { 'Content-Type': 'multipart/form-data' }, // ���������������������������������
-        data
-      })
+    // ���������������������������
+    hnSubmit() {
+      if (this.file7) {
+        const formData = new FormData()
+        formData.append(`code`, this.value)
+        this.sensorTime = this.newTime(this.value3, 'submit')
+        var date = new Date()
+        date = this.newTime(date, 'submit')
+        formData.append(`time`, this.sensorTime)
+        formData.append(`date`, date)
+        formData.append(`files`, this.file7.raw)
+        // ������������������
+        this.MultipartFile(formData)
+          .then((res) => {
+            this.idDisabled = false
+            if (res.code === 0) {
+              this.$message({
+                message: '���������������',
+                type: 'success',
+              })
+              var reportInfo = res.data
+              this.value2 = [this.value3, this.value3]
+              reportInfo.name =
+                '���������������' + reportInfo.time.split('-').join('')
+              this.tableData = [reportInfo]
+            } else {
+              this.$message.error('���������������')
+            }
+          })
+          .catch((err) => {
+            console.log(err)
+          })
+      } else {
+        this.$message({
+          message: '���������������������������',
+          type: 'warning',
+        })
+      }
     },
-    // ������������������
+    // ������������������
+    MultipartFile(data) {
+      this.idDisabled = true
+      if (this.value === 'gx') {
+        return this.$request({
+          url: '/excel/excelImport',
+          method: 'post',
+          headers: { 'Content-Type': 'multipart/form-data' }, // ���������������������������������
+          data,
+        })
+      } else {
+        return this.$request({
+          url: '/excel/syExcelImport',
+          method: 'post',
+          headers: { 'Content-Type': 'multipart/form-data' }, // ���������������������������������
+          data,
+        })
+      }
+    },
+    // ������������������������������0���
     newTime(timeArr, name) {
       if (name === 'submit') {
         var date = new Date(timeArr)
@@ -481,7 +676,7 @@
         return y + '-' + m + '-' + d
       } else {
         var arr = []
-        timeArr.map(v => {
+        timeArr.map((v) => {
           var date = new Date(v)
           var y = date.getFullYear()
           var m = date.getMonth() + 1
@@ -500,11 +695,19 @@
         return arr
       }
     },
+    // ������������������������������������0���
+    newTimeNotZero(time) {
+      var date = new Date(time)
+      var y = date.getFullYear()
+      var m = date.getMonth() + 1
+      var d = date.getDate()
+      return y + '-' + m + '-' + d
+    },
     // ������
     handleCheckAllChange(val) {
       // console.info('check all change is ', val)
       this.isIndeterminate = false
-      this.tableData.forEach(item => {
+      this.tableData.forEach((item) => {
         item.checked = val
         this.dateArr.push(item.date)
       })
@@ -519,7 +722,7 @@
     handleCheckOneChange(obj) {
       // console.info('check one change is ', obj)
       if (obj.checked === false) {
-        this.dateArr = this.dateArr.filter(v => {
+        this.dateArr = this.dateArr.filter((v) => {
           return v !== obj.date
         })
       } else {
@@ -527,42 +730,98 @@
       }
       var totalCount = this.tableData.length
       let someStatusCount = 0
-      this.tableData.forEach(item => {
+      this.tableData.forEach((item) => {
         if (item.checked === obj.checked) {
           someStatusCount++
         }
       })
       this.count = someStatusCount
-      this.checkAll = totalCount === someStatusCount ? obj.checked : !obj.checked
+      this.checkAll =
+        totalCount === someStatusCount ? obj.checked : !obj.checked
       this.isIndeterminate = someStatusCount > 0 && someStatusCount < totalCount
     },
-    // ������
+    // ���������������������
     expReport(obj) {
       this.$request({
         url: '/excel/excelExport',
         method: 'get',
         params: {
-          id: obj.id
-        }
-      }).then(res => {
-        var getData = {}
-        getData = res.data
-        // ���������������������
-        getData.list1 = this.cityLast(getData.list1)
-        getData.list5 = this.cityLast(getData.list5)
-        // ���������������������
-        getData.list2 = this.cityFirst(getData.list2)
-        getData.list3 = this.cityFirst(getData.list3)
-        getData.list4 = this.cityFirst(getData.list4)
-        this.airData = getData
-        this.airData.month = res.data.time.split('���')[0]
-        this.airData.day = res.data.time.split('���')[1].split('���')[0]
-        var arr = obj.time.split('-')
-        this.airData.currentTime = arr[0] + '���' + arr[1] + '���' + arr[2] + '���'
-        ExportBriefDataDocx('/airQuality.docx', this.airData, `${obj.name}.docx`)
-      }).catch(err => {
-        console.log(err)
+          id: obj.id,
+        },
       })
+        .then((res) => {
+          console.log(res, 'xia')
+          var getData = {}
+          getData = res.data
+          // ���������������������
+          getData.list1 = this.cityLast(getData.list1)
+          getData.list5 = this.cityLast(getData.list5)
+          // ���������/���������������������
+          getData.list2 = this.cityFirst2(getData.list2)
+          getData.list3 = this.cityFirst2(getData.list3)
+          getData.list4 = this.cityFirst(getData.list4)
+          this.airData = getData
+          var monthZero = res.data.time.split('���')[0]
+          if (monthZero.substr(0, 1) === '0') {
+            this.airData.month = monthZero.substr(1)
+          } else {
+            this.airData.month = res.data.time.split('���')[0]
+          }
+          var dayZero = res.data.time.split('���')[1].split('���')[0]
+          if (dayZero.substr(0, 1) === '0') {
+            this.airData.day = dayZero.substr(1)
+          } else {
+            this.airData.day = dayZero
+          }
+          var arr = obj.date.split('-')
+          if (arr[2].substr(0, 1) === '0') {
+            arr[2] = arr[2].substr(1)
+          }
+          if (arr[1].substr(0, 1) === '0') {
+            arr[1] = arr[1].substr(1)
+          }
+          this.airData.currentTime =
+            arr[0] + '���' + arr[1] + '���' + arr[2] + '���'
+          this.airData.currentYear = arr[0]
+          var time1DayZero = ''
+          var time1MonthZero = ''
+          if (
+            res.data.time1.split('���')[1].split('���')[0].substr(0, 1) === '0'
+          ) {
+            time1MonthZero = res.data.time1
+              .split('���')[1]
+              .split('���')[0]
+              .substr(1)
+          } else {
+            time1MonthZero = res.data.time1.split('���')[1].split('���')[0]
+          }
+
+          if (
+            res.data.time1.split('���')[1].split('���')[0].substr(0, 1) === '0'
+          ) {
+            time1DayZero = res.data.time1
+              .split('���')[1]
+              .split('���')[0]
+              .substr(1)
+          } else {
+            time1DayZero = res.data.time1.split('���')[1].split('���')[0]
+          }
+          this.airData.time1 =
+            res.data.time1.split('���')[0] +
+            '���' +
+            time1MonthZero +
+            '���' +
+            time1DayZero +
+            '���'
+          ExportBriefDataDocx(
+            '/airQuality1.docx',
+            this.airData,
+            `${obj.name}.docx`
+          )
+        })
+        .catch((err) => {
+          console.log(err)
+        })
     },
     // ���������������������
     cityLast(list) {
@@ -573,7 +832,9 @@
           list.splice(i, 1)
         }
       })
-      list.push(obj)
+      if (obj.place) {
+        list.push(obj)
+      }
       return list
     },
     // ���������������������
@@ -585,131 +846,241 @@
           list.splice(i, 1)
         }
       })
-      list.unshift(obj)
+      if (obj.place) {
+        list.unshift(obj)
+      }
       return list
     },
-    // ������������
-    exportReport() {
-      // ExportBriefDataDocx('/airQuality.docx', this.airData, `������������������.docx`)
+    // ���������������������������������������/���������
+    cityFirst2(list) {
+      var obj = {}
+      list.map((v, i) => {
+        if (v.place === '���������') {
+          obj = v
+          list.splice(i, 1)
+        }
+        if (v.place === '���������') {
+          obj = v
+          list.splice(i, 1)
+        }
+      })
+      if (obj.place) {
+        list.unshift(obj)
+      }
+      return list
+    },
+    // ���������������������
+    hnExpReport(obj) {
       this.$request({
-        url: '/excel/excelExport',
+        url: '/excel/hnExcelExport',
         method: 'get',
         params: {
-          id: 23
-        }
-      }).then(res => {
-        console.log(res)
-        this.airData = res.data
-        this.airData.month = res.data.time.split('���')[0]
-        this.airData.day = res.data.time.split('���')[1].split('���')[0]
-        ExportBriefDataDocx('/airQuality.docx', this.airData, `������������������.docx`)
-      }).catch(err => {
-        console.log(err)
+          id: obj.id,
+          // id: 68
+        },
       })
-
-      // if (this.isInfo) {
-      //   // ExportBriefDataDocx('/airQ.docx', this.airData, `������������������.docx`)
-      // } else {
-      //   this.$message({
-      //     message: '������������������',
-      //     type: 'warning'
-      //   })
-      // }
+        .then((res) => {
+          // console.log(res)
+          this.hunNanAirData = res.data
+          // currentTime������
+          var arr = res.data.time2.split('-')
+          var currentTime = arr[0] + '���' + arr[1] + '���' + arr[2] + '���'
+          var currentYear = arr[0]
+          this.hunNanAirData.currentTime = currentTime
+          this.hunNanAirData.currentYear = currentYear
+          // ������������������09���26���,yearDate������������
+          var month = res.data.time.split('-')[0]
+          if (month.substr(0, 1) === '0') {
+            month = month.substr(1)
+          }
+          this.hunNanAirData.month = month
+          var day = res.data.time.split('-')[1]
+          if (day.substr(0, 1) === '0') {
+            day = day.substr(1)
+          }
+          this.hunNanAirData.day = day
+          ExportBriefDataDocx(
+            '/hunnan.docx',
+            this.hunNanAirData,
+            `���������${arr[1]}���${arr[2]}���������������������������.docx`
+          )
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // ���������excel������
+    hnExcel(obj) {
+      this.$request({
+        url: '/excel/syExcelExport',
+        method: 'get',
+        params: {
+          id: obj.id,
+        },
+      })
+        .then((res) => {
+          var code2 =
+            res.data.code2.substr(0, 2) + '\n' + res.data.code2.substr(2)
+          var code4 =
+            res.data.code4.substr(0, 2) + '\n' + res.data.code4.substr(2)
+          var table1Data = [
+            ['', '���������', '������', '������', '������'],
+            ['', '', '', '', ''],
+            ['���������', '300', res.data.code1, '', code2],
+            ['', '', '', '', ''],
+            ['PM2.5', '41', res.data.code3, '', code4],
+            ['', '', '', '', ''],
+          ]
+          var table3Data = [
+            ['', '���������', '���������', '������', '������'],
+            ['', '���������', '���������', '������', '������'],
+            ['���������', '69', '69', res.data.code5, ''],
+            ['', '', '', '', ''],
+            ['PM2.5', '40', '40', res.data.code6, ''],
+            ['', '', '', '', ''],
+          ]
+          var table2Data = [
+            res.data.list.sy1,
+            res.data.list.sy2,
+            res.data.list.hnd1,
+            res.data.list.hnd2,
+            res.data.list.xxj1,
+            res.data.list.xxj2,
+            res.data.list.hnq1,
+            res.data.list.hnq2,
+          ]
+          var data = new Date()
+          var currentYearData = data.getFullYear()
+          var jd = res.data.season
+          ExportHunnanExcel(
+            `������������������������${obj.time.split('-').join('')}`,
+            table1Data,
+            table3Data,
+            table2Data,
+            currentYearData,
+            jd
+          )
+        })
+        .catch((err) => {
+          console.log(err)
+        })
     },
     // ������������
-    selectReport() {
+    selectReport(val) {
+      var page = val
+      if (this.isDisplay === false) {
+        page = 0
+      }
       this.sensorTime2 = this.newTime(this.value2, 'select')
       this.$request({
-        url: '/excel/selectExcel',
+        // url: '/excel/selectExcel',
+        url: 'excel/selectExcel',
         method: 'get',
         params: {
           startTime: this.sensorTime2[0],
           endTime: this.sensorTime2[1],
-          code: this.valueSelect
-        }
-      }).then(res => {
-        if (res.code === 0) {
-          var info = res.data
-          info.map(v => {
-            v.name = '���������������������������������' + v.time.split('-').join('')
-          })
-          info.sort((a, b) => { return b.time.split('-').join('') - a.time.split('-').join('') })
-          this.tableData = info
-        }
-      }).catch(err => {
-        console.log(err)
+          code: this.valueSelect,
+          pageCount: page,
+        },
       })
-    }
-  }
+        .then((res) => {
+          if (res.code === 0) {
+            var info = []
+            if (this.isDisplay) {
+              this.totalNumber = res.data.total
+              info = res.data.item
+            } else {
+              info = res.data
+            }
+            info.map((v) => {
+              if (this.valueSelect === 'gx') {
+                v.name = '���������������������������������' + v.time.split('-').join('')
+              } else {
+                v.name = '���������������' + v.time.split('-').join('')
+              }
+            })
+            info.sort((a, b) => {
+              return b.time.split('-').join('') - a.time.split('-').join('')
+            })
+            this.tableData = info
+          }
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+  },
 }
 </script>
 
 <style scoped>
-.analyseAir{
+.analyseAir {
   width: 100%;
   height: 100%;
   display: flex;
   padding-top: 22px;
 }
-  .exTop{
-    width: 30%;
-    height: 95%;
-    position: relative;
-  }
-  .cascader-demo{
-    float: left;
-    padding: 0% 2%;
-  }
-  .upload-demo{
-    margin-left: 2%;
-    /*float: left;*/
-    margin-top: 4%;
-    height: 65px;
-  }
-  .upload-demo /deep/ .el-upload-list__item{
-    font-size: 15px;
-  }
-.upload-demo /deep/ .el-upload-list__item:first-child{
+.exTop {
+  width: 30%;
+  /*height: 95%;*/
+  position: relative;
+  overflow: auto;
+  margin-bottom: 2%;
+}
+.cascader-demo {
+  float: left;
+  padding: 0% 2%;
+}
+.upload-demo {
+  margin-left: 2%;
+  /*float: left;*/
+  margin-top: 4%;
+  height: 65px;
+}
+.upload-demo /deep/ .el-upload-list__item {
+  font-size: 15px;
+}
+.upload-demo /deep/ .el-upload-list__item:first-child {
   margin-top: 2px;
 }
-  .exDown {
-    width: 50%;
-    height: 95%;
-    margin-left: 2%;
-    font-size: 18px;
-  }
-  .exDown /deep/ .el-card{
-    width: 100%;
-    height: 100%;
-  }
-  .divPadding{
-    width: 80%;
-    margin: auto;
-  }
-  .textCenter{
-    text-align: center;
-  }
-  .fontS14{
-    font-size: 14px;
-  }
-  .upload-demo button{
-    margin-right: 10%;
-  }
-  .upload-demo /deep/ .el-upload{
-    margin-right: 10%;
-  }
-  .selectBtn{
-    margin-left: 5%;
-  }
-  .el-card /deep/ .el-card__body{
-    height: 815px;
-  }
-  .paginationDemo{
-    position: absolute;
-    left: 0;
-    bottom: 3%;
-  }
-  .el-upload__tip{
-    color: red;
-  }
+.exDown {
+  width: 50%;
+  height: 95%;
+  margin-left: 2%;
+  font-size: 18px;
+}
+.exDown /deep/ .el-card {
+  width: 100%;
+  height: 100%;
+}
+.divPadding {
+  width: 80%;
+  margin: auto;
+}
+.textCenter {
+  text-align: center;
+}
+.fontS14 {
+  font-size: 14px;
+}
+.upload-demo button {
+  margin-right: 10%;
+}
+.upload-demo /deep/ .el-upload {
+  margin-right: 10%;
+}
+.selectBtn {
+  margin-left: 5%;
+}
+.el-card /deep/ .el-card__body {
+  height: 815px;
+}
+.paginationDemo {
+  position: absolute;
+  left: 0;
+  bottom: 3%;
+}
+.el-upload__tip {
+  color: red;
+}
 </style>

--
Gitblit v1.8.0