From b5e2e236828b7fbc0e8f2bdbf66651ad8907e3b1 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期三, 21 七月 2021 16:40:17 +0800
Subject: [PATCH] all

---
 src/pages/settings/index/index.vue |  216 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 127 insertions(+), 89 deletions(-)

diff --git a/src/pages/settings/index/App.vue b/src/pages/settings/index/index.vue
similarity index 91%
rename from src/pages/settings/index/App.vue
rename to src/pages/settings/index/index.vue
index b935d5f..0cad7cf 100644
--- a/src/pages/settings/index/App.vue
+++ b/src/pages/settings/index/index.vue
@@ -15,9 +15,9 @@
 
     <div
       class="container-center"
-      v-if="activePage == '璐︽埛' || activePage == '鏃ユ湡鏃堕棿'"
+      v-if="activeIndex == 0 || activeIndex == 1"
     >
-      <div class="account-left" v-if="activePage == '璐︽埛'">
+      <div class="account-left" v-if="activeIndex == 0">
         <div class="account-list">
           <div
             class="account-card"
@@ -33,23 +33,21 @@
                 :src="`data:image/png;base64,${item.headpic}`"
                 alt=""
               />
+              <span class="user-name">{{ item.username }}</span>
             </div>
-            <span class="user-name">{{ item.username }}</span>
-            <el-tag
-              style="margin-left: 100px"
-              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">
+        <div class="add-account" v-if="curUserRole != '鏅�氱敤鎴�'">
           <!-- <span class="icon iconfont" @click="openAdd">&#xe646;</span> -->
-          <i class="el-icon-circle-plus" style="font-size: 38px;
-" @click="openAdd"></i>
+          <i
+            class="el-icon-circle-plus"
+            style="font-size: 38px"
+            @click="openAdd"
+          ></i>
         </div>
       </div>
-      <div class="datetime-left" v-if="activePage == '鏃ユ湡鏃堕棿'">
+      <div class="datetime-left" v-if="activeIndex == 1">
         <div class="time-card">
           <div class="head">
             <span class="icon iconfont">&#xe690;</span>
@@ -84,9 +82,9 @@
     </div>
     <div
       class="container-right"
-      v-if="activePage == '璐︽埛' || activePage == '鏃ユ湡鏃堕棿'"
+      v-if="activeIndex == 0 || activeIndex == 1"
     >
-      <div class="account-right" v-if="activePage == '璐︽埛'">
+      <div class="account-right" v-if="activeIndex == 0">
         <div
           class="account-content"
           v-if="inAccountDetail == false && isAddAccount == false"
@@ -189,15 +187,18 @@
             <div class="item-btn" @click="showChangePassword">淇敼瀵嗙爜</div>
             <div
               class="item-btn"
-              v-if="
-                activeUserRole !== '瓒呯骇绠$悊鍛�' ||
-                (curUserRole == '绠$悊鍛�' && activeUserRole == '鏅�氱敤鎴�')
-              "
+              v-if="isShowDeleteAccount"
               @click="deleteAccount"
             >
               鍒犻櫎璐︽埛
             </div>
-            <div class="item-btn" @click="openPermission">鏉冮檺璁剧疆</div>
+            <div
+              v-if="isShowPermitBtn"
+              class="item-btn"
+              @click="openPermission"
+            >
+              鏉冮檺璁剧疆
+            </div>
           </div>
         </div>
 
@@ -304,18 +305,18 @@
           <div class="fill-group">
             <el-form
               :model="addForm"
-              :rules="rules"
+              :rules="addRules"
               ref="addForm"
               class="add-form"
             >
               <el-form-item prop="userName">
                 <div class="p-title">鐢ㄦ埛鍚嶏細</div>
                 <el-input
-                  placeholder="蹇呭~锛岄暱搴︿负2~10浣嶅瓧绗︼紝涓嶈兘浠ユ暟瀛楀紑澶淬�佷笉鍏佽鏈夋眽瀛�"
+                  placeholder="蹇呭~锛岄暱搴︿负 2 ~ 10 浣嶅瓧绗︼紝涓嶈兘浠ユ暟瀛楀紑澶达紝涓嶅厑璁稿寘鍚眽瀛�"
                   v-model="addForm.userName"
                 ></el-input>
               </el-form-item>
-              <el-form-item prop="roleId">
+              <el-form-item prop="roleId" v-if="curUserRole != '鏅�氱敤鎴�'">
                 <div class="p-title">瑙掕壊锛�</div>
                 <el-select v-model="addForm.roleId" placeholder="璇烽�夋嫨瑙掕壊">
                   <el-option
@@ -329,14 +330,14 @@
               <el-form-item prop="nickName">
                 <div class="p-title">鏄电О锛�</div>
                 <el-input
-                  placeholder="閫夊~"
+                  placeholder="閫夊~锛岄暱搴︿负 2 ~ 10 浣嶅瓧绗�"
                   v-model="addForm.nickName"
                 ></el-input>
               </el-form-item>
               <el-form-item prop="password">
                 <div class="p-title">瀵嗙爜锛�</div>
                 <el-input
-                  placeholder="蹇呭~"
+                  placeholder="蹇呭~锛岃嚦灏戜负 6 浣�"
                   v-model="addForm.password"
                   show-password
                 ></el-input>
@@ -358,7 +359,7 @@
         </div>
       </div>
 
-      <div class="datetime-right" v-if="activePage == '鏃ユ湡鏃堕棿'">
+      <div class="datetime-right" v-if="activeIndex == 1">
         <div class="ntp-time" v-if="isNtp">
           <el-form label-width="160px">
             <el-form-item label="鏈嶅姟鍣ㄥ湴鍧�">
@@ -538,30 +539,34 @@
     </div>
 
     <clusterManagement
-      v-if="activePage == '闆嗙兢绠$悊'"
+      v-if="activeIndex == 2"
       style="width: 100%"
     ></clusterManagement>
     <netSettings
-      v-if="activePage == '缃戠粶璁剧疆'"
+      v-if="activeIndex == 3"
       style="width: 100%"
     ></netSettings>
     <keyboardLanguage
-      v-if="activePage == '閿洏鍜岃瑷�'"
+      v-if="activeIndex == 4"
       style="width: 100%"
     ></keyboardLanguage>
     <generalSettings
-      v-if="activePage == '閫氱敤璁剧疆'"
+      v-if="activeIndex == 5"
       style="width: 100%"
     ></generalSettings>
   </div>
   <div class="welcome-page" v-else>
-    <div class="child" @click="openWelcome(item, i)" v-for="(item,i) in menuArr" :key="i">
+    <div
+      class="child"
+      @click="openWelcome(item, i)"
+      v-for="(item, i) in menuArr"
+      :key="i"
+    >
       <div class="child-info">
         <span class="icon iconfont welcome-icon">{{ item.icon }}</span>
-        <span class="welcome-title">{{item.name}}</span>
+        <span class="welcome-title">{{ item.name }}</span>
       </div>
     </div>
-
   </div>
 </template>
 
@@ -585,6 +590,8 @@
 import netSettings from "../views/NetSettings";
 import keyboardLanguage from "../views/keyboardLanguage";
 import generalSettings from "../views/generalSettings";
+import { pad0 } from "@/api/utils";
+
 export default {
   name: "settings",
   components: {
@@ -596,7 +603,8 @@
     generalSettings,
   },
   data() {
-    var validatePass2 = (rule, value, callback) => {
+    var v2 = (rule, value, callback) => {
+      console.log("rule", rule);
       if (value === "") {
         callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
       } else if (value !== this.addForm.password) {
@@ -605,11 +613,26 @@
         callback();
       }
     };
-    var validatePass4 = (rule, value, callback) => {
+    var v4 = (rule, value, callback) => {
+      console.log("rule", rule);
       if (value === "") {
         callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
       } else if (value !== this.passwordForm.newPassword) {
         callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
+      } else {
+        callback();
+      }
+    };
+    const v1 = (rule, value, callback) => {
+      if (value.trim() === "") {
+        callback(new Error("璇疯緭鍏ョ敤鎴峰悕"));
+        this.addForm.userName = "";
+      } else if (isNaN(Number(value[0])) == false) {
+        callback(new Error("涓嶈兘浠ユ暟瀛楀紑澶�"));
+      } else if (/[\u4E00-\u9FA5]/g.test(value)) {
+        callback(new Error("涓嶈兘杈撳叆姹夊瓧"));
+      } else if (value.length < 2 || value.length > 10) {
+        callback(new Error("闀垮害涓� 2 - 10 涓瓧绗�"));
       } else {
         callback();
       }
@@ -670,7 +693,7 @@
       jpgArr: [],
       isManual: false,
       isNtp: true,
-      activePage: "璐︽埛",
+      // activePage: "璐︽埛",
       activeIndex: 0,
       clockTimer: null,
       inputHour: "",
@@ -695,24 +718,18 @@
         confirmPassword: "",
         roleId: "",
       },
-      rules: {
-        userName: [
-          { required: true, message: "璇疯緭鍏ョ敤鎴峰悕", trigger: "blur" },
-          {
-            min: 2,
-            max: 10,
-            message: "闀垮害鍦� 2 鍒� 10 涓瓧绗�",
-            trigger: "blur",
-          },
+      addRules: {
+        userName: [{ validator: v1, trigger: "blur" }],
+        nickName: [
+          { min: 2, max: 10, message: "闀垮害涓� 2 - 10 浣�", trigger: "blur" },
         ],
         password: [
           { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" },
           { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" },
         ],
-        confirmPassword: [{ validator: validatePass2, trigger: "blur" }],
+        confirmPassword: [{ validator: v2, trigger: "blur" }],
       },
       pwRules: {
-        // pw: [{ validator: validatePass3, trigger: "blur" }],
         curPassword: [
           { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" },
           { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" },
@@ -721,7 +738,7 @@
           { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" },
           { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" },
         ],
-        confirmPassword: [{ validator: validatePass4, trigger: "blur" }],
+        confirmPassword: [{ validator: v4, trigger: "blur" }],
       },
     };
   },
@@ -752,7 +769,6 @@
         }
       });
     },
-
     confirmChangePic() {
       updateUser({
         id: this.activeAccountItem.id,
@@ -789,8 +805,10 @@
       this.activeAccountIndex = i;
       this.inAccountDetail = false;
       this.cancelSet();
+      this.cancelAdd();
       this.cacelChoosePic();
       this.fetchMenu();
+      this.cancelPassword();
       this.showInputNickName = false;
     },
     minusOne(typ) {
@@ -803,25 +821,25 @@
           if (num == -1) {
             num = 23;
           }
-          this.syncHour = this.padZero(num);
+          this.syncHour = pad0(+num);
           break;
         case "min":
           num = +this.syncMin - 1;
           if (num == -1) {
             num = 59;
           }
-          this.syncMin = this.padZero(num);
+          this.syncMin = pad0(+num);
           break;
         case "sec":
           num = +this.syncSec + 1;
           if (num == -1) {
             num = 59;
           }
-          this.syncSec = this.padZero(num);
+          this.syncSec = pad0(+num);
           break;
         case "yrs":
           num = +this.syncYrs - 1;
-          this.syncYrs = this.padZero(num);
+          this.syncYrs = pad0(+num);
           break;
         case "mth":
           num = +this.syncMonth - 1;
@@ -829,7 +847,7 @@
             num = 12;
             this.minusOne("yrs");
           }
-          this.syncMonth = this.padZero(num);
+          this.syncMonth = pad0(+num);
           break;
         case "day":
           num = +this.syncDay - 1;
@@ -842,7 +860,7 @@
             ).getDate();
             num = maxDay;
           }
-          this.syncDay = this.padZero(num);
+          this.syncDay = pad0(+num);
           break;
         default:
           break;
@@ -867,32 +885,32 @@
           if (num == 24) {
             num = 0;
           }
-          this.syncHour = this.padZero(num);
+          this.syncHour = pad0(+num);
           break;
         case "min":
           num = +this.syncMin + 1;
           if (num == 60) {
             num = 0;
           }
-          this.syncMin = this.padZero(num);
+          this.syncMin = pad0(+num);
           break;
         case "sec":
           num = +this.syncSec + 1;
           if (num == 60) {
             num = 0;
           }
-          this.syncSec = this.padZero(num);
+          this.syncSec = pad0(+num);
           break;
         case "yrs":
           num = +this.syncYrs + 1;
-          this.syncYrs = this.padZero(num);
+          this.syncYrs = pad0(+num);
           break;
         case "mth":
           num = +this.syncMonth + 1;
           if (num == 13) {
             num = 1;
           }
-          this.syncMonth = this.padZero(num);
+          this.syncMonth = pad0(+num);
           break;
         case "day":
           num = +this.syncDay + 1;
@@ -900,7 +918,7 @@
           if (num > maxDay) {
             num = 1;
           }
-          this.syncDay = this.padZero(num);
+          this.syncDay = pad0(+num);
           break;
         default:
           break;
@@ -979,10 +997,6 @@
       }
       return format;
     },
-    padZero(n) {
-      n = +n;
-      return n < 10 ? "0" + n : "" + n;
-    },
     formatNumber(n) {
       n = n.toString();
       return n[1] ? n : "0" + n;
@@ -1009,9 +1023,8 @@
       });
     },
     openMenu(name, i) {
-      this.activePage = name;
       this.activeIndex = i;
-      if (this.activePage == "鏃ユ湡鏃堕棿") {
+      if (this.activeIndex == 1) {
         this.initClockConf();
       }
     },
@@ -1027,7 +1040,7 @@
     },
     hideInput(typ) {
       if (this[`input${typ}`]) {
-        this[`sync${typ}`] = this.padZero(this[`input${typ}`]);
+        this[`sync${typ}`] = pad0(+this[`input${typ}`]);
       }
       this[`show${typ}Input`] = false;
       this[`input${typ}`] = "";
@@ -1059,7 +1072,7 @@
       this.addForm.headpic = this.jpgArr[0].path;
       getRoles().then((res) => {
         if (res.success) {
-          this.roleList = res.data.slice(0, 2);
+          this.roleList = res.data;
         }
       });
     },
@@ -1087,6 +1100,7 @@
           if (this.passwordForm.curPassword == "") {
             data = {
               userId: this.activeAccountItem.id,
+              oldPwd: "",
               newPwd: this.passwordForm.newPassword,
             };
           } else {
@@ -1098,8 +1112,10 @@
           updatePassword(data).then(
             (res) => {
               if (res.success) {
-                this.$message.success(res.msg);
-                this.cancelPassword();
+                this.$message.success("瀵嗙爜" + res.msg);
+                setTimeout(() => {
+                  this.cancelPassword();
+                }, 1000);
               }
             },
             (err) => {
@@ -1254,6 +1270,31 @@
       const info = JSON.parse(sessionStorage.getItem("userInfo"));
       return info.id;
     },
+    isShowDeleteAccount() {
+      if (this.curUserRole == "瓒呯骇绠$悊鍛�") {
+        if (this.activeUserRole == "瓒呯骇绠$悊鍛�") {
+          return false;
+        }
+        return true;
+      } else if (this.curUserRole == "绠$悊鍛�") {
+        if (this.activeUserRole == "鏅�氱敤鎴�") {
+          return true;
+        }
+        return false;
+      }
+      return false;
+    },
+    isShowPermitBtn(){
+      if (this.curUserRole == "绠$悊鍛�") {
+        if (this.activeUserRole == "鏅�氱敤鎴�") {
+          return true
+        }
+        return false
+      }else if (this.curUserRole == "鏅�氱敤鎴�"){
+        return false
+      }
+      return true
+    },
   },
 };
 </script>
@@ -1264,13 +1305,10 @@
   background-color: #f5f5f5;
   display: -ms-flexbox;
   padding: 0 50px;
-  -webkit-box-sizing: border-box;
   box-sizing: border-box;
   .child {
     box-sizing: border-box;
     background-color: white;
-    -webkit-box-flex: 0;
-    -ms-flex: 0 0 33.3%;
     float: left;
     width: 250px;
     height: 200px;
@@ -1280,6 +1318,9 @@
     justify-content: center;
     align-items: center;
     cursor: pointer;
+        -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 {
       display: flex;
       flex-direction: column;
@@ -1294,11 +1335,11 @@
     }
   }
   .child:hover {
-    -moz-box-shadow: 5px 5px 10px #ddd;
-    -webkit-box-shadow: 5px 5px 10px #ddd;
-    box-shadow: 5px 5px 10px #ddd;
-    transform: translate3d(0, -2.5px, 0);
-    transition: all 0.3s;
+    -moz-box-shadow: 5px 5px 15px rgb(218, 218, 218);
+    -webkit-box-shadow: 5px 5px 15px rgb(218, 218, 218);
+    box-shadow: 5px 5px 15px rgb(218, 218, 218);
+    transform: translate3d(0, -3px, 0);
+    transition: all 0.4s;
   }
 }
 .container {
@@ -1351,8 +1392,9 @@
     border-right: 5px solid rgba(248, 248, 248, 1);
     box-sizing: border-box;
     .account-left {
-      .account-list{
-        height: 530px;
+      height: 100%;
+      .account-list {
+        height: calc(85%);
         overflow: auto;
       }
       .add-account {
@@ -1373,11 +1415,11 @@
         box-sizing: border-box;
         border-radius: 10px;
         cursor: pointer;
+        justify-content: space-between;
+
         .touxiang {
-          height: 35px;
-          width: 35px;
-          background-color: bisque;
-          border-radius: 17.5px;
+          display: flex;
+          align-items: center;
           img {
             border: none;
 
@@ -1465,12 +1507,10 @@
           .touxiang-big {
             width: 100px;
             height: 100px;
-            background-color: bisque;
             position: relative;
             border-radius: 50px;
             img {
               border: none;
-
               width: 100px;
               height: 100px;
               position: relative;
@@ -1555,7 +1595,6 @@
         }
         .list-btn {
           display: flex;
-
           flex-direction: column;
           align-items: center;
           .item-btn {
@@ -1731,7 +1770,6 @@
             text-decoration: underline;
           }
         }
-
       }
       .manual-time {
         .clock-wrap {

--
Gitblit v1.8.0