|
|
@@ -7,15 +7,15 @@
|
|
|
</el-breadcrumb>
|
|
|
<div class="equipInfo">
|
|
|
<div class="equipMsg">
|
|
|
- <span>设备ID:{{this.$route.params.e_id}}</span>
|
|
|
- <span>设备名称:{{equipStatus.device_name || '无'}}</span>
|
|
|
- <span>位置:{{equipStatus.address || "无"}}</span>
|
|
|
+ <span>设备ID:{{this.$route.query.id}}</span>
|
|
|
+ <span>设备名称:{{this.$route.query.name || '无'}}</span>
|
|
|
+ <span>位置:{{this.$route.query.address || "无"}}</span>
|
|
|
</div>
|
|
|
<DateSearch @dateChange="dateChange"></DateSearch>
|
|
|
</div>
|
|
|
<div class="ctrl-check">
|
|
|
<el-button type="primary" size="mini" @click="refresh">刷新</el-button>
|
|
|
- <el-button type="primary" size="mini" @click="lookSIMCode('sim')">SIM 卡</el-button>
|
|
|
+ <!-- <el-button type="primary" size="mini" @click="lookSIMCode('sim')">SIM 卡</el-button> -->
|
|
|
</div>
|
|
|
<!-- 统计图 -->
|
|
|
<el-row :gutter="10">
|
|
|
@@ -26,7 +26,7 @@
|
|
|
<highcharts :options="options"></highcharts>
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
- <div style="text-align:center;font-size:20px;line-height:450px">暂无数据</div>
|
|
|
+ <div style="text-align:center;font-size:20px;line-height:360px">暂无数据</div>
|
|
|
</template>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
@@ -92,17 +92,6 @@
|
|
|
<el-col :xs="12" :sm="12" :md="6" :lg="12">
|
|
|
<div class="equipStatus">
|
|
|
<div class="equipIcon">
|
|
|
- <img src="@/assets/images/forecasting/cbd/staticIcon6.png" alt />
|
|
|
- </div>
|
|
|
- <div class="equipParams">
|
|
|
- <strong>{{equipStatus.dpds?"打开":"关闭"}}</strong>
|
|
|
- <p>下仓门</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="12" :sm="12" :md="6" :lg="12">
|
|
|
- <div class="equipStatus">
|
|
|
- <div class="equipIcon">
|
|
|
<img src="@/assets/images/forecasting/cbd/staticIcon7.png" alt />
|
|
|
</div>
|
|
|
<div class="equipParams">
|
|
|
@@ -122,35 +111,13 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
- <el-col :xs="12" :sm="12" :md="6" :lg="12">
|
|
|
- <div class="equipStatus">
|
|
|
- <div class="equipIcon">
|
|
|
- <img src="@/assets/images/forecasting/cbd/staticIcon9.png" alt />
|
|
|
- </div>
|
|
|
- <div class="equipParams">
|
|
|
- <strong>{{equipStatus.tph}}</strong>
|
|
|
- <p>高温限值</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="12" :sm="12" :md="6" :lg="12">
|
|
|
- <div class="equipStatus">
|
|
|
- <div class="equipIcon">
|
|
|
- <img src="@/assets/images/forecasting/cbd/staticIcon10.png" alt />
|
|
|
- </div>
|
|
|
- <div class="equipParams">
|
|
|
- <strong>{{equipStatus.tpl}}</strong>
|
|
|
- <p>低温限值</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
</el-row>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<div class="dataTableSearch">
|
|
|
<div>
|
|
|
- <el-button type="primary" size="mini">导出</el-button>
|
|
|
+ <!-- <el-button type="primary" size="mini">导出</el-button> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<el-card class="box-card" v-if="showControl">
|
|
|
@@ -323,8 +290,7 @@ export default {
|
|
|
['雨控状态', 'rps'],
|
|
|
['温控状态', 'tps'],
|
|
|
['光控状态', 'lps'],
|
|
|
- ['灯管状态', 'blbs'],
|
|
|
- ['信号强度', 'csq'],
|
|
|
+ ['电池电压(V)', 'vbat'],
|
|
|
['上报时间', 'addtime']
|
|
|
],
|
|
|
// 表格数据
|
|
|
@@ -333,8 +299,7 @@ export default {
|
|
|
queryInfo: {
|
|
|
begin: '',
|
|
|
end: '',
|
|
|
- e_id: this.$route.params.e_id,
|
|
|
- d_id: this.$route.params.d_id,
|
|
|
+ e_id: this.$route.query.e_id,
|
|
|
page: 1
|
|
|
},
|
|
|
//图表实时否有数据
|
|
|
@@ -403,159 +368,142 @@ export default {
|
|
|
getChartLine() {
|
|
|
this.$axios({
|
|
|
method: 'POST',
|
|
|
- url: '/api/api_gateway?method=forecast.worm_lamp.device_polyline_data',
|
|
|
+ url: '/api/cbd_report_detail_chart',
|
|
|
data: this.qs.stringify({
|
|
|
- device_type_id: 3,
|
|
|
- // device_id: this.queryInfo.e_id,
|
|
|
- d_id: this.queryInfo.e_id,
|
|
|
- start_time: this.queryInfo.begin,
|
|
|
- end_time: this.queryInfo.end
|
|
|
+ req: 'filter',
|
|
|
+ begin: this.queryInfo.begin,
|
|
|
+ end: this.queryInfo.end,
|
|
|
+ id: this.$route.query.id
|
|
|
})
|
|
|
}).then((res) => {
|
|
|
- if (res.data.message == '') {
|
|
|
- var ChartData = [
|
|
|
- {
|
|
|
- name: '温度(°C)',
|
|
|
- dat: []
|
|
|
- },
|
|
|
- {
|
|
|
- name: '湿度(%)',
|
|
|
- dat: []
|
|
|
- },
|
|
|
- {
|
|
|
- name: '加热仓温度(°C)',
|
|
|
- dat: []
|
|
|
- }
|
|
|
- ]
|
|
|
- var data = res.data.data
|
|
|
- this.options = {}
|
|
|
- if (data.length > 0) {
|
|
|
- for (let item of data) {
|
|
|
- ChartData[0].dat.unshift([
|
|
|
- item.addtime * 1000 + 8 * 3600000,
|
|
|
- Number(item.temperature)
|
|
|
- ])
|
|
|
- ChartData[1].dat.unshift([
|
|
|
- item.addtime * 1000 + 8 * 3600000,
|
|
|
- Number(item.humidity)
|
|
|
- ])
|
|
|
- ChartData[2].dat.unshift([
|
|
|
- item.addtime * 1000 + 8 * 3600000,
|
|
|
- Number(item.others)
|
|
|
- ])
|
|
|
- }
|
|
|
- this.options = {
|
|
|
- chart: {
|
|
|
- zoomType: 'x'
|
|
|
- },
|
|
|
- title: {
|
|
|
- text: '环境温湿度',
|
|
|
- align: 'left'
|
|
|
- },
|
|
|
- subtitle: {
|
|
|
- text: ''
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- crosshair: true, //十字基准线
|
|
|
- type: 'datetime',
|
|
|
- dateTimeLabelFormats: {
|
|
|
- //根据时间间距X轴自动显示哪种格式
|
|
|
- millisecond: '%H:%M:%S.%L',
|
|
|
- second: '%H:%M:%S',
|
|
|
- minute: '%H:%M',
|
|
|
- hour: '%H:%M',
|
|
|
- day: '%m-%d',
|
|
|
- week: '%m-%d',
|
|
|
- month: '%Y-%m',
|
|
|
- year: '%Y'
|
|
|
- }
|
|
|
- },
|
|
|
- yAxis: {
|
|
|
+ if(res.data.length>0){
|
|
|
+ var at = [],ah = [];
|
|
|
+ for(var i = 0;i<res.data.length;i++){
|
|
|
+ at.push([this.returnTime(res.data[i].tim),res.data[i].at])
|
|
|
+ ah.push([this.returnTime(res.data[i].tim),res.data[i].ah])
|
|
|
+ if(i == res.data.length-1){
|
|
|
+ this.options = {
|
|
|
+ chart: {
|
|
|
+ zoomType: 'x',
|
|
|
+ height: 360,
|
|
|
+ },
|
|
|
title: {
|
|
|
+ text: '环境温湿度',
|
|
|
+ align: 'left'
|
|
|
+ },
|
|
|
+ subtitle: {
|
|
|
text: ''
|
|
|
- }
|
|
|
- },
|
|
|
- legend: {
|
|
|
- // layout: 'vertical',
|
|
|
- align: 'right',
|
|
|
- verticalAlign: 'top'
|
|
|
- },
|
|
|
- plotOptions: {
|
|
|
- series: {
|
|
|
- label: {
|
|
|
- connectorAllowed: false
|
|
|
- },
|
|
|
- pointStart: 2010
|
|
|
- }
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: ChartData[0].name,
|
|
|
- data: ChartData[0].dat
|
|
|
},
|
|
|
- {
|
|
|
- name: ChartData[1].name,
|
|
|
- data: ChartData[1].dat
|
|
|
+ xAxis: {
|
|
|
+ crosshair: true, //十字基准线
|
|
|
+ type: 'datetime',
|
|
|
+ dateTimeLabelFormats: {
|
|
|
+ //根据时间间距X轴自动显示哪种格式
|
|
|
+ millisecond: '%H:%M:%S.%L',
|
|
|
+ second: '%H:%M:%S',
|
|
|
+ minute: '%H:%M',
|
|
|
+ hour: '%H:%M',
|
|
|
+ day: '%m-%d',
|
|
|
+ week: '%m-%d',
|
|
|
+ month: '%Y-%m',
|
|
|
+ year: '%Y'
|
|
|
+ }
|
|
|
},
|
|
|
- {
|
|
|
- name: ChartData[2].name,
|
|
|
- data: ChartData[2].dat
|
|
|
- }
|
|
|
- ],
|
|
|
- colors: ['#00e29d', '#6cbbff', '#ff3f3f'],
|
|
|
- credits: {
|
|
|
- //去掉默认的highcharts.com
|
|
|
- enabled: false
|
|
|
- },
|
|
|
- tooltip: {
|
|
|
- // crosshairs: true,
|
|
|
- shared: true, //折线共享
|
|
|
- headerFormat: '<b>{point.x:%Y-%m-%e %H:%M:%S}</b><br>'
|
|
|
- },
|
|
|
- responsive: {
|
|
|
- rules: [
|
|
|
- {
|
|
|
- condition: {
|
|
|
- maxWidth: 500
|
|
|
+ yAxis: {
|
|
|
+ title: {
|
|
|
+ text: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ // layout: 'vertical',
|
|
|
+ align: 'right',
|
|
|
+ verticalAlign: 'top'
|
|
|
+ },
|
|
|
+ plotOptions: {
|
|
|
+ series: {
|
|
|
+ label: {
|
|
|
+ connectorAllowed: false
|
|
|
},
|
|
|
- chartOptions: {
|
|
|
- legend: {
|
|
|
- layout: 'horizontal',
|
|
|
- align: 'center',
|
|
|
- verticalAlign: 'bottom'
|
|
|
+ pointStart: 2010
|
|
|
+ }
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '环境湿度',
|
|
|
+ data: ah
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '环境温度',
|
|
|
+ data: at
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ colors: ['#00e29d', '#6cbbff', '#ff3f3f'],
|
|
|
+ credits: {
|
|
|
+ //去掉默认的highcharts.com
|
|
|
+ enabled: false
|
|
|
+ },
|
|
|
+ tooltip: {
|
|
|
+ // crosshairs: true,
|
|
|
+ shared: true, //折线共享
|
|
|
+ headerFormat: '<b>{point.x:%Y-%m-%e %H:%M:%S}</b><br>'
|
|
|
+ },
|
|
|
+ responsive: {
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ condition: {
|
|
|
+ maxWidth: 500
|
|
|
+ },
|
|
|
+ chartOptions: {
|
|
|
+ legend: {
|
|
|
+ layout: 'horizontal',
|
|
|
+ align: 'center',
|
|
|
+ verticalAlign: 'bottom'
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- ]
|
|
|
+ ]
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }else{
|
|
|
+ this.options = {};
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ // 返回时间戳
|
|
|
+ returnTime(time) {
|
|
|
+ var thisTime = time.replace(/-/g, '/');
|
|
|
+ var time = new Date(thisTime);
|
|
|
+ var timestamp = time.getTime() + 8 * 3600000;
|
|
|
+ return timestamp;
|
|
|
+ },
|
|
|
// 获取状态信息
|
|
|
getEquipStatus() {
|
|
|
this.$axios({
|
|
|
method: 'POST',
|
|
|
- url: '/api/api_gateway?method=forecast.worm_lamp.device_status_data',
|
|
|
+ url: '/api/equipmanage_cbd_detail',
|
|
|
data: this.qs.stringify({
|
|
|
- device_id: this.queryInfo.e_id
|
|
|
+ id: this.$route.query.id
|
|
|
})
|
|
|
}).then((res) => {
|
|
|
- if (res.data.message == '') {
|
|
|
- this.equipStatus = res.data.data;
|
|
|
- if(res.data.data.dver.indexOf('HK') != '-1'){ //判断版本是否包含HK的
|
|
|
- this.showHksimFlag = true;
|
|
|
- }else{
|
|
|
- this.showHksimFlag = false;
|
|
|
- }
|
|
|
- }
|
|
|
+ var datStr = res.data[0].cbd_status;
|
|
|
+ var dat = eval('('+datStr+')');
|
|
|
+ this.equipStatus = {
|
|
|
+ dver:dat.dver,
|
|
|
+ csq:dat.csq,
|
|
|
+ upds:dat.upds,
|
|
|
+ hs:dat.hs,
|
|
|
+ gs:dat.gs,
|
|
|
+ ts:dat.ts,
|
|
|
+ device_status:dat.is_online,
|
|
|
+ };
|
|
|
})
|
|
|
},
|
|
|
dateChange(data) {
|
|
|
this.queryInfo.page = 1
|
|
|
- this.queryInfo.begin = data.begin
|
|
|
- this.queryInfo.end = data.end
|
|
|
+ this.queryInfo.begin = new Date(data.begin*1000).toLocaleDateString().replace(/\//g,'-');
|
|
|
+ this.queryInfo.end = new Date(data.end*1000).toLocaleDateString().replace(/\//g,'-');
|
|
|
this.getChartLine()
|
|
|
this.getHisDataList()
|
|
|
},
|
|
|
@@ -563,44 +511,33 @@ export default {
|
|
|
getHisDataList() {
|
|
|
this.$axios({
|
|
|
method: 'POST',
|
|
|
- url: '/api/api_gateway?method=forecast.worm_lamp.device_history_data',
|
|
|
+ url: '/api/cbd_report_detail',
|
|
|
data: this.qs.stringify({
|
|
|
- device_type_id: 3,
|
|
|
- device_id: this.queryInfo.e_id,
|
|
|
- start_time: this.queryInfo.begin,
|
|
|
- end_time: this.queryInfo.end,
|
|
|
- page: this.queryInfo.page
|
|
|
+ page: this.queryInfo.page,
|
|
|
+ req: 'filter',
|
|
|
+ id: this.$route.query.id,
|
|
|
+ begin: this.queryInfo.begin,
|
|
|
+ end: this.queryInfo.end
|
|
|
})
|
|
|
}).then((res) => {
|
|
|
- if (res.data.message == '') {
|
|
|
- this.total = res.data.data.counts
|
|
|
- var data = res.data.data.data
|
|
|
- this.tableData = []
|
|
|
- if (data.length > 0) {
|
|
|
- for (var i = 0; i < data.length; i++) {
|
|
|
- var dht = data[i].d_h_t
|
|
|
- dht.addtime = this.formatTime(dht.addtime * 1000)
|
|
|
- dht.rps = dht.rps == 0 ? '正常' : '雨控'
|
|
|
- dht.tps = dht.tps == 0 ? '正常' : '温控'
|
|
|
- dht.lps = dht.lps == 0 ? '正常' : '光控'
|
|
|
- if (dht.lamp != undefined) {
|
|
|
- if (dht.ws == 1) {
|
|
|
- if (dht.lamp == 1) {
|
|
|
- dht.blbs = '工作中'
|
|
|
- } else if (dht.lux == 0) {
|
|
|
- dht.blbs = 'N/A(未检测到传感器)'
|
|
|
- } else {
|
|
|
- dht.blbs = '异常'
|
|
|
- }
|
|
|
- } else {
|
|
|
- dht.blbs = '关闭'
|
|
|
- }
|
|
|
- } else {
|
|
|
- dht.blbs = '--'
|
|
|
- }
|
|
|
- this.tableData.push(dht)
|
|
|
- }
|
|
|
- }
|
|
|
+ this.tableData = []
|
|
|
+ this.total = res.data.nums
|
|
|
+ var dat = res.data.dat
|
|
|
+ for (var i = 0; i < dat.length; i++) {
|
|
|
+ var cbd_data = eval('('+dat[i].cbd_data+')')
|
|
|
+ var rps = cbd_data.rps == 0 ? '正常' : '雨控';
|
|
|
+ var tps = cbd_data.tps == 0 ? '正常' : '温控';
|
|
|
+ var lps = cbd_data.lps == 0 ? '正常' : '光控';
|
|
|
+ this.tableData.push({
|
|
|
+ at:cbd_data.at,
|
|
|
+ ah:cbd_data.ah,
|
|
|
+ hrt:cbd_data.hrt,
|
|
|
+ rps:rps,
|
|
|
+ tps:tps,
|
|
|
+ lps:lps,
|
|
|
+ vbat:cbd_data.vbat,
|
|
|
+ addtime:dat[i].upl_time
|
|
|
+ })
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
@@ -711,14 +648,14 @@ export default {
|
|
|
refresh() {
|
|
|
this.$axios({
|
|
|
method: 'POST',
|
|
|
- url: '/api/api_gateway?method=forecast.send_control.get_device_config',
|
|
|
+ url: '/api/cbd_mqtt',
|
|
|
data: this.qs.stringify({
|
|
|
- device_type_id: 3,
|
|
|
- d_id: this.queryInfo.d_id,
|
|
|
- control_type: 'data'
|
|
|
+ req: 'read',
|
|
|
+ topicid: this.$route.query.id,
|
|
|
+ kind: 'status'
|
|
|
})
|
|
|
}).then((res) => {
|
|
|
- if (res.data.data) {
|
|
|
+ if (res.data == 0) {
|
|
|
this.$message.success('刷新成功')
|
|
|
} else {
|
|
|
this.$message.err('刷新失败')
|
|
|
@@ -757,7 +694,10 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.charts {
|
|
|
- height: 450px;
|
|
|
+ height: 360px;
|
|
|
+ highcharts{
|
|
|
+ height: 360px;
|
|
|
+ }
|
|
|
}
|
|
|
.equipStatus {
|
|
|
display: flex;
|