From 98a6297b10a4b97c3022f84d3ba7908c178d9ee0 Mon Sep 17 00:00:00 2001 From: hanbaoshan <hanbaoshan@aiotlink.com> Date: 星期二, 20 十月 2020 10:30:10 +0800 Subject: [PATCH] 应用中心安装提示bug修复 --- src/pages/settings/components/ClusterManagement.vue | 110 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 77 insertions(+), 33 deletions(-) diff --git a/src/pages/settings/components/ClusterManagement.vue b/src/pages/settings/components/ClusterManagement.vue index 9a04946..7a58e68 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,25 +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"> + <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> </el-row> - <div class="ui-top-view"> + <!-- <div class="ui-top-view"> <div class="ui-top-title">瀛樺偍闆嗙兢绠$悊</div> </div> <el-row> @@ -125,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"> @@ -162,8 +176,7 @@ </el-tab-pane> </el-tabs> </el-col> - </el-row> - + </el-row> --> </div> </template> @@ -188,14 +201,15 @@ import { getDevInfo } from "@/api/system"; - +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, - ipInput + ipInput, + cloudNode }, data() { const checkPwd = (rule, value, callback) => { @@ -215,7 +229,7 @@ } }, 1000); }; - + return { activeName: "1", sActiveName: "s-first", @@ -267,18 +281,28 @@ esNodes: [], scheduleId: "", isHasColony: false, + isSearch: false, currentCluster: {}, searchNum: "", loading: false, searchDis: false, agentName: "", - members: [] + members: [], + innerNodes: [], + intervalTimer: null, + joinLoading: false }; }, mounted() { this.findCluster(); - this.getVrrpInfo(); + let _this = this; + this.intervalTimer = setInterval(()=>{ + _this.findCluster(); + },30000); this.getEsClusterNodes(); + }, + beforeDestroy(){ + clearInterval(this.intervalTimer); }, methods: { cleanValue() { @@ -290,7 +314,6 @@ submitForm(formName) { this.$refs[formName].validate(valid => { if (valid) { - debugger //alert("submit!"); let json = { clusterId: this.clusterid, @@ -327,16 +350,19 @@ } }); }, - - 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", duration: 1000, message: "璇峰厛閫夋嫨涓�涓泦缇よ妭鐐�" }); + _this.joinLoading = false; return true; } let nodeIps = this.members.map(i => { @@ -348,7 +374,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!!"); @@ -372,6 +402,7 @@ } }, async searchColony() { + this.isSearch = true; this.$refs["joinForm"].validate(valid => { if (valid) { this.members = []; @@ -389,10 +420,12 @@ .catch(() => { this.searchDis = false; this.loading = false; + this.isSearch = false; }); } else { this.searchDis = false; this.loading = false; + this.isSearch = false; return false; } }); @@ -409,6 +442,7 @@ this.stopSearch(); }, 10 * 1000); }, + //鎼滅储闆嗙兢 async getSearchNodes() { let res = await getSearchNodes(); if (res && res.success) { @@ -473,10 +507,13 @@ this.ruleForm.clustername = res.data.clusterName; this.ruleForm.clusterpwd = res.data.clusterpwd this.ruleForm.virtualIp = res.data.virtualIp - let list = res.data.nodes.map(i => { - debugger + //let list = res.data.nodes.map(i => { + this.isSearch = false; + 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.cluster_id = i.cluster_id; obj.clusterName = res.data.clusterName; obj.create_time = i.create_time; @@ -485,10 +522,12 @@ 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); + + //this.members = this.members.concat(list); + console.log(this.members) } else { this.isHasColony = false; // this.activeName = '1' @@ -505,9 +544,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 ? "鎴愬姛" : "澶辫触", @@ -545,11 +594,13 @@ this.isHasColony = false; this.activeName = "1"; this.members = []; + this.innerNodes = []; } }).catch(() => { }); }, joinNode(event, node) { + debugger this.currentCluster.cluster_id = node.cluster_id; if (this.activeName === "3") { this.manageForm.clustername = node.clusterName; @@ -690,20 +741,15 @@ }); }) }, - onIpBlur (ip) { + onIpBlur(ip) { //this.vrIpForm.virtual_ip = ip; this.ruleForm.virtualIp = ip; console.log(this.ruleForm.virtualIp) } - - }, - mounted () { - this.findCluster(); - - }, - created () { } + + created() { } }; </script> @@ -776,7 +822,5 @@ height: 30px; line-height: 30px; } -.nodes-svg{ - background-color: aquamarine; -} + </style> -- Gitblit v1.8.0