|
|
|
@ -1,11 +1,17 @@ |
|
|
|
|
<template> |
|
|
|
|
<div class="app-container home"> |
|
|
|
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> |
|
|
|
|
<el-tab-pane label="同比分析" name="first"> |
|
|
|
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleTabClick"> |
|
|
|
|
<el-tab-pane label="同比分析" name="同比分析"> |
|
|
|
|
<el-form :inline="true" class="demo-form-inline"> |
|
|
|
|
<el-form-item label="日期:"><el-date-picker v-model="dateValue1" type="date" placeholder="请选择日期" size="default"/></el-form-item> |
|
|
|
|
<el-form-item><el-button type="primary" @click="lastDay"><el-icon><ArrowLeft /></el-icon>上一日</el-button></el-form-item> |
|
|
|
|
<el-form-item><el-button type="primary" @click="nextDay">下一日<el-icon><ArrowRight /></el-icon></el-button></el-form-item> |
|
|
|
|
<el-form-item label="耗能设备" prop="week"> |
|
|
|
|
<el-select v-model="selectDevice" placeholder="请选择" @change="handleDevChange" style="width: 240px"> |
|
|
|
|
<el-option label="所有" value="0" /> |
|
|
|
|
<el-option v-for="item in deviceName" :key="item.deviceId" :label="item.deviceName" :value="item.deviceId" /> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="日期:"><el-date-picker v-model="dateValue1" format="YYYY" value-format="YYYY" type="year" placeholder="请选择日期" size="default"/></el-form-item> |
|
|
|
|
<el-form-item><el-button type="primary" @click="lastYear"><el-icon><ArrowLeft /></el-icon>上一年</el-button></el-form-item> |
|
|
|
|
<el-form-item><el-button type="primary" @click="nextYear">下一年<el-icon><ArrowRight /></el-icon></el-button></el-form-item> |
|
|
|
|
<el-form-item><el-button type="primary" icon="Search" @click="handleQuery1">查询</el-button></el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
<div class="chartBox"> |
|
|
|
@ -36,7 +42,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-tab-pane label="环比分析" name="second"> |
|
|
|
|
<el-tab-pane label="环比分析" name="环比分析"> |
|
|
|
|
<!-- @submit.native.prevent阻止默认提交事件--> |
|
|
|
|
<el-form :inline="true" class="demo-form-inline" @submit.native.prevent> |
|
|
|
|
<el-form-item class="mr0"><button class="myBtn btn1" :class="{active : activeIndex === 0}" @click="handleDaily">按日</button></el-form-item> |
|
|
|
@ -46,11 +52,11 @@ |
|
|
|
|
</el-form> |
|
|
|
|
<div class="tableBox2"> |
|
|
|
|
<el-table :data="hbfxDataTable"> |
|
|
|
|
<el-table-column label="用能设备" align="center" prop="type"/> |
|
|
|
|
<el-table-column label="用能设备" align="center" prop="deviceName"/> |
|
|
|
|
<el-table-column :label="label1" align="center" :prop="prop1"/> |
|
|
|
|
<el-table-column :label="label2" align="center" :prop="prop2"/> |
|
|
|
|
<el-table-column label="增加值" align="center" prop="addValue"/> |
|
|
|
|
<el-table-column label="环比(%)" align="center" prop="relative"/> |
|
|
|
|
<el-table-column label="增加值" align="center" prop="addUp"/> |
|
|
|
|
<el-table-column label="环比(%)" align="center" prop="compute"/> |
|
|
|
|
<el-table-column label="操作" align="center"> |
|
|
|
|
<template v-slot="scope"> |
|
|
|
|
<el-button type="primary" size="small" :icon="Histogram" @click="handleChart">图表</el-button> |
|
|
|
@ -70,10 +76,11 @@ |
|
|
|
|
@current-change="hbfxHandleCurrentChange"/> |
|
|
|
|
</div> |
|
|
|
|
<!-- 生成图表弹出窗 --> |
|
|
|
|
<el-dialog class="mrt" :title="title" v-model="open" width="1000px" append-to-body> |
|
|
|
|
<el-dialog class="mrt" :title="title" v-model="open" width="1000px" append-to-body :close-on-click-modal="false" :show-close="false"> |
|
|
|
|
<div class="chartBox"> |
|
|
|
|
<div id="chart"></div> |
|
|
|
|
</div> |
|
|
|
|
<el-button class="floatRight" @click=close>关闭</el-button> |
|
|
|
|
</el-dialog> |
|
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
@ -83,25 +90,63 @@ |
|
|
|
|
|
|
|
|
|
<script setup name="Index"> |
|
|
|
|
import {Histogram} from '@element-plus/icons-vue' |
|
|
|
|
import {ref,reactive} from "vue"; |
|
|
|
|
import {ref,reactive,onMounted,nextTick } from "vue"; |
|
|
|
|
import { getHuanbiFx } from "@/api/analyse/nhfx/nhfx" |
|
|
|
|
import { getDevice } from "@/api/control/manual" |
|
|
|
|
|
|
|
|
|
onMounted(async () => { |
|
|
|
|
await nextTick(); |
|
|
|
|
// 在这里进行el-tabs的初始化操作 |
|
|
|
|
formattedDateFun() |
|
|
|
|
getDeviceList() |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
/** 格式化日期*/ |
|
|
|
|
let year, month ,day; |
|
|
|
|
function formattedDateFun(){ |
|
|
|
|
let date = new Date() |
|
|
|
|
year = date.getFullYear() |
|
|
|
|
month = (date.getMonth()+1).toString().padStart(2, '0'); |
|
|
|
|
day = date.getDate().toString().padStart(2, '0'); |
|
|
|
|
dateValue2.value = `${year}-${month}-${day}` |
|
|
|
|
// let hours = date.getHours() |
|
|
|
|
// let minutes = date.getMinutes() |
|
|
|
|
// let seconds = date.getSeconds() |
|
|
|
|
// timer.value = `${hours}:${minutes}:${seconds}` |
|
|
|
|
// console.log(dateValue2.value) |
|
|
|
|
// console.log(timer.value) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 切换按钮操作*/ |
|
|
|
|
const activeName = ref('first') |
|
|
|
|
const activeName = ref('同比分析') |
|
|
|
|
|
|
|
|
|
/** ----------同比分析----------*/ |
|
|
|
|
/** 过滤查询*/ |
|
|
|
|
const dateValue1 = ref(new Date()) |
|
|
|
|
function lastDay(){ |
|
|
|
|
const current = dateValue1.value; |
|
|
|
|
const previous = new Date(current.getFullYear(), current.getMonth(), current.getDate() - 1); |
|
|
|
|
dateValue1.value = previous; |
|
|
|
|
//渲染设备列表 |
|
|
|
|
const selectDevice = ref() |
|
|
|
|
const deviceName = ref([]) |
|
|
|
|
function getDeviceList(){ |
|
|
|
|
getDevice().then((res)=>{ |
|
|
|
|
deviceName.value = res.data |
|
|
|
|
console.log(deviceName.value) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
function nextDay(){ |
|
|
|
|
const current = dateValue1.value; |
|
|
|
|
const next = new Date(current.getFullYear(), current.getMonth(), current.getDate() + 1); |
|
|
|
|
dateValue1.value = next; |
|
|
|
|
|
|
|
|
|
//切换年份处理 |
|
|
|
|
const dateValue1 = ref(new Date().getFullYear().toString()); |
|
|
|
|
//上一年 |
|
|
|
|
function lastYear(){ |
|
|
|
|
const year = parseInt(dateValue1.value); |
|
|
|
|
dateValue1.value = (year - 1).toString(); |
|
|
|
|
console.log('上一年',dateValue1.value) |
|
|
|
|
} |
|
|
|
|
//下一年 |
|
|
|
|
function nextYear(){ |
|
|
|
|
const year = parseInt(dateValue1.value); |
|
|
|
|
dateValue1.value = (year + 1).toString(); |
|
|
|
|
console.log('下一年',dateValue1.value) |
|
|
|
|
} |
|
|
|
|
//查询 |
|
|
|
|
function handleQuery1(){} |
|
|
|
|
|
|
|
|
|
/** 数据表格处理*/ |
|
|
|
@ -129,39 +174,60 @@ const tbfxHandleCurrentChange = (val) => { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** ----------环比分析----------*/ |
|
|
|
|
/** 点击环比分析*/ |
|
|
|
|
function handleTabClick(e){ |
|
|
|
|
console.log(e.paneName) |
|
|
|
|
if(e.paneName == '环比分析'){ |
|
|
|
|
handleDaily() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 过滤查询*/ |
|
|
|
|
const activeIndex = ref(0) |
|
|
|
|
const dateValue2 = ref() |
|
|
|
|
const dateType = ref('date') |
|
|
|
|
const format = ref('YYYY-MM-DD') |
|
|
|
|
const valueFormat = ref('YYYY-MM-DD') |
|
|
|
|
const timeType = ref(1) |
|
|
|
|
//按日 |
|
|
|
|
function handleDaily(){ |
|
|
|
|
activeIndex.value = 0; |
|
|
|
|
prop1.value = 'toDay' |
|
|
|
|
prop1.value = 'thisMonthTotal' |
|
|
|
|
label1.value = '当日用电/kWh' |
|
|
|
|
prop2.value = 'lastDay' |
|
|
|
|
prop2.value = 'lastMonthTotal' |
|
|
|
|
label2.value = '上日用电/kWh'; |
|
|
|
|
dateType.value = 'date' |
|
|
|
|
format.value = 'YYYY-MM-DD' |
|
|
|
|
valueFormat.value = 'YYYY-MM-DD' |
|
|
|
|
timeType.value = 1 |
|
|
|
|
dateValue2.value = `${year}-${month}-${day}` |
|
|
|
|
console.log(dateValue2.value) |
|
|
|
|
getHuanbiFxFun() |
|
|
|
|
} |
|
|
|
|
//按月 |
|
|
|
|
function handleMonthly(){ |
|
|
|
|
activeIndex.value = 1; |
|
|
|
|
prop1.value = 'toMonth' |
|
|
|
|
prop1.value = 'thisMonthTotal' |
|
|
|
|
label1.value = '当月用电/kWh' |
|
|
|
|
prop2.value = 'lastMonth' |
|
|
|
|
prop2.value = 'lastMonthTotal' |
|
|
|
|
label2.value = '上月用电/kWh'; |
|
|
|
|
dateType.value = 'month' |
|
|
|
|
format.value = 'YYYY-MM' |
|
|
|
|
valueFormat.value = 'YYYY-MM' |
|
|
|
|
timeType.value = 2 |
|
|
|
|
dateValue2.value = `${year}-${month}` |
|
|
|
|
console.log(dateValue2.value) |
|
|
|
|
getHuanbiFxFun() |
|
|
|
|
} |
|
|
|
|
//查询 |
|
|
|
|
function handleQuery2(){ |
|
|
|
|
getHuanbiFxFun() |
|
|
|
|
} |
|
|
|
|
function handleQuery2(){} |
|
|
|
|
|
|
|
|
|
/** 数据表格处理*/ |
|
|
|
|
//内容 |
|
|
|
|
const hbfxDataTable = reactive([ |
|
|
|
|
{month:'01月', currentPeriod: '1265', theSameTerm:'3254', yearOnYear:'30', totalYearOnYear:'32'} |
|
|
|
|
]) |
|
|
|
|
const hbfxDataTable = ref([]) |
|
|
|
|
const prop1 = ref('toDay') |
|
|
|
|
const label1 = ref('当日用电/kWh') |
|
|
|
|
const prop2 = ref('lastDay') |
|
|
|
@ -177,14 +243,31 @@ const hbfxHandleSizeChange = (val) => { |
|
|
|
|
const hbfxHandleCurrentChange = (val) => { |
|
|
|
|
console.log(`${val}`) |
|
|
|
|
} |
|
|
|
|
//获取环比分析表格数据 |
|
|
|
|
function getHuanbiFxFun(){ |
|
|
|
|
getHuanbiFx({ |
|
|
|
|
"timeType":timeType.value, |
|
|
|
|
"datetime":dateValue2.value |
|
|
|
|
}).then((res)=>{ |
|
|
|
|
if(res.code == 200){ |
|
|
|
|
hbfxDataTable.value = res.data |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 生成图表按鈕操作*/ |
|
|
|
|
const title = ref() |
|
|
|
|
const open = ref(false) |
|
|
|
|
function handleChart(){ |
|
|
|
|
open.value = true; |
|
|
|
|
console.log('图表按钮') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
//关闭弹框按钮 |
|
|
|
|
function close(){ |
|
|
|
|
open.value = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -244,7 +327,9 @@ function handleChart(){ |
|
|
|
|
background-color: #409EFF !important; |
|
|
|
|
color: #fff !important; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.floatRight{ |
|
|
|
|
margin-left: 90%; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
::v-deep .el-tabs__item{ |
|
|
|
|