Tea.context(function () { // 显示的统计项 this.windowWidth = window.innerWidth this.miniWidth = 760 this.columnWidth1 = 750 this.columnWidth2 = 850 this.columnWidth3 = 950 this.columnWidth4 = 1050 this.columnWidth5 = 1100 let that = this window.addEventListener("resize", function () { that.windowWidth = window.innerWidth }) this.$delay(function () { this.checkPorts() }) this.deleteNode = function (nodeId) { teaweb.confirm("确定要删除这个节点吗?", function () { this.$post("/ns/clusters/cluster/deleteNode") .params({ nodeId: nodeId }) .refresh(); }) } this.upNode = function (nodeId) { teaweb.confirm("确定要手动上线此节点吗?", function () { this.$post("/ns/clusters/cluster/node/up") .params({ nodeId: nodeId }) .refresh() }) } let checkingPort = "" this.checkPorts = function () { let ipList = [] this.nodes.forEach(function (node) { if (node.isOn) { if (node.ipAddresses != null && node.ipAddresses.length > 0) { node.ipAddresses.forEach(function (addr) { if (addr.isOn && addr.canAccess && addr.isUp && addr.ip.length > 0 && !ipList.$contains(addr.ip)) { ipList.push(addr.ip) } }) } } }) if (ipList.length > 0) { this.$post(".checkPorts") .params({ clusterId: this.clusterId, ip: ipList }) .success(function (resp) { let results = resp.data.results if (results.length > 0) { checkingPort = resp.data.port let errorMap = {} let hasErrors = false results.forEach(function (result) { if (!result.isOk) { errorMap[result.ip] = result hasErrors = true } }) if (hasErrors) { this.nodes.forEach(function (node) { if (node.isOn) { if (node.ipAddresses != null && node.ipAddresses.length > 0) { node.ipAddresses.forEach(function (addr, index) { if (addr.isOn && addr.canAccess && addr.isUp && addr.ip.length > 0) { if (typeof errorMap[addr.ip] == "object") { addr.hasError = true addr.err = errorMap[addr.ip].err Vue.set(node.ipAddresses, index, addr) } } }) } } }) } } }) } } this.showPortError = function (addr) { teaweb.popupTip("udp://" + addr.ip + ":" + checkingPort + " 端口连接错误(提示:" + addr.err + "),请检查:
1)节点IP地址是否填写正确;
2)节点程序(edge-dns)是否已正确安装;
3)是否已在防火墙和安全策略中正确设置 " + checkingPort + "/udp 端口;
4)如在客户端手动测试正常,可以忽略此提示。") } })