Files
EdgeAdmin/web/views/@default/servers/index.html

135 lines
6.3 KiB
HTML
Raw Normal View History

2020-07-22 22:19:39 +08:00
{$layout}
{$template "menu"}
<!-- 错误日志 -->
<div v-if="errorLogs.length > 0">
<div class="margin"></div>
<div class="ui menu tabular attached">
<span class="ui item active"><span class="red">需要修复的错误</span></span>
</div>
<div class="ui segment attached">
<div class="ui icon message" v-for="log in errorLogs" :class="{error: log.level == 'error', success: log.level == 'success'}">
<i class="icon warning circle"></i>
<div class="content">
[{{log.createdTime}}]
<a :href="'/clusters/cluster/node?clusterId=' + log.clusterId + '&nodeId=' + log.nodeId">[节点:{{log.nodeName}}]</a>
<a :href="'/servers/server/settings?serverId=' + log.serverId"><span v-if="log.serverName.length > 0">[服务:{{log.serverName}}]</span><span v-else>[服务]</span></a>
<span v-if="log.level == 'error'">[错误]</span>
<span v-if="log.level == 'success'">[成功]</span>
{{log.description}}
</div>
<a href="" title="关闭" @click.prevent="fixLog(log.id)"><i class="ui icon remove small"></i></a>
</div>
</div>
</div>
<!-- 搜索表单 -->
2020-11-10 12:47:24 +08:00
<form method="get" class="ui form" action="/servers">
<input type="hidden" name="auditingFlag" :value="auditingFlag"/>
2020-10-31 15:21:24 +08:00
<div class="ui margin"></div>
<div class="ui menu basic text">
<div class="item">
<div class="ui fields inline">
<div class="ui field" v-if="clusters.length > 0">
<select class="ui dropdown auto-width" name="clusterId" v-model="clusterId">
<option value="0">[选择集群]</option>
<option v-for="cluster in clusters" :value="cluster.id">{{cluster.name}}</option>
</select>
</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>
<option v-for="group in groups" :value="group.id">{{group.name}}</option>
</select>
</div>
<div class="ui field">
<input type="text" name="keyword" style="width:10em" placeholder="关键词" v-model="keyword"/>
</div>
<div class="ui field">
<button type="submit" class="ui button">搜索</button>
</div>
2021-05-03 15:15:31 +08:00
<div class="ui field" v-if="latestServers.length > 0">
<a href="" @click.prevent="showLatest()">常用<i class="icon angle" :class="{down: !latestVisible, up: latestVisible}"></i> </a>
</div>
</div>
</div>
<div class="item right">
<checkbox name="checkDNS" :v-value="1" v-model="checkDNS">检查域名解析</checkbox>
</div>
</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">
2021-06-07 08:44:06 +08:00
常用服务:<span v-for="(server, index) in latestServers"><a :href="'/servers/server?serverId=' + server.id">{{server.name}}</a> &nbsp; <span class="disabled" v-if="index != latestServers.length - 1">|</span> &nbsp;</span>
2021-05-03 15:15:31 +08:00
</div>
2020-07-29 19:34:54 +08:00
<p class="ui message" v-if="servers.length == 0">暂时还没有服务。</p>
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>
<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>
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">
2021-08-16 14:44:32 +08:00
<td><a :href="'/servers/server?serverId=' + server.id"><keyword :v-word="keyword">{{server.name}}</keyword></a>
2020-11-16 15:26:27 +08:00
<div style="margin-top:0.4em">
<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>
<span v-if="server.serverNames.length > 0">
2021-06-05 16:53:26 +08:00
<span v-if="server.serverNames[0].subNames == null || server.serverNames[0].subNames.length == 0"><keyword :v-word="keyword">{{server.serverNames[0].name}}</keyword></span>
<span v-else><keyword :v-word="keyword">{{server.serverNames[0].subNames[0]}}</keyword></span>
<span v-if="server.countServerNames > 1">等{{server.countServerNames}}个域名 <popup-icon :href="'/servers/serverNamesPopup?serverId=' + server.id" height="20em"></popup-icon></span>
</span>
<span v-else class="disabled">-</span>
<!-- 审核中 -->
<div v-if="server.isAuditing" style="margin-top: 0.5em">
<a class="ui label basic tiny red" title="点击跳到审核页面" :href="'/servers/server/settings/serverNames?serverId=' + server.id">审核中 &nbsp;<i class="icon long arrow right alternate"></i></a>
</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">审核不通过 &nbsp;<i class="icon long arrow right alternate"></i></a>
</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>
2020-11-16 13:03:45 +08:00
<td class="center">
<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>
<a :href="'/servers/server?serverId=' + server.id">详情</a>
2020-07-29 19:34:54 +08:00
</td>
</tr>
</table>
<div class="page" v-html="page"></div>