设备监控-点位清单

This commit is contained in:
白菜
2025-11-25 17:56:12 +08:00
parent 0b2e7d9b86
commit 1378947a9e
14 changed files with 169 additions and 80 deletions

View File

@ -154,30 +154,30 @@ export function getClusterData({siteId,stackId,clusterId,dateTime,pageNum,pageSi
// 实时运行 // 实时运行
//储能 //储能
export function storagePower(siteId) { export function storagePower(siteId,startTime,endTime) {
return request({ return request({
url: `/ems/siteMonitor/runningGraph/storagePower?siteId=${siteId}`, url: `/ems/siteMonitor/runningGraph/storagePower?siteId=${siteId}&startTime=${startTime}&endTime=${endTime}`,
method: 'get' method: 'get'
}) })
} }
//poc温度 //poc温度
export function pcsMaxTemp(siteId) { export function pcsMaxTemp(siteId,startTime,endTime) {
return request({ return request({
url: `/ems/siteMonitor/runningGraph/pcsMaxTemp?siteId=${siteId}`, url: `/ems/siteMonitor/runningGraph/pcsMaxTemp?siteId=${siteId}&startTime=${startTime}&endTime=${endTime}`,
method: 'get' method: 'get'
}) })
} }
// 电池平均soc // 电池平均soc
export function batteryAveSoc(siteId) { export function batteryAveSoc(siteId,startTime,endTime) {
return request({ return request({
url: `/ems/siteMonitor/runningGraph/batteryAveSoc?siteId=${siteId}`, url: `/ems/siteMonitor/runningGraph/batteryAveSoc?siteId=${siteId}&startTime=${startTime}&endTime=${endTime}`,
method: 'get' method: 'get'
}) })
} }
// 电池平均温度 // 电池平均温度
export function batteryAveTemp(siteId) { export function batteryAveTemp(siteId,startTime,endTime) {
return request({ return request({
url: `/ems/siteMonitor/runningGraph/batteryAveTemp?siteId=${siteId}`, url: `/ems/siteMonitor/runningGraph/batteryAveTemp?siteId=${siteId}&startTime=${startTime}&endTime=${endTime}`,
method: 'get' method: 'get'
}) })
} }

View File

@ -8,7 +8,10 @@
'running-card-container':baseInfo.workStatus === '0' 'running-card-container':baseInfo.workStatus === '0'
}"> }">
<div slot="header"> <div slot="header">
<span class="large-title">{{index+1}}#{{baseInfo.parentDeviceName?`${baseInfo.parentDeviceName} —> ` : ''}}{{baseInfo.deviceName}}</span> <span class="large-title">{{baseInfo.parentDeviceName?`${baseInfo.parentDeviceName} —> ` : ''}}{{baseInfo.deviceName}}</span>
<div class="alarm">
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(baseInfo)">详细</el-button>
</div>
</div> </div>
<div class="descriptions-main"> <div class="descriptions-main">
<el-descriptions direction="vertical" :column="3" :colon="false"> <el-descriptions direction="vertical" :column="3" :colon="false">
@ -80,19 +83,21 @@
</div> </div>
<el-empty v-show="baseInfoList.length<=0" :image-size="200"></el-empty> <el-empty v-show="baseInfoList.length<=0" :image-size="200"></el-empty>
<point-chart ref="pointChart" :site-id="siteId"/> <point-chart ref="pointChart" :site-id="siteId"/>
<point-table ref="pointTable"/>
</div> </div>
</template> </template>
<script> <script>
import pointChart from "./../PointChart.vue"; import pointChart from "./../PointChart.vue";
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
import {getBMSBatteryCluster} from '@/api/ems/dzjk' import {getBMSBatteryCluster} from '@/api/ems/dzjk'
import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
import intervalUpdate from "@/mixins/ems/intervalUpdate"; import intervalUpdate from "@/mixins/ems/intervalUpdate";
export default { export default {
name:'DzjkSbjkBmsdcc', name:'DzjkSbjkBmsdcc',
mixins:[getQuerySiteId,intervalUpdate], mixins:[getQuerySiteId,intervalUpdate],
components:{pointChart}, components:{PointTable, pointChart},
data() { data() {
return { return {
loading:false, loading:false,
@ -127,6 +132,11 @@ export default {
} }
}, },
methods:{ methods:{
// 查看设备电位表格
pointDetail(row){
const {siteId,deviceId} = row
this.$refs.pointTable.showTable({siteId,deviceId,deviceCategory:'CLUSTER'})
},
showChart(pointName,deviceId){ showChart(pointName,deviceId){
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'CLUSTER',deviceId}) pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'CLUSTER',deviceId})
}, },

View File

@ -8,7 +8,10 @@
}" class="sbjk-card-container common-card-container-body-no-padding common-card-container-no-title-bg" }" class="sbjk-card-container common-card-container-body-no-padding common-card-container-no-title-bg"
shadow="always"> shadow="always">
<div slot="header"> <div slot="header">
<span class="large-title">{{index+1}}#{{baseInfo.deviceName}}</span> <span class="large-title">{{baseInfo.deviceName}}</span>
<div class="alarm">
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(baseInfo)">详细</el-button>
</div>
</div> </div>
<div class="descriptions-main"> <div class="descriptions-main">
<el-descriptions :colon="false" :column="3" direction="vertical"> <el-descriptions :colon="false" :column="3" direction="vertical">
@ -111,6 +114,7 @@
</div> </div>
<el-empty v-show="baseInfoList.length<=0" :image-size="200"></el-empty> <el-empty v-show="baseInfoList.length<=0" :image-size="200"></el-empty>
<point-chart ref="pointChart" :site-id="siteId"/> <point-chart ref="pointChart" :site-id="siteId"/>
<point-table ref="pointTable"/>
</div> </div>
</template> </template>
@ -119,9 +123,10 @@ import {getBMSOverView} from '@/api/ems/dzjk'
import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
import intervalUpdate from "@/mixins/ems/intervalUpdate"; import intervalUpdate from "@/mixins/ems/intervalUpdate";
import pointChart from "./../PointChart.vue"; import pointChart from "./../PointChart.vue";
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
export default { export default {
name:'DzjkSbjkBmszl', name:'DzjkSbjkBmszl',
components: {pointChart,}, components: {pointChart,PointTable},
mixins:[getQuerySiteId,intervalUpdate], mixins:[getQuerySiteId,intervalUpdate],
data() { data() {
return { return {
@ -141,6 +146,11 @@ export default {
} }
}, },
methods:{ methods:{
// 查看设备电位表格
pointDetail(row){
const {siteId,deviceId} = row
this.$refs.pointTable.showTable({siteId,deviceId,deviceCategory:'STACK'})
},
showChart(pointName,deviceId,deviceCategory = 'STACK'){ showChart(pointName,deviceId,deviceCategory = 'STACK'){
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory,deviceId}) pointName && this.$refs.pointChart.showChart({pointName,deviceCategory,deviceId})
}, },

View File

@ -11,7 +11,7 @@
}" }"
> >
<div slot="header"> <div slot="header">
<span class="large-title">{{index+1}}#{{ item.deviceName }}</span> <span class="large-title">{{ item.deviceName }}</span>
<div class="info"> <div class="info">
<div> <div>
{{ {{
@ -22,6 +22,9 @@
</div> </div>
<div>数据更新时间{{ item.dataUpdateTime }}</div> <div>数据更新时间{{ item.dataUpdateTime }}</div>
</div> </div>
<div class="alarm">
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(item)">详细</el-button>
</div>
</div> </div>
<el-row> <el-row>
<el-col v-for="(tempDataItem,tempDataIndex) in deviceIdTypeMsg[item.deviceId]" :key="tempDataIndex+'dbTempData'" :span="8"> <el-col v-for="(tempDataItem,tempDataIndex) in deviceIdTypeMsg[item.deviceId]" :key="tempDataIndex+'dbTempData'" :span="8">
@ -33,6 +36,7 @@
</el-card> </el-card>
<el-empty v-show="list.length<=0" :image-size="200"></el-empty> <el-empty v-show="list.length<=0" :image-size="200"></el-empty>
<point-chart ref="pointChart" :site-id="siteId"/> <point-chart ref="pointChart" :site-id="siteId"/>
<point-table ref="pointTable"/>
</div> </div>
</template> </template>
@ -41,10 +45,11 @@ import pointChart from "./../PointChart.vue";
import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
import { getAmmeterDataList } from "@/api/ems/dzjk"; import { getAmmeterDataList } from "@/api/ems/dzjk";
import intervalUpdate from "@/mixins/ems/intervalUpdate"; import intervalUpdate from "@/mixins/ems/intervalUpdate";
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
export default { export default {
name: "DzjkSbjkDb", name: "DzjkSbjkDb",
mixins: [getQuerySiteId,intervalUpdate], mixins: [getQuerySiteId,intervalUpdate],
components:{pointChart}, components:{PointTable, pointChart},
data() { data() {
return { return {
loading: false, loading: false,
@ -140,6 +145,11 @@ export default {
}; };
}, },
methods: { methods: {
// 查看设备电位表格
pointDetail(row){
const {deviceId} = row
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'AMMETER'})
},
showChart(pointName,deviceId){ showChart(pointName,deviceId){
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'AMMETER',deviceId}) pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'AMMETER',deviceId})
}, },

View File

@ -52,13 +52,13 @@
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="曲线图"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="chartDetail(scope.row)" type="text" size="small"> <el-button @click="$emit('pointDetail',scope.row)" type="text" size="small">
展示 详细
</el-button> </el-button>
</template> </template>
</el-table-column> --> </el-table-column>
</el-table> </el-table>
<!-- <el-pagination <!-- <el-pagination
v-show="tableData.length > 0" v-show="tableData.length > 0"

View File

@ -88,6 +88,7 @@
:totalSize="totalSize" :totalSize="totalSize"
:pointIdList="pointIdList" :pointIdList="pointIdList"
@chart="chartDetail" @chart="chartDetail"
@pointDetail="pointDetail"
></component> ></component>
<el-pagination <el-pagination
v-show="tableData.length > 0" v-show="tableData.length > 0"
@ -104,6 +105,7 @@
</el-pagination> </el-pagination>
<chart-detail ref="chartDetail" /> <chart-detail ref="chartDetail" />
<point-chart ref="pointChart" :site-id="siteId" /> <point-chart ref="pointChart" :site-id="siteId" />
<point-table ref="pointTable"/>
</el-card> </el-card>
</template> </template>
@ -119,10 +121,12 @@ import ChartDetail from "./ChartDetail.vue";
import Table from "./Table.vue"; import Table from "./Table.vue";
import List from "./List.vue"; import List from "./List.vue";
import pointChart from "./../PointChart.vue"; import pointChart from "./../PointChart.vue";
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
export default { export default {
name: "DzjkSbjkDtdc", name: "DzjkSbjkDtdc",
mixins: [getQuerySiteId], mixins: [getQuerySiteId],
components: { components: {
PointTable,
BarChart, BarChart,
ChartDetail, ChartDetail,
DtdcTable: Table, DtdcTable: Table,
@ -165,6 +169,11 @@ export default {
}; };
}, },
methods: { methods: {
// 查看设备电位表格
pointDetail(row){
const {deviceId,clusterDeviceId} = row
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'BATTERY',parentId:clusterDeviceId})
},
changeMenu(menu) { changeMenu(menu) {
const { activeBtn } = this; const { activeBtn } = this;
activeBtn !== menu && (this.activeBtn = menu); activeBtn !== menu && (this.activeBtn = menu);

View File

@ -18,7 +18,7 @@
> >
<div slot="header"> <div slot="header">
<span class="large-title" <span class="large-title"
>{{ pcsIndex + 1 }}#{{ pcsItem.deviceName }}</span >{{ pcsItem.deviceName }}</span
> >
<div class="info"> <div class="info">
<div> <div>
@ -31,6 +31,7 @@
<div>数据更新时间{{ pcsItem.dataUpdateTime }}</div> <div>数据更新时间{{ pcsItem.dataUpdateTime }}</div>
</div> </div>
<div class="alarm"> <div class="alarm">
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(pcsItem)">详细</el-button>
<el-badge :value="pcsItem.alarmNum || 0" class="item"> <el-badge :value="pcsItem.alarmNum || 0" class="item">
<i <i
class="el-icon-message-solid" class="el-icon-message-solid"
@ -170,18 +171,20 @@
</div> </div>
<el-empty v-show="pcsList.length <= 0" :image-size="200"></el-empty> <el-empty v-show="pcsList.length <= 0" :image-size="200"></el-empty>
<point-chart ref="pointChart" :site-id="siteId" /> <point-chart ref="pointChart" :site-id="siteId" />
<point-table ref="pointTable"/>
</div> </div>
</template> </template>
<script> <script>
import pointChart from "./../PointChart.vue"; import pointChart from "./../PointChart.vue";
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
import RealTimeBaseInfo from "./../RealTimeBaseInfo.vue"; import RealTimeBaseInfo from "./../RealTimeBaseInfo.vue";
import getQuerySiteId from "@/mixins/ems/getQuerySiteId"; import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
import { getRunningHeadInfo, getPcsDetailInfo } from "@/api/ems/dzjk"; import { getRunningHeadInfo, getPcsDetailInfo } from "@/api/ems/dzjk";
import intervalUpdate from "@/mixins/ems/intervalUpdate"; import intervalUpdate from "@/mixins/ems/intervalUpdate";
export default { export default {
name: "DzjkSbjkPcs", name: "DzjkSbjkPcs",
components: { RealTimeBaseInfo, pointChart }, components: { RealTimeBaseInfo, pointChart ,PointTable},
mixins: [getQuerySiteId, intervalUpdate], mixins: [getQuerySiteId, intervalUpdate],
data() { data() {
return { return {
@ -269,6 +272,11 @@ export default {
}; };
}, },
methods: { methods: {
// 查看设备电位表格
pointDetail(row){
const {siteId,deviceId} = row
this.$refs.pointTable.showTable({siteId,deviceId,deviceCategory:'PCS'})
},
showChart(pointName, deviceId,isBranch=false) { showChart(pointName, deviceId,isBranch=false) {
pointName && pointName &&
this.$refs.pointChart.showChart({ pointName,deviceCategory:isBranch ? 'BRANCH' : 'PCS', deviceId }); this.$refs.pointChart.showChart({ pointName,deviceCategory:isBranch ? 'BRANCH' : 'PCS', deviceId });

View File

@ -35,12 +35,13 @@ export default {
this.chart = null; this.chart = null;
}, },
methods: { methods: {
init(siteId) { init(siteId, timeRange) {
this.chart.showLoading(); this.chart.showLoading();
const x = []; const x = [];
const data1 = [], const data1 = [],
data2 = []; data2 = [];
storagePower(siteId) const [startTime='', endTime=''] = timeRange;
storagePower(siteId,startTime,endTime)
.then((response) => { .then((response) => {
this.setOption(response?.data?.pcsPowerList || []); this.setOption(response?.data?.pcsPowerList || []);
}) })

View File

@ -34,9 +34,10 @@ export default {
this.chart = null; this.chart = null;
}, },
methods: { methods: {
init(siteId) { init(siteId,timeRange) {
this.chart.showLoading(); this.chart.showLoading();
batteryAveSoc(siteId) const [startTime='', endTime=''] = timeRange;
batteryAveSoc(siteId,startTime,endTime)
.then((response) => { .then((response) => {
this.setOption(response?.data?.batteryAveSOCList || []); this.setOption(response?.data?.batteryAveSOCList || []);
}) })

View File

@ -35,12 +35,13 @@ export default {
this.chart = null; this.chart = null;
}, },
methods: { methods: {
init(siteId) { init(siteId,timeRange) {
this.chart.showLoading(); this.chart.showLoading();
const x = []; const x = [];
const data1 = [], const data1 = [],
data2 = []; data2 = [];
batteryAveTemp(siteId) const [startTime='', endTime=''] = timeRange;
batteryAveTemp(siteId,startTime,endTime)
.then((response) => { .then((response) => {
this.setOption(response?.data?.batteryAveTempList || []); this.setOption(response?.data?.batteryAveTempList || []);
}) })

View File

@ -35,11 +35,12 @@ export default {
this.chart = null; this.chart = null;
}, },
methods: { methods: {
init(siteId) { init(siteId,timeRange) {
this.chart.showLoading(); this.chart.showLoading();
const x = []; const x = [];
const data = []; const data = [];
pcsMaxTemp(siteId) const [startTime='', endTime=''] = timeRange;
pcsMaxTemp(siteId,startTime,endTime)
.then((response) => { .then((response) => {
this.setOption(response?.data?.pcsMaxTempList || []); this.setOption(response?.data?.pcsMaxTempList || []);
}) })

View File

@ -3,6 +3,8 @@
<div class="ssyx-ems-dashboard-editor-container"> <div class="ssyx-ems-dashboard-editor-container">
<!-- 6个方块--> <!-- 6个方块-->
<real-time-base-info :data="runningHeadData"/> <real-time-base-info :data="runningHeadData"/>
<!-- 时间选择 -->
<date-range-select ref="dateRangeSelect" @updateDate="updateDate" style="margin-top:20px;"/>
<!-- echart图表--> <!-- echart图表-->
<el-row :gutter="32" style="background:#fff;margin:30px 0;"> <el-row :gutter="32" style="background:#fff;margin:30px 0;">
<el-col :xs="24" :sm="12" :lg="12"> <el-col :xs="24" :sm="12" :lg="12">
@ -27,6 +29,7 @@
</style> </style>
<script> <script>
import DateRangeSelect from '@/components/Ems/DateRangeSelect/index.vue'
import RealTimeBaseInfo from "./../RealTimeBaseInfo.vue"; import RealTimeBaseInfo from "./../RealTimeBaseInfo.vue";
import CnglqxChart from './CnglqxChart.vue' import CnglqxChart from './CnglqxChart.vue'
import PocpjwdChart from './PocpjwdChart.vue' import PocpjwdChart from './PocpjwdChart.vue'
@ -38,11 +41,13 @@ import intervalUpdate from "@/mixins/ems/intervalUpdate";
export default { export default {
name:'DzjkSbjkSsyx', name:'DzjkSbjkSsyx',
components:{RealTimeBaseInfo,CnglqxChart,PocpjwdChart,DcpjwdChart,DcpjsocChart}, components:{RealTimeBaseInfo,CnglqxChart,PocpjwdChart,DcpjwdChart,DcpjsocChart,DateRangeSelect},
mixins:[getQuerySiteId,intervalUpdate], mixins:[getQuerySiteId,intervalUpdate],
data() { data() {
return { return {
runningHeadData:{},//运行信息 runningHeadData:{},//运行信息
timeRange:[],
isInit:true
} }
}, },
methods:{ methods:{
@ -52,17 +57,27 @@ export default {
this.runningHeadData = response?.data || {} this.runningHeadData = response?.data || {}
}) })
}, },
// 更新时间范围 重置图表
updateDate(data){
this.timeRange=data
!this.isInit && this.updateChart()
this.isInit = false
},
updateChart(){
this.$refs.cnglqx.init(this.siteId,this.timeRange||[])
this.$refs.pocpjwd.init(this.siteId,this.timeRange||[])
this.$refs.dcpjsoc.init(this.siteId,this.timeRange||[])
this.$refs.dcpjwd.init(this.siteId,this.timeRange||[])
this.updateInterval(this.updateData)
},
updateData(){ updateData(){
this.getRunningHeadData() this.getRunningHeadData()
this.$refs.cnglqx.init(this.siteId) this.updateChart()
this.$refs.pocpjwd.init(this.siteId)
this.$refs.dcpjsoc.init(this.siteId)
this.$refs.dcpjwd.init(this.siteId)
}, },
init(){ init(){
this.$refs.dateRangeSelect.init(true)
this.$nextTick(()=>{ this.$nextTick(()=>{
this.updateData() this.updateData()
this.updateInterval(this.updateData)
}) })
} }
} }

View File

@ -7,7 +7,10 @@
class="sbjk-card-container running-card-container" class="sbjk-card-container running-card-container"
shadow="always"> shadow="always">
<div slot="header"> <div slot="header">
<span class="large-title">{{index+1}}#{{item.deviceName}}</span> <span class="large-title">{{item.deviceName}}</span>
<div class="alarm">
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(item)">详细</el-button>
</div>
</div> </div>
<el-row> <el-row>
<el-col v-for="(tempDataItem,tempDataIndex) in tempData" :key="tempDataIndex+'ylTempData'" :span="8"> <el-col v-for="(tempDataItem,tempDataIndex) in tempData" :key="tempDataIndex+'ylTempData'" :span="8">
@ -19,6 +22,7 @@
</el-card> </el-card>
<el-empty v-show="list.length<=0" :image-size="200"></el-empty> <el-empty v-show="list.length<=0" :image-size="200"></el-empty>
<point-chart ref="pointChart" :site-id="siteId"/> <point-chart ref="pointChart" :site-id="siteId"/>
<point-table ref="pointTable"/>
</div> </div>
</template> </template>
@ -28,10 +32,11 @@ import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
import {getCoolingDataList} from '@/api/ems/dzjk' import {getCoolingDataList} from '@/api/ems/dzjk'
import intervalUpdate from "@/mixins/ems/intervalUpdate"; import intervalUpdate from "@/mixins/ems/intervalUpdate";
import pointChart from "./../PointChart.vue"; import pointChart from "./../PointChart.vue";
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
export default { export default {
name:'DzjkSbjkYl', name:'DzjkSbjkYl',
mixins:[getQuerySiteId,intervalUpdate], mixins:[getQuerySiteId,intervalUpdate],
components:{pointChart}, components:{pointChart,PointTable},
data() { data() {
return { return {
loading:false, loading:false,
@ -48,6 +53,11 @@ export default {
} }
}, },
methods:{ methods:{
// 查看设备电位表格
pointDetail(row){
const {deviceId} = row
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'COOLING'})
},
showChart(pointName,deviceId){ showChart(pointName,deviceId){
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'COOLING',deviceId}) pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'COOLING',deviceId})
}, },

View File

@ -77,12 +77,15 @@
@sort-change="handleSortChange" @sort-change="handleSortChange"
> >
<el-table-column label="数据点位" prop="dataPoint"> </el-table-column> <el-table-column label="数据点位" prop="dataPoint"> </el-table-column>
<el-table-column label="数据点位名称" prop="pointName"></el-table-column>
<el-table-column <el-table-column
label="modbus地址" label="数据点位名称"
> prop="pointName"
></el-table-column>
<el-table-column label="modbus地址">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{`${scope.row.ipAddress || ''} ${scope.row.ipPort || ''}`}}</span> <span>{{
`${scope.row.ipAddress || ""} ${scope.row.ipPort || ""}`
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -92,19 +95,18 @@
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span <span class="pointer" @click="showChart(scope.row)">{{
class="pointer" scope.row.pointValue
@click=" }}</span>
showChart(
scope.row
)
"
>{{ scope.row.pointValue }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单位" prop="dataUnit"></el-table-column> <el-table-column label="单位" prop="dataUnit"></el-table-column>
<el-table-column label="更新时间" min-width="160px" prop="updateTime" sortable="custom"> <el-table-column
label="更新时间"
min-width="160px"
prop="updateTime"
sortable="custom"
>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination
@ -137,7 +139,7 @@ export default {
if (!val) { if (!val) {
this.tableData = []; this.tableData = [];
this.deviceId = ""; this.deviceId = "";
this.parentId=''; this.parentId = "";
this.siteId = ""; this.siteId = "";
this.pageSize = 10; this.pageSize = 10;
this.pageNum = 1; this.pageNum = 1;
@ -149,8 +151,8 @@ export default {
dataPoint: "", //点位名称 dataPoint: "", //点位名称
lower: "", // lower: "", //
upper: "", // upper: "", //
ipAddress:'', ipAddress: "",
ipPort:'' ipPort: "",
}; };
this.loading = false; this.loading = false;
} }
@ -158,8 +160,8 @@ export default {
}, },
computed: { computed: {
isDtdc() { isDtdc() {
return this.deviceCategory === 'BATTERY' return this.deviceCategory === "BATTERY";
} },
}, },
data() { data() {
return { return {
@ -174,12 +176,12 @@ export default {
dataPoint: "", //点位名称 dataPoint: "", //点位名称
lower: "", // lower: "", //
upper: "", // upper: "", //
ipAddress:'', ipAddress: "",
ipPort:'' ipPort: "",
}, },
deviceCategory: "", deviceCategory: "",
deviceId: "", deviceId: "",
parentId:'', parentId: "",
siteId: "", siteId: "",
tableData: [], tableData: [],
pageSize: 10, //分页栏当前每个数据总数 pageSize: 10, //分页栏当前每个数据总数
@ -190,13 +192,24 @@ export default {
methods: { methods: {
showChart({ pointName }) { showChart({ pointName }) {
if (pointName) { if (pointName) {
const {deviceCategory,deviceId}=this const { deviceCategory, deviceId } = this;
if(this.isDtdc) this.$refs.pointChart.showChart({ pointName, deviceCategory, deviceId:this.parentId,child:[deviceId] }); if (this.isDtdc)
else this.$refs.pointChart.showChart({ pointName, deviceCategory, deviceId }); this.$refs.pointChart.showChart({
pointName,
deviceCategory,
deviceId: this.parentId,
child: [deviceId],
});
else
this.$refs.pointChart.showChart({
pointName,
deviceCategory,
deviceId,
});
} }
}, },
handleSortChange(column) { handleSortChange(column) {
this.form.sortData = column.prop this.form.sortData = column.prop;
this.form.sortMethod = column.order === "descending" ? "desc" : "asc"; this.form.sortMethod = column.order === "descending" ? "desc" : "asc";
console.log("切换排序方式", column, this.form); console.log("切换排序方式", column, this.form);
this.getData(); this.getData();
@ -205,11 +218,11 @@ export default {
this.pageNum = 1; this.pageNum = 1;
this.getData(); this.getData();
}, },
showTable({ deviceCategory, siteId, deviceId ,parentId=''}) { showTable({ deviceCategory, siteId, deviceId, parentId = "" }) {
this.deviceCategory = deviceCategory; this.deviceCategory = deviceCategory;
this.siteId = siteId; this.siteId = siteId;
this.deviceId = deviceId; this.deviceId = deviceId;
this.parentId=deviceCategory === 'BATTERY' ? parentId : ''//只有单体电池需要这个值 this.parentId = deviceCategory === "BATTERY" ? parentId : ""; //只有单体电池需要这个值
this.show = true; this.show = true;
this.getData(); this.getData();
}, },
@ -230,7 +243,7 @@ export default {
lower, lower,
upper, upper,
ipAddress, ipAddress,
ipPort ipPort,
}, },
} = this; } = this;
getDevicePointList({ getDevicePointList({
@ -247,7 +260,7 @@ export default {
lower, lower,
upper, upper,
ipAddress, ipAddress,
ipPort ipPort,
}) })
.then((response) => { .then((response) => {
this.tableData = response?.rows || []; this.tableData = response?.rows || [];