import {environment} from '../../../../environments/environment';
|
import {DateService} from '../../../business/services/util/date.service';
|
import {NzMessageService} from 'ng-zorro-antd';
|
import {Component, OnInit} from '@angular/core';
|
import {HttpClient} from '@angular/common/http';
|
import {Router} from '@angular/router';
|
|
@Component({
|
selector: 'app-demo',
|
templateUrl: './demo.component.html',
|
styles: []
|
})
|
|
export class DemoComponent implements OnInit {
|
[x: string]: any;
|
query: any = {
|
};
|
time: any = {
|
format: 'YYYY',
|
mode: 'month'
|
};
|
items = [{
|
id: 0,
|
monitorPoint: null,
|
mac: '',
|
time: null,
|
formatTime: null
|
}];
|
|
public sensorOptions = [];
|
public monitorPointOptions = [];
|
public deviceOptions = [];
|
|
constructor(
|
public http: HttpClient,
|
public dateSrv: DateService,
|
public router: Router,
|
public msgSrv: NzMessageService
|
) {
|
}
|
|
ngOnInit() {
|
this.http.get(environment.SERVER_BASH_URL + 'sensor/all').subscribe((res: any) => {
|
if (res.code === 0) {
|
this.msgSrv.error(res.message);
|
} else {
|
this.sensorOptions = res.data;
|
}
|
});
|
}
|
|
addItem() {
|
const id = (this.items.length > 0) ? this.items[this.items.length - 1].id + 1 : 0;
|
const index = this.items.push({
|
id,
|
monitorPoint: null,
|
mac: '',
|
time: null,
|
formatTime: null
|
});
|
}
|
|
|
searchChange(searchText, i) {
|
if (searchText) {
|
const query = encodeURI(searchText);
|
if (query) {
|
this.http.get(environment.SERVER_BASH_URL + '/monitor-point/list/' + query).subscribe((res: any) => {
|
if (res.code === 0) {
|
this.msgSrv.error(res.message);
|
} else {
|
this.monitorPointOptions = res.data;
|
}
|
});
|
}
|
}
|
}
|
|
monitorPointChange(value, i) {
|
this.deviceOptions = [];
|
if (value) {
|
this.monitorPointOptions.forEach(monitorPoint => {
|
if (monitorPoint.id === value) {
|
this.monitorPoint = monitorPoint;
|
}
|
});
|
this.http.get(environment.SERVER_BASH_URL + 'device/monitorPointId', {params: {monitorPointId: value}}).subscribe((res: any) => {
|
if (res.code === 0) {
|
this.msgSrv.error(res.message);
|
} else {
|
this.deviceOptions = res.data;
|
}
|
});
|
} else {
|
this.items[i].monitorPoint = null;
|
this.items[i].mac = '';
|
}
|
}
|
|
deviceChange(value, i) {
|
this.device = null;
|
if (value) {
|
this.deviceOptions.forEach(device => {
|
if (device.mac === value) {
|
this.device = device;
|
}
|
});
|
}
|
}
|
|
public typeOptions = [
|
{value: 'year', label: '年', mode: 'month', xAxisName: '月', format: 'yyyy', typeFormat: '%Y-%m', timeLength: 12},
|
{value: 'month', label: '月', mode: 'month', xAxisName: '日', format: 'yyyy-MM', typeFormat: '%Y-%m-%d', timeLength: 28},
|
{value: 'day', label: '日', mode: 'day', xAxisName: '时', format: 'yyyy-MM-dd', typeFormat: '%Y-%m-%d %H', timeLength: 24},
|
{value: 'hour', label: '时', mode: 'day', xAxisName: '分', format: 'yyyy-MM-dd HH', typeFormat: '%Y-%m-%d %H:%i', timeLength: 60}
|
];
|
|
|
typeChange(searchText) {
|
this.typeOptions.forEach(types => {
|
if (types.value === searchText) {
|
this.timeType = types;
|
this.time.format = types.format.toUpperCase();
|
this.time.mode = types.mode;
|
}
|
});
|
}
|
|
reportQuery() {
|
const query = this.query;
|
if (query.type) {
|
this.items.forEach(item => {
|
if (item.monitorPoint && item.time) {
|
item.formatTime = this.dateSrv.date_format(item.time, this.time.format);
|
} else {
|
this.msgSrv.error('请完善搜索项或删除查询条目');
|
return;
|
}
|
});
|
query.format = this.timeType.format;
|
query.typeFormat = this.timeType.typeFormat;
|
query.xAxisName = this.timeType.xAxisName;
|
query.label = this.timeType.label;
|
query.timeLength = this.timeType.timeLength;
|
query.items = JSON.stringify(this.items);
|
this.router.navigate(['report'], {queryParams: query});
|
} else {
|
this.msgSrv.error('请完善搜索项或删除查询条目');
|
}
|
|
}
|
|
sensorChange(value) {
|
this.sensor = {};
|
this.sensorOptions.forEach(sensor => {
|
if (sensor.sensorKey === value) {
|
this.sensor = sensor;
|
}
|
});
|
}
|
|
}
|