From c0c79d9b58705a3c8c13ea9f23b1dd0f724a04af Mon Sep 17 00:00:00 2001 From: hanbaoshan <hanbaoshan@aiotlink.com> Date: 星期一, 19 十月 2020 19:14:52 +0800 Subject: [PATCH] 搜索集群节点样式更新 --- src/pages/settings/components/ClusterManagement.vue | 82 ++++++++++++++++++++++++++++------------ 1 files changed, 57 insertions(+), 25 deletions(-) diff --git a/src/pages/settings/components/ClusterManagement.vue b/src/pages/settings/components/ClusterManagement.vue index 8bc48eb..bcef075 100644 --- a/src/pages/settings/components/ClusterManagement.vue +++ b/src/pages/settings/components/ClusterManagement.vue @@ -30,7 +30,7 @@ <!-- 鍔犲叆宸叉湁闆嗙兢 --> <el-tab-pane label="鍔犲叆宸叉湁闆嗙兢" name="2" :disabled="isHasColony"> - <el-form label-width="80px" :model="joinForm" :rules="joinRules" ref="joinForm"> + <el-form label-width="80px" :model="joinForm" :rules="joinRules" ref="joinForm" v-loading="joinLoading"> <el-form-item label="IP鍦板潃" style="width:440px"> <el-input v-model="joinForm.clusterip" @@ -94,29 +94,39 @@ style="margin-right:10px;" type="primary" size="small" - @click="submitForm('manageForm')" + @click="updateCluster('manageForm')" >淇濆瓨</el-button> </el-form-item> </el-form> </div> </el-col> - <el-col :span="12" style="height: 100%;" v-if="members.length !== 0 && isSearch" class="node-container"> + <el-col + :span="12" + style="height: 100%;" + v-if="members.length !== 0 && isSearch" + class="node-container" + > <serfDiagram ref="diagram" :members="members" :agent="agentName" v-loading="loading" + :isShowHover="false" @selected-node="joinNode" class="nodes-svg" ></serfDiagram> </el-col> - <el-col :span="12" style="height: 100%;" v-if="innerNodes.length !== 0 && !isSearch" class="node-container"> - <cloud-node :nodes="innerNodes"> - </cloud-node> + <el-col + :span="12" + style="height: 100%;" + v-if="innerNodes.length !== 0 && !isSearch" + class="node-container" + > + <cloud-node :nodes="innerNodes"></cloud-node> </el-col> </el-row> - <div class="ui-top-view"> + <!-- <div class="ui-top-view"> <div class="ui-top-title">瀛樺偍闆嗙兢绠$悊</div> </div> <el-row> @@ -129,7 +139,7 @@ size="small" @click="createEsCluster()" >鍒涘缓瀛樺偍闆嗙兢</el-button> - <!-- <p>鐐瑰嚮灏嗘湰鏈哄垱寤轰负瀛樺偍闆嗙兢</p> --> + </el-tab-pane> <el-tab-pane label="鍔犲叆宸叉湁闆嗙兢" name="s-second" v-if="sActiveName != 's-third1'"> <el-form label-width="80px"> @@ -166,8 +176,7 @@ </el-tab-pane> </el-tabs> </el-col> - </el-row> - + </el-row> --> </div> </template> @@ -195,7 +204,7 @@ import cloudNode from "./CloudNode"; import serfDiagram from "@/components/serfDiagram"; import ipInput from "@/components/subComponents/IPInput"; -import {isIPv4} from "@/scripts/validate"; +import { isIPv4 } from "@/scripts/validate"; export default { components: { serfDiagram, @@ -220,7 +229,7 @@ } }, 1000); }; - + return { activeName: "1", sActiveName: "s-first", @@ -280,11 +289,20 @@ agentName: "", members: [], innerNodes: [], + intervalTimer: null, + joinLoading: false }; }, mounted() { this.findCluster(); + let _this = this; + this.intervalTimer = setInterval(()=>{ + _this.findCluster(); + },30000); this.getEsClusterNodes(); + }, + beforeDestroy(){ + clearInterval(this.intervalTimer); }, methods: { cleanValue() { @@ -332,10 +350,12 @@ } }); }, - - join (formName) { + + join(formName) { + let _this = this; this.$refs[formName].validate(valid => { if (valid) { + _this.joinLoading = true; if (Object.keys(this.currentCluster).length === 0) { this.$notify({ type: "info", @@ -353,7 +373,11 @@ nodeIps: nodeIps }; this.joinCluster(json).then(() => { + _this.joinLoading = false; this.findCluster(); + }).catch(e=>{ + console.log(e); + _this.joinLoading = false; }); } else { console.log("error submit!!"); @@ -487,8 +511,8 @@ this.innerNodes = res.data.nodes.map(i => { let obj = {}; obj.device_type = i.device_type; - obj.workType = i.device_type.substr(2,2); - obj.hardwareType = i.device_type.substr(4,2); + obj.workType = i.device_type.substr(2, 2); + obj.hardwareType = i.device_type.substr(4, 2); obj.cluster_id = i.cluster_id; obj.clusterName = res.data.clusterName; obj.create_time = i.create_time; @@ -497,10 +521,10 @@ obj.node_ip = i.node_ip; obj.nodeName = i.node_name; obj.Address = i.node_ip; - obj.role = i.role ? i.role : "pc"; + obj.role = i.drift_state ? i.drift_state : "pc"; return obj; }); - + //this.members = this.members.concat(list); console.log(this.members) } else { @@ -519,9 +543,19 @@ console.log(e) }) }, - async updateClusterName() { + async updateCluster() { + if (this.ruleForm.clustername === "") { + this.$message({ + type: "error", + message: "闆嗙兢鍚嶇О涓嶈兘涓虹┖" + }) + + return + } + let res = await updateClusterName({ - clusterName: this.mangeForm.colonyName + clusterName: this.ruleForm.clustername, + virtualIp: this.ruleForm.virtualIp }); this.$notify({ title: res.success ? "鎴愬姛" : "澶辫触", @@ -706,7 +740,7 @@ }); }) }, - onIpBlur (ip) { + onIpBlur(ip) { //this.vrIpForm.virtual_ip = ip; this.ruleForm.virtualIp = ip; console.log(this.ruleForm.virtualIp) @@ -714,7 +748,7 @@ }, - created () { } + created() { } }; </script> @@ -787,7 +821,5 @@ height: 30px; line-height: 30px; } -.nodes-svg{ - background-color: rgba(127, 172, 255, 0.459); -} + </style> -- Gitblit v1.8.0