You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

306 lines
8.8 KiB
Vue

2 years ago
<template>
<div class="container">
<div class="centerImg"></div>
<BoardTopNav @sceneIdChange="sceneIdChange" nowMenu="4"></BoardTopNav>
2 years ago
<div class="collapse">
<div style="margin-bottom: 24px">
<el-collapse accordion>
<el-collapse-item name="1">
<template slot="title">
<div class="itemBg">
<div class="icon"></div>
<div class="icon1"></div>
<div :style="'background-image: url('+(topData&&topData.devicePic)+')'" class="icon2"></div>
<div class="title"> {{ topData.monitorUnitName }}</div>
<div class="info">
<div class="info1">所属区域</div>
<div class="info2"> {{ topData.deviceName }}</div>
</div>
<div class="info" style="left: 70vh;">
<div class="info1">位置:</div>
<div class="info2">深圳</div>
</div>
<div class="info" style="left: 80vh;">
<div class="info1">日期:</div>
<div class="info2">2023-01-01 00:00:00</div>
</div>
2 years ago
</div>
</template>
2 years ago
<div>
<div>
<!-- <el-row :gutter="24">-->
<!-- <el-col :span="12">-->
<!-- <el-radio-group v-model="radio">-->
<!-- <el-radio-button label="日统计报表"></el-radio-button>-->
<!-- <el-radio-button label="月统计报表"></el-radio-button>-->
<!-- </el-radio-group>-->
<!-- </el-col>-->
<!-- <el-col :span="12">-->
<!-- <div style="position: absolute; right: 30px;">-->
<!-- <span style="color: #fff;"> 开始时间</span>-->
<!-- <div style="display: inline-block;width: 200px;margin-right: 12px;">-->
<!-- <el-date-picker placeholder="选择日期" style="width: 100%;" type="date"></el-date-picker>-->
<!-- </div>-->
<!-- <el-button type="primary">搜索</el-button>-->
<!-- <el-button>重置</el-button>-->
<!-- <el-button>导出</el-button>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-table :cell-style="setStyle" :data="tableData"
:header-cell-style="{ textAlign: 'center',backgroundColor:'#0a457d' }"
style="width: 100%;margin-top: 12px;">
<el-table-column label="设备ID" prop="columnName">
</el-table-column>
<el-table-column label="传感器编号" prop="columnKey">
</el-table-column>
<el-table-column label="alias" prop="alias">
</el-table-column>
<el-table-column label="rssi" prop="rssi">
</el-table-column>
<el-table-column label="ts" prop="ts">
</el-table-column>
<el-table-column label="value1" prop="value1">
</el-table-column>
<el-table-column label="voltage" prop="voltage">
</el-table-column>
</el-table>
<el-pagination :total="1000" background layout="prev, pager, next">
</el-pagination>
2 years ago
</div>
</div>
</el-collapse-item>
</el-collapse>
</div>
2 years ago
<el-collapse accordion>
<el-collapse-item v-for="i in bottomData">
2 years ago
<template slot="title">
<div class="itemBg">
<div class="icon"></div>
<div class="icon1"></div>
<div class="icon2"></div>
<div class="title"> {{ i.deviceName }}</div>
2 years ago
<div class="info">
<div class="info1">所属区域</div>
<div class="info2">大厅</div>
</div>
<div class="info" style="left: 70vh;">
<div class="info1">位置:</div>
<div class="info2">深圳</div>
</div>
<div class="info" style="left: 80vh;">
<div class="info1">日期:</div>
<div class="info2">2023-01-01 00:00:00</div>
</div>
</div>
</template>
</el-collapse-item>
</el-collapse>
</div>
</div>
</template>
<script>
import {
getDeviceInfo,
getHistoryData,
getLinkDevices
} from '@/api/board/senso'
2 years ago
import BoardTopNav from '@/components/BoardTopNav'
2 years ago
export default {
components: {
2 years ago
BoardTopNav
2 years ago
},
data() {
return {
topData: {},
bottomData: [],
2 years ago
radio: '日统计报表',
tableData: [],
sceneId:0
2 years ago
}
},
mounted() {
},
2 years ago
methods: {
sceneIdChange(e){
this.sceneId = e
this.getData()
},
async getData() {
await this.setDeviceInfo()
await this.setLinkDevices()
await this.setHistoryData()
},
2 years ago
setStyle(e) {
if (e.rowIndex % 2 === 0) {
return {textAlign: 'center', backgroundColor: '#08406f', color: '#05aaba'}
} else {
2 years ago
return {textAlign: 'center', backgroundColor: '#063468', color: '#05aaba'}
}
},
async setDeviceInfo() {
2 years ago
const {data} = await getDeviceInfo(this.$store.getters.sceneId)
this.topData = data || {}
},
async setHistoryData() {
const {data} = await getHistoryData({
"sceneId": this.sceneId,
"deviceId": 2,
"offset": 0,
"limit": 5,
"startTime": 1266666666666
})
this.tableData = (data?.historyData?.rows || []).map((e, i) => {
return {
...e,
...data.deviceDataColumns[i]
}
})
},
async setLinkDevices() {
2 years ago
const {data} = await getLinkDevices(this.$store.getters.sceneId)
this.bottomData = data
2 years ago
}
}
2 years ago
};
</script>
2 years ago
<style lang="less" scoped>
2 years ago
.container {
background-image: url("~@/assets/board/senso/bg.jpg");
background-repeat: no-repeat;
background-size: 100% 100%;
width: 100%;
height: calc(100vh);
position: relative;
}
.collapse {
position: absolute;
top: 9%;
left: 2%;
width: 96%;
height: 87%;
2 years ago
overflow: auto;
2 years ago
/deep/ .el-collapse-item__wrap {
2 years ago
background-color: #0000;
border-color: #0000;
}
/deep/ .el-table {
2 years ago
background-color: #FFF0 !important;
color: #fff;
}
/deep/ .el-table tr {
2 years ago
background-color: #FFF0 !important;
}
/deep/ .el-table th.el-table__cell.is-leaf, {
2 years ago
border-color: #0000;
}
/deep/ .el-table::before, .el-table--group::after, .el-table--border::after {
2 years ago
background-color: #0000;
}
/deep/ .el-table .el-table__header-wrapper th, .el-table .el-table__fixed-header-wrapper th {
2 years ago
background-color: #0000;
}
/deep/ .el-collapse-item__header {
2 years ago
background-color: #0000;
border-color: #0000;
height: auto;
}
/deep/ .el-collapse {
2 years ago
border-color: #0000;
}
/deep/ .el-table td.el-table__cell {
2 years ago
border-color: #0000;
}
2 years ago
2 years ago
/deep/ .el-table .el-table__header-wrapper th {
color: #05ecf3;
}
2 years ago
}
.itemBg {
background-image: url("~@/assets/board/senso/itemBg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
width: 100%;
height: 17vh;
position: relative;
.icon {
background-image: url("~@/assets/board/senso/iconBg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
position: absolute;
top: 2vh;
left: 5vh;
width: 13vh;
height: 13vh;
}
.icon1 {
background-image: url("~@/assets/board/senso/iconBottom.png");
background-repeat: no-repeat;
background-size: 100% 100%;
position: absolute;
top: 2vh;
left: 5vh;
width: 13vh;
height: 13vh;
}
.icon2 {
background-image: url("~@/assets/board/senso/icon.png");
background-repeat: no-repeat;
background-size: 100% 100%;
position: absolute;
top: 50%;
left: 10vh;
width: 2.6vh;
height: 3.3vh;
transform: translateY(-50%);
}
.title {
position: absolute;
left: 25vh;
color: #1fabf3;
line-height: 17vh;
font-size: 2.5vh;
}
.info {
position: absolute;
left: 60vh;
color: #1fabf3;
font-size: 1.5vh;
height: 100%;
white-space: nowrap;
.info1 {
position: absolute;
bottom: 55%;
color: #fffc
}
.info2 {
position: absolute;
top: 55%;
color: #fff
}
}
}
</style>