大屏除工作台外地图相关及弹窗展示

This commit is contained in:
zzyuan 2024-09-28 18:57:55 +08:00
parent 2ef9adf060
commit 3ab53e4c65
13 changed files with 763 additions and 18 deletions

View File

@ -47,6 +47,20 @@ export const queryDeviceByProApi = (data) => {
}) })
} }
// 查询倾角,拉力柱状图数据接口
export const getTowerDevAttributeRecordByDevice = (data) => {
return request.get(`/base/screen/info/getTowerDevAttributeRecordByDevice`, {
params: data
})
}
// 根据设备类型编码(环境、基坑、倾角、拉力)查询当天预警信息
export const getDevTypeCodeDetails = (data) => {
return request.get(`/base/screen/homeTwo/getDevTypeCodeDetails`, {
params: data
})
}
// 根据设备id查询最新室外环境监测信息 // 根据设备id查询最新室外环境监测信息
export const queryEnvironmentInfoByIdApi = (data) => { export const queryEnvironmentInfoByIdApi = (data) => {
return request.get(`/base/screen/info/getDevAttributeLatestInfoById`, { return request.get(`/base/screen/info/getDevAttributeLatestInfoById`, {

View File

@ -199,3 +199,9 @@ ul {
text-align: right; text-align: right;
border-top: 1px solid #393737; border-top: 1px solid #393737;
} }
.maxsize {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

View File

@ -0,0 +1,301 @@
<template>
<div class="wrapper">
<el-dialog
title=""
:visible.sync="ifOpen"
width="70%"
append-to-body
:close-on-click-modal="false"
@open="openChart"
@close="closeDialog"
>
<template #title>
<div style="display: flex; align-items: center">
<img src="../../assets/img/signalPrefix.png" alt="" />
<span
style="
padding: 0 15px 0 10px;
font-size: 20px;
font-weight: bold;
"
>组塔监测</span
>
<img src="../../assets/img/lineSuffix.png" alt="" />
</div>
</template>
<div class="content">
<div class="cont-lef">
<div class="sel-top">{{proData.proName}}</div>
<div
:class="['single-sel', { isActive: currentSelIndex === item.value }]"
v-for="item in deviceRange"
:key="item.value"
@click="handleEnvir(item)"
>{{ item.label }}</div
>
</div>
<div class="cont-rig">
<!-- <div class="rig-top">
<el-date-picker
v-model="dateVal"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择日期"
>
</el-date-picker>
<el-button
style="margin-left: 10px"
type="primary"
icon="el-icon-search"
size="mini"
@click="queryDate"
>搜索</el-button
>
</div> -->
<div class="rig-charts">
<div class="charts-up">
<div id="angleWetChart"></div>
</div>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import {
queryDeviceByProApi,
queryEnvironmentInfoByIdApi,
getTowerDevAttributeRecordByDevice,
queryWarnInfoByIdApi
} from '@/api/substation/substation'
import * as echarts from 'echarts'
export default {
name: 'angleDialog',
components: {},
props: {
ifOpen: {
type: Boolean,
default: false
},
proData: {
type: Object,
default: {}
},
},
data() {
return {
open: false,
deviceVal: undefined,
deviceRange: [],
dateVal: '',
selList: [
{ id: 1, name: '一号环境' },
{ id: 2, name: '二号环境' },
{ id: 3, name: '三号环境' },
],
currentSelIndex: null
}
},
mounted() {
},
methods: {
//
async getDeviceData(proId) {
let res = await queryDeviceByProApi({
proId,
devType: 117
})
if(res.data.data.length !== 0) {
this.deviceRange = res.data.data.map(item => {
return {
label: item.devName,
value: item.devId
}
})
this.deviceVal = this.proData.id;
this.currentSelIndex = this.proData.id;
await this.getChartsData(this.deviceVal)
}
},
//echart
async getChartsData(devId) {
this.desHander()
let res = await getTowerDevAttributeRecordByDevice({devId})
this.generateCharts(res.data.slice(0,9))
},
//
openChart() {
this.$nextTick(() => {
this.getDeviceData(this.proData.proId)
})
},
//
handleEnvir(val) {
this.currentSelIndex = val.value
// this.generateCharts()
this.getChartsData(val.value)
},
queryDate() {
console.log(this.dateVal)
},
//echart
generateCharts(list) {
console.log(list)
let tempArr = list.map(item => {
return Number(item.jcValue)
})
let tempXList = list.map(item => {
return item.xtime
})
//
let tempOption = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
valueFormatter:(value) => {
return value + '°'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: tempXList,
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value',
name: '°'
}
],
series: [
{
name: '倾角',
type: 'bar',
barWidth: '40%',
data: tempArr,
itemStyle:{
//
color: new echarts.graphic.LinearGradient(0, 0, 1, 1, [
{
offset: 0,
color: '#007FFF'
},
{
offset: 1,
color: '#93D4EA'
}
]),
borderRadius: [3, 3, 0, 0],
}
}
]
};
let tempChart = echarts.init(document.querySelector('#angleWetChart'))
tempChart.setOption(tempOption)
},
//
desHander(){
let myChart = echarts.init(document.querySelector('#angleWetChart'));
myChart.dispose();
},
closeDialog() {
this.$emit('closeDialog')
}
},
}
</script>
<style lang="scss" scoped>
.content {
height: 600px;
display: flex;
justify-content: space-between;
.cont-lef {
width: 25%;
height: 100%;
margin-right: 15px;
border: 1px solid #c6d8fa;
border-radius: 10px;
.sel-top {
width: 100%;
box-sizing: border-box;
padding: 20px 40px;
background-color: #d3e4fa;
font-size: 18px;
color: #000;
}
.single-sel {
width: 100%;
box-sizing: border-box;
padding: 20px 40px;
font-size: 16px;
color: #000;
border-bottom: 1px solid #ced1d5;
cursor: pointer;
}
.isActive{
background-color: #d3e4fa;
}
}
.cont-rig {
flex: 1;
display: flex;
flex-direction: column;
.rig-top {
width: 100%;
display: flex;
margin-bottom: 10px;
}
.rig-charts {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
.charts-up,
.charts-down {
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
div {
width: 100%;
height: 100%;
border: 1px dashed #98bbda;
border-radius: 5px;
box-sizing: border-box;
padding: 10px;
}
}
}
}
}
</style>

View File

@ -110,19 +110,20 @@ export default {
devType: 119 devType: 119
}) })
if(res.data.data.length !== 0) { if(res.data.data.length !== 0) {
this.pitVal = res.data.data[0].devId
this.currentSelIndex = res.data.data[0].devId;
this.pitRange = res.data.data.map(item => { this.pitRange = res.data.data.map(item => {
return { return {
label: item.devName, label: item.devName,
value: item.devId value: item.devId
} }
}) })
this.pitVal = this.proData.id;
this.currentSelIndex = this.proData.id;
await this.getPitData(this.pitVal) await this.getPitData(this.pitVal)
} }
}, },
//ercharts //ercharts
async getPitData(devId) { async getPitData(devId) {
this.desHander()
let res = await queryPitDataApi({ let res = await queryPitDataApi({
devId devId
}) })
@ -396,6 +397,16 @@ export default {
let H2SChart = echarts.init(document.querySelector('#H2SChart')) let H2SChart = echarts.init(document.querySelector('#H2SChart'))
H2SChart.setOption(H2SOption) H2SChart.setOption(H2SOption)
}, },
desHander(){
let myChart1 = echarts.init(document.querySelector('#O2Chart'));
myChart1.dispose();
let myChart2 = echarts.init(document.querySelector('#fireChart'));
myChart2.dispose();
let myChart3 = echarts.init(document.querySelector('#COChart'));
myChart3.dispose();
let myChart4 = echarts.init(document.querySelector('#H2SChart'));
myChart4.dispose();
},
getFormattedDate() { getFormattedDate() {
const today = new Date() // const today = new Date() //
const year = today.getFullYear() // const year = today.getFullYear() //

View File

@ -114,19 +114,20 @@ export default {
devType: 116 devType: 116
}) })
if(res.data.data.length !== 0) { if(res.data.data.length !== 0) {
this.deviceVal = res.data.data[0].devId;
this.currentSelIndex = res.data.data[0].devId;
this.deviceRange = res.data.data.map(item => { this.deviceRange = res.data.data.map(item => {
return { return {
label: item.devName, label: item.devName,
value: item.devId value: item.devId
} }
}) })
this.deviceVal = this.proData.id;
this.currentSelIndex = this.proData.id;
await this.getChartsData(this.deviceVal) await this.getChartsData(this.deviceVal)
} }
}, },
//echart //echart
async getChartsData(devId) { async getChartsData(devId) {
this.desHander()
let res = await queryChartsInfoByIdApi({devId}) let res = await queryChartsInfoByIdApi({devId})
this.generateCharts(res.data) this.generateCharts(res.data)
}, },
@ -403,6 +404,17 @@ export default {
let airChart = echarts.init(document.querySelector('#airChart')) let airChart = echarts.init(document.querySelector('#airChart'))
airChart.setOption(airOption) airChart.setOption(airOption)
}, },
desHander(){
console.log(111)
let myChart1 = echarts.init(document.querySelector('#tempWetChart'));
myChart1.dispose();
let myChart2 = echarts.init(document.querySelector('#windChart'));
myChart2.dispose();
let myChart3 = echarts.init(document.querySelector('#loudChart'));
myChart3.dispose();
let myChart4 = echarts.init(document.querySelector('#airChart'));
myChart4.dispose();
},
closeDialog() { closeDialog() {
this.$emit('closeDialog') this.$emit('closeDialog')
} }

View File

@ -0,0 +1,306 @@
<template>
<div class="wrapper">
<el-dialog
title=""
:visible.sync="ifOpen"
width="70%"
append-to-body
:close-on-click-modal="false"
@open="openChart"
@close="closeDialog"
>
<template #title>
<div style="display: flex; align-items: center">
<img src="../../assets/img/signalPrefix.png" alt="" />
<span
style="
padding: 0 15px 0 10px;
font-size: 20px;
font-weight: bold;
"
>组塔监测</span
>
<img src="../../assets/img/lineSuffix.png" alt="" />
</div>
</template>
<div class="content">
<div class="cont-lef">
<div class="sel-top">{{proData.proName}}</div>
<div
:class="['single-sel', { isActive: currentSelIndex === item.value }]"
v-for="item in deviceRange"
:key="item.value"
@click="handleEnvir(item)"
>{{ item.label }}</div
>
</div>
<div class="cont-rig">
<!-- <div class="rig-top">
<el-date-picker
v-model="dateVal"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择日期"
>
</el-date-picker>
<el-button
style="margin-left: 10px"
type="primary"
icon="el-icon-search"
size="mini"
@click="queryDate"
>搜索</el-button
>
</div> -->
<div class="rig-charts">
<div class="charts-up">
<div id="pullWetChart"></div>
</div>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import {
queryDeviceByProApi,
queryEnvironmentInfoByIdApi,
getTowerDevAttributeRecordByDevice,
queryWarnInfoByIdApi
} from '@/api/substation/substation'
import * as echarts from 'echarts'
export default {
name: 'pullDialog',
components: {},
props: {
ifOpen: {
type: Boolean,
default: false
},
proData: {
type: Object,
default: {}
},
},
data() {
return {
open: false,
deviceVal: undefined,
deviceRange: [],
dateVal: '',
selList: [
{ id: 1, name: '一号环境' },
{ id: 2, name: '二号环境' },
{ id: 3, name: '三号环境' },
],
currentSelIndex: null
}
},
mounted() {
},
methods: {
//
async getDeviceData(proId) {
let res = await queryDeviceByProApi({
proId,
devType: 118
})
if(res.data.data.length !== 0) {
this.deviceVal = res.data.data[0].devId;
this.currentSelIndex = res.data.data[0].devId;
this.deviceRange = res.data.data.map(item => {
return {
label: item.devName,
value: item.devId
}
})
this.deviceVal = this.proData.id;
this.currentSelIndex = this.proData.id;
await this.getChartsData(this.deviceVal)
}
},
//echart
async getChartsData(devId) {
this.desHander()
let res = await getTowerDevAttributeRecordByDevice({devId})
// console.log(res)
this.generateCharts(res.data.slice(0,9))
},
//
openChart() {
this.$nextTick(() => {
this.getDeviceData(this.proData.proId)
})
},
//
handleEnvir(val) {
this.currentSelIndex = val.value
// this.generateCharts()
this.getChartsData(val.value)
},
queryDate() {
console.log(this.dateVal)
},
//echart
generateCharts(list) {
console.log(list)
let tempArr = list.map(item => {
return Number(item.jcValue)
})
let tempXList = list.map(item => {
return item.xtime
})
//
let tempOption = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
},
valueFormatter:(value) => {
return value + 'N'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: tempXList,
axisTick: {
alignWithLabel: true
}
}
],
yAxis: [
{
type: 'value',
name: '°'
}
],
series: [
{
name: '拉力',
type: 'bar',
barWidth: '40%',
data: tempArr,
itemStyle:{
//
color: new echarts.graphic.LinearGradient(0, 0, 1, 1, [
{
offset: 0,
color: '#007FFF'
},
{
offset: 1,
color: '#93D4EA'
}
]),
borderRadius: [3, 3, 0, 0],
}
}
]
};
let tempChart = echarts.init(document.querySelector('#pullWetChart'))
tempChart.dispose()
tempChart.setOption(tempOption)
},
//
desHander(){
let myChart = echarts.init(document.querySelector('#pullWetChart'));
myChart.dispose();
},
closeDialog() {
echarts.init(document.getElementById('#pullWetChart')).dispose()
this.$emit('closeDialog')
}
},
}
</script>
<style lang="scss" scoped>
.content {
height: 600px;
display: flex;
justify-content: space-between;
.cont-lef {
width: 25%;
height: 100%;
margin-right: 15px;
border: 1px solid #c6d8fa;
border-radius: 10px;
.sel-top {
width: 100%;
box-sizing: border-box;
padding: 20px 40px;
background-color: #d3e4fa;
font-size: 18px;
color: #000;
}
.single-sel {
width: 100%;
box-sizing: border-box;
padding: 20px 40px;
font-size: 16px;
color: #000;
border-bottom: 1px solid #ced1d5;
cursor: pointer;
}
.isActive{
background-color: #d3e4fa;
}
}
.cont-rig {
flex: 1;
display: flex;
flex-direction: column;
.rig-top {
width: 100%;
display: flex;
margin-bottom: 10px;
}
.rig-charts {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
.charts-up,
.charts-down {
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
div {
width: 100%;
height: 100%;
border: 1px dashed #98bbda;
border-radius: 5px;
box-sizing: border-box;
padding: 10px;
}
}
}
}
}
</style>

View File

@ -167,6 +167,19 @@
> >
</DipDialog> </DipDialog>
<PullDialog
:if-open="pullOpen"
@closeDialog="pullOpen = false"
:proData="pullData"
>
</PullDialog>
<AngleDialog
:if-open="angleOpen"
@closeDialog="angleOpen = false"
:proData="angleData"
>
</AngleDialog>
</div> </div>
</template> </template>
@ -181,12 +194,16 @@ import {
} from '@/api/tableApis' } from '@/api/tableApis'
import EnvirDialog from '@/components/dialog/envirDialog.vue' import EnvirDialog from '@/components/dialog/envirDialog.vue'
import DipDialog from '@/components/dialog/dipDialog.vue' import DipDialog from '@/components/dialog/dipDialog.vue'
import PullDialog from '@/components/dialog/pullDialog.vue'
import AngleDialog from '@/components/dialog/angleDialog.vue'
export default { export default {
name: 'commonDialog', name: 'commonDialog',
components: { components: {
Pagination, Pagination,
EnvirDialog, EnvirDialog,
DipDialog DipDialog,
PullDialog,
AngleDialog
}, },
data() { data() {
return { return {
@ -207,6 +224,10 @@ export default {
envirData:{}, envirData:{},
dipOpen: false, dipOpen: false,
dipData:{}, dipData:{},
angleOpen: false,
angleData:{},
pullOpen: false,
pullData:{},
proTypeRange: [ proTypeRange: [
{ label: '变电工程', value: '1' }, { label: '变电工程', value: '1' },
{ label: '线路工程', value: '2' }, { label: '线路工程', value: '2' },
@ -467,6 +488,12 @@ export default {
} else if(v.devTypeName === '基坑监测类') { } else if(v.devTypeName === '基坑监测类') {
this.dipOpen = true; this.dipOpen = true;
this.dipData=v; this.dipData=v;
} else if(v.devTypeName === '组塔倾角监测类') {
this.angleOpen = true;
this.angleData=v;
} else if(v.devTypeName === '组塔拉力监测类') {
this.pullOpen = true;
this.pullData=v;
} }
} }
}, },

View File

@ -74,6 +74,7 @@ export default {
this.$emit('openDialog', { order: v }) this.$emit('openDialog', { order: v })
}, },
async getProjData() { async getProjData() {
let res = await queryProjInfoApi() let res = await queryProjInfoApi()
this.projData = res.data this.projData = res.data
this.getProjBar() this.getProjBar()

View File

@ -76,7 +76,11 @@ export default {
}, },
methods: { methods: {
async getRiskData() { async getRiskData() {
let res = await queryRiskInfoApi() let param = {
startTime:this.timeFormat(),
endTime:this.timeFormat(),
}
let res = await queryRiskInfoApi(param)
this.tableList = res.data this.tableList = res.data
}, },
toggleDialog(v) { toggleDialog(v) {
@ -93,6 +97,29 @@ export default {
} }
} }
}, },
timeFormat() {
let date = new Date();
//
let formatStr = 'yyyy-mm-dd';
const timeSource = {
'y': date.getFullYear().toString(), //
'm': (date.getMonth() + 1).toString().padStart(2, '0'), //
'd': date.getDate().toString().padStart(2, '0'), //
'h': date.getHours().toString().padStart(2, '0'), //
'M': date.getMinutes().toString().padStart(2, '0'), //
's': date.getSeconds().toString().padStart(2, '0') //
//
}
for (const key in timeSource) {
const [ret] = new RegExp(`${key}+`).exec(formatStr) || []
if (ret) {
//
const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0
formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))
}
}
return formatStr
},
}, },
} }
</script> </script>

View File

@ -112,22 +112,25 @@
:row-style="rowStyle" :row-style="rowStyle"
> >
<el-table-column <el-table-column
prop="date" prop="devName"
label="设备名称" label="设备名称"
align="center" align="center"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="warnTime"
label="时间" label="时间"
align="center" align="center"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="address" prop="warnType"
label="预警内容" label="预警内容"
align="center" align="center"
> >
<template slot-scope="scope">
{{ scope.row.warnType }}异常
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
@ -141,7 +144,8 @@ import {
queryDeviceByProApi, queryDeviceByProApi,
queryEnvironmentInfoByIdApi, queryEnvironmentInfoByIdApi,
queryChartsInfoByIdApi, queryChartsInfoByIdApi,
queryWarnInfoByIdApi queryWarnInfoByIdApi,
getDevTypeCodeDetails
} from '@/api/substation/substation' } from '@/api/substation/substation'
export default { export default {
components: { components: {
@ -194,10 +198,12 @@ export default {
mounted() { mounted() {
console.log(this.sendMsg) console.log(this.sendMsg)
this.getDeviceData(this.sendMsg.projectId) this.getDeviceData(this.sendMsg.projectId)
this.getDevTypeCodeDetails(this.sendMsg.projectId)
}, },
methods: { methods: {
async getDeviceData(proId) { async getDeviceData(proId) {
let res = await queryDeviceByProApi({ let res = await queryDeviceByProApi({
powerId:this.sendMsg.gtId,
proId, proId,
devType: 116 devType: 116
}) })
@ -213,6 +219,15 @@ export default {
await this.getChartsData(this.deviceVal) await this.getChartsData(this.deviceVal)
} }
}, },
//
async getDevTypeCodeDetails(proId) {
let param= {
proId:proId,
devTypeCode: 116
}
let res = await getDevTypeCodeDetails(param)
this.tableList=res.data
},
async getEnvironmentData(devId) { async getEnvironmentData(devId) {
let res = await queryEnvironmentInfoByIdApi({ let res = await queryEnvironmentInfoByIdApi({
devId devId

View File

@ -123,10 +123,10 @@
<div class="rig-top"> <div class="rig-top">
<div class="inner-tit"> <div class="inner-tit">
<img src="../../assets/img/lef-badge.png" alt=""> <img src="../../assets/img/lef-badge.png" alt="">
当日监测记录 预警信息
</div> </div>
<el-table <el-table
:data="todayRecordList" :data="tableList"
stripe stripe
style="width: 100%" style="width: 100%"
:row-style="rowStyle" :row-style="rowStyle"
@ -138,16 +138,19 @@
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="jcTime" prop="warnTime"
label="时间" label="时间"
align="center" align="center"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="jcValue" prop="warnType"
label="预警内容" label="预警内容"
align="center" align="center"
> >
<template slot-scope="scope">
{{ scope.row.warnType }}异常
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
@ -177,7 +180,8 @@ import {
queryPitDataApi, queryPitDataApi,
queryLimitSpaceApi, queryLimitSpaceApi,
queryNewLimitSpaceApi, queryNewLimitSpaceApi,
queryEnvironmentInfoByIdApi queryEnvironmentInfoByIdApi,
getDevTypeCodeDetails
} from '@/api/substation/substation' } from '@/api/substation/substation'
import * as echarts from 'echarts' import * as echarts from 'echarts'
export default { export default {
@ -201,7 +205,8 @@ export default {
pitList: [ pitList: [
], ],
todayRecordList: [] todayRecordList: [],
tableList: []
} }
}, },
created() { created() {
@ -210,13 +215,16 @@ export default {
mounted() { mounted() {
console.log(this.sendMsg) console.log(this.sendMsg)
this.getLimitData(this.sendMsg.projectId) // this.getLimitData(this.sendMsg.projectId)
this.getDeviceData(this.sendMsg.projectId) this.getDeviceData(this.sendMsg.projectId)
//
this.getDevTypeCodeDetails(this.sendMsg.projectId)
// this.generateCharts() // this.generateCharts()
}, },
methods: { methods: {
async getDeviceData(proId) { async getDeviceData(proId) {
let res = await queryDeviceByProApi({ let res = await queryDeviceByProApi({
powerId:this.sendMsg.gtId,
proId, proId,
devType: 119 devType: 119
}) })
@ -245,6 +253,15 @@ export default {
}) })
this.generateCharts(res.data) this.generateCharts(res.data)
}, },
//
async getDevTypeCodeDetails(proId) {
let param= {
proId:proId,
devTypeCode: 119
}
let res = await getDevTypeCodeDetails(param)
this.tableList=res.data
},
async getLimitData(proId) { async getLimitData(proId) {
let res = await queryNewLimitSpaceApi({ let res = await queryNewLimitSpaceApi({
proId proId

View File

@ -273,11 +273,13 @@ export default {
methods: { methods: {
async getDeviceData(proId) { async getDeviceData(proId) {
let angleRes = await queryDeviceByProApi({ let angleRes = await queryDeviceByProApi({
powerId:this.sendMsg.gtId,
proId, proId,
devType: 117 devType: 117
}) })
this.towerAngleList = angleRes.data.data this.towerAngleList = angleRes.data.data
let pullRes = await queryDeviceByProApi({ let pullRes = await queryDeviceByProApi({
powerId:this.sendMsg.gtId,
proId, proId,
devType: 118 devType: 118
}) })

View File

@ -235,8 +235,14 @@ export default {
proj.proPowerList.forEach(tower => { proj.proPowerList.forEach(tower => {
this.geoData.push({ this.geoData.push({
name: tower.gtName, name: tower.gtName,
projName: tower.gtName, gtId:tower.id,
projName: proj.projectName+'-'+tower.gtName,
projectId: proj.projectId, projectId: proj.projectId,
// province: proj.areaName,
devTypeNum: tower.devTypeNum,
devNum: tower.devNum,
successNum: tower.successNum,
errorNum: tower.errorNum,
itemStyle: { normal: { areaColor: '#7DDEFF' } }, itemStyle: { normal: { areaColor: '#7DDEFF' } },
value: [ value: [
Number(tower.lon), Number(tower.lon),