电表、单体电池接口联调

This commit is contained in:
白菜
2025-06-30 18:37:37 +08:00
parent 86cbf64a9d
commit 71cd3cd76c
3 changed files with 51 additions and 46 deletions

View File

@ -53,7 +53,13 @@ export function getClusterNameList(stackDeviceId) {
method: 'get' method: 'get'
}) })
} }
//单体电池表格数据
export function getClusterDataInfoList(siteId,stackDeviceId,clusterDeviceId) {
return request({
url: `/ems/siteMonitor/getClusterDataInfoList?siteId=${siteId}&stackDeviceId=${stackDeviceId}&clusterDeviceId=${clusterDeviceId}`,
method: 'get'
})
}
//获取液冷列表数据 //获取液冷列表数据
export function getCoolingDataList(siteId) { export function getCoolingDataList(siteId) {
return request({ return request({

View File

@ -1,17 +1,17 @@
<template> <template>
<div v-loading="loading"> <div v-loading="loading">
<el-card shadow="always" class="common-card-container" :class="info.emsCommunicationStatus === '0' ? 'cnb-common-card-container' : 'zb-common-card-container'"> <el-card shadow="always" class="common-card-container" :class="zbInfo.emsCommunicationStatus === '0' ? 'cnb-common-card-container' : 'zb-common-card-container'">
<div slot="header"> <div slot="header">
<span class="large-title">1#总表</span> <span class="large-title">1#总表</span>
<div class="status"> <div class="status">
<div>{{$store.state.ems.communicationStatusOptions[info.emsCommunicationStatus]}}</div> <div>{{$store.state.ems.communicationStatusOptions[zbInfo.emsCommunicationStatus]}}</div>
<div>数据更新时间{{info.dataUpdateTime}}</div> <div>数据更新时间{{zbInfo.dataUpdateTime}}</div>
</div> </div>
</div> </div>
<el-table <el-table
class="common-table" class="common-table"
:data="info.ammeterDataDetailInfos" :data="zbInfo.ammeterDataDetailInfos"
stripe stripe
style="width: 100%;"> style="width: 100%;">
<el-table-column <el-table-column
@ -41,43 +41,42 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-card> </el-card>
<!-- 储能表返回值待定--> <el-card shadow="always" class="common-card-container" :class="cnbInfo.emsCommunicationStatus === '0' ? 'cnb-common-card-container' : 'zb-common-card-container'">
<el-card shadow="always" class="common-card-container cnb-common-card-container">
<div slot="header"> <div slot="header">
<span class="large-title">2#储能表</span> <span class="large-title">2#储能表</span>
<div class="status"> <div class="status">
<div>通信正常</div> <div>{{$store.state.ems.communicationStatusOptions[cnbInfo.emsCommunicationStatus]}}</div>
<div>数据更新时间2024-10-11 12:00:00</div> <div>数据更新时间{{cnbInfo.dataUpdateTime}}</div>
</div> </div>
</div> </div>
<el-table <el-table
class="common-table" class="common-table"
:data="cnbTableData" :data="cnbInfo.ammeterDataDetailInfos"
stripe stripe
style="width: 100%;"> style="width: 100%;">
<el-table-column <el-table-column
prop="name" prop="category"
label="类别"> label="类别">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="zong" prop="totalKwh"
label="总/kWh" label="总/kWh"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="jian" prop="sharpKwh"
label="尖/kWh"> label="尖/kWh">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="feng" prop="peakKwh"
label="峰/kWh"> label="峰/kWh">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="ping" prop="flatKwh"
label="平/kWh"> label="平/kWh">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="gu" prop="valleyKwh"
label="谷/kWh"> label="谷/kWh">
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -95,21 +94,16 @@ export default {
data() { data() {
return { return {
loading:false, loading:false,
info:{}, zbInfo:{},
cnbTableData:[ cnbInfo:{},
{name:'累计充电量',zong:1000,jian:2000,feng:1500,ping:500,gu:40},
{name:'累计放电量',zong:1000,jian:2000,feng:1500,ping:500,gu:40},
{name:'日充电量',zong:1000,jian:2000,feng:1500,ping:500,gu:40},
{name:'日放电量',zong:1000,jian:2000,feng:1500,ping:500,gu:40},
],
} }
}, },
methods:{ methods:{
init(){ init(){
this.loading = true this.loading = true
getAmmeterDataList(this.siteId).then(response => { getAmmeterDataList(this.siteId).then(response => {
// todo 返回数据等待确认,是数组吗? this.zbInfo =JSON.parse(JSON.stringify(response?.data[0] || {}));
this.info =JSON.parse(JSON.stringify(response?.data[0] || {})); this.cnbInfo =JSON.parse(JSON.stringify(response?.data[1] || {}));
}).finally(() => {this.loading = false}) }).finally(() => {this.loading = false})
} }
}, },

View File

@ -41,12 +41,12 @@
label="单体编号"> label="单体编号">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="dianya" prop="voltage"
label="电压V" label="电压V"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wendu" prop="voltage"
label="温度(℃)"> label="温度(℃)">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -59,22 +59,25 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination
v-show="tableData.length>0"
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="pageNum" :current-page="pageNum"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize" :page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper" layout=" prev, pager, next"
:total="totalSize"> style="margin-top:15px;text-align: center"
>
</el-pagination> </el-pagination>
<!-- :total="totalSize" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" -->
</el-card> </el-card>
</template> </template>
<script> <script>
import BarChart from './BarChart' import BarChart from './BarChart'
import {getStackNameList,getClusterNameList} from '@/api/ems/dzjk' import {getStackNameList, getClusterNameList, getClusterDataInfoList} from '@/api/ems/dzjk'
import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
export default { export default {
name:'DzjkSbjkDtdc', name:'DzjkSbjkDtdc',
@ -88,7 +91,6 @@ export default {
stackOptions:[],//{id:'',deviceName:''} stackOptions:[],//{id:'',deviceName:''}
clusterOptions:[],//{id:'',deviceName:''} clusterOptions:[],//{id:'',deviceName:''}
tableData:[], tableData:[],
currentPage:1,
pageSize:10,//分页栏当前每个数据总数 pageSize:10,//分页栏当前每个数据总数
pageNum:1,//分页栏当前页数 pageNum:1,//分页栏当前页数
totalSize:1000,//table表格数据总数 totalSize:1000,//table表格数据总数
@ -99,18 +101,18 @@ export default {
handleSizeChange(val) { handleSizeChange(val) {
this.pageSize = val; this.pageSize = val;
this.$nextTick(()=>{ this.$nextTick(()=>{
this.init(false) this.getTableData()
}) })
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.pageNum = val this.pageNum = val
this.$nextTick(()=>{ this.$nextTick(()=>{
this.init(false) this.getTableData()
}) })
}, },
// 搜索 // 搜索
onSearch(){ onSearch(){
this.init(false) this.getTableData()
}, },
// 重置 // 重置
// 清空搜索栏选中数据 // 清空搜索栏选中数据
@ -118,7 +120,7 @@ export default {
onReset(){ onReset(){
this.search={stackId:'',clusterId:''} this.search={stackId:'',clusterId:''}
this.clusterOptions=[] this.clusterOptions=[]
this.init(false) this.getTableData()
}, },
changeStackId(val){ changeStackId(val){
if(val){ if(val){
@ -127,6 +129,15 @@ export default {
this.getClusterList() this.getClusterList()
} }
}, },
//表格数据
getTableData(){
this.loading=true;
getClusterDataInfoList(this.search.stackId,this.search.clusterId,this.pageNum).then(response => {
this.tableData=response?.data || [];
}).finally(()=>{
this.loading=false;
})
},
getStackList(){ getStackList(){
getStackNameList(this.siteId).then(response => { getStackNameList(this.siteId).then(response => {
this.stackOptions = JSON.parse(JSON.stringify(response?.data || [])) this.stackOptions = JSON.parse(JSON.stringify(response?.data || []))
@ -138,17 +149,11 @@ export default {
this.clusterOptions = JSON.parse(JSON.stringify(response?.data || [])) this.clusterOptions = JSON.parse(JSON.stringify(response?.data || []))
}).finally(() => {this.clusterloading =false}) }).finally(() => {this.clusterloading =false})
}, },
init(mounted = true){ init(){
this.loading=true;
// todo 获取单体电池数据
this.loading=false;
// this.$refs.barChart.setOption()
// 只有页面初次加载或切换站点的时候调用电池堆列表,其他情况不需要 // 只有页面初次加载或切换站点的时候调用电池堆列表,其他情况不需要
if(mounted){ this.search={stackId:'',clusterId:''}//保证切换站点时,清空选择项
this.search={stackId:'',clusterId:''}//保证切换站点时,清空选择项 this.getStackList()
this.getStackList() this.getTableData()
}
} }
}, },
mounted(){ mounted(){