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