Newer
Older
import {AnalysisService} from '../analysis.service';
import {NzMessageService} from 'ng-zorro-antd';
import {DatePipe} from '@angular/common';
selector: 'smart-resource-alarm',
templateUrl: './resource-alarm.component.html',
styles: []
constructor(private analysisSer: AnalysisService, private message: NzMessageService,
private datePipe: DatePipe, private overAllSer: OverAllService) {
}
ngOnInit() {
const today = new Date().getTime();
this.obj.startTime = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 00:00:00';
this.obj.endTime = this.datePipe.transform(today, 'yyyy-MM-dd') + ' 23:59:59';
this.getGroup();
}
getData() {
this.getAlarmTopEchart();
this.getAlarmTrend();
this.getCommonTop();
this.getAnalysis();
}
//获取分组
getGroup() {
this.overAllSer.getgroups({}).subscribe(
(res) => {
if (res.errCode == 10000) {
this.groupList = res.data;
//告警总数TOP10
getAlarmTopEchart() {
const data = {
groupid: this.obj.groupid,
startTime: this.obj.startTime,
endTime: this.obj.endTime,
};
this.analysisSer.waringCountTop(data).subscribe(
(res) => {
//设置告警总数TOP10 echarts
setTopEcharts(data){
this.chartTopOption = {
xAxis: {
type: 'category',
data: data.map(e=>{
return e.name;
})
},
yAxis: {
axisLabel: {
show: true,
interval: 'auto',
formatter: '{value} 个'
},
},
series: [{
data: data.map(e=>{
return e.size;
}),
type: 'bar'
}]
};
}
//告警总数趋势
getAlarmTrend() {
const data = {
groupid: this.obj.groupid,
startTime: this.obj.startTime,
endTime: this.obj.endTime,
};
this.analysisSer.waringTrend(data).subscribe(
(res) => {
if(res.errCode == 10000){
const response = res.data;
this.setAlarmTrend(response);
}else{
this.message.error(res.errMsg);
}
}
);
}
//设置告警趋势echarts图表
setAlarmTrend(data) {
this.charTrendOption = {
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
data:['严重','告警']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: data.map((e) => {
return e.date;
})
}
],
yAxis: [
{
axisLabel: {
show: true,
interval: 'auto',
formatter: '{value} 个'
},
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
}
],
series: [
{
name: '严重',
type: 'bar',
stack: '严重',
data: data.map(e=>{
return e.errorcount;
})
},
{
name: '告警',
type: 'bar',
stack: '告警',
data: data.map(e=>{
return e.waringcount;
})
}
]
};
}
//常发问题TOP10
getCommonTop() {
const data = {
groupid: this.obj.groupid,
startTime: this.obj.startTime,
endTime: this.obj.endTime,
};
this.analysisSer.commonProblemTop(data).subscribe(
(res) => {
if(res.errCode == 10000){
this.commonList = res.data;
}else{
this.message.error(res.errMsg);
}
}
);
}
//统计报告
getAnalysis() {
const data = {
pageCount: this.pageCount,
pageNum: this.pageNum,
obj: {
startTime: this.obj.startTime,
endTime: this.obj.endTime,
}
};
this.analysisSer.statisticalReport(data).subscribe(
(res) => {
//翻页
change(e){
this.pageNum = e;
this.getAnalysis();
}
let day1, day2;
switch (this.timeType) {
case'1': {
this.obj.startTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 00:00:00';
this.obj.endTime = this.datePipe.transform(nowDate, 'yyyy-MM-dd') + ' 23:59:59';
case'2': {
day1 = nowDate - 1 * 24 * 60 * 60 * 1000;
this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
this.obj.endTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 23:59:59';
case'3': {
day1 = nowDate - 3 * 24 * 60 * 60 * 1000;
day2 = nowDate - 1 * 24 * 60 * 60 * 1000;
this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
this.obj.endTime = this.datePipe.transform(day2, 'yyyy-MM-dd') + ' 23:59:59';
case'4': {
day1 = nowDate - 7 * 24 * 60 * 60 * 1000;
day2 = nowDate - 1 * 24 * 60 * 60 * 1000;
this.obj.startTime = this.datePipe.transform(day1, 'yyyy-MM-dd') + ' 00:00:00';
this.obj.endTime = this.datePipe.transform(day2, 'yyyy-MM-dd') + ' 23:59:59';
search() {
if (this.timeType == '5') {
this.obj.startTime = this.datePipe.transform(this.startTime, 'yyyy-MM-dd HH:mm:ss');
this.obj.endTime = this.datePipe.transform(this.endTime, 'yyyy-MM-dd HH:mm:ss');
const data = {
triggerids:item.waringid
}
this.analysisSer.reportCount(data).subscribe(
(res)=>{
this.modalList = res.data;
}
)
const data = {
triggerids:item.errorid
}
this.analysisSer.reportCount(data).subscribe(
(res)=>{
this.modalList = res.data;
}
)