From 2ff4a572df6b098779bc592a0c6e0a90e1b79b2e Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期五, 12 十一月 2021 19:08:00 +0800
Subject: [PATCH] 暂存

---
 src/pages/settings/index/index.vue |  811 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 562 insertions(+), 249 deletions(-)

diff --git a/src/pages/settings/index/index.vue b/src/pages/settings/index/index.vue
index e1f3626..15e71d0 100644
--- a/src/pages/settings/index/index.vue
+++ b/src/pages/settings/index/index.vue
@@ -8,7 +8,6 @@
         :key="i"
         @click="openMenu(i)"
       >
-        <!-- <span class="icon iconfont">{{ item.icon }}</span> -->
         <img :src="item.blackIcon" class="b" alt="" />
         <img :src="item.whiteIcon" class="w" alt="" />
         <span class="card-text">{{ item.name }}</span>
@@ -17,7 +16,12 @@
 
     <div class="container-center" v-if="activeIndex == 0">
       <div class="account-left" v-if="activeIndex == 0">
-        <div class="account-list">
+        <div class="account-list" 
+        :class="{'account-list-scroll'
+        :account_list_scroll}" 
+        @mouseenter="account_list_scroll = true"
+        @mouseleave="account_list_scroll = false"
+        >
           <div
             class="account-card"
             :class="activeAccountIndex == index ? 'account-card-active' : ''"
@@ -34,20 +38,25 @@
               />
               <span class="user-name">{{ item.username }}</span>
             </div>
-            <el-tag size="mini" v-if="item.id == curUserID">褰撳墠鐧诲綍</el-tag>
+            <div class="login-tag" v-if="item.id == curUserID">
+              <span>褰撳墠鐧诲綍</span>
+            </div>
           </div>
         </div>
         <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"
+            style="font-size: 40px"
             @click="openAdd"
           ></i>
         </div>
       </div>
     </div>
-    <div class="container-right" v-if="activeIndex == 0 || activeIndex == 1">
+    <div
+      class="container-right"
+      v-if="activeIndex == 0 || activeIndex == 1"
+      :class="activeIndex == 0 ? 'container-right-for-account' : ''"
+    >
       <div class="account-right" v-if="activeIndex == 0">
         <div
           class="account-content"
@@ -57,7 +66,7 @@
             <div
               class="touxiang-big"
               @mouseenter="showChangePic = true"
-              @mouseleave="onLeave"
+              @mouseleave="showChangePic = false"
             >
               <img
                 v-if="activeAccountItem.headpic"
@@ -65,31 +74,23 @@
                 alt=""
               />
               <div class="touxiang-mask" v-show="showChangePic">
-                <span
-                  class="enable"
-                  v-if="!showJPGArr"
-                  @click="showJPGArr = true"
-                  >淇敼澶村儚</span
+                <span class="enable" v-if="!showJPGArr" @click="editHeadPic"
+                  >缂栬緫澶村儚</span
                 >
-                <span
-                  class="enable"
-                  v-if="addForm.headpic"
-                  @click="confirmChangePic"
-                  >纭閫夋嫨</span
-                >
-                <span class="enable" v-if="showJPGArr" @click="cacelChoosePic">
-                  鍙栨秷</span
-                >
+               
               </div>
             </div>
             <div class="user-desc">
-              <div class="username">
+              <div class="user-name">
                 <span
                   class="icon iconfont"
-                  style="font-size: 18px; margin-right: 3px"
-                  >&#xe6de;</span
+                  style="font-size: 19px; margin-right: 4px"
+                  >&#xe737;</span
                 >
                 <span>{{ activeAccountItem.username }}</span>
+              </div>
+              <div class="user-role">
+                {{ activeUserRole }}
               </div>
               <div class="nick-name">
                 <span class="nick-text">鏄电О锛�</span>
@@ -103,26 +104,22 @@
                 ></el-input>
                 <span
                   v-show="!showInputNickName"
-                  class="icon iconfont"
+                  class="icon iconfont edit-icon"
                   @click="editNickName"
-                  >&#xe6f0;</span
+                  >&#xe60c;</span
                 >
                 <span
                   v-show="showInputNickName"
-                  class="icon iconfont"
+                  class="icon iconfont clear-icon"
                   @click="showInputNickName = false"
-                  >&#xe61b;</span
+                  >&#xe785;</span
                 >
                 <span
                   v-show="showInputNickName"
-                  class="icon iconfont"
-                  style="font-size: 21px; font-weight: 600; color: green"
+                  class="icon iconfont confirm-icon"
                   @click="hideInputNick"
-                  >&#xe62a;</span
+                  >&#xe72e;</span
                 >
-              </div>
-              <div class="user-role">
-                <el-tag type="info" size="mini">{{ activeUserRole }}</el-tag>
               </div>
             </div>
           </div>
@@ -147,10 +144,16 @@
               </div>
             </div>
           </div>
+          <div class="btns" v-if="showJPGArr">
+            <div class="cancel" @click="cacelChoosePic">鍙栨秷</div>
+            <div class="ok" @click="confirmChangePic">淇濆瓨</div>
+          </div>
           <div class="list-btn" v-if="showJPGArr == false">
-            <div class="item-btn" @click="showChangePassword">淇敼瀵嗙爜</div>
+            <div class="item-btn alt-pw-btn" @click="showChangePassword">
+              淇敼瀵嗙爜
+            </div>
             <div
-              class="item-btn"
+              class="item-btn del-usr-btn"
               v-if="isShowDeleteAccount"
               @click="deleteAccount"
             >
@@ -158,7 +161,7 @@
             </div>
             <div
               v-if="isShowPermitBtn"
-              class="item-btn"
+              class="item-btn auth-set-btn"
               @click="openPermission"
             >
               鏉冮檺璁剧疆
@@ -167,7 +170,10 @@
         </div>
 
         <div class="change-pw" v-if="inAccountDetail && isChangePw">
-          <div class="title">淇敼瀵嗙爜</div>
+          <div class="title">
+            <span class="icon iconfont">&#xe738;</span>
+            <span>淇敼瀵嗙爜</span>
+          </div>
           <el-form
             :model="passwordForm"
             :rules="pwRules"
@@ -178,7 +184,7 @@
               prop="curPassword"
               v-if="activeAccountItem.id == curUserID"
             >
-              <div class="p-title">褰撳墠瀵嗙爜锛�</div>
+              <div class="p-title">褰撳墠瀵嗙爜</div>
 
               <el-input
                 placeholder="蹇呭~"
@@ -187,7 +193,7 @@
               ></el-input>
             </el-form-item>
             <el-form-item prop="newPassword">
-              <div class="p-title">鏂板瘑鐮侊細</div>
+              <div class="p-title">鏂板瘑鐮�</div>
               <el-input
                 placeholder="蹇呭~"
                 v-model="passwordForm.newPassword"
@@ -195,7 +201,7 @@
               ></el-input>
             </el-form-item>
             <el-form-item prop="confirmPassword">
-              <div class="p-title">纭瀵嗙爜锛�</div>
+              <div class="p-title">纭瀵嗙爜</div>
               <el-input
                 placeholder="蹇呭~"
                 v-model="passwordForm.confirmPassword"
@@ -212,7 +218,7 @@
         <div class="permission" v-if="inAccountDetail && isSetPermission">
           <div class="title">鏉冮檺绠$悊</div>
 
-          <div class="line-wrap" v-for="item in sysMenus" :key="item.id">
+          <!-- <div class="line-wrap" v-for="item in sysMenus" :key="item.id">
             <div class="line">
               <div class="name">{{ item.name }}</div>
               <el-switch
@@ -238,6 +244,19 @@
                 </el-switch>
               </div>
             </div>
+          </div> -->
+          <!--    -->
+          <div class="tree-window">
+            <el-tree
+              ref="treeMenus"
+              :data="sysMenus"
+              :props="props"
+              node-key="id"
+              :default-checked-keys="checkedArr"
+              show-checkbox
+              check-on-click-node
+              default-expand-all
+            ></el-tree>
           </div>
           <div class="btns">
             <div class="cancel" @click="cancelSet">鍙栨秷</div>
@@ -274,15 +293,19 @@
               class="add-form"
             >
               <el-form-item prop="userName">
-                <div class="p-title">鐢ㄦ埛鍚嶏細</div>
+                <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" v-if="curUserRole != '鏅�氱敤鎴�'">
-                <div class="p-title">瑙掕壊锛�</div>
-                <el-select v-model="addForm.roleId" placeholder="璇烽�夋嫨瑙掕壊">
+                <div class="p-title">瑙掕壊</div>
+                <el-select
+                  v-model="addForm.roleId"
+                  placeholder="璇烽�夋嫨瑙掕壊"
+                  :popper-append-to-body="false"
+                >
                   <el-option
                     v-for="(item, i) in roleList"
                     :key="i"
@@ -292,14 +315,14 @@
                 </el-select>
               </el-form-item>
               <el-form-item prop="nickName">
-                <div class="p-title">鏄电О锛�</div>
+                <div class="p-title">鏄电О</div>
                 <el-input
-                  placeholder="閫夊~锛岄暱搴︿负 2 ~ 10 浣嶅瓧绗�"
+                  placeholder="閫夊~锛�2~10 浣嶅瓧绗�"
                   v-model="addForm.nickName"
                 ></el-input>
               </el-form-item>
               <el-form-item prop="password">
-                <div class="p-title">瀵嗙爜锛�</div>
+                <div class="p-title">瀵嗙爜</div>
                 <el-input
                   placeholder="蹇呭~锛岃嚦灏戜负 6 浣�"
                   v-model="addForm.password"
@@ -307,7 +330,7 @@
                 ></el-input>
               </el-form-item>
               <el-form-item prop="confirmPassword">
-                <div class="p-title">纭瀵嗙爜锛�</div>
+                <div class="p-title">纭瀵嗙爜</div>
                 <el-input
                   placeholder="蹇呭~"
                   v-model="addForm.confirmPassword"
@@ -338,12 +361,6 @@
           </div>
 
           <div class="adjust-zone">
-            <!-- <el-radio-group v-model="ajustType"
-            fill="#4E94FF"
-            >
-                  <el-radio-button label="鎵嬪姩鏍℃椂"></el-radio-button>
-                  <el-radio-button label=""></el-radio-button>
-                </el-radio-group> -->
             <div class="two-radio">
               <div
                 class="radio"
@@ -590,13 +607,12 @@
       ref="view_6"
     ></deviceInfo>
   </div>
-  <div class="welcome-page" v-else ref="curPage">
+  <div class="welcome-page" v-else ref="curPage" @mouseup="mouseDownIndex = ''">
     <div
       class="search-box"
       :class="showRecomand ? 'border-change' : ''"
       @click.stop
     >
-      <!-- @blur="showRecomand = false" -->
       <el-input
         class="search-input"
         placeholder="鏌ユ壘璁剧疆"
@@ -622,17 +638,18 @@
           娌℃湁鎵惧埌涓� {{ searchText }} 鐩稿叧鐨勭粨鏋�
         </div>
       </div>
-      <div class="dummy-end" v-if="showRecomand" style="height: 15px"></div>
+      <div class="dummy-end" v-if="showRecomand" style="height: 14px"></div>
     </div>
     <div class="nav-items">
       <div
         class="nav-child"
         @click="openWelcome(i)"
+        @mousedown="mouseDownIndex = i"
+        :class="mouseDownIndex === i? 'nav-child-active':''"
         v-for="(item, i) in menuArr"
         :key="i"
       >
         <div class="child-info">
-          <!-- <span class="icon iconfont welcome-icon">{{ item.icon }}</span> -->
           <img :src="item.imgUrl" alt="" />
           <span class="welcome-title">{{ item.name }}</span>
         </div>
@@ -724,7 +741,6 @@
       browserTimer: null,
       timezone: "",
       showRecomand: false,
-
       searchArr: [
         { name: "璐︽埛", addr: [0] },
         { name: "閫氱敤璁剧疆", addr: [5] },
@@ -758,7 +774,6 @@
       isSetPermission: false,
       timeInterval: 10,
       ntpServer: "",
-      syncType: "1",
       equipmentTime: "",
       equipmentDate: "",
       roleList: [],
@@ -819,13 +834,13 @@
       ],
       accountArr: [],
       jpgArr: [],
-      isManual: true,
       isNtp: false,
       activeIndex: 0,
       clockTimer: null,
       inputHour: "",
       inputMin: "",
       inputSec: "",
+      mouseDownIndex:'',
       inputYrs: "",
       showInputNickName: false,
       inputMonth: "",
@@ -837,6 +852,7 @@
       },
       activeAccountIndex: 0,
       sysMenus: [],
+      checkedArr: [],
       addForm: {
         userName: "",
         nickName: "",
@@ -844,6 +860,9 @@
         headpic: "",
         confirmPassword: "",
         roleId: "",
+      },
+      props: {
+        label: "name",
       },
       addRules: {
         userName: [{ validator: v1, trigger: "blur" }],
@@ -867,16 +886,28 @@
         ],
         confirmPassword: [{ validator: v4, trigger: "blur" }],
       },
+      account_list_scroll: false
     };
+  },
+  created(){
+  let color = localStorage.getItem('--colorCard')
+    if(color) {
+      document.documentElement.style.setProperty('--colorCard',`${color}`)
+    } 
   },
   beforeDestroy() {
     clearTimeout(this.clockTimer);
     clearInterval(this.browserTimer);
-    if (this.$refs.curPage) {
-      this.$refs.curPage.removeEventListener("click");
-    }
+    // if (this.$refs.curPage) {
+    //   this.$refs.curPage.removeEventListener("click");
+    // }
   },
   mounted() {
+    window.addEventListener("message",(e)=>{
+     if(e.data.msg === '杩斿洖绯荤粺璁剧疆') {
+     this.showWelcome = true
+       }       
+     })
     const menu = getUrlKey("menu");
     if (menu) {
       this.showWelcome = false;
@@ -985,7 +1016,6 @@
         case "hrs":
           num = +this.syncHour - 1;
           if (num == -1) {
-            鏈夌嚎缃戠粶鏈夌嚎缃戠粶;
             num = 23;
           }
           this.syncHour = pad0(+num);
@@ -1093,8 +1123,16 @@
           break;
       }
     },
+    editHeadPic() {
+      this.showJPGArr = true;
+      this.jpgArr.forEach((item, index) => {
+        if (this.activeAccountItem.headpic == item.path) {
+          this.selectedPic = index;
+        }
+      });
+    },
     submitClock() {
-      if (this.syncType === "1") {
+      if (this.isNtp) {
         if (this.ntpServer === "" || this.ntpServer === "...") {
           this.$notify.error("NTP 鏈嶅姟鍣ㄥ湴鍧�涓嶈兘涓虹┖");
           return false;
@@ -1119,7 +1157,7 @@
       }
       saveClockInfo({
         timeZone: this.timezone,
-        ntp: this.syncType === "1",
+        ntp: this.isNtp,
         ntpServer: this.ntpServer,
         interval: this.timeInterval,
         newTime: this.settime,
@@ -1135,18 +1173,18 @@
         }
       );
     },
-    flatGetArr(arr, res) {
-      for (const item of arr) {
-        if (item.selected) res.push(item.id);
-        if (item.children) this.flatGetArr(item.children, res);
-      }
-    },
+    // flatCheckedArr(arr, res) {
+    //   for (const item of arr) {
+    //     if (item.selected) res.push(item.id);
+    //     if (item.children) this.flatCheckedArr(item.children, res);
+    //   }
+    // },
     saveAuth() {
-      let arr = [];
-      this.flatGetArr(this.sysMenus, arr);
+      // let arr = [];
+      // this.flatCheckedArr(this.sysMenus, arr);
       updataUser({
         id: this.activeAccountItem.id,
-        menuIds: arr,
+        menuIds: this.$refs.treeMenus.getCheckedKeys(),
       }).then((res) => {
         if (res.success) {
           this.$message.success(res.msg);
@@ -1173,15 +1211,12 @@
       }
       return format;
     },
-
     initClockConf(ntpTest = false) {
       getClockInfo().then((rsp) => {
         if (rsp && rsp.success) {
           this.timezone = rsp.data.time_zone;
           if (!ntpTest) {
-            this.syncType = rsp.data.ntp ? "1" : "2";
             this.isNtp = rsp.data.ntp;
-            this.isManual = !rsp.data.ntp;
           }
           if (rsp.data.ntp) {
             this.ntpServer = rsp.data.ntp_server;
@@ -1193,7 +1228,7 @@
             "鏃ヤ竴浜屼笁鍥涗簲鍏�".charAt(new Date(+this.timestamp * 1000).getDay());
           if (this.clockTimer === null) {
             this.runClock();
-            if (this.isManual) this.parseTime();
+            if (!this.isNtp) this.parseTime();
           }
         }
       });
@@ -1226,12 +1261,6 @@
           this.syncDay = max + "";
         }
       }
-    },
-    onLeave() {
-      if (this.showJPGArr) {
-        return;
-      }
-      this.showChangePic = false;
     },
     cancelSetTime() {
       this.parseTime();
@@ -1280,9 +1309,6 @@
         this.openWelcome(addr[0]);
         this.$nextTick(() => {
           if (addr[0] == 1) {
-            // addr[1] == 0
-            //   ? this.changeSwitch("isNtp")
-            //   : this.changeSwitch("isManual");
             return;
           }
           this.$refs[`view_${addr[0]}`].openRight(addr[1]);
@@ -1347,7 +1373,6 @@
             }
           );
         } else {
-          console.log("error submit!!");
           return false;
         }
       });
@@ -1405,9 +1430,26 @@
       }, 1000);
     },
     deleteAccount() {
-      this.$confirm("鎮ㄦ槸鍚︾‘璁ゅ垹闄よ处鎴凤紵", "鍒犻櫎璐︽埛", {
+      const h = this.$createElement;
+      this.$msgbox({
+        title: "",
+        message: h(
+          "div",
+          {
+            style:
+              "display: flex;  flex-direction: column; justify-content: center; align-items: center;",
+          },
+          [
+            h("span", { class: "icon iconfont warn-icon" }, "\ue71c"),
+            h("span", { class: "warn-title" }, "鍒犻櫎璐︽埛"),
+            h("span", { class: "warn-dec" }, "鎮ㄦ槸鍚︾‘璁ゅ垹闄よ处鎴凤紵"),
+          ]
+        ),
+        showCancelButton: true,
+        showClose: true,
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
+        customClass: "del-account-message-box",
       })
         .then(() => {
           let obj = {
@@ -1416,10 +1458,7 @@
           deleteUser(obj).then((res) => {
             if (res.success) {
               this.fetchUserList();
-              this.$message({
-                type: "success",
-                message: "鍒犻櫎鎴愬姛!",
-              });
+              this.$message.success("鍒犻櫎鎴愬姛!");
             } else {
               this.$message.error("鍒犻櫎澶辫触");
             }
@@ -1433,8 +1472,17 @@
       }).then((res) => {
         if (res && res.success) {
           this.sysMenus = res.data;
+          let arr = [];
+          this.drawChecked(this.sysMenus, arr);
+          this.checkedArr = arr;
         }
       });
+    },
+    drawChecked(arr, res) {
+      for (const item of arr) {
+        if (item.selected && !item.children) res.push(item.id);
+        if (item.children) this.drawChecked(item.children, res);
+      }
     },
     openPermission() {
       this.inAccountDetail = true;
@@ -1451,15 +1499,15 @@
         ":"
       );
     },
-    changeSwitch(str) {
-      if (str == "isNtp") {
-        this.isManual = !this[str];
-      } else {
-        this.isNtp = !this[str];
-      }
-      this.syncType = this.isNtp ? "1" : "2";
-      if (this.isManual) this.parseTime();
-    },
+    // changeSwitch(str) {
+    //   if (str == "isNtp") {
+    //     this.isManual = !this[str];
+    //   } else {
+    //     this.isNtp = !this[str];
+    //   }
+    //   this.syncType = this.isNtp ? "1" : "2";
+    //   if (this.isManual) this.parseTime();
+    // },
   },
   computed: {
     activeUserRole() {
@@ -1475,28 +1523,18 @@
     },
     isShowDeleteAccount() {
       if (this.curUserRole == "瓒呯骇绠$悊鍛�") {
-        if (this.activeUserRole == "瓒呯骇绠$悊鍛�") {
-          return false;
-        }
-        return true;
+        return this.activeUserRole != "瓒呯骇绠$悊鍛�";
       } else if (this.curUserRole == "绠$悊鍛�") {
-        if (this.activeUserRole == "鏅�氱敤鎴�") {
-          return true;
-        }
-        return false;
+        return this.activeUserRole == "鏅�氱敤鎴�";
       }
       return false;
     },
     isShowPermitBtn() {
       if (this.curUserRole == "绠$悊鍛�") {
-        if (this.activeUserRole == "鏅�氱敤鎴�") {
-          return true;
-        }
-        return false;
-      } else if (this.curUserRole == "鏅�氱敤鎴�") {
-        return false;
+        return this.activeUserRole == "鏅�氱敤鎴�";
+      } else {
+        return this.curUserRole != "鏅�氱敤鎴�";
       }
-      return true;
     },
     searchArrForShow() {
       if (this.searchText == "") {
@@ -1520,21 +1558,23 @@
   background-color: rgba(255, 255, 255, 0.9);
   backdrop-filter: blur(4px);
   .border-change {
-    border-radius: 20px !important;
+    border-radius: 15px !important;
   }
   .search-box {
     width: 332px;
     z-index: 999;
-    // margin: 55px auto;
     position: fixed;
     left: calc(50% - 166px);
     top: 50px;
-    background: rgba(255, 255, 255, 0.8);
 
-    border: 2px solid #4e94ff;
+    border: 2px solid var(--colorCard);
     box-sizing: border-box;
     backdrop-filter: blur(4px);
     border-radius: 40px;
+
+    .search-res {
+      background-color: rgba(255,255,255,.5);
+    }
     .search-input {
       font-size: 14px;
       .el-input--mini .el-input__inner {
@@ -1562,6 +1602,30 @@
         transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
         width: 100%;
         font-weight: bold;
+
+        &::-webkit-input-placeholder { /* WebKit browsers */
+        color: #828282;
+        font-weight: normal;
+        font-size: 14px;
+        }
+        &:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
+        color: #828282;
+        font-weight: normal;
+        font-size: 14px;
+        }
+        &::-moz-placeholder { /* Mozilla Firefox 19+ */
+        color: #828282;
+        font-weight: normal;
+        font-size: 14px;
+        }
+        &:-ms-input-placeholder { /* Internet Explorer 10+ */
+        color: #828282;
+        font-weight: normal;
+        font-size: 14px;
+
+      }
+
+        
       }
       .el-input__suffix {
         display: flex;
@@ -1590,7 +1654,7 @@
         text-align: left;
         box-sizing: border-box;
         padding: 0 20px;
-        color: #333333;
+        color: #4F4F4F;
         font-size: 14px;
         cursor: pointer;
       }
@@ -1600,20 +1664,19 @@
         text-align: left;
         box-sizing: border-box;
         padding: 0 20px;
-        color: #333333;
+        color: #4F4F4F;
         font-size: 14px;
       }
       .res-bar:hover {
         background: #f5f5f6 10%;
         font-weight: bold;
-        color: #4e94ff;
+        color: var(--colorCard);
       }
-      // .res-bar:last-child {
-      //   border-radius: 0 0 20px 20px;
-      // }
     }
   }
   .nav-items {
+    max-width: 960px;
+    margin: 0 auto;
     .nav-child {
       box-sizing: border-box;
       background-color: rgba(251, 251, 255, 0.1);
@@ -1628,12 +1691,19 @@
       justify-content: center;
       align-items: center;
       cursor: pointer;
+      border: 2px solid #F2F2F7;
 
-      // box-shadow: 2px 2px 4px rgb(226, 226, 226);
+      &-active {
+        border: 2px solid #4E94FF;
+      }
+
+      &:hover {
+        background: #F2F2F7;
+      }
+
       .child-info {
         display: flex;
         flex-direction: column;
-        // justify-content: space-around;
         height: 100%;
         .welcome-icon {
           font-size: 72px;
@@ -1641,22 +1711,18 @@
         img {
           width: 64px;
           margin: 0 auto;
-          margin-top: 65px;
+          margin-top: 61px;
           height: 50px;
         }
         .welcome-title {
           font-size: 16px;
           font-weight: bold;
           margin-top: 24px;
-          color: #333333;
+          color: #4F4F4F;
         }
       }
     }
-    .nav-child:hover {
-      // box-shadow: 4px 4px 12px rgb(218, 218, 218);
-      // transform: translate3d(0, -1px, 0);
-      // transition: all 0.3s;
-    }
+   
   }
 }
 .container {
@@ -1667,8 +1733,9 @@
   flex-basis: auto;
   box-sizing: border-box;
   background-color: #fff;
-  border-top: 1px solid #e1e0e6;
-
+  color: #4F4F4F;
+  border-top: 2px solid #E1E0E6;
+  overflow-x: hidden;
   .container-left {
     height: 100%;
     width: 244px;
@@ -1676,32 +1743,27 @@
     box-sizing: border-box;
     flex-shrink: 0;
     padding: 10px;
-    // border-right: 5px solid rgba(248, 248, 248, 1);
     box-sizing: border-box;
     .left-card {
       height: 56px;
       cursor: pointer;
       border-radius: 8px;
-      margin-bottom: 10px;
+      margin-bottom: 4px;
       display: flex;
       align-items: center;
       padding: 0 20px;
-      // .iconfont {
-      //   margin-left: 25px;
-      //   margin-right: 10px;
-      //   font-size: 24px;
-      // }
+
       .card-text {
         margin-left: 20px;
-        color: #333333;
+        color: #4F4F4F;
         font-weight: bold;
         font-size: 16px;
         line-height: 22px;
         height: 22px;
       }
       img {
-        height: 40px;
-        width: 40px;
+        height: 30px;
+        width: 30px;
       }
       .w {
         display: none;
@@ -1711,7 +1773,7 @@
       }
     }
     .left-card-active {
-      background-color: #4e94ff !important;
+      background-color: var(--colorCard) !important;
       .card-text {
         color: #fff !important;
       }
@@ -1728,52 +1790,80 @@
   }
   .container-center {
     height: 100%;
-    width: 280px;
+    width: 300px;
     overflow: auto;
     flex-shrink: 0;
     padding: 10px;
-    border-right: 5px solid rgba(248, 248, 248, 1);
+    padding-top: 6px;
+    padding-right: 5px;
+    border-top: 4px solid #f2f2f7;
+    border-left: 4px solid #f2f2f7;
     box-sizing: border-box;
+    background-color: #fbfaff;
     .account-left {
       height: 100%;
       .account-list {
         height: calc(85%);
         overflow: auto;
+        padding-right: 5px;
+       &::-webkit-scrollbar-track, &::-webkit-scrollbar-thumb { visibility: hidden; }
+       &::-webkit-scrollbar {
+         background-color: #fff;
+       }
+
+        &.account-list-scroll::-webkit-scrollbar-thumb, &.account-list-scroll::-webkit-scrollbar-track {
+          visibility: visible;
+        }
+        &.account-list-scroll::-webkit-scrollbar {
+        background-color: #f5f5f5;
+       }
       }
       .add-account {
-        color: rgba(61, 104, 225, 1);
-        margin-top: 15px;
+        color: var(--colorCard);
+        margin-top: 30px;
         .el-icon-circle-plus {
           cursor: pointer;
           font-size: 38px;
         }
       }
       .account-card {
-        height: 50px;
-        background-color: rgba(248, 248, 248, 1);
-        margin-bottom: 10px;
+        height: 60px;
+        background-color: #f2f2f7;
+        margin-bottom: 4px;
         display: flex;
         align-items: center;
-        padding: 0 20px;
+        padding: 0 5px 0 20px;
+
         box-sizing: border-box;
-        border-radius: 10px;
+        border-radius: 8px;
         cursor: pointer;
         justify-content: space-between;
-
         .touxiang {
           display: flex;
           align-items: center;
           img {
             border: none;
-
-            height: 35px;
-            width: 35px;
-            border-radius: 17.5px;
+            height: 44px;
+            width: 44px;
+            border-radius: 50%;
+          }
+        }
+        .login-tag {
+          width: 72px;
+          height: 19.21px;
+          background: #ffffff;
+          border-radius: 20px;
+          color: #4F4F4F;
+          transform: scale(0.833333);
+          line-height: 22.21px;
+          span {
+            font-size: 13px;
           }
         }
         .user-name {
-          margin-left: 10px;
+          margin-left: 20px;
           font-size: 14px;
+          font-weight: bold;
         }
       }
 
@@ -1791,21 +1881,23 @@
     position: relative;
     padding: 30px 40px;
     background: #f2f2f7;
+    border-left: 4px solid #f2f2f7;
+    border-top: 4px solid #f2f2f7;
     .account-right {
+      height: 100%;
       .account-content {
+        margin-top: 40px;
         .content-top {
-          height: 120px;
-          width: 350px;
           margin: 0 auto;
           display: flex;
+          flex-direction: column;
           align-items: center;
-          justify-content: center;
-          margin-bottom: 20px;
           .touxiang-big {
             width: 100px;
             height: 100px;
             position: relative;
             border-radius: 50px;
+            margin-bottom: 20px;
             img {
               border: none;
               width: 100px;
@@ -1833,10 +1925,9 @@
                 border-radius: 3px;
                 border: 1px solid transparent;
                 font-size: 14px;
+                font-weight: bold;
               }
               .enable:hover {
-                color: orangered;
-                font-size: 15px;
                 transition: all 0.2s;
               }
               .selected {
@@ -1848,83 +1939,193 @@
             height: 100px;
             display: flex;
             flex-direction: column;
-            align-items: baseline;
+            align-items: center;
+            color: #4F4F4F;
             min-width: 200px;
-            .username {
-              margin: 0 15px;
+            .user-name {
+              margin-bottom: 10px;
               height: 28px;
               line-height: 28px;
               text-align: left;
-              font-size: 16px;
               display: flex;
               align-items: center;
+              font-weight: bold;
+              font-size: 16px;
             }
             .nick-name {
               margin: 5px 15px;
               font-size: 14px;
               display: flex;
+              font-weight: bold;
               height: 30px;
               align-items: center;
               .nick-text {
                 width: fit-content;
                 text-align: left;
               }
-
+              .edit-icon {
+                font-size: 13px;
+                margin-left: 10px;
+              }
+              .confirm-icon {
+                color: var(--colorCard);
+                font-size: 18px;
+                margin-left: 10px;
+              }
+              .clear-icon {
+                margin-left: 10px;
+                font-size: 18px;
+              }
               .iconfont {
-                font-size: 14px;
-                margin-left: 5px;
                 cursor: pointer;
+                font-weight: normal;
               }
               .el-input--mini {
-                font-size: 14px;
-                width: 83px;
+                width: 82px;
                 .el-input__inner {
-                  padding: 0 5px;
+                  padding: 0 8px;
+                  height: 20px;
+                  line-height: 20px;
+                  /* border: 1px solid; */
+                  border: 1px solid var(--colorCard);
+                  border-radius: 20px;
+                  background: #f2f2f7;
                 }
               }
             }
             .user-role {
-              margin: 5px 0 0 15px;
-              font-size: 14px;
-              color: skyblue;
+              width: 75px;
+              height: 18px;
+              border: 1px solid #333333;
+              box-sizing: border-box;
+              border-radius: 20px;
+              font-weight: bold;
+              font-size: 12px;
+              margin-bottom: 20px;
             }
           }
+        }
+        .chang-pic-arr {
+          margin-top: 40px;
         }
         .list-btn {
           display: flex;
           flex-direction: column;
           align-items: center;
-          .item-btn {
-            width: 500px;
-            height: 45px;
-            background-color: #f0f0f0;
-            margin-bottom: 15px;
-            border-radius: 10px;
-            line-height: 45px;
-            font-size: 15px;
-            cursor: pointer;
+          margin-top: 80px;
+          .alt-pw-btn {
+            background: rgba(78, 148, 255, 0.1);
+            border: 1px solid var(--colorCard);
           }
-          .item-btn:hover {
-            color: rgba(255, 153, 102, 1);
+          .del-usr-btn {
+            background: #e0e0e0;
+            color: #fc4958;
+          }
+          .auth-set-btn {
+            background: var(--colorCard);
+            color: #ffffff;
+          }
+          .item-btn {
+            width: 212px;
+            height: 40px;
+            margin-bottom: 15px;
+            line-height: 40px;
+            border-radius: 25px;
+            font-size: 16px;
+            font-weight: bold;
+            cursor: pointer;
           }
         }
       }
-      .title {
-        height: 30px;
-        line-height: 30px;
-        margin-bottom: 10px;
-        font-size: 16px;
-        font-weight: 600;
-      }
+
       .change-pw {
+        padding: 40px 10px;
+        max-width: 600px;
+        margin: 0 auto;
+        .title {
+          font-weight: bold;
+          font-size: 16px;
+          line-height: 22px;
+          color: #4F4F4F;
+          margin-bottom: 40px;
+          height: 28px;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          .icon {
+            font-size: 28px;
+            font-weight: normal;
+            margin-right: 10px;
+          }
+        }
+        .el-form-item__content {
+          line-height: 48px;
+          display: flex;
+          align-items: center;
+          background: #f2f2f7;
+          border-radius: 8px;
+          padding: 0 15px 0 20px;
+          .el-select-dropdown__item {
+            color: #4F4F4F;
+            height: 32px;
+            font-size: 12px;
+            line-height: 32px;
+            text-align: center;
+          }
+          .el-popper {
+            margin-top: 0;
+            background: #fbfaff;
+            box-shadow: 0px 2px 6px rgb(0 0 0 / 18%);
+            border-radius: 2px;
+            .el-select-dropdown__item.hover,
+            .el-select-dropdown__item:hover {
+              background-color: #f2f2f7;
+              color: var(--colorCard);
+            }
+          }
+        }
+        .el-form-item__error {
+          line-height: 0.7;
+          left: 20px;
+        }
+        .el-form-item {
+          .el-input__inner {
+            background-color: #ffffff;
+            border: 2px solid transparent;
+            border-radius: 20px;
+            height: 32px;
+          line-height: 32px;
+            padding: 0 15px;
+            font-size: 14px;
+            font-weight: bold;
+          }
+          .el-input__inner:focus{
+            border: 2px solid var(--colorCard);
+          }
+          .el-input__inner::placeholder {
+            color: #c0c4cc;
+            font-size: 12px;
+            font-weight: normal;
+          }
+          .el-select {
+            width: 100%;
+          }
+          .el-select .el-input .el-select__caret {
+            color: #4F4F4F;
+            font-size: 14px;
+            font-weight: 600;
+          }
+        }
         .p-title {
+          height: 48px;
           text-align: left;
-          font-size: 15px;
-          margin-top: 5px;
+          line-height: 48px;
+          width: 90px;
+          font-weight: 600;
         }
       }
       .el-form-item {
-        margin-bottom: 0;
+        margin-bottom: 15px;
         .el-input__inner {
           background-color: rgba(240, 240, 240, 1);
           border: none;
@@ -1934,9 +2135,9 @@
           font-size: 15px;
         }
         .el-input__clear {
-          color: dimgray;
-          font-size: 17px;
-          line-height: 45px;
+          color: #4F4F4F;
+          font-size: 16px;
+          line-height: 48px;
         }
         .el-input__suffix {
           right: 1px;
@@ -1946,80 +2147,190 @@
         }
       }
       .permission {
-        .line {
-          display: flex;
-          align-items: center;
-          height: 50px;
-          padding: 0 25px;
-          background-color: rgba(248, 248, 248, 1);
-          justify-content: space-between;
-          border-radius: 12px;
-          margin-bottom: 10px;
-          .name {
-            font-size: 14px;
+        height: 100%;
+
+        .title {
+          height: 22px;
+          line-height: 48px;
+          font-size: 16px;
+          font-weight: 600;
+          color: #4F4F4F;
+          height: 48px;
+          background: #fbfaff;
+          border-bottom: 2px solid #f2f2f7;
+        }
+        .tree-window {
+          padding: 10px 15px;
+          height: calc(100% - 155px);
+          border-bottom: 2px solid #f2f2f7;
+          .el-tree {
+            background: initial;
+            color: #333;
+            height: 100%;
+            overflow: auto;
+            max-width: 600px;
+            margin: 0 auto;
+            .el-tree-node {
+              background: initial;
+              .el-tree-node__content {
+                height: 30px;
+                background: #f2f2f7;
+                margin-bottom: 4px;
+                border-radius: 4px;
+                box-sizing: border-box;
+                border: 2px solid transparent;
+                .el-tree-node__content > .el-tree-node__expand-icon {
+                  padding: 6px 18px;
+                  font-size: 16px;
+                }
+                .el-checkbox__input.is-checked .el-checkbox__inner,
+                .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+                  background-color: var(--colorCard);
+                  border-color: var(--colorCard);
+                }
+                .el-checkbox__inner {
+                  border-radius: 1px;
+                  border: 1px solid var(--colorCard);
+                }
+                .el-tree-node__label {
+                  font-size: 13px;
+                  font-weight: 600;
+                }
+              }
+              .el-tree-node__content:hover {
+                border: 2px solid var(--colorCard);
+              }
+            }
           }
+        }
+        .btns {
+          margin-top: 19px;
         }
       }
 
       .upload-group {
-        height: 120px;
-        width: 360px;
+        width: 340px;
+
         margin: 0 auto;
         overflow: hidden;
         .upload-jpg {
           position: relative;
-          height: 48px;
-          width: 48px;
+          height: 44px;
+          width: 44px;
           float: left;
           margin: 0 10px;
-          margin-bottom: 10px;
+          margin-bottom: 20px;
           background-color: rgba(242, 242, 242, 1);
           border: 2px solid transparent;
           border-radius: 50%;
           cursor: pointer;
           img {
-            height: 48px;
-            width: 48px;
+            height: 44px;
+            width: 44px;
             border-radius: 50%;
           }
           .img-mask {
             position: absolute;
             left: 0;
             top: 0;
-            height: 48px;
-            width: 48px;
+            height: 44px;
+            width: 44px;
             background-color: rgba(0, 0, 0, 0.3);
             color: white;
             border-radius: 50%;
             display: flex;
             justify-content: center;
             align-items: center;
+            .icon {
+              font-size: 20px;
+            }
             .selected {
               font-size: 22px;
             }
           }
         }
         .upload-jpg-border {
-          border: 2px solid cornflowerblue;
+          border: 2px solid var(--colorCard);
         }
       }
       .add-account-page {
+        margin-top: 20px;
+        padding: 0 10px;
+        .title {
+          height: 22px;
+          margin-bottom: 20px;
+          font-weight: bold;
+          font-size: 16px;
+          line-height: 22px;
+        }
         .fill-group {
+          max-width: 450px;
+          margin-top: 10px;
+
+          margin: 0 auto;
           .el-form-item__content {
-            line-height: 44px;
+            line-height: 48px;
+            display: flex;
+            align-items: center;
+            background: #f2f2f7;
+            border-radius: 8px;
+            padding: 0 15px 0 20px;
+            .el-select-dropdown__item {
+              color: #4F4F4F;
+              height: 32px;
+              font-size: 12px;
+              line-height: 32px;
+              text-align: center;
+            }
+            .el-popper {
+              margin-top: 0;
+              background: #fbfaff;
+              box-shadow: 0px 2px 6px rgb(0 0 0 / 18%);
+              border-radius: 2px;
+              .el-select-dropdown__item.hover,
+              .el-select-dropdown__item:hover {
+                background-color: #f2f2f7;
+                color: var(--colorCard);
+              }
+            }
           }
           .p-title {
-            height: 34px;
+            height: 48px;
             text-align: left;
-            line-height: 50px;
+            line-height: 48px;
+            width: 90px;
+            font-weight: 600;
           }
           .el-form-item__error {
-            line-height: 0.8;
-            left: 3.3%;
+            line-height: 0.7;
+            left: 20px;
           }
           .el-form-item {
+            .el-input__inner {
+            background-color: #ffffff;
+            border: 2px solid transparent;
+            border-radius: 20px;
+            height: 32px;
+          line-height: 32px;
+            padding: 0 15px;
+            font-size: 14px;
+            font-weight: bold;
+          }
+          .el-input__inner:focus{
+            border: 2px solid var(--colorCard);
+          }
+            .el-input__inner::placeholder {
+              color: #c0c4cc;
+              font-size: 12px;
+              font-weight: normal;
+            }
             .el-select {
               width: 100%;
+            }
+            .el-select .el-input .el-select__caret {
+              color: #4F4F4F;
+              font-size: 14px;
+              font-weight: 600;
             }
           }
         }
@@ -2028,7 +2339,7 @@
     .datetime-right {
       .datetime-left {
         .device-time {
-          color: #333333;
+          color: #4F4F4F;
           .title {
             display: flex;
             justify-content: center;
@@ -2098,7 +2409,7 @@
               letter-spacing: 0.5px;
             }
             .highlight-radio {
-              background: #4e94ff;
+              background: var(--colorCard);
               color: #ffffff;
             }
           }
@@ -2235,7 +2546,7 @@
             }
             .right {
               display: flex;
-              align-items: baseline;
+              align-items: center;
               .desc-min {
                 font-size: 12px;
                 font-weight: bold;
@@ -2251,22 +2562,20 @@
                   background: #f2f2f7;
                 }
                 .el-input__inner:focus {
-                  border: 2px solid #4e94ff;
+                  border: 2px solid var(--colorCard);
                 }
               }
               .el-button--text {
                 margin-left: 42px;
                 color: #409eff;
-                /* background: 0 0; */
-                padding-left: 0;
-                padding-right: 0;
                 background: rgba(78, 148, 255, 0.1);
-                border: 1px solid #4e94ff;
+                border: 1px solid var(--colorCard);
                 box-sizing: border-box;
                 border-radius: 20px;
                 width: 68px;
                 color: #333;
                 font-weight: bold;
+                padding: 6px 20px;
               }
             }
           }
@@ -2305,7 +2614,6 @@
       }
       .ip-input-container {
         max-width: none !important;
-        display: inline-block;
         width: 336px;
         height: 34px;
         line-height: normal;
@@ -2317,9 +2625,11 @@
         border: 2px solid transparent;
       }
     }
-    .btns {
+
+  }
+      .btns {
       margin: 0 auto;
-      margin-top: 30px;
+      margin-top: 40px;
       width: fit-content;
       display: flex;
       .cancel {
@@ -2338,13 +2648,16 @@
         height: 40px;
         cursor: pointer;
         border-radius: 25px;
-        background-color: #4e94ff;
+        background-color: var(--colorCard);
         color: #fff;
         line-height: 40px;
         font-weight: bold;
         font-size: 16px;
       }
     }
+  .container-right-for-account {
+    background: #fbfaff;
+    padding: 0;
   }
 }
 </style>

--
Gitblit v1.8.0