From d5144e7cb7ccf2795e02098b850e282eb2a6e74f Mon Sep 17 00:00:00 2001 From: hanbaoshan <hanbaoshan@aiotlink.com> Date: 星期三, 14 十月 2020 10:27:07 +0800 Subject: [PATCH] 集群节点展示测试 --- src/pages/settings/components/ClusterManagement.vue | 98 ++++++++++++++++++++++++++---------------------- 1 files changed, 53 insertions(+), 45 deletions(-) diff --git a/src/pages/settings/components/ClusterManagement.vue b/src/pages/settings/components/ClusterManagement.vue index 76ab639..8ab8f83 100644 --- a/src/pages/settings/components/ClusterManagement.vue +++ b/src/pages/settings/components/ClusterManagement.vue @@ -7,7 +7,7 @@ <el-col :span="12"> <el-tabs v-model="activeName" id="e-alaycluster" v-if="!isHasColony"> <el-tab-pane label="鍒涘缓闆嗙兢" name="1" :disabled="isHasColony"> - <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px"> + <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"> <el-form-item label="闆嗙兢鍚嶇О" prop="clustername"> <el-input v-model="ruleForm.clustername" placeholder="鎵嬪姩杈撳叆, 濡傗�滈泦缇鈥�" size="small"></el-input> </el-form-item> @@ -19,10 +19,9 @@ <el-button type="text" slot="suffix" @click="generatePassword">鐢熸垚瀵嗙爜</el-button> </el-input> </el-form-item> - - <!-- <el-form-item label="铏氭嫙IP" prop="virtualip"> - <ip-input :ip="ruleForm.virtualip" :on-blur="onIpBlur"></ip-input> - </el-form-item>--> + <el-form-item label="铏氭嫙/澶栭儴IP" prop="virtualIp"> + <ip-input :ip="ruleForm.virtualIp" :on-blur="onIpBlur"></ip-input> + </el-form-item> <el-form-item style="width:500px"> <el-button type="primary" size="small" @click="submitForm('ruleForm')">淇濆瓨</el-button> </el-form-item> @@ -70,7 +69,7 @@ </el-tabs> <!-- 鏈夐泦缇ょ殑鎯呭喌 --> <div v-if="isHasColony" id="h-alaycluster"> - <el-form :model="ruleForm" ref="ruleForm" label-width="80px"> + <el-form :model="ruleForm" ref="ruleForm" label-width="100px"> <el-form-item label="闆嗙兢鍚嶇О" prop="clustername"> <el-input v-model="ruleForm.clustername" placeholder="鎵嬪姩杈撳叆, 濡傗�滈泦缇鈥�" size="small"></el-input> </el-form-item> @@ -86,9 +85,9 @@ ></el-input> </el-form-item> - <!-- <el-form-item label="铏氭嫙IP" prop="virtualip"> - <ip-input :ip="ruleForm.virtualip" :on-blur="onIpBlur"></ip-input> - </el-form-item>--> + <el-form-item label="铏氭嫙IP" prop="virtualIp"> + <ip-input :ip="ruleForm.virtualIp" :on-blur="onIpBlur"></ip-input> + </el-form-item> <el-form-item style="width:440px;text-align: right;"> <el-button size="small" type="danger" @click="leave">閫�鍑洪泦缇�</el-button> <el-button @@ -101,32 +100,19 @@ </el-form> </div> </el-col> - <el-col :span="10" style="height: 100%;" v-if="members.length !== 0"> + <el-col :span="12" style="height: 100%;" v-if="members.length !== 0"> <serfDiagram ref="diagram" :members="members" + :searchNodes="nodes" :agent="agentName" v-loading="loading" @selected-node="joinNode" + class="nodes-svg" ></serfDiagram> </el-col> </el-row> - <div class="ui-top-view"> - <div class="ui-top-title">婕傜ЩIP</div> - </div> - <el-row> - <el-col :span="12"> - <el-form :model="vrIpForm" ref="vrIpForm" :rules="vrIpRules" style="padding:20px 40px;"> - <el-form-item label="铏氭嫙IP" prop="virtual_ip"> - <ip-input :ip="vrIpForm.virtual_ip" :on-blur="onIpBlur"></ip-input> - <el-switch v-model="vrIpForm.enable" style="margin-left:30px;"></el-switch> - </el-form-item> - <el-form-item style="width:500px"> - <el-button type="primary" size="small" @click="saveForm('vrIpForm')">淇濆瓨</el-button> - </el-form-item> - </el-form> - </el-col> - </el-row> + <div class="ui-top-view"> <div class="ui-top-title">瀛樺偍闆嗙兢绠$悊</div> </div> @@ -178,6 +164,7 @@ </el-tabs> </el-col> </el-row> + </div> </template> @@ -205,7 +192,7 @@ import serfDiagram from "@/components/serfDiagram"; import ipInput from "@/components/subComponents/IPInput"; - +import {isIPv4} from "@/scripts/validate"; export default { components: { serfDiagram, @@ -229,6 +216,7 @@ } }, 1000); }; + return { activeName: "1", sActiveName: "s-first", @@ -240,7 +228,7 @@ ruleForm: { clustername: "", clusterpwd: "", - //virtualip: "" + virtualIp: "" }, vrIpForm: { enable: true, @@ -262,15 +250,15 @@ { required: true, message: "璇疯緭鍏ラ泦缇ゅ悕绉�", trigger: "change" } ], clusterpwd: [{ validator: checkPwd, trigger: "change" }], - // virtualip: [ - // { required: true, message: "璇疯緭鍏ヨ櫄鎷烮P", trigger: "change" } - // ] - }, - vrIpRules: { - virtualip: [ - { required: true, message: "璇疯緭鍏ヨ櫄鎷烮P", trigger: "change" } + virtualIp: [ + { required: true, validator: isIPv4, trigger: "change" } ] }, + // vrIpRules: { + // virtualIp: [ + // { required: true, message: "璇疯緭鍏ヨ櫄鎷烮P", trigger: "change" } + // ] + // }, joinRules: { clusterpwd: [ { required: true, message: "璇疯緭鍏ラ泦缇ゅ瘑鐮�", trigger: "change" }, @@ -285,12 +273,12 @@ loading: false, searchDis: false, agentName: "", - members: [] + members: [], + nodes: [], }; }, mounted() { this.findCluster(); - this.getVrrpInfo(); this.getEsClusterNodes(); }, methods: { @@ -308,7 +296,7 @@ clusterId: this.clusterid, clusterName: this.ruleForm.clustername, password: this.ruleForm.clusterpwd, - //virtualip: this.ruleForm.virtualip + virtualIp: this.ruleForm.virtualIp }; this.createCluster(json).then(() => { this.findCluster(); @@ -319,6 +307,7 @@ } }); }, + saveForm(formName) { this.$refs[formName].validate(valid => { if (valid) { @@ -338,7 +327,8 @@ } }); }, - join(formName) { + + join (formName) { this.$refs[formName].validate(valid => { if (valid) { if (Object.keys(this.currentCluster).length === 0) { @@ -419,6 +409,7 @@ this.stopSearch(); }, 10 * 1000); }, + //鎼滅储闆嗙兢 async getSearchNodes() { let res = await getSearchNodes(); if (res && res.success) { @@ -438,7 +429,8 @@ return element.node_id === i.node_id; }); if (found === undefined) { - this.members.push(i); + //this.members.push(i); + this.nodes.push(i); } }); } @@ -482,9 +474,13 @@ this.clusterid = res.data.clusterId; this.ruleForm.clustername = res.data.clusterName; this.ruleForm.clusterpwd = res.data.clusterpwd - //this.ruleForm.virtualip = res.data.virtualip + this.ruleForm.virtualIp = res.data.virtualIp let list = res.data.nodes.map(i => { + debugger 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; @@ -497,6 +493,7 @@ return obj; }); this.members = this.members.concat(list); + console.log(this.members) } else { this.isHasColony = false; // this.activeName = '1' @@ -558,6 +555,7 @@ }, joinNode(event, node) { + debugger this.currentCluster.cluster_id = node.cluster_id; if (this.activeName === "3") { this.manageForm.clustername = node.clusterName; @@ -612,9 +610,7 @@ this.ruleForm.clusterpwd = uuid.join(""); }, - onIpBlur(ip) { - this.vrIpForm.virtual_ip = ip; - }, + async getEsClusterNodes() { let rsp = await getDevInfo(); let hostIpAddr = ""; @@ -699,8 +695,17 @@ message: rsp.msg }); }) + }, + onIpBlur (ip) { + //this.vrIpForm.virtual_ip = ip; + this.ruleForm.virtualIp = ip; + console.log(this.ruleForm.virtualIp) } - } + + }, + + created () { } + }; </script> <style lang="scss"> @@ -772,4 +777,7 @@ height: 30px; line-height: 30px; } +.nodes-svg{ + background-color: rgba(127, 255, 212, 0.459); +} </style> -- Gitblit v1.8.0