From 4b43bfb3f6f499f480712dd29bef52275466afd6 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期五, 30 七月 2021 22:10:59 +0800
Subject: [PATCH] change all

---
 src/pages/settings/index/index.vue |  193 ++++++++++++++++++++++++++++--------------------
 1 files changed, 112 insertions(+), 81 deletions(-)

diff --git a/src/pages/settings/index/index.vue b/src/pages/settings/index/index.vue
index 0cad7cf..13bbef1 100644
--- a/src/pages/settings/index/index.vue
+++ b/src/pages/settings/index/index.vue
@@ -3,20 +3,17 @@
     <div class="container-left">
       <div
         class="left-card"
-        :class="activeIndex == index ? 'left-card-active' : ''"
-        v-for="(item, index) in menuArr"
-        :key="index"
-        @click="openMenu(item.name, index)"
+        :class="activeIndex == i ? 'left-card-active' : ''"
+        v-for="(item, i) in menuArr"
+        :key="i"
+        @click="openMenu(item.name, i)"
       >
         <span class="icon iconfont">{{ item.icon }}</span>
         <span class="card-text">{{ item.name }}</span>
       </div>
     </div>
 
-    <div
-      class="container-center"
-      v-if="activeIndex == 0 || activeIndex == 1"
-    >
+    <div class="container-center" v-if="activeIndex == 0 || activeIndex == 1">
       <div class="account-left" v-if="activeIndex == 0">
         <div class="account-list">
           <div
@@ -35,7 +32,7 @@
               />
               <span class="user-name">{{ item.username }}</span>
             </div>
-            <el-tag size="mini" v-if="item.id == curUserID">鎴戠殑</el-tag>
+            <el-tag size="mini" v-if="item.id == curUserID">褰撳墠鐧诲綍</el-tag>
           </div>
         </div>
         <div class="add-account" v-if="curUserRole != '鏅�氱敤鎴�'">
@@ -80,10 +77,7 @@
         </div>
       </div>
     </div>
-    <div
-      class="container-right"
-      v-if="activeIndex == 0 || activeIndex == 1"
-    >
+    <div class="container-right" v-if="activeIndex == 0 || activeIndex == 1">
       <div class="account-right" v-if="activeIndex == 0">
         <div
           class="account-content"
@@ -363,11 +357,10 @@
         <div class="ntp-time" v-if="isNtp">
           <el-form label-width="160px">
             <el-form-item label="鏈嶅姟鍣ㄥ湴鍧�">
-              <!-- :disabled="syncType === '2'" -->
-              <ip-input
+              <ipInput
                 :ip="ntpServer"
                 @on-blur="ntpServer = arguments[0]"
-              ></ip-input>
+              ></ipInput>
             </el-form-item>
 
             <el-form-item label="鏍℃椂鏃堕棿闂撮殧锛堝垎閽燂級">
@@ -500,7 +493,7 @@
                 class="input-box"
                 v-show="showMonthInput"
                 ref="iptMonth"
-                oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>12)value='12'"
+                @input="checkMonthInput"
                 type="text"
                 v-model="inputMonth"
                 @blur="hideInput('Month')"
@@ -519,7 +512,7 @@
                 class="input-box"
                 v-show="showDayInput"
                 ref="iptDay"
-                oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>31)value='31'"
+                @input="checkDayInput"
                 type="text"
                 v-model="inputDay"
                 @blur="hideInput('Day')"
@@ -532,7 +525,7 @@
         </div>
 
         <div class="btns">
-          <div class="cancel" @click="cancelPassword">鍙栨秷</div>
+          <div class="cancel" @click="cancelSetTime">鍙栨秷</div>
           <div class="ok" @click="submitClock">淇濆瓨</div>
         </div>
       </div>
@@ -543,6 +536,7 @@
       style="width: 100%"
     ></clusterManagement>
     <netSettings
+      ref="netSettings"
       v-if="activeIndex == 3"
       style="width: 100%"
     ></netSettings>
@@ -573,7 +567,6 @@
 <script>
 import { getClockInfo, saveClockInfo, testNTPserver } from "@/api/system";
 import {
-  uploadHeadPic,
   addUser,
   getUsers,
   updateUser,
@@ -590,7 +583,7 @@
 import netSettings from "../views/NetSettings";
 import keyboardLanguage from "../views/keyboardLanguage";
 import generalSettings from "../views/generalSettings";
-import { pad0 } from "@/api/utils";
+import { pad0,getUrlKey } from "@/api/utils";
 
 export default {
   name: "settings",
@@ -604,7 +597,6 @@
   },
   data() {
     var v2 = (rule, value, callback) => {
-      console.log("rule", rule);
       if (value === "") {
         callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
       } else if (value !== this.addForm.password) {
@@ -614,7 +606,6 @@
       }
     };
     var v4 = (rule, value, callback) => {
-      console.log("rule", rule);
       if (value === "") {
         callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
       } else if (value !== this.passwordForm.newPassword) {
@@ -638,7 +629,6 @@
       }
     };
     return {
-      showAccount: true,
       showChangePic: false,
       syncYrs: "",
       activeAccountItem: {},
@@ -651,11 +641,8 @@
       isSyncBrowser: false,
       showDateTime: false,
       isAddAccount: false,
-      isCount: false,
-      isCalculate: false,
       browserTimer: null,
       timezone: "",
-      isRealtime: false,
       inputNickName: "",
       showHourInput: false,
       showMinInput: false,
@@ -664,9 +651,6 @@
       showMonthInput: false,
       selectedPic: null,
       showDayInput: false,
-      loadedPic: "",
-      cameraInfo: false,
-      dependentScene: false,
       timestamp: 0,
       inAccountDetail: false,
       isChangePw: false,
@@ -693,7 +677,6 @@
       jpgArr: [],
       isManual: false,
       isNtp: true,
-      // activePage: "璐︽埛",
       activeIndex: 0,
       clockTimer: null,
       inputHour: "",
@@ -747,6 +730,14 @@
     clearInterval(this.browserTimer);
   },
   mounted() {
+    const menu = getUrlKey("menu");
+    if (menu) {
+      this.showWelcome = false;
+      this.activeIndex = this.menuArr.findIndex((x) => x.name == menu);
+      this.$nextTick(() => {
+        this.$refs.netSettings.openRight(2);
+      });
+    }
     this.fetchUserList();
     this.fetchDefHeadPic();
   },
@@ -781,6 +772,24 @@
         }
       });
     },
+    checkMonthInput() {
+      this.inputMonth = this.inputMonth.replace(/[^\d]/g, "");
+      if (this.inputMonth.length > 2)
+        this.inputMonth = this.inputMonth.slice(0, 2);
+      if (+this.inputMonth > 12) {
+        this.inputMonth = "12";
+      }
+    },
+    checkDayInput() {
+      this.inputDay = this.inputDay.replace(/[^\d]/g, "");
+      if (this.inputDay.length > 2) {
+        this.inputDay = this.inputDay.slice(0, 2);
+      }
+      const max = this.getMaxDayOfMonth();
+      if (+this.inputDay > max) {
+        this.inputDay = max + "";
+      }
+    },
     editNickName() {
       this.showInputNickName = true;
       this.inputNickName = this.activeAccountItem.nickname;
@@ -801,15 +810,17 @@
       });
     },
     openAccount(item, i) {
+      this.showInputNickName = false;
       this.activeAccountItem = item;
       this.activeAccountIndex = i;
+      this.isChangePw = false;
       this.inAccountDetail = false;
       this.cancelSet();
-      this.cancelAdd();
+      this.inAccountDetail = false;
+      this.isAddAccount = false;
+      this.selectedPic = null;
       this.cacelChoosePic();
       this.fetchMenu();
-      this.cancelPassword();
-      this.showInputNickName = false;
     },
     minusOne(typ) {
       this.isSyncBrowser = false;
@@ -819,6 +830,7 @@
         case "hrs":
           num = +this.syncHour - 1;
           if (num == -1) {
+            鏈夌嚎缃戠粶鏈夌嚎缃戠粶;
             num = 23;
           }
           this.syncHour = pad0(+num);
@@ -848,23 +860,23 @@
             this.minusOne("yrs");
           }
           this.syncMonth = pad0(+num);
+          if (+this.syncDay > this.getMaxDayOfMonth()) {
+            this.minusOne("day");
+          }
           break;
         case "day":
           num = +this.syncDay - 1;
           if (num == 0) {
-            this.minusOne("mth");
-            const maxDay = new Date(
-              +this.syncYrs,
-              +this.syncMonth,
-              0
-            ).getDate();
-            num = maxDay;
+            num = this.getMaxDayOfMonth();
           }
           this.syncDay = pad0(+num);
           break;
         default:
           break;
       }
+    },
+    getMaxDayOfMonth() {
+      return new Date(+this.syncYrs, +this.syncMonth, 0).getDate();
     },
     fatherChange(item) {
       item.children.forEach((x) => {
@@ -911,11 +923,13 @@
             num = 1;
           }
           this.syncMonth = pad0(+num);
+          if (+this.syncDay > this.getMaxDayOfMonth()) {
+            this.minusOne("day");
+          }
           break;
         case "day":
           num = +this.syncDay + 1;
-          const maxDay = new Date(+this.syncYrs, +this.syncMonth, 0).getDate();
-          if (num > maxDay) {
+          if (num > this.getMaxDayOfMonth()) {
             num = 1;
           }
           this.syncDay = pad0(+num);
@@ -927,24 +941,26 @@
     submitClock() {
       if (this.syncType === "1") {
         if (this.ntpServer === "" || this.ntpServer === "...") {
-          this.$notify({
-            type: "error",
-            message: "NTP 鏈嶅姟鍣ㄥ湴鍧�涓嶈兘涓虹┖",
-          });
+          this.$notify.error("NTP 鏈嶅姟鍣ㄥ湴鍧�涓嶈兘涓虹┖");
           return false;
         } else if (this.timeInterval === "") {
           this.timeInterval = 1;
         }
       } else if (this.isSyncBrowser) {
         if (this.settime === "") {
-          this.$notify({
-            type: "error",
-            message: "璁剧疆鏃堕棿涓嶈兘涓虹┖",
-          });
+          this.$notify.error("璁剧疆鏃堕棿涓嶈兘涓虹┖");
           return false;
         }
       } else {
         this.settime = `${this.syncYrs}-${this.syncMonth}-${this.syncDay} ${this.syncHour}:${this.syncMin}:${this.syncSec}`;
+      }
+
+      const now = new Date().getTime();
+      if (new Date(this.settime).getTime() > now) {
+        this.$message.warning(
+          "璁剧疆鐨勬椂闂翠笉鑳芥櫄浜庡綋鍓嶆椂闂�: " + this.formatTime(now, "Y-M-D h:m:s")
+        );
+        return;
       }
       saveClockInfo({
         timeZone: this.timezone,
@@ -952,15 +968,17 @@
         ntpServer: this.ntpServer,
         interval: this.timeInterval,
         newTime: this.settime,
-      }).then((rsp) => {
-        if (rsp && rsp.success) {
-          this.$notify({
-            type: "success",
-            message: "璁剧疆鎴愬姛",
-          });
+      }).then(
+        (rsp) => {
+          if (rsp && rsp.success) {
+            this.$notify.success("璁剧疆鎴愬姛");
+          }
+          this.initClockConf();
+        },
+        (err) => {
+          this.$notify.error("璁剧疆澶辫触 " + err.msg);
         }
-        this.initClockConf();
-      });
+      );
     },
     flatGetArr(arr, res) {
       for (const item of arr) {
@@ -981,26 +999,26 @@
         }
       });
     },
-    formatTime(number, format) {
+    formatTime(timestamp, format) {
+      const formatNumber = (n) => {
+        n = n + "";
+        return n[1] ? n : "0" + n;
+      };
       var formateArr = ["Y", "M", "D", "h", "m", "s"];
       var returnArr = [];
-      var date = new Date(number * 1000);
+      var date = new Date(timestamp);
       returnArr.push(date.getFullYear());
-      returnArr.push(this.formatNumber(date.getMonth() + 1));
-      returnArr.push(this.formatNumber(date.getDate()));
-      returnArr.push(this.formatNumber(date.getHours()));
-      returnArr.push(this.formatNumber(date.getMinutes()));
-      returnArr.push(this.formatNumber(date.getSeconds()));
-      this.weekday = "鏄熸湡" + "鏃ヤ竴浜屼笁鍥涗簲鍏�".charAt(date.getDay());
+      returnArr.push(formatNumber(date.getMonth() + 1));
+      returnArr.push(formatNumber(date.getDate()));
+      returnArr.push(formatNumber(date.getHours()));
+      returnArr.push(formatNumber(date.getMinutes()));
+      returnArr.push(formatNumber(date.getSeconds()));
       for (var i in returnArr) {
         format = format.replace(formateArr[i], returnArr[i]);
       }
       return format;
     },
-    formatNumber(n) {
-      n = n.toString();
-      return n[1] ? n : "0" + n;
-    },
+
     initClockConf(ntpTest = false) {
       getClockInfo().then((rsp) => {
         if (rsp && rsp.success) {
@@ -1015,6 +1033,9 @@
             this.timeInterval = rsp.data.interval;
           }
           this.timestamp = rsp.data.local_time;
+          this.weekday =
+            "鏄熸湡" +
+            "鏃ヤ竴浜屼笁鍥涗簲鍏�".charAt(new Date(+this.timestamp * 1000).getDay());
           if (this.clockTimer === null) {
             this.runClock();
             if (this.isManual) this.parseTime();
@@ -1044,6 +1065,12 @@
       }
       this[`show${typ}Input`] = false;
       this[`input${typ}`] = "";
+      if (typ == "Month") {
+        const max = this.getMaxDayOfMonth();
+        if (+this.syncDay > max) {
+          this.syncDay = max + "";
+        }
+      }
     },
     onLeave() {
       if (this.showJPGArr) {
@@ -1051,14 +1078,18 @@
       }
       this.showChangePic = false;
     },
+    cancelSetTime() {
+      this.parseTime();
+      this.ntpServer = "...";
+      this.timeInterval = 10;
+    },
     syncBrowser(enable) {
       this.isSyncBrowser = enable;
       if (!enable) {
         clearInterval(this.browserTimer);
       } else {
         this.browserTimer = setInterval(() => {
-          let timestamp = new Date().getTime() / 1000;
-          this.settime = this.formatTime(timestamp, "Y-M-D h:m:s");
+          this.settime = this.formatTime(new Date().getTime(), "Y-M-D h:m:s");
           let [arr1, arr2] = this.settime.split(" ");
           [this.syncYrs, this.syncMonth, this.syncDay] = arr1.split("-");
           [this.syncHour, this.syncMin, this.syncSec] = arr2.split(":");
@@ -1195,7 +1226,7 @@
       this.inAccountDetail = true;
     },
     runClock() {
-      const str = this.formatTime(++this.timestamp, "Y-M-D h:m:s");
+      const str = this.formatTime(++this.timestamp * 1000, "Y-M-D h:m:s");
       [this.equipmentDate, this.equipmentTime] = str.split(" ");
       this.clockTimer = setTimeout(() => {
         this.runClock();
@@ -1284,16 +1315,16 @@
       }
       return false;
     },
-    isShowPermitBtn(){
+    isShowPermitBtn() {
       if (this.curUserRole == "绠$悊鍛�") {
         if (this.activeUserRole == "鏅�氱敤鎴�") {
-          return true
+          return true;
         }
-        return false
-      }else if (this.curUserRole == "鏅�氱敤鎴�"){
-        return false
+        return false;
+      } else if (this.curUserRole == "鏅�氱敤鎴�") {
+        return false;
       }
-      return true
+      return true;
     },
   },
 };
@@ -1318,7 +1349,7 @@
     justify-content: center;
     align-items: center;
     cursor: pointer;
-        -moz-box-shadow: 2px 2px 4px rgb(226, 226, 226);
+    -moz-box-shadow: 2px 2px 4px rgb(226, 226, 226);
     -webkit-box-shadow: 2px 2px 4px rgb(226, 226, 226);
     box-shadow: 2px 2px 4px rgb(226, 226, 226);
     .child-info {

--
Gitblit v1.8.0