<!DOCTYPE html>
|
<html>
|
<head>
|
<div th:replace="common/header.html"></div>
|
|
|
</head>
|
<body th:class="${application.sidebarCollapse}">
|
<div th:replace="common/chart.html"></div>
|
|
<div class="wrapper">
|
|
<div th:replace="common/navbar.html"></div>
|
|
<div th:replace="common/aside.html"></div>
|
|
<!-- Content Wrapper. Contains page content -->
|
<div class="content-wrapper" style="font-size:0.90rem">
|
<!-- Content Header (Page header) -->
|
<section class="content-header" style="height:38px">
|
<div class="container-fluid">
|
<div class="row mb-2" style="margin-top: -7px;">
|
<div class="col-sm-6"></div>
|
<div class="col-sm-6">
|
<ol class="breadcrumb float-sm-right">
|
<li class="breadcrumb-item"><a href="javascript:history.back()">返回上级</a></li>
|
</ol>
|
</div>
|
</div>
|
</div><!-- /.container-fluid -->
|
</section>
|
|
<!-- Main content -->
|
<section class="content">
|
<div class="container-fluid">
|
<div class="row">
|
|
<div class="col-md-12">
|
<div class="card">
|
<div class="card-header">
|
<h3 class="card-title"> <i class="nav-icon far fa-image"></i> 主机列表</h3>
|
<div class="card-tools">
|
<div class="float-sm-right">
|
<!-- SEARCH FORM -->
|
<form class="form-inline ml-3" th:action="@{'/dash/hostDrawList'}">
|
<button type="button" onclick="searchByOnlineDashView('')" class="btn btn-primary btn-sm">全部</button>
|
<button type="button" onclick="searchByOnlineDashView('1')" class="btn btn-success btn-sm">在线</button>
|
<button type="button" onclick="searchByOnlineDashView('2')" class="btn bg-danger btn-sm">已下线</button>
|
<div class="input-group input-group-sm">
|
<input class="form-control form-control-navbar" name="hostname" autocomplete="off" th:value="${systemInfo.hostname}" type="search" placeholder="输入IP" aria-label="Search">
|
<div class="input-group-append">
|
<button class="btn btn-default" type="submit">
|
<i class="fas fa-search"></i>
|
</button>
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
</div>
|
<!-- /.card-header -->
|
<div class="card-body">
|
<table class="table table-bordered table-hover">
|
<thead>
|
<tr>
|
<th style="width: 60px">序号</th>
|
<th>系统</th>
|
<th>IP</th>
|
<th>内存%
|
<th:block th:if="${systemInfo.orderBy == 'MEM_PER'}">
|
<th:block th:if="${systemInfo.orderType == 'ASC'}">
|
<small style="cursor:pointer" onclick="searchByOrder('MEM_PER','DESC')" class="text-success mr-1 float-right"><i class="fas fa-arrow-up"></i> </small>
|
</th:block>
|
<th:block th:if="${systemInfo.orderType == 'DESC'}">
|
<small style="cursor:pointer" onclick="searchByOrder('MEM_PER','ASC')" class="text-success mr-1 float-right"><i class="fas fa-arrow-down" style="color: #dc3545!important;"></i> </small>
|
</th:block>
|
</th:block>
|
<th:block th:if="${systemInfo.orderBy ne 'MEM_PER'}">
|
<small style="cursor:pointer" onclick="searchByOrder('MEM_PER','ASC')" class="text-success mr-1 float-right"><i class="fas fa-arrow-up"></i><i class="fas fa-arrow-down" style="color: #dc3545!important;"></i></small>
|
</th:block>
|
</th>
|
<th>CPU%
|
<th:block th:if="${systemInfo.orderBy == 'CPU_PER'}">
|
<th:block th:if="${systemInfo.orderType == 'ASC'}">
|
<small style="cursor:pointer" onclick="searchByOrder('CPU_PER','DESC')" class="text-success mr-1 float-right"><i class="fas fa-arrow-up"></i> </small>
|
</th:block>
|
<th:block th:if="${systemInfo.orderType == 'DESC'}">
|
<small style="cursor:pointer" onclick="searchByOrder('CPU_PER','ASC')" class="text-success mr-1 float-right"><i class="fas fa-arrow-down" style="color: #dc3545!important;"></i> </small>
|
</th:block>
|
</th:block>
|
<th:block th:if="${systemInfo.orderBy ne 'CPU_PER'}">
|
<small style="cursor:pointer" onclick="searchByOrder('CPU_PER','ASC')" class="text-success mr-1 float-right"><i class="fas fa-arrow-up"></i><i class="fas fa-arrow-down" style="color: #dc3545!important;"></i></small>
|
</th:block>
|
</th>
|
<th title="磁盘总已使用%">磁盘%</th>
|
<th title="累计接收的流量">接收G</th>
|
<th title="累计发送的流量">发送G</th>
|
<th title="当前接收KB/秒">接收KB/秒</th>
|
<th title="当前发送KB/秒">发送KB/秒</th>
|
<th>更新时间</th>
|
<th>备注</th>
|
<th>操作</th>
|
</tr>
|
</thead>
|
<tbody>
|
<th:block th:each="item,iterStat : ${page.list}">
|
<tr>
|
<td th:text="${iterStat.index+1}"></td>
|
<td><image th:src="${item.image}"></image></td>
|
|
<th:block th:if="${item.state == '2'}">
|
<td th:title="${item.hostname}+'超过10分钟未上报状态,可能已下线'"><span class="badge bg-danger" th:text="${#strings.abbreviate(item.hostname,20)}"></span>
|
</th:block>
|
<th:block th:if="${item.state != '2'}">
|
<td th:title="${item.hostname}" ><span th:text="${#strings.abbreviate(item.hostname,20)}"></span>
|
</th:block>
|
</td>
|
<td>
|
<th:block th:if="${item.memPer >= 90}">
|
<span class="badge bg-danger" th:text="${item.memPer}"></span>
|
</th:block>
|
<th:block th:if="${item.memPer < 90 && item.memPer >= 70 }">
|
<span class="badge bg-warning" th:text="${item.memPer}"></span>
|
</th:block>
|
<th:block th:if="${item.memPer < 70 }">
|
<span class="badge bg-primary" th:text="${item.memPer}"></span>
|
</th:block>
|
</td>
|
<td>
|
<th:block th:if="${item.cpuPer >= 90}">
|
<span class="badge bg-danger" th:text="${item.cpuPer}"></span>
|
</th:block>
|
<th:block th:if="${item.cpuPer < 90 && item.cpuPer >= 70 }">
|
<span class="badge bg-warning" th:text="${item.cpuPer}"></span>
|
</th:block>
|
<th:block th:if="${item.cpuPer < 70 }">
|
<span class="badge bg-primary" th:text="${item.cpuPer}"></span>
|
</th:block>
|
</td>
|
<td>
|
<th:block th:if="${item.diskPer >= 90}">
|
<span class="badge bg-danger" th:text="${item.diskPer}"></span>
|
</th:block>
|
<th:block th:if="${item.diskPer < 90 && item.diskPer >= 70 }">
|
<span class="badge bg-warning" th:text="${item.diskPer}"></span>
|
</th:block>
|
<th:block th:if="${item.diskPer < 70 }">
|
<span class="badge bg-primary" th:text="${item.diskPer}"></span>
|
</th:block>
|
</td>
|
<td th:text="${item.bytesRecv}"></td>
|
<td th:text="${item.bytesSent}"></td>
|
<td><span th:text="${item.rxbyt}"></span></td>
|
<td><span th:text="${item.txtyt}"></span></td>
|
<td th:text="${#dates.format(item.createTime,'yyyy-MM-dd HH:mm:ss')}">Update software</td>
|
<td th:text="${item.remark}"></td>
|
<td>
|
<button type="button" th:onclick="view([[${item.id}]])" class="btn btn-sm bg-maroon btn-sm">开始画像</button>
|
</td>
|
|
</tr>
|
</th:block>
|
|
</tbody>
|
</table>
|
</div>
|
<!-- /.card-body -->
|
<div th:replace="common/page.html"></div>
|
</div>
|
<!-- /.card -->
|
|
|
</div>
|
|
</div>
|
</div>
|
</section>
|
</div>
|
|
|
<div th:replace="common/footer.html"></div>
|
<script th:src="@{'/static/js/jQuery/jquery.form.min.js'}" type="text/javascript" charset="utf-8"></script>
|
|
</div>
|
<!-- ./wrapper -->
|
<script th:src="@{'/static/js/draw.js'}"></script>
|
|
<script th:inline="javascript">
|
|
var msg = [[${msg}]];
|
if(msg!='' && msg!=null){
|
toastr.info(msg);
|
}
|
</script>
|
|
</body>
|
</html>
|