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