江河统计导出修改

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> <template>
<div> <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'}"> :columns="columns" :where="where" :scroll="{x: 'max-content'}">
<template #toolbar> <template #toolbar>
@@ -39,8 +39,8 @@
</template> </template>
<template #billName="{ text, record }"> <template #billName="{ text, record }">
<div class="editable-cell"> <div class="editable-cell">
<div v-if="editableData[record.waterStationWaterFunctionAreaBillId]" class="editable-cell-input-wrapper"> <div v-if="editableData[record.waterSiteBillId]" class="editable-cell-input-wrapper">
<a-input v-model:value="editableData[record.waterStationWaterFunctionAreaBillId].billName" @pressEnter="save(record)" /> <a-input v-model:value="editableData[record.waterSiteBillId].billName" @pressEnter="save(record)" />
<check-outlined class="editable-cell-icon-check" @click="save(record)" /> <check-outlined class="editable-cell-icon-check" @click="save(record)" />
</div> </div>
<div v-else class="editable-cell-text-wrapper"> <div v-else class="editable-cell-text-wrapper">
@@ -51,9 +51,9 @@
</template> </template>
<template #reportTime="{ text, record }"> <template #reportTime="{ text, record }">
<div class="editable-cell"> <div class="editable-cell">
<div v-if="editableData[record.waterStationWaterFunctionAreaBillId]" class="editable-cell-input-wrapper"> <div v-if="editableData[record.waterSiteBillId]" class="editable-cell-input-wrapper">
<a-date-picker v-model:value="editableData[record.waterStationWaterFunctionAreaBillId].reportTime"></a-date-picker> <a-date-picker v-model:value="editableData[record.waterSiteBillId].reportTime"></a-date-picker>
<!-- <a-input v-model:value="editableData[record.waterStationWaterFunctionAreaBillId].reportTime" @pressEnter="save(record)" /> --> <!-- <a-input v-model:value="editableData[record.waterSiteBillId].reportTime" @pressEnter="save(record)" /> -->
<check-outlined class="editable-cell-icon-check" @click="save(record)" /> <check-outlined class="editable-cell-icon-check" @click="save(record)" />
</div> </div>
<div v-else class="editable-cell-text-wrapper"> <div v-else class="editable-cell-text-wrapper">

View File

@@ -47,6 +47,7 @@
</template> </template>
<script> <script>
import moment from "moment";
import { import {
// autonomyWaterFunctionTotalUrl, // autonomyWaterFunctionTotalUrl,
listWaterSiteMonthTotal listWaterSiteMonthTotal
@@ -324,17 +325,54 @@
}, },
/* 导出 */ /* 导出 */
exportFile() { exportFile() {
const columns = this.columns.filter(item => item.dataIndex);
const arr = []; const arr = [];
const th = columns.map((item) => item.title); const th1 = [];
arr.push(th); const th2 = [];
this.data.forEach((d) => { const merges = []; // 合并
const td = columns.map((item) => d[item.dataIndex]); 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); arr.push(td);
}); });
let sheet = XLSX.utils.aoa_to_sheet(arr); 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> </template>
<script> <script>
import moment from "moment";
import { import {
listWaterSiteYoy listWaterSiteYoy
} from "@/api/ecology/river-statis"; } from "@/api/ecology/river-statis";
@@ -210,17 +211,102 @@
}, },
/* 导出 */ /* 导出 */
exportFile() { exportFile() {
const columns = this.columns.filter(item => item.dataIndex); //环比数据
const arr = []; const arr = [];
const th = columns.map((item) => item.title); const th1 = [];
arr.push(th); const th2 = [];
this.data.forEach((d) => { const merges = []; // 合并
const td = columns.map((item) => d[item.dataIndex]); 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); 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日") + "统计数据");
} }
}, },

View File

@@ -552,13 +552,13 @@
header: 1, header: 1,
}); });
const riverList = aoa.filter( const riverList = aoa.filter(
(item) => { (item,index) => {
if (this.param.system == "1") { if (this.param.system == "1") {
return item[1] && item[1] != "时间" return item[1] && item[1] != "时间"
} else { } else {
if(index>1 && item[2] != "平均值" && item[2] != "最大值" && item[2] != "最小值" && item[2] != "有效数据个数" && item[2] != "总数据个数"){
return item[2] && item[2] != "时间" && item[2] != "三类标准" && item[2] != "平均值" && item[2] != "最大值" && return item;
item[2] != "最小值" && item[2] != "有效数据个数" && item[2] != "总数据个数" }
} }
} }

View File

@@ -61,6 +61,7 @@
</template> </template>
<script> <script>
import moment from "moment";
import { import {
listAvgCompositeIndex, listAvgCompositeIndex,
listTargetInfo, listTargetInfo,
@@ -183,17 +184,53 @@
}, },
/* 导出 */ /* 导出 */
exportFile() { exportFile() {
const columns = this.columns.filter(item => item.dataIndex);
const arr = []; const arr = [];
const th = columns.map((item) => item.title); const th1 = [];
arr.push(th); const th2 = [];
this.data.forEach((d) => { const merges = []; // 合并
const td = columns.map((item) => d[item.dataIndex]); 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.momData.forEach((d) => {
const td = columnsTemp.map((item) => d[item.dataIndex]);
arr.push(td); arr.push(td);
}); });
let sheet = XLSX.utils.aoa_to_sheet(arr); 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

@@ -32,7 +32,7 @@
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item label="开始时间:"> <a-form-item label="开始时间:">
<a-month-picker valueFormat="YYYY-MM" v-model:value="where.startTime" :disabled-date="disabledDate" /> <a-month-picker valueFormat="YYYY-MM" v-model:value="where.startTime" :disabled-date="disabledDate" />
</a-form-item> </a-form-item>
<a-form-item label="结束时间:"> <a-form-item label="结束时间:">
@@ -61,6 +61,7 @@
</template> </template>
<script> <script>
import moment from "moment";
import { import {
listMonthCompositeIndex, listMonthCompositeIndex,
listTargetInfo, listTargetInfo,
@@ -131,37 +132,37 @@
rules: {}, rules: {},
waterBodyList: [], waterBodyList: [],
waterSystemList: [], waterSystemList: [],
targetInfo:{}, targetInfo: {},
targetInfoList:[], targetInfoList: [],
}; };
}, },
created() { created() {
listInfo().then((res) => { listInfo().then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
console.log(res.data.data) console.log(res.data.data)
this.sectionInfo = res.data.data this.sectionInfo = res.data.data
res.data.data.forEach((m) => { res.data.data.forEach((m) => {
this.waterSystemList.push(m.waterBody); this.waterSystemList.push(m.waterBody);
this.waterBodyList.push(m.importWaterBody); this.waterBodyList.push(m.importWaterBody);
}) })
this.waterSystemList = [...new Set(this.waterSystemList)]; this.waterSystemList = [...new Set(this.waterSystemList)];
this.waterBodyList = [...new Set(this.waterBodyList)]; this.waterBodyList = [...new Set(this.waterBodyList)];
} else { } else {
this.$message.error(res.data.msg); this.$message.error(res.data.msg);
} }
}), }),
listTargetInfo().then((res) => { listTargetInfo().then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {
console.log(res.data.data) console.log(res.data.data)
this.targetInfo = res.data.data this.targetInfo = res.data.data
res.data.data.forEach((m) => { res.data.data.forEach((m) => {
this.targetInfoList.push(m.indicatorName); this.targetInfoList.push(m.indicatorName);
}) })
this.targetInfoList = [...new Set(this.targetInfoList)]; this.targetInfoList = [...new Set(this.targetInfoList)];
} else { } else {
this.$message.error(res.data.msg); this.$message.error(res.data.msg);
} }
}) })
}, },
methods: { methods: {
/* 刷新表格 */ /* 刷新表格 */
@@ -188,17 +189,54 @@
}, },
/* 导出 */ /* 导出 */
exportFile() { exportFile() {
const columns = this.columns.filter(item => item.dataIndex);
const arr = []; const arr = [];
const th = columns.map((item) => item.title); const th1 = [];
arr.push(th); const th2 = [];
this.data.forEach((d) => { const merges = []; // 合并
const td = columns.map((item) => d[item.dataIndex]); 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.momData.forEach((d) => {
const td = columnsTemp.map((item) => d[item.dataIndex]);
arr.push(td); arr.push(td);
}); });
let sheet = XLSX.utils.aoa_to_sheet(arr); 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

@@ -193,6 +193,7 @@
console.log(arr); console.log(arr);
var target = { var target = {
sectionName:'', sectionName:'',
waterQualityGoal:'',
january:'', january:'',
february:'', february:'',
march:'', march:'',
@@ -210,6 +211,7 @@
}; };
arr.forEach(e => { arr.forEach(e => {
target.sectionName = e.sectionName; target.sectionName = e.sectionName;
target.waterQualityGoal=e.waterQualityGoal;
var month = e.samplingTime.split("-")[1]; var month = e.samplingTime.split("-")[1];
if (month == '01') { if (month == '01') {
target.january = e.waterQualityCategory; target.january = e.waterQualityCategory;

View File

@@ -55,6 +55,7 @@
</template> </template>
<script> <script>
import moment from "moment";
import { import {
listAutonomyWaterFunctionTotal, listAutonomyWaterFunctionTotal,
} from "@/api/ecology/river-statis"; } from "@/api/ecology/river-statis";
@@ -141,17 +142,54 @@
}, },
/* 导出 */ /* 导出 */
exportFile() { exportFile() {
const columns = this.columns.filter(item => item.dataIndex);
const arr = []; const arr = [];
const th = columns.map((item) => item.title); const th1 = [];
arr.push(th); const th2 = [];
this.data.forEach((d) => { const merges = []; // 合并
const td = columns.map((item) => d[item.dataIndex]); 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); arr.push(td);
}); });
let sheet = XLSX.utils.aoa_to_sheet(arr); 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

@@ -193,6 +193,7 @@
console.log(arr); console.log(arr);
var target = { var target = {
sectionName:'', sectionName:'',
waterQualityGoal:'',
january:'', january:'',
february:'', february:'',
march:'', march:'',
@@ -210,6 +211,7 @@
}; };
arr.forEach(e => { arr.forEach(e => {
target.sectionName = e.sectionName; target.sectionName = e.sectionName;
target.waterQualityGoal=e.waterQualityGoal;
var month = e.samplingTime.split("-")[1]; var month = e.samplingTime.split("-")[1];
if (month == '01') { if (month == '01') {
target.january = e.waterQualityCategory; target.january = e.waterQualityCategory;
@@ -247,8 +249,10 @@
if (month == '12') { if (month == '12') {
target.december = e.waterQualityCategory; target.december = e.waterQualityCategory;
} }
target.standardRate = e.standardRate; if(arr.length == '12'){
target.standard = e.standard; target.standardRate = e.standardRate;
target.standard = e.standard;
}
}) })
this.datasource.push(target); this.datasource.push(target);
} }

View File

@@ -55,6 +55,7 @@
</template> </template>
<script> <script>
import moment from "moment";
import { import {
listNationalWaterFunctionTotal listNationalWaterFunctionTotal
} from "@/api/ecology/river-statis"; } from "@/api/ecology/river-statis";
@@ -137,17 +138,54 @@
}, },
/* 导出 */ /* 导出 */
exportFile() { exportFile() {
const columns = this.columns.filter(item => item.dataIndex);
const arr = []; const arr = [];
const th = columns.map((item) => item.title); const th1 = [];
arr.push(th); const th2 = [];
this.data.forEach((d) => { const merges = []; // 合并
const td = columns.map((item) => d[item.dataIndex]); 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); arr.push(td);
}); });
let sheet = XLSX.utils.aoa_to_sheet(arr); 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日") + "统计数据");
} }
}, },