From feaf0a9778879ef211c5587a513ba4cbdabb52d0 Mon Sep 17 00:00:00 2001 From: ZZJ <10913410+zzj2100@user.noreply.gitee.com> Date: 星期四, 23 六月 2022 17:42:58 +0800 Subject: [PATCH] bug修复 --- src/pages/settings/views/NetSettings.vue | 154 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 133 insertions(+), 21 deletions(-) diff --git a/src/pages/settings/views/NetSettings.vue b/src/pages/settings/views/NetSettings.vue index 93686c5..a318da7 100644 --- a/src/pages/settings/views/NetSettings.vue +++ b/src/pages/settings/views/NetSettings.vue @@ -17,7 +17,7 @@ <!-- <span v-if="showStatus && i == 2" class="status">宸茶繛鎺�</span> --> </div> </div> - <div class="net-right"> + <div class="net-right" v-loading="configLoading"> <div class="net-set" v-if="activePage == 0"> <div class="title">缃戠粶璁剧疆</div> <el-form @@ -382,6 +382,8 @@ import LoraGateway from "../components/LoraGateway"; import MqttGateway from "../components/MqttGateway"; +import { isIPv4 } from "@/scripts/validate"; + export default { components: { ipInput, @@ -427,7 +429,43 @@ gateway: "", ip: "", }, - wireFormRules: {}, + originalConfig: {}, + wireFormRules: { + ip: [ + { + required: true, + message: "璇疯緭鍏P鍦板潃", + trigger: "change", + }, + { validator: isIPv4, trigger: "change" }, + ], + + gateway: [ + { + required: true, + message: "璇疯緭鍏ョ綉鍏�", + trigger: "change", + }, + { validator: isIPv4, trigger: "change" }, + ], + dns: [ + { + required: true, + message: "璇疯緭鍏ns鍦板潃", + trigger: "change", + }, + { validator: isIPv4, trigger: "change" }, + ], + + subMask: [ + { + required: true, + message: "璇疯緭鍏ュ瓙缃戞帺鐮�", + trigger: "change", + }, + { validator: isIPv4, trigger: "change" }, + ], + }, activePage: 0, activeWireItem: {}, rules: { @@ -460,6 +498,7 @@ value: "", IPV4_hid: false, IPV6_hid: false, + configLoading: false, }; }, mounted() { @@ -523,6 +562,7 @@ this.wireForm.gateway = ""; this.wireForm.dns = ""; this.wireForm.subMask = ""; + this.originalConfig = this.wireForm; }, saveServerName() { setServerName({ @@ -546,23 +586,75 @@ this.activePage = i; }, 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); + this.$refs["wireForm"].validate((valid) => { + if (valid) { + let data = { + ip: this.wireForm.ip, + gateway: this.wireForm.gateway, + dns: this.wireForm.dns, + subMask: this.wireForm.subMask, + ifname: this.activeWireItem.name, + }; + + let newUri = + location.protocol + + "//" + + data.ip + + (location.port == 80 ? "" : ":" + location.port); + + this.$confirm("纭闇�瑕佷慨鏀规湇鍔″櫒閰嶇疆鍚楋紵", { + center: true, + cancelButtonClass: "comfirm-class-cancle", + confirmButtonClass: "comfirm-class-sure", + }) + .then(() => { + this.configLoading = true; + if (this.wireForm.ip !== this.originalConfig.ip) { + this.configLoading = false; + var changeIPTimer = setTimeout(() => { + this.$alert( + '<strong>鎮ㄥ凡淇敼浜嗘湇鍔″櫒ip, 璇烽噸鏂扮櫥褰�</strong><a target="_parent" href="' + + newUri + + '"> ' + + newUri + + "<a/>", + "鎻愮ず", + { + dangerouslyUseHTMLString: true, + customClass: "noticeBox", + } + ); + }, 10000); + } + + setNetWorkCard(data) + .then((rsp) => { + this.configLoading = false; + if (rsp && rsp.success) { + this.$notify({ + type: "success", + message: "鏈嶅姟鍣ㄩ厤缃垚鍔�", + }); + } + }) + .catch((err) => { + clearTimeout(changeIPTimer); + this.configLoading = false; + this.$notify({ + type: "error", + message: "淇濆瓨澶辫触", + }); + }); + this.$message({ + message: "鎿嶄綔瀹屾垚,璇风◢鍚�", + type: "success", + }); + }) + .catch((err) => {}); + } else { + return false; } - ); + }); }, wifiControl(val) {}, checkWifi() { @@ -580,6 +672,7 @@ this.wireForm.gateway = res.data.gateway; this.wireForm.dns = res.data.dns; this.wireForm.subMask = res.data.subMask; + this.originalConfig = JSON.parse(JSON.stringify(this.wireForm)); } }, (err) => { @@ -596,6 +689,7 @@ confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning", + customClass: "confirmBox", }).then(() => { this.openWireDetail(item); }); @@ -772,7 +866,7 @@ width: 100%; } .el-form-item { - margin-bottom: 4px; + margin-bottom: 14px; } .el-form-item__content { line-height: 48px; @@ -1002,12 +1096,15 @@ align-items: center; .el-switch__core { height: 14px; - background-color: var(--colorCard) !important; - border-color: var(--colorCard) !important; } .el-switch.is-checked .el-switch__core::after { left: 100%; margin-left: -12px; + } + + .el-switch.is-checked .el-switch__core { + background-color: var(--colorCard) !important; + border-color: var(--colorCard) !important; } .el-switch__core:after { @@ -1045,4 +1142,19 @@ } } } +.noticeBox p { + text-align: center; +} + +.confirmBox { + text-align: center; + + p { + text-align: center; + } + + .el-message-box__status.el-icon-warning { + margin-left: 75px; + } +} </style> -- Gitblit v1.8.0