import { LineChartCriteria, TimePeriod } from '@business/entity/data';
|
import { PageBean } from '@business/entity/grid';
|
import { Sensor } from '@business/entity/data';
|
import { SensorsService } from '@business/services/http/sensors.service';
|
import { Component, OnInit } from '@angular/core';
|
import { _HttpClient } from '@delon/theme';
|
import { TimeUnits } from '@business/enum/types.enum';
|
import * as moment from 'moment';
|
|
@Component({
|
selector: 'app-query',
|
templateUrl: './query.component.html',
|
styleUrls: [ './query.component.less' ]
|
})
|
export class QueryComponent implements OnInit {
|
public sensorList:Sensor[];
|
public timeUnits:{ label: string, value: TimeUnits, disabled: boolean }[] = [];
|
// public timePeriod:TimePeriod = {startTime:null,endTime:null};
|
public lineChartCriteria:LineChartCriteria = {sensorKey:'e1', timePeriod:{startTime:null,endTime:null},dataConditions:[]};
|
|
get lineChartSensorName():String{
|
return !!this.sensorList?this.sensorList.find( sensor => sensor.sensorKey==this.lineChartCriteria.sensorKey).name:null;
|
}
|
private _timePeriodUnitValue:TimeUnits=TimeUnits.DAY;
|
public set timePeriodUnitValue(value:TimeUnits){
|
this._timePeriodUnitValue = value;
|
switch(value){
|
//YYYY-MM-DD HH:mm:ss
|
case TimeUnits.MONTH:
|
this.timeType.dateFormat ="YYYY-MM";
|
this.timeType.mode = "month";
|
this.timeType.timePickerOption = null;
|
break;
|
case TimeUnits.DAY:
|
this.timeType.dateFormat ="YYYY-MM-DD";
|
this.timeType.mode = "day";
|
this.timeType.timePickerOption = null;
|
break;
|
case TimeUnits.HOUR:
|
this.timeType.dateFormat ="YYYY-MM-DD HH 时";
|
this.timeType.timePickerOption = {nzFormat:"HH:mm"};
|
break;
|
}
|
}
|
public timeType:{dateFormat?:string,mode?:'year'|'month'|'day',timePickerOption?:{}}
|
= {dateFormat:"YYYY-MM-DD",mode:"day",timePickerOption:null};
|
get timePeriodUnitName():String {
|
return this.timeUnits.find( item => item.value == this._timePeriodUnitValue).label;
|
}
|
constructor(
|
private sensorsService:SensorsService
|
) {
|
this.initPage();
|
}
|
private initPage(){
|
this.sensorsService.getPagingList(null,null).subscribe(
|
(res: PageBean) => {
|
this.sensorList = res.data;
|
}
|
);
|
this.timeUnits.push(
|
{label:'年',value:TimeUnits.YEAR,disabled:false},
|
{label:'月',value:TimeUnits.MONTH,disabled:false},
|
{label:'日',value:TimeUnits.DAY,disabled:false},
|
{label:'时',value:TimeUnits.HOUR,disabled:false},
|
{label:'分',value:TimeUnits.MINUTE,disabled:false}
|
);
|
}
|
ngOnInit() {
|
}
|
get _isSameDay() {
|
console.log(this.lineChartCriteria.timePeriod.startTime && this.lineChartCriteria.timePeriod.endTime && moment(this.lineChartCriteria.timePeriod.startTime).isSame(this.lineChartCriteria.timePeriod.endTime, 'day'));
|
return this.lineChartCriteria.timePeriod.startTime && this.lineChartCriteria.timePeriod.endTime && moment(this.lineChartCriteria.timePeriod.startTime).isSame(this.lineChartCriteria.timePeriod.endTime, 'day');
|
}
|
_disabledStartDate = (startValue) => {
|
if (!startValue || !this.lineChartCriteria.timePeriod.endTime) {
|
return false;
|
}
|
console.log(startValue);
|
console.log("getTime:"+startValue.getTime());
|
let _startValue = moment(startValue,this.timeType.dateFormat);
|
console.log("valueOf:"+_startValue.valueOf());
|
return _startValue.valueOf() > this.lineChartCriteria.timePeriod.endTime;
|
};
|
_disabledEndDate = (endValue) => {
|
if (!endValue || !this.lineChartCriteria.timePeriod.startTime) {
|
return false;
|
}
|
return endValue.getTime() < this.lineChartCriteria.timePeriod.startTime;
|
};
|
}
|