Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import {Component, EventEmitter, OnInit, Output} from '@angular/core';
import {NzFormatEmitEvent, NzMessageService, NzTreeNode} from 'ng-zorro-antd';
import {TopologyService} from '../../netTopology/topology.service';
@Component({
selector: 'smart-select-group',
templateUrl: './select-group.component.html',
styles: []
})
export class SelectGroupComponent implements OnInit {
@Output() done = new EventEmitter<any>();
isValiaible;
title;
nodes;
nodeList;
selectList = [];
constructor(private topologySer: TopologyService,
private message: NzMessageService) {
}
ngOnInit() {
this.initForm();
}
showAddModal(title) {
this.title = title;
this.isValiaible = true;
this.initForm();
this.findTree();
}
initForm() {
this.nodes = null;
this.nodeList = [];
this.selectList = [];
}
//查询树--- 分组
findTree() {
const data = {
id: '',
type: 'group'
};
this.topologySer.findTree(data).subscribe(
(res) => {
if (res.errCode == 10000) {
let option = res.data;
option.forEach(res => {
res.title = res.name;
res.key = res.id;
});
this.nodeList = option;
this.toNode(option);
} else {
this.message.info(res.errMsg);
}
}
);
}
toNode(data) {
this.nodes = data.map(res => {
return new NzTreeNode(res);
});
}
//获取下级
mouseAction(name: string, event: NzFormatEmitEvent) {
let type;
if (event.node.level == 0) {
type = 'host'; //主机
}
if (event.node.level == 1) {
type = 'item'; //监控项
}
if (this.title == '选择资源' && event.node.level == 1) {
return false;
}
if (this.title == '添加设备' && event.node.level == 1) {
return false;
}
const index = <any>event.node.key - 1;
const data = {
'id': event.node.origin.id,
'type': type
};
this.topologySer.findTree(data).subscribe(
(res) => {
if (res.data) {
const dataSet = res.data;
dataSet.forEach(res => {
res.title = res.name;
res.key = res.id;
res.isLeaf = true;
if (res.inventoryExtends > 0 && this.title == '关联资产') {
});
event.node.addChildren(dataSet);
} else {
event.node.addChildren([]);
this.message.warning('该下级为空');
}
}
);
}
//选择树节点
if (node.isChecked) {
this.selectList.push(node.origin.id); //主机
} else {
const index = this.selectList.indexOf(node.origin.id);
this.selectList.splice(index, 1);
}
}
handEditleOk() {
if (this.selectList.length == 0) {
this.message.warning('请选择资源');