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 | 155 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 121 insertions(+), 34 deletions(-) diff --git a/src/views/screen1/itm.vue b/src/views/screen1/itm.vue index 2da3906..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,7 +83,7 @@ </div> </div> </div> - <div class="itm-container container-alert" style="cursor: pointer;margin-top: 3rem" @click="showSwitchInfoTable=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> @@ -94,42 +94,27 @@ </div> </div> </div> - <el-dialog :visible.sync="showSwitchInfoTable" title="新增交换机" append-to-body> + <div class="itm-container container-alert" style="cursor: pointer;margin-top: 1rem" @click="showSwitchBoard"> + <div class="flex1"> + <div class="reg-desc"> + 交换机机柜 + </div> + </div> + </div> + <el-dialog :visible.sync="showSwitchBoardInfoTable" title="交换机清单" append-to-body> <el-table :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"> @@ -147,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> @@ -156,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}, @@ -165,14 +196,70 @@ switchDeviceStatus: {}, switchInfo: {}, }, + mounted(){ + this.getSwitchBord() + this.getAreaCode() + }, data() { return { - showSwitchInfoTable: false, + 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 || []; + }); }, }, }; @@ -227,7 +314,7 @@ border-radius: 0.83rem; padding: 2.5rem; margin-top: 2rem; - height: 53.5rem; + height: 58.5rem; padding-top: 1rem; } @@ -292,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