施肥机加入搅拌程序
This commit is contained in:
parent
6a1473a6a9
commit
dbfca75f65
@ -1436,6 +1436,22 @@ textarea {
|
|||||||
color: #00C0F7;
|
color: #00C0F7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.circle.number {
|
||||||
|
width: 30px !important;
|
||||||
|
margin-right: 10px;
|
||||||
|
height: 30px;
|
||||||
|
background: #0294E2;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.irrigateSet {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.irrigateSet .open-btn {
|
.irrigateSet .open-btn {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
height: 54px;
|
height: 54px;
|
||||||
@ -1901,6 +1917,10 @@ textarea {
|
|||||||
border-bottom: 1px solid rgba(0, 180, 255, 0.35);
|
border-bottom: 1px solid rgba(0, 180, 255, 0.35);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-dialog__wrapper .el-dialog .el-dialog__body .model1-bottom .title, .el-dialog__wrapper .el-dialog .el-dialog__body .model1-bottom .number {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.el-dialog__wrapper .el-dialog .el-dialog__body .model1-bottom.model3-bottom .title {
|
.el-dialog__wrapper .el-dialog .el-dialog__body .model1-bottom.model3-bottom .title {
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
}
|
}
|
||||||
|
@ -1504,10 +1504,23 @@ textarea {
|
|||||||
color: #00C0F7;
|
color: #00C0F7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.circle{
|
||||||
|
&.number{
|
||||||
|
width: 30px!important;
|
||||||
|
margin-right: 10px;
|
||||||
|
height: 30px;
|
||||||
|
background: #0294E2;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
.irrigateSet {
|
.irrigateSet {
|
||||||
|
|
||||||
|
color: #fff;
|
||||||
.open-btn {
|
.open-btn {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
height: 54px;
|
height: 54px;
|
||||||
@ -2002,7 +2015,9 @@ textarea {
|
|||||||
.model1-bottom {
|
.model1-bottom {
|
||||||
padding: 20px 15px;
|
padding: 20px 15px;
|
||||||
border-bottom: 1px solid rgba(0, 180, 255, 0.35);
|
border-bottom: 1px solid rgba(0, 180, 255, 0.35);
|
||||||
|
.title,.number{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
&.model3-bottom {
|
&.model3-bottom {
|
||||||
.title {
|
.title {
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
|
@ -75,6 +75,7 @@ export default {
|
|||||||
index: index + 1
|
index: index + 1
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
|
{ name: this.$t('setParams.mixing'), list: [], router: 'stir', isRouter: true, },
|
||||||
{ name: this.$t('setParams.internalPIDConfig'), list: [], router: 'PIDSet', isRouter: true, },
|
{ name: this.$t('setParams.internalPIDConfig'), list: [], router: 'PIDSet', isRouter: true, },
|
||||||
{ name:this.$t('setParams.systemParamsConfig'), list: [], router: 'systemSet', isRouter: true, },
|
{ name:this.$t('setParams.systemParamsConfig'), list: [], router: 'systemSet', isRouter: true, },
|
||||||
{ name: this.$t('setParams.sensorChannelConfig'), list: [], router: 'sensorSet', isRouter: true, },
|
{ name: this.$t('setParams.sensorChannelConfig'), list: [], router: 'sensorSet', isRouter: true, },
|
||||||
|
@ -235,6 +235,7 @@ module.exports = {
|
|||||||
irrigationGroupConfig: 'Irrigation Group Configuration',
|
irrigationGroupConfig: 'Irrigation Group Configuration',
|
||||||
intrinsicParams: 'Intrinsic Parameters',
|
intrinsicParams: 'Intrinsic Parameters',
|
||||||
internalPIDConfig: 'Internal PID Configuration',
|
internalPIDConfig: 'Internal PID Configuration',
|
||||||
|
mixing: 'Mixing program',
|
||||||
systemParamsConfig: 'System Parameters Configuration',
|
systemParamsConfig: 'System Parameters Configuration',
|
||||||
sensorChannelConfig: 'Sensor Channel Configuration',
|
sensorChannelConfig: 'Sensor Channel Configuration',
|
||||||
dataUpload: 'Data Upload',
|
dataUpload: 'Data Upload',
|
||||||
|
@ -242,6 +242,7 @@ module.exports = {
|
|||||||
irrigationGroupConfig: '灌溉组配置',
|
irrigationGroupConfig: '灌溉组配置',
|
||||||
intrinsicParams: '固有参数',
|
intrinsicParams: '固有参数',
|
||||||
internalPIDConfig: '厂家内部PID配置',
|
internalPIDConfig: '厂家内部PID配置',
|
||||||
|
mixing: '搅拌程序',
|
||||||
systemParamsConfig: '系统参数配置',
|
systemParamsConfig: '系统参数配置',
|
||||||
sensorChannelConfig: '传感器通道配置',
|
sensorChannelConfig: '传感器通道配置',
|
||||||
dataUpload: '数据上传',
|
dataUpload: '数据上传',
|
||||||
|
@ -5,6 +5,7 @@ import index from '../views/index.vue'
|
|||||||
import login from '../views/login.vue'
|
import login from '../views/login.vue'
|
||||||
import control from '../views/control.vue'
|
import control from '../views/control.vue'
|
||||||
import soil from '../views/soil.vue'
|
import soil from '../views/soil.vue'
|
||||||
|
import fertilizer from '../views/fertilizer.vue'
|
||||||
Vue.use(VueRouter)
|
Vue.use(VueRouter)
|
||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
@ -71,10 +72,6 @@ const routes = [
|
|||||||
path: '/realTime',
|
path: '/realTime',
|
||||||
name: 'realTime',
|
name: 'realTime',
|
||||||
component: () => import('../views/page/realTime.vue')
|
component: () => import('../views/page/realTime.vue')
|
||||||
},{
|
|
||||||
path: '/formula',
|
|
||||||
name: 'formula',
|
|
||||||
component: () => import('../views/page/formula.vue')
|
|
||||||
},{
|
},{
|
||||||
path: '/historyData',
|
path: '/historyData',
|
||||||
name: 'historyData',
|
name: 'historyData',
|
||||||
@ -87,26 +84,6 @@ const routes = [
|
|||||||
path: '/videoMonitoring',
|
path: '/videoMonitoring',
|
||||||
name: 'videoMonitoring',
|
name: 'videoMonitoring',
|
||||||
component: () => import('../views/page/videoMonitoring.vue')
|
component: () => import('../views/page/videoMonitoring.vue')
|
||||||
},{
|
|
||||||
path: '/irrigateSet',
|
|
||||||
name: 'irrigateSet',
|
|
||||||
component: () => import('../views/page/irrigateSet.vue')
|
|
||||||
},{
|
|
||||||
path: '/PIDSet',
|
|
||||||
name: 'PIDSet',
|
|
||||||
component: () => import('../views/page/PIDSet.vue')
|
|
||||||
},{
|
|
||||||
path: '/systemSet',
|
|
||||||
name: 'systemSet',
|
|
||||||
component: () => import('../views/page/systemSet.vue')
|
|
||||||
},{
|
|
||||||
path: '/upload',
|
|
||||||
name: 'upload',
|
|
||||||
component: () => import('../views/page/upload.vue')
|
|
||||||
},{
|
|
||||||
path: '/sensorSet',
|
|
||||||
name: 'sensorSet',
|
|
||||||
component: () => import('../views/page/sensorSet.vue')
|
|
||||||
},{
|
},{
|
||||||
path: '/dataAnalysis',
|
path: '/dataAnalysis',
|
||||||
name: 'dataAnalysis',
|
name: 'dataAnalysis',
|
||||||
@ -198,7 +175,41 @@ const routes = [
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/fertilizer',
|
||||||
|
name: 'fertilizer',
|
||||||
|
component: fertilizer,
|
||||||
|
redirect: '/irrigateSet',
|
||||||
|
children: [{
|
||||||
|
path: '/formula',
|
||||||
|
name: 'formula',
|
||||||
|
component: () => import('../views/page/formula.vue')
|
||||||
|
},{
|
||||||
|
path: '/irrigateSet',
|
||||||
|
name: 'irrigateSet',
|
||||||
|
component: () => import('../views/page/irrigateSet.vue')
|
||||||
|
},{
|
||||||
|
path: '/PIDSet',
|
||||||
|
name: 'PIDSet',
|
||||||
|
component: () => import('../views/page/PIDSet.vue')
|
||||||
|
},{
|
||||||
|
path: '/systemSet',
|
||||||
|
name: 'systemSet',
|
||||||
|
component: () => import('../views/page/systemSet.vue')
|
||||||
|
},{
|
||||||
|
path: '/upload',
|
||||||
|
name: 'upload',
|
||||||
|
component: () => import('../views/page/upload.vue')
|
||||||
|
},{
|
||||||
|
path: '/sensorSet',
|
||||||
|
name: 'sensorSet',
|
||||||
|
component: () => import('../views/page/sensorSet.vue')
|
||||||
|
},{
|
||||||
|
path: '/stir',
|
||||||
|
name: 'stir',
|
||||||
|
component: () => import('../views/page/stir.vue')
|
||||||
|
},]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/control',
|
path: '/control',
|
||||||
name: 'control',
|
name: 'control',
|
||||||
|
28
src/views/fertilizer.vue
Normal file
28
src/views/fertilizer.vue
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<template>
|
||||||
|
<div class="formula control">
|
||||||
|
<setParams></setParams>
|
||||||
|
<div class="page-content">
|
||||||
|
<router-view></router-view>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import setParams from "../components/setParams.vue";
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
setParams,
|
||||||
|
},
|
||||||
|
// 当控制器整体页面关闭时 清楚控制器数据
|
||||||
|
beforeDestroy() {
|
||||||
|
var store = this.$store.state;
|
||||||
|
// store.ControlData = null;
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
</style>
|
@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="formula irrigateSet PIDSet">
|
<div class="irrigateSet PIDSet">
|
||||||
<set-params></set-params>
|
<div class="">
|
||||||
<div class="page-content ">
|
|
||||||
<div class="table-title">
|
<div class="table-title">
|
||||||
<img src="../../assets/image/set.png" alt=""> {{$t('PIDSet.pageTitle')}}
|
<img src="../../assets/image/set.png" alt=""> {{$t('PIDSet.pageTitle')}}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="formula">
|
<div class="irrigateSet">
|
||||||
<set-params></set-params>
|
<div class="">
|
||||||
<div class="page-content">
|
|
||||||
<div class="table-title">
|
<div class="table-title">
|
||||||
<img src="../../assets/image/formula.png" alt=""> {{ titleName }}{{$t('formula.parameters')}} <div class="tips">{{$store.state.equipmentName['fertilization' + $store.state.nameList[indexs-1]]}}</div>
|
<img src="../../assets/image/formula.png" alt=""> {{ titleName }}{{$t('formula.parameters')}} <div class="tips">{{$store.state.equipmentName['fertilization' + $store.state.nameList[indexs-1]]}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="formula irrigateSet">
|
<div class="irrigateSet">
|
||||||
<set-params></set-params>
|
<div class="">
|
||||||
<div class="page-content">
|
|
||||||
<div class="table-title">
|
<div class="table-title">
|
||||||
<img src="../../assets/image/irrigateSet.png" alt="" />
|
<img src="../../assets/image/irrigateSet.png" alt="" />
|
||||||
{{ $store.state.equipmentName['solenoid' + $store.state.nameList[indexs - 1]] }}
|
{{ $store.state.equipmentName['solenoid' + $store.state.nameList[indexs - 1]] }}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="formula irrigateSet sensorSet">
|
<div class="irrigateSet sensorSet">
|
||||||
<set-params></set-params>
|
<div class="">
|
||||||
<div class="page-content ">
|
|
||||||
<div class="table-title">
|
<div class="table-title">
|
||||||
<img src="../../assets/image/sensor.png" alt=""> {{$t('sensorSet.pageTitle')}}
|
<img src="../../assets/image/sensor.png" alt=""> {{$t('sensorSet.pageTitle')}}
|
||||||
</div>
|
</div>
|
||||||
|
632
src/views/page/stir.vue
Normal file
632
src/views/page/stir.vue
Normal file
@ -0,0 +1,632 @@
|
|||||||
|
<template>
|
||||||
|
<div class="irrigateSet">
|
||||||
|
<div class="table-title">
|
||||||
|
<img src="../../assets/img/intrinsicParameter.png" alt="">{{ pageName }}
|
||||||
|
</div>
|
||||||
|
<div class="flex-view">
|
||||||
|
<div class="input-btn">
|
||||||
|
<span>控制模式选择</span>
|
||||||
|
<div class="btn" @click="change00(1)" :class="topActive == 1 ? 'blue' : 'green'">
|
||||||
|
<img src="../../assets/image/irrigateSet1.png" alt="" />{{$t('text.stop')}}
|
||||||
|
</div>
|
||||||
|
<div class="btn" @click="change00(2)" :class="topActive == 2 ? 'blue' : 'green'">
|
||||||
|
<img src="../../assets/image/irrigateSet3.png" alt="" />{{$t('text.manual')}}
|
||||||
|
</div>
|
||||||
|
<div class="btn" @click="change00(3)" :class="topActive == 3 ? 'blue' : 'green'">
|
||||||
|
<img src="../../assets/image/irrigateSet2.png" alt="" />{{$t('text.auto')}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none ">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>手动启动时间</span>
|
||||||
|
<input @blur="blurChange10('601', $event)" v-model="inputData['601']"
|
||||||
|
@input="changeData10('601', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
<span>分</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-tips">手动启动肥泵选择:</div>
|
||||||
|
<div class="flex-view">
|
||||||
|
<div class="input-btn ">
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(0)" :class="actList1[0] == '1' ? 'blue' : 'off'">
|
||||||
|
A
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(1)" :class="actList1[1] == '1' ? 'blue' : 'off'">
|
||||||
|
B
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(2)" :class="actList1[2] == '1' ? 'blue' : 'off'">
|
||||||
|
C
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(3)" :class="actList1[3] == '1' ? 'blue' : 'off'">
|
||||||
|
D
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(4)" :class="actList1[4] == '1' ? 'blue' : 'off'">
|
||||||
|
E
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(5)" :class="actList1[5] == '1' ? 'blue' : 'off'">
|
||||||
|
F
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(6)" :class="actList1[6] == '1' ? 'blue' : 'off'">
|
||||||
|
G
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(7)" :class="actList1[7] == '1' ? 'blue' : 'off'">
|
||||||
|
H
|
||||||
|
</div>
|
||||||
|
<div class="btn btn-w70" @click="changeIndexOpen1(8)" :class="actList1[8] == '1' ? 'blue' : 'off'">
|
||||||
|
酸
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none shrink-none">
|
||||||
|
|
||||||
|
<div class="input-sel input-sel-w180">
|
||||||
|
<span>运行模式选择:</span>
|
||||||
|
<el-dropdown @command="handleCommand1($event, 603)">
|
||||||
|
<div class="el-dropdown-link">
|
||||||
|
<input v-model="inputDataNew[603]" type="text" class="input-input" placeholder="无" />
|
||||||
|
<div class="arrow">
|
||||||
|
<img src="../../assets/image/arrow.png" alt="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-dropdown-menu class="input-menu-180" slot="dropdown">
|
||||||
|
<el-dropdown-item v-for="(item, index) in typeList1" :key="index" :command="item.value">{{
|
||||||
|
item.label }}</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 时间点模式 -->
|
||||||
|
<!-- -->
|
||||||
|
<template v-if="inputData['603']==1">
|
||||||
|
<div class="title-tips-bold">
|
||||||
|
时间点模式:
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>每次启动时长</span>
|
||||||
|
<input @blur="blurChange10('604', $event)" v-model="inputData['604']"
|
||||||
|
@input="changeData10('604', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
<span>分</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none shrink-none">
|
||||||
|
<div class="number circle">1</div>
|
||||||
|
<div class="input-main-60">
|
||||||
|
<input @blur="blurChange('605', $event)" v-model="inputData['605']"
|
||||||
|
@input="change('605', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('606', $event)" v-model="inputData['606']"
|
||||||
|
@input="change('606', $event)" type="number" placeholder="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none shrink-none">
|
||||||
|
<div class="number circle">2</div>
|
||||||
|
<div class="input-main-60">
|
||||||
|
<input @blur="blurChange('607', $event)" v-model="inputData['607']"
|
||||||
|
@input="change('607', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('608', $event)" v-model="inputData['608']"
|
||||||
|
@input="change('608', $event)" type="number" placeholder="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none shrink-none">
|
||||||
|
<div class="number circle">3</div>
|
||||||
|
<div class="input-main-60">
|
||||||
|
<input @blur="blurChange('609', $event)" v-model="inputData['609']"
|
||||||
|
@input="change('609', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('610', $event)" v-model="inputData['610']"
|
||||||
|
@input="change('610', $event)" type="number" placeholder="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none shrink-none">
|
||||||
|
<div class="number circle">4</div>
|
||||||
|
<div class="input-main-60">
|
||||||
|
<input @blur="blurChange('611', $event)" v-model="inputData['611']"
|
||||||
|
@input="change('611', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('612', $event)" v-model="inputData['612']"
|
||||||
|
@input="change('612', $event)" type="number" placeholder="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none shrink-none">
|
||||||
|
<div class="number circle">5</div>
|
||||||
|
<div class="input-main-60">
|
||||||
|
<input @blur="blurChange('613', $event)" v-model="inputData['613']"
|
||||||
|
@input="change('613', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('614', $event)" v-model="inputData['614']"
|
||||||
|
@input="change('614', $event)" type="number" placeholder="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 时间段模式 -->
|
||||||
|
<!-- -->
|
||||||
|
<template v-if="inputData['603']==2">
|
||||||
|
<div class="title-tips-bold">
|
||||||
|
时间段模式:
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>每次启动时长</span>
|
||||||
|
<input @blur="blurChange10('615', $event)" v-model="inputData['615']"
|
||||||
|
@input="changeData10('615', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
<span>分</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view border-none padding-none shrink-none">
|
||||||
|
<div class="number circle">1</div>
|
||||||
|
<div class="input-main-60">
|
||||||
|
<input @blur="blurChange('617', $event)" v-model="inputData['617']"
|
||||||
|
@input="change('617', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('618', $event)" v-model="inputData['618']"
|
||||||
|
@input="change('618', $event)" type="number" placeholder="0" />
|
||||||
|
<span>-</span>
|
||||||
|
<input @blur="blurChange('619', $event)" v-model="inputData['619']"
|
||||||
|
@input="change('619', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('620', $event)" v-model="inputData['620']"
|
||||||
|
@input="change('620', $event)" type="number" placeholder="0" />
|
||||||
|
<span style="font-size: 16px">{{$t('irrigateSetSoil.intervalStart.timesInRange')}}</span>
|
||||||
|
<input @blur="blurChange('616', $event)" v-model="inputData['616']"
|
||||||
|
@input="change('616', $event)" type="number" placeholder="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view shrink-none">
|
||||||
|
<div class="number circle">2</div>
|
||||||
|
<div class="input-main-60">
|
||||||
|
<input @blur="blurChange('622', $event)" v-model="inputData['622']"
|
||||||
|
@input="change('622', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('623', $event)" v-model="inputData['623']"
|
||||||
|
@input="change('623', $event)" type="number" placeholder="0" />
|
||||||
|
<span>-</span>
|
||||||
|
<input @blur="blurChange('624', $event)" v-model="inputData['624']"
|
||||||
|
@input="change('624', $event)" type="number" placeholder="0" />
|
||||||
|
<span>:</span>
|
||||||
|
<input @blur="blurChange('625', $event)" v-model="inputData['625']"
|
||||||
|
@input="change('625', $event)" type="number" placeholder="0" />
|
||||||
|
<span style="font-size: 16px">{{$t('irrigateSetSoil.intervalStart.timesInRange')}}</span>
|
||||||
|
<input @blur="blurChange('621', $event)" v-model="inputData['621']"
|
||||||
|
@input="change('621', $event)" type="number" placeholder="0" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 联动模式 -->
|
||||||
|
<!-- -->
|
||||||
|
<template v-if="inputData['603']==3">
|
||||||
|
<div class="title-tips-bold">
|
||||||
|
联动模式:
|
||||||
|
</div>
|
||||||
|
<div class="flex-view shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>施肥机启动时提前</span>
|
||||||
|
<input @blur="blurChange('626', $event)" v-model="inputData['626']"
|
||||||
|
@input="change('626', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
<span>秒,联动施肥配方搅拌。</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>A肥通道选择</span>
|
||||||
|
<input @blur="blurChange('627', $event)" v-model="inputData['627']"
|
||||||
|
@input="change('627', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>B肥通道选择</span>
|
||||||
|
<input @blur="blurChange('628', $event)" v-model="inputData['628']"
|
||||||
|
@input="change('628', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>C肥通道选择</span>
|
||||||
|
<input @blur="blurChange('629', $event)" v-model="inputData['629']"
|
||||||
|
@input="change('629', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>D肥通道选择</span>
|
||||||
|
<input @blur="blurChange('630', $event)" v-model="inputData['630']"
|
||||||
|
@input="change('630', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>E肥通道选择</span>
|
||||||
|
<input @blur="blurChange('631', $event)" v-model="inputData['631']"
|
||||||
|
@input="change('631', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>F肥通道选择</span>
|
||||||
|
<input @blur="blurChange('632', $event)" v-model="inputData['632']"
|
||||||
|
@input="change('632', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>G肥通道选择</span>
|
||||||
|
<input @blur="blurChange('633', $event)" v-model="inputData['633']"
|
||||||
|
@input="change('633', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>H肥通道选择</span>
|
||||||
|
<input @blur="blurChange('634', $event)" v-model="inputData['634']"
|
||||||
|
@input="change('634', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-view padding-none border-none shrink-none">
|
||||||
|
<div class="input-main-60">
|
||||||
|
<span>酸肥通道选择</span>
|
||||||
|
<input @blur="blurChange('635', $event)" v-model="inputData['635']"
|
||||||
|
@input="change('635', $event)" type="text" value="60" placeholder="60" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
topActive: 1,
|
||||||
|
inputData: [],
|
||||||
|
inputDataNew: [],
|
||||||
|
actList1:[],
|
||||||
|
loading: null,
|
||||||
|
pageName: '搅拌程序',
|
||||||
|
typeList1: [
|
||||||
|
{ label:'时间点模式', value:1 },
|
||||||
|
{ label:'时间段模式', value:2 },
|
||||||
|
{ label:'联动模式', value:3 },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route(newVal, oldVal) {
|
||||||
|
const that = this;
|
||||||
|
this.indexs = this.$route.query.id ? this.$route.query.id : 1;
|
||||||
|
if (this.$route.query.name) {
|
||||||
|
this.pageName = this.$route.query.name
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
that.getActive1();
|
||||||
|
}, 0);
|
||||||
|
},
|
||||||
|
'$store.state.equipmentIndex'(newVal, oldVal) {
|
||||||
|
this.dataInit();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
const that = this;
|
||||||
|
this.indexs = this.$route.query.id ? this.$route.query.id : 1;
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
that.dataInit();
|
||||||
|
}, 0);
|
||||||
|
//input获取焦点后全选
|
||||||
|
let inputList = document.querySelectorAll('input');
|
||||||
|
for (let index = 0; index < inputList.length; index++) {
|
||||||
|
inputList[index].onfocus = this.selectValue;//input放入焦点,全选文本
|
||||||
|
}
|
||||||
|
if (this.$route.query.name) {
|
||||||
|
this.pageName = this.$route.query.name
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//失去焦点 计算公式 x/10
|
||||||
|
blurChange10(code, el) {
|
||||||
|
var store = this.$store.state
|
||||||
|
var data = {
|
||||||
|
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||||||
|
regAddress: code,
|
||||||
|
num: el.target.value * 10,
|
||||||
|
}; //避免开启多个计时器
|
||||||
|
if (store.nowInput != el.target.value) {
|
||||||
|
this.changeData(data);
|
||||||
|
}
|
||||||
|
// if (this.timer) {
|
||||||
|
// this.timer && clearInterval(this.timer);
|
||||||
|
// this.changeData(data);
|
||||||
|
// }
|
||||||
|
|
||||||
|
},
|
||||||
|
//反向计算 计算公式 x/10
|
||||||
|
changeCount10(code, el) {
|
||||||
|
var data = el.target.value * 10
|
||||||
|
var sendData = {
|
||||||
|
target: {
|
||||||
|
value: data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.change(code, sendData)
|
||||||
|
},
|
||||||
|
// 计算展示值 计算公式 x/10
|
||||||
|
countData10(data) {
|
||||||
|
if (data) {
|
||||||
|
return data / 10
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 计算展示值 计算公式 (x - 400) / 10
|
||||||
|
countData(data) {
|
||||||
|
if (data) {
|
||||||
|
return (data - 400) / 10
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//失去焦点
|
||||||
|
blurChangeCount(code, el) {
|
||||||
|
var store = this.$store.state
|
||||||
|
var data = {
|
||||||
|
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||||||
|
regAddress: code,
|
||||||
|
num: (el.target.value * 10) + 400,
|
||||||
|
}; //避免开启多个计时器
|
||||||
|
if (store.nowInput != el.target.value) {
|
||||||
|
this.changeData(data);
|
||||||
|
}
|
||||||
|
// if (this.timer) {
|
||||||
|
// this.timer && clearInterval(this.timer);
|
||||||
|
// this.changeData(data);
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
changeCountData(code, el) {
|
||||||
|
var data = (el.target.value * 10) + 400
|
||||||
|
var sendData = {
|
||||||
|
target: {
|
||||||
|
value: data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.change(code, sendData)
|
||||||
|
},
|
||||||
|
getData1(data) {
|
||||||
|
var name = "";
|
||||||
|
this.typeList1.forEach((el, index) => {
|
||||||
|
if (el.value == data) {
|
||||||
|
name = el.label;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return name;
|
||||||
|
},
|
||||||
|
handleCommand1(command, code) {
|
||||||
|
this.typeList1.forEach((el, index) => {
|
||||||
|
if (el.value == command) {
|
||||||
|
this.inputDataNew[code] = el.label;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.inputData[code] = command;
|
||||||
|
var dataNum = {
|
||||||
|
target: {
|
||||||
|
value: command,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
this.changeBtn(code, dataNum);
|
||||||
|
},
|
||||||
|
changeIndexOpen1(active) {
|
||||||
|
if (this.actList1[active] == '1') {
|
||||||
|
this.actList1[active] = '0'
|
||||||
|
} else {
|
||||||
|
this.actList1[active] = '1'
|
||||||
|
}
|
||||||
|
this.$forceUpdate();
|
||||||
|
var revList = this.actList1.slice().reverse()
|
||||||
|
var num = revList.join("");
|
||||||
|
var dataNum = {
|
||||||
|
target: {
|
||||||
|
value: parseInt(num, 2),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
this.changeBtn(602, dataNum);
|
||||||
|
},
|
||||||
|
getActive1() {
|
||||||
|
this.actList1 = []
|
||||||
|
var num = this.inputData['602']
|
||||||
|
|
||||||
|
var num1 = this.padString(num.toString(2), 8)
|
||||||
|
var openListNew = []
|
||||||
|
openListNew = num1.split("")
|
||||||
|
this.actList1 = openListNew.reverse();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 工作方式选择
|
||||||
|
changeOpen(index) {
|
||||||
|
this.inputData[21400] = index;
|
||||||
|
var dataNum = {
|
||||||
|
target: {
|
||||||
|
value: index,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
this.changeBtn(21400, dataNum);
|
||||||
|
},
|
||||||
|
change00(index) {
|
||||||
|
this.topActive = index
|
||||||
|
var list = ["0", "0", "0"];
|
||||||
|
if (index == 1) {
|
||||||
|
list[0] = "1";
|
||||||
|
} else {
|
||||||
|
list[0] = "0";
|
||||||
|
}
|
||||||
|
if (index == 2) {
|
||||||
|
list[1] = "1";
|
||||||
|
} else {
|
||||||
|
list[1] = "0";
|
||||||
|
}
|
||||||
|
if (index == 3) {
|
||||||
|
list[2] = "1";
|
||||||
|
} else {
|
||||||
|
list[2] = "0";
|
||||||
|
}
|
||||||
|
var num = list.join("");
|
||||||
|
var dataNum = {
|
||||||
|
target: {
|
||||||
|
value: parseInt(num, 2),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
this.changeBtn('600', dataNum);
|
||||||
|
},
|
||||||
|
getType00() {
|
||||||
|
var number = this.padString('600', 3)
|
||||||
|
|
||||||
|
if (Number(number[0])) {
|
||||||
|
this.topActive = 1
|
||||||
|
} else if (Number(number[1])) {
|
||||||
|
this.topActive = 2
|
||||||
|
} else if (Number(number[2])) {
|
||||||
|
this.topActive = 3
|
||||||
|
} else {
|
||||||
|
this.topActive = 0
|
||||||
|
}
|
||||||
|
console.log(this.topActive, 11);
|
||||||
|
},
|
||||||
|
dataInit() {
|
||||||
|
this.loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: this.$t('message.loading'),
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
});
|
||||||
|
var store = this.$store.state
|
||||||
|
var data = {
|
||||||
|
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||||||
|
pattern: 600, //需要根据文档填写 //6目标ph-数值
|
||||||
|
regNum: 36,
|
||||||
|
};
|
||||||
|
this.api.postReg(data).then(res => {
|
||||||
|
this.loading.close()
|
||||||
|
if (res.data.code == 200) {
|
||||||
|
this.inputData = res.data.data;
|
||||||
|
this.inputDataNew = JSON.parse(JSON.stringify(res.data.data));
|
||||||
|
|
||||||
|
this.getType00();
|
||||||
|
|
||||||
|
this.getActive1()
|
||||||
|
|
||||||
|
this.inputDataNew[603] = this.getData1(this.inputData[603]);
|
||||||
|
|
||||||
|
this.inputData[601] = this.countData10(this.inputData[601]);
|
||||||
|
this.inputData[604] = this.countData10(this.inputData[604]);
|
||||||
|
this.inputData[615] = this.countData10(this.inputData[615]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//二进制转换后的补全
|
||||||
|
padString(str, length) {
|
||||||
|
return str.padStart(length, '0');
|
||||||
|
},
|
||||||
|
//反转数组 不影响原数组
|
||||||
|
myReverse(arr) {
|
||||||
|
return [...arr].reverse()
|
||||||
|
},
|
||||||
|
//全选文本
|
||||||
|
selectValue(e) {
|
||||||
|
var store = this.$store.state
|
||||||
|
store.nowInput = e.target.value
|
||||||
|
e.currentTarget.select();
|
||||||
|
},
|
||||||
|
//失去焦点
|
||||||
|
blurChange(code, el) {
|
||||||
|
var store = this.$store.state
|
||||||
|
var data = {
|
||||||
|
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||||||
|
regAddress: code,
|
||||||
|
num: el.target.value,
|
||||||
|
}; //避免开启多个计时器
|
||||||
|
if (store.nowInput != el.target.value) {
|
||||||
|
this.changeData(data);
|
||||||
|
}
|
||||||
|
// if (this.timer) {
|
||||||
|
// this.timer && clearInterval(this.timer);
|
||||||
|
// this.changeData(data);
|
||||||
|
// }
|
||||||
|
|
||||||
|
},
|
||||||
|
//修改数据的函数
|
||||||
|
changeBtn(code, el) {
|
||||||
|
var store = this.$store.state
|
||||||
|
var data = {
|
||||||
|
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||||||
|
regAddress: code,
|
||||||
|
num: el.target.value,
|
||||||
|
};
|
||||||
|
this.delayTimerBtn(0, data);
|
||||||
|
},
|
||||||
|
//切换btn的限制 写入停止后j*100毫秒调取函数
|
||||||
|
delayTimerBtn(i, data) {
|
||||||
|
const that = this;
|
||||||
|
//整体接口
|
||||||
|
let j = this.$store.state.lateSendBtn;
|
||||||
|
//避免开启多个计时器
|
||||||
|
this.timer && clearInterval(this.timer);
|
||||||
|
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
++i;
|
||||||
|
if (i == j) {
|
||||||
|
that.changeData(data);
|
||||||
|
clearInterval(this.timer);
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
},
|
||||||
|
change(code, el) {
|
||||||
|
var store = this.$store.state
|
||||||
|
var data = {
|
||||||
|
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||||||
|
regAddress: code,
|
||||||
|
num: el.target.value,
|
||||||
|
};
|
||||||
|
this.delayTimer(0, data);
|
||||||
|
},
|
||||||
|
//限制 写入停止后j*100毫秒调取函数
|
||||||
|
delayTimer(i, data) {
|
||||||
|
// const that = this;
|
||||||
|
// //整体接口
|
||||||
|
// let j = this.$store.state.lateSend;
|
||||||
|
// //避免开启多个计时器
|
||||||
|
// this.timer && clearInterval(this.timer);
|
||||||
|
|
||||||
|
// this.timer = setInterval(() => {
|
||||||
|
// ++i;
|
||||||
|
// if (i == j) {
|
||||||
|
// that.changeData(data);
|
||||||
|
// clearInterval(this.timer);
|
||||||
|
// }
|
||||||
|
// }, 100);
|
||||||
|
},
|
||||||
|
changeData(data) {
|
||||||
|
var store = this.$store.state
|
||||||
|
this.api.postWriteFs(data).then((res) => {
|
||||||
|
if (res.data.code == 200) {
|
||||||
|
this.$message({
|
||||||
|
message: res.data.msg,
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
store.nowInput = ''
|
||||||
|
// this.dataInit();
|
||||||
|
} else {
|
||||||
|
this.inputData[data.regAddress] = store.nowInput
|
||||||
|
this.$message.error(res.data.msg);
|
||||||
|
}
|
||||||
|
this.timer = null
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss"></style>
|
@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="formula irrigateSet systemSet">
|
<div class="irrigateSet systemSet">
|
||||||
<set-params></set-params>
|
<div class="">
|
||||||
<div class="page-content ">
|
|
||||||
<div class="export">
|
<div class="export">
|
||||||
<label for="upInput">
|
<label for="upInput">
|
||||||
<div class="export-btn">{{ $t('systemSet.importSettings') }}</div>
|
<div class="export-btn">{{ $t('systemSet.importSettings') }}</div>
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="formula irrigateSet upload">
|
<div class="irrigateSet upload">
|
||||||
<set-params></set-params>
|
<div class="">
|
||||||
<div class="page-content ">
|
|
||||||
<div class="table-title">
|
<div class="table-title">
|
||||||
<img src="../../assets/image/upload.png" alt=""> {{$t('upload.dataUpload')}}
|
<img src="../../assets/image/upload.png" alt=""> {{$t('upload.dataUpload')}}
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user