From 938e49241fdf5a02d5c461a5ceaa11679d712f55 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 25 十一月 2024 15:03:55 +0800
Subject: [PATCH] fix: 从无到有,从有到无

---
 src/views/screen1/itm.vue |  144 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 110 insertions(+), 34 deletions(-)

diff --git a/src/views/screen1/itm.vue b/src/views/screen1/itm.vue
index cebe501..c9893e7 100644
--- a/src/views/screen1/itm.vue
+++ b/src/views/screen1/itm.vue
@@ -48,7 +48,7 @@
               <span class="div2">个</span>
             </div>
             <div class="reg-desc">
-              Online
+              从无到有
             </div>
           </div>
           <div class="flex1 reg-img-service">
@@ -58,7 +58,7 @@
               <span class="div2">个</span>
             </div>
             <div class="reg-desc">
-              Offline
+              从有到无
             </div>
           </div>
         </div>
@@ -83,18 +83,18 @@
           </div>
         </div>
       </div>
-      <div class="itm-container container-alert" style="cursor: pointer;margin-top: 3rem" @click="showSwitchBoardInfoTable=true">
+      <div class="itm-container container-alert" style="cursor: pointer;margin-top: 1rem" @click="showSwitchBoardInfoTable=true">
         <div class="flex1">
           <div class="reg-num flex">
             <span class="div1">{{ switchInfo.switchInfo && switchInfo.switchInfo.length || 0 }}</span>
             <span class="div2">个</span>
           </div>
           <div class="reg-desc">
-            交换机清单
+            新增交换机
           </div>
         </div>
       </div>
-      <div class="itm-container container-alert" style="cursor: pointer;margin-top: 3rem" @click="showSwitchBoard">
+      <div class="itm-container container-alert" style="cursor: pointer;margin-top: 1rem" @click="showSwitchBoard">
         <div class="flex1">
           <div class="reg-desc">
             交换机机柜
@@ -106,37 +106,15 @@
             :data="switchInfo.lackSwitchInfo||[]"
             border
             style="width: 100%;max-height: 650px;overflow-y: scroll">
-<!--          <el-table-column-->
-<!--              fixed-->
-<!--              label="index"-->
-<!--              width="80"-->
-<!--              type="index">-->
-<!--          </el-table-column>-->
-<!--          <el-table-column-->
-<!--              prop="assetName"-->
-<!--              label="asset name">-->
-<!--          </el-table-column>-->
-<!--          <el-table-column-->
-<!--              prop="clentSiteCode"-->
-<!--              label="clent site code"-->
-<!--          >-->
-<!--          </el-table-column>-->
-<!--          <el-table-column-->
-<!--              prop="createdTime"-->
-<!--              label="created time">-->
-<!--          </el-table-column>-->
-<!--          <el-table-column-->
-<!--              prop="dateTimeConnected"-->
-<!--              label="connected datetime">-->
-<!--          </el-table-column>-->
-          <el-table-column
-              prop="deviceName"
+         
+            <el-table-column
+              prop="deviceNameDNS"
               label="device name">
           </el-table-column>
-          <el-table-column
+          <!-- <el-table-column
               prop="deviceNameDNS"
               label="DNS">
-          </el-table-column>
+          </el-table-column> -->
           <el-table-column
               prop="ipAddress"
               label="ip address">
@@ -154,8 +132,53 @@
               prop="switchType"
               label="switch type">
           </el-table-column>
+
+          <el-table-column
+              prop="cabinetName"
+              label="Cabinet Name">
+              <template slot-scope="scope">
+                  <el-select v-model="scope.row.cabinetName" placeholder="请选择机柜" filterable clearable>
+                    <el-option
+                      v-for="item in cabinetList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                      >
+                    </el-option>
+                  </el-select>
+              </template>
+          </el-table-column>
+     
+          <el-table-column
+              prop="areaCode"
+              label="Area Code">
+              <template slot-scope="scope">
+                  <el-select v-model="scope.row.areaCode" placeholder="请选择区域" filterable clearable>
+                    <el-option
+                      v-for="item in areaList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                      >
+                    </el-option>
+                  </el-select>
+              </template>
+          </el-table-column>
+          
+          <el-table-column
+              label="Operator">
+              <template slot-scope="scope">
+                <el-button
+                size="mini"
+                type="primary"
+               
+                @click="handleConfirm(scope.row)">确认</el-button>
+            </template>
+          </el-table-column>
+
         </el-table>
       </el-dialog>
+
     </div>
     <div v-if="!chartclose" @click="closeself" class="chart-close"></div>
   </div>
@@ -163,6 +186,7 @@
 <script>
 import itmEqu from "./components/chart-itm";
 import itmLine from "./components/chart-itm-line";
+import {getSwitchBord,getAreaCode,AssignSwitch} from "@/api/area";
 
 export default {
   components: {itmEqu, itmLine},
@@ -172,19 +196,71 @@
     switchDeviceStatus: {},
     switchInfo: {},
   },
+  mounted(){
+    this.getSwitchBord()
+    this.getAreaCode()
+  },
   data() {
     return {
       showSwitchBoardInfoTable: false,
+      cabinetList:[],
+      areaList:[],
     }
   },
   methods: {
+    async handleConfirm(row) {
+      // 检查必填项
+      if (!row.cabinetName || !row.areaCode) {
+        this.$message.error('交换机柜名和区域代码不能为空');
+        return;
+      }
+
+      let confirmRes= await this.$confirm('确认提交吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+
+      if(confirmRes=="confirm"){
+        let deviceInfo = {
+          deviceInfo: {
+            cabinetName: row.cabinetName,
+            switchName: row.deviceNameDNS,
+            port: row.nasPort,
+            macAddress: row.macAddress,
+            ipAddress: row.ipAddress,
+            areaCode: row.areaCode,
+          }
+        };
+
+        let res= await AssignSwitch(deviceInfo)
+
+        if(res.isSuccess){
+          this.showSwitchBoardInfoTable=false
+          this.$emit("refresh", "")
+        }
+       
+      }
+    },
     closeself() {
       this.$emit("show", false);
     },
     showSwitchBoard(){
       this.$router.push({path: "/switch-board"});
       // this.$router.push({path: "/area", query: {code: '01'}});
-    }
+    },
+
+    getSwitchBord(){
+        getSwitchBord().then((res) => {
+        this.cabinetList = res.cabinetList || [];
+      });
+    },
+
+    getAreaCode(){
+      getAreaCode().then((res) => {
+        this.areaList = res.cabinetList || [];
+      });
+    },
   },
 };
 </script>
@@ -303,7 +379,7 @@
   }
 
   .itm-container {
-    padding: 2rem;
+    padding: 1rem;
     margin-top: 2rem;
     background: #e9f4fd;
     box-shadow: 0.5rem 0.33rem 2rem 0rem rgba(198, 212, 228, 0.38),

--
Gitblit v1.9.3