From 725225aab4797b01dd5bf7c70031d41dae033dff Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Thu, 26 Oct 2023 14:10:51 +0800
Subject: [PATCH] fix:走行车导出

---
 src/views/sectionReport/index.vue |  283 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 161 insertions(+), 122 deletions(-)

diff --git a/src/views/sectionReport/index.vue b/src/views/sectionReport/index.vue
index 62a0d31..97467e1 100644
--- a/src/views/sectionReport/index.vue
+++ b/src/views/sectionReport/index.vue
@@ -8,8 +8,7 @@
             :key="item.value"
             :label="item.label"
             :value="item.value"
-          >
-          </el-option>
+          />
         </el-select>
       </div>
       <div>
@@ -19,8 +18,7 @@
             :key="item.value"
             :label="item.label"
             :value="item.value"
-          >
-          </el-option>
+          />
         </el-select>
       </div>
       <div>
@@ -35,8 +33,7 @@
             :key="index"
             :label="item.name"
             :value="item.mac"
-          >
-          </el-option>
+          />
         </el-select>
       </div>
       <div class="block">
@@ -48,14 +45,13 @@
           end-placeholder="������������"
           :picker-options="pickerOptions"
           value-format="yyyy-MM-dd HH:mm:ss"
-        >
-        </el-date-picker>
+        />
       </div>
       <div>
-        <el-button type="primary" @click="selectReport">������</el-button>
+        <el-button type="primary" @click="selectReport"> ������ </el-button>
       </div>
       <div>
-        <!-- <el-button type="primary" @click="exportword">������word</el-button> -->
+        <el-button type="primary" @click="exportword"> ������word </el-button>
       </div>
     </div>
     <el-dialog title="���������������" :visible.sync="dialogVisible" width="60%">
@@ -66,24 +62,21 @@
           "
           style="width: 100%"
         >
-          <el-table-column type="index" width="180" label="������">
-          </el-table-column>
-          <el-table-column label="������" prop="road"> </el-table-column>
-          <el-table-column label="���������������(���/���������)" prop="value">
-          </el-table-column>
+          <el-table-column type="index" width="180" label="������" />
+          <el-table-column label="������" prop="road" />
+          <el-table-column label="���������������(���/���������)" prop="value" />
         </el-table>
         <el-pagination
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
           :current-page="PageNum"
           :page-size="PageSize"
           layout="total, prev, pager, next, jumper"
           :total="total"
-        >
-        </el-pagination>
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+        />
         <el-upload
-          class="upload-demo"
           ref="upload"
+          class="upload-demo"
           action=""
           :on-change="handleChange"
           :on-remove="handleRemove"
@@ -92,31 +85,31 @@
           :limit="10"
           style="margin-top: 1rem"
         >
-          <el-button slot="trigger" size="small" type="primary"
-            >������������</el-button
-          >
+          <el-button slot="trigger" size="small" type="primary">
+            ������������
+          </el-button>
           <div slot="tip" class="el-upload__tip" style="color: red">
             ������������������������������������,������������������1MB���
           </div>
         </el-upload>
       </div>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">��� ���</el-button>
-        <el-button type="primary" :disabled="isDisplay" @click="baoC"
-          >������</el-button
-        >
+        <el-button @click="dialogVisible = false"> ��� ��� </el-button>
+        <el-button type="primary" :disabled="isDisplay" @click="baoC">
+          ������
+        </el-button>
       </div>
     </el-dialog>
     <el-table
       :data="tableData"
       style="width: 100%; overflow-y: auto; height: 82%"
     >
-      <el-table-column prop="time" label="������������"> </el-table-column>
+      <el-table-column prop="time" label="������������" />
       <el-table-column label="������">
         <template slot-scope="scope">
-          <el-button type="text" size="medium" @click="expReport(scope.row)"
-            >������</el-button
-          >
+          <el-button type="text" size="medium" @click="expReport(scope.row)">
+            ������
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -136,7 +129,7 @@
   //import ���������������������������������������������������
   components: {},
   props: {},
-  data() {
+  data () {
     //������������������
     return {
       date: this.dateTypeFormat('YYYY-mm-dd', new Date()),
@@ -183,7 +176,7 @@
           // ������������  ������������
           this.timeOne = minDate.getTime() // ��������������������� ������������������
           // // ������������������������������������������������������������
-          if (maxDate) this.timeOne = ''
+          if (maxDate) { this.timeOne = '' }
         },
         disabledDate: (time) => {
           if (this.timeOne) {
@@ -199,7 +192,7 @@
             return time.getTime() > new Date()
           }
         },
-        reportName: ''
+        reportName: '',
       },
     }
   },
@@ -207,16 +200,38 @@
   computed: {},
   // ������data������������������
   watch: {
-    value1(n, o) {
+    value1 (n, o) {
       if (n === null) {
         this.value1 = []
       }
     },
   },
+  //������������ - ��������������������������������� this ���������
+  created () {
+    this.$request({
+      url: 'cruiser/selectCruisers',
+      method: 'get',
+    })
+      .then((res) => {
+        this.carMac = res.data
+      })
+      .catch((err) => {
+        console.log(err)
+      })
+  },
+  //������������ - ��������������������������� DOM ���������
+  mounted () { },
+  beforeCreate () { }, //������������ - ������������
+  beforeMount () { }, //������������ - ������������
+  beforeUpdate () { }, //������������ - ������������
+  updated () { }, //������������ - ������������
+  beforeDestroy () { }, //������������ - ������������
+  destroyed () { }, //������������ - ������������
+  activated () { },
   //������������
   methods: {
-    baoC() {
-        this.valueDate.fileLists=[]
+    baoC () {
+      this.valueDate.fileLists = []
       // const baseUrl = `${requestObj.baseUrl}/static/img/`
       // var images = [
       //   ['7f633687-8321-4f89-bffc-9a52f94cfb77.jpg'],
@@ -250,9 +265,11 @@
       //     this.valueDate.fileLists[i] = [{ url: baseUrl + imagesObj[i] }]
       //   }
       // }
-      console.log(this.fileList, '123')
       const formData = new FormData()
       formData.append(`id`, this.id)
+      formData.append(`mac`, this.carInput)
+      formData.append(`time1`, this.value1[0])
+      formData.append(`time2`, this.value1[1])
       this.fileList.map((v) => {
         formData.append(`files`, v.raw)
         console.log(v.raw)
@@ -263,78 +280,119 @@
         method: 'post',
         headers: { 'Content-Type': 'multipart/form-data' }, // ���������������������������������
         data: formData,
-      }).then((res) => {
-        console.log(res)
-        // this.valueDate=res.data
-        const baseUrl = `${requestObj.baseUrl}/static/img/`
-        if (res.data.images.file2 === ''&&res.data.images.file1 === '') {
-          res.data.images.file1=[]
-          res.data.images.file2=[]
-          var images = [res.data.images.file1, res.data.images.file2]
-        } else if (res.data.images.file2 === '') {
-          res.data.images.file2=[]
-          var images = [[res.data.images.file1], res.data.images.file2]
-        } else if (res.data.images.file1 === '') {
-          res.data.images.file1=[]
-          var images = [res.data.images.file1, res.data.images.file2.split(',')]
-        } else {
-          var images = [
-            [res.data.images.file1],
-            res.data.images.file2.split(','),
-          ]
-        }
-        var info = 0
-        var num = 0
-        for (let i = 0; i < images.length; i++) {
-          // console.log(images)
-          if (!this.valueDate.fileLists[i]) this.valueDate.fileLists[i] = []
-          if (images[i].length) {
-            num++
-            info += images[i].length
-            for (let j = 0; j < images[i].length; j++) {
-              this.valueDate.fileLists[i].push(baseUrl + images[i][j])
-              console.log(baseUrl + images[i][j])
+      })
+        .then((res) => {
+          console.log(res)
+          // this.valueDate=res.data
+          const baseUrl = `${requestObj.baseUrl}/static/img/`
+          if (res.data.images.file2 === '' && res.data.images.file1 === '') {
+            res.data.images.file1 = []
+            res.data.images.file2 = []
+            var images = [res.data.images.file1, res.data.images.file2]
+          } else if (res.data.images.file2 === '') {
+            res.data.images.file2 = []
+            var images = [[res.data.images.file1], res.data.images.file2]
+          } else if (res.data.images.file1 === '') {
+            res.data.images.file1 = []
+            var images = [res.data.images.file1, res.data.images.file2.split(',')]
+          } else {
+            var images = [
+              [res.data.images.file1],
+              res.data.images.file2.split(','),
+            ]
+          }
+          var info = 0
+          var num = 0
+          for (let i = 0; i < images.length; i++) {
+            // console.log(images)
+            if (!this.valueDate.fileLists[i]) { this.valueDate.fileLists[i] = [] }
+            if (images[i].length) {
+              num++
+              info += images[i].length
+              for (let j = 0; j < images[i].length; j++) {
+                this.valueDate.fileLists[i].push(baseUrl + images[i][j])
+                console.log(baseUrl + images[i][j])
+              }
             }
           }
-        }
-        // images=[]
-        console.log(this.valueDate.fileLists,'images');
-        res.data.list1.map((item, index) => {
-          item.index = index + 1
+          // images=[]
+          console.log(this.valueDate.fileLists, 'images')
+          res.data.list1.map((item, index) => {
+            item.index = index + 1
+          })
+          res.data.list2.map((item, index) => {
+            item.index = index + 1
+          })
+          this.valueDate.index = info
+          this.valueDate.num = num
+          this.valueDate.date = this.date
+          this.valueDate.list1 = res.data.list1
+          this.valueDate.list2 = res.data.list2
+          this.valueDate.time = res.data.time
+          exportLUImage(
+            '/Section.docx',
+            this.valueDate,
+            `${this.reportName}.docx`
+          )
         })
-        res.data.list2.map((item, index) => {
-          item.index = index + 1
-        })
-        this.valueDate.index = info
-        this.valueDate.num = num
-        this.valueDate.date = this.date
-        this.valueDate.list1 = res.data.list1
-        this.valueDate.list2 = res.data.list2
-        this.valueDate.time = res.data.time
-        exportLUImage('/Section.docx', this.valueDate, `${this.reportName}.docx`)
-      })
     },
-    handleRemove(file, fileList) {
+    handleRemove (file, fileList) {
       console.log(file, fileList)
     },
-    handleChange(file, fileList) {
+    handleChange (file, fileList) {
       // console.log(file);
       this.file = file
       this.fileList = fileList
       console.log(this.fileList)
     },
-    handleSizeChange(size) {
+    handleSizeChange (size) {
       this.PageNum = 1
       this.PageSize = size
     },
-    handleCurrentChange(num) {
+    handleCurrentChange (num) {
       this.PageNum = num
     },
-    openPic() {
+    openPic () {
       this.dialogVisible = true
     },
+    exportword () {
+      if (this.carInput === '') {
+        this.$message('������������������')
+        return false
+      }
+      this.dateList = []
+      this.columnList = []
+      this.$request({
+        url: 'cruiser/dailyDustlds',
+        method: 'post',
+        data: {
+          mac: this.carInput,
+          startTime: this.value1[0],
+          endTime: this.value1[1],
+        },
+        responseType: 'blob',
+      })
+        .then((res) => {
 
-    selectReport() {
+          this.getOutExcel('������������', res)
+
+        })
+        .catch(res => {
+          this.$message(res.message)
+        })
+    },
+    getOutExcel (fileName, res) {
+      let blob = new Blob([res], {
+        type: `application/msword`, //word���������msword,pdf���������pdf
+      })
+      let objectUrl = URL.createObjectURL(blob)
+      let link = document.createElement('a')
+      link.href = objectUrl
+      link.setAttribute('download', fileName)
+      document.body.appendChild(link)
+      link.click()
+    },
+    selectReport () {
       if (this.carInput === '') {
         this.$message('������������������')
         return false
@@ -361,7 +419,9 @@
           }
           info.map((v) => {
             console.log(v)
-            var time = v.time.substring(0, 10).split('-').join('')
+            var time = v.time.substring(0, 10)
+              .split('-')
+              .join('')
             if (this.cityChoose === 'gx') {
               v.time = `���������������������������������������������������${time}`
             } else {
@@ -376,7 +436,7 @@
         })
     },
 
-    expReport(obj) {
+    expReport (obj) {
       console.log(obj)
       this.dialogVisible = true
       this.id = obj.id
@@ -386,14 +446,15 @@
         params: {
           id: obj.id,
         },
-      }).then((res) => {
-        // console.log(res)
-        this.tableData1 = res.data.list
-        this.total = res.data.count
-        // console.log(this.pagesize)
       })
+        .then((res) => {
+          // console.log(res)
+          this.tableData1 = res.data.list
+          this.total = res.data.count
+          // console.log(this.pagesize)
+        })
     },
-    getBase64(file) {
+    getBase64 (file) {
       return new Promise(function (resolve, reject) {
         var reader = new FileReader()
         let imgResult = ''
@@ -409,29 +470,7 @@
         }
       })
     },
-  },
-  //������������ - ��������������������������������� this ���������
-  created() {
-    this.$request({
-      url: 'cruiser/selectCruisers',
-      method: 'get',
-    })
-      .then((res) => {
-        this.carMac = res.data
-      })
-      .catch((err) => {
-        console.log(err)
-      })
-  },
-  //������������ - ��������������������������� DOM ���������
-  mounted() {},
-  beforeCreate() {}, //������������ - ������������
-  beforeMount() {}, //������������ - ������������
-  beforeUpdate() {}, //������������ - ������������
-  updated() {}, //������������ - ������������
-  beforeDestroy() {}, //������������ - ������������
-  destroyed() {}, //������������ - ������������
-  activated() {}, //���������������keep-alive������������������������������������
+  }, //���������������keep-alive������������������������������������
 }
 </script>
 <style scoped>

--
Gitblit v1.8.0