Skip to content
basic.component.ts 16 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
import {Component, OnInit, ViewChild} from '@angular/core';
import {OverAllService} from '../overAll.service';
import {NzModalService} from 'ng-zorro-antd';
import {NzMessageService} from 'ng-zorro-antd';
import {Router} from '@angular/router';
wangqinghua's avatar
wangqinghua committed
import {
    FormBuilder,
    FormGroup,
    Validators
} from '@angular/forms';
wangqinghua's avatar
wangqinghua committed
import {BasicEditComponent} from '../../modal/basic-edit/basic-edit.component';
import {BasiCheckComponent} from '../../modal/basi-check/basi-check.component';
import {CreateGroupComponent} from '../../modal/create-group/create-group.component';
wangqinghua's avatar
wangqinghua committed
import {PauseComponent} from '../../modal/pause/pause.component';
wangqinghua's avatar
wangqinghua committed
import {AlarmModalComponent} from '../../modal/alarm-modal/alarm-modal.component';
wangqinghua's avatar
wangqinghua committed
import {color, pageSize} from '../../app.constants';
wangqinghua's avatar
wangqinghua committed
import {JhiMainComponent} from '../../layouts';
wangqinghua's avatar
wangqinghua committed
import {CommonService} from '../../shared/common/common.service';
wangqinghua's avatar
wangqinghua committed

export interface TreeNodeInterface {
    host: any;
wangqinghua's avatar
wangqinghua committed
    hostid: any;
wangqinghua's avatar
wangqinghua committed
    serviceid: any;
wangqinghua's avatar
wangqinghua committed
    name: string;
    level: number;
    expand: boolean;
    children?: TreeNodeInterface[];
}
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
@Component({
wangqinghua's avatar
wangqinghua committed
    selector: 'jhi-basic',
    templateUrl: './basic.component.html',
wangqinghua's avatar
wangqinghua committed
    styles: [
wangqinghua's avatar
wangqinghua committed
            `:host ::ng-deep .table-dropdown a {
            font-weight: 300;
wangqinghua's avatar
wangqinghua committed
        }`
    ]
wangqinghua's avatar
wangqinghua committed
})
export class BasicComponent implements OnInit {
    //组件
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    @ViewChild('basicEdit') basicEdit: BasicEditComponent;
    @ViewChild('smartCheck') smartCheck: BasiCheckComponent;
    @ViewChild('smartCreateGroup') smartCreateGroup: CreateGroupComponent;
wangqinghua's avatar
wangqinghua committed
    @ViewChild('smartPause') smartPause: PauseComponent;
    @ViewChild('smartAlarmModal') smartAlarmModal: AlarmModalComponent;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    color = color;

wangqinghua's avatar
wangqinghua committed
    //表格信息
    loading = false;

    selectedValue;
    isCheck = false;
    allChecked = false;
wangqinghua's avatar
wangqinghua committed
    interfaceList: any[];
wangqinghua's avatar
wangqinghua committed
    hostId;
    deviceNo;     //设备监控数

    isKey = false;
wangqinghua's avatar
wangqinghua committed
    keyList: any[];
wangqinghua's avatar
wangqinghua committed
    keyType = '1';

wangqinghua's avatar
wangqinghua committed
    //批量删除list
    batchDelList = [];

wangqinghua's avatar
wangqinghua committed
    //设备状态
    red;
    yellow;
    green;
    gray;

wangqinghua's avatar
wangqinghua committed
    //搜索
wangqinghua's avatar
wangqinghua committed
    searchStatus = true;
wangqinghua's avatar
wangqinghua committed
    searchName;
    searchData;
wangqinghua's avatar
wangqinghua committed
    status;

    pageNum = 1;
    pageCount = pageSize;
    totalNum;
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    constructor(private fb: FormBuilder, private overAllSer: OverAllService, private router: Router,
wangqinghua's avatar
wangqinghua committed
                private commonSer: CommonService,
wangqinghua's avatar
wangqinghua committed
                private modalService: NzModalService, private message: NzMessageService, private main: JhiMainComponent) {
wangqinghua's avatar
wangqinghua committed
    }

    dataSet: any[];
wangqinghua's avatar
wangqinghua committed
    expandDataCache = {};
wangqinghua's avatar
wangqinghua committed
    ckeckObj: object;
wangqinghua's avatar
wangqinghua committed

    collapse(array: TreeNodeInterface[], data: TreeNodeInterface, $event: boolean): void {
        if ($event === false) {
            if (data.children) {
                data.children.forEach(d => {
                    const target = array.find(a => a.host === d.host);
                    target.expand = false;
                    this.collapse(array, target, false);
                });
            } else {
                return;
            }
        }
    }

wangqinghua's avatar
wangqinghua committed
    showInFullScreen() {
wangqinghua's avatar
wangqinghua committed
        this.main.fullScreen();
    }

wangqinghua's avatar
wangqinghua committed
    convertTreeToList(root: any, groupId: string, index): TreeNodeInterface[] {
wangqinghua's avatar
wangqinghua committed
        const stack = [];
        const array = [];
        const hashMap = {};
wangqinghua's avatar
wangqinghua committed
        if (root.host == index) {
wangqinghua's avatar
wangqinghua committed
            stack.push({...root, level: 0, expand: true});
wangqinghua's avatar
wangqinghua committed
        } else {
wangqinghua's avatar
wangqinghua committed
            stack.push({...root, level: 0, expand: false});
        }
wangqinghua's avatar
wangqinghua committed
        while (stack.length !== 0) {
            const node = stack.pop();

            this.visitNode(node, hashMap, array);
            if (node.list) {
                for (let i = node.list.length - 1; i >= 0; i--) {
wangqinghua's avatar
wangqinghua committed
                    stack.push({...node.list[i], level: node.level + 1, expand: true, parent: node, gId: groupId, checked: false});
wangqinghua's avatar
wangqinghua committed
                }
            }
        }
        return array;
    }

    visitNode(node: TreeNodeInterface, hashMap: object, array: TreeNodeInterface[]): void {
wangqinghua's avatar
wangqinghua committed
        if (!hashMap[node.hostid]) {
            hashMap[node.hostid] = true;
wangqinghua's avatar
wangqinghua committed
            array.push(node);
        }
    }

wangqinghua's avatar
wangqinghua committed
    toTree(index) {
        this.dataSet.forEach(item => {
            this.expandDataCache[item.host] = this.convertTreeToList(item, item.id, index);
        });
    }

    //获取下级list
    getChildren(item) {
        if (item.list) {
            if (item.expand) {
                item.expand = false;
            } else {
                item.expand = true;
            }
            return false;
        }
        this.loading = true;

        const data = {
            'groupids': [item.groupid],
        };
        this.overAllSer.findHostNew(data).subscribe(
            (res) => {
                if (res.data) {
                    this.dataSet[item.host].list = res.data;
                    this.toTree(item.host);
                } else {
                    this.message.info('该分组下无资源');
                }
                this.loading = false;
            }
        );
    }

wangqinghua's avatar
wangqinghua committed
    ngOnInit(): void {
        this.selectedValue = 'group';
        this.select();
wangqinghua's avatar
wangqinghua committed
        this.findOpStatus();
    }

wangqinghua's avatar
wangqinghua committed
    changeStatus(status) {
        if (this.status == status) {
wangqinghua's avatar
wangqinghua committed
            this.status = null;
wangqinghua's avatar
wangqinghua committed
        } else {
wangqinghua's avatar
wangqinghua committed
            this.status = status;
        }
        this.pageNum = 1;
        this.search();
    }

    /*
    //waringName:(值为:正常,禁用,告警,严重)
     */
wangqinghua's avatar
wangqinghua committed
    search() {
wangqinghua's avatar
wangqinghua committed
        this.pageNum = 1;
        this.searchRe();
    }

    searchRe() {
wangqinghua's avatar
wangqinghua committed
        this.loading = true;
        this.searchStatus = true;
        const data = {
wangqinghua's avatar
wangqinghua committed
            pageNum: this.pageNum,
            pageCount: this.pageCount,
            obj: {
                name: this.searchName,
                waringName: this.status,
                groupids: []
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.findHostPageNew(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.dataSet = res.data.data;
                    this.totalNum = res.data.totalNum;
wangqinghua's avatar
wangqinghua committed
                }
                this.loading = false;
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

    //翻页
wangqinghua's avatar
wangqinghua committed
    change(event) {
        if (event > 0) {
wangqinghua's avatar
wangqinghua committed
            this.pageNum = event;
            this.searchRe();
        }
wangqinghua's avatar
wangqinghua committed
    }

    //backList
wangqinghua's avatar
wangqinghua committed
    backList() {
wangqinghua's avatar
wangqinghua committed
        this.select();
        this.findOpStatus();
wangqinghua's avatar
wangqinghua committed
        this.searchStatus = false;
    }

wangqinghua's avatar
wangqinghua committed
    //查询设备状态
wangqinghua's avatar
wangqinghua committed
    findOpStatus() {
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.findHostCountByStatusByHost().subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                    this.green = res.data.normal;
                    this.gray = res.data.disable;
                    this.yellow = res.data.waring;
                    this.red = res.data.serious;
                    this.deviceNo = res.data.total;
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.info(res.Msg);
                }
            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //添加资源
    showBasicEditModal() {
        this.basicEdit.showModal();
wangqinghua's avatar
wangqinghua committed
    }

    //编辑资源 name--分组名称,gId-当前分组的id
wangqinghua's avatar
wangqinghua committed
    editBasicModal(item) {
        this.basicEdit.editModal(item.hostid, item.name, item.gId);
wangqinghua's avatar
wangqinghua committed
    }

    //添加监测点
wangqinghua's avatar
wangqinghua committed
    showBasicCheckModal(hostid, host) {
wangqinghua's avatar
wangqinghua committed
        this.smartCheck.showAddModal(hostid, host, '添加监测点');
wangqinghua's avatar
wangqinghua committed
    }

    //列表
wangqinghua's avatar
wangqinghua committed
    findList() {
wangqinghua's avatar
wangqinghua committed
        const data = {};
        this.overAllSer.find(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
                if (res.data) {
wangqinghua's avatar
wangqinghua committed
                    this.dataSet = res.data;
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.info(res.errMsg);
                }

            }
wangqinghua's avatar
wangqinghua committed
        );
wangqinghua's avatar
wangqinghua committed
    }

    //选择分组
wangqinghua's avatar
wangqinghua committed
    select() {
wangqinghua's avatar
wangqinghua committed
        this.loading = true;
wangqinghua's avatar
wangqinghua committed
        this.searchStatus = false;
wangqinghua's avatar
wangqinghua committed
        this.findOpStatus();
wangqinghua's avatar
wangqinghua committed
        if (this.selectedValue == 'group') {
wangqinghua's avatar
wangqinghua committed
            this.overAllSer.getgroups({}).subscribe(
wangqinghua's avatar
wangqinghua committed
                (res) => {
wangqinghua's avatar
wangqinghua committed
                    this.loading = false;
wangqinghua's avatar
wangqinghua committed
                    if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                        this.dataSet = res.data;
                        // this.dataSet = this.dataSet.filter(d => d.list);     //过滤无list的
wangqinghua's avatar
wangqinghua committed
                        for (let i = 0; i < this.dataSet.length; i++) {
                            this.dataSet[i].host = i;
                            this.dataSet[i].checked = false;
wangqinghua's avatar
wangqinghua committed
                        }
wangqinghua's avatar
wangqinghua committed
                        this.toTree(null);
wangqinghua's avatar
wangqinghua committed
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.message.info(res.errMsg);
                    }
                }
wangqinghua's avatar
wangqinghua committed
            );
        } else if (this.selectedValue == 'type') {
wangqinghua's avatar
wangqinghua committed
            this.overAllSer.findType().subscribe(
wangqinghua's avatar
wangqinghua committed
                (res) => {
wangqinghua's avatar
wangqinghua committed
                    this.loading = false;
wangqinghua's avatar
wangqinghua committed
                    if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                        this.dataSet = res.data;
                        // this.dataSet = this.dataSet.filter(d => d.list);     //过滤无list的
wangqinghua's avatar
wangqinghua committed
                        for (let i = 0; i < this.dataSet.length; i++) {
wangqinghua's avatar
wangqinghua committed
                            this.dataSet[i].host = i;
                            this.dataSet[i].checked = false;
                        }
wangqinghua's avatar
wangqinghua committed
                        this.toTree(null);
wangqinghua's avatar
wangqinghua committed
                    } else {
wangqinghua's avatar
wangqinghua committed
                        this.message.info(res.errMsg);
                    }
                }
wangqinghua's avatar
wangqinghua committed
            );
        } else if (this.selectedValue == 'all') {
wangqinghua's avatar
wangqinghua committed
            this.findList();
        }
    }

wangqinghua's avatar
wangqinghua committed
    //删除单个资源
wangqinghua's avatar
wangqinghua committed
    showDeleteConfirm(item) {
wangqinghua's avatar
wangqinghua committed
        this.commonSer.confirmThing('删除', '确认删除该资源吗?', () => {
wangqinghua's avatar
wangqinghua committed
            const data = {
                hostids: []
            };
            data.hostids.push(item.hostid);
            this.overAllSer.deleteHostPost(data).subscribe(
                (res) => {
                    if (res.errCode == 10000) {
                        this.message.info('删除成功');
                        this.select();
                    } else {
                        this.message.info(res.errMsg);
wangqinghua's avatar
wangqinghua committed
                    }
wangqinghua's avatar
wangqinghua committed
                }
            );
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //批量删除资源
wangqinghua's avatar
wangqinghua committed
    batchDeleteConfirm() {
        if (this.batchDelList.length == 0) {
wangqinghua's avatar
wangqinghua committed
            this.message.info('请选择需要删除的设备');
            return false;
        }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
        this.commonSer.confirmThing('删除', '确认要删除所选设备吗?', () => {
wangqinghua's avatar
wangqinghua committed
            const data = {
                hostids: this.batchDelList
            };
            this.overAllSer.deleteHostPost(data).subscribe(
                (res) => {
                    if (res.errCode == 10000) {
                        this.message.info('删除成功');
                        this.batchDelList = [];
                        this.select();
                    } else {
                        this.message.error(res.errMsg);
wangqinghua's avatar
wangqinghua committed
                    }
wangqinghua's avatar
wangqinghua committed
                }
            );
wangqinghua's avatar
wangqinghua committed
        });
    }

wangqinghua's avatar
wangqinghua committed
    //添加分组
wangqinghua's avatar
wangqinghua committed
    showGroupModal() {
wangqinghua's avatar
wangqinghua committed
        this.smartCreateGroup.showModal('添加分组');
wangqinghua's avatar
wangqinghua committed
    }

    //编辑分组
wangqinghua's avatar
wangqinghua committed
    updateGroup(item) {
        this.smartCreateGroup.showEditModal('修改分组', item);
wangqinghua's avatar
wangqinghua committed
    }

    //删除分组
wangqinghua's avatar
wangqinghua committed
    showDeleteGroupConfirm(item) {
wangqinghua's avatar
wangqinghua committed
        this.modalService.confirm({
wangqinghua's avatar
wangqinghua committed
            nzTitle: '删除',
            nzContent: '<b style="color: red;">确认删除该分组吗?</b>',
            nzOkText: '确定',
            nzOkType: 'danger',
            nzOnOk: () => {
wangqinghua's avatar
wangqinghua committed
                const data = {groupid: []};
                data.groupid.push(item.groupid);
wangqinghua's avatar
wangqinghua committed
                this.overAllSer.deleteGroup(data).subscribe(
wangqinghua's avatar
wangqinghua committed
                    (res) => {
                        if (res.errCode == 10000) {
wangqinghua's avatar
wangqinghua committed
                            this.message.info('删除成功');
                            this.select();
wangqinghua's avatar
wangqinghua committed
                        } else {
wangqinghua's avatar
wangqinghua committed
                            this.message.info(res.errMsg);
                        }
                    }
wangqinghua's avatar
wangqinghua committed
                );
wangqinghua's avatar
wangqinghua committed
            },
            nzCancelText: '取消',
wangqinghua's avatar
wangqinghua committed
            nzOnCancel: () => console.log('Cancel')
wangqinghua's avatar
wangqinghua committed
        });
    }

wangqinghua's avatar
wangqinghua committed
    //添加告警
wangqinghua's avatar
wangqinghua committed
    showAlarm() {
wangqinghua's avatar
wangqinghua committed
        this.smartAlarmModal.showAddModal('添加告警', null);
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    handleOk(e) {
wangqinghua's avatar
wangqinghua committed
        this.select();
    }

wangqinghua's avatar
wangqinghua committed
    //根据设备类型查询主机资源
wangqinghua's avatar
wangqinghua committed
    getChildrenType(item) {
        if (item.list) {
            if (item.expand) {
wangqinghua's avatar
wangqinghua committed
                item.expand = false;
wangqinghua's avatar
wangqinghua committed
            } else {
wangqinghua's avatar
wangqinghua committed
                item.expand = true;
            }
            return false;
        }
        this.loading = true;
wangqinghua's avatar
wangqinghua committed
        const data = {
wangqinghua's avatar
wangqinghua committed
            type: item.equipmentTypeId
wangqinghua's avatar
wangqinghua committed
        };
wangqinghua's avatar
wangqinghua committed
        this.overAllSer.findHostByType(data).subscribe(
wangqinghua's avatar
wangqinghua committed
            (res) => {
wangqinghua's avatar
wangqinghua committed
                if (res.data) {
wangqinghua's avatar
wangqinghua committed
                    this.dataSet[item.host].list = res.data;
                    this.toTree(item.host);
wangqinghua's avatar
wangqinghua committed
                } else {
wangqinghua's avatar
wangqinghua committed
                    this.message.info('该分组下无资源');
                }
                this.loading = false;
wangqinghua's avatar
wangqinghua committed
            }
        );
    }

wangqinghua's avatar
wangqinghua committed
    //查看详情
wangqinghua's avatar
wangqinghua committed
    goDetail(item) {
        this.router.navigate(['app/main/basic-detail'], {
            queryParams: {
                hostId: item.hostid,
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        });
wangqinghua's avatar
wangqinghua committed
    }

wangqinghua's avatar
wangqinghua committed
    //临时暂停
wangqinghua's avatar
wangqinghua committed
    showTempStop(item) {
        this.smartPause.showModal(item.hostid, '基础资源');
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

wangqinghua's avatar
wangqinghua committed
    //选择
wangqinghua's avatar
wangqinghua committed
    selectChecked(event, item) {
        if (event) {
            if (item.hostid) {
wangqinghua's avatar
wangqinghua committed
                this.batchDelList.push(item.hostid);
            }
wangqinghua's avatar
wangqinghua committed
        } else {
            if (item.hostid) {
wangqinghua's avatar
wangqinghua committed
                const index = this.batchDelList.indexOf(item.hostid);
wangqinghua's avatar
wangqinghua committed
                this.batchDelList.splice(index, 1);
wangqinghua's avatar
wangqinghua committed
            }
wangqinghua's avatar
wangqinghua committed
        }
    }

    //开启or停止监控
wangqinghua's avatar
wangqinghua committed
    openHost(item) {
wangqinghua's avatar
wangqinghua committed
        this.modalService.confirm({
            nzTitle: '监控',
wangqinghua's avatar
wangqinghua committed
            nzContent: '确定开启监控设备' + item.name + '',
wangqinghua's avatar
wangqinghua committed
            nzOkText: '确定',
            nzCancelText: '取消',
            nzOnOk: () => {
                let params1 = 0;
wangqinghua's avatar
wangqinghua committed
                if (item.status == 0) {
wangqinghua's avatar
wangqinghua committed
                    params1 = 1;
wangqinghua's avatar
wangqinghua committed
                }
                const params2 = item.hostid;
wangqinghua's avatar
wangqinghua committed
                this.overAllSer.stopOrOpen(params1, params2).subscribe(
wangqinghua's avatar
wangqinghua committed
                    (res) => {
                        if (res.errCode == 10000) {
                            this.message.info('修改成功');
                            this.select();
                        } else {
                            this.message.info(res.errMsg);
                        }
                    }
                );
            },
            nzOnCancel: () => console.log('Cancel')
        });
    }
wangqinghua's avatar
wangqinghua committed

    //批量开启or停止监控
wangqinghua's avatar
wangqinghua committed
    openBatchHost(status, operation) {
        if (this.batchDelList.length == 0) {
            this.message.info('请选择需要' + operation + '的设备');
wangqinghua's avatar
wangqinghua committed
            return false;
        }
        this.modalService.confirm({
            nzTitle: '监控',
wangqinghua's avatar
wangqinghua committed
            nzContent: '确定批量' + operation + '监控设备?',
wangqinghua's avatar
wangqinghua committed
            nzOkText: '确定',
            nzCancelText: '取消',
            nzOnOk: () => {
                const data = {
wangqinghua's avatar
wangqinghua committed
                    status: status,
                    hostids: this.batchDelList
                };
wangqinghua's avatar
wangqinghua committed
                this.overAllSer.batchStopOrOpen(data).subscribe(
                    (res) => {
                        if (res.errCode == 10000) {
                            this.message.info('修改成功');
                            this.batchDelList = [];
wangqinghua's avatar
wangqinghua committed
                            this.findOpStatus();
wangqinghua's avatar
wangqinghua committed
                            this.select();
                        } else {
                            this.message.info(res.errMsg);
                        }
                    }
                );
            },
            nzOnCancel: () => console.log('Cancel')
        });
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

    //资产页面
wangqinghua's avatar
wangqinghua committed
    goTOInventory(id) {
        this.router.navigate(['app/main/assetsDetail'], {
            queryParams: {
                invertoryId: id
            }
        });
wangqinghua's avatar
wangqinghua committed
    }
wangqinghua's avatar
wangqinghua committed

    //前往设备类型页面
wangqinghua's avatar
wangqinghua committed
    goEquip(item) {
wangqinghua's avatar
wangqinghua committed
        let type;
wangqinghua's avatar
wangqinghua committed
        if (item.equipmentType == '数据库') {
            type = 'database';
        } else if (item.equipmentType == '交换机') {
            type = 'switch';
        } else {
            type = 'server';
wangqinghua's avatar
wangqinghua committed
        }
wangqinghua's avatar
wangqinghua committed
        this.router.navigate(['app/main/' + type], {
wangqinghua's avatar
wangqinghua committed
            queryParams: {
wangqinghua's avatar
wangqinghua committed
                hostId: item.hostid,
wangqinghua's avatar
wangqinghua committed
                equipmentType: item.equipmentType
wangqinghua's avatar
wangqinghua committed
            }
        });
    }
wangqinghua's avatar
wangqinghua committed
}