You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
5.0 KiB
161 lines
5.0 KiB
<template>
|
|
<ContentWrap>
|
|
<!-- 智能电表统计表搜索工作栏 -->
|
|
<el-form :model="queryParams" ref="queryForm" :inline="true">
|
|
<el-form-item label="日期" prop="dateRange">
|
|
<el-date-picker
|
|
v-model="queryParams.dateRange"
|
|
style="width: 240px; height: 30px"
|
|
value-format="YYYY-MM-DD"
|
|
end-placeholder="结束日期"
|
|
start-placeholder="开始日期"
|
|
type="daterange"
|
|
/>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" size="mini" @click="handleQuery">搜索</el-button>
|
|
<el-button size="mini" @click="resetQuery">重置</el-button>
|
|
<el-button type="success" @click="exportElecTotal" size="mini">导出</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</ContentWrap>
|
|
|
|
<!-- 列表 -->
|
|
<ContentWrap>
|
|
<el-table
|
|
v-loading="loading" :data="dataList.dList" border="true" highlight-current-row="true">
|
|
<el-table-column label="线路名称(智能电表)" prop="mname" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="总" prop="idescTotal" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="峰" prop="idescF" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="峰值比例" prop="idescFt" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="谷" prop="idescG" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="谷值比例" prop="idescGt" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="平" prop="idescP" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="平值比例" prop="idescPt" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="尖峰" prop="idescJ" align="center" :show-overflow-tooltip="true" />
|
|
<el-table-column label="平值比例" prop="idescJt" align="center" :show-overflow-tooltip="true" />
|
|
</el-table>
|
|
</ContentWrap>
|
|
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import * as TjanalysisApi from '@/api/tjanalysis'
|
|
import { formatDate } from '@/utils/formatTime'
|
|
|
|
defineOptions({ name: 'PlatscaleAnalysis' })
|
|
|
|
const message = useMessage() // 消息弹窗
|
|
const { t } = useI18n() // 国际化
|
|
|
|
const route = useRoute() // 路由信息
|
|
const routeName = ref()
|
|
routeName.value = route.name
|
|
const loading = ref(true)
|
|
const dataList = reactive({dList: [] , total: 0})
|
|
|
|
const queryParams = reactive({
|
|
dateRange: []
|
|
})
|
|
|
|
const handleQuery = async () => {
|
|
getList()
|
|
}
|
|
|
|
const resetQuery = async () => {
|
|
// 获取当前日期
|
|
let today = new Date();
|
|
|
|
// 计算昨天的日期
|
|
today.setDate(today.getDate() - 1);
|
|
|
|
// 格式化日期为 "yyyy-MM-dd"
|
|
let year = today.getFullYear();
|
|
let month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以需要+1,并确保是两位数
|
|
let date = String(today.getDate()).padStart(2, '0'); // 确保日期是两位数
|
|
|
|
let yesterdayAsString = `${year}-${month}-${date}`;
|
|
|
|
console.log(yesterdayAsString);
|
|
|
|
|
|
queryParams.dateRange=[yesterdayAsString,yesterdayAsString]
|
|
getList()
|
|
}
|
|
|
|
const getList = async () => {
|
|
const res = await TjanalysisApi.queryElectricdataAllTj(queryParams)
|
|
console.log(res)
|
|
if (res != null && res.dataList != null) {
|
|
dataList.dList = res.dataList
|
|
}
|
|
loading.value = false
|
|
}
|
|
|
|
const exportElecTotal = async () => {
|
|
const res = await TjanalysisApi.exportElectricdataAllTj(queryParams)
|
|
if (res != null) {
|
|
let url = window.URL.createObjectURL(new Blob([res]));
|
|
let link = document.createElement("a");
|
|
link.style.display = "none";
|
|
link.href = url;
|
|
link.setAttribute("download", "智能报表统计数据.xlsx");
|
|
document.body.appendChild(link);
|
|
link.click();
|
|
}
|
|
}
|
|
|
|
function getSummaries(param) {
|
|
const { columns, data } = param;
|
|
const sums = [];
|
|
columns.forEach((column, index) => {
|
|
// console.log(column)
|
|
if (index === 0) {
|
|
sums[index] = '总';
|
|
// return;
|
|
}
|
|
|
|
const values = data.map(item => Number(item[column.property]));
|
|
if (!values.every(value => isNaN(value))) {
|
|
sums[index] = values.reduce((prev, curr) => {
|
|
const value = Number(curr);
|
|
if (!isNaN(value)) {
|
|
return prev + curr;
|
|
} else {
|
|
return prev;
|
|
}
|
|
}, 0);
|
|
// sums[index] += ' 元';
|
|
} else {
|
|
// sums[index] = 'N/A';
|
|
}
|
|
});
|
|
|
|
return sums;
|
|
}
|
|
|
|
/** 初始化 **/
|
|
onMounted(async () => {
|
|
// 获取当前日期
|
|
let today = new Date();
|
|
|
|
// 计算昨天的日期
|
|
today.setDate(today.getDate() - 1);
|
|
|
|
// 格式化日期为 "yyyy-MM-dd"
|
|
let year = today.getFullYear();
|
|
let month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以需要+1,并确保是两位数
|
|
let date = String(today.getDate()).padStart(2, '0'); // 确保日期是两位数
|
|
|
|
let yesterdayAsString = `${year}-${month}-${date}`;
|
|
|
|
console.log(yesterdayAsString);
|
|
|
|
|
|
queryParams.dateRange=[yesterdayAsString,yesterdayAsString]
|
|
getList()
|
|
|
|
})
|
|
|
|
</script>
|
|
|
|
|