2020-07-22 22:19:39 +08:00
|
|
|
|
{$layout}
|
|
|
|
|
|
{$template "menu"}
|
|
|
|
|
|
|
2021-05-23 20:44:51 +08:00
|
|
|
|
<!-- 错误日志 -->
|
2022-03-23 17:31:53 +08:00
|
|
|
|
<div v-if="countNeedFixLogs > 0">
|
2021-05-23 20:44:51 +08:00
|
|
|
|
<div class="margin"></div>
|
2022-03-23 17:31:53 +08:00
|
|
|
|
|
|
|
|
|
|
<div class="ui icon message small error">
|
|
|
|
|
|
<i class="icon warning circle"></i>
|
2023-04-21 17:51:25 +08:00
|
|
|
|
<div class="content"><a href="/clusters/logs?type=needFix">有{{countNeedFixLogs}}个网站相关的错误需要修复。</a></div>
|
2021-05-23 20:44:51 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 搜索表单 -->
|
2020-11-10 12:47:24 +08:00
|
|
|
|
<form method="get" class="ui form" action="/servers">
|
2020-12-19 15:53:57 +08:00
|
|
|
|
<input type="hidden" name="auditingFlag" :value="auditingFlag"/>
|
2020-10-31 15:21:24 +08:00
|
|
|
|
<div class="ui margin"></div>
|
2022-01-11 15:26:43 +08:00
|
|
|
|
<div class="ui fields inline">
|
|
|
|
|
|
<div class="ui field" v-if="clusters.length > 0">
|
|
|
|
|
|
<node-cluster-combo-box :v-cluster-id="clusterId"></node-cluster-combo-box>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="ui field" v-if="groups.length > 0">
|
|
|
|
|
|
<select class="ui dropdown auto-width" name="groupId" v-model="groupId">
|
|
|
|
|
|
<option value="0">[选择分组]</option>
|
2022-04-14 16:59:45 +08:00
|
|
|
|
<option value="-1">[未分组]</option>
|
2022-01-11 15:26:43 +08:00
|
|
|
|
<option v-for="group in groups" :value="group.id">{{group.name}}</option>
|
|
|
|
|
|
</select>
|
|
|
|
|
|
</div>
|
2022-07-24 14:26:14 +08:00
|
|
|
|
<div class="ui field" v-if="hasUsers">
|
|
|
|
|
|
<user-selector :v-user-id="userId"></user-selector>
|
|
|
|
|
|
</div>
|
2022-01-11 15:26:43 +08:00
|
|
|
|
<div class="ui field">
|
2022-07-24 14:26:14 +08:00
|
|
|
|
<input type="text" name="keyword" style="width:14em" placeholder="关键词、域名、端口等" v-model="keyword"/>
|
2022-01-11 15:26:43 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="ui field">
|
|
|
|
|
|
<button type="submit" class="ui button">搜索</button>
|
|
|
|
|
|
|
2022-07-24 14:26:14 +08:00
|
|
|
|
<a href="/servers" v-if="clusterId > 0 || groupId > 0 || keyword.length > 0 || hasOrder || userId > 0">[清除条件]</a>
|
2020-12-23 10:31:00 +08:00
|
|
|
|
</div>
|
2022-07-24 14:26:14 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="ui fields inline" style="margin-top: 1em">
|
|
|
|
|
|
<div class="ui field" v-if="clusterId == 0 && groupId == 0 && keyword.length == 0 && latestServers.length > 0">
|
|
|
|
|
|
<a href="" @click.prevent="showLatest()">常用<i class="icon angle" :class="{down: !latestVisible, up: latestVisible}"></i> </a>
|
|
|
|
|
|
</div>
|
2024-01-11 18:40:29 +08:00
|
|
|
|
<div class="ui field" style="position: absolute; right: 1em">
|
|
|
|
|
|
<checkbox name="checkDNS" :v-value="1" v-model="checkDNS">检查域名解析</checkbox>
|
|
|
|
|
|
</div>
|
2020-12-23 10:31:00 +08:00
|
|
|
|
</div>
|
2020-10-31 15:21:24 +08:00
|
|
|
|
</form>
|
|
|
|
|
|
|
2021-05-03 15:15:31 +08:00
|
|
|
|
<!-- 常用服务 -->
|
|
|
|
|
|
<div class="ui segment" v-if="latestVisible">
|
2023-06-21 11:51:25 +08:00
|
|
|
|
常用网站:<span v-for="(server, index) in latestServers"><a :href="'/servers/server?serverId=' + server.id">{{server.name}}</a> <span class="disabled" v-if="index != latestServers.length - 1">|</span> </span>
|
2021-05-03 15:15:31 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
2024-01-21 21:17:42 +08:00
|
|
|
|
<p class="ui message" v-if="servers.length == 0">暂时还没有网站,现在去 <a href="/servers/create">[创建网站<i class="ui icon long arrow alternate right"></i> ]</a></p>
|
2020-07-29 19:34:54 +08:00
|
|
|
|
|
2024-01-11 18:40:29 +08:00
|
|
|
|
<div v-if="checkedServerIds.length > 0">
|
|
|
|
|
|
<div class="ui divider"></div>
|
2024-01-19 10:56:31 +08:00
|
|
|
|
<button class="ui button basic" @click.prevent="resetCheckedServers">取消所选</button>
|
|
|
|
|
|
<button class="ui button basic" @click.prevent="deleteServers">删除所选{{checkedServerIds.length}}网站</button>
|
2024-01-11 18:40:29 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
2020-11-16 13:03:45 +08:00
|
|
|
|
<table class="ui table selectable celled" v-if="servers.length > 0">
|
2020-07-29 19:34:54 +08:00
|
|
|
|
<thead>
|
|
|
|
|
|
<tr>
|
2024-01-11 18:40:29 +08:00
|
|
|
|
<th style="width: 1em" class="server-checkbox-td"><checkbox ref="allCheckedCheckboxes" @input="changeAllChecked"></checkbox></th>
|
2023-05-23 11:25:25 +08:00
|
|
|
|
<th>网站名称</th>
|
2020-12-07 11:45:45 +08:00
|
|
|
|
<th>所属用户</th>
|
2020-07-29 19:34:54 +08:00
|
|
|
|
<th>部署集群</th>
|
2020-10-31 15:21:24 +08:00
|
|
|
|
<th>域名</th>
|
2020-08-21 12:32:16 +08:00
|
|
|
|
<th>端口</th>
|
2023-07-07 18:52:00 +08:00
|
|
|
|
<th class="value-column center">下行带宽<tip-icon content="最近5分钟峰值带宽,每5分钟更新一次"></tip-icon><sort-arrow name="trafficOutOrder"></sort-arrow></th>
|
|
|
|
|
|
<th class="value-column center" v-if="windowWidth < miniWidth || windowWidth > columnWidth4">QPS<tip-icon content="最近5分钟平均QPS,每5分钟更新一次"></tip-icon><sort-arrow name="requestsOrder"></sort-arrow></th>
|
|
|
|
|
|
<th class="value-column center" v-if="windowWidth < miniWidth || windowWidth > columnWidth5">攻击QPS<tip-icon content="最近5分钟平均攻击QPS,每5分钟更新一次"></tip-icon><sort-arrow name="attackRequestsOrder"></sort-arrow></th>
|
2020-11-16 13:03:45 +08:00
|
|
|
|
<th class="two wide center">状态</th>
|
2020-07-29 19:34:54 +08:00
|
|
|
|
<th class="two op">操作</th>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</thead>
|
|
|
|
|
|
<tr v-for="server in servers">
|
2024-01-11 18:40:29 +08:00
|
|
|
|
<td class="server-checkbox-td"><checkbox ref="serverCheckboxes" :v-value="server.id" @input="changeServerChecked"></checkbox></td>
|
2022-01-06 11:13:36 +08:00
|
|
|
|
<td class="server-name-td"><a :href="'/servers/server?serverId=' + server.id"><keyword :v-word="keyword">{{server.name}}</keyword></a> <a :href="'/servers/server/settings?serverId=' + server.id" title="设置"><i class="icon setting grey"></i></a>
|
2020-11-16 15:26:27 +08:00
|
|
|
|
<div style="margin-top:0.4em">
|
2021-08-18 09:24:03 +08:00
|
|
|
|
<grey-label>{{server.serverTypeName}}</grey-label>
|
2020-10-31 15:21:24 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
2020-10-29 21:37:48 +08:00
|
|
|
|
<td>
|
2020-12-07 11:45:45 +08:00
|
|
|
|
<span v-if="server.user != null">{{server.user.fullname}}<link-icon v-if="canVisitUser" :href="'/users/user?userId=' + server.user.id"></link-icon></span>
|
|
|
|
|
|
<span v-else>-</span>
|
2020-10-29 21:37:48 +08:00
|
|
|
|
</td>
|
2020-07-29 19:34:54 +08:00
|
|
|
|
<td>{{server.cluster.name}}</td>
|
2020-10-31 15:21:24 +08:00
|
|
|
|
<td>
|
2022-09-30 13:48:16 +08:00
|
|
|
|
<span v-if="server.firstServerName.length > 0">
|
|
|
|
|
|
<keyword :v-word="keyword">{{server.firstServerName}}</keyword>
|
2020-12-07 12:11:48 +08:00
|
|
|
|
<span v-if="server.countServerNames > 1">等{{server.countServerNames}}个域名 <popup-icon :href="'/servers/serverNamesPopup?serverId=' + server.id" height="20em"></popup-icon></span>
|
2020-11-15 16:28:25 +08:00
|
|
|
|
</span>
|
|
|
|
|
|
<span v-else class="disabled">-</span>
|
2020-12-19 15:53:57 +08:00
|
|
|
|
|
2020-12-19 19:08:39 +08:00
|
|
|
|
<!-- 审核中 -->
|
2020-12-19 15:53:57 +08:00
|
|
|
|
<div v-if="server.isAuditing" style="margin-top: 0.5em">
|
2021-12-01 17:06:05 +08:00
|
|
|
|
<a class="ui label basic tiny red" title="点击跳到审核页面" :href="'/servers/server/settings/serverNames?serverId=' + server.id">审核中<span class="small grey" v-if="server.auditingTime.length > 0">({{server.auditingTime}})</span> <i class="icon long arrow right alternate"></i></a>
|
2020-12-19 19:08:39 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 审核失败 -->
|
|
|
|
|
|
<div v-if="!server.auditingIsOk" style="margin-top: 0.5em">
|
|
|
|
|
|
<a class="ui label basic tiny red" title="点击跳到审核页面" :href="'/servers/server/settings/serverNames?serverId=' + server.id">审核不通过 <i class="icon long arrow right alternate"></i></a>
|
2020-12-19 15:53:57 +08:00
|
|
|
|
</div>
|
2020-10-31 15:21:24 +08:00
|
|
|
|
</td>
|
2020-07-29 19:34:54 +08:00
|
|
|
|
<td>
|
2020-08-21 12:32:16 +08:00
|
|
|
|
<span v-if="server.ports.length == 0">-</span>
|
2020-10-02 17:22:24 +08:00
|
|
|
|
<div v-for="port in server.ports">
|
2021-06-25 11:04:45 +08:00
|
|
|
|
<tiny-basic-label><keyword :v-word="keyword">{{port.portRange}}</keyword><span class="small">({{port.protocol}})</span></tiny-basic-label>
|
2020-08-21 12:32:16 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</td>
|
2022-04-15 12:15:09 +08:00
|
|
|
|
<td class="center">
|
2022-10-03 19:25:20 +08:00
|
|
|
|
<span v-if="server.bandwidthBits > 0" class="bandwidth-span"><bits-var :v-bits="server.bandwidthBits"></bits-var></span>
|
2022-04-15 12:15:09 +08:00
|
|
|
|
<span class="disabled" v-else>-</span>
|
2023-07-07 18:52:00 +08:00
|
|
|
|
</td>
|
|
|
|
|
|
<td class="center" v-if="windowWidth < miniWidth || windowWidth > columnWidth4">
|
|
|
|
|
|
<span v-if="server.qps != '0'">{{server.qps}}</span>
|
|
|
|
|
|
<span v-else class="disabled">-</span>
|
|
|
|
|
|
</td>
|
|
|
|
|
|
<td class="center" v-if="windowWidth < miniWidth || windowWidth > columnWidth5">
|
|
|
|
|
|
<span v-if="server.attackQPS != '0'">{{server.attackQPS}}</span>
|
|
|
|
|
|
<span v-else class="disabled">-</span>
|
2022-04-15 12:15:09 +08:00
|
|
|
|
</td>
|
2020-11-16 13:03:45 +08:00
|
|
|
|
<td class="center">
|
2020-12-23 10:31:00 +08:00
|
|
|
|
<div v-if="!checkDNS">
|
|
|
|
|
|
<label-on :v-is-on="server.isOn"></label-on>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div v-else>
|
|
|
|
|
|
<span v-if="!server.isOn" class="grey">停用中</span>
|
|
|
|
|
|
<span v-else-if="server.status.isOk" class="green">正常</span>
|
|
|
|
|
|
<span v-else-if="server.status.message.length == 0">检查中</span>
|
|
|
|
|
|
<span v-else class="red">{{server.status.message}}
|
|
|
|
|
|
<tip-icon :content="server.status.todo"></tip-icon>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
2020-09-26 08:07:18 +08:00
|
|
|
|
</td>
|
2020-08-21 12:32:16 +08:00
|
|
|
|
<td>
|
2021-09-22 19:39:38 +08:00
|
|
|
|
<a :href="'/servers/server?serverId=' + server.id">详情</a>
|
|
|
|
|
|
<a :href="'/servers/server/settings?serverId=' + server.id">设置</a>
|
2020-07-29 19:34:54 +08:00
|
|
|
|
</td>
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="page" v-html="page"></div>
|