合并develop最新代码
This commit is contained in:
@ -90,6 +90,23 @@ export function getCoolingDataList(siteId) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取动环数据
|
||||||
|
export function getDhDataList(siteId) {
|
||||||
|
return request({
|
||||||
|
url: `/ems/siteMonitor/getDhDataList?siteId=${siteId}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取消防数据
|
||||||
|
export function getXfDataList(siteId) {
|
||||||
|
return request({
|
||||||
|
url: `/ems/siteMonitor/getXfDataList?siteId=${siteId}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//获取电表数据
|
//获取电表数据
|
||||||
export function getAmmeterDataList(siteId) {
|
export function getAmmeterDataList(siteId) {
|
||||||
return request({
|
return request({
|
||||||
@ -154,30 +171,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}&startDate=${startTime}&endDate=${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}&startDate=${startTime}&endDate=${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}&startDate=${startTime}&endDate=${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}&startDate=${startTime}&endDate=${endTime}`,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,12 +51,12 @@
|
|||||||
.sbjk-card-container{
|
.sbjk-card-container{
|
||||||
.el-card__header {
|
.el-card__header {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
padding: 10px 14px;
|
padding: 5px 14px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-radius: 5px 5px 0 0;
|
border-radius: 5px 5px 0 0;
|
||||||
.large-title{
|
.large-title{
|
||||||
font-size: 20px;
|
font-size: 18px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
padding: 0 50px 0 11px;
|
padding: 0 50px 0 11px;
|
||||||
@ -78,6 +78,12 @@
|
|||||||
right: 25px;
|
right: 25px;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
transform: translateY(-50%);
|
transform: translateY(-50%);
|
||||||
|
.alarm-icon{
|
||||||
|
font-size: 22px;
|
||||||
|
color: #fff;
|
||||||
|
display: block;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//红色背景颜色标题
|
//红色背景颜色标题
|
||||||
@ -157,6 +163,31 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//电表、液冷公共样式
|
||||||
|
.device-info-row{
|
||||||
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||||
|
border-left: 1px solid #eee;
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
.device-info-col{
|
||||||
|
padding: 10px 0;
|
||||||
|
text-align: center;
|
||||||
|
font-size:12px;
|
||||||
|
color:#666666;
|
||||||
|
line-height: 14px;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
border-right: 1px solid #eee;
|
||||||
|
.left{
|
||||||
|
}
|
||||||
|
.right{
|
||||||
|
display: block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size:16px;
|
||||||
|
line-height: 18px;
|
||||||
|
margin-top:10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//公共表格样式
|
//公共表格样式
|
||||||
.common-table.el-table{
|
.common-table.el-table{
|
||||||
|
|||||||
@ -80,6 +80,20 @@ export const dzjk=[
|
|||||||
name: 'DzjkSbjkYl',
|
name: 'DzjkSbjkYl',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
meta: { title: '液冷',breadcrumb: false,activeMenu: '/dzjk/sbjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'COOLING'},
|
meta: { title: '液冷',breadcrumb: false,activeMenu: '/dzjk/sbjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'COOLING'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'dh',
|
||||||
|
component: () => import('@/views/ems/dzjk/sbjk/dh/index.vue'),
|
||||||
|
name: 'DzjkSbjkDh',
|
||||||
|
hidden: true,
|
||||||
|
meta: { title: '动环',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'DH'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'xf',
|
||||||
|
component: () => import('@/views/ems/dzjk/sbjk/xf/index.vue'),
|
||||||
|
name: 'DzjkSbjkXf',
|
||||||
|
hidden: true,
|
||||||
|
meta: { title: '消防',breadcrumb: false,activeMenu: '/dzjk',activeSecondMenuName:'DzjkSbjk',deviceCategory:'XF'},
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@ -68,6 +68,7 @@ export default {
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.dzjk-ems-content-container{
|
.dzjk-ems-content-container{
|
||||||
margin-top:0;
|
margin-top:0;
|
||||||
|
min-height: 60vh;
|
||||||
}
|
}
|
||||||
.lighting{
|
.lighting{
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@ -8,7 +8,19 @@
|
|||||||
'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="info">
|
||||||
|
<div>数据更新时间:{{ baseInfo.dataUpdateTime || '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="alarm">
|
||||||
|
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(baseInfo,'point')">详细</el-button>
|
||||||
|
<el-badge :value="baseInfo.alarmNum || 0" class="item">
|
||||||
|
<i
|
||||||
|
class="el-icon-message-solid alarm-icon"
|
||||||
|
@click="pointDetail(baseInfo,'alarmPoint')"
|
||||||
|
></i>
|
||||||
|
</el-badge>
|
||||||
|
</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 +92,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 +141,11 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
// 查看设备电位表格
|
||||||
|
pointDetail(row,dataType){
|
||||||
|
const {siteId,deviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId,deviceId,deviceCategory:'CLUSTER'},dataType)
|
||||||
|
},
|
||||||
showChart(pointName,deviceId){
|
showChart(pointName,deviceId){
|
||||||
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'CLUSTER',deviceId})
|
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'CLUSTER',deviceId})
|
||||||
},
|
},
|
||||||
|
|||||||
@ -8,7 +8,19 @@
|
|||||||
}" 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="info">
|
||||||
|
<div>数据更新时间:{{ baseInfo.dataUpdateTime || '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="alarm">
|
||||||
|
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(baseInfo,'point')">详细</el-button>
|
||||||
|
<el-badge :value="baseInfo.alarmNum || 0" class="item">
|
||||||
|
<i
|
||||||
|
class="el-icon-message-solid alarm-icon"
|
||||||
|
@click="pointDetail(baseInfo,'alarmPoint')"
|
||||||
|
></i>
|
||||||
|
</el-badge>
|
||||||
|
</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 +123,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 +132,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 +155,11 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
// 查看设备电位表格
|
||||||
|
pointDetail(row,dataType){
|
||||||
|
const {siteId,deviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId,deviceId,deviceCategory:'STACK'},dataType)
|
||||||
|
},
|
||||||
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})
|
||||||
},
|
},
|
||||||
|
|||||||
@ -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,17 +22,27 @@
|
|||||||
</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,'point')">详细</el-button>
|
||||||
|
<el-badge :value="item.alarmNum || 0" class="item">
|
||||||
|
<i
|
||||||
|
class="el-icon-message-solid alarm-icon"
|
||||||
|
@click="pointDetail(item,'alarmPoint')"
|
||||||
|
></i>
|
||||||
|
</el-badge>
|
||||||
</div>
|
</div>
|
||||||
<el-row>
|
</div>
|
||||||
<el-col v-for="(tempDataItem,tempDataIndex) in deviceIdTypeMsg[item.deviceId]" :key="tempDataIndex+'dbTempData'" :span="8">
|
<el-row class="device-info-row">
|
||||||
|
<el-col v-for="(tempDataItem,tempDataIndex) in deviceIdTypeMsg[item.deviceId]" :key="tempDataIndex+'dbTempData'" :span="8" class="device-info-col">
|
||||||
<span class="pointer" @click="showChart(tempDataItem.pointName,item.deviceId)">
|
<span class="pointer" @click="showChart(tempDataItem.pointName,item.deviceId)">
|
||||||
{{tempDataItem.name}}:{{item[tempDataItem.attr]}}<span v-html="tempDataItem.unit"></span>
|
<span class="left">{{tempDataItem.name}}</span> <span class="right">{{item[tempDataItem.attr]}}<span v-html="tempDataItem.unit"></span></span>
|
||||||
</span>
|
</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</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 +51,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 +151,11 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 查看设备电位表格
|
||||||
|
pointDetail(row,dataType){
|
||||||
|
const {deviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'AMMETER'},dataType)
|
||||||
|
},
|
||||||
showChart(pointName,deviceId){
|
showChart(pointName,deviceId){
|
||||||
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'AMMETER',deviceId})
|
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'AMMETER',deviceId})
|
||||||
},
|
},
|
||||||
@ -167,24 +183,6 @@ export default {
|
|||||||
&.list:not(:last-child){
|
&.list:not(:last-child){
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
.el-row{
|
|
||||||
background-color: #ffffff;
|
|
||||||
border:1px solid #eeeeee;
|
|
||||||
font-size: 14px;
|
|
||||||
line-height: 16px;
|
|
||||||
color: #333333;
|
|
||||||
.el-col{
|
|
||||||
padding:12px 0;
|
|
||||||
text-align: center;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.el-col{
|
|
||||||
border-bottom: 1px solid #eeeeee;
|
|
||||||
}
|
|
||||||
.el-col:not(:nth-child(3n)){
|
|
||||||
border-right: 1px solid #eeeeee;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
109
src/views/ems/dzjk/sbjk/dh/index.vue
Normal file
109
src/views/ems/dzjk/sbjk/dh/index.vue
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<div v-loading="loading">
|
||||||
|
<el-card
|
||||||
|
v-for="(item,index) in list"
|
||||||
|
:key="index+'ylLise'"
|
||||||
|
class="sbjk-card-container running-card-container"
|
||||||
|
shadow="always">
|
||||||
|
<div slot="header">
|
||||||
|
<span class="large-title">{{item.deviceName}}</span>
|
||||||
|
<div class="info">
|
||||||
|
<div>数据更新时间:{{ item.dataUpdateTime || '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="alarm">
|
||||||
|
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(item,'point')">详细</el-button>
|
||||||
|
<el-badge :value="item.alarmNum || 0" class="item">
|
||||||
|
<i
|
||||||
|
class="el-icon-message-solid alarm-icon"
|
||||||
|
@click="pointDetail(item,'alarmPoint')"
|
||||||
|
></i>
|
||||||
|
</el-badge>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-row class="device-info-row">
|
||||||
|
<el-col v-for="(tempDataItem,tempDataIndex) in tempData" :key="tempDataIndex+'hdTempData'" :span="12" class="device-info-col">
|
||||||
|
<span class="pointer" @click="showChart(tempDataItem.title,item.deviceId)">
|
||||||
|
<span class="left">{{tempDataItem.title}}</span> <span class="right">{{item[tempDataItem.attr]}}<span v-html="tempDataItem.unit"></span></span>
|
||||||
|
</span>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
<el-empty v-show="list.length<=0" :image-size="200"></el-empty>
|
||||||
|
<point-chart ref="pointChart" :site-id="siteId"/>
|
||||||
|
<point-table ref="pointTable"/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
|
||||||
|
import {getDhDataList} from '@/api/ems/dzjk'
|
||||||
|
import intervalUpdate from "@/mixins/ems/intervalUpdate";
|
||||||
|
import pointChart from "./../PointChart.vue";
|
||||||
|
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
|
||||||
|
export default {
|
||||||
|
name:'DzjkSbjkDh',
|
||||||
|
mixins:[getQuerySiteId,intervalUpdate],
|
||||||
|
components:{pointChart,PointTable},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading:false,
|
||||||
|
list:[],
|
||||||
|
tempData:[
|
||||||
|
{title:'湿度',attr:'humidity',unit:'℃'},
|
||||||
|
{title:'温度',attr:'temperature',unit:''},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
// 查看设备电位表格
|
||||||
|
pointDetail(row,dataType){
|
||||||
|
const {deviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'DH'},dataType)
|
||||||
|
},
|
||||||
|
showChart(pointName,deviceId){
|
||||||
|
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'DH',deviceId})
|
||||||
|
},
|
||||||
|
updateData(){
|
||||||
|
this.loading = true
|
||||||
|
getDhDataList(this.siteId).then(response => {
|
||||||
|
this.list = JSON.parse(JSON.stringify(response?.data || []));
|
||||||
|
}).finally(() => {this.loading = false})
|
||||||
|
},
|
||||||
|
init(){
|
||||||
|
this.updateData()
|
||||||
|
this.updateInterval(this.updateData)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.sbjk-card-container{
|
||||||
|
&:not(:last-child){
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
.el-row{
|
||||||
|
background-color: #ffffff;
|
||||||
|
border:1px solid #eeeeee;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 16px;
|
||||||
|
color: #333333;
|
||||||
|
.el-col{
|
||||||
|
padding:12px 0;
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.el-col{
|
||||||
|
border-bottom: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
|
.el-col:not(:nth-child(3n)){
|
||||||
|
border-right: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -52,13 +52,16 @@
|
|||||||
</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,'point')" type="text" size="small">
|
||||||
展示
|
详细
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="$emit('pointDetail',scope.row,'alarmPoint')" 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"
|
||||||
@ -115,7 +118,6 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
//查看表格行图表
|
//查看表格行图表
|
||||||
chartDetail(row, dataType = "") {
|
chartDetail(row, dataType = "") {
|
||||||
const { clusterDeviceId, deviceId } = row;
|
|
||||||
this.$emit("chart", { ...row, dataType });
|
this.$emit("chart", { ...row, dataType });
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -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,dataType){
|
||||||
|
const {deviceId,clusterDeviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'BATTERY',parentId:clusterDeviceId},dataType)
|
||||||
|
},
|
||||||
changeMenu(menu) {
|
changeMenu(menu) {
|
||||||
const { activeBtn } = this;
|
const { activeBtn } = this;
|
||||||
activeBtn !== menu && (this.activeBtn = menu);
|
activeBtn !== menu && (this.activeBtn = menu);
|
||||||
|
|||||||
@ -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,10 +31,11 @@
|
|||||||
<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,'point')">详细</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 alarm-icon"
|
||||||
style="font-size: 26px; color: #fff; display: block"
|
@click="pointDetail(pcsItem,'alarmPoint')"
|
||||||
></i>
|
></i>
|
||||||
</el-badge>
|
</el-badge>
|
||||||
</div>
|
</div>
|
||||||
@ -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,dataType){
|
||||||
|
const {deviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'PCS'},dataType)
|
||||||
|
},
|
||||||
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 });
|
||||||
|
|||||||
@ -14,7 +14,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
import resize from "@/mixins/ems/resize";
|
import resize from "@/mixins/ems/resize";
|
||||||
import { formatDate } from "@/filters/ems";
|
|
||||||
import { storagePower } from "@/api/ems/dzjk";
|
import { storagePower } from "@/api/ems/dzjk";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -35,12 +34,10 @@ export default {
|
|||||||
this.chart = null;
|
this.chart = null;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init(siteId) {
|
init(siteId, timeRange) {
|
||||||
this.chart.showLoading();
|
this.chart.showLoading();
|
||||||
const x = [];
|
const [startTime='', endTime=''] = timeRange;
|
||||||
const data1 = [],
|
storagePower(siteId,startTime,endTime)
|
||||||
data2 = [];
|
|
||||||
storagePower(siteId)
|
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.setOption(response?.data?.pcsPowerList || []);
|
this.setOption(response?.data?.pcsPowerList || []);
|
||||||
})
|
})
|
||||||
@ -49,7 +46,6 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
setOption(data) {
|
setOption(data) {
|
||||||
// data=[{deviceId:'pcs1',energyStoragePowList:[{createDate,deviceId,pcsTotalActPower,pcsTotalReactivePower}]}]
|
|
||||||
let xdata = [],
|
let xdata = [],
|
||||||
series = [];
|
series = [];
|
||||||
data.forEach((element, index) => {
|
data.forEach((element, index) => {
|
||||||
@ -64,8 +60,13 @@ export default {
|
|||||||
// color:'#FFBD00'
|
// color:'#FFBD00'
|
||||||
},
|
},
|
||||||
data: (element.energyStoragePowList || []).map(
|
data: (element.energyStoragePowList || []).map(
|
||||||
(i) => i.pcsTotalActPower
|
(i) => {
|
||||||
),
|
return {
|
||||||
|
value:i.pcsTotalActPower,
|
||||||
|
year:i.dateDay || ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "line",
|
type: "line",
|
||||||
@ -74,7 +75,12 @@ export default {
|
|||||||
// color:'#FFBD00'
|
// color:'#FFBD00'
|
||||||
},
|
},
|
||||||
data: (element.energyStoragePowList || []).map(
|
data: (element.energyStoragePowList || []).map(
|
||||||
(i) => i.pcsTotalReactivePower
|
(i) => {
|
||||||
|
return {
|
||||||
|
value: i.pcsTotalReactivePower,
|
||||||
|
year:i.dateDay || ''
|
||||||
|
}
|
||||||
|
}
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -93,11 +99,24 @@ export default {
|
|||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
|
show:true,
|
||||||
trigger: "axis",
|
trigger: "axis",
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
// 坐标轴指示器,坐标轴触发有效
|
// 坐标轴指示器,坐标轴触发有效
|
||||||
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
||||||
},
|
},
|
||||||
|
formatter :(params)=>{
|
||||||
|
if(params.length <= 0) return
|
||||||
|
let result = (params[0].data.year || '')+' '+ params[0].name + '<div>'
|
||||||
|
params.forEach(item=>{
|
||||||
|
const {color,seriesName,value} = item
|
||||||
|
result += `<div style="position: relative;padding-left:20px;line-height: 20px;">
|
||||||
|
<div style="position: absolute;top:50%;left:0;width:12px;height:12px;border-radius:100%;background: ${color};transform: translateY(-50%)"></div>
|
||||||
|
<span>${seriesName}</span><span style="margin-left:20px;font-weight: 700">${value}</span></div>`
|
||||||
|
})
|
||||||
|
result+='</div>'
|
||||||
|
return result
|
||||||
|
}
|
||||||
},
|
},
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
|
|||||||
@ -14,7 +14,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
import resize from "@/mixins/ems/resize";
|
import resize from "@/mixins/ems/resize";
|
||||||
import { formatDate } from "@/filters/ems";
|
|
||||||
import { batteryAveSoc } from "@/api/ems/dzjk";
|
import { batteryAveSoc } from "@/api/ems/dzjk";
|
||||||
export default {
|
export default {
|
||||||
mixins: [resize],
|
mixins: [resize],
|
||||||
@ -34,9 +33,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 || []);
|
||||||
})
|
})
|
||||||
@ -49,7 +49,10 @@ export default {
|
|||||||
ydata = [];
|
ydata = [];
|
||||||
data.forEach((element) => {
|
data.forEach((element) => {
|
||||||
xdata.push(element.createDate);
|
xdata.push(element.createDate);
|
||||||
ydata.push(element.batterySOC);
|
ydata.push({
|
||||||
|
value:element.batterySOC,
|
||||||
|
year:element.dateDay,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
xdata = this.chart.setOption({
|
xdata = this.chart.setOption({
|
||||||
legend: {
|
legend: {
|
||||||
@ -65,11 +68,24 @@ export default {
|
|||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
|
show:true,
|
||||||
trigger: "axis",
|
trigger: "axis",
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
// 坐标轴指示器,坐标轴触发有效
|
// 坐标轴指示器,坐标轴触发有效
|
||||||
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
||||||
},
|
},
|
||||||
|
formatter :(params)=>{
|
||||||
|
if(params.length <= 0) return
|
||||||
|
let result = (params[0].data.year || '')+' '+params[0].name + '<div>'
|
||||||
|
params.forEach(item=>{
|
||||||
|
const {color,seriesName,value} = item
|
||||||
|
result += `<div style="position: relative;padding-left:20px;line-height: 20px;">
|
||||||
|
<div style="position: absolute;top:50%;left:0;width:12px;height:12px;border-radius:100%;background: ${color};transform: translateY(-50%)"></div>
|
||||||
|
<span>${seriesName}</span><span style="margin-left:20px;font-weight: 700">${value}</span></div>`
|
||||||
|
})
|
||||||
|
result+='</div>'
|
||||||
|
return result
|
||||||
|
}
|
||||||
},
|
},
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
|
|||||||
@ -14,7 +14,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
import resize from "@/mixins/ems/resize";
|
import resize from "@/mixins/ems/resize";
|
||||||
import { formatDate } from "@/filters/ems";
|
|
||||||
import { batteryAveTemp } from "@/api/ems/dzjk";
|
import { batteryAveTemp } from "@/api/ems/dzjk";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -35,12 +34,10 @@ export default {
|
|||||||
this.chart = null;
|
this.chart = null;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init(siteId) {
|
init(siteId,timeRange) {
|
||||||
this.chart.showLoading();
|
this.chart.showLoading();
|
||||||
const x = [];
|
const [startTime='', endTime=''] = timeRange;
|
||||||
const data1 = [],
|
batteryAveTemp(siteId,startTime,endTime)
|
||||||
data2 = [];
|
|
||||||
batteryAveTemp(siteId)
|
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.setOption(response?.data?.batteryAveTempList || []);
|
this.setOption(response?.data?.batteryAveTempList || []);
|
||||||
})
|
})
|
||||||
@ -53,7 +50,12 @@ export default {
|
|||||||
ydata = [];
|
ydata = [];
|
||||||
data.forEach((element) => {
|
data.forEach((element) => {
|
||||||
xdata.push(element.createDate);
|
xdata.push(element.createDate);
|
||||||
ydata.push(element.batteryTemp);
|
ydata.push(
|
||||||
|
{
|
||||||
|
value: element.batteryTemp,
|
||||||
|
year: element.dateDay
|
||||||
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
xdata = this.chart.setOption({
|
xdata = this.chart.setOption({
|
||||||
legend: {
|
legend: {
|
||||||
@ -69,11 +71,24 @@ export default {
|
|||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
|
show:true,
|
||||||
trigger: "axis",
|
trigger: "axis",
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
// 坐标轴指示器,坐标轴触发有效
|
// 坐标轴指示器,坐标轴触发有效
|
||||||
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
||||||
},
|
},
|
||||||
|
formatter :(params)=>{
|
||||||
|
if(params.length <= 0) return
|
||||||
|
let result = (params[0].data.year || '')+' '+params[0].name + '<div>'
|
||||||
|
params.forEach(item=>{
|
||||||
|
const {color,seriesName,value} = item
|
||||||
|
result += `<div style="position: relative;padding-left:20px;line-height: 20px;">
|
||||||
|
<div style="position: absolute;top:50%;left:0;width:12px;height:12px;border-radius:100%;background: ${color};transform: translateY(-50%)"></div>
|
||||||
|
<span>${seriesName}</span><span style="margin-left:20px;font-weight: 700">${value}</span></div>`
|
||||||
|
})
|
||||||
|
result+='</div>'
|
||||||
|
return result
|
||||||
|
}
|
||||||
},
|
},
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
|
|||||||
@ -14,7 +14,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
import resize from "@/mixins/ems/resize";
|
import resize from "@/mixins/ems/resize";
|
||||||
import { formatDate } from "@/filters/ems";
|
|
||||||
import { pcsMaxTemp } from "@/api/ems/dzjk";
|
import { pcsMaxTemp } from "@/api/ems/dzjk";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -35,11 +34,10 @@ export default {
|
|||||||
this.chart = null;
|
this.chart = null;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init(siteId) {
|
init(siteId,timeRange) {
|
||||||
this.chart.showLoading();
|
this.chart.showLoading();
|
||||||
const x = [];
|
const [startTime='', endTime=''] = timeRange;
|
||||||
const data = [];
|
pcsMaxTemp(siteId,startTime,endTime)
|
||||||
pcsMaxTemp(siteId)
|
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
this.setOption(response?.data?.pcsMaxTempList || []);
|
this.setOption(response?.data?.pcsMaxTempList || []);
|
||||||
})
|
})
|
||||||
@ -60,7 +58,12 @@ export default {
|
|||||||
areaStyle: {
|
areaStyle: {
|
||||||
// color:'#FFBD00'
|
// color:'#FFBD00'
|
||||||
},
|
},
|
||||||
data: (element.maxTempVoList || []).map((i) => i.temp),
|
data: (element.maxTempVoList || []).map((i) => {
|
||||||
|
return {
|
||||||
|
value: i.temp,
|
||||||
|
year: i.dateDay
|
||||||
|
}
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.chart.setOption({
|
this.chart.setOption({
|
||||||
@ -77,11 +80,24 @@ export default {
|
|||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
|
show:true,
|
||||||
trigger: "axis",
|
trigger: "axis",
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
// 坐标轴指示器,坐标轴触发有效
|
// 坐标轴指示器,坐标轴触发有效
|
||||||
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
|
||||||
},
|
},
|
||||||
|
formatter :(params)=>{
|
||||||
|
if(params.length <= 0) return
|
||||||
|
let result = (params[0].data.year || '')+' '+params[0].name + '<div>'
|
||||||
|
params.forEach(item=>{
|
||||||
|
const {color,seriesName,value} = item
|
||||||
|
result += `<div style="position: relative;padding-left:20px;line-height: 20px;">
|
||||||
|
<div style="position: absolute;top:50%;left:0;width:12px;height:12px;border-radius:100%;background: ${color};transform: translateY(-50%)"></div>
|
||||||
|
<span>${seriesName}</span><span style="margin-left:20px;font-weight: 700">${value}</span></div>`
|
||||||
|
})
|
||||||
|
result+='</div>'
|
||||||
|
return result
|
||||||
|
}
|
||||||
},
|
},
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
|
|||||||
@ -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)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
122
src/views/ems/dzjk/sbjk/xf/index.vue
Normal file
122
src/views/ems/dzjk/sbjk/xf/index.vue
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<div v-loading="loading">
|
||||||
|
<el-card
|
||||||
|
v-for="(item,index) in list"
|
||||||
|
:key="index+'ylLise'"
|
||||||
|
class="sbjk-card-container running-card-container"
|
||||||
|
:class="{
|
||||||
|
'warning-card-container':item.emsCommunicationStatus && item.emsCommunicationStatus !== '0',
|
||||||
|
'running-card-container':item.emsCommunicationStatus === '0'
|
||||||
|
}"
|
||||||
|
shadow="always">
|
||||||
|
<div slot="header">
|
||||||
|
<span class="large-title">{{item.deviceName}}</span>
|
||||||
|
<div class="info">
|
||||||
|
<div>
|
||||||
|
{{
|
||||||
|
$store.state.ems.communicationStatusOptions[
|
||||||
|
item.emsCommunicationStatus
|
||||||
|
]
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div>数据更新时间:{{ item.dataUpdateTime || '-'}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="alarm">
|
||||||
|
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(item,'point')">详细</el-button>
|
||||||
|
<el-badge :value="item.alarmNum || 0" class="item">
|
||||||
|
<i
|
||||||
|
class="el-icon-message-solid alarm-icon"
|
||||||
|
@click="pointDetail(item,'alarmPoint')"
|
||||||
|
></i>
|
||||||
|
</el-badge>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-row class="device-info-row">
|
||||||
|
<el-col v-for="(tempDataItem,tempDataIndex) in tempData" :key="tempDataIndex+'hdTempData'" :span="12" class="device-info-col">
|
||||||
|
<span class="pointer" @click="showChart(tempDataItem.title,item.deviceId)">
|
||||||
|
<span class="left">{{tempDataItem.title}}</span> <span class="right">{{item[tempDataItem.attr] || ''}}<span v-html="tempDataItem.unit"></span></span>
|
||||||
|
</span>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
<el-empty v-show="list.length<=0" :image-size="200"></el-empty>
|
||||||
|
<point-chart ref="pointChart" :site-id="siteId"/>
|
||||||
|
<point-table ref="pointTable"/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
|
||||||
|
import {getXfDataList} from '@/api/ems/dzjk'
|
||||||
|
import intervalUpdate from "@/mixins/ems/intervalUpdate";
|
||||||
|
import pointChart from "./../PointChart.vue";
|
||||||
|
import PointTable from "@/views/ems/site/sblb/PointTable.vue";
|
||||||
|
export default {
|
||||||
|
name:'DzjkSbjkXf',
|
||||||
|
mixins:[getQuerySiteId,intervalUpdate],
|
||||||
|
components:{pointChart,PointTable},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading:false,
|
||||||
|
list:[],
|
||||||
|
tempData:[
|
||||||
|
{title:'主电源备用电池状态',attr:'dczt',unit:''},
|
||||||
|
{title:'手自动状态延时状态',attr:'yszt',unit:''},
|
||||||
|
{title:'启动喷洒气体喷洒状态',attr:'pszt',unit:''},
|
||||||
|
{title:'压力开关状态电磁阀状态',attr:'dcfzt',unit:''},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
// 查看设备电位表格
|
||||||
|
pointDetail(row,dataType){
|
||||||
|
const {deviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'XF'},dataType)
|
||||||
|
},
|
||||||
|
showChart(pointName,deviceId){
|
||||||
|
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'XF',deviceId})
|
||||||
|
},
|
||||||
|
updateData(){
|
||||||
|
this.loading = true
|
||||||
|
getXfDataList(this.siteId).then(response => {
|
||||||
|
this.list = JSON.parse(JSON.stringify(response?.data || []));
|
||||||
|
}).finally(() => {this.loading = false})
|
||||||
|
},
|
||||||
|
init(){
|
||||||
|
this.updateData()
|
||||||
|
this.updateInterval(this.updateData)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.sbjk-card-container{
|
||||||
|
&:not(:last-child){
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
.el-row{
|
||||||
|
background-color: #ffffff;
|
||||||
|
border:1px solid #eeeeee;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 16px;
|
||||||
|
color: #333333;
|
||||||
|
.el-col{
|
||||||
|
padding:12px 0;
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.el-col{
|
||||||
|
border-bottom: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
|
.el-col:not(:nth-child(3n)){
|
||||||
|
border-right: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -7,18 +7,31 @@
|
|||||||
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="info">
|
||||||
|
<div>数据更新时间:{{ item.dataUpdateTime || '-'}}</div>
|
||||||
</div>
|
</div>
|
||||||
<el-row>
|
<div class="alarm">
|
||||||
<el-col v-for="(tempDataItem,tempDataIndex) in tempData" :key="tempDataIndex+'ylTempData'" :span="8">
|
<el-button type="primary" size="small" style="margin-right:20px;" @click="pointDetail(item,'point')">详细</el-button>
|
||||||
|
<el-badge :value="item.alarmNum || 0" class="item">
|
||||||
|
<i
|
||||||
|
class="el-icon-message-solid alarm-icon"
|
||||||
|
@click="pointDetail(item,'alarmPoint')"
|
||||||
|
></i>
|
||||||
|
</el-badge>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-row class="device-info-row">
|
||||||
|
<el-col v-for="(tempDataItem,tempDataIndex) in tempData" :key="tempDataIndex+'ylTempData'" :span="8" class="device-info-col">
|
||||||
<span class="pointer" @click="showChart(tempDataItem.title,item.deviceId)">
|
<span class="pointer" @click="showChart(tempDataItem.title,item.deviceId)">
|
||||||
{{tempDataItem.title}}:{{item[tempDataItem.attr]}}<span v-html="tempDataItem.unit"></span>
|
<span class="left">{{tempDataItem.title}}</span> <span class="right">{{item[tempDataItem.attr]}}<span v-html="tempDataItem.unit"></span></span>
|
||||||
</span>
|
</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</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 +41,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 +62,11 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
|
// 查看设备电位表格
|
||||||
|
pointDetail(row,dataType){
|
||||||
|
const {deviceId} = row
|
||||||
|
this.$refs.pointTable.showTable({siteId:this.siteId,deviceId,deviceCategory:'COOLING'},dataType)
|
||||||
|
},
|
||||||
showChart(pointName,deviceId){
|
showChart(pointName,deviceId){
|
||||||
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'COOLING',deviceId})
|
pointName && this.$refs.pointChart.showChart({pointName,deviceCategory:'COOLING',deviceId})
|
||||||
},
|
},
|
||||||
@ -73,23 +92,5 @@ export default {
|
|||||||
&:not(:last-child){
|
&:not(:last-child){
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
.el-row{
|
|
||||||
background-color: #ffffff;
|
|
||||||
border:1px solid #eeeeee;
|
|
||||||
font-size: 14px;
|
|
||||||
line-height: 16px;
|
|
||||||
color: #333333;
|
|
||||||
.el-col{
|
|
||||||
padding:12px 0;
|
|
||||||
text-align: center;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.el-col{
|
|
||||||
border-bottom: 1px solid #eeeeee;
|
|
||||||
}
|
|
||||||
.el-col:not(:nth-child(3n)){
|
|
||||||
border-right: 1px solid #eeeeee;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
204
src/views/ems/dzjk/tjbb/sybb/index.vue
Normal file
204
src/views/ems/dzjk/tjbb/sybb/index.vue
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<div style="width:100%" v-loading="loading">
|
||||||
|
<!-- 搜索栏-->
|
||||||
|
<el-form :inline="true" class="select-container">
|
||||||
|
<el-form-item label="时间选择">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRange"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
:clearable="false"
|
||||||
|
:picker-options="pickerOptions"
|
||||||
|
:default-value="defaultDateRange"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="onSearch" native-type="button">搜索</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button @click="onReset" native-type="button">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<!--表格-->
|
||||||
|
<el-table
|
||||||
|
class="common-table"
|
||||||
|
:data="tableData"
|
||||||
|
stripe
|
||||||
|
style="width: 100%;margin-top:25px;">
|
||||||
|
<!-- 汇总列-->
|
||||||
|
<el-table-column label="汇总">
|
||||||
|
<el-table-column
|
||||||
|
prop="dataTime"
|
||||||
|
label="日期"
|
||||||
|
width="120">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table-column>
|
||||||
|
<!--充电量列-->
|
||||||
|
<el-table-column label="充电价格" align="center">
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="activePeakKwh"
|
||||||
|
label="尖">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="activeHighKwh"
|
||||||
|
label="峰">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="activeFlatKwh"
|
||||||
|
label="平">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="activeValleyKwh"
|
||||||
|
label="谷">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="activeTotalKwh"
|
||||||
|
label="总">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table-column>
|
||||||
|
<!--充电量列-->
|
||||||
|
<el-table-column label="放电价格" align="center">
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="reActivePeakKwh"
|
||||||
|
label="尖">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="reActiveHighKwh"
|
||||||
|
label="峰">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="reActiveFlatKwh"
|
||||||
|
label="平">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="reActiveValleyKwh"
|
||||||
|
label="谷">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
prop="reActiveTotalKwh"
|
||||||
|
label="总">
|
||||||
|
</el-table-column>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 效率-->
|
||||||
|
<!-- <el-table-column label="效率(%)" align="center">-->
|
||||||
|
<!-- <el-table-column-->
|
||||||
|
<!-- align="center"-->
|
||||||
|
<!-- prop="effect">-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
<el-pagination
|
||||||
|
v-show="tableData.length>0"
|
||||||
|
background
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:current-page="pageNum"
|
||||||
|
:page-size="pageSize"
|
||||||
|
:page-sizes="[10, 20, 30, 40]"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="totalSize"
|
||||||
|
style="margin-top:15px;text-align: center"
|
||||||
|
>
|
||||||
|
</el-pagination>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import getQuerySiteId from "@/mixins/ems/getQuerySiteId";
|
||||||
|
import { getAmmeterData} from '@/api/ems/dzjk'
|
||||||
|
import {formatDate} from "@/filters/ems";
|
||||||
|
export default {
|
||||||
|
name:'DzjkTjbbSybb',
|
||||||
|
mixins: [getQuerySiteId],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading:false,
|
||||||
|
pickerOptions:{
|
||||||
|
disabledDate(time) {
|
||||||
|
return time.getTime() > Date.now();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
defaultDateRange:[],//默认展示的时间
|
||||||
|
dateRange:[],
|
||||||
|
tableData:[],
|
||||||
|
pageSize:10,//分页栏当前每个数据总数
|
||||||
|
pageNum:1,//分页栏当前页数
|
||||||
|
totalSize:0,//table表格数据总数
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
// 搜索
|
||||||
|
onSearch(){
|
||||||
|
this.pageNum =1//每次搜索从1开始搜索
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
// 重置
|
||||||
|
onReset(){
|
||||||
|
this.dateRange=this.defaultDateRange
|
||||||
|
this.pageNum =1//每次搜索从1开始搜索
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
// 分页
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.pageSize = val;
|
||||||
|
this.$nextTick(()=>{
|
||||||
|
this.getData()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.pageNum = val
|
||||||
|
this.$nextTick(()=>{
|
||||||
|
this.getData()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 获取数据
|
||||||
|
getData(){
|
||||||
|
this.loading=true
|
||||||
|
const {siteId,pageNum,pageSize} =this
|
||||||
|
const [startTime='',endTime='']=(this.dateRange || [])
|
||||||
|
getAmmeterData({siteId:siteId,startTime,endTime,pageSize,pageNum}).then(response=>{
|
||||||
|
this.tableData=response?.rows || [];
|
||||||
|
this.totalSize = response?.total || 0
|
||||||
|
}).finally(()=> {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
init(){
|
||||||
|
this.dateRange=[]
|
||||||
|
this.tableData=[]
|
||||||
|
this.totalSize=0
|
||||||
|
this.pageSize=10
|
||||||
|
this.pageNum = 1
|
||||||
|
const now = new Date().getTime();
|
||||||
|
const lastMonth = new Date(now-30 * 24 * 60 * 60 * 1000).getTime();
|
||||||
|
this.defaultDateRange = [formatDate(lastMonth), formatDate(now)];
|
||||||
|
this.dateRange=[formatDate(lastMonth), formatDate(now)];
|
||||||
|
this.getData()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep{
|
||||||
|
.common-table.el-table .el-table__header-wrapper th, .common-table.el-table .el-table__fixed-header-wrapper th{
|
||||||
|
border-bottom: 1px solid #dfe6ec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@ -10,7 +10,7 @@
|
|||||||
destroy-on-close
|
destroy-on-close
|
||||||
lock-scroll
|
lock-scroll
|
||||||
show-close
|
show-close
|
||||||
title="点位清单"
|
:title="dataType === 'point' ? '点位清单' : '报警点位'"
|
||||||
width="950px"
|
width="950px"
|
||||||
>
|
>
|
||||||
<el-form :inline="true" label-width="100px">
|
<el-form :inline="true" label-width="100px">
|
||||||
@ -30,14 +30,15 @@
|
|||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="modbus ip">
|
<!-- <el-form-item label="modbus ip">-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
v-model="form.ipAddress"
|
<!-- v-model="form.ipAddress"-->
|
||||||
clearable
|
<!-- clearable-->
|
||||||
placeholder="请输入ip"
|
<!-- placeholder="请输入ip"-->
|
||||||
style="width: 150px"
|
<!-- style="width: 150px"-->
|
||||||
></el-input>
|
<!-- ></el-input>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
|
<br>
|
||||||
<el-form-item label="最小值">
|
<el-form-item label="最小值">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.lower"
|
v-model="form.lower"
|
||||||
@ -54,14 +55,14 @@
|
|||||||
style="width: 150px"
|
style="width: 150px"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="modbus 端口">
|
<!-- <el-form-item label="modbus 端口">-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
v-model="form.ipPort"
|
<!-- v-model="form.ipPort"-->
|
||||||
clearable
|
<!-- clearable-->
|
||||||
placeholder="请输入端口"
|
<!-- placeholder="请输入端口"-->
|
||||||
style="width: 150px"
|
<!-- style="width: 150px"-->
|
||||||
></el-input>
|
<!-- ></el-input>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item style="margin-left: 20px">
|
<el-form-item style="margin-left: 20px">
|
||||||
<el-button type="primary" @click="search">搜索</el-button>
|
<el-button type="primary" @click="search">搜索</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -77,14 +78,18 @@
|
|||||||
@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"
|
||||||
<template slot-scope="scope">
|
></el-table-column>
|
||||||
<span>{{`${scope.row.ipAddress || ''} ${scope.row.ipPort || ''}`}}</span>
|
<!-- <el-table-column label="modbus地址">-->
|
||||||
</template>
|
<!-- <template slot-scope="scope">-->
|
||||||
</el-table-column>
|
<!-- <span>{{-->
|
||||||
|
<!-- `${scope.row.ipAddress || ""} ${scope.row.ipPort || ""}`-->
|
||||||
|
<!-- }}</span>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<el-table-column label="寄存器地址" prop="寄存器地址"></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="最新值"
|
label="最新值"
|
||||||
prop="pointValue"
|
prop="pointValue"
|
||||||
@ -92,19 +97,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,29 +141,30 @@ 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;
|
||||||
this.totalSize = 0;
|
this.totalSize = 0;
|
||||||
|
this.dataType = '';
|
||||||
this.form = {
|
this.form = {
|
||||||
sortMethod: "desc", //升序不传或者asc、降序desc)
|
sortMethod: "desc", //升序不传或者asc、降序desc)
|
||||||
sortData:this.defaultSort.prop,
|
sortData: this.defaultSort.prop,
|
||||||
dataPointName: "", //点位名称
|
dataPointName: "", //点位名称
|
||||||
dataPoint: "", //点位名称
|
dataPoint: "", //点位名称
|
||||||
lower: "", //
|
lower: "", //
|
||||||
upper: "", //
|
upper: "", //
|
||||||
ipAddress:'',
|
// ipAddress: "",
|
||||||
ipPort:''
|
// ipPort: "",
|
||||||
};
|
};
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
computed:{
|
computed: {
|
||||||
isDtdc(){
|
isDtdc() {
|
||||||
return this.deviceCategory === 'BATTERY'
|
return this.deviceCategory === "BATTERY";
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -167,6 +172,7 @@ export default {
|
|||||||
defaultSort: { prop: "updateTime", order: "descending" },
|
defaultSort: { prop: "updateTime", order: "descending" },
|
||||||
show: false,
|
show: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
|
dataType:'',//展示的数据类型 point点位/alarmPoint报警点位
|
||||||
form: {
|
form: {
|
||||||
sortData: "updateTime", //最新值升序不传或者asc、降序desc)
|
sortData: "updateTime", //最新值升序不传或者asc、降序desc)
|
||||||
sortMethod: "desc", //升序不传或者asc、降序desc)
|
sortMethod: "desc", //升序不传或者asc、降序desc)
|
||||||
@ -174,12 +180,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, //分页栏当前每个数据总数
|
||||||
@ -188,33 +194,79 @@ 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()
|
||||||
},
|
},
|
||||||
search() {
|
search() {
|
||||||
this.pageNum = 1;
|
this.pageNum = 1;
|
||||||
this.getData();
|
this.getData()
|
||||||
},
|
},
|
||||||
showTable({ deviceCategory, siteId, deviceId ,parentId=''}) {
|
// 分页
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.pageSize = val;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.getData()
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.pageNum = val;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.getData()
|
||||||
|
});
|
||||||
|
},
|
||||||
|
showTable({ deviceCategory, siteId, deviceId, parentId = "" },dataType) {
|
||||||
|
this.dataType = dataType;
|
||||||
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()
|
||||||
|
},
|
||||||
|
getAlarmPointData(param){
|
||||||
|
this.loading = true;
|
||||||
|
getDevicePointList(param)
|
||||||
|
.then((response) => {
|
||||||
|
this.tableData = response?.rows || [];
|
||||||
|
this.totalSize = response?.total || 0;
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getPointData(param){
|
||||||
|
this.loading = true;
|
||||||
|
getDevicePointList(param)
|
||||||
|
.then((response) => {
|
||||||
|
this.tableData = response?.rows || [];
|
||||||
|
this.totalSize = response?.total || 0;
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
getData() {
|
getData() {
|
||||||
this.loading = true;
|
|
||||||
const {
|
const {
|
||||||
siteId,
|
siteId,
|
||||||
deviceId,
|
deviceId,
|
||||||
@ -229,11 +281,11 @@ export default {
|
|||||||
dataPoint,
|
dataPoint,
|
||||||
lower,
|
lower,
|
||||||
upper,
|
upper,
|
||||||
ipAddress,
|
// ipAddress,
|
||||||
ipPort
|
// ipPort,
|
||||||
},
|
},
|
||||||
} = this;
|
} = this;
|
||||||
getDevicePointList({
|
const params = {
|
||||||
siteId,
|
siteId,
|
||||||
deviceId,
|
deviceId,
|
||||||
deviceCategory,
|
deviceCategory,
|
||||||
@ -246,29 +298,10 @@ export default {
|
|||||||
dataPoint,
|
dataPoint,
|
||||||
lower,
|
lower,
|
||||||
upper,
|
upper,
|
||||||
ipAddress,
|
ipAddress:'',
|
||||||
ipPort
|
ipPort:'',
|
||||||
})
|
}
|
||||||
.then((response) => {
|
this.dataType === 'point' ? this.getPointData(params) : this.getAlarmPointData(params)
|
||||||
this.tableData = response?.rows || [];
|
|
||||||
this.totalSize = response?.total || 0;
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
this.loading = false;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 分页
|
|
||||||
handleSizeChange(val) {
|
|
||||||
this.pageSize = val;
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.getData();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
handleCurrentChange(val) {
|
|
||||||
this.pageNum = val;
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.getData();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :visible.sync="show" class="ems-dialog" title="点位上传" width="400px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
|
<el-dialog :visible.sync="show" class="ems-dialog" title="点位上传" width="400px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
|
||||||
<!-- <file-upload :fileType='["xls", "xlsx"]' value="String" :limit="1" :drag="false" @input="updateFile"/>-->
|
<!-- <file-upload :fileType='["xls", "xlsx"]' value="String" :limit="1" :drag="false" @input="updateFile"/>-->
|
||||||
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url" :data="upload.data" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
||||||
<i class="el-icon-upload"></i>
|
<i class="el-icon-upload"></i>
|
||||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||||
<div class="el-upload__tip text-center" slot="tip">
|
<div class="el-upload__tip text-center" slot="tip">
|
||||||
@ -27,22 +27,25 @@ export default {
|
|||||||
show:false,
|
show:false,
|
||||||
// 用户导入参数
|
// 用户导入参数
|
||||||
upload: {
|
upload: {
|
||||||
|
data:{},
|
||||||
// 是否禁用上传
|
// 是否禁用上传
|
||||||
isUploading: false,
|
isUploading: false,
|
||||||
// 设置上传的请求头部
|
// 设置上传的请求头部
|
||||||
headers: { Authorization: "Bearer " + getToken() },
|
headers: { Authorization: "Bearer " + getToken() },
|
||||||
// 上传的地址
|
// 上传的地址
|
||||||
url: process.env.VUE_APP_BASE_API + "/ems/pointMatch/importData"
|
url: process.env.VUE_APP_BASE_API + "/ems/pointMatch/importDataByDevice"
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
showDialog(){
|
showDialog({siteId,deviceId,deviceCategory}){
|
||||||
|
this.upload.data={siteId,deviceId,deviceCategory}
|
||||||
this.show = true;
|
this.show = true;
|
||||||
},
|
},
|
||||||
//关闭弹窗 重置数据
|
//关闭弹窗 重置数据
|
||||||
handleClosed(){
|
handleClosed(){
|
||||||
this.$refs.upload.clearFiles()//写在before-closed无效
|
this.$refs.upload.clearFiles()//写在before-closed无效
|
||||||
|
this.upload.data={}
|
||||||
this.show=false
|
this.show=false
|
||||||
},
|
},
|
||||||
// updateFile(data){
|
// updateFile(data){
|
||||||
@ -51,12 +54,12 @@ export default {
|
|||||||
// saveDialog(){
|
// saveDialog(){
|
||||||
// this.show=true
|
// this.show=true
|
||||||
// },
|
// },
|
||||||
// 文件上传中处理
|
// 文件上传中处理 返回参数event, file, fileList
|
||||||
handleFileUploadProgress(event, file, fileList) {
|
handleFileUploadProgress() {
|
||||||
this.upload.isUploading = true
|
this.upload.isUploading = true
|
||||||
},
|
},
|
||||||
// 文件上传成功处理
|
// 文件上传成功处理 返回参数response, file, fileList
|
||||||
handleFileSuccess(response, file, fileList) {
|
handleFileSuccess(response) {
|
||||||
console.log('上传文件结果',response)
|
console.log('上传文件结果',response)
|
||||||
this.upload.isUploading = false
|
this.upload.isUploading = false
|
||||||
if(response.code === 500 && !response.msg) response.msg = '上传失败'
|
if(response.code === 500 && !response.msg) response.msg = '上传失败'
|
||||||
|
|||||||
@ -13,12 +13,6 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-button type="primary" @click="addDevice" native-type="button">新增设备</el-button>
|
<el-button type="primary" @click="addDevice" native-type="button">新增设备</el-button>
|
||||||
<el-button
|
|
||||||
@click="uploadPointDetail"
|
|
||||||
type="success"
|
|
||||||
plain>
|
|
||||||
上传点位清单
|
|
||||||
</el-button>
|
|
||||||
<el-table
|
<el-table
|
||||||
class="common-table"
|
class="common-table"
|
||||||
:data="tableData"
|
:data="tableData"
|
||||||
@ -59,18 +53,34 @@
|
|||||||
width="250">
|
width="250">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
@click="pointDetail(scope.row)"
|
@click="pointDetail(scope.row,'point')"
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini">
|
size="mini">
|
||||||
点位清单
|
点位清单
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
@click="pointDetail(scope.row,'alarmPoint')"
|
||||||
|
type="primary"
|
||||||
|
size="mini">
|
||||||
|
报警点位清单
|
||||||
|
</el-button>
|
||||||
|
<br>
|
||||||
<el-button
|
<el-button
|
||||||
@click="downloadPointDetail(scope.row)"
|
@click="downloadPointDetail(scope.row)"
|
||||||
|
style="margin-top:10px;"
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
size="mini">
|
size="mini">
|
||||||
下载点位清单
|
下载点位清单
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
@click="uploadPointDetail(scope.row)"
|
||||||
|
style="margin-top:10px;"
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
size="mini">
|
||||||
|
上传点位清单
|
||||||
|
</el-button>
|
||||||
<br>
|
<br>
|
||||||
<el-button
|
<el-button
|
||||||
@click="editDevice(scope.row)"
|
@click="editDevice(scope.row)"
|
||||||
@ -116,13 +126,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {getDeviceInfoList,getDeviceDetailInfo,deleteService,exportPointList,importPointList} from'@/api/ems/site'
|
import {getDeviceInfoList,getDeviceDetailInfo,deleteService} from'@/api/ems/site'
|
||||||
import {getAllSites} from '@/api/ems/zddt'
|
import {getAllSites} from '@/api/ems/zddt'
|
||||||
import {formatNumber} from "@/filters/ems";
|
import {formatNumber} from "@/filters/ems";
|
||||||
import PointTable from './PointTable.vue'
|
import PointTable from './PointTable.vue'
|
||||||
import AddDevice from "./AddDevice.vue";
|
import AddDevice from "./AddDevice.vue";
|
||||||
import PointUpload from "./PointUpload.vue";
|
import PointUpload from "./PointUpload.vue";
|
||||||
import {download} from "@/utils/request";
|
|
||||||
export default {
|
export default {
|
||||||
name: "Sblb",
|
name: "Sblb",
|
||||||
components:{AddDevice,PointTable,PointUpload},
|
components:{AddDevice,PointTable,PointUpload},
|
||||||
@ -164,8 +173,8 @@ export default {
|
|||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
// 查看设备电位表格
|
// 查看设备电位表格
|
||||||
pointDetail(row){
|
pointDetail(row,dataType){
|
||||||
this.$refs.pointTable.showTable(row)
|
this.$refs.pointTable.showTable(row,dataType)
|
||||||
},
|
},
|
||||||
// 下载点位清单
|
// 下载点位清单
|
||||||
downloadPointDetail({siteId,deviceCategory,deviceName}){
|
downloadPointDetail({siteId,deviceCategory,deviceName}){
|
||||||
@ -175,8 +184,8 @@ export default {
|
|||||||
}, `点位清单_${deviceName}_${new Date().getTime()}.xlsx`)
|
}, `点位清单_${deviceName}_${new Date().getTime()}.xlsx`)
|
||||||
},
|
},
|
||||||
// 上传点位清单
|
// 上传点位清单
|
||||||
uploadPointDetail(){
|
uploadPointDetail(row){
|
||||||
this.$refs.pointUpload.showDialog()
|
this.$refs.pointUpload.showDialog(row)
|
||||||
},
|
},
|
||||||
clearEditDeviceData(){
|
clearEditDeviceData(){
|
||||||
this.mode = '';
|
this.mode = '';
|
||||||
|
|||||||
Reference in New Issue
Block a user