智能施肥机添加
This commit is contained in:
parent
a3e4b319c3
commit
d2591392b2
@ -252,6 +252,16 @@ export default {
|
||||
getSeldevicebyid(data) {
|
||||
return sendGetRequest(`/admin/seldevicebyid`, data);
|
||||
},
|
||||
// ID13的大数据里智能施肥机页面接口
|
||||
pinfengGetstate(data) {
|
||||
return sendPostRequest(`/pinfeng/getstate`, data);
|
||||
},
|
||||
pinfengGetrtdata(data) {
|
||||
return sendPostRequest(`/pinfeng/getrtdata`, data);
|
||||
},
|
||||
pinfengSetdevice(data) {
|
||||
return sendPostRequest(`/pinfeng/setdevice`, data);
|
||||
},
|
||||
//根据用户id查询对应的设备数据
|
||||
getEqbyid(data) {
|
||||
return sendGetRequest(`/sel/eqbyid/` + data, ``);
|
||||
|
@ -2259,6 +2259,22 @@ textarea {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.realTime .page-content .realTime-bottom.videoMonitoring-monitor.center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.realTime .page-content .realTime-bottom.videoMonitoring-monitor.center .left-view {
|
||||
width: calc(100% - 400px);
|
||||
}
|
||||
|
||||
.realTime .page-content .realTime-bottom.videoMonitoring-monitor.center .monitor {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.realTime .page-content .realTime-bottom.videoMonitoring-monitor.center .monitor .video-js {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.realTime .page-content .realTime-bottom > div {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
@ -2336,10 +2352,6 @@ textarea {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.realTime .page-content .realTime-bottom .left-view > div.center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.realTime .page-content .realTime-bottom .left-view > div .video-js {
|
||||
width: calc(100% - 400px);
|
||||
height: 100%;
|
||||
@ -4070,15 +4082,35 @@ textarea {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.model-sel .w-100 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.model-sel .el-switch__label {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.model-sel .el-switch__label.is-active {
|
||||
color: #409EFF;
|
||||
}
|
||||
|
||||
.model-sel.largeScreen4 {
|
||||
max-height: 500px;
|
||||
}
|
||||
|
||||
.model-sel > div {
|
||||
width: 33%;
|
||||
width: 25%;
|
||||
margin-bottom: 20px;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
display: block;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.model-sel > div .label {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.setsuyuan {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -2394,6 +2394,19 @@ textarea {
|
||||
.left-view {
|
||||
width: 100%;
|
||||
}
|
||||
&.center{
|
||||
justify-content: center;
|
||||
|
||||
.left-view {
|
||||
width: calc(100% - 400px);
|
||||
}
|
||||
.monitor{
|
||||
width: 100%;
|
||||
.video-js{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
>div {
|
||||
@ -2472,9 +2485,7 @@ textarea {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
&.center{
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.video-js {
|
||||
width: calc(100% - 400px);
|
||||
height: 100%;
|
||||
@ -4326,14 +4337,28 @@ textarea {
|
||||
overflow: auto;
|
||||
padding: 0 30px;
|
||||
color: #fff;
|
||||
|
||||
.w-100{
|
||||
width: 100%;
|
||||
}
|
||||
.el-switch__label{
|
||||
color: #fff;
|
||||
&.is-active{
|
||||
color: #409EFF;
|
||||
}
|
||||
}
|
||||
&.largeScreen4{
|
||||
max-height: 500px;
|
||||
}
|
||||
>div {
|
||||
width: 33%;
|
||||
width: 25%;
|
||||
margin-bottom: 20px;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
display: block;
|
||||
align-items: center;
|
||||
.label{
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -4,83 +4,83 @@
|
||||
<largeNav :active="3"></largeNav>
|
||||
<div class="content-left">
|
||||
<div class="left-view1">
|
||||
<div class="main-title"><span>{{$t('status.irrigationStatus')}} </span></div>
|
||||
<div class="view-content">
|
||||
<div>
|
||||
<div class="input-50">
|
||||
<div class="input-title">{{$t('status.remainingTime')}}</div>
|
||||
<div class="input">{{ countData(inputData['36']) }}</div>
|
||||
<div class="input-title">工作状态</div>
|
||||
<div class="input">{{ newData.Data_3=='0'?'待机':'自动运行' }}</div>
|
||||
</div>
|
||||
<div class="input-50">
|
||||
<div class="input-title">{{$t('status.instantFlow')}}</div>
|
||||
<div class="input">{{ countData(inputData['28']) }}</div>
|
||||
<div class="input-title">控制方式</div>
|
||||
<div class="input">{{ newData.Data_2=='0'?'手动':'自动' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="input-50">
|
||||
<div class="input-title">{{$t('status.currentVolume')}}</div>
|
||||
<div class="input">{{ countData(inputData['37']) }}</div>
|
||||
<div class="input-title">自动工作方式</div>
|
||||
<div class="input">{{ getType3(newData.Data_3) }}</div>
|
||||
</div>
|
||||
<div class="input-50">
|
||||
<div class="input-title">{{$t('status.startupMethod')}}</div>
|
||||
<div class="input green">{{ openType }}</div>
|
||||
<div class="input-50 w-100">
|
||||
<div class="input-title">吸肥泵压力 MP</div>
|
||||
<div class="input green">{{ newData1.Data_35 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="input-50">
|
||||
<div class="input-title">{{$t('status.formulaNumber')}}</div>
|
||||
<div class="input">{{ countData(inputData['31']) }}</div>
|
||||
<div class="input-50 w-100">
|
||||
<div class="input-title">主管道累计流量 m³</div>
|
||||
<div class="input green">{{ newData1.Data_33 }}</div>
|
||||
</div>
|
||||
<div class="input-50">
|
||||
<div class="input-title">{{$t('status.executingGroup')}}</div>
|
||||
<div class="input">{{ countData(inputData['38']) }}</div>
|
||||
<div class="input-50 w-100">
|
||||
<div class="input-title">主管道瞬时流量 m³/H</div>
|
||||
<div class="input green">{{ newData1.Data_34?Number(newData1.Data_34).toFixed(2):'0' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="left-btn">
|
||||
<div :class="left1Act[1]==1 ? 'active' : ''">{{$t('status.inletPump')}}</div>
|
||||
<div :class="left1Act[0]==1 ? 'active' : ''">{{$t('status.fertilizerPump')}}</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="left-btn">
|
||||
<div :class="newData.Data_4==1 ? 'active' : ''">水泵</div>
|
||||
<div :class="newData.Data_5==1 ? 'active' : ''">吸肥泵</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="left-view2">
|
||||
<div class="main-title"><span>{{$t('status.fertilizerIntensity')}} </span></div>
|
||||
<div class="main-title"><span>输出脉宽</span></div>
|
||||
<div class="view-content">
|
||||
<div v-for="item, index in left2List" :key="index">
|
||||
<div class="left" :style="item.img ? `background: url(${item.img}) no-repeat center;` : ''"><span>{{
|
||||
item.title }}</span></div>
|
||||
<div class="name">{{ item.name }}</div>
|
||||
<!-- <div class="name">{{ item.name }}</div> -->
|
||||
<div class="number">{{ item.number }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-center">
|
||||
<div class="center-title"><span v-if="deviceDetail">{{ deviceDetail.stationName }}</span></div>
|
||||
<div class="center-title"><span>智能施肥机</span></div>
|
||||
<div>
|
||||
<div class="center-center">
|
||||
<div class="view view-1">
|
||||
<div class="name">{{$t('status.targetPH')}}</div>
|
||||
<div class="number">{{ countData100(inputData['6']) }}</div>
|
||||
<div class="name">PH实际值</div>
|
||||
<div class="number">{{ countType5(newData1.Data_2) }}</div>
|
||||
</div>
|
||||
<div class="view view-2">
|
||||
<div class="name">{{$t('status.measuredPH')}}</div>
|
||||
<div class="number">{{ countData100(inputData['8']) }}</div>
|
||||
<!-- <div class="view view-2">
|
||||
<div class="name">2#PH</div>
|
||||
<div class="number">{{ newData.Data_10 }}</div>
|
||||
</div>
|
||||
<div class="view view-3">
|
||||
<div class="name">{{$t('status.measuredEC')}}</div>
|
||||
<div class="number">{{ countData100(inputData['9']) }}</div>
|
||||
</div>
|
||||
<div class="name">1#EC</div>
|
||||
<div class="number">{{ newData.Data_11 }}</div>
|
||||
</div> -->
|
||||
<div class="view view-4">
|
||||
<div class="name">{{$t('status.targetEC')}}</div>
|
||||
<div class="number">{{ countData100(inputData['7']) }}</div>
|
||||
<div class="name">EC实际值</div>
|
||||
<div class="number">{{ countType5(newData1.Data_1) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="center-bottom">
|
||||
<div class="center-bottom-title"><span>{{$t('status.solenoidValveStatus')}}</span></div>
|
||||
<div class="center-bottom-title"><span>田间阀状态</span></div>
|
||||
<div class="center-bottom-flex">
|
||||
<template v-for="item, index in 64">
|
||||
<div v-if="centerBottom.indexOf(index) != -1">
|
||||
<template v-for="item, index in 40">
|
||||
<div v-if="newData['Data_'+(index+1+20)] == '1'">
|
||||
<span> {{ index + 1 }}#</span>
|
||||
<img src="../../assets/image/center-flex-active.png" alt="">
|
||||
</div>
|
||||
@ -92,40 +92,15 @@
|
||||
</div>
|
||||
<div class="content-right">
|
||||
<div class="right-view1">
|
||||
<div class="main-table-title">
|
||||
<div>{{$t('status.sensorData')}}</div>
|
||||
<div>{{$t('status.value')}}</div>
|
||||
<div>{{$t('status.adValue')}}</div>
|
||||
</div>
|
||||
<div class="table-content">
|
||||
<div class="seamless-warp" v-if="!loading">
|
||||
<div class="tr" v-for="item, index in tableList1" :key="index" :class="'tr-' + (index + 1)">
|
||||
<div class="td name">
|
||||
<div>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="td number">{{ item.data }}</div>
|
||||
<div class="td ADnumber">{{ item.ADdata }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <vue-seamless class="seamless-warp" :data="tableList1" :class-option="defaultOption">
|
||||
<div class="main-title"><span>设备状态 </span></div>
|
||||
|
||||
</vue-seamless> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="right-view2">
|
||||
<div>
|
||||
<div v-for="item, index in rightList2.slice(0, 4)"
|
||||
:class="right2Index.indexOf(index) != -1 ? 'active' : ''">{{ item }}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div v-for="item, index in rightList2.slice(4, 8)"
|
||||
:class="right2Index.indexOf(index + 4) != -1 ? 'active' : ''">{{ item }}</div>
|
||||
</div>
|
||||
<div v-for="item, index in rightList2"
|
||||
:class="newData[item.value] == 1 ? 'active' : ''">{{ item.label }}</div>
|
||||
</div>
|
||||
<div class="right-view3">
|
||||
<div class="main-title"><span>{{$t('status.fertilizationSpeed')}} (L/h) </span></div>
|
||||
<div class="main-title"><span>吸肥阀运行状态 </span></div>
|
||||
<div class="view-content">
|
||||
<div v-for="item, index in rightList3" :key="index">
|
||||
<div class="name">{{ item.name }}</div>
|
||||
@ -133,12 +108,49 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right-view4">
|
||||
<el-button type="primary" @click="openModel">修改设定值</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog title="修改设定值" :append-to-body="true" :visible.sync="statusShow" width="70%">
|
||||
<div class="model-title">修改设定值</div>
|
||||
<div class="model-sel largeScreen4 scroll">
|
||||
<div v-for="item, index in statusList" :key="index">
|
||||
<div class="w-100 label">
|
||||
{{ item.label }}
|
||||
</div>
|
||||
<div>
|
||||
<span>当前状态:</span>
|
||||
<el-switch
|
||||
v-if="index==0"
|
||||
v-model="item.value"
|
||||
active-value="1"
|
||||
inactive-value="0"
|
||||
active-text="手动"
|
||||
@change='setData($event,item)'
|
||||
inactive-text="自动">
|
||||
</el-switch>
|
||||
<el-switch
|
||||
v-if="index!=0"
|
||||
v-model="item.value"
|
||||
@change='setData($event,item)'
|
||||
active-value="1"
|
||||
inactive-value="0">
|
||||
</el-switch>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="statusShow = false">确认</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import largeNav from '@/components/large-nav.vue'
|
||||
import vueSeamless from 'vue-seamless-scroll'
|
||||
import { log } from 'video.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -153,6 +165,111 @@ export default {
|
||||
numberList: [273, 278, 283, 288, 293, 298],
|
||||
inputData1: [],
|
||||
loading: true,
|
||||
newData:{},//pinfengGetstate接口
|
||||
newData1:{},//pinfengGetrtdata接口
|
||||
rightList2:[
|
||||
{label:'水泵',value:'Data_4'},
|
||||
{label:'吸肥泵',value:'Data_5'},
|
||||
{label:'1#搅拌',value:'Data_16'},
|
||||
{label:'2#搅拌',value:'Data_17'},
|
||||
{label:'3#搅拌',value:'Data_18'},
|
||||
{label:'4#搅拌',value:'Data_19'},
|
||||
{label:'5#搅拌',value:'Data_20'},
|
||||
],
|
||||
rightList3:[{
|
||||
name: '1#',
|
||||
number: '0',
|
||||
}, {
|
||||
name: '2#',
|
||||
number: '0',
|
||||
}, {
|
||||
name: '3#',
|
||||
number: '0',
|
||||
}, {
|
||||
name: '4#',
|
||||
number: '0',
|
||||
}, {
|
||||
name: '5#',
|
||||
number: '0',
|
||||
},],
|
||||
left2List:[
|
||||
{
|
||||
title: '1#',
|
||||
name:'',
|
||||
number: '0%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '2#',
|
||||
name:'',
|
||||
number: '0%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '3#',
|
||||
name:'',
|
||||
number: '0%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '4#',
|
||||
name:'',
|
||||
number: '0%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '5#',
|
||||
name:'',
|
||||
number: '0%',
|
||||
img: ''
|
||||
},
|
||||
],
|
||||
statusShow:false,
|
||||
statusList:[
|
||||
{label:'控制方式',value:0,name:'Data_2',changeName:'Data_1'},
|
||||
{label:'1#搅拌',value:0,name:'Data_16',changeName:'Data_4'},
|
||||
{label:'2#搅拌',value:0,name:'Data_17',changeName:'Data_5'},
|
||||
{label:'3#搅拌',value:0,name:'Data_18',changeName:'Data_6'},
|
||||
{label:'4#搅拌',value:0,name:'Data_19',changeName:'Data_7'},
|
||||
{label:'酸搅拌',value:0,name:'Data_20',changeName:'Data_8'},
|
||||
{label:'水泵',value:0,name:'Data_4',changeName:'Data_2'},
|
||||
{label:'肥泵',value:0,name:'Data_5',changeName:'Data_3'},
|
||||
{label:'1#阀',value:0,name:'Data_21',changeName:'Data_19'},
|
||||
{label:'2#阀',value:0,name:'Data_22',changeName:'Data_20'},
|
||||
{label:'3#阀',value:0,name:'Data_23',changeName:'Data_21'},
|
||||
{label:'4#阀',value:0,name:'Data_24',changeName:'Data_22'},
|
||||
{label:'5#阀',value:0,name:'Data_25',changeName:'Data_23'},
|
||||
{label:'6#阀',value:0,name:'Data_26',changeName:'Data_24'},
|
||||
{label:'7#阀',value:0,name:'Data_27',changeName:'Data_25'},
|
||||
{label:'8#阀',value:0,name:'Data_28',changeName:'Data_26'},
|
||||
{label:'9#阀',value:0,name:'Data_29',changeName:'Data_27'},
|
||||
{label:'10#阀',value:0,name:'Data_30',changeName:'Data_28'},
|
||||
{label:'11#阀',value:0,name:'Data_31',changeName:'Data_29'},
|
||||
{label:'12#阀',value:0,name:'Data_32',changeName:'Data_30'},
|
||||
{label:'13#阀',value:0,name:'Data_33',changeName:'Data_31'},
|
||||
{label:'14#阀',value:0,name:'Data_34',changeName:'Data_32'},
|
||||
{label:'15#阀',value:0,name:'Data_35',changeName:'Data_33'},
|
||||
{label:'16#阀',value:0,name:'Data_36',changeName:'Data_34'},
|
||||
{label:'17#阀',value:0,name:'Data_37',changeName:'Data_35'},
|
||||
{label:'18#阀',value:0,name:'Data_38',changeName:'Data_36'},
|
||||
{label:'19#阀',value:0,name:'Data_39',changeName:'Data_37'},
|
||||
{label:'20#阀',value:0,name:'Data_40',changeName:'Data_38'},
|
||||
{label:'21#阀',value:0,name:'Data_41',changeName:'Data_39'},
|
||||
{label:'22#阀',value:0,name:'Data_42',changeName:'Data_40'},
|
||||
{label:'23#阀',value:0,name:'Data_43',changeName:'Data_41'},
|
||||
{label:'24#阀',value:0,name:'Data_44',changeName:'Data_42'},
|
||||
{label:'25#阀',value:0,name:'Data_45',changeName:'Data_43'},
|
||||
{label:'26#阀',value:0,name:'Data_46',changeName:'Data_44'},
|
||||
{label:'27#阀',value:0,name:'Data_47',changeName:'Data_45'},
|
||||
{label:'28#阀',value:0,name:'Data_48',changeName:'Data_46'},
|
||||
{label:'29#阀',value:0,name:'Data_49',changeName:'Data_47'},
|
||||
{label:'30#阀',value:0,name:'Data_50',changeName:'Data_48'},
|
||||
{label:'31#阀',value:0,name:'Data_51',changeName:'Data_49'},
|
||||
{label:'32#阀',value:0,name:'Data_52',changeName:'Data_50'},
|
||||
{label:'33#阀',value:0,name:'Data_53',changeName:'Data_51'},
|
||||
{label:'34#阀',value:0,name:'Data_54',changeName:'Data_52'},
|
||||
{label:'35#阀',value:0,name:'Data_55',changeName:'Data_53'},
|
||||
{label:'36#阀',value:0,name:'Data_56',changeName:'Data_54'},
|
||||
{label:'37#阀',value:0,name:'Data_57',changeName:'Data_55'},
|
||||
{label:'38#阀',value:0,name:'Data_58',changeName:'Data_56'},
|
||||
{label:'39#阀',value:0,name:'Data_59',changeName:'Data_57'},
|
||||
{label:'40#阀',value:0,name:'Data_60',changeName:'Data_58'}]
|
||||
}
|
||||
},
|
||||
components: { vueSeamless,largeNav },
|
||||
@ -169,130 +286,8 @@ export default {
|
||||
waitTime: 1000 // 单步运动停止的时间(默认值1000ms)
|
||||
}
|
||||
},
|
||||
left2List(){
|
||||
var data=[
|
||||
{
|
||||
title: 'A',
|
||||
name: this.$t('status.fertilizerTypes.a'),
|
||||
number: '26%',
|
||||
img: ''
|
||||
}, {
|
||||
title: 'B',
|
||||
name: this.$t('status.fertilizerTypes.b'),
|
||||
number: '26%',
|
||||
img: ''
|
||||
}, {
|
||||
title: 'C',
|
||||
name: this.$t('status.fertilizerTypes.c'),
|
||||
number: '26%',
|
||||
img: ''
|
||||
}, {
|
||||
title: 'D',
|
||||
name: this.$t('status.fertilizerTypes.d'),
|
||||
number: '26%',
|
||||
img: ''
|
||||
}, {
|
||||
title: 'E',
|
||||
name: this.$t('status.fertilizerTypes.e'),
|
||||
number: '26%',
|
||||
img: ''
|
||||
}, {
|
||||
title: 'F',
|
||||
name: this.$t('status.fertilizerTypes.f'),
|
||||
number: '26%',
|
||||
img: ''
|
||||
}, {
|
||||
title: 'G',
|
||||
name: this.$t('status.fertilizerTypes.g'),
|
||||
number: '26%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '',
|
||||
name: this.$t('status.fertilizerTypes.acid'),
|
||||
number: '26%',
|
||||
img: require('../../assets/image/left2-icon1.png')
|
||||
},
|
||||
]
|
||||
return data
|
||||
},
|
||||
rightList3(){
|
||||
var data=[
|
||||
{
|
||||
name: this.$t('status.fertilizerTypes.a'),
|
||||
number: '0',
|
||||
}, {
|
||||
name: this.$t('status.fertilizerTypes.b'),
|
||||
number: '0',
|
||||
}, {
|
||||
name: this.$t('status.fertilizerTypes.c'),
|
||||
number: '0',
|
||||
}, {
|
||||
name: this.$t('status.fertilizerTypes.d'),
|
||||
number: '0',
|
||||
}, {
|
||||
name: this.$t('status.fertilizerTypes.e'),
|
||||
number: '0',
|
||||
}, {
|
||||
name: this.$t('status.fertilizerTypes.f'),
|
||||
number: '0',
|
||||
}, {
|
||||
name: this.$t('status.fertilizerTypes.g'),
|
||||
number: '0',
|
||||
}, {
|
||||
name: this.$t('status.fertilizerTypes.acidFertilizer'),
|
||||
number: '0',
|
||||
},
|
||||
]
|
||||
return data
|
||||
},
|
||||
tableList1(){
|
||||
var data=[{
|
||||
name: this.$t('status.sensorTypes.ph'),
|
||||
data: '1#PH 0',
|
||||
ADdata: '2#PH 0',
|
||||
}, {
|
||||
name: this.$t('status.sensorTypes.ec'),
|
||||
data: '1#EC 0',
|
||||
ADdata: '2#EC 0',
|
||||
}, {
|
||||
name: this.$t('status.sensorTypes.generic',{index:1}),
|
||||
data: 0,
|
||||
ADdata: 0,
|
||||
}, {
|
||||
name: this.$t('status.sensorTypes.generic',{index:2}),
|
||||
data: 0,
|
||||
ADdata: 0,
|
||||
}, {
|
||||
name: this.$t('status.sensorTypes.generic',{index:3}),
|
||||
data: 0,
|
||||
ADdata: 0,
|
||||
}, {
|
||||
name: this.$t('status.sensorTypes.generic',{index:4}),
|
||||
data: 0,
|
||||
ADdata: 0,
|
||||
}, {
|
||||
name: this.$t('status.sensorTypes.generic',{index:5}),
|
||||
data: 0,
|
||||
ADdata: 0,
|
||||
}, {
|
||||
name: this.$t('status.sensorTypes.generic',{index:6}),
|
||||
data: 0,
|
||||
ADdata: 0,
|
||||
},]
|
||||
return data
|
||||
},
|
||||
rightList2(){
|
||||
var data= [this.$t('status.externalControlSignal1',{index:1}),
|
||||
this.$t('status.externalControlSignal1',{index:2}),
|
||||
this.$t('status.externalControlSignal1',{index:3}),
|
||||
this.$t('status.externalControlSignal1',{index:4}),
|
||||
this.$t('status.controlSignals.highLevel'),
|
||||
this.$t('status.controlSignals.mediumLevel'),
|
||||
this.$t('status.controlSignals.lowLevel'),
|
||||
this.$t('status.controlSignals.motor')
|
||||
]
|
||||
return data
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
//清除监听
|
||||
beforeDestroy() {
|
||||
@ -303,21 +298,19 @@ export default {
|
||||
mounted() {
|
||||
const that = this;
|
||||
if (localStorage.getItem('token')) {
|
||||
that.getEqbyid();
|
||||
that.getReg()
|
||||
this.dataInit()
|
||||
setTimeout(() => {
|
||||
that.pageTimer && clearInterval(that.pageTimer)
|
||||
that.pageTimer = setInterval(() => {
|
||||
that.getEqbyid();
|
||||
|
||||
}, 5000);
|
||||
that.dataInit()
|
||||
}, 10000);
|
||||
}, 0);
|
||||
} else {
|
||||
// this.$router.push({ name: 'login' })
|
||||
}
|
||||
this.$bus.$on('refreshData', (res) => {
|
||||
that.getEqbyid();
|
||||
})
|
||||
// this.$bus.$on('refreshData', (res) => {
|
||||
// that.getEqbyid();
|
||||
// })
|
||||
},
|
||||
methods: {
|
||||
//countType计算类型
|
||||
@ -343,107 +336,16 @@ export default {
|
||||
var num = (data - 1000) / 10
|
||||
return num.toFixed(2)
|
||||
},
|
||||
getTypeData(dataCode, typeCode) {
|
||||
var typeList = this.$store.state.typeList
|
||||
|
||||
var countType = 0
|
||||
typeList.forEach((el, index) => {
|
||||
|
||||
if (el.value == this.inputData1[typeCode]) {
|
||||
countType = el.countType
|
||||
countType5(data) {
|
||||
if(data){
|
||||
var num = data / 100
|
||||
return num.toFixed(2)
|
||||
}else{
|
||||
return 0
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
if (countType == 0) {
|
||||
return this.inputData[dataCode]
|
||||
} else if (countType == 1) {
|
||||
return this.countType1(this.inputData[dataCode])
|
||||
} else if (countType == 2) {
|
||||
return this.countType2(this.inputData[dataCode])
|
||||
} else if (countType == 3) {
|
||||
return this.countType3(this.inputData[dataCode])
|
||||
}
|
||||
},
|
||||
getTabelList() {
|
||||
|
||||
var inputData = this.inputData
|
||||
this.tableList1[0] = {
|
||||
name: this.$t('status.sensorTypes.ph'),
|
||||
data: '1#PH ' + this.countData100(inputData['51']),
|
||||
ADdata: '2#PH ' + this.countData100(inputData['53']),
|
||||
}
|
||||
|
||||
this.tableList1[1] = {
|
||||
name: this.$t('status.sensorTypes.ec'),
|
||||
data: '1#EC ' + this.countData100(inputData['52']),
|
||||
ADdata: '2#EC ' + this.countData100(inputData['54']),
|
||||
}
|
||||
|
||||
this.tableList1[2] = {
|
||||
name: this.$t('status.sensorTypes.generic',{index:1}),
|
||||
data: this.getTypeData('40', '273'),
|
||||
ADdata: inputData['39'],
|
||||
}
|
||||
|
||||
this.tableList1[3] = {
|
||||
name: this.$t('status.sensorTypes.generic',{index:2}),
|
||||
data: this.getTypeData('42', '278'),
|
||||
ADdata: inputData['41'],
|
||||
}
|
||||
|
||||
this.tableList1[4] = {
|
||||
name: this.$t('status.sensorTypes.generic',{index:3}),
|
||||
data: this.getTypeData('44', '283'),
|
||||
ADdata: inputData['43'],
|
||||
}
|
||||
|
||||
this.tableList1[5] = {
|
||||
name: this.$t('status.sensorTypes.generic',{index:4}),
|
||||
data: this.getTypeData('46', '288'),
|
||||
ADdata: inputData['45'],
|
||||
}
|
||||
|
||||
this.tableList1[6] = {
|
||||
name: this.$t('status.sensorTypes.generic',{index:5}),
|
||||
data: this.getTypeData('48', '293'),
|
||||
ADdata: inputData['47'],
|
||||
}
|
||||
|
||||
this.tableList1[7] = {
|
||||
name: this.$t('status.sensorTypes.generic',{index:6}),
|
||||
data: this.getTypeData('50', '298'),
|
||||
ADdata: inputData['49'],
|
||||
}
|
||||
this.loading = false
|
||||
},
|
||||
getEqbyid() {
|
||||
var store = this.$store.state
|
||||
var list=[]
|
||||
this.$store.state.equipmentList.forEach((el, index) => {
|
||||
//链接中的deviceId
|
||||
if (this.deviceId && this.deviceId == el.deviceId) {
|
||||
this.$store.state.equipmentIndex = index + 1
|
||||
}
|
||||
|
||||
if (el.deviceName == 1) {
|
||||
list.push(el)
|
||||
}
|
||||
|
||||
})
|
||||
list.sort(this.compare('equipmentStatu'))
|
||||
console.log( list,111);
|
||||
this.deviceDetail = list.length?list[0]:{
|
||||
"deviceId": 2023042214250005,
|
||||
"deviceName": "10",
|
||||
"deviceState": "1",
|
||||
"deviceTypeName": "施肥机",
|
||||
"stationName": "施肥机",
|
||||
"equipmentStatu": 1,
|
||||
},
|
||||
this.dataInit()
|
||||
|
||||
},
|
||||
|
||||
compare(property) {
|
||||
return function (a, b) {
|
||||
let value1 = a[property];
|
||||
@ -451,47 +353,8 @@ export default {
|
||||
return value1 - value2;
|
||||
};
|
||||
},
|
||||
getcenterBottom() {
|
||||
this.centerBottom = []
|
||||
var inputData = this.inputData
|
||||
var list1 = this.padString(inputData['32'].toString(2), 16)
|
||||
var list2 = this.padString(inputData['33'].toString(2), 16)
|
||||
var list3 = this.padString(inputData['34'].toString(2), 16)
|
||||
var list4 = this.padString(inputData['35'].toString(2), 16)
|
||||
var number = 16
|
||||
for (var i = 0; i < number; i++) {
|
||||
if (Number(list1[list1.length - 1 - i])) {
|
||||
this.centerBottom.push(i)
|
||||
}
|
||||
}
|
||||
for (var j = 0; j < number; j++) {
|
||||
if (Number(list2[list2.length - 1 - j])) {
|
||||
this.centerBottom.push(j + 16)
|
||||
}
|
||||
}
|
||||
for (var k = 0; k < number; k++) {
|
||||
if (Number(list3[list3.length - 1 - k])) {
|
||||
this.centerBottom.push(k + 32)
|
||||
}
|
||||
}
|
||||
for (var l = 0; l < number; l++) {
|
||||
if (Number(list4[list4.length - 1 - l])) {
|
||||
this.centerBottom.push(l + 48)
|
||||
}
|
||||
}
|
||||
},
|
||||
getrightList3() {
|
||||
var list = [19, 20, 21, 22, 23, 24, 25, 27]
|
||||
list.forEach((el, index) => {
|
||||
this.rightList3[index].number = this.inputData[el]
|
||||
})
|
||||
},
|
||||
getleft2List() {
|
||||
var list = [10, 11, 12, 13, 14, 15, 16, 18]
|
||||
list.forEach((el, index) => {
|
||||
this.left2List[index].number = this.inputData[el] + '%'
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
countData(data) {
|
||||
if (data) {
|
||||
return data
|
||||
@ -509,98 +372,110 @@ export default {
|
||||
return 0
|
||||
}
|
||||
},
|
||||
getType29(index) {
|
||||
getType3(index) {
|
||||
if (index == 0) {
|
||||
return this.$t('status.startupMethods.manual')
|
||||
return '灌溉模式'
|
||||
} else if (index == 1) {
|
||||
return this.$t('status.startupMethods.externalControl')
|
||||
return 'EC施肥'
|
||||
} else if (index == 2) {
|
||||
return this.$t('status.startupMethods.lightAccumulation')
|
||||
return '定量施肥'
|
||||
} else if (index == 3) {
|
||||
return this.$t('status.startupMethods.soilMoistureControl')
|
||||
} else if (index == 4) {
|
||||
return this.$t('status.startupMethods.interval')
|
||||
} else if (index == 5) {
|
||||
return this.$t('status.startupMethods.timed')
|
||||
} else {
|
||||
return this.$t('status.startupMethods.none')
|
||||
return '定时施肥'
|
||||
}
|
||||
},
|
||||
//什么方式启动的灌溉
|
||||
getData29() {
|
||||
var number = this.padString(this.inputData['29'].toString(2), 14)
|
||||
var index = 6
|
||||
var typeNumber = -1
|
||||
|
||||
for (var i = 0; i < index; i++) {
|
||||
if (Number(number[i])) {
|
||||
typeNumber = i
|
||||
}
|
||||
}
|
||||
this.openType = this.getType29(typeNumber)
|
||||
|
||||
var statusIndex = 8
|
||||
var list=[]
|
||||
|
||||
for (var j = 0; j < statusIndex; j++) {
|
||||
if (Number(number[number.length - 1 - j])) {
|
||||
if (j == 0) {
|
||||
list.push('1')
|
||||
} else if (j == 1) {
|
||||
list.push('0')
|
||||
} else {
|
||||
list.push(j)
|
||||
}
|
||||
}
|
||||
}
|
||||
this.right2Index=list
|
||||
},
|
||||
//进水泵和出水泵状态
|
||||
getData30() {
|
||||
var number = this.padString(this.inputData['30'].toString(2), 2)
|
||||
this.left1Act=number
|
||||
},
|
||||
dataInit() {
|
||||
const that = this
|
||||
var deviceDetail = this.deviceDetail
|
||||
var data = {
|
||||
"equipmentId": deviceDetail.deviceId,
|
||||
"pattern": 0,//需要根据文档填写 //6目标ph-数值
|
||||
"regNum": 72
|
||||
}
|
||||
var week = [
|
||||
"星期日",
|
||||
"星期一",
|
||||
"星期二",
|
||||
"星期三",
|
||||
"星期四",
|
||||
"星期五",
|
||||
"星期六",
|
||||
]
|
||||
this.api.postState(data).then(res => {
|
||||
this.api.pinfengGetstate().then(res=>{
|
||||
if(res.data.code==200){
|
||||
this.inputData = res.data.data;
|
||||
this.getData30() //数据30/进水出水泵
|
||||
this.getData29()//数据29 启动方式/信号
|
||||
|
||||
|
||||
this.getleft2List()//获取左下角数据
|
||||
this.getrightList3()//获取又下角数据
|
||||
this.getcenterBottom()//获取电磁阀
|
||||
var h = this.checkTime(this.inputData[3])
|
||||
var m = this.checkTime(this.inputData[4])
|
||||
var month_ = this.checkTime(this.inputData[1])
|
||||
var date_ = this.checkTime(this.inputData[2])
|
||||
var time = {
|
||||
year: { year: this.inputData[0], month: month_, date: date_ },
|
||||
week: week[this.inputData[5]],
|
||||
time: h + ":" + m,
|
||||
}
|
||||
this.$bus.$emit('refreshTime', time)
|
||||
this.newData=res.data.data.result.data
|
||||
this.rightList3=[
|
||||
{
|
||||
name: '1#',
|
||||
number:`${this.newData.Data_6=='1'?'开启':'关闭'}`,
|
||||
}, {
|
||||
name: '2#',
|
||||
number:`${this.newData.Data_8=='1'?'开启':'关闭'}`,
|
||||
}, {
|
||||
name: '3#',
|
||||
number:`${this.newData.Data_10=='1'?'开启':'关闭'}`,
|
||||
}, {
|
||||
name: '4#',
|
||||
number:`${this.newData.Data_12=='1'?'开启':'关闭'}`,
|
||||
}, {
|
||||
name: '5#',
|
||||
number:`${this.newData.Data_14=='1'?'开启':'关闭'}`,
|
||||
},
|
||||
]
|
||||
this.left2List=[
|
||||
{
|
||||
title: '1#',
|
||||
name:'',
|
||||
number: this.newData.Data_7+'%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '2#',
|
||||
name:'',
|
||||
number: this.newData.Data_9+'%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '3#',
|
||||
name:'',
|
||||
number: this.newData.Data_11+'%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '4#',
|
||||
name:'',
|
||||
number: this.newData.Data_13+'%',
|
||||
img: ''
|
||||
}, {
|
||||
title: '5#',
|
||||
name:'',
|
||||
number: this.newData.Data_15+'%',
|
||||
img: ''
|
||||
},
|
||||
]
|
||||
}else{
|
||||
this.$message.error(res.data.msg);
|
||||
this.newData={}
|
||||
}
|
||||
|
||||
})
|
||||
this.api.pinfengGetrtdata().then(res=>{
|
||||
if(res.data.code==200){
|
||||
this.newData1=res.data.data.result.data
|
||||
}else{
|
||||
this.newData1={}
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
setData(e,item){
|
||||
var data={name:item.changeName,value:e}
|
||||
this.api.pinfengSetdevice(data).then(res=>{
|
||||
|
||||
if(res.data.code==200){
|
||||
this.$message.success('修改成功')
|
||||
this.newData[item.name]=e
|
||||
}else{
|
||||
this.$message.warning('修改失败')
|
||||
}
|
||||
})
|
||||
},
|
||||
openModel(){
|
||||
this.statusList= this.statusList.map(item=>{
|
||||
var data={
|
||||
...item,
|
||||
value:this.newData[item.name]
|
||||
}
|
||||
return data
|
||||
})
|
||||
setTimeout(() => {
|
||||
this.statusShow=true
|
||||
}, 0);
|
||||
|
||||
},
|
||||
checkTime(i) {
|
||||
@ -610,24 +485,7 @@ export default {
|
||||
|
||||
return i;
|
||||
},
|
||||
getReg() {
|
||||
var store = this.$store.state
|
||||
var deviceDetail = this.deviceDetail
|
||||
//获取传感器种类
|
||||
var data1 = {
|
||||
equipmentId: deviceDetail.deviceId,
|
||||
pattern: 272, //需要根据文档填写 //6目标ph-数值
|
||||
regNum: 31,//从pattern取多少个数据
|
||||
};
|
||||
this.api.postReg(data1).then((res) => {
|
||||
if (res.data.code == 200) {
|
||||
this.inputData1 = res.data.data;
|
||||
this.getTabelList()//右上角标题
|
||||
} else {
|
||||
this.$message.error(res.data.msg);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
@ -661,7 +519,7 @@ export default {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
justify-content: space-around;
|
||||
|
||||
>div {
|
||||
display: flex;
|
||||
@ -672,6 +530,8 @@ export default {
|
||||
|
||||
.input-50 {
|
||||
width: calc((100% - 14px) / 2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
.left-btn {
|
||||
@ -707,7 +567,7 @@ export default {
|
||||
width: 100%;
|
||||
|
||||
.view-content {
|
||||
height: 321px;
|
||||
height: 350px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-row-gap: 10px; //纵向间隔
|
||||
@ -754,7 +614,7 @@ export default {
|
||||
font-family: Oswald;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
|
||||
margin-left: 10px;
|
||||
background: linear-gradient(180deg, #34AFF6 0%, #EDFDFF 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
@ -780,17 +640,23 @@ export default {
|
||||
|
||||
.view-content {
|
||||
padding: 20px 20px 0;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
grid-row-gap: 30px; //纵向间隔
|
||||
grid-column-gap: auto; //横向间隔
|
||||
|
||||
// display: grid;
|
||||
// grid-template-columns: repeat(3, 1fr);
|
||||
// grid-row-gap: 30px; //纵向间隔
|
||||
// grid-column-gap: auto; //横向间隔
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
height: 350px;
|
||||
>div {
|
||||
width: 86px;
|
||||
|
||||
flex-shrink: 0;
|
||||
width:130px;
|
||||
height: 117px;
|
||||
background: url(../../assets/image/right-view3.png) no-repeat center;
|
||||
background-size: 100% 100%;
|
||||
padding-top: 20px;
|
||||
background-size:86px 100%;
|
||||
padding: 20px 15px 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
@ -813,7 +679,7 @@ export default {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 24px;
|
||||
font-size: 18px;
|
||||
font-family: Alibaba PuHuiTi;
|
||||
font-weight: 500;
|
||||
color: #FFFFFF;
|
||||
@ -824,26 +690,19 @@ export default {
|
||||
|
||||
.right-view2 {
|
||||
width: 100%;
|
||||
height: 136px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2,1fr);
|
||||
grid-row-gap:30px;//纵向间隔
|
||||
grid-column-gap:20px;//横向间隔
|
||||
padding: 20px 0;
|
||||
>div {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
>div {
|
||||
width: 90px;
|
||||
height: 34px;
|
||||
height: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 16px;
|
||||
font-size: 24px;
|
||||
font-family: Alibaba PuHuiTi;
|
||||
font-weight: 500;
|
||||
color: #A9D1FF;
|
||||
@ -860,8 +719,12 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.right-view4{
|
||||
display: flex;
|
||||
margin-top: 20px;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.main-table-title {
|
||||
width: 100%;
|
||||
height: 41px;
|
||||
|
@ -5,9 +5,9 @@
|
||||
<img src="../../assets/image/real-time.png" alt="" />
|
||||
{{ deviceTypeName }}—{{ $t('videoMonitoring.title') }}<span class="outline" v-if="deviceState == 0">({{ $t('realTime.deviceOffline') }})</span>
|
||||
</div>
|
||||
<div class="flex-list realTime-bottom videoMonitoring-monitor" :class="limitUserId==13?'noHeader':''">
|
||||
<div class="flex-list realTime-bottom videoMonitoring-monitor" :class="limitUserId==13?'noHeader':''+' '+cameraName==1?'':'center'">
|
||||
<div class="left-view" v-if="deviceName != 30">
|
||||
<div ref="monitor" class="monitor" :class="cameraName==1?'':'center'" id="monitor">
|
||||
<div ref="monitor" class="monitor" id="monitor">
|
||||
<!-- <video ref="videoPlayer" class="video-js" id="video-js"></video> -->
|
||||
|
||||
<img v-if="imgUrl" class="video-js" :src="imgUrl" alt="">
|
||||
|
@ -44,9 +44,9 @@ module.exports = {
|
||||
},
|
||||
proxy: {
|
||||
"/api": {
|
||||
target: 'https://api.lihe-control.com', //地址
|
||||
// target: 'https://api.lihe-control.com', //地址
|
||||
// target: 'http://jiaxingtest.a1.luyouxia.net:21114', //地址
|
||||
// target: 'http://jiaxingtest.e1.luyouxia.top:19159', //地址
|
||||
target: 'http://jiaxingtest.e1.luyouxia.top:19159', //地址
|
||||
// target: 'http://jiaxingtest.a1.luyouxia.net:25762', //地址
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user