mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-28 06:40:33 +08:00
增加IP级别和WAF动作
This commit is contained in:
@@ -7,5 +7,6 @@ Vue.component("ip-item-text", {
|
||||
<span v-if="vItem.ipTo.length > 0">- {{vItem.ipTo}}</span>
|
||||
</span>
|
||||
<span v-if="vItem.type == 'ipv6'">{{vItem.ipFrom}}</span>
|
||||
<span v-if="vItem.eventLevelName != null && vItem.eventLevelName.length > 0"> 级别:{{vItem.eventLevelName}}</span>
|
||||
</span>`
|
||||
})
|
||||
@@ -19,6 +19,7 @@ Vue.component("ip-list-table", {
|
||||
<tr>
|
||||
<th style="width:18em">IP</th>
|
||||
<th>类型</th>
|
||||
<th>级别</th>
|
||||
<th>过期时间</th>
|
||||
<th>备注</th>
|
||||
<th class="two op">操作</th>
|
||||
@@ -35,6 +36,10 @@ Vue.component("ip-list-table", {
|
||||
<span v-else-if="item.type == 'ipv6'">IPv6</span>
|
||||
<span v-else-if="item.type == 'all'"><strong>所有IP</strong></span>
|
||||
</td>
|
||||
<td>
|
||||
<span v-if="item.eventLevelName != null && item.eventLevelName.length > 0">{{item.eventLevelName}}</span>
|
||||
<span v-else class="disabled">-</span>
|
||||
</td>
|
||||
<td>
|
||||
<div v-if="item.expiredTime.length > 0">
|
||||
{{item.expiredTime}}
|
||||
|
||||
@@ -1,34 +1,40 @@
|
||||
Vue.component("message-row", {
|
||||
props: ["v-message"],
|
||||
data: function () {
|
||||
let paramsJSON = this.vMessage.params
|
||||
let params = null
|
||||
if (paramsJSON != null && paramsJSON.length > 0) {
|
||||
params = JSON.parse(paramsJSON)
|
||||
}
|
||||
props: ["v-message"],
|
||||
data: function () {
|
||||
let paramsJSON = this.vMessage.params
|
||||
let params = null
|
||||
if (paramsJSON != null && paramsJSON.length > 0) {
|
||||
params = JSON.parse(paramsJSON)
|
||||
}
|
||||
|
||||
return {
|
||||
message: this.vMessage,
|
||||
params: params
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
viewCert: function (certId) {
|
||||
teaweb.popup("/servers/certs/certPopup?certId=" + certId, {
|
||||
height: "28em",
|
||||
width: "48em"
|
||||
})
|
||||
},
|
||||
return {
|
||||
message: this.vMessage,
|
||||
params: params
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
viewCert: function (certId) {
|
||||
teaweb.popup("/servers/certs/certPopup?certId=" + certId, {
|
||||
height: "28em",
|
||||
width: "48em"
|
||||
})
|
||||
},
|
||||
readMessage: function (messageId) {
|
||||
Tea.action("/messages/readPage")
|
||||
.params({"messageIds": [messageId]})
|
||||
.post()
|
||||
.success(function () {
|
||||
// 刷新父级页面Badge
|
||||
if (window.parent.Tea != null && window.parent.Tea.Vue != null) {
|
||||
window.parent.Tea.Vue.checkMessagesOnce()
|
||||
}
|
||||
|
||||
// 刷新当前页面
|
||||
teaweb.reload()
|
||||
})
|
||||
}
|
||||
},
|
||||
template: `<div>
|
||||
},
|
||||
template: `<div>
|
||||
<table class="ui table selectable">
|
||||
<tr :class="{error: message.level == 'error', positive: message.level == 'success', warning: message.level == 'warning'}">
|
||||
<td style="position: relative">
|
||||
|
||||
45
web/public/js/components/server/firewall-event-levels.js
Normal file
45
web/public/js/components/server/firewall-event-levels.js
Normal file
@@ -0,0 +1,45 @@
|
||||
Vue.component("firewall-event-level-options", {
|
||||
props: ["v-value"],
|
||||
mounted: function () {
|
||||
let that = this
|
||||
Tea.action("/ui/eventLevelOptions")
|
||||
.post()
|
||||
.success(function (resp) {
|
||||
that.levels = resp.data.eventLevels
|
||||
that.change()
|
||||
})
|
||||
},
|
||||
data: function () {
|
||||
let value = this.vValue
|
||||
if (value == null || value.length == 0) {
|
||||
value = "" // 不要给默认值,因为黑白名单等默认值均有不同
|
||||
}
|
||||
|
||||
return {
|
||||
levels: [],
|
||||
description: "",
|
||||
level: value
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
change: function () {
|
||||
this.$emit("change")
|
||||
|
||||
let that = this
|
||||
let l = this.levels.$find(function (k, v) {
|
||||
return v.code == that.level
|
||||
})
|
||||
if (l != null) {
|
||||
this.description = l.description
|
||||
} else {
|
||||
this.description = ""
|
||||
}
|
||||
}
|
||||
},
|
||||
template: `<div>
|
||||
<select class="ui dropdown auto-width" name="eventLevel" v-model="level" @change="change">
|
||||
<option v-for="level in levels" :value="level.code">{{level.name}}</option>
|
||||
</select>
|
||||
<p class="comment">{{description}}</p>
|
||||
</div>`
|
||||
})
|
||||
Reference in New Issue
Block a user