From a6b2d94fdd578d5918d6d6fc33996620beed20b3 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期三, 18 三月 2026 14:35:24 +0800
Subject: [PATCH] 能耗成本核算查询入参修改
---
src/views/costAccounting/energyCosts/index.vue | 103 ++++++++++++++++++++++++++++++---------------------
1 files changed, 61 insertions(+), 42 deletions(-)
diff --git a/src/views/costAccounting/energyCosts/index.vue b/src/views/costAccounting/energyCosts/index.vue
index 957f66c..5488bcc 100644
--- a/src/views/costAccounting/energyCosts/index.vue
+++ b/src/views/costAccounting/energyCosts/index.vue
@@ -27,7 +27,7 @@
<el-form :model="searchForm"
:inline="true"
class="filter-form">
- <el-form-item label="鑳借�楃被鍨�">
+ <!-- <el-form-item label="鑳借�楃被鍨�">
<el-select v-model="searchForm.energyType"
placeholder="鍏ㄩ儴"
clearable
@@ -42,15 +42,13 @@
<el-option label="姘�"
value="姘�" />
</el-select>
- </el-form-item>
+ </el-form-item> -->
<el-form-item label="鑳借�楃敤閫�">
- <el-select v-model="searchForm.energyPurpose"
- placeholder="鍏ㄩ儴"
+ <el-select v-model="searchForm.type"
+ placeholder=""
clearable
class="w-140"
@change="handleQuery">
- <el-option label="鍏ㄩ儴"
- value="鍏ㄩ儴" />
<el-option label="鐢熶骇"
value="鐢熶骇" />
<el-option label="鍔炲叕"
@@ -480,7 +478,7 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column prop="energyPurpose"
+ <el-table-column prop="type"
label="鑳借�楃敤閫�"
width="100"
align="center"
@@ -488,8 +486,8 @@
:filter-method="filterEnergyPurpose"
filter-placement="bottom-end">
<template #default="scope">
- <el-tag :type="scope.row.energyPurpose === '鐢熶骇' ? 'primary' : 'info'">
- {{ scope.row.energyPurpose }}
+ <el-tag :type="scope.row.type === '鐢熶骇' ? 'primary' : 'info'">
+ {{ scope.row.type }}
</el-tag>
</template>
</el-table-column>
@@ -552,8 +550,8 @@
// 鎼滅储琛ㄥ崟
const searchForm = reactive({
- energyType: "",
- energyPurpose: "",
+ // energyType: "",
+ type: "",
dateRange: (() => {
// 榛樿鏈�杩�7澶�
const end = new Date();
@@ -645,8 +643,8 @@
const c = Number.parseFloat(r?.cost);
const cost = Number.isFinite(c) ? c : 0;
bucket.total += cost;
- if (r?.energyPurpose === "鐢熶骇") bucket.production += cost;
- if (r?.energyPurpose === "鍔炲叕") bucket.office += cost;
+ if (r?.type === "鐢熶骇") bucket.production += cost;
+ if (r?.type === "鍔炲叕") bucket.office += cost;
}
const times = Array.from(byTime.keys()).sort((a, b) => String(a).localeCompare(String(b)));
const total = times.map(t => byTime.get(t).total);
@@ -690,9 +688,9 @@
const handleKpiClick = key => {
selectedKpi.value = key;
- if (key === "all") searchForm.energyPurpose = "";
- if (key === "production") searchForm.energyPurpose = "鐢熶骇";
- if (key === "office") searchForm.energyPurpose = "鍔炲叕";
+ if (key === "all") searchForm.type = "";
+ if (key === "production") searchForm.type = "鐢熶骇";
+ if (key === "office") searchForm.type = "鍔炲叕";
page.current = 1;
handleQuery();
};
@@ -755,7 +753,7 @@
const a = document.createElement("a");
a.href = url;
const typePart = searchForm.energyType ? `_${searchForm.energyType}` : "";
- const purposePart = searchForm.energyPurpose ? `_${searchForm.energyPurpose}` : "";
+ const purposePart = searchForm.type ? `_${searchForm.type}` : "";
let rangePart = "";
if (statisticsType.value === "day") {
if (searchForm.dateRange?.length === 2) rangePart = `_${searchForm.dateRange[0]}~${searchForm.dateRange[1]}`;
@@ -855,7 +853,7 @@
];
const filterEnergyType = (value, row) => row.energyType === value;
- const filterEnergyPurpose = (value, row) => row.energyPurpose === value;
+ const filterEnergyPurpose = (value, row) => row.type === value;
// 鍒嗛〉
const page = reactive({
@@ -1009,7 +1007,7 @@
{
name: "鐢熶骇鑳借�楁垚鏈�",
type: "bar",
- data: data.map(item => (item.energyPurpose === "鐢熶骇" ? item.cost : 0)),
+ data: data.map(item => (item.type === "鐢熶骇" ? item.cost : 0)),
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#409EFF" },
@@ -1024,7 +1022,7 @@
{
name: "鍔炲叕鑳借�楁垚鏈�",
type: "bar",
- data: data.map(item => (item.energyPurpose === "鍔炲叕" ? item.cost : 0)),
+ data: data.map(item => (item.type === "鍔炲叕" ? item.cost : 0)),
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#67C23A" },
@@ -1126,8 +1124,8 @@
};
data.forEach(item => {
- if (purposeCosts.hasOwnProperty(item.energyPurpose)) {
- purposeCosts[item.energyPurpose] += parseFloat(item.cost);
+ if (purposeCosts.hasOwnProperty(item.type)) {
+ purposeCosts[item.type] += parseFloat(item.cost);
}
});
@@ -1193,8 +1191,8 @@
鍔炲叕: 0,
};
}
- if (priceData[item.energyType].hasOwnProperty(item.energyPurpose)) {
- priceData[item.energyType][item.energyPurpose] = parseFloat(item.price);
+ if (priceData[item.energyType].hasOwnProperty(item.type)) {
+ priceData[item.energyType][item.type] = parseFloat(item.price);
}
});
@@ -1304,9 +1302,9 @@
// 鏋勯�犺姹傚弬鏁�
const params = {
- type: statisticsType.value,
- energyType: searchForm.energyType || undefined,
- energyPurpose: searchForm.energyPurpose || undefined,
+ days: 0,
+ // energyType: searchForm.energyType || undefined,
+ type: searchForm.type || undefined,
// 椤圭洰鍐呭父鐢ㄥ垎椤靛弬鏁板懡鍚�
pageNum: page.current,
pageSize: page.size,
@@ -1320,7 +1318,28 @@
} else {
if (searchForm.monthRange && searchForm.monthRange.length === 2) {
params.startDate = searchForm.monthRange[0] + "-01";
- params.endDate = searchForm.monthRange[1] + "-01";
+
+ // 缁撴潫鏃堕棿闇�瑕佸彇缁撴潫鏈堜唤鐨勬渶鍚庝竴澶╋紙渚嬪 2026-03 -> 2026-03-31锛�
+ const [endYearStr, endMonthStr] = String(searchForm.monthRange[1]).split("-");
+ const endYear = Number(endYearStr);
+ const endMonth = Number(endMonthStr); // 1-12
+ if (!Number.isNaN(endYear) && !Number.isNaN(endMonth) && endMonth >= 1 && endMonth <= 12) {
+ const lastDay = new Date(endYear, endMonth, 0).getDate(); // 涓嬩釜鏈堢0澶� = 鏈湀鏈�鍚庝竴澶�
+ params.endDate = `${endYearStr}-${endMonthStr}-${String(lastDay).padStart(2, "0")}`;
+ } else {
+ params.endDate = searchForm.monthRange[1] + "-01";
+ }
+ }
+ }
+
+ // 璁$畻寮�濮嬪埌缁撴潫鐨勫ぉ鏁帮紙鍖呭惈璧锋涓ゅぉ锛�
+ if (params.startDate && params.endDate) {
+ const start = new Date(params.startDate);
+ const end = new Date(params.endDate);
+ if (!Number.isNaN(start.getTime()) && !Number.isNaN(end.getTime())) {
+ const diffTime = end.getTime() - start.getTime();
+ const diffDays = Math.floor(diffTime / (24 * 60 * 60 * 1000)) + 1;
+ params.days = diffDays > 0 ? diffDays : 0;
}
}
@@ -1383,7 +1402,7 @@
mockData.push({
timePeriod: dateStr,
energyType: "鐢�",
- energyPurpose: "鐢熶骇",
+ type: "鐢熶骇",
consumption: (Math.random() * 1000 + 500).toFixed(2),
unit: "kWh",
price: "0.85",
@@ -1392,7 +1411,7 @@
mockData.push({
timePeriod: dateStr,
energyType: "姘�",
- energyPurpose: "鐢熶骇",
+ type: "鐢熶骇",
consumption: (Math.random() * 500 + 200).toFixed(2),
unit: "m鲁",
price: "3.50",
@@ -1401,7 +1420,7 @@
mockData.push({
timePeriod: dateStr,
energyType: "姘�",
- energyPurpose: "鐢熶骇",
+ type: "鐢熶骇",
consumption: (Math.random() * 300 + 100).toFixed(2),
unit: "m鲁",
price: "2.80",
@@ -1412,7 +1431,7 @@
mockData.push({
timePeriod: dateStr,
energyType: "鐢�",
- energyPurpose: "鍔炲叕",
+ type: "鍔炲叕",
consumption: (Math.random() * 200 + 100).toFixed(2),
unit: "kWh",
price: "0.85",
@@ -1421,7 +1440,7 @@
mockData.push({
timePeriod: dateStr,
energyType: "姘�",
- energyPurpose: "鍔炲叕",
+ type: "鍔炲叕",
consumption: (Math.random() * 50 + 20).toFixed(2),
unit: "m鲁",
price: "3.50",
@@ -1445,7 +1464,7 @@
mockData.push({
timePeriod: monthStr,
energyType: "鐢�",
- energyPurpose: "鐢熶骇",
+ type: "鐢熶骇",
consumption: (Math.random() * 30000 + 15000).toFixed(2),
unit: "kWh",
price: "0.85",
@@ -1454,7 +1473,7 @@
mockData.push({
timePeriod: monthStr,
energyType: "姘�",
- energyPurpose: "鐢熶骇",
+ type: "鐢熶骇",
consumption: (Math.random() * 15000 + 6000).toFixed(2),
unit: "m鲁",
price: "3.50",
@@ -1463,7 +1482,7 @@
mockData.push({
timePeriod: monthStr,
energyType: "姘�",
- energyPurpose: "鐢熶骇",
+ type: "鐢熶骇",
consumption: (Math.random() * 9000 + 3000).toFixed(2),
unit: "m鲁",
price: "2.80",
@@ -1474,7 +1493,7 @@
mockData.push({
timePeriod: monthStr,
energyType: "鐢�",
- energyPurpose: "鍔炲叕",
+ type: "鍔炲叕",
consumption: (Math.random() * 6000 + 3000).toFixed(2),
unit: "kWh",
price: "0.85",
@@ -1483,7 +1502,7 @@
mockData.push({
timePeriod: monthStr,
energyType: "姘�",
- energyPurpose: "鍔炲叕",
+ type: "鍔炲叕",
consumption: (Math.random() * 1500 + 600).toFixed(2),
unit: "m鲁",
price: "3.50",
@@ -1511,9 +1530,9 @@
tableData.value.forEach(item => {
const cost = parseFloat(item.cost);
totalCost += cost;
- if (item.energyPurpose === "鐢熶骇") {
+ if (item.type === "鐢熶骇") {
productionCost += cost;
- } else if (item.energyPurpose === "鍔炲叕") {
+ } else if (item.type === "鍔炲叕") {
officeCost += cost;
}
});
@@ -1537,8 +1556,8 @@
// 閲嶇疆
const handleReset = () => {
- searchForm.energyType = "";
- searchForm.energyPurpose = "";
+ // searchForm.energyType = "";
+ searchForm.type = "";
if (statisticsType.value === "day") {
const end = new Date();
const start = new Date();
--
Gitblit v1.9.3