Vue.component("server-name-box", { props: ["v-server-names"], data: function () { let serverNames = this.vServerNames; if (serverNames == null) { serverNames = [] } return { serverNames: serverNames, isSearching: false, keyword: "" } }, methods: { addServerName: function () { window.UPDATING_SERVER_NAME = null let that = this teaweb.popup("/servers/addServerNamePopup", { callback: function (resp) { var serverName = resp.data.serverName that.serverNames.push(serverName) } }); }, removeServerName: function (index) { this.serverNames.$remove(index) }, updateServerName: function (index, serverName) { window.UPDATING_SERVER_NAME = teaweb.clone(serverName) let that = this teaweb.popup("/servers/addServerNamePopup", { callback: function (resp) { var serverName = resp.data.serverName Vue.set(that.serverNames, index, serverName) } }); }, showSearchBox: function () { this.isSearching = !this.isSearching if (this.isSearching) { let that = this setTimeout(function () { that.$refs.keywordRef.focus() }, 200) } else { this.keyword = "" } }, }, watch: { keyword: function (v) { this.serverNames.forEach(function (serverName) { if (v.length == 0) { serverName.isShowing = true return } if (serverName.subNames == null || serverName.subNames.length == 0) { if (!teaweb.match(serverName.name, v)) { serverName.isShowing = false } } else { let found = false serverName.subNames.forEach(function (subName) { if (teaweb.match(subName, v)) { found = true } }) serverName.isShowing = found } }) } }, template: `
{{serverName.type}} {{serverName.name}} {{serverName.subNames[0]}}等{{serverName.subNames.length}}个域名
|
` })