Files
EdgeAdmin/web/public/js/components/common/network-addresses-box.js

51 lines
1.5 KiB
JavaScript
Raw Normal View History

2020-09-13 20:37:07 +08:00
Vue.component("network-addresses-box", {
2020-09-16 09:09:10 +08:00
props: ["v-server-type", "v-addresses", "v-protocol"],
2020-09-13 20:37:07 +08:00
data: function () {
let addresses = this.vAddresses
if (addresses == null) {
addresses = []
}
2020-09-16 09:09:10 +08:00
let protocol = this.vProtocol
if (protocol == null) {
protocol = ""
}
2020-09-13 20:37:07 +08:00
return {
2020-09-16 09:09:10 +08:00
addresses: addresses,
protocol: protocol
2020-09-13 20:37:07 +08:00
}
},
watch: {
"vServerType": function () {
this.addresses = []
}
},
methods: {
addAddr: function () {
let that = this
2020-09-16 09:09:10 +08:00
teaweb.popup("/servers/addPortPopup?serverType=" + this.vServerType + "&protocol=" + this.protocol, {
2020-09-13 20:37:07 +08:00
callback: function (resp) {
var addr = resp.data.address;
that.addresses.push(addr);
if (["https", "https4", "https6"].$contains(addr.protocol)) {
this.tlsProtocolName = "HTTPS";
} else if (["tls", "tls4", "tls6"].$contains(addr.protocol)) {
this.tlsProtocolName = "TLS";
}
}
})
},
removeAddr: function (index) {
this.addresses.$remove(index);
}
},
template: `<div>
<input type="hidden" name="addresses" :value="JSON.stringify(addresses)"/>
<div v-if="addresses.length > 0">
<div class="ui label small" v-for="(addr, index) in addresses">
{{addr.protocol}}://<span v-if="addr.host.length > 0">{{addr.host}}</span><span v-if="addr.host.length == 0">*</span>:{{addr.portRange}}
<a href="" @click.prevent="removeAddr(index)" title="删除"><i class="icon remove"></i></a> </div>
<div class="ui divider"></div>
</div>
<a href="" @click.prevent="addAddr()">[添加端口绑定]</a>
</div>`
})