Commit aa6fed30 authored by yating.lin's avatar yating.lin

修改:牛舍告警一览

parent 3021fe72
......@@ -4,15 +4,60 @@
</ion-toolbar>
</ion-header>
<ion-content color="light" style="height: 100%">
<div class="alarmItem" *ngFor="let a of alarmItem" (click)="toControl(a)">
<div class="listTitle">
<span>{{a.fieldRegionName}}</span>
<span style="float:right;">近一年</span>
</div>
<div>
<div class="alarmContent"><i class="vo v-guzhang2"></i> &nbsp;&nbsp;未解决故障数/总故障数 {{a.devErr}}/{{a.devErrTotal}}</div>
<div class="alarmContent"><i class="vo v-guzhang"></i> &nbsp;&nbsp;未解决预警数/总故障数 {{a.alarm}}/{{a.alarmTotal}}</div>
</div>
</div>
<ion-content color="light">
<ion-card *ngFor="let item of alarmItems" style="margin-top:10px; margin-bottom:0px;">
<ion-card-header style="padding-top: 3px; padding-bottom: 3px;">
<ion-card-title style="display: inline-block" style="width:100%">
<div class="cardTitle">
<i class="vo v-fangzi"></i>
<span style="margin-left:10px">{{item.fieldRegionName}}</span>
<span class="alarmNum">{{item.total}}</span>
<span style="float:right; padding-right: 20px;">
<!--<ion-popover-controller></ion-popover-controller>-->
<a (click)="presentPopover($event)">近一年</a>
</span>
</div>
</ion-card-title>
</ion-card-header>
<ion-card-content style="padding-top: 5px; padding-bottom: 5px;">
<div class="sub" style="text-align: center; " style="width:100%">
<!--<ion-icon name="ios-heart" style="padding: auto"></ion-icon>-->
<ion-row style="width:100%">
<ion-col style="padding: 5px; width:51%; border-right:1px solid lightgray">
<div>
<div style="height: 60px; float:left; width: 40%">
<ion-icon name="ios-heart" style="padding: auto"></ion-icon>
</div>
<div style="height: 60px; float:left; width: 60%">
<div style="height: 35px; float:left;width: 100%">
<span class="label">未解决</span><span style="color:#d33939; font-size:24px;">{{item.devErr}}</span>
</div>
<div style="height: 25px; float:left;width: 100%">
<span class="label">总数</span><span>{{item.devErrTotal}}</span>
</div>
</div>
</div>
</ion-col>
<ion-col style="padding: 5px; width:48%">
<div>
<div style="height: 60px; float:left; width: 40%">
<ion-icon name="ios-heart" style="padding: auto"></ion-icon>
</div>
<div style="height: 60px; float:left; width: 60%">
<div style="height: 35px; float:left;width: 100%">
<span class="label">未解决</span><span style="color:#f0ca45; font-size:24px;">{{item.alarm}}</span>
</div>
<div style="height: 25px; float:left;width: 100%">
<span class="label">总数</span><span>{{item.alarmTotal}}</span>
</div>
</div>
</div>
</ion-col>
</ion-row>
</div>
</ion-card-content>
</ion-card>
</ion-content>
......@@ -22,3 +22,71 @@
text-align: center;
padding-left: 0px
}
.alarmKanban{
// border: #1e2023 1px solid;
width:100%;
//height: auto;
height: 100px;
align-items:center;
justify-content:
center;text-align: center;
//background: url('../../../assets/bg/home_bar.png') no-repeat;
background-image: url('../../../assets/bg/home_bar.png');
background-size:100% 100%;-moz-background-size:100% 100%;
}
.title{
margin-bottom: 5px;
padding-top: 5px;
align-items:center;
justify-content: center;
color: #717171;
font-size: 14px;
}
.sub{
padding-bottom: 3px;
}
.sub-left{
font-size: 20px; //30
position:relative;
// border-right: #cccccc 1px solid;
display: inline;
padding-left: 20px;
}
.sub-right{
font-size: 20px; //30
position:relative;
display: inline;
width: 50%;
padding-left: 20px;
color: #285B90;
}
.alarmNum {
border-radius: 10px;
background-color: #d33939;
display: inline-block;
vertical-align: middle;
// box-shadow: #ccc 0.5px 0.5px 3px;
padding: 2px 2px 2px 2px;
color: white;
margin-left: 10px;
font-size: 12px;
}
.label {
width: 55px;
display: inline-block;
}
.cardTitle {
margin-top:3px;
padding-bottom:3px;
font-size: 16px;
font-weight: normal;
border-bottom: 1px solid lightgray;
}
......@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
import {Api} from '../../service/api';
import {NavController} from '@ionic/angular';
@Component({
selector: 'v-env-alarm',
templateUrl: './env-alarm.page.html',
......@@ -9,45 +10,82 @@ import {NavController} from '@ionic/angular';
})
export class EnvAlarmPage implements OnInit {
alarmItem = [{
alarmItems = [{
factoryNo: 'FN108050436279648256',
factoryName: '一厂',
fieldRegionNo: 'FRN110268534764224512',
fieldRegionName: '1号牛舍',
devErr: 36,
devErrTotal:136,
alarm:21,
alarmTotal:121
},{
devErrTotal: 55,
alarm: 20,
alarmTotal: 55,
total: 56
}, {
factoryNo: 'FN108050436279648256',
factoryName: '一厂',
fieldRegionNo: 'FRN110268534764224512',
fieldRegionName: '2号牛舍',
devErr: 1,
devErrTotal:11,
alarm:0,
alarmTotal:10
},{
devErr: 36,
devErrTotal: 55,
alarm: 20,
alarmTotal: 55,
total: 56
}, {
factoryNo: 'FN108050436279648256',
factoryName: '一厂',
fieldRegionNo: 'FRN110268534764224512',
fieldRegionName: '3号牛舍',
devErr: 2,
devErrTotal:12,
alarm:3,
alarmTotal:13
},];
devErr: 36,
devErrTotal: 55,
alarm: 20,
alarmTotal: 55,
total: 56
}, {
factoryNo: 'FN108050436279648256',
factoryName: '一厂',
fieldRegionNo: 'FRN110268534764224512',
fieldRegionName: '4号牛舍',
devErr: 36,
devErrTotal: 55,
alarm: 20,
alarmTotal: 55,
total: 56
}];
constructor(private api: Api,public nav: NavController) { }
constructor(private api: Api, public nav: NavController) {
customElements.define('popover-page', class ModalContent extends HTMLElement {
connectedCallback() {
this.innerHTML = `
<ion-list>
<ion-list-header>Ionic</ion-list-header>
<ion-item button>Learn Ionic</ion-item>
<ion-item button>Documentation</ion-item>
<ion-item button>Showcase</ion-item>
<ion-item button>GitHub Repo</ion-item>
</ion-list>
<ion-button expand="block" onClick="dismissPopover()">确认</ion-button>
`;
}
});
}
ngOnInit() {
this.api.alert.getAll(['{"fieldRegionType":"牛舍"}',(data) => {
if(data.total > 0) {
let rows = data.rows;
if(rows.constructor === Array){
this.alarmItem = rows;
rows.map((value, index)=> {
// this.totalAlert = this.totalAlert + value.devErr + value.alarm;
});
this.api.alert.getAll([{fieldRegionType: '牛舍'}, (data) => {
if (data.total > 0) {
if (data.rows && data.rows.constructor === Array) {
this.alarmItems = data.rows;
// rows.map((value, index) => {
// // this.totalAlert = this.totalAlert + value.devErr + value.alarm;
//
// });
}
}
}]);
}
toControl(one){
const query = '/env-alarmDetail?name=' + one.fieldRegionName + '&no='+ one.fieldRegionNo;
toControl(one) {
const query = '/env-alarmDetail?name=' + one.fieldRegionName + '&no=' + one.fieldRegionNo;
// this.tf.transfer({
// url: '/' + one.url,
// query: query,
......@@ -55,5 +93,14 @@ export class EnvAlarmPage implements OnInit {
// });
console.log(query);
this.nav.navigateForward(query);
}
async presentPopover(ev) {
const popoverElement = Object.assign(document.createElement('ion-popover'), {
component: 'popover-page',
event: event
});
document.body.appendChild(popoverElement);
return await popoverElement.present();
}
}
......@@ -268,68 +268,70 @@
</ion-item-divider>
<ion-item class="fanItem" *ngIf="isOpenInHouse" @shrink >
<ion-grid>
<!--<ion-row>-->
<!--<ion-col>牛群回舍时需恢复上述的设备</ion-col>-->
<!--</ion-row>-->
<!--<ion-row>-->
<!--<ion-col *ngFor="let device of curCowshed.leave">-->
<!--<ion-item lines="none" class="cow">-->
<!--<ion-label>{{device}}</ion-label>-->
<!--&lt;!&ndash; <ion-checkbox color="primary" class="cowCheckBox" slot="start" [(ngModel)]="curCowshed.propertyConfig.toft"></ion-checkbox>&ndash;&gt;-->
<!--</ion-item>-->
<!--</ion-col>-->
<!--</ion-row>-->
<!--<ion-row>-->
<!--<ion-col>牛群离舍时需完全关闭的设备</ion-col>-->
<!--</ion-row>-->
<!--<ion-row>-->
<!--<ion-col *ngFor="let device of curCowshed.back">-->
<!--<ion-item lines="none" class="cow">-->
<!--<ion-label>{{device}}</ion-label>-->
<!--&lt;!&ndash; <ion-checkbox color="primary" class="cowCheckBox" slot="start" [(ngModel)]="curCowshed.propertyConfig.toft"></ion-checkbox>&ndash;&gt;-->
<!--</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-col *ngFor="let device of curCowshed.leave">
<ion-item lines="none" class="cow">
<ion-checkbox color="primary" class="cowCheckBox" slot="start" [(ngModel)]="device.flag"></ion-checkbox>
<ion-label>{{device.type}}</ion-label>
</ion-item>
</ion-col>
</ion-row>
<ion-row>
<ion-col>牛群离舍时需完全关闭的设备</ion-col>
<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 *ngFor="let device of curCowshed.back">
<ion-item lines="none" class="cow">
<ion-checkbox color="primary" class="cowCheckBox" slot="start" [(ngModel)]="device.flag"></ion-checkbox>
<ion-label>{{device.type}}</ion-label>
</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-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>
......@@ -398,13 +400,13 @@
<ion-row>
<ion-col class="thiItem">应激等级</ion-col>
<ion-col class="thiItem">THI值(<)</ion-col>
<ion-col class="thiItem">预警等级</ion-col>
<ion-col class="thiItem">预警方式</ion-col>
</ion-row>
<ion-row *ngFor="let heatStress of curCowshed.heatStressList">
<ion-col class="thiItem">{{heatStress.heatStressLevel}}</ion-col>
<ion-col class="thiItem">{{heatStress.thi}}</ion-col>
<ion-col class="thiItem">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="heatStress.alarmLevel" [(value)]="heatStress.alarmLevel" (ionChange)="workModeEvent(heatStress)">
<ion-select multiple="false" cancelText="取消" okText="确认" [(ngModel)]="heatStress.alarmLevel" [(value)]="heatStress.alarmLevel" (ionChange)="workModeEvent(heatStress)">
<ion-select-option value="无"></ion-select-option>
<ion-select-option value="低"></ion-select-option>
<ion-select-option value="中"></ion-select-option>
......
......@@ -38,8 +38,8 @@ export class EnvCfgPage implements OnInit {
isWisdomModel: 0,
propertyConfig: {toft: '', hoft: ''},
config: [],
leave: [],
back: [],
leave: [{type: '风机', flag: true}, {type: '喷淋', flag: false}, {type: '照明', flag: true}],
back: [{type: '风机', flag: false}, {type: '喷淋', flag: true}, {type: '照明', flag: false}],
environmentConfigJson: {TU: 0, TL: 0, HU: 0, HL: 0},
heatStressList: [] };
......@@ -311,8 +311,8 @@ export class EnvCfgPage implements OnInit {
controlConfig: {power: 100, startDate: '10-01', stopDate: '11-02'},
}
],
leave: ['风机', '喷淋', '水槽'],
back: ['风机', '喷淋', '水槽'],
leave: [{type: '风机', flag: true}, {type: '喷淋', flag: false}, {type: '照明', flag: true}],
back: [{type: '风机', flag: false}, {type: '喷淋', flag: true}, {type: '照明', flag: false}],
environmentConfigJson: {HL: 0, HU: 100, TL: -10, TU: 50},
heatStressList: [
{
......
......@@ -43,10 +43,10 @@ export class EnvChangeModelPage implements OnInit {
saveModels() {
this.controlConfig.forEach((item) => {
item.on = this.formartTime(item.on);
item.off = this.formartTime(item.off);
item.startDate = this.formartDate(item.startDate);
item.stopDate = this.formartDate(item.stopDate);
item.on = this.formatTime(item.on);
item.off = this.formatTime(item.off);
item.startDate = this.formatDate(item.startDate);
item.stopDate = this.formatDate(item.stopDate);
});
const query = '?changeModelCfg=' + JSON.stringify(this.controlConfig);
// this.nav.navigateForward('', );
......@@ -60,11 +60,11 @@ export class EnvChangeModelPage implements OnInit {
this.nav.back();
}
formartTime(time) {
formatTime(time) {
return this.datepipe.transform(time, 'HH:mm');
}
formartDate(date) {
formatDate(date) {
return this.datepipe.transform(date, 'MM-dd');
}
}
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
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