From a827dbadd7dcc86067cb71d36a62abbf3418a91f Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期三, 03 十一月 2021 17:38:26 +0800
Subject: [PATCH] hyj change shuohuang
---
src/pages/systemSettings/views/NetSettings.vue | 293 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 217 insertions(+), 76 deletions(-)
diff --git a/src/pages/systemSettings/views/NetSettings.vue b/src/pages/systemSettings/views/NetSettings.vue
index b2e0eac..4ce99b8 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,6 +315,14 @@
addESNode,
getEsClusterInfo,
} from "@/api/clusterManage";
+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";
@@ -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,6 +392,7 @@
},
],
value: "",
+ netCardValue: "",
};
},
components: {
@@ -397,12 +400,97 @@
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;
@@ -428,12 +567,13 @@
box-sizing: border-box;
.cluster-center {
height: 100%;
- width: 260px;
+ width: 280px;
overflow: auto;
box-sizing: border-box;
flex-shrink: 0;
padding: 10px;
- background-color: lavender;
+ border-right: 5px solid #f8f8f8;
+
.menu-item {
background-color: #f8f8f8;
height: 40px;
@@ -468,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;
@@ -482,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;
@@ -539,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;
@@ -563,7 +704,7 @@
color: #fff;
line-height: 40px;
font-size: 14px;
- margin-top: 20px;
+ margin-top: 30px;
}
}
}
--
Gitblit v1.8.0