From ccee429d379e0108b7445f72ade8d97c110a6fb3 Mon Sep 17 00:00:00 2001 From: ZZJ <zzjdsg2300@163.com> Date: 星期二, 09 十一月 2021 18:01:59 +0800 Subject: [PATCH] 问题修复 --- src/pages/systemSettings/views/NetSettings.vue | 296 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 218 insertions(+), 78 deletions(-) diff --git a/src/pages/systemSettings/views/NetSettings.vue b/src/pages/systemSettings/views/NetSettings.vue index 246006a..c7444eb 100644 --- a/src/pages/systemSettings/views/NetSettings.vue +++ b/src/pages/systemSettings/views/NetSettings.vue @@ -2,21 +2,19 @@ <div class="all"> <div class="cluster-content"> <div class="cluster-center" ref="left"> - <div class="menu-item" @click="openRight('net')"> - <div><span class="icon iconfont"></span>缃戠粶璁剧疆</div> - <div class="status">宸茶繛鎺�</div> - </div> - <div class="menu-item" @click="openRight('wifi')"> - <div><span class="icon iconfont"></span>鏃犵嚎缃戠粶</div> - <div class="status">宸茶繛鎺�</div> - </div> - <div class="menu-item" @click="openRight('wire')"> - <div><span class="icon iconfont"></span>鏈夌嚎缃戠粶</div> + <div + class="menu-item" + v-for="(item, i) in tabList" + :key="i" + @click="openRight(item, i)" + ref="leftbar" + > + <div><span class="icon iconfont"></span>{{ item.name }}</div> <div class="status">宸茶繛鎺�</div> </div> </div> <div class="cluster-right"> - <div class="net-set" v-if="activePage == 'net'"> + <div class="net-set" v-if="activePage == '缃戠粶璁剧疆'"> <div class="title">缃戠粶璁剧疆</div> <el-form :model="ruleForm" @@ -24,7 +22,6 @@ ref="joinForm" class="join-form" label-width="150px" - v-loading="joinLoading" > <el-form-item label="璁惧鍚嶇О" prop="deviceName"> <el-input @@ -41,11 +38,11 @@ size="small" ></el-input> </el-form-item> - <div class="save-btn">淇濆瓨</div> </el-form> + <div class="save-btn" @click="saveServerName">淇濆瓨</div> </div> - <div class="wifi" v-if="activePage == 'wifi' && !inWifiDetail"> + <div class="wifi" v-if="activePage == '鏃犵嚎缃戠粶' && !inWifiDetail"> <switchBar :barName="`鏃犵嚎缃戝崱`" @switchChange="wifiControl" @@ -62,14 +59,17 @@ <span class="icon iconfont"></span> <span class="icon iconfont" - style="margin-left: 10px" + style="margin-left: 10px; cursor: pointer" @click="checkWifi(item)" ></span > </div> </div> </div> - <div class="wifi-detail" v-if="activePage == 'wifi' && inWifiDetail"> + <div + class="wifi-detail" + v-if="activePage == '鏃犵嚎缃戠粶' && inWifiDetail" + > <div class="btns"> <div class="left">鍒犻櫎</div> <div class="right">鏂紑杩炴帴</div> @@ -84,7 +84,6 @@ class="join-form" label-width="150px" > - <!-- v-loading="joinLoading" --> <el-form-item label="鍚嶇О" prop="name"> <div class="wifi-name">{{ 12123 }}</div> </el-form-item> @@ -105,23 +104,6 @@ :value="isHighClass" ></switchBar> <div class="title">IPV4</div> - - <!-- <el-form - :model="ipv4Form" - :rules="ipv4FormRules" - ref="ipv4Form" - class="join-form" - label-width="150px" - > - <el-form-item label="瀵嗙爜" prop="password"> - <el-input - v-model="wifiForm.password" - placeholder="璇疯緭鍏ュ瘑鐮�" - size="small" - show-password - ></el-input> - </el-form-item> - </el-form> --> <el-form :model="ipv4Form" @@ -233,45 +215,51 @@ </el-form> <div class="btns"> - <div class="left">鍙栨秷</div> + <div class="left" @click="inWifiDetail = false">鍙栨秷</div> <div class="right">淇濆瓨</div> </div> </div> - <div class="wire" v-if="activePage == 'wire' && !inWireDetail"> + <div class="wire" v-if="activePage == '鏈夌嚎缃戠粶' && !inWireDetail"> <div class="wire-bar" v-for="(item, i) in wireArr" :key="i" - @click="checkWire(item)" + @click.self="checkWire(item)" > - <div class="name">{{ item.name }}</div> + <div class="name">{{ "缃戠粶" + item.index }}</div> <div class="right"> <span class="icon iconfont"></span> <el-switch - v-model="value" + v-model="item.active" active-color="rgba(61, 104, 225, 1)" - @change="switchChange" + @change="switchNetCard" > </el-switch> </div> + + + </div> </div> - <div class="wire-detail" v-if="activePage == 'wire' && inWireDetail"> - <div class="title">缃戠粶璁剧疆</div> + <div + class="wire-detail" + v-if="activePage == '鏈夌嚎缃戠粶' && inWireDetail" + > + <div class="title">缃戠粶璁剧疆</div> <el-form :model="wireForm" :rules="wireFormRules" ref="wireForm" label-width="150px" > - <el-form-item label="缃戠粶鍚嶇О" prop="name"> - <div class="wifi-name">{{ 12123 }}</div> + <el-form-item label="缃戠粶鍚嶇О" prop="name"> + <div class="wifi-name">{{ "缃戠粶" + activeWireItem.index }}</div> </el-form-item> - <el-form-item label="缃戝崱" prop="name"> - <div class="wifi-name">{{ 12123 }}</div> + <el-form-item label="缃戝崱" prop="ifname"> + <div class="wifi-name">{{ activeWireItem.name }}</div> </el-form-item> <el-form-item label="IP" prop="ip"> <ip-input @@ -288,23 +276,22 @@ <el-form-item label="缃戝叧" prop="gateway"> <ip-input - :ip="ipv4Form.gateway" - @on-blur="ipv4Form.gateway = arguments[0]" + :ip="wireForm.gateway" + @on-blur="wireForm.gateway = arguments[0]" ></ip-input> </el-form-item> - <el-form-item label="棣栭�塂NS" prop="dns"> + <el-form-item label="DNS" prop="dns"> <ip-input - :ip="ipv4Form.dns1" - @on-blur="ipv4Form.dns1 = arguments[0]" - ></ip-input> - </el-form-item> - <el-form-item label="澶囩敤DNS" prop="dns"> - <ip-input - :ip="ipv4Form.dns2" - @on-blur="ipv4Form.dns2 = arguments[0]" + :ip="wireForm.dns" + @on-blur="wireForm.dns = arguments[0]" ></ip-input> </el-form-item> </el-form> + + <div class="btns"> + <div class="cancel" @click="cancelSaveWire">鍙栨秷</div> + <div class="ok" @click="saveWire">淇濆瓨</div> + </div> </div> </div> </div> @@ -328,7 +315,15 @@ addESNode, getEsClusterInfo, } from "@/api/clusterManage"; -import cloudNode from "../components/CloudNode"; +import { + setServerName, + getWireList, + setNetWorkCard, + getNetWorkCardInfo, + getDevInfo, +} from "@/api/system"; + +// import cloudNode from "../components/CloudNode"; import ipInput from "@/components/subComponents/IPInput"; import { isIPv4 } from "@/scripts/validate"; import switchBar from "../components/switchBar"; @@ -358,18 +353,20 @@ name: "", password: "", }, - wireArr: [{ name: "鏈夌嚎缃戠粶1" }, { name: "鏈夌嚎缃戠粶2" }], + wireArr: [], inWifiDetail: false, wifiList: [{ name: "鏃犵嚎缃戠粶1" }, { name: "鏃犵嚎缃戠粶2" }], isOpenWifi: false, inWireDetail: false, - wireForm:{ - + wireForm: { + dns: "", + subMask: "", + gateway: "", + ip: "", }, - wireFormRules:{ - - }, - activePage: "net", + wireFormRules: {}, + activePage: "缃戠粶璁剧疆", + activeWireItem: {}, rules: { deviceName: [ { required: true, message: "璇疯緭鍏ヨ澶囧悕绉�", trigger: "change" }, @@ -378,6 +375,11 @@ ipv4Form: {}, ipv6Form: {}, ipv4FormRules: {}, + tabList: [ + { name: "缃戠粶璁剧疆" }, + { name: "鏃犵嚎缃戠粶" }, + { name: "鏈夌嚎缃戠粶" }, + ], ipv6FormRules: {}, options: [ { @@ -390,19 +392,105 @@ }, ], value: "", + netCardValue: "", }; }, components: { - cloudNode, + // cloudNode, ipInput, switchBar, }, - mounted() {}, + mounted() { + this.getCurServer(); + this.fetchWireList(); + }, beforeDestroy() {}, props: ["barName"], methods: { - openRight(typ) { - this.activePage = typ; + // parseFlags(flags) { + // let arr = flags.split("|"); + // if (arr.length) { + // return arr[0] == "up"; + // } + // return false; + // }, + getCurServer() { + getDevInfo().then((res) => { + this.ruleForm.deviceName = res.data.server_name; + this.ruleForm.port = res.data.server_port; + }); + }, + fetchWireList() { + getWireList().then((res) => { + if (res && res.success) { + this.wireArr = res.data + .filter((x) => x.wireless == false) + .map((itm) => { + let arr = itm.flags.split("|"); + let f = false; + if (arr.length) { + f = arr[0] == "up"; + } + return { + flags: itm.flags, + index: itm.index, + mtu:itm.mtu, + name: itm.name, + wireless: itm.wireless, + active:f + } + }); + } + }); + }, + cancelSaveWire() { + this.inWireDetail = false; + this.wireForm.ip = ""; + this.wireForm.gateway = ""; + this.wireForm.dns = ""; + this.wireForm.subMask = ""; + }, + saveServerName() { + setServerName({ + server_name: this.ruleForm.deviceName, + server_port: this.ruleForm.port, + }).then((res) => { + console.log(res); + if (res && res.success) { + this.$message.success(res.data); + } + }); + }, + openRight(item, i) { + this.activePage = item.name; + if (i == 1) { + this.inWifiDetail = false; + } + this.$refs["leftbar"].forEach((x) => { + x.style.backgroundColor = "rgba(248, 248, 248, 1)"; + x.style.color = "#333"; + }); + this.$refs["leftbar"][i].style.backgroundColor = "rgb(61, 104, 225)"; + this.$refs["leftbar"][i].style.color = "white"; + }, + saveWire(ifname) { + let data = { + ip: this.wireForm.ip, + gateway: this.wireForm.gateway, + dns: this.wireForm.dns, + subMask: this.wireForm.subMask, + ifname: this.activeWireItem.name, + }; + setNetWorkCard(data).then( + (res) => { + if (res && res.success) { + this.$message.success(res.data); + } + }, + (err) => { + this.$message.error("淇濆瓨澶辫触锛�" + err.msg); + } + ); }, wifiControl(val) {}, checkWifi() { @@ -410,6 +498,22 @@ }, checkWire(item) { this.inWireDetail = true; + this.activeWireItem = item; + getNetWorkCardInfo({ + ifname: item.name, + }).then( + (res) => { + if (res && res.success) { + this.wireForm.ip = res.data.ip; + this.wireForm.gateway = res.data.gateway; + this.wireForm.dns = res.data.dns; + this.wireForm.subMask = res.data.subMask; + } + }, + (err) => { + this.$message.error("鏌ユ壘涓嶅埌鏁版嵁: " + err.msg); + } + ); }, }, }; @@ -418,7 +522,42 @@ .all { width: 100%; } - +.wire-detail { + .btns { + display: flex; + justify-content: space-between; + .cancel { + background-color: rgba(240, 240, 240, 1); + height: 40px; + line-height: 40px; + width: 48%; + border-radius: 10px; + } + .ok { + background-color: rgba(61, 104, 225, 1); + height: 40px; + line-height: 40px; + width: 48%; + color: #fff; + border-radius: 10px; + } + } +} +.net-set { + .title { + font-size: 16px; + margin-bottom: 12px; + } + .el-input--small .el-input__inner { + height: 35px; + line-height: 35px; + background-color: rgba(240, 240, 240, 1); + border: none; + } + .el-input__inner::placeholder { + color: rgba(134, 134, 134, 1); + } +} .cluster-content { height: 100%; display: flex; @@ -432,9 +571,9 @@ overflow: auto; box-sizing: border-box; flex-shrink: 0; - padding: 10px; border-right: 5px solid #f8f8f8; + padding: 10px; + border-right: 5px solid #f8f8f8; - // background-color: lavender; .menu-item { background-color: #f8f8f8; height: 40px; @@ -469,9 +608,9 @@ } .el-form-item { margin-bottom: 10px; - height: 50px; + height: 54px; + padding: 6px 20px; background: #f8f8f8; - padding: 4px 20px; -webkit-box-sizing: border-box; box-sizing: border-box; border-radius: 10px; @@ -483,7 +622,7 @@ .el-form-item__content { line-height: 40px; position: relative; - font-size: 14px; + font-size: 15px; } .ip-input-container { max-width: none !important; @@ -540,12 +679,13 @@ .wire { .wire-bar { height: 50px; - background-color: aliceblue; + background-color: #f8f8f8; display: flex; justify-content: space-between; + align-items: center; box-sizing: border-box; padding: 0 20px; - align-items: center; + margin-bottom: 10px; } .wifi-name { height: 40px; @@ -564,7 +704,7 @@ color: #fff; line-height: 40px; font-size: 14px; - margin-top: 20px; + margin-top: 30px; } } } -- Gitblit v1.8.0