|
|
@ -71,7 +71,7 @@ export class ManageComponent implements OnInit { |
|
|
|
isVisible = false |
|
|
|
isVisible = false |
|
|
|
detail_data : any; |
|
|
|
detail_data : any; |
|
|
|
destroySubscriptions: Subscription[] = []; |
|
|
|
destroySubscriptions: Subscription[] = []; |
|
|
|
exportIsVisable = true; |
|
|
|
|
|
|
|
constructor( |
|
|
|
constructor( |
|
|
|
private noticeService: NoticeService, |
|
|
|
private noticeService: NoticeService, |
|
|
|
public message: NzMessageService, |
|
|
|
public message: NzMessageService, |
|
|
@ -83,91 +83,99 @@ export class ManageComponent implements OnInit { |
|
|
|
const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
|
|
|
|
const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
|
|
|
|
const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
|
|
|
|
const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
|
|
|
|
this.saveAsExcelFile(excelBuffer, excelFileName);
|
|
|
|
this.saveAsExcelFile(excelBuffer, excelFileName);
|
|
|
|
} |
|
|
|
}
|
|
|
|
private saveAsExcelFile(buffer: any, fileName: string): void {
|
|
|
|
private saveAsExcelFile(buffer: any, fileName: string): void {
|
|
|
|
const data: Blob = new Blob([buffer], {
|
|
|
|
const data: Blob = new Blob([buffer], {
|
|
|
|
type: EXCEL_TYPE
|
|
|
|
type: EXCEL_TYPE
|
|
|
|
});
|
|
|
|
});
|
|
|
|
saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
|
|
|
|
saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);
|
|
|
|
} |
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private getAnalysisResult(startDate,endDate,queryDates){ // 获取es的查询最大日期范围
|
|
|
|
|
|
|
|
this.noticeService.getQueryRange().subscribe(resp => { |
|
|
|
|
|
|
|
console.log("resp.retcode"+resp.retcode); |
|
|
|
|
|
|
|
if (resp.retcode === 200) { |
|
|
|
|
|
|
|
console.log(resp.data.query_range); |
|
|
|
|
|
|
|
if (queryDates >resp.data.query_range ){ |
|
|
|
|
|
|
|
alert('查询范围不能超过'+resp.data.query_range+'天'); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
this.submitLoading = true; |
|
|
|
|
|
|
|
this.noticeService.getUebaResult({"type":this.dimension,"startDate":startDate,"endDate":endDate}).subscribe(resp => { |
|
|
|
|
|
|
|
if (resp.code === 200) { |
|
|
|
|
|
|
|
this.summary_detal_data = resp |
|
|
|
|
|
|
|
switch(this.dimension.toString()){ |
|
|
|
|
|
|
|
case "1": |
|
|
|
|
|
|
|
this.listOfData = resp.data.summary.ip; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "2": |
|
|
|
|
|
|
|
this.listOfData = resp.data.summary.account; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "3": |
|
|
|
|
|
|
|
this.listOfData = resp.data.summary.interface; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "4": |
|
|
|
|
|
|
|
this.listOfData = resp.data.summary.menu; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
this.tableisShow = this.dimension; |
|
|
|
|
|
|
|
this.submitLoading = false; |
|
|
|
|
|
|
|
if(this.tableisShow!=undefined){ |
|
|
|
|
|
|
|
this.exportIsVisable = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
error => { |
|
|
|
|
|
|
|
this.message.error('服务器错误'); |
|
|
|
|
|
|
|
this.submitLoading = false; |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
// this.tableisShow = this.dimension;
|
|
|
|
|
|
|
|
//this.submitLoading = false;
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
return undefined; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
error => { |
|
|
|
|
|
|
|
this.message.error('服务器错误'); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private querySubmit(){ |
|
|
|
onSubmit(){ |
|
|
|
var startDate :any; |
|
|
|
// 日期校验
|
|
|
|
var endDate :any; |
|
|
|
this.submitLoading = true; |
|
|
|
|
|
|
|
this.tableisShow = this.dimension; |
|
|
|
if (this.dateRange.length === 2) { |
|
|
|
if (this.dateRange.length === 2) { |
|
|
|
startDate = this.dateRange[0]; |
|
|
|
const startDate = this.dateRange[0]; |
|
|
|
endDate = this.dateRange[1];
|
|
|
|
const endDate = this.dateRange[1]; |
|
|
|
|
|
|
|
console.log(startDate); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//alert(`Selected Date Range: ${startDate.toLocaleDateString()} - ${endDate.toLocaleDateString()}`);
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
alert('请选择查询范围'); |
|
|
|
alert('Please select a date range.'); |
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 获取es的查询最大日期范围
|
|
|
|
|
|
|
|
// this.noticeService.getQueryRange().subscribe(resp => {
|
|
|
|
|
|
|
|
// if (resp.status === 200) {
|
|
|
|
|
|
|
|
// console.log(resp.data);
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// this.message.error(resp.msg);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
// error => {
|
|
|
|
|
|
|
|
// this.message.error('服务器错误');
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
|
|
|
|
let timeDiff = Math.abs(endDate.getTime() - startDate.getTime()); |
|
|
|
// 获取es数据 暂时mock数据
|
|
|
|
let diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); |
|
|
|
this.summary_detal_data = this.mockData |
|
|
|
|
|
|
|
this.listOfData=[] |
|
|
|
this.getAnalysisResult(startDate,endDate,diffDays) |
|
|
|
if (this.summary_detal_data.code === 0) { |
|
|
|
} |
|
|
|
switch(this.dimension.toString()){ |
|
|
|
onSubmit(){ |
|
|
|
case "1": |
|
|
|
this.querySubmit(); |
|
|
|
this.listOfData = this.summary_detal_data.data.summary.ip; |
|
|
|
|
|
|
|
console.log("1"+this.dimension.toString()) |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "2": |
|
|
|
|
|
|
|
this.listOfData = this.summary_detal_data.data.summary.account; |
|
|
|
|
|
|
|
console.log("2"+this.dimension.toString()) |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "3": |
|
|
|
|
|
|
|
this.listOfData = this.summary_detal_data.data.summary.interface; |
|
|
|
|
|
|
|
console.log("3"+this.dimension.toString()) |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "4": |
|
|
|
|
|
|
|
this.listOfData = this.summary_detal_data.data.summary.menu; |
|
|
|
|
|
|
|
console.log("4"+this.dimension.toString()) |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
this.message.error("error"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// this.listOfData = resp.data.summary.ip;
|
|
|
|
|
|
|
|
// this.noticeService.getUebaResult({"type":eventVal}).subscribe(resp => {
|
|
|
|
|
|
|
|
// if (resp.code === 200) {
|
|
|
|
|
|
|
|
// switch(this.dimension.toString()){
|
|
|
|
|
|
|
|
// case "1":
|
|
|
|
|
|
|
|
// this.listOfData = resp.summary.ip;
|
|
|
|
|
|
|
|
// case "2":
|
|
|
|
|
|
|
|
// this.listOfData = resp.summary.account;
|
|
|
|
|
|
|
|
// case "3":
|
|
|
|
|
|
|
|
// this.listOfData = resp.summary.interface;
|
|
|
|
|
|
|
|
// case "4":
|
|
|
|
|
|
|
|
// this.listOfData = resp.summary.menu;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// this.message.error(resp.msg);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
// error => {
|
|
|
|
|
|
|
|
// this.message.error('服务器错误');
|
|
|
|
|
|
|
|
// })
|
|
|
|
} |
|
|
|
} |
|
|
|
ngOnInit() { |
|
|
|
ngOnInit() { |
|
|
|
const now = new Date(); |
|
|
|
const now = new Date(); |
|
|
|
const oneWeekAgo = new Date(); |
|
|
|
const oneWeekAgo = new Date(); |
|
|
|
oneWeekAgo.setDate(now.getDate() - 7); |
|
|
|
oneWeekAgo.setDate(now.getDate() - 7); |
|
|
|
|
|
|
|
|
|
|
|
this.dateRange = [oneWeekAgo, now]; |
|
|
|
this.dateRange = [oneWeekAgo, now]; |
|
|
|
//this.onSubmit()
|
|
|
|
|
|
|
|
|
|
|
|
this.onSubmit() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
getMenuItem(e) { |
|
|
|
|
|
|
|
console.log(e.el.dataset.id); |
|
|
|
|
|
|
|
// this.key = e.el.dataset.id;
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
exportExcel(){ |
|
|
|
exportExcel(){ |
|
|
@ -198,32 +206,28 @@ export class ManageComponent implements OnInit { |
|
|
|
|
|
|
|
|
|
|
|
showModel(data){ |
|
|
|
showModel(data){ |
|
|
|
var tmpdata :any; |
|
|
|
var tmpdata :any; |
|
|
|
if(this.summary_detal_data != undefined){ |
|
|
|
switch(data.type){ |
|
|
|
switch(data.type){ |
|
|
|
case 1: |
|
|
|
case 1: |
|
|
|
tmpdata=this.summary_detal_data.data.detail.ip[data.key]; |
|
|
|
tmpdata=this.summary_detal_data.data.detail.ip[data.key]; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 2 : |
|
|
|
case 2 : |
|
|
|
tmpdata=this.summary_detal_data.data.detail.account[data.key]; |
|
|
|
tmpdata=this.summary_detal_data.data.detail.account[data.key]; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 3 : |
|
|
|
case 3 : |
|
|
|
tmpdata=this.summary_detal_data.data.detail.interface[data.key]; |
|
|
|
tmpdata=this.summary_detal_data.data.detail.interface[data.key]; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 4 : |
|
|
|
case 4 : |
|
|
|
tmpdata=this.summary_detal_data.data.detail.menu[data.key]; |
|
|
|
tmpdata=this.summary_detal_data.data.detail.menu[data.key]; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
var diagData = { |
|
|
|
var diagData = { |
|
|
|
"type": data.type, |
|
|
|
"type": data.type, |
|
|
|
[data.key]: tmpdata |
|
|
|
"startTime": Math.floor(this.dateRange[0].getTime() / 1000), |
|
|
|
|
|
|
|
"endTime": Math.floor(this.dateRange[1].getTime() / 1000), |
|
|
|
|
|
|
|
[data.key]: tmpdata |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.detail_data =diagData; |
|
|
|
|
|
|
|
console.log(JSON.stringify(this.detail_data)); |
|
|
|
|
|
|
|
this.isVisible=true;
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.detail_data =diagData; |
|
|
|
|
|
|
|
console.log(JSON.stringify(this.detail_data)); |
|
|
|
|
|
|
|
this.isVisible=true;
|
|
|
|
} |
|
|
|
} |
|
|
|
cancelSearch(): void { |
|
|
|
cancelSearch(): void { |
|
|
|
this.submitLoading = false; |
|
|
|
this.submitLoading = false; |
|
|
|