江河统计导出修改

This commit is contained in:
shixiaoman
2021-12-15 15:15:57 +08:00
parent d9bf82d72a
commit a3f5f6ffe2
10 changed files with 363 additions and 82 deletions

View File

@@ -2,7 +2,7 @@
<template>
<div>
<!-- 表格 -->
<ele-pro-table v-model:selection="selectionList" ref="table" row-key="waterStationWaterFunctionAreaBillId" :datasource="url"
<ele-pro-table v-model:selection="selectionList" ref="table" row-key="waterSiteBillId" :datasource="url"
:columns="columns" :where="where" :scroll="{x: 'max-content'}">
<template #toolbar>
@@ -39,8 +39,8 @@
</template>
<template #billName="{ text, record }">
<div class="editable-cell">
<div v-if="editableData[record.waterStationWaterFunctionAreaBillId]" class="editable-cell-input-wrapper">
<a-input v-model:value="editableData[record.waterStationWaterFunctionAreaBillId].billName" @pressEnter="save(record)" />
<div v-if="editableData[record.waterSiteBillId]" class="editable-cell-input-wrapper">
<a-input v-model:value="editableData[record.waterSiteBillId].billName" @pressEnter="save(record)" />
<check-outlined class="editable-cell-icon-check" @click="save(record)" />
</div>
<div v-else class="editable-cell-text-wrapper">
@@ -51,9 +51,9 @@
</template>
<template #reportTime="{ text, record }">
<div class="editable-cell">
<div v-if="editableData[record.waterStationWaterFunctionAreaBillId]" class="editable-cell-input-wrapper">
<a-date-picker v-model:value="editableData[record.waterStationWaterFunctionAreaBillId].reportTime"></a-date-picker>
<!-- <a-input v-model:value="editableData[record.waterStationWaterFunctionAreaBillId].reportTime" @pressEnter="save(record)" /> -->
<div v-if="editableData[record.waterSiteBillId]" class="editable-cell-input-wrapper">
<a-date-picker v-model:value="editableData[record.waterSiteBillId].reportTime"></a-date-picker>
<!-- <a-input v-model:value="editableData[record.waterSiteBillId].reportTime" @pressEnter="save(record)" /> -->
<check-outlined class="editable-cell-icon-check" @click="save(record)" />
</div>
<div v-else class="editable-cell-text-wrapper">

View File

@@ -47,6 +47,7 @@
</template>
<script>
import moment from "moment";
import {
// autonomyWaterFunctionTotalUrl,
listWaterSiteMonthTotal
@@ -324,17 +325,54 @@
},
/* 导出 */
exportFile() {
const columns = this.columns.filter(item => item.dataIndex);
const arr = [];
const th = columns.map((item) => item.title);
arr.push(th);
this.data.forEach((d) => {
const td = columns.map((item) => d[item.dataIndex]);
const th1 = [];
const th2 = [];
const merges = []; // 合并
const columnsTemp = []; // 树形结构整理成list
this.columns.forEach((item, index) => {
if (item.children) {
item.children.forEach((citem) => {
th1.push(item.title)
th2.push(citem.title)
columnsTemp.push(citem)
})
merges.push({
s: {
r: 0,
c: th1.length - item.children.length
},
e: {
r: 0,
c: th1.length - 1
}
})
} else {
th1.push(item.title)
th2.push("")
columnsTemp.push(item)
merges.push({
s: {
r: 0,
c: index
},
e: {
r: 1,
c: index
}
})
}
})
arr.push(th1, th2);
this.datasource.forEach((d) => {
const td = columnsTemp.map((item) => d[item.dataIndex]);
arr.push(td);
});
let sheet = XLSX.utils.aoa_to_sheet(arr);
this.$util.exportSheet(XLSX, sheet, new Date().getTime().toString());
sheet['!merges'] = merges;
this.$util.exportSheet(XLSX, sheet, moment(this.where.timeStart).format("YYYY年MM月DD日") + "至" + moment(this.where
.timeEnd).format("YYYY年MM月DD日") + "统计数据");
}
},

View File

@@ -54,6 +54,7 @@
</template>
<script>
import moment from "moment";
import {
listWaterSiteYoy
} from "@/api/ecology/river-statis";
@@ -210,17 +211,102 @@
},
/* 导出 */
exportFile() {
const columns = this.columns.filter(item => item.dataIndex);
//环比数据
const arr = [];
const th = columns.map((item) => item.title);
arr.push(th);
this.data.forEach((d) => {
const td = columns.map((item) => d[item.dataIndex]);
const th1 = [];
const th2 = [];
const merges = []; // 合并
const columnsTemp = []; // 树形结构整理成list
this.columnsMom.forEach((item, index) => {
if (item.children) {
item.children.forEach((citem) => {
th1.push(item.title)
th2.push(citem.title)
columnsTemp.push(citem)
})
merges.push({
s: {
r: 0,
c: th1.length - item.children.length
},
e: {
r: 0,
c: th1.length - 1
}
})
} else {
th1.push(item.title)
th2.push("")
columnsTemp.push(item)
merges.push({
s: {
r: 0,
c: index
},
e: {
r: 1,
c: index
}
})
}
})
arr.push(th1, th2);
this.momData.forEach((d) => {
const td = columnsTemp.map((item) => d[item.dataIndex]);
arr.push(td);
});
let sheet = XLSX.utils.aoa_to_sheet(arr);
this.$util.exportSheet(XLSX, sheet, new Date().getTime().toString());
//同比数据
const arr2 = [];
const th3 = [];
const th4 = [];
const merges2 = []; // 合并
const columnsTemp2 = []; // 树形结构整理成list
this.columnsYoy.forEach((item, index) => {
if (item.children) {
item.children.forEach((citem) => {
th3.push(item.title)
th4.push(citem.title)
columnsTemp2.push(citem)
})
merges2.push({
s: {
r: 0,
c: th3.length - item.children.length
},
e: {
r: 0,
c: th3.length - 1
}
})
} else {
th3.push(item.title)
th4.push("")
columnsTemp2.push(item)
merges2.push({
s: {
r: 0,
c: index
},
e: {
r: 1,
c: index
}
})
}
})
arr2.push(th3, th4);
this.yoyData.forEach((d) => {
const td = columnsTemp2.map((item) => d[item.dataIndex]);
arr2.push(td);
});
var dataSheet=arr.concat(arr2);
console.log("dataSheet"+dataSheet);
let sheet = XLSX.utils.aoa_to_sheet(dataSheet);
sheet['!merges'] = merges;
this.$util.exportSheet(XLSX, sheet, moment(this.where.timeStart).format("YYYY年MM月DD日") + "至" + moment(this.where
.timeEnd).format("YYYY年MM月DD日") + "统计数据");
}
},