// 域名列表 Vue.component("domains-box", { props: ["v-domains", "name"], data: function () { let domains = this.vDomains if (domains == null) { domains = [] } let realName = "domainsJSON" if (this.name != null && typeof this.name == "string") { realName = this.name } return { domains: domains, isAdding: false, addingDomain: "", realName: realName } }, methods: { add: function () { this.isAdding = true let that = this setTimeout(function () { that.$refs.addingDomain.focus() }, 100) }, confirm: function () { let that = this // 删除其中的空格 this.addingDomain = this.addingDomain.replace(/\s/g, "") if (this.addingDomain.length == 0) { teaweb.warn("请输入要添加的域名", function () { that.$refs.addingDomain.focus() }) return } // 基本校验 if (this.addingDomain[0] == "~") { let expr = this.addingDomain.substring(1) try { new RegExp(expr) } catch (e) { teaweb.warn("正则表达式错误:" + e.message, function () { that.$refs.addingDomain.focus() }) return } } this.domains.push(this.addingDomain) this.cancel() }, remove: function (index) { this.domains.$remove(index) }, cancel: function () { this.isAdding = false this.addingDomain = "" } }, template: `
` })