Files
EdgeAdmin/web/public/js/components/node/node-ip-addresses-box.js

82 lines
2.9 KiB
JavaScript
Raw Normal View History

// 节点IP地址管理标签形式
2020-09-06 16:19:34 +08:00
Vue.component("node-ip-addresses-box", {
2023-03-01 11:38:21 +08:00
props: ["v-ip-addresses", "role", "v-node-id"],
2020-09-06 16:19:34 +08:00
data: function () {
2023-03-01 11:38:21 +08:00
let nodeId = this.vNodeId
if (nodeId == null) {
nodeId = 0
}
2020-09-06 16:19:34 +08:00
return {
2021-08-31 17:24:30 +08:00
ipAddresses: (this.vIpAddresses == null) ? [] : this.vIpAddresses,
2023-03-01 11:38:21 +08:00
supportThresholds: this.role != "ns",
nodeId: nodeId
2020-09-06 16:19:34 +08:00
}
},
methods: {
// 添加IP地址
addIPAddress: function () {
window.UPDATING_NODE_IP_ADDRESS = null
2020-09-06 16:19:34 +08:00
let that = this;
2023-03-01 11:38:21 +08:00
teaweb.popup("/nodes/ipAddresses/createPopup?nodeId=" + this.nodeId + "&supportThresholds=" + (this.supportThresholds ? 1 : 0), {
2020-09-06 16:19:34 +08:00
callback: function (resp) {
that.ipAddresses.push(resp.data.ipAddress);
2021-08-18 16:19:07 +08:00
},
height: "24em",
width: "44em"
2020-09-06 16:19:34 +08:00
})
},
// 修改地址
updateIPAddress: function (index, address) {
2023-03-01 11:38:21 +08:00
window.UPDATING_NODE_IP_ADDRESS = teaweb.clone(address)
2020-09-06 16:19:34 +08:00
let that = this;
2023-03-01 11:38:21 +08:00
teaweb.popup("/nodes/ipAddresses/updatePopup?nodeId=" + this.nodeId + "&supportThresholds=" + (this.supportThresholds ? 1 : 0), {
2020-09-06 16:19:34 +08:00
callback: function (resp) {
Vue.set(that.ipAddresses, index, resp.data.ipAddress);
2021-08-18 16:19:07 +08:00
},
height: "24em",
width: "44em"
2020-09-06 16:19:34 +08:00
})
},
// 删除IP地址
removeIPAddress: function (index) {
this.ipAddresses.$remove(index);
2021-06-07 10:00:06 +08:00
},
// 判断是否为IPv6
isIPv6: function (ip) {
return ip.indexOf(":") > -1
2020-09-06 16:19:34 +08:00
}
},
template: `<div>
<input type="hidden" name="ipAddressesJSON" :value="JSON.stringify(ipAddresses)"/>
2020-09-06 16:19:34 +08:00
<div v-if="ipAddresses.length > 0">
<div>
2020-11-21 15:53:04 +08:00
<div v-for="(address, index) in ipAddresses" class="ui label tiny basic">
2021-06-07 10:00:06 +08:00
<span v-if="isIPv6(address.ip)" class="grey">[IPv6]</span> {{address.ip}}
<span class="small grey" v-if="address.name.length > 0">{{address.name}}<span v-if="!address.canAccess">不可访问</span></span>
<span class="small grey" v-if="address.name.length == 0 && !address.canAccess">不可访问</span>
2021-08-18 17:09:09 +08:00
<span class="small red" v-if="!address.isOn" title="未启用">[off]</span>
<span class="small red" v-if="!address.isUp" title="已下线">[down]</span>
2021-09-12 20:21:32 +08:00
<span class="small" v-if="address.thresholds != null && address.thresholds.length > 0">[{{address.thresholds.length}}个阈值]</span>
&nbsp;
2023-03-01 11:38:21 +08:00
<span v-if="address.clusters != null && address.clusters.length > 0">
&nbsp; <span class="small grey">专属集群[</span><span v-for="(cluster, index) in address.clusters" class="small grey">{{cluster.name}}<span v-if="index < address.clusters.length - 1"></span></span><span class="small grey">]</span>
&nbsp;
</span>
2020-09-06 16:19:34 +08:00
<a href="" title="修改" @click.prevent="updateIPAddress(index, address)"><i class="icon pencil small"></i></a>
<a href="" title="删除" @click.prevent="removeIPAddress(index)"><i class="icon remove"></i></a>
</div>
</div>
<div class="ui divider"></div>
</div>
<div>
<button class="ui button small" type="button" @click.prevent="addIPAddress()">+</button>
</div>
</div>`
})