From c7d180dfdd4c2910c771e9a61b0746a41179a414 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 26 十一月 2024 15:48:34 +0800
Subject: [PATCH] fix 1126

---
 src/components/equ-add-form.vue |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/components/equ-add-form.vue b/src/components/equ-add-form.vue
index 250f5b1..ff12890 100644
--- a/src/components/equ-add-form.vue
+++ b/src/components/equ-add-form.vue
@@ -20,7 +20,8 @@
             class="value select"
             placeholder="请选择交换机"
             v-model="name"
-            clearable filterable 
+            clearable filterable
+            :disabled="nameDisabled"
           >
             <option disabled selected value >请选择交换机</option>
             <option  v-for="item in switchList"
@@ -44,7 +45,8 @@
             class="value select"
             placeholder="请选择交换机柜"
             v-model="cabinetName"
-            clearable filterable 
+            clearable filterable
+            :disabled="cabinetNameDisabled"
           >
             <option disabled selected value >请选择交换机柜</option>
             <option  v-for="item in cabinetList"
@@ -99,6 +101,7 @@
             placeholder="请选择厂区"
             disabled clearable filterable
             v-model="selectcode"
+            :disabled="areaCodeDisabled"
           >
             <!-- @change="updateDeviceList" -->
             <option disabled selected value>- 请选择厂区</option>
@@ -171,6 +174,9 @@
       // selectswitchindex: "",
       cabinetList:[],
       switchList:[],
+      nameDisabled: false,
+      cabinetNameDisabled: false,
+      areaCodeDisabled: false,
     };
   },
   mounted() {
@@ -216,6 +222,10 @@
     },
     async submit() {
       //todo 提交设备
+      if (!this.isValidIP(this.ipAddress)) {
+        this.$message.warning("请输入有效的IP地址");
+        return;
+      }
       if (!this.name || !this.selectcode || !this.cabinetName || !this.networkPort) {
         this.$message.warning("数据未填写完整");
         return;
@@ -262,6 +272,7 @@
         this.$message.success("创建成功");
         this.open = false;
         this.$emit("update", {});
+        this.$emit("update-server-info", this.code,this.name);
       }
     },
     openform(locInfo = {}) {
@@ -280,7 +291,8 @@
         this.open = !this.open;
       }
     },
-    openConfigform(code, cabinetName) {
+    openConfigform(code, switchName,cabinetName,config) {
+      console.log('openConfigform',code,switchName,cabinetName);
       if (this.open) {
         this.open = !this.open;
       } else {
@@ -288,14 +300,23 @@
         this.locInfo =  {};
         this.selectcode = code;
         console.log("this.locInfo", this.locInfo);
-        this.name = cabinetName;
+        this.name = switchName;
+        this.cabinetName = cabinetName;
         this.port = this.locInfo.port || "";
         this.networkPort = this.locInfo.name || "";
         this.macAddress = this.locInfo.macAddress || "";
         this.ipAddress = this.locInfo.ipAddress || "";
-
         this.open = !this.open;
       }
+      if (config === 1) {
+        this.nameDisabled = true; // 将nameDisabled设置为禁用
+        this.cabinetNameDisabled = true; // 将cabinetName设置为禁用
+        this.areaCodeDisabled = true; // 将areaCode设置为不禁用
+      }
+    },
+    isValidIP(ip) {
+      const regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
+      return regex.test(ip);
     },
   },
   watch: {

--
Gitblit v1.9.3