218 lines
5.3 KiB
Vue
218 lines
5.3 KiB
Vue
<template>
|
|
<div class="">
|
|
<!-- 搜索表单 -->
|
|
<a-form
|
|
:model="where"
|
|
:label-col="{ md: { span: 6 }, sm: { span: 24 } }"
|
|
:wrapper-col="{ md: { span: 18 }, sm: { span: 24 } }"
|
|
>
|
|
<a-row>
|
|
<a-col :lg="6" :md="12" :sm="24" :xs="24">
|
|
<a-form-item label="年份">
|
|
<a-select v-model:value="where.year">
|
|
<a-select-option v-for="item in yearOptions" :key="item.value">{{
|
|
item.label
|
|
}}</a-select-option>
|
|
</a-select>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6" :md="12" :sm="24" :xs="24">
|
|
<a-form-item label="季度">
|
|
<a-select v-model:value="where.quarter" allowClear>
|
|
<a-select-option value="1">第一季度</a-select-option>
|
|
<a-select-option value="2">第二季度</a-select-option>
|
|
<a-select-option value="3">第三季度</a-select-option>
|
|
<a-select-option value="4">第四季度</a-select-option>
|
|
</a-select>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6" :md="12" :sm="24" :xs="24">
|
|
<a-form-item class="ele-text-right" :wrapper-col="{ span: 24 }">
|
|
<a-space>
|
|
<a-button type="primary" @click="reload">查询</a-button>
|
|
<a-button @click="reset">重置</a-button>
|
|
<a-button @click="exportFile">导出excel</a-button>
|
|
</a-space>
|
|
</a-form-item>
|
|
</a-col>
|
|
</a-row>
|
|
</a-form>
|
|
<ele-pro-table
|
|
ref="table"
|
|
row-key="id"
|
|
:datasource="url"
|
|
:columns="columns"
|
|
:where="where"
|
|
:needPage="false"
|
|
:initLoad="false"
|
|
@done="(d) => (data = d.data)"
|
|
:scroll="{ x: 'max-content' }"
|
|
>
|
|
<template #toolbar>
|
|
<!-- <a-space>
|
|
|
|
</a-space> -->
|
|
</template>
|
|
</ele-pro-table>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
// import _ from "lodash";
|
|
import XLSX from "xlsx";
|
|
import {
|
|
pageFunctionNoiseStatisticUrl,
|
|
getColumnOptions,
|
|
} from "@/api/ecology/noise/function-sound";
|
|
const columns = [
|
|
{
|
|
title: "功能区类别",
|
|
dataIndex: "col1",
|
|
},
|
|
{
|
|
title: "1类区域",
|
|
align: "center",
|
|
children: [
|
|
{
|
|
title: "昼间",
|
|
align: "center",
|
|
dataIndex: "colD1",
|
|
},
|
|
{
|
|
title: "夜间",
|
|
align: "center",
|
|
dataIndex: "colN1",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "2类区域",
|
|
align: "center",
|
|
children: [
|
|
{
|
|
title: "昼间",
|
|
align: "center",
|
|
dataIndex: "colD2",
|
|
},
|
|
{
|
|
title: "夜间",
|
|
align: "center",
|
|
dataIndex: "colN2",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "3类区域",
|
|
align: "center",
|
|
children: [
|
|
{
|
|
title: "昼间",
|
|
align: "center",
|
|
dataIndex: "colD3",
|
|
},
|
|
{
|
|
title: "夜间",
|
|
align: "center",
|
|
dataIndex: "colN3",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "4类区域",
|
|
align: "center",
|
|
children: [
|
|
{
|
|
title: "昼间",
|
|
align: "center",
|
|
dataIndex: "colD4",
|
|
},
|
|
{
|
|
title: "夜间",
|
|
align: "center",
|
|
dataIndex: "colN4",
|
|
},
|
|
],
|
|
},
|
|
];
|
|
export default {
|
|
name: "StatisticSoundFunctionAverage",
|
|
components: {},
|
|
data() {
|
|
return {
|
|
url: pageFunctionNoiseStatisticUrl,
|
|
data: [],
|
|
where: {},
|
|
columns,
|
|
yearOptions: [],
|
|
};
|
|
},
|
|
mounted() {
|
|
this.loadOptionData();
|
|
},
|
|
methods: {
|
|
/**获取下来框数据 */
|
|
loadOptionData() {
|
|
getColumnOptions("monitor_year").then((res) => {
|
|
this.yearOptions = res.data.data.map((item) => {
|
|
return {
|
|
label: item,
|
|
value: item,
|
|
};
|
|
});
|
|
this.where.year = this.yearOptions[0].value;
|
|
this.reload();
|
|
});
|
|
},
|
|
/* 刷新表格 */
|
|
reload() {
|
|
this.$refs.table.reload({
|
|
where: this.where,
|
|
});
|
|
},
|
|
/* 重置搜索 */
|
|
reset() {
|
|
this.where.year = this.yearOptions[0].value;
|
|
this.reload();
|
|
},
|
|
exportFile() {
|
|
let array = [
|
|
["功能区类别", "1类区域","", "2类区域","", "3类区域", "","4类区域","",],
|
|
["", "以居住、文教 为主的区域","", "居住、商业、工业混杂区","", "适用于工业区", "","交通干线道路 两侧区域","",],
|
|
["", "昼间","夜间", "昼间","夜间", "昼间", "夜间","昼间","夜间",],
|
|
|
|
];
|
|
this.data.forEach((d) => {
|
|
array.push([
|
|
d.col1,
|
|
d.colD1,
|
|
d.colN1,
|
|
d.colD2,
|
|
d.colN2,
|
|
d.colD3,
|
|
d.colN3,
|
|
d.colD4,
|
|
d.colN4,
|
|
|
|
]);
|
|
});
|
|
let sheet = XLSX.utils.aoa_to_sheet(array);
|
|
// 合并单元格
|
|
sheet['!merges'] = [
|
|
{s: {r: 0, c: 0}, e: {r: 2, c: 0}},
|
|
{s: {r: 0, c: 1}, e: {r: 0, c: 2}},
|
|
{s: {r: 0, c: 3}, e: {r: 0, c: 4}},
|
|
{s: {r: 0, c: 5}, e: {r: 0, c: 6}},
|
|
{s: {r: 0, c: 7}, e: {r: 0, c: 8}},
|
|
{s: {r: 1, c: 1}, e: {r: 1, c: 2}},
|
|
{s: {r: 1, c: 3}, e: {r: 1, c: 4}},
|
|
{s: {r: 1, c: 5}, e: {r: 1, c: 6}},
|
|
{s: {r: 1, c: 7}, e: {r: 1, c: 8}}
|
|
];
|
|
this.$util.exportSheet(XLSX, sheet, new Date().getTime().toString());
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
</style> |