From f98f5deaaa6c5a9cf4023e2d2dd1c445980e5a8f Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期六, 10 十月 2020 20:28:30 +0800
Subject: [PATCH] 集群管理,应用中心离线安装更新

---
 src/pages/settings/components/ClusterManagement.vue |  105 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 62 insertions(+), 43 deletions(-)

diff --git a/src/pages/settings/components/ClusterManagement.vue b/src/pages/settings/components/ClusterManagement.vue
index cb07345..77fa912 100644
--- a/src/pages/settings/components/ClusterManagement.vue
+++ b/src/pages/settings/components/ClusterManagement.vue
@@ -4,7 +4,7 @@
       <div class="ui-top-title">瑙嗛鍒嗘瀽闆嗙兢绠$悊</div>
     </div>
     <el-row>
-      <el-col :span="12">
+      <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">
@@ -15,25 +15,30 @@
                 <el-input v-model="clusterid" placeholder="涓嶅厑璁歌緭鍏�,淇濆瓨鍚庡洖鏄�" disabled size="small"></el-input>
               </el-form-item>
               <el-form-item label="闆嗙兢瀵嗙爜" prop="clusterpwd" style="width:500px">
-                <el-input v-model="ruleForm.clusterpwd" placeholder="璇疯緭鍏�6-12浣嶅瘑鐮�,鎴栫偣鍑荤敓鎴�" size="small">
+                <el-input v-model="ruleForm.clusterpwd" placeholder="璇疯緭鍏�6浣嶅瘑鐮�,鎴栫偣鍑荤敓鎴�" size="small">
                   <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>-->
               <el-form-item style="width:500px">
                 <el-button type="primary" size="small" @click="submitForm('ruleForm')">淇濆瓨</el-button>
               </el-form-item>
             </el-form>
           </el-tab-pane>
-          
+
           <!-- 鍔犲叆宸叉湁闆嗙兢 -->
-          <el-tab-pane label="鍔犲叆宸叉湁闆嗙兢" name="3" :disabled="isHasColony">
+          <el-tab-pane label="鍔犲叆宸叉湁闆嗙兢" name="2" :disabled="isHasColony">
             <el-form label-width="80px" :model="joinForm" :rules="joinRules" ref="joinForm">
               <el-form-item label="IP鍦板潃" style="width:440px">
-                <el-input v-model="joinForm.clusterip" placeholder="璇疯緭鍏ラ泦缇ゅ唴浠绘剰IP鍦板潃" size="small">
+                <el-input
+                  v-model="joinForm.clusterip"
+                  placeholder="璇疯緭鍏ラ泦缇ゅ唴浠绘剰IP鍦板潃"
+                  size="small"
+                  autocomplete="new-password"
+                >
                   <el-button
                     type="text"
                     slot="suffix"
@@ -54,6 +59,7 @@
                   placeholder="璇疯緭鍏ラ泦缇ゅ瘑鐮�"
                   show-password
                   size="small"
+                  autocomplete="new-password"
                 ></el-input>
               </el-form-item>
               <el-form-item style="width:440px">
@@ -75,14 +81,14 @@
               <el-input
                 v-model="ruleForm.clusterpwd"
                 disabled
-                placeholder="璇疯緭鍏�6-12浣嶅瘑鐮�,鎴栫偣鍑荤敓鎴�"
+                placeholder="璇疯緭鍏�6浣嶅瘑鐮�,鎴栫偣鍑荤敓鎴�"
                 size="small"
               ></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>-->
             <el-form-item style="width:440px;text-align: right;">
               <el-button size="small" type="danger" @click="leave">閫�鍑洪泦缇�</el-button>
               <el-button
@@ -95,7 +101,7 @@
           </el-form>
         </div>
       </el-col>
-      <el-col :span="14" style="height: 100%;" v-if="members.length !== 0">
+      <el-col :span="10" style="height: 100%;" v-if="members.length !== 0">
         <serfDiagram
           ref="diagram"
           :members="members"
@@ -134,7 +140,12 @@
           <el-tab-pane label="鍔犲叆宸叉湁闆嗙兢" name="s-second">
             <el-form label-width="80px">
               <el-form-item label="IP鍦板潃" style="text-align: left;">
-                <el-input v-model="clusterip2" placeholder="璇疯緭鍏ラ泦缇ゅ唴浠绘剰IP鍦板潃" size="small">
+                <el-input
+                  v-model="clusterip2"
+                  placeholder="璇疯緭鍏ラ泦缇ゅ唴浠绘剰IP鍦板潃"
+                  size="small"
+                  autocomplete="off"
+                >
                   <el-button
                     type="text"
                     slot="suffix"
@@ -188,14 +199,19 @@
     serfDiagram,
     ipInput
   },
-  data() {
+  data () {
     const checkPwd = (rule, value, callback) => {
       if (!value) {
         return callback(new Error("瀵嗙爜涓嶈兘涓虹┖"));
       }
       setTimeout(() => {
-        if (value.length > 16 || value.length < 6) {
-          callback(new Error("瀵嗙爜搴斾负6-16浣�!"));
+        // if (value.length > 16 || value.length < 6) {
+        //   callback(new Error("瀵嗙爜搴斾负6-16浣�!"));
+        // } else {
+        //   callback();
+        // }
+        if (value.length != 6) {
+          callback(new Error("瀵嗙爜搴斾负6浣�!"));
         } else {
           callback();
         }
@@ -280,16 +296,16 @@
   },
   watch: {},
   methods: {
-    cleanValue() {
+    cleanValue () {
       this.members = [];
     },
-    sHandleClick(tab, event) {
+    sHandleClick (tab, event) {
       console.log(tab, event);
     },
-    submitForm(formName) {
+    submitForm (formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
-          alert("submit!");
+          //alert("submit!");
           let json = {
             clusterId: this.clusterid,
             clusterName: this.ruleForm.clustername,
@@ -305,7 +321,7 @@
         }
       });
     },
-    saveForm(formName) {
+    saveForm (formName) {
       debugger
       this.$refs[formName].validate(valid => {
         if (valid) {
@@ -314,7 +330,7 @@
             enable: this.vrIpForm.enable,
             serve_port: this.vrIpForm.serve_port,
             virtual_ip: this.vrIpForm.virtual_ip,
-            
+
           };
           setVrrp(json).then(() => {
             this.getVrrpInfo();
@@ -325,7 +341,7 @@
         }
       });
     },
-    join(formName) {
+    join (formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
           if (Object.keys(this.currentCluster).length === 0) {
@@ -353,7 +369,7 @@
         }
       });
     },
-    async createColony(json) {
+    async createColony (json) {
       let res = await createColony(json);
       console.log(res, "鍒涘缓闆嗙兢");
       this.$notify({
@@ -362,15 +378,16 @@
         type: res.success ? "success" : "error"
       });
     },
-    async randomPwd() {
+    async randomPwd () {
       let res = await randomPwd();
       if (res && res.success) {
         this.ruleForm.clusterpwd = res.data;
       }
     },
-    async searchColony() {
+    async searchColony () {
       this.$refs["joinForm"].validate(valid => {
         if (valid) {
+          this.members = [];
           let json = {
             password: this.joinForm.clusterpwd,
             ip: this.joinForm.clusterip
@@ -393,7 +410,7 @@
         }
       });
     },
-    async search(json) {
+    async search (json) {
       let res = await search(json);
       if (res && res.success) {
         console.log(res, "鎼滅储闆嗙兢");
@@ -405,7 +422,7 @@
         this.stopSearch();
       }, 10 * 1000);
     },
-    async getSearchNodes() {
+    async getSearchNodes () {
       let res = await getSearchNodes();
       if (res && res.success) {
         let list = res.data.map(i => {
@@ -429,12 +446,12 @@
         });
       }
     },
-    setSchedule() {
+    setSchedule () {
       this.scheduleId = window.setInterval(() => {
         this.getSearchNodes();
       }, 1000);
     },
-    async stopSearch() {
+    async stopSearch () {
       if (!this.loading) {
         return true;
       }
@@ -459,7 +476,7 @@
         // },2000)
       })
     },
-    async findCluster() {
+    async findCluster () {
       let res = await findCluster();
       if (res && res.success) {
         if (res.data && res.data.clusterId) {
@@ -489,17 +506,17 @@
         }
       }
     },
-    getVrrpInfo(){
-      getVrrp().then(res=>{
-        if(res.success){
+    getVrrpInfo () {
+      getVrrp().then(res => {
+        if (res.success) {
           this.vrIpForm.virtual_ip = res.data.virtual_ip;
           this.vrIpForm.enable = res.data.enable;
         }
-      }).catch(e=>{
+      }).catch(e => {
         console.log(e)
       })
     },
-    async updateClusterName() {
+    async updateClusterName () {
       let res = await updateClusterName({
         clusterName: this.mangeForm.colonyName
       });
@@ -509,7 +526,7 @@
         type: res.success ? "success" : "error"
       });
     },
-    async joinCluster(json) {
+    async joinCluster (json) {
       let res = await joinCluster(json);
       if (res.success) {
         this.members = []
@@ -520,7 +537,7 @@
         type: res.success ? "success" : "error"
       });
     },
-    leave() {
+    leave () {
       this.$confirm(`纭畾閫�鍑洪泦缇ゅ悧?`, {
         center: true,
         cancelButtonClass: "comfirm-class-cancle",
@@ -537,12 +554,14 @@
           this.ruleForm.clusterpwd = ""
           this.clusterid = "";
           this.isHasColony = false;
-          this.activeName = "1"
+          this.activeName = "1";
+          this.members = [];
         }
       }).catch(() => { });
-      
+
     },
-    joinNode(event, node) {
+    joinNode (event, node) {
+      debugger
       this.currentCluster.cluster_id = node.cluster_id;
       if (this.activeName === "3") {
         this.manageForm.clustername = node.clusterName;
@@ -586,26 +605,26 @@
         });
       }
     },
-    generatePassword() {
+    generatePassword () {
       var chars =
         "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
       var uuid = [];
 
-      for (let i = 0; i < 16; i++) {
+      for (let i = 0; i < 6; i++) {
         uuid[i] = chars[0 | (Math.random() * 50)];
       }
 
       this.ruleForm.clusterpwd = uuid.join("");
     },
-    onIpBlur(ip) {
+    onIpBlur (ip) {
       this.vrIpForm.virtual_ip = ip;
     }
   },
-  mounted() {
+  mounted () {
     this.findCluster();
     this.getVrrpInfo();
   },
-  created() { }
+  created () { }
 };
 </script>
 <style lang="scss">

--
Gitblit v1.8.0