Commit 6817aec5 authored by zhuangzhuang's avatar zhuangzhuang

牛舍配置页改修 牛舍历史数据微调

parent 80b92e88
...@@ -7,100 +7,179 @@ ...@@ -7,100 +7,179 @@
<ion-content> <ion-content>
<ion-item lines="full"> <ion-item lines="full">
<ion-label>请选择牛舍</ion-label> <ion-label>请选择牛舍</ion-label>
<ion-select multiple="false" cancelText="取消" okText="确认" (ionChange)="selFarmEvent()"> <ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="curFieldRegionNo" (ionChange)="selectCowshed()">
<ion-select-option *ngFor="let a of cowFarm" value="a.value">{{a.name}}</ion-select-option> <ion-select-option *ngFor="let cowshed of cowshedList" [value]="cowshed.fieldRegionNo">{{cowshed.fieldRegionName}}</ion-select-option>
</ion-select> </ion-select>
</ion-item> </ion-item>
<ion-item lines="full"> <div *ngIf="curCowshed.fieldRegionName">
<ion-label>智慧模式选择</ion-label> <ion-item lines="full">
<ion-toggle slot="end" name="apple" color="secondary" checked style="width:50px"></ion-toggle> <ion-label>智慧模式选择</ion-label>
</ion-item> <ion-toggle slot="end" color="secondary" style="width:50px" [checked]="curCowshed.isWisdomModel"></ion-toggle>
<ion-label text-wrap color="danger" style="margin-left: 20px">选择智慧模式时,风机/喷淋/照明的控制将强制进入有环境条件影响的自控模式</ion-label> </ion-item>
<ion-item-divider> <ion-label text-wrap color="danger" style="margin-left: 20px">选择智慧模式时,风机/喷淋/照明的控制将强制进入有环境条件影响的自控模式</ion-label>
<ion-label>风机模式配置</ion-label> <ion-item-divider>
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()"> <ion-label>偏差值配置</ion-label>
<ion-select-option value="0">自控模式</ion-select-option> </ion-item-divider>
<ion-select-option value="1">手控模式</ion-select-option> <ion-item class="fanItem" lines="none">
</ion-select> <ion-grid>
</ion-item-divider> <ion-row>
<ion-item class="fanItem" lines="none"> <ion-col>
<ion-grid> <ion-item class="fanItem">
<ion-row> <ion-label position="fixed">偏差温度</ion-label>
<ion-col> <ion-input placeholder="25" [(ngModel)]="curCowshed.propertyConfig.toft"></ion-input>
<ion-item class="fanItem"> <ion-label position="fixed"></ion-label>
<ion-label>风机模式</ion-label> </ion-item>
<ion-input slot="end" placeholder="模式一"></ion-input> </ion-col>
</ion-item> <ion-col>
</ion-col> <ion-item class="fanItem">
</ion-row> <ion-label position="fixed">偏差湿度</ion-label>
<ion-row> <ion-input placeholder="25" [(ngModel)]="curCowshed.propertyConfig.hoft" (ionFocus)="fanTempHaveFouch()"></ion-input>
<ion-col> <ion-label position="fixed"></ion-label>
<ion-item class="fanItem"> </ion-item>
<ion-label position="fixed">开启温度</ion-label>
<ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input>
<ion-label position="fixed"></ion-label>
</ion-item>
</ion-col>
<ion-col>
<ion-item class="fanItem">
<ion-label position="fixed">关闭温度</ion-label>
<ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input>
<ion-label position="fixed"></ion-label>
</ion-item>
</ion-col>
</ion-row>
</ion-grid>
</ion-item>
<ion-item-divider>
<ion-label>喷淋模式配置</ion-label>
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0">自控模式</ion-select-option>
<ion-select-option value="1">手控模式</ion-select-option>
</ion-select>
</ion-item-divider>
<ion-item-sliding *ngFor="let cfg of fanCfg">
<ion-item class="fanItem">
<ion-grid>
<ion-row style="width: 100%">
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="fanItem" lines="none">
<ion-label style="width:80px">模式名</ion-label>
<ion-input placeholder={{cfg.name}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col> </ion-col>
<ion-col size="auto" style="font-size: 13px;"> </ion-row>
<ion-item class="timepickerItem" lines="none"> </ion-grid>
<ion-label style="width:80px">间隔时间</ion-label> </ion-item>
<ion-input placeholder={{cfg.timeInterval}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input> <ion-item-divider>
<ion-label>风机模式配置</ion-label>
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0">自控模式</ion-select-option>
<ion-select-option value="1">手控模式</ion-select-option>
</ion-select>
</ion-item-divider>
<ion-item class="fanItem" lines="none">
<ion-grid>
<ion-row>
<ion-col>
<ion-item class="fanItem">
<ion-label>风机模式</ion-label>
<ion-input slot="end" placeholder="模式一"></ion-input>
</ion-item> </ion-item>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row style="width: 100%"> <ion-row>
<ion-col size="auto" style="font-size: 13px;"> <ion-col>
<ion-item class="fanItem" lines="none"> <ion-item class="fanItem">
<ion-label style="width:80px">设置温度</ion-label> <ion-label position="fixed">开启温度</ion-label>
<ion-input placeholder={{cfg.tempSet}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input> <ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input>
<ion-label position="fixed"></ion-label>
</ion-item> </ion-item>
</ion-col> </ion-col>
<ion-col size="auto" style="font-size: 13px;"> <ion-col>
<ion-item class="fanItem" lines="none"> <ion-item class="fanItem">
<ion-label style="width:80px">偏差温度</ion-label> <ion-label position="fixed">关闭温度</ion-label>
<ion-input placeholder={{cfg.tempOffset}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input> <ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input>
<ion-label position="fixed"></ion-label>
</ion-item> </ion-item>
</ion-col> </ion-col>
</ion-row> </ion-row>
</ion-grid>
</ion-item>
<ion-item-divider>
<ion-label>喷淋模式配置</ion-label>
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0">自控模式</ion-select-option>
<ion-select-option value="1">手控模式</ion-select-option>
</ion-select>
</ion-item-divider>
<ion-item-sliding *ngFor="let cfg of fanCfg">
<ion-item class="fanItem">
<ion-grid>
<ion-row style="width: 100%">
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="fanItem" lines="none">
<ion-label style="width:80px">模式名</ion-label>
<ion-input placeholder={{cfg.name}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="timepickerItem" lines="none">
<ion-label style="width:80px">间隔时间</ion-label>
<ion-input placeholder={{cfg.timeInterval}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
</ion-row>
<ion-row style="width: 100%"> <ion-row style="width: 100%">
<ion-col size="auto" style="font-size: 13px;"> <ion-col size="auto" style="font-size: 13px;">
<ion-item class="fanItem" lines="none"> <ion-item class="fanItem" lines="none">
<ion-label style="width:80px">A区喷水时间</ion-label> <ion-label style="width:80px">设置温度</ion-label>
<ion-input placeholder={{cfg.ATmr}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input> <ion-input placeholder={{cfg.tempSet}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item> </ion-item>
</ion-col> </ion-col>
<ion-col size="auto" style="font-size: 13px;"> <ion-col size="auto" style="font-size: 13px;">
<ion-item class="fanItem" lines="none"> <ion-item class="fanItem" lines="none">
<ion-label style="width:80px">B区喷水时间</ion-label> <ion-label style="width:80px">偏差温度</ion-label>
<ion-input placeholder={{cfg.BTmr}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input> <ion-input placeholder={{cfg.tempOffset}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
</ion-row>
<ion-row style="width: 100%">
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="fanItem" lines="none">
<ion-label style="width:80px">A区喷水时间</ion-label>
<ion-input placeholder={{cfg.ATmr}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="fanItem" lines="none">
<ion-label style="width:80px">B区喷水时间</ion-label>
<ion-input placeholder={{cfg.BTmr}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
</ion-row>
</ion-grid>
</ion-item>
<ion-item-options side="end">
<ion-button color='danger' expand="full" style="width:15%;height:90%" >删除</ion-button>
</ion-item-options>
</ion-item-sliding>
<ion-item-divider>
<ion-label>照明配置</ion-label>
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0">自控模式</ion-select-option>
<ion-select-option value="1">手控模式</ion-select-option>
</ion-select>
</ion-item-divider>
<ion-item-sliding *ngFor="let cfg of lightCfg">
<ion-item style="--padding-start: 0px">
<ion-grid>
<ion-row style="width: 100%">
<ion-col size="auto" style="font-size: 13px;">
<ion-item style="font-size: 13px;--padding-start: 0px" lines="none">
<ion-label style="width:80px">模式名</ion-label>
<ion-input placeholder={{cfg.name}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
</ion-row>
<ion-row style="width: 100%">
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="timepickerItem" lines="none">
<ion-label style="width:80px">日期范围</ion-label>
<!--<ion-input placeholder={{cfg.startTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>-->
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker"></ion-datetime>
</ion-item>
</ion-col>
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="timepickerItem" lines="none">
<ion-label style="width:80px">~</ion-label>
<!--<ion-input placeholder={{cfg.endTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>-->
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker"></ion-datetime>
</ion-item>
</ion-col>
</ion-row>
<ion-row style="width: 100%">
<ion-col size="auto" style="font-size: 13px;">
<ion-item style="font-size: 13px;--padding-start: 0px" lines="none">
<ion-label style="width:80px">开灯时间</ion-label>
<ion-input placeholder={{cfg.onTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
<ion-col size="auto" style="font-size: 13px;">
<ion-item style="font-size: 13px;--padding-start: 0px" lines="none">
<ion-label style="width:80px">关灯时间</ion-label>
<ion-input placeholder={{cfg.offTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item> </ion-item>
</ion-col> </ion-col>
</ion-row> </ion-row>
...@@ -111,198 +190,144 @@ ...@@ -111,198 +190,144 @@
</ion-item-options> </ion-item-options>
</ion-item-sliding> </ion-item-sliding>
<ion-item-divider>
<ion-label>照明配置</ion-label> <ion-item-divider>
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()"> <ion-label>水槽预警时间段配置</ion-label>
<ion-select-option value="0">自控模式</ion-select-option> </ion-item-divider>
<ion-select-option value="1">手控模式</ion-select-option> <ion-item-sliding>
</ion-select> <ion-item style="--padding-start: 0px">
</ion-item-divider> <ion-grid>
<ion-item-sliding *ngFor="let cfg of lightCfg"> <ion-row style="width: 100%">
<ion-item style="--padding-start: 0px"> <ion-col size="auto" style="font-size: 13px;">
<ion-item class="timepickerItem" lines="none">
<ion-label style="width:80px">日期范围</ion-label>
<!--<ion-input placeholder={{cfg.startTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>-->
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker" [(ngModel)]="shuiCao.startDate"></ion-datetime>
</ion-item>
</ion-col>
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="timepickerItem" lines="none">
<ion-label style="width:80px">~</ion-label>
<!--<ion-input placeholder={{cfg.endTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>-->
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker" [(ngModel)]="shuiCao.stopDate"></ion-datetime>
</ion-item>
</ion-col>
</ion-row>
<ion-row style="width: 100%">
<ion-label text-wrap color="danger">上述时间段内,加热设备电流过低时,系统将会发出预警信息</ion-label>
</ion-row>
</ion-grid>
</ion-item>
<ion-item-options side="end">
<ion-button color='danger' expand="full" style="width:15%;height:90%" >删除</ion-button>
</ion-item-options>
</ion-item-sliding>
<ion-item-divider>
<ion-label>牛群在/离舍配置</ion-label>
</ion-item-divider>
<ion-item class="cow">
<ion-grid> <ion-grid>
<ion-row style="width: 100%"> <ion-row>
<ion-col size="auto" style="font-size: 13px;"> <ion-col>牛群回舍时需恢复上述的设备</ion-col>
<ion-item style="font-size: 13px;--padding-start: 0px" lines="none">
<ion-label style="width:80px">模式名</ion-label>
<ion-input placeholder={{cfg.name}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
</ion-row> </ion-row>
<ion-row style="width: 100%"> <ion-row>
<ion-col size="auto" style="font-size: 13px;"> <ion-col><ion-item lines="none" class="cow"><ion-label>风机</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<ion-item class="timepickerItem" lines="none"> <ion-col><ion-item lines="none" class="cow"><ion-label>喷淋</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<ion-label style="width:80px">日期范围</ion-label> <ion-col><ion-item lines="none" class="cow"><ion-label>照明</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<!--<ion-input placeholder={{cfg.startTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>-->
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker"></ion-datetime>
</ion-item>
</ion-col>
<ion-col size="auto" style="font-size: 13px;">
<ion-item class="timepickerItem" lines="none">
<ion-label style="width:80px">~</ion-label>
<!--<ion-input placeholder={{cfg.endTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>-->
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker"></ion-datetime>
</ion-item>
</ion-col>
</ion-row> </ion-row>
<ion-row style="width: 100%"> <ion-row>
<ion-col size="auto" style="font-size: 13px;"> <ion-col>牛群离舍时需完全关闭的设备</ion-col>
<ion-item style="font-size: 13px;--padding-start: 0px" lines="none"> </ion-row>
<ion-label style="width:80px">开灯时间</ion-label> <ion-row>
<ion-input placeholder={{cfg.onTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input> <ion-col><ion-item lines="none" class="cow"><ion-label>风机</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
</ion-item> <ion-col><ion-item lines="none" class="cow"><ion-label>喷淋</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
</ion-col> <ion-col><ion-item lines="none" class="cow"><ion-label>照明</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<ion-col size="auto" style="font-size: 13px;">
<ion-item style="font-size: 13px;--padding-start: 0px" lines="none">
<ion-label style="width:80px">关灯时间</ion-label>
<ion-input placeholder={{cfg.offTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>
</ion-item>
</ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>
</ion-item> </ion-item>
<ion-item-options side="end">
<ion-button color='danger' expand="full" style="width:15%;height:90%" >删除</ion-button>
</ion-item-options>
</ion-item-sliding>
<ion-item-divider>
<ion-label>环境参数配置</ion-label>
</ion-item-divider>
<ion-item-divider> <ion-item class="thi">
<ion-label>水槽预警时间段配置</ion-label>
</ion-item-divider>
<ion-item-sliding>
<ion-item style="--padding-start: 0px">
<ion-grid> <ion-grid>
<ion-row style="width: 100%"> <ion-row>
<ion-col size="auto" style="font-size: 13px;"> <ion-item lines="none" class="thiItem">热应激配置</ion-item>
<ion-item class="timepickerItem" lines="none"> </ion-row>
<ion-label style="width:80px">日期范围</ion-label> <ion-row>
<!--<ion-input placeholder={{cfg.startTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>--> <ion-item lines="none" class="thiItem">计算公式 0.81* 温度 +(0.99*温度-14.3)*湿度+46.3</ion-item>
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker"></ion-datetime> </ion-row>
</ion-item> <ion-row>
<ion-item lines="none" class="thiItem">等级临界值</ion-item>
</ion-row>
<ion-row>
<ion-col class="thiItem">应激等级</ion-col>
<ion-col class="thiItem">THI值(<)</ion-col>
<ion-col class="thiItem">预警要否</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>无应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col> </ion-col>
<ion-col size="auto" style="font-size: 13px;"> </ion-row>
<ion-item class="timepickerItem" lines="none"> <ion-row>
<ion-label style="width:80px">~</ion-label> <ion-col class="thiItem"><ion-label>轻度应激</ion-label></ion-col>
<!--<ion-input placeholder={{cfg.endTime}} (ionFocus)="fanTempHaveFouch()" style="width:50px;"></ion-input>--> <ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-datetime displayFormat="MM-DD" placeholder="Date" class="timepicker"></ion-datetime> <ion-col class="thiItem">
</ion-item> <ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row style="width: 100%"> <ion-row>
<ion-label text-wrap color="danger">上述时间段内,加热设备电流过低时,系统将会发出预警信息</ion-label> <ion-col class="thiItem"><ion-label>中度应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>重度应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>II重度应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>
</ion-item> </ion-item>
<ion-item-options side="end"> </div>
<ion-button color='danger' expand="full" style="width:15%;height:90%" >删除</ion-button>
</ion-item-options>
</ion-item-sliding>
<ion-item-divider>
<ion-label>牛群在/离舍配置</ion-label>
</ion-item-divider>
<ion-item class="cow">
<ion-grid>
<ion-row>
<ion-col>牛群回舍时需恢复上述的设备</ion-col>
</ion-row>
<ion-row>
<ion-col><ion-item lines="none" class="cow"><ion-label>风机</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<ion-col><ion-item lines="none" class="cow"><ion-label>喷淋</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<ion-col><ion-item lines="none" class="cow"><ion-label>照明</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
</ion-row>
<ion-row>
<ion-col>牛群离舍时需完全关闭的设备</ion-col>
</ion-row>
<ion-row>
<ion-col><ion-item lines="none" class="cow"><ion-label>风机</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<ion-col><ion-item lines="none" class="cow"><ion-label>喷淋</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
<ion-col><ion-item lines="none" class="cow"><ion-label>照明</ion-label><ion-checkbox color="primary" class="cowCheckBox" slot="start"></ion-checkbox></ion-item></ion-col>
</ion-row>
</ion-grid>
</ion-item>
<ion-item-divider>
<ion-label>环境参数配置</ion-label>
</ion-item-divider>
<ion-item class="thi">
<ion-grid>
<ion-row>
<ion-item lines="none" class="thiItem">热应激配置</ion-item>
</ion-row>
<ion-row>
<ion-item lines="none" class="thiItem">计算公式 0.81* 温度 +(0.99*温度-14.3)*湿度+46.3</ion-item>
</ion-row>
<ion-row>
<ion-item lines="none" class="thiItem">等级临界值</ion-item>
</ion-row>
<ion-row>
<ion-col class="thiItem">应激等级</ion-col>
<ion-col class="thiItem">THI值(<)</ion-col>
<ion-col class="thiItem">预警要否</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>无应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>轻度应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>中度应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>重度应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="thiItem"><ion-label>II重度应激</ion-label></ion-col>
<ion-col class="thiItem"><ion-input placeholder="25" (ionFocus)="fanTempHaveFouch()"></ion-input></ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="workModeSetting.workMode" [(value)]="workModeSetting.workMode" (ionChange)="workModeEvent()">
<ion-select-option value="0"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
<ion-select-option value="1"></ion-select-option>
</ion-select>
</ion-col>
</ion-row>
</ion-grid>
</ion-item>
</ion-content> </ion-content>
import { Component, OnInit } from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {PickerController} from '@ionic/angular'; import {PickerController} from '@ionic/angular';
import {Api} from '../../service/api';
import {Load} from '../../service/load';
@Component({ @Component({
selector: 'v-env-cfg', selector: 'v-env-cfg',
templateUrl: './env-cfg.page.html', templateUrl: './env-cfg.page.html',
styleUrls: ['./env-cfg.page.scss'], styleUrls: ['./env-cfg.page.scss'],
}) })
export class EnvCfgPage implements OnInit { export class EnvCfgPage implements OnInit {
// 工作模式 // 工作模式
workModeSetting = { 'workMode' : '1', workModeSetting = {
'DeviceNo' : '', 'workMode': '1',
'workModeOld' : '1'}; 'DeviceNo': '',
'workModeOld': '1'
};
defaultColumnOptions = []; defaultColumnOptions = [];
fanMode = { fanMode = {
'selecting' : false, 'selecting': false,
} };
light = { light = {
'selecting' : false, 'selecting': false,
} };
fanCfg = [{ fanCfg = [{
'name':'模式一', 'name': '模式一',
'timeInterval':25, 'timeInterval': 25,
'tempSet':25, 'tempSet': 25,
'tempOffset':3, 'tempOffset': 3,
'ATmr':20, 'ATmr': 20,
'BTmr':20, 'BTmr': 20,
},{ }, {
'name':'模式二', 'name': '模式二',
'timeInterval':25, 'timeInterval': 25,
'tempSet':30, 'tempSet': 30,
'tempOffset':3, 'tempOffset': 3,
'ATmr':20, 'ATmr': 20,
'BTmr':20, 'BTmr': 20,
},{ }, {
'name':'模式三', 'name': '模式三',
'timeInterval':25, 'timeInterval': 25,
'tempSet':20, 'tempSet': 20,
'tempOffset':3, 'tempOffset': 3,
'ATmr':20, 'ATmr': 20,
'BTmr':20, 'BTmr': 20,
},] }, ];
lightCfg= [{ lightCfg = [{
'name':'模式一', 'name': '模式一',
'timeInterval':25, 'timeInterval': 25,
'startTime':25, 'startTime': 25,
'endTime':3, 'endTime': 3,
'onTime':20, 'onTime': 20,
'offTime':20, 'offTime': 20,
},{ }, {
'name':'模式二', 'name': '模式二',
'timeInterval':25, 'timeInterval': 25,
'startTime':30, 'startTime': 30,
'endTime':3, 'endTime': 3,
'onTime':20, 'onTime': 20,
'offTime':20, 'offTime': 20,
},] }, ];
constructor(private pickerController:PickerController) { } constructor(private pickerController: PickerController, private api: Api, private load: Load) {
}
async openPicker(numColumns = 1, numOptions = 5, columnOptions = this.defaultColumnOptions){
isError = false;
cowshedList = [];
curFieldRegionNo = '';
// 当前牛舍信息
curCowshed = {
factoryNo: '',
factoryName: '',
fieldRegionNo: '',
fieldRegionName: '',
isWisdomModel: 0,
propertyConfig: {toft: '', hoft: ''},
config: [{
fieldDeviceType: '', controlModel: 0, controlConfig: [{
TU: 0,
TL: 0,
id: '',
name: '',
T: 0,
A: 0,
B: 0,
intverval: 0,
startDate: '',
stopDate: '',
on: '',
off: '',
power: 0
}
]
}],
leave: [],
back: [],
environmentConfigJson: {TU: '', TL: '', HU: '', HL: ''},
heatStressList: []
};
// 各设备配置信息
fengJi = {};
penLin = {};
zhaoMing = {};
shuiCao = {};
async openPicker(numColumns = 1, numOptions = 5, columnOptions = this.defaultColumnOptions) {
const picker = await this.pickerController.create({ const picker = await this.pickerController.create({
columns: this.getColumns(numColumns, numOptions, columnOptions), columns: this.getColumns(numColumns, numOptions, columnOptions),
buttons: [ buttons: [
{ {
text: 'Cancel', text: 'Cancel',
role: 'cancel', role: 'cancel',
handler: ()=> { handler: () => {
this.fanMode.selecting = false; this.fanMode.selecting = false;
} }
}, },
...@@ -88,7 +133,7 @@ export class EnvCfgPage implements OnInit { ...@@ -88,7 +133,7 @@ export class EnvCfgPage implements OnInit {
} }
getColumns(numColumns, numOptions, columnOptions) { getColumns(numColumns, numOptions, columnOptions) {
let columns = []; const columns = [];
for (let i = 0; i < numColumns; i++) { for (let i = 0; i < numColumns; i++) {
columns.push({ columns.push({
name: `col-${i}`, name: `col-${i}`,
...@@ -99,12 +144,12 @@ export class EnvCfgPage implements OnInit { ...@@ -99,12 +144,12 @@ export class EnvCfgPage implements OnInit {
} }
getColumnOptions(columnIndex, numOptions, columnOptions) { getColumnOptions(columnIndex, numOptions, columnOptions) {
let options = []; const options = [];
for (let i = 0; i < numOptions; i++) { for (let i = 0; i < numOptions; i++) {
options.push({ options.push({
text: columnOptions[columnIndex][i % numOptions], text: columnOptions[columnIndex][i % numOptions],
value: i value: i
}) });
} }
return options; return options;
} }
...@@ -120,7 +165,33 @@ export class EnvCfgPage implements OnInit { ...@@ -120,7 +165,33 @@ export class EnvCfgPage implements OnInit {
'5' '5'
] ]
]; ];
}
this.init();
}
init() {
this.getData(0);
}
getData(time) {
if (time) {
this.load.toLoad('加载中...', false);
}
this.api.cowshedApp.getAllRegionData(['', (data) => {
// 获取所有牛舍信息
if (data) {
// 牛舍列表
if (data.resultIndexDataListForAppVos && data.resultIndexDataListForAppVos.constructor === Array) {
this.isError = false;
this.cowshedList = data.resultIndexDataListForAppVos;
} else {
this.api.presentMsgToast('获取数据失败');
this.isError = true;
}
}
this.load.offLoad();
}]);
}
workModeEvent() { workModeEvent() {
// if ( this.workModeSetting.workModeOld === this.workModeSetting.workMode ) { // if ( this.workModeSetting.workModeOld === this.workModeSetting.workMode ) {
...@@ -145,14 +216,14 @@ export class EnvCfgPage implements OnInit { ...@@ -145,14 +216,14 @@ export class EnvCfgPage implements OnInit {
// }]); // }]);
} }
async openCalendarPicker(numColumns = 1, numOptions = 5, columnOptions = this.defaultColumnOptions){ async openCalendarPicker(numColumns = 1, numOptions = 5, columnOptions = this.defaultColumnOptions) {
const picker = await this.pickerController.create({ const picker = await this.pickerController.create({
columns: this.getColumns(numColumns, numOptions, columnOptions), columns: this.getColumns(numColumns, numOptions, columnOptions),
buttons: [ buttons: [
{ {
text: 'Cancel', text: 'Cancel',
role: 'cancel', role: 'cancel',
handler: ()=> { handler: () => {
this.fanMode.selecting = false; this.fanMode.selecting = false;
} }
}, },
...@@ -168,22 +239,112 @@ export class EnvCfgPage implements OnInit { ...@@ -168,22 +239,112 @@ export class EnvCfgPage implements OnInit {
await picker.present(); await picker.present();
} }
fanTempHaveFouch(){ fanTempHaveFouch() {
console.log('fanTempHaveFouch'); console.log('fanTempHaveFouch');
if(this.fanMode.selecting === false) if (this.fanMode.selecting === false) {
{ this.fanMode.selecting = true;
this.fanMode.selecting = true; this.openPicker();
this.openPicker(); }
}
} }
lightTimeHaveFouch(){ lightTimeHaveFouch() {
console.log('lightTimeHaveFouch'); console.log('lightTimeHaveFouch');
if(this.light.selecting === false) if (this.light.selecting === false) {
{
this.light.selecting = true; this.light.selecting = true;
this.openPicker(); this.openPicker();
} }
} }
// 获取当前牛舍配置信息
selectCowshed() {
this.api.config.getAll([{'fieldRegionNo': this.curFieldRegionNo}, (data) => {
if (data) {
this.curCowshed = data;
// ----------------------------------------------------
// TODO 测试用准备数据
this.curCowshed = {
factoryNo: 'FN108050436279648256',
factoryName: '一厂',
fieldRegionNo: 'FRN136641006052720640',
fieldRegionName: '1号牛舍',
isWisdomModel: 1,
propertyConfig: {toft: '1.5', hoft: '2'},
config: [
{fieldDeviceType: '风机',
controlModel: 0,
controlConfig: [{TU: 28, TL: 20}],
},
{fieldDeviceType: '喷淋',
controlModel: 1,
controlConfig: [{id: '111', name: '模式一', T: 21, A: 35, B: 45, intverval: 55}, {id: '222', name: '模式二', T: 21, A: 35, B: 45, intverval: 55}]
},
{fieldDeviceType: '照明',
controlModel: 1,
controlConfig: [{id: '111', name: '模式A', startDate: '10-01', stopDate: '11-02', on: '19:00', off: '05:00'}, {id: '111', name: '模式B', startDate: '10-01', stopDate: '11-02', on: '19:00', off: '05:00'}]
},
{fieldDeviceType: '水槽',
controlModel: 0,
controlConfig: [{power: 100, startDate: '10-01', stopDate: '11-02'}],
}
],
leave: ['风机', '喷淋', '水槽'],
back: ['风机', '喷淋', '水槽'],
environmentConfigJson: {HL: 0, HU: 100, TL: -10, TU: 50},
heatStressList: [
{
heatStressLevel: '无应激',
'alarmLevel': '无',
'thi': 68
},
{
'heatStressLevel': '轻度应激',
'alarmLevel': '低',
'thi': 72
},
{
'heatStressLevel': '中度应激',
'alarmLevel': '中',
'thi': 80
},
{
'heatStressLevel': '重度应激',
'alarmLevel': '高',
'thi': 90
},
{
'heatStressLevel': 'II重度应激',
'alarmLevel': '高',
'thi': 100
}
]
};
// ----------------------------------------------------
this.initConfig();
} else {
this.api.presentMsgToast('获取数据失败');
this.isError = true;
}
this.load.offLoad();
}]);
}
// 显示牛舍配置信息
initConfig() {
const configInfo = this.curCowshed.config;
if (configInfo && configInfo.constructor === Array) {
configInfo.map((value, index) => {
if ('风机' === value.fieldDeviceType) {
this.fengJi = value;
} else if ('喷淋' === value.fieldDeviceType) {
this.penLin = value;
} else if ('照明' === value.fieldDeviceType) {
this.zhaoMing = value;
} else if ('水槽' === value.fieldDeviceType) {
this.shuiCao = value;
}
});
}
}
} }
<ion-header> <ion-header>
<ion-toolbar> <ion-toolbar color="secondary">
<ion-title class="title">{{item.fieldRegionName}}历史数据</ion-title> <ion-buttons slot="start">
<ion-back-button text="" ></ion-back-button>
</ion-buttons>
<ion-title mode="ios" class="title">{{item.fieldRegionName}}历史数据</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>
<ion-content color='light' style="height: 100%"> <ion-content color='light' style="height: 100%; padding-top: 30px;">
<div style="padding-top: 10px">
<h1 class="subTittle">牛舍热应激状态</h1> <span [ngClass]="{'perfect': analResult === '优','good': analResult === '良','bad': analResult === '差'}" margin-start="10px;">{{analResult}}</span>
<h1 style=" <h1 class="subTittle">近8个小时环境参数曲线</h1>
font-size: 16px; <div echarts [options]="chartOption" class="demo-chart"></div>
padding-left: 5px; <h1 class="subTittle">近8个小时环境参数表</h1>
border-left: 5px solid #28c9bd; <div>
line-height: 25px; <ngx-datatable class='material' [rows]="rows" [columnMode]="'force'" [scrollbarH]="true"[scrollbarV]="true" style="white-space: nowrap; text-align: center">
margin-bottom: 5px;">牛舍热应激状态</h1> <span [ngClass]="{'perfect': analResult === '优','good': analResult === '良','bad': analResult === '差'}">{{analResult}}</span> <ngx-datatable-column name="时间" prop="time" width="100">
</ngx-datatable-column>
<h1 style=" <ngx-datatable-column name="热应激" prop="thi" width="60">
font-size: 16px; </ngx-datatable-column>
padding-left: 5px; <ngx-datatable-column name="温度" prop="temp" width="80">
border-left: 5px solid #28c9bd; </ngx-datatable-column>
line-height: 25px; <ngx-datatable-column name="湿度" prop="humi" width="80">
margin-bottom: 5px;">近8个小时环境参数曲线</h1> </ngx-datatable-column>
<div echarts [options]="chartOption" class="demo-chart"></div> <ngx-datatable-column name="光照" prop="AA" width="80">
<h1 style=" </ngx-datatable-column>
font-size: 16px; <ngx-datatable-column name="风机" prop="BB" width="80">
padding-left: 5px; </ngx-datatable-column>
border-left: 5px solid #28c9bd; <ngx-datatable-column name="喷淋" prop="CC" width="80">
line-height: 25px; </ngx-datatable-column>
margin-bottom: 5px;">近8个小时环境参数表</h1> <ngx-datatable-column name="照明" prop="DD" width="80">
<div> </ngx-datatable-column>
<ngx-datatable class='material' [rows]="rows" [columnMode]="'force'" [scrollbarH]="true"[scrollbarV]="true" style="white-space: nowrap; "> </ngx-datatable>
<ngx-datatable-column name="时间" prop="time" width="100"> </div>
</ngx-datatable-column>
<ngx-datatable-column name="热应激" prop="thi" width="60">
</ngx-datatable-column>
<ngx-datatable-column name="温度" prop="temp" width="80">
</ngx-datatable-column>
<ngx-datatable-column name="湿度" prop="humi" width="80">
</ngx-datatable-column>
<ngx-datatable-column name="光照" prop="AA" width="80">
</ngx-datatable-column>
<ngx-datatable-column name="风机" prop="BB" width="80">
</ngx-datatable-column>
<ngx-datatable-column name="喷淋" prop="CC" width="80">
</ngx-datatable-column>
<ngx-datatable-column name="照明" prop="DD" width="80">
</ngx-datatable-column>
</ngx-datatable>
</div> </div>
</ion-content> </ion-content>
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
@import '~@swimlane/ngx-datatable/release/themes/material.css'; @import '~@swimlane/ngx-datatable/release/themes/material.css';
@import '~@swimlane/ngx-datatable/release/assets/icons.css'; @import '~@swimlane/ngx-datatable/release/assets/icons.css';
.perfect{ .perfect {
width: 30px; width: 30px;
height: 30px; height: 30px;
background-color:green; background-color:green;
...@@ -35,12 +35,22 @@ ...@@ -35,12 +35,22 @@
color:white; color:white;
} }
.demo-chart{ .demo-chart {
width: 100%; width: 100%;
height: 230px; height: 230px;
} }
.title{ .title {
text-align: center; text-align: center;
padding-left: 0px padding-left: 0px;
font-weight: lighter;
font-size: large
}
.subTittle {
font-size: 16px;
padding-left: 5px;
border-left: 5px solid #28c9bd;
line-height: 25px;
margin-bottom: 5px;
} }
import { Component, OnInit } from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {ActivatedRoute} from '@angular/router'; import {ActivatedRoute} from '@angular/router';
import {Api} from '../../service/api'; import {Api} from '../../service/api';
import {Load} from '../../service/load'; import {Load} from '../../service/load';
import { NgxDatatableModule } from '@swimlane/ngx-datatable'; import {NgxDatatableModule} from '@swimlane/ngx-datatable';
@Component({ @Component({
selector: 'v-env-history', selector: 'v-env-history',
templateUrl: './env-history.page.html', templateUrl: './env-history.page.html',
styleUrls: ['./env-history.page.scss'], styleUrls: ['./env-history.page.scss'],
}) })
export class EnvHistoryPage implements OnInit { export class EnvHistoryPage implements OnInit {
constructor(private api: Api, private ac: ActivatedRoute, private load: Load) { } constructor(private api: Api, private ac: ActivatedRoute, private load: Load) {
item = {fieldRegionNo: ''}; }
// TODO 以下为假数据 待删除 item = {fieldRegionNo: ''};
analResult = '优';
chartOption = { // TODO 以下为假数据 待删除
backgroundColor: '#F0F8FF', analResult = '优';
visualMap: [{
show: false,
type: 'continuous',
seriesIndex: 0,
min: 0,
max: 400},
{
show: false,
type: 'continuous',
seriesIndex: 1,
dimension: 0,
min: 0,
max: 400
}],
xAxis: { chartOption = {
name: '时间', backgroundColor: '#F0F8FF',
type: 'category', visualMap: [
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] {show: false, type: 'continuous', seriesIndex: 0, min: 0, max: 400},
}, {show: false, type: 'continuous', seriesIndex: 1, dimension: 0, min: 0, max: 400}],
yAxis: [{ xAxis: {
name: '温度(℃)', name: '', type: 'category',
type: 'value', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
splitLine: {show: false} },
}, yAxis: [
{ {name: '温度(℃)', type: 'value', splitLine: {show: false}},
name: '湿度(%)', {name: '湿度(%)', type: 'value', max: 100, splitLine: {show: false}}
type: 'value', ],
max: 100, series: [
splitLine: {show: false} {data: [28, 32, 35, 34, 30, 29, 27], type: 'line'},
}], {data: [15, 13, 12, 11, 12, 11, 87], yAxisIndex: 1, type: 'line'},
series: [{ {data: [76, 45, 43, 23, 34, 54, 23], yAxisIndex: 1, type: 'line'}
data: [28, 32, 35, 34, 30, 29, 27], ]
type: 'line' };
},{
data: [15, 13, 12, 11, 12, 11, 87],
yAxisIndex: 1,
type: 'line'
},{
data: [76, 45, 43, 23, 34, 54, 23],
yAxisIndex: 1,
type: 'line'
}]
};
// 时间 热应激 温度 湿度 光照 风机 喷淋 照明 // 时间 热应激 温度 湿度 光照 风机 喷淋 照明
rows = [ rows = [
{ time: '17:00', thi: '轻', temp: '23.8', humi: '56', AA: '70', BB: '55%', CC: 'O', DD: 'X'}, {time: '17:00', thi: '轻', temp: '23.8', humi: '56', AA: '70', BB: '55%', CC: 'O', DD: 'X'},
{ time: '17:30', thi: '中', temp: '27.2', humi: '43', AA: '80', BB: '55%', CC: 'X', DD: 'O' }, {time: '17:30', thi: '中', temp: '27.2', humi: '43', AA: '80', BB: '55%', CC: 'X', DD: 'O'},
{ time: '18:00', thi: '轻', temp: '23.2', humi: '61', AA: '99', BB: '55%', CC: 'O', DD: 'X' }, {time: '18:00', thi: '轻', temp: '23.2', humi: '61', AA: '99', BB: '55%', CC: 'O', DD: 'X'},
{ time: '18:30', thi: '轻', temp: '23.1', humi: '47', AA: '100', BB: '55%', CC: 'X', DD: 'O'}, {time: '18:30', thi: '轻', temp: '23.1', humi: '47', AA: '100', BB: '55%', CC: 'X', DD: 'O'},
{ time: '19:00', thi: '轻', temp: '20.2', humi: '43', AA: '60', BB: '55%', CC: 'O', DD: 'X' }, {time: '19:00', thi: '轻', temp: '20.2', humi: '43', AA: '60', BB: '55%', CC: 'O', DD: 'X'},
{ time: '19:30', thi: '轻', temp: '21.6', humi: '34', AA: '50', BB: '55%', CC: 'O', DD: 'X' }, {time: '19:30', thi: '轻', temp: '21.6', humi: '34', AA: '50', BB: '55%', CC: 'O', DD: 'X'},
{ time: '20:00', thi: '轻', temp: '22.5', humi: '43', AA: '40', BB: '55%', CC: 'X', DD: 'O' }, {time: '20:00', thi: '轻', temp: '22.5', humi: '43', AA: '40', BB: '55%', CC: 'X', DD: 'O'},
]; ];
ngOnInit() { ngOnInit() {
this.ac.queryParams.subscribe((data) => { this.ac.queryParams.subscribe((data) => {
this.item.fieldRegionNo = data.no; this.item.fieldRegionNo = data.no;
}); });
this.getData(0); this.getData(0);
// TODO 待删除 // TODO 待删除
for (let i = 0; i < 8; i ++) { this.chartOption.xAxis.data = ['1', '2', '3', '4', '5', '6', '7', '8'];
this.chartOption.xAxis.data = ['8', '7', '6', '5', '4', '3', '2', '1']; // for (let i = 0; i < 8; i++) {
// this.chartOption.xAxis.data = ['1', '2', '3', '4', '5', '6', '7', '8'];
// }
} }
}
getData(time) { getData(time) {
if (time) { if (time) {
this.load.toLoad('加载中...', false); this.load.toLoad('加载中...', false);
} }
this.api.cowshedApp.getRealDataByFieldRegionNo([{'fieldRegionNo' : this.item.fieldRegionNo}, (data) => { this.api.cowshedApp.getRealDataByFieldRegionNo([{'fieldRegionNo': this.item.fieldRegionNo}, (data) => {
if (data) { if (data) {
this.item = data; this.item = data;
} }
}]); }]);
} }
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-back-button color="secondary" defaultHref="/index" text=""></ion-back-button> <ion-back-button color="secondary" defaultHref="/index" text=""></ion-back-button>
</ion-buttons> </ion-buttons>
<ion-searchbar (ionInput)="getItems($event)" (ionClear)="resetItems()" debounce="1000"></ion-searchbar> <ion-searchbar (ionInput)="getItems($event)" (ionClear)="resetItems()" debounce="1000" style="height: 40px;"></ion-searchbar>
<!--<ion-searchbar (ionInput)="getItems($event)" [(ngModel)]="searchItem"></ion-searchbar>--> <!--<ion-searchbar (ionInput)="getItems($event)" [(ngModel)]="searchItem"></ion-searchbar>-->
<!--<div class="topSearch"> <!--<div class="topSearch">
<SearchBar [placeholder]="'点击此处进行搜索'" [(ngModel)]="searchText" <SearchBar [placeholder]="'点击此处进行搜索'" [(ngModel)]="searchText"
......
...@@ -90,6 +90,11 @@ export class Api { ...@@ -90,6 +90,11 @@ export class Api {
controlSwitch: (data) => this.trans('post', '/control/controlSwitch', data), controlSwitch: (data) => this.trans('post', '/control/controlSwitch', data),
}; };
public config = {
getAll: (data) => this.trans('post', '/cowshedConfig/getAll', data),
updateCowshedConfig: (data) => this.trans('post', '/cowshedConfig/updateCowshedConfig', data),
};
private trans(type, addr, data) { private trans(type, addr, data) {
this.sendHttpReq(type, addr, data[0], data[1], data[2], data[3]); this.sendHttpReq(type, addr, data[0], data[1], data[2], data[3]);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment