数据看板增加事件列表(商业版)

This commit is contained in:
GoEdgeLab
2021-10-14 17:29:30 +08:00
parent 73e2cb4966
commit 127a0e8471
4 changed files with 128 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
// 节点角色名称
Vue.component("node-role-name", {
props: ["v-role"],
data: function () {
let roleName = ""
switch (this.vRole) {
case "node":
roleName = "边缘节点"
break
case "monitor":
roleName = "监控节点"
break
case "api":
roleName = "API节点"
break
case "user":
roleName = "用户平台"
break
case "admin":
roleName = "管理平台"
break
case "database":
roleName = "数据库节点"
break
case "dns":
roleName = "DNS节点"
break
case "report":
roleName = "区域监控终端"
break
}
return {
roleName: roleName
}
},
template: `<span>{{roleName}}</span>`
})

View File

@@ -3,4 +3,5 @@
<menu-item href="/dashboard/boards/waf" code="waf">WAF</menu-item>
<menu-item href="/dashboard/boards/dns" code="dns">DNS</menu-item>
<menu-item href="/dashboard/boards/user" code="user">用户</menu-item>
<menu-item href="/dashboard/boards/events" code="event">事件<span :class="{red: countEvents > 0}">({{countEvents}})</span></menu-item>
</first-menu>

View File

@@ -0,0 +1,66 @@
{$layout}
{$template "menu"}
<p class="comment" v-if="logs.length == 0">暂时还没有事件。</p>
<second-menu v-if="logs.length > 0">
<a href="" class="item" @click.prevent="updatePageRead()">[本页已读]</a>
</second-menu>
<table class="ui table selectable celled" v-if="logs.length > 0">
<thead>
<tr>
<th nowrap="">节点类型</th>
<th nowrap="">集群</th>
<th nowrap="">节点</th>
<th>信息</th>
<th class="one op">操作</th>
</tr>
</thead>
<tr v-for="log in logs">
<td>
<node-role-name :v-role="log.role"></node-role-name>
</td>
<td nowrap="">
<span v-if="log.role == 'node'">
<link-icon :href="'/clusters/cluster?clusterId=' + log.node.cluster.id">{{log.node.cluster.name}}</link-icon>
</span>
<span v-else-if="log.role == 'dns'">
<link-icon :href="'/ns/clusters/cluster?clusterId=' + log.node.cluster.id">{{log.node.cluster.name}}</link-icon>
</span>
<span v-else class="disabled">-</span>
</td>
<td nowrap="">
<span v-if="log.role == 'node'">
<link-icon :href="'/clusters/cluster/node?clusterId=' + log.node.cluster.id + '&nodeId=' + log.node.id">{{log.node.name}}</link-icon>
</span>
<span v-if="log.role == 'api'">
<link-icon :href="'/api/node?nodeId=' + log.node.id">{{log.node.name}}</link-icon>
</span>
<span v-if="log.role == 'dns'">
<link-icon :href="'/ns/clusters/cluster/node?clusterId=' + log.node.cluster.id + '&nodeId=' + log.node.id">{{log.node.name}}</link-icon>
</span>
<span v-if="log.role == 'database'">
<link-icon :href="'/db/node?nodeId=' + log.node.id">{{log.node.name}}</link-icon>
</span>
<span v-if="log.role == 'admin'">管理平台</span>
<span v-if="log.role == 'user'">
<link-icon :href="'/settings/userNodes/node?nodeId=' + log.node.id">{{log.node.name}}</link-icon>
</span>
<span v-if="log.role == 'monitor'">
<link-icon :href="'/settings/monitorNodes/node?nodeId=' + log.node.id">{{log.node.name}}</link-icon>
</span>
<span v-if="log.role == 'report'">
<link-icon :href="'/clusters/monitors/reporters/reporter?reporterId=' + log.node.id">{{log.node.name}}</link-icon>
</span>
</td>
<td>
<node-log-row :v-log="log" :v-keyword="keyword"></node-log-row>
</td>
<td>
<a href="" @click.prevent="updateRead(log.id)">已读</a>
</td>
</tr>
</table>
<div class="page" v-html="page"></div>

View File

@@ -0,0 +1,24 @@
Tea.context(function () {
this.updateRead = function (logId) {
this.$post(".readEvents")
.params({
logIds: [logId]
})
.success(function () {
teaweb.reload()
})
}
this.updatePageRead = function () {
let logIds = this.logs.map(function (v) {
return v.id
})
this.$post(".readEvents")
.params({
logIds: logIds
})
.success(function () {
teaweb.reload()
})
}
})