From c0c034b3ef0fdf0fd9c802d5984dbd717db6817a Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 06 九月 2023 17:54:55 +0800
Subject: [PATCH] 定制桌面.

---
 src/pages/settings/index/index.vue | 1365 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 630 insertions(+), 735 deletions(-)

diff --git a/src/pages/settings/index/index.vue b/src/pages/settings/index/index.vue
index 4642cfc..cb6f2ae 100644
--- a/src/pages/settings/index/index.vue
+++ b/src/pages/settings/index/index.vue
@@ -2,11 +2,10 @@
   <div class="container" v-if="!showWelcome">
     <div class="container-left">
       <div
-        class="left-card"
-        :class="activeIndex == i ? 'left-card-active' : ''"
         v-for="(item, i) in menuArr"
         :key="i"
-        @click="openMenu(i)"
+        :class="activeIndex == item.name ? 'left-card-active left-card' : 'left-card'"
+        @click="openMenu(item.name)"
       >
         <img :src="item.blackIcon" class="b" alt="" />
         <img :src="item.whiteIcon" class="w" alt="" />
@@ -14,9 +13,14 @@
       </div>
     </div>
 
-    <div class="container-center" v-if="activeIndex == 0">
-      <div class="account-left" v-if="activeIndex == 0">
-        <div class="account-list">
+    <div class="container-center" v-if="activeIndex == '璐︽埛'">
+      <div class="account-left">
+        <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' : ''"
@@ -26,11 +30,7 @@
             @click="openAccount(item, index)"
           >
             <div class="touxiang">
-              <img
-                v-if="item.headpic"
-                :src="`data:image/png;base64,${item.headpic}`"
-                alt=""
-              />
+              <img v-if="item.headpic" :src="`data:image/png;base64,${item.headpic}`" alt="" />
               <span class="user-name">{{ item.username }}</span>
             </div>
             <div class="login-tag" v-if="item.id == curUserID">
@@ -39,49 +39,31 @@
           </div>
         </div>
         <div class="add-account" v-if="curUserRole != '鏅�氱敤鎴�'">
-          <i
-            class="el-icon-circle-plus"
-            style="font-size: 40px"
-            @click="openAdd"
-          ></i>
+          <i class="el-icon-circle-plus" style="font-size: 40px" @click="openAdd"></i>
         </div>
       </div>
     </div>
     <div
       class="container-right"
-      v-if="activeIndex == 0 || activeIndex == 1"
-      :class="activeIndex == 0 ? 'container-right-for-account' : ''"
+      v-if="activeIndex == '璐︽埛' || activeIndex == '鏃ユ湡鏃堕棿'"
+      :class="activeIndex == '璐︽埛' ? 'container-right-for-account' : ''"
     >
       <div class="account-right" v-if="activeIndex == 0">
-        <div
-          class="account-content"
-          v-if="inAccountDetail == false && isAddAccount == false"
-        >
+        <div class="account-content" v-if="inAccountDetail == false && isAddAccount == false">
           <div class="content-top">
-            <div
-              class="touxiang-big"
-              @mouseenter="showChangePic = true"
-              @mouseleave="showChangePic = false"
-            >
+            <div class="touxiang-big" @mouseenter="showChangePic = true" @mouseleave="showChangePic = false">
               <img
                 v-if="activeAccountItem.headpic"
                 :src="`data:image/png;base64,${activeAccountItem.headpic}`"
                 alt=""
               />
               <div class="touxiang-mask" v-show="showChangePic">
-                <span class="enable" v-if="!showJPGArr" @click="editHeadPic"
-                  >缂栬緫澶村儚</span
-                >
-               
+                <span class="enable" v-if="!showJPGArr" @click="editHeadPic">缂栬緫澶村儚</span>
               </div>
             </div>
             <div class="user-desc">
               <div class="user-name">
-                <span
-                  class="icon iconfont"
-                  style="font-size: 19px; margin-right: 4px"
-                  >&#xe737;</span
-                >
+                <span class="icon iconfont" style="font-size: 19px; margin-right: 4px">&#xe737;</span>
                 <span>{{ activeAccountItem.username }}</span>
               </div>
               <div class="user-role">
@@ -89,30 +71,13 @@
               </div>
               <div class="nick-name">
                 <span class="nick-text">鏄电О锛�</span>
-                <span v-show="!showInputNickName">{{
-                  activeAccountItem.nickname
-                }}</span>
-                <el-input
-                  size="mini"
-                  v-model="inputNickName"
-                  v-if="showInputNickName"
-                ></el-input>
-                <span
-                  v-show="!showInputNickName"
-                  class="icon iconfont edit-icon"
-                  @click="editNickName"
-                  >&#xe60c;</span
-                >
-                <span
-                  v-show="showInputNickName"
-                  class="icon iconfont clear-icon"
-                  @click="showInputNickName = false"
+                <span v-show="!showInputNickName">{{ activeAccountItem.nickname }}</span>
+                <el-input size="mini" v-model="inputNickName" v-if="showInputNickName"></el-input>
+                <span v-show="!showInputNickName" class="icon iconfont edit-icon" @click="editNickName">&#xe60c;</span>
+                <span v-show="showInputNickName" class="icon iconfont clear-icon" @click="showInputNickName = false"
                   >&#xe785;</span
                 >
-                <span
-                  v-show="showInputNickName"
-                  class="icon iconfont confirm-icon"
-                  @click="hideInputNick"
+                <span v-show="showInputNickName" class="icon iconfont confirm-icon" @click="hideInputNick"
                   >&#xe72e;</span
                 >
               </div>
@@ -127,12 +92,7 @@
                 :key="index"
                 @click="pickHeadDefPic(item, index)"
               >
-                <img
-                  v-if="item"
-                  :src="`data:image/png;base64,${item.path}`"
-                  alt=""
-                  srcset=""
-                />
+                <img v-if="item" :src="`data:image/png;base64,${item.path}`" alt="" srcset="" />
                 <div class="img-mask" v-if="selectedPic == index">
                   <span class="icon iconfont enable">&#xe62a;</span>
                 </div>
@@ -147,18 +107,10 @@
             <div class="item-btn alt-pw-btn" @click="showChangePassword">
               淇敼瀵嗙爜
             </div>
-            <div
-              class="item-btn del-usr-btn"
-              v-if="isShowDeleteAccount"
-              @click="deleteAccount"
-            >
+            <div class="item-btn del-usr-btn" v-if="isShowDeleteAccount" @click="deleteAccount">
               鍒犻櫎璐︽埛
             </div>
-            <div
-              v-if="isShowPermitBtn"
-              class="item-btn auth-set-btn"
-              @click="openPermission"
-            >
+            <div v-if="isShowPermitBtn" class="item-btn auth-set-btn" @click="openPermission">
               鏉冮檺璁剧疆
             </div>
           </div>
@@ -169,39 +121,19 @@
             <span class="icon iconfont">&#xe738;</span>
             <span>淇敼瀵嗙爜</span>
           </div>
-          <el-form
-            :model="passwordForm"
-            :rules="pwRules"
-            ref="passwordForm"
-            class="password-form"
-          >
-            <el-form-item
-              prop="curPassword"
-              v-if="activeAccountItem.id == curUserID"
-            >
+          <el-form :model="passwordForm" :rules="pwRules" ref="passwordForm" class="password-form">
+            <el-form-item prop="curPassword" v-if="activeAccountItem.id == curUserID">
               <div class="p-title">褰撳墠瀵嗙爜</div>
 
-              <el-input
-                placeholder="蹇呭~"
-                v-model="passwordForm.curPassword"
-                show-password
-              ></el-input>
+              <el-input placeholder="蹇呭~" v-model="passwordForm.curPassword" show-password></el-input>
             </el-form-item>
             <el-form-item prop="newPassword">
               <div class="p-title">鏂板瘑鐮�</div>
-              <el-input
-                placeholder="蹇呭~"
-                v-model="passwordForm.newPassword"
-                show-password
-              ></el-input>
+              <el-input placeholder="蹇呭~" v-model="passwordForm.newPassword" show-password></el-input>
             </el-form-item>
             <el-form-item prop="confirmPassword">
               <div class="p-title">纭瀵嗙爜</div>
-              <el-input
-                placeholder="蹇呭~"
-                v-model="passwordForm.confirmPassword"
-                show-password
-              ></el-input>
+              <el-input placeholder="蹇呭~" v-model="passwordForm.confirmPassword" show-password></el-input>
             </el-form-item>
           </el-form>
           <div class="btns">
@@ -212,35 +144,6 @@
 
         <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">
-              <div class="name">{{ item.name }}</div>
-              <el-switch
-                v-model="item.selected"
-                active-color="rgba(61, 104, 225, 1)"
-                @change="fatherChange(item)"
-              >
-              </el-switch>
-            </div>
-            <div v-if="item.children">
-              <div
-                class="line"
-                style="margin-left: 55px"
-                v-for="x in item.children"
-                :key="x.id"
-              >
-                <div class="name">{{ x.name }}</div>
-                <el-switch
-                  v-model="x.selected"
-                  active-color="rgba(61, 104, 225, 1)"
-                  @change="childrenChange(item)"
-                >
-                </el-switch>
-              </div>
-            </div>
-          </div> -->
-          <!--    -->
           <div class="tree-window">
             <el-tree
               ref="treeMenus"
@@ -269,68 +172,35 @@
               :key="index"
               @click="pickHeadDefPic(item, index)"
             >
-              <img
-                v-if="item"
-                :src="`data:image/png;base64,${item.path}`"
-                alt=""
-                srcset=""
-              />
+              <img v-if="item" :src="`data:image/png;base64,${item.path}`" alt="" srcset="" />
               <div class="img-mask" v-if="selectedPic == index">
                 <span class="icon iconfont enable">&#xe62a;</span>
               </div>
             </div>
           </div>
           <div class="fill-group">
-            <el-form
-              :model="addForm"
-              :rules="addRules"
-              ref="addForm"
-              class="add-form"
-            >
+            <el-form :model="addForm" :rules="addRules" ref="addForm" class="add-form">
               <el-form-item prop="userName">
                 <div class="p-title">鐢ㄦ埛鍚�</div>
-                <el-input
-                  placeholder="2~10 浣嶅瓧绗︼紝涓嶈兘浠ユ暟瀛楀紑澶达紝涓嶅彲鍖呭惈姹夊瓧"
-                  v-model="addForm.userName"
-                ></el-input>
+                <el-input 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="璇烽�夋嫨瑙掕壊"
-                  :popper-append-to-body="false"
-                >
-                  <el-option
-                    v-for="(item, i) in roleList"
-                    :key="i"
-                    :label="item.name"
-                    :value="item.id"
-                  ></el-option>
+                <el-select v-model="addForm.roleId" placeholder="璇烽�夋嫨瑙掕壊" :popper-append-to-body="false">
+                  <el-option v-for="(item, i) in roleList" :key="i" :label="item.name" :value="item.id"></el-option>
                 </el-select>
               </el-form-item>
               <el-form-item prop="nickName">
                 <div class="p-title">鏄电О</div>
-                <el-input
-                  placeholder="閫夊~锛�2~10 浣嶅瓧绗�"
-                  v-model="addForm.nickName"
-                ></el-input>
+                <el-input 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="蹇呭~锛岃嚦灏戜负 6 浣�"
-                  v-model="addForm.password"
-                  show-password
-                ></el-input>
+                <el-input placeholder="蹇呭~锛岃嚦灏戜负 6 浣�" v-model="addForm.password" show-password></el-input>
               </el-form-item>
               <el-form-item prop="confirmPassword">
                 <div class="p-title">纭瀵嗙爜</div>
-                <el-input
-                  placeholder="蹇呭~"
-                  v-model="addForm.confirmPassword"
-                  show-password
-                ></el-input>
+                <el-input placeholder="蹇呭~" v-model="addForm.confirmPassword" show-password></el-input>
               </el-form-item>
             </el-form>
           </div>
@@ -341,7 +211,7 @@
         </div>
       </div>
 
-      <div class="datetime-right" v-if="activeIndex == 1">
+      <div class="datetime-right" v-if="activeIndex == '鏃ユ湡鏃堕棿'">
         <div class="datetime-left">
           <div class="device-time">
             <div class="title">
@@ -357,18 +227,10 @@
 
           <div class="adjust-zone">
             <div class="two-radio">
-              <div
-                class="radio"
-                :class="isNtp ? '' : 'highlight-radio'"
-                @click="isNtp = false"
-              >
+              <div class="radio" :class="isNtp ? '' : 'highlight-radio'" @click="isNtp = false">
                 鎵嬪姩鏍℃椂
               </div>
-              <div
-                class="radio"
-                :class="isNtp ? 'highlight-radio' : ''"
-                @click="isNtp = true"
-              >
+              <div class="radio" :class="isNtp ? 'highlight-radio' : ''" @click="isNtp = true">
                 NTP鏍℃椂
               </div>
             </div>
@@ -391,14 +253,8 @@
                       />
                     </div>
                     <div class="control">
-                      <span class="icon iconfont" @click="plusOne('hrs')"
-                        >&#xe60e;</span
-                      >
-                      <span
-                        class="icon iconfont fanzhuan"
-                        @click="minusOne('hrs')"
-                        >&#xe60e;</span
-                      >
+                      <span class="icon iconfont" @click="plusOne('hrs')">&#xe60e;</span>
+                      <span class="icon iconfont fanzhuan" @click="minusOne('hrs')">&#xe60e;</span>
                     </div>
                   </div>
                   <div class="sep">:</div>
@@ -417,14 +273,8 @@
                       />
                     </div>
                     <div class="control">
-                      <span class="icon iconfont" @click="plusOne('min')"
-                        >&#xe60e;</span
-                      >
-                      <span
-                        class="icon iconfont fanzhuan"
-                        @click="minusOne('min')"
-                        >&#xe60e;</span
-                      >
+                      <span class="icon iconfont" @click="plusOne('min')">&#xe60e;</span>
+                      <span class="icon iconfont fanzhuan" @click="minusOne('min')">&#xe60e;</span>
                     </div>
                   </div>
                   <div class="sep">:</div>
@@ -443,14 +293,8 @@
                       />
                     </div>
                     <div class="control">
-                      <span class="icon iconfont" @click="plusOne('sec')"
-                        >&#xe60e;</span
-                      >
-                      <span
-                        class="icon iconfont fanzhuan"
-                        @click="minusOne('sec')"
-                        >&#xe60e;</span
-                      >
+                      <span class="icon iconfont" @click="plusOne('sec')">&#xe60e;</span>
+                      <span class="icon iconfont fanzhuan" @click="minusOne('sec')">&#xe60e;</span>
                     </div>
                   </div>
                 </div>
@@ -527,21 +371,14 @@
               </div>
 
               <div class="manual-time">
-                <switchBar
-                  :barName="`鍚屾鏈绠楁満鏃堕棿`"
-                  @switchChange="syncBrowser"
-                  :value="isSyncBrowser"
-                ></switchBar>
+                <switchBar :barName="`鍚屾鏈绠楁満鏃堕棿`" @switchChange="syncBrowser" :value="isSyncBrowser"></switchBar>
               </div>
             </div>
 
             <div class="ntp-wrap" v-if="isNtp">
               <el-form>
                 <el-form-item label="鏈嶅姟鍣ㄥ湴鍧�">
-                  <ipInput
-                    :ip="ntpServer"
-                    @on-blur="ntpServer = arguments[0]"
-                  ></ipInput>
+                  <ipInput :ip="ntpServer" @on-blur="ntpServer = arguments[0]"></ipInput>
                 </el-form-item>
 
                 <el-form-item label="鏍℃椂鏃堕棿闂撮殧">
@@ -556,12 +393,7 @@
                     ></el-input-number>
 
                     <span class="desc-min">鍒嗛挓</span>
-                    <el-button
-                      type="text"
-                      @click="testNTP"
-                      :loading="ntpTestLoading"
-                      >娴嬭瘯</el-button
-                    >
+                    <el-button type="text" @click="testNTP" :loading="ntpTestLoading">娴嬭瘯</el-button>
                   </div>
                 </el-form-item>
               </el-form>
@@ -576,69 +408,41 @@
       </div>
     </div>
 
-    <clusterManagement
-      v-if="activeIndex == 2"
-      ref="view_2"
-      style="width: 100%"
-    ></clusterManagement>
-    <netSettings
-      ref="view_3"
-      v-if="activeIndex == 3"
-      style="width: 100%"
-    ></netSettings>
-    <keyboardLanguage
-      ref="view_4"
-      v-if="activeIndex == 4"
-      style="width: 100%"
-    ></keyboardLanguage>
-    <generalSettings
-      ref="view_5"
-      v-if="activeIndex == 5"
-      style="width: 100%"
-    ></generalSettings>
-    <deviceInfo
-      v-if="activeIndex == 6"
-      style="width: 100%"
-      ref="view_6"
-    ></deviceInfo>
+    <clusterManagement v-if="activeIndex == '闆嗙兢绠$悊'" ref="view_2" style="width: 100%"></clusterManagement>
+    <netSettings ref="缃戠粶璁剧疆" v-if="activeIndex == '缃戠粶璁剧疆'" style="width: 100%"></netSettings>
+    <keyboardLanguage ref="閿洏鍜岃瑷�" v-if="activeIndex == '閿洏鍜岃瑷�'" style="width: 100%"></keyboardLanguage>
+    <generalSettings ref="閫氱敤璁剧疆" v-if="activeIndex == '閫氱敤璁剧疆'" style="width: 100%"></generalSettings>
+    <deviceInfo v-if="activeIndex == '璁惧淇℃伅'" style="width: 100%" ref="view_6"></deviceInfo>
+    <Authorization v-if="activeIndex == '鎺堟潈绠$悊'" style="width: 100%" ref="view_7"> </Authorization>
+    <WebManage v-if="activeIndex == '鍩熷悕绠$悊'"></WebManage>
   </div>
-  <div class="welcome-page" v-else ref="curPage">
-    <div
-      class="search-box"
-      :class="showRecomand ? 'border-change' : ''"
-      @click.stop
-    >
+  <div class="welcome-page" v-else ref="curPage" @mouseup="mouseDownIndex = ''">
+    <div class="search-box" :class="showRecomand ? 'border-change' : ''" @click.stop>
       <el-input
         class="search-input"
         placeholder="鏌ユ壘璁剧疆"
         size="mini"
         @focus="showRecomand = true"
         clearable
-        @input="filterRecomand"
         :suffix-icon="showRecomand && searchText.length ? '' : 'el-icon-search'"
         v-model="searchText"
       >
       </el-input>
 
       <div class="search-res" v-if="showRecomand">
-        <div
-          class="res-bar"
-          v-for="(item, index) in searchArrForShow"
-          :key="index"
-          @click="pickQuick(item.addr)"
-        >
+        <div class="res-bar" v-for="(item, index) in searchArrForShow" :key="index" @click="pickQuick(item.addr)">
           {{ item.name }}
         </div>
-        <div class="no-res-bar" v-if="searchArrForShow.length == 0">
-          娌℃湁鎵惧埌涓� {{ searchText }} 鐩稿叧鐨勭粨鏋�
-        </div>
+        <div class="no-res-bar" v-if="searchArrForShow.length == 0">娌℃湁鎵惧埌涓� {{ searchText }} 鐩稿叧鐨勭粨鏋�</div>
       </div>
       <div class="dummy-end" v-if="showRecomand" style="height: 14px"></div>
     </div>
     <div class="nav-items">
       <div
         class="nav-child"
-        @click="openWelcome(i)"
+        @click="openWelcome(item.name)"
+        @mousedown="mouseDownIndex = item.name"
+        :class="mouseDownIndex === item.name ? 'nav-child-active' : ''"
         v-for="(item, i) in menuArr"
         :key="i"
       >
@@ -652,7 +456,7 @@
 </template>
 
 <script>
-import { getClockInfo, saveClockInfo, testNTPserver } from "@/api/system";
+import { getClockInfo, saveClockInfo, testNTPserver } from "@/api/system"
 import {
   addUser,
   getUsers,
@@ -662,16 +466,18 @@
   deleteUser,
   getUserMenus,
   defHeadPics,
-  getRoles,
-} from "@/api/user";
-import switchBar from "../components/switchBar";
-import ipInput from "../components/IPInput";
-import clusterManagement from "../views/clusterManagement";
-import netSettings from "../views/NetSettings";
-import deviceInfo from "../views/deviceInfo";
-import keyboardLanguage from "../views/keyboardLanguage";
-import generalSettings from "../views/generalSettings";
-import { pad0, getUrlKey } from "@/api/utils";
+  getRoles
+} from "@/api/user"
+import switchBar from "../components/switchBar"
+import ipInput from "../components/IPInput"
+import clusterManagement from "../views/clusterManagement"
+import netSettings from "../views/NetSettings"
+import deviceInfo from "../views/deviceInfo"
+import keyboardLanguage from "../views/keyboardLanguage"
+import generalSettings from "../views/generalSettings"
+import Authorization from "../views/Authorization"
+import WebManage from "@/pages/settings/components/WebManage"
+import { pad0, getUrlKey } from "@/api/utils"
 
 export default {
   name: "settings",
@@ -683,40 +489,42 @@
     keyboardLanguage,
     generalSettings,
     deviceInfo,
+    Authorization,
+    WebManage
   },
   data() {
     var v2 = (rule, value, callback) => {
       if (value === "") {
-        callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
+        callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"))
       } else if (value !== this.addForm.password) {
-        callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
+        callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"))
       } else {
-        callback();
+        callback()
       }
-    };
+    }
     var v4 = (rule, value, callback) => {
       if (value === "") {
-        callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"));
+        callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�"))
       } else if (value !== this.passwordForm.newPassword) {
-        callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
+        callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"))
       } else {
-        callback();
+        callback()
       }
-    };
+    }
     const v1 = (rule, value, callback) => {
       if (value.trim() === "") {
-        callback(new Error("璇疯緭鍏ョ敤鎴峰悕"));
-        this.addForm.userName = "";
+        callback(new Error("璇疯緭鍏ョ敤鎴峰悕"))
+        this.addForm.userName = ""
       } else if (isNaN(Number(value[0])) == false) {
-        callback(new Error("涓嶈兘浠ユ暟瀛楀紑澶�"));
+        callback(new Error("涓嶈兘浠ユ暟瀛楀紑澶�"))
       } else if (/[\u4E00-\u9FA5]/g.test(value)) {
-        callback(new Error("涓嶈兘杈撳叆姹夊瓧"));
+        callback(new Error("涓嶈兘杈撳叆姹夊瓧"))
       } else if (value.length < 2 || value.length > 10) {
-        callback(new Error("闀垮害涓� 2 - 10 涓瓧绗�"));
+        callback(new Error("闀垮害涓� 2 - 10 涓瓧绗�"))
       } else {
-        callback();
+        callback()
       }
-    };
+    }
     return {
       showChangePic: false,
       syncYrs: "",
@@ -735,22 +543,22 @@
       timezone: "",
       showRecomand: false,
       searchArr: [
-        { name: "璐︽埛", addr: [0] },
-        { name: "閫氱敤璁剧疆", addr: [5] },
-        { name: "鏃堕棿褰曞儚鏃堕暱", addr: [5, 0] },
-        { name: "浜嬩欢澹伴煶", addr: [5, 1] },
-        { name: "涓�у寲璁剧疆", addr: [5, 2] },
-        { name: "闆嗙兢绠$悊", addr: [2] },
-        { name: "缃戠粶璁剧疆", addr: [3] },
-        { name: "鏃犵嚎缃戠粶", addr: [3, 1] },
-        { name: "鏈夌嚎缃戠粶", addr: [3, 2] },
-        { name: "璁惧淇℃伅", addr: [6] },
-        { name: "鏃ユ湡鏃堕棿", addr: [1] },
-        { name: "NTP鏍℃椂", addr: [1, 0] },
-        { name: "鎵嬪姩鏍℃椂", addr: [1, 1] },
-        { name: "閿洏鍜岃瑷�", addr: [4] },
-        { name: "绯荤粺璇█", addr: [4, 0] },
-        { name: "閿洏绠$悊", addr: [4, 1] },
+        // { name: "璐︽埛", addr: [0] },
+        // { name: "閫氱敤璁剧疆", addr: [5] },
+        // { name: "鏃堕棿褰曞儚鏃堕暱", addr: [5, 0] },
+        // { name: "浜嬩欢澹伴煶", addr: [5, 1] },
+        // { name: "涓�у寲璁剧疆", addr: [5, 2] },
+        { name: "闆嗙兢绠$悊", addr: ["闆嗙兢绠$悊"] },
+        { name: "缃戠粶璁剧疆", addr: ["缃戠粶璁剧疆"] },
+        { name: "鏃犵嚎缃戠粶", addr: ["缃戠粶璁剧疆", 1] },
+        { name: "鏈夌嚎缃戠粶", addr: ["缃戠粶璁剧疆", 2] },
+        { name: "璁惧淇℃伅", addr: ["璁惧淇℃伅"] },
+        { name: "鏃ユ湡鏃堕棿", addr: ["鏃ユ湡鏃堕棿"] },
+        { name: "NTP鏍℃椂", addr: ["鏃ユ湡鏃堕棿", 0] },
+        { name: "鎵嬪姩鏍℃椂", addr: ["鏃ユ湡鏃堕棿", 1] },
+        { name: "閿洏鍜岃瑷�", addr: ["閿洏鍜岃瑷�"] },
+        { name: "绯荤粺璇█", addr: ["閿洏鍜岃瑷�", 0] },
+        { name: "閿洏绠$悊", addr: ["閿洏鍜岃瑷�", 1] }
       ],
       inputNickName: "",
       showHourInput: false,
@@ -761,7 +569,6 @@
       selectedPic: null,
       showDayInput: false,
       timestamp: 0,
-      ajustType: "鎵嬪姩鏍℃椂",
       inAccountDetail: false,
       isChangePw: false,
       isSetPermission: false,
@@ -781,6 +588,7 @@
           imgUrl: "/images/settings/璐︽埛-钃�.png",
           blackIcon: "/images/settings/榛戣壊涓�绾con/璐︽埛.png",
           whiteIcon: "/images/settings/鐧借壊涓�绾con/璐︽埛.png",
+          hidden: true
         },
         {
           name: "鏃ユ湡鏃堕棿",
@@ -788,6 +596,7 @@
           imgUrl: "/images/settings/鏃堕棿鏃ユ湡.png",
           blackIcon: "/images/settings/榛戣壊涓�绾con/鏃堕棿淇℃伅.png",
           whiteIcon: "/images/settings/鐧借壊涓�绾con/鏃堕棿鏃ユ湡.png",
+          hidden: false
         },
         {
           name: "闆嗙兢绠$悊",
@@ -795,6 +604,7 @@
           imgUrl: "/images/settings/闆嗙兢绠$悊.png",
           blackIcon: "/images/settings/榛戣壊涓�绾con/闆嗙兢绠$悊.png",
           whiteIcon: "/images/settings/鐧借壊涓�绾con/闆嗙兢绠$悊.png",
+          hidden: false
         },
         {
           name: "缃戠粶璁剧疆",
@@ -802,6 +612,7 @@
           imgUrl: "/images/settings/缃戠粶璁剧疆.png",
           blackIcon: "/images/settings/榛戣壊涓�绾con/缃戠粶璁剧疆.png",
           whiteIcon: "/images/settings/鐧借壊涓�绾con/缃戠粶璁剧疆.png",
+          hidden: false
         },
         {
           name: "閿洏鍜岃瑷�",
@@ -809,6 +620,7 @@
           imgUrl: "/images/settings/閿洏鍜岃瑷�.png",
           blackIcon: "/images/settings/榛戣壊涓�绾con/閿洏鍜岃瑷�.png",
           whiteIcon: "/images/settings/鐧借壊涓�绾con/閿洏鍜岃瑷�.png",
+          hidden: false
         },
         {
           name: "閫氱敤璁剧疆",
@@ -816,6 +628,7 @@
           imgUrl: "/images/settings/閫氱敤璁剧疆.png",
           blackIcon: "/images/settings/榛戣壊涓�绾con/閫氱敤璁剧疆.png",
           whiteIcon: "/images/settings/鐧借壊涓�绾con/閫氱敤璁剧疆.png",
+          hidden: true
         },
         {
           name: "璁惧淇℃伅",
@@ -823,16 +636,36 @@
           imgUrl: "/images/settings/璁惧淇℃伅.png",
           blackIcon: "/images/settings/榛戣壊涓�绾con/璁惧淇℃伅.png",
           whiteIcon: "/images/settings/鐧借壊涓�绾con/璁惧淇℃伅.png",
+          hidden: false
         },
-      ],
+        {
+          name: "鎺堟潈绠$悊",
+          icon: "\ue7e9;",
+          imgUrl: "/images/settings/鎺堟潈绠$悊.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/鎺堟潈绠$悊.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/鎺堟潈绠$悊.png",
+          hidden: false
+        },
+        {
+          name: "鍩熷悕绠$悊",
+          icon: "\ue6db",
+          imgUrl: "/images/settings/閫氱敤璁剧疆.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/閫氱敤璁剧疆.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/閫氱敤璁剧疆.png",
+          hidden: false
+        }
+      ].filter((item) => {
+        return !item.hidden
+      }),
       accountArr: [],
       jpgArr: [],
       isNtp: false,
-      activeIndex: 0,
+      activeIndex: "鏃ユ湡鏃堕棿",
       clockTimer: null,
       inputHour: "",
       inputMin: "",
       inputSec: "",
+      mouseDownIndex: "",
       inputYrs: "",
       showInputNickName: false,
       inputMonth: "",
@@ -840,7 +673,7 @@
       passwordForm: {
         curPassword: "",
         newPassword: "",
-        confirmPassword: "",
+        confirmPassword: ""
       },
       activeAccountIndex: 0,
       sysMenus: [],
@@ -851,487 +684,484 @@
         password: "",
         headpic: "",
         confirmPassword: "",
-        roleId: "",
+        roleId: ""
       },
       props: {
-        label: "name",
+        label: "name"
       },
       addRules: {
         userName: [{ validator: v1, trigger: "blur" }],
-        nickName: [
-          { min: 2, max: 10, message: "闀垮害涓� 2 - 10 浣�", trigger: "blur" },
-        ],
+        nickName: [{ min: 2, max: 10, message: "闀垮害涓� 2 - 10 浣�", trigger: "blur" }],
         password: [
           { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" },
-          { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" },
+          { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" }
         ],
-        confirmPassword: [{ validator: v2, trigger: "blur" }],
+        confirmPassword: [{ validator: v2, trigger: "blur" }]
       },
       pwRules: {
         curPassword: [
           { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" },
-          { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" },
+          { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" }
         ],
         newPassword: [
           { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" },
-          { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" },
+          { min: 6, message: "闀垮害鑷冲皯涓� 6 浣�", trigger: "blur" }
         ],
-        confirmPassword: [{ validator: v4, trigger: "blur" }],
+        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");
-    // }
+    clearTimeout(this.clockTimer)
+    clearInterval(this.browserTimer)
   },
   mounted() {
-    const menu = getUrlKey("menu");
+    // 杩斿洖鎸夐挳鍥炶皟
+    window.addEventListener("message", (e) => {
+      if (e.data.msg === "杩斿洖绯荤粺璁剧疆") {
+        this.showWelcome = true
+      }
+    })
+    const menu = getUrlKey("menu")
     if (menu) {
-      this.showWelcome = false;
-      this.activeIndex = this.menuArr.findIndex((x) => x.name == menu);
+      this.showWelcome = false
+      this.activeIndex = menu
       this.$nextTick(() => {
-        this.$refs.view_3.openRight(2);
-      });
+        this.$refs[menu].openRight(2)
+      })
     }
-    this.fetchUserList();
-    this.fetchDefHeadPic();
-    const e = this.$refs.curPage;
+    this.fetchUserList()
+    this.fetchDefHeadPic()
+    const e = this.$refs.curPage
     if (e) {
       e.addEventListener("click", () => {
         if (this.showRecomand) {
-          this.showRecomand = false;
+          this.showRecomand = false
         }
-      });
+      })
     }
   },
   methods: {
     fetchDefHeadPic() {
       defHeadPics().then((res) => {
-        this.jpgArr = res.data;
-      });
+        this.jpgArr = res.data
+      })
     },
     fetchUserList(showLast = false) {
       getUsers().then((res) => {
-        this.accountArr = res.data;
+        this.accountArr = res.data
         if (this.accountArr.length) {
-          this.activeAccountItem = this.accountArr[this.activeAccountIndex];
+          this.activeAccountItem = this.accountArr[this.activeAccountIndex]
         }
         if (showLast) {
-          this.cancelAdd();
-          const lastIdx = this.accountArr.length - 1;
-          this.openAccount(this.accountArr[lastIdx], lastIdx);
+          this.cancelAdd()
+          const lastIdx = this.accountArr.length - 1
+          this.openAccount(this.accountArr[lastIdx], lastIdx)
         }
-      });
+      })
     },
     confirmChangePic() {
       updateUser({
         id: this.activeAccountItem.id,
-        headpic: this.addForm.headpic,
+        headpic: this.addForm.headpic
       }).then((res) => {
         if (res.success) {
-          this.$message.success(res.msg);
-          this.fetchUserList();
-          this.cacelChoosePic();
+          this.$message.success(res.msg)
+          this.fetchUserList()
+          this.cacelChoosePic()
         }
-      });
+      })
     },
     checkMonthInput() {
-      this.inputMonth = this.inputMonth.replace(/[^\d]/g, "");
-      if (this.inputMonth.length > 2)
-        this.inputMonth = this.inputMonth.slice(0, 2);
+      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";
+        this.inputMonth = "12"
       }
     },
     checkDayInput() {
-      this.inputDay = this.inputDay.replace(/[^\d]/g, "");
+      this.inputDay = this.inputDay.replace(/[^\d]/g, "")
       if (this.inputDay.length > 2) {
-        this.inputDay = this.inputDay.slice(0, 2);
+        this.inputDay = this.inputDay.slice(0, 2)
       }
-      const max = this.getMaxDayOfMonth();
+      const max = this.getMaxDayOfMonth()
       if (+this.inputDay > max) {
-        this.inputDay = max + "";
+        this.inputDay = max + ""
       }
     },
     editNickName() {
-      this.showInputNickName = true;
-      this.inputNickName = this.activeAccountItem.nickname;
+      this.showInputNickName = true
+      this.inputNickName = this.activeAccountItem.nickname
     },
     hideInputNick() {
       if (this.inputNickName == this.activeAccountItem.nickname) {
-        this.showInputNickName = false;
-        return;
+        this.showInputNickName = false
+        return
       }
       updateUser({
         id: this.activeAccountItem.id,
-        nickname: this.inputNickName,
+        nickname: this.inputNickName
       }).then((res) => {
-        this.activeAccountItem.nickname = this.inputNickName;
-        this.$message.success(res.msg);
-        this.fetchUserList(true);
-        this.showInputNickName = false;
-      });
+        this.activeAccountItem.nickname = this.inputNickName
+        this.$message.success(res.msg)
+        this.fetchUserList(true)
+        this.showInputNickName = false
+      })
     },
     openAccount(item, i) {
-      this.showInputNickName = false;
-      this.activeAccountItem = item;
-      this.activeAccountIndex = i;
-      this.isChangePw = false;
-      this.inAccountDetail = false;
-      this.cancelSet();
-      this.inAccountDetail = false;
-      this.isAddAccount = false;
-      this.selectedPic = null;
-      this.cacelChoosePic();
-      this.fetchMenu();
+      this.showInputNickName = false
+      this.activeAccountItem = item
+      this.activeAccountIndex = i
+      this.isChangePw = false
+      this.inAccountDetail = false
+      this.cancelSet()
+      this.inAccountDetail = false
+      this.isAddAccount = false
+      this.selectedPic = null
+      this.cacelChoosePic()
+      this.fetchMenu()
     },
     minusOne(typ) {
-      this.isSyncBrowser = false;
-      this.syncBrowser(false);
-      let num;
+      this.isSyncBrowser = false
+      this.syncBrowser(false)
+      let num
       switch (typ) {
         case "hrs":
-          num = +this.syncHour - 1;
+          num = +this.syncHour - 1
           if (num == -1) {
-            num = 23;
+            num = 23
           }
-          this.syncHour = pad0(+num);
-          break;
+          this.syncHour = pad0(+num)
+          break
         case "min":
-          num = +this.syncMin - 1;
+          num = +this.syncMin - 1
           if (num == -1) {
-            num = 59;
+            num = 59
           }
-          this.syncMin = pad0(+num);
-          break;
+          this.syncMin = pad0(+num)
+          break
         case "sec":
-          num = +this.syncSec + 1;
+          num = +this.syncSec + 1
           if (num == -1) {
-            num = 59;
+            num = 59
           }
-          this.syncSec = pad0(+num);
-          break;
+          this.syncSec = pad0(+num)
+          break
         case "yrs":
-          num = +this.syncYrs - 1;
-          this.syncYrs = pad0(+num);
-          break;
+          num = +this.syncYrs - 1
+          this.syncYrs = pad0(+num)
+          break
         case "mth":
-          num = +this.syncMonth - 1;
+          num = +this.syncMonth - 1
           if (num == 0) {
-            num = 12;
-            this.minusOne("yrs");
+            num = 12
+            this.minusOne("yrs")
           }
-          this.syncMonth = pad0(+num);
+          this.syncMonth = pad0(+num)
           if (+this.syncDay > this.getMaxDayOfMonth()) {
-            this.minusOne("day");
+            this.minusOne("day")
           }
-          break;
+          break
         case "day":
-          num = +this.syncDay - 1;
+          num = +this.syncDay - 1
           if (num == 0) {
-            num = this.getMaxDayOfMonth();
+            num = this.getMaxDayOfMonth()
           }
-          this.syncDay = pad0(+num);
-          break;
+          this.syncDay = pad0(+num)
+          break
         default:
-          break;
+          break
       }
     },
     getMaxDayOfMonth() {
-      return new Date(+this.syncYrs, +this.syncMonth, 0).getDate();
+      return new Date(+this.syncYrs, +this.syncMonth, 0).getDate()
     },
     fatherChange(item) {
       item.children.forEach((x) => {
-        x.selected = item.selected;
-      });
+        x.selected = item.selected
+      })
     },
     childrenChange(item) {
-      let SomeOneSelected = item.children.some((x) => x.selected == true);
-      item.selected = SomeOneSelected;
+      let SomeOneSelected = item.children.some((x) => x.selected == true)
+      item.selected = SomeOneSelected
     },
     plusOne(typ) {
-      this.isSyncBrowser = false;
-      this.syncBrowser(false);
-      let num;
+      this.isSyncBrowser = false
+      this.syncBrowser(false)
+      let num
       switch (typ) {
         case "hrs":
-          num = +this.syncHour + 1;
+          num = +this.syncHour + 1
           if (num == 24) {
-            num = 0;
+            num = 0
           }
-          this.syncHour = pad0(+num);
-          break;
+          this.syncHour = pad0(+num)
+          break
         case "min":
-          num = +this.syncMin + 1;
+          num = +this.syncMin + 1
           if (num == 60) {
-            num = 0;
+            num = 0
           }
-          this.syncMin = pad0(+num);
-          break;
+          this.syncMin = pad0(+num)
+          break
         case "sec":
-          num = +this.syncSec + 1;
+          num = +this.syncSec + 1
           if (num == 60) {
-            num = 0;
+            num = 0
           }
-          this.syncSec = pad0(+num);
-          break;
+          this.syncSec = pad0(+num)
+          break
         case "yrs":
-          num = +this.syncYrs + 1;
-          this.syncYrs = pad0(+num);
-          break;
+          num = +this.syncYrs + 1
+          this.syncYrs = pad0(+num)
+          break
         case "mth":
-          num = +this.syncMonth + 1;
+          num = +this.syncMonth + 1
           if (num == 13) {
-            num = 1;
+            num = 1
           }
-          this.syncMonth = pad0(+num);
+          this.syncMonth = pad0(+num)
           if (+this.syncDay > this.getMaxDayOfMonth()) {
-            this.minusOne("day");
+            this.minusOne("day")
           }
-          break;
+          break
         case "day":
-          num = +this.syncDay + 1;
+          num = +this.syncDay + 1
           if (num > this.getMaxDayOfMonth()) {
-            num = 1;
+            num = 1
           }
-          this.syncDay = pad0(+num);
-          break;
+          this.syncDay = pad0(+num)
+          break
         default:
-          break;
+          break
       }
     },
     editHeadPic() {
-      this.showJPGArr = true;
+      this.showJPGArr = true
       this.jpgArr.forEach((item, index) => {
         if (this.activeAccountItem.headpic == item.path) {
-          this.selectedPic = index;
+          this.selectedPic = index
         }
-      });
+      })
     },
     submitClock() {
       if (this.isNtp) {
         if (this.ntpServer === "" || this.ntpServer === "...") {
-          this.$notify.error("NTP 鏈嶅姟鍣ㄥ湴鍧�涓嶈兘涓虹┖");
-          return false;
+          this.$notify.error("NTP 鏈嶅姟鍣ㄥ湴鍧�涓嶈兘涓虹┖")
+          return false
         } else if (this.timeInterval === "") {
-          this.timeInterval = 1;
+          this.timeInterval = 1
         }
       } else if (this.isSyncBrowser) {
         if (this.settime === "") {
-          this.$notify.error("璁剧疆鏃堕棿涓嶈兘涓虹┖");
-          return false;
+          this.$notify.error("璁剧疆鏃堕棿涓嶈兘涓虹┖")
+          return false
         }
       } else {
-        this.settime = `${this.syncYrs}-${this.syncMonth}-${this.syncDay} ${this.syncHour}:${this.syncMin}:${this.syncSec}`;
+        this.settime = `${this.syncYrs}-${this.syncMonth}-${this.syncDay} ${this.syncHour}:${this.syncMin}:${this.syncSec}`
       }
 
-      const now = new Date().getTime();
+      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;
+        this.$message.warning("璁剧疆鐨勬椂闂翠笉鑳芥櫄浜庡綋鍓嶆椂闂�: " + this.formatTime(now, "Y-M-D h:m:s"))
+        return
       }
       saveClockInfo({
         timeZone: this.timezone,
         ntp: this.isNtp,
         ntpServer: this.ntpServer,
         interval: this.timeInterval,
-        newTime: this.settime,
+        newTime: this.settime
       }).then(
         (rsp) => {
           if (rsp && rsp.success) {
-            this.$notify.success("璁剧疆鎴愬姛");
+            this.$notify.success("璁剧疆鎴愬姛")
           }
-          this.initClockConf();
+          this.initClockConf()
         },
         (err) => {
-          this.$notify.error("璁剧疆澶辫触 " + err.msg);
+          this.$notify.error("璁剧疆澶辫触 " + err.msg)
         }
-      );
+      )
     },
-    // 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.flatCheckedArr(this.sysMenus, arr);
       updataUser({
         id: this.activeAccountItem.id,
-        menuIds: this.$refs.treeMenus.getCheckedKeys(),
+        menuIds: this.$refs.treeMenus.getCheckedKeys()
       }).then((res) => {
         if (res.success) {
-          this.$message.success(res.msg);
-          this.cancelSet();
+          this.$message.success(res.msg)
+          this.cancelSet()
         }
-      });
+      })
     },
     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(timestamp);
-      returnArr.push(date.getFullYear());
-      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]);
+        n = n + ""
+        return n[1] ? n : "0" + n
       }
-      return format;
+      var formateArr = ["Y", "M", "D", "h", "m", "s"]
+      var returnArr = []
+      var date = new Date(timestamp)
+      returnArr.push(date.getFullYear())
+      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
     },
     initClockConf(ntpTest = false) {
       getClockInfo().then((rsp) => {
         if (rsp && rsp.success) {
-          this.timezone = rsp.data.time_zone;
+          this.timezone = rsp.data.time_zone
           if (!ntpTest) {
-            this.isNtp = rsp.data.ntp;
+            this.isNtp = rsp.data.ntp
           }
           if (rsp.data.ntp) {
-            this.ntpServer = rsp.data.ntp_server;
-            this.timeInterval = rsp.data.interval;
+            this.ntpServer = rsp.data.ntp_server
+            this.timeInterval = rsp.data.interval
           }
-          this.timestamp = rsp.data.local_time;
-          this.weekday =
-            "鏄熸湡" +
-            "鏃ヤ竴浜屼笁鍥涗簲鍏�".charAt(new Date(+this.timestamp * 1000).getDay());
+          this.timestamp = rsp.data.local_time
+          this.weekday = "鏄熸湡" + "鏃ヤ竴浜屼笁鍥涗簲鍏�".charAt(new Date(+this.timestamp * 1000).getDay())
           if (this.clockTimer === null) {
-            this.runClock();
-            if (!this.isNtp) this.parseTime();
+            this.runClock()
+            if (!this.isNtp) this.parseTime()
           }
         }
-      });
+      })
     },
     openMenu(i) {
-      this.activeIndex = i;
-      if (this.activeIndex == 1) {
-        this.initClockConf();
+      this.activeIndex = i
+      if (this.activeIndex == "鏃ユ湡鏃堕棿") {
+        this.initClockConf()
       }
+      console.log(this.activeIndex)
     },
     openWelcome(i) {
-      this.showWelcome = false;
-      this.openMenu(i);
+      console.log("welcome", i)
+      this.showWelcome = false
+      this.openMenu(i)
     },
     showInput(typ) {
-      this[`show${typ}Input`] = true;
+      this[`show${typ}Input`] = true
       this.$nextTick(() => {
-        this.$refs[`ipt${typ}`].focus();
-      });
+        this.$refs[`ipt${typ}`].focus()
+      })
     },
     hideInput(typ) {
       if (this[`input${typ}`]) {
-        this[`sync${typ}`] = pad0(+this[`input${typ}`]);
+        this[`sync${typ}`] = pad0(+this[`input${typ}`])
       }
-      this[`show${typ}Input`] = false;
-      this[`input${typ}`] = "";
+      this[`show${typ}Input`] = false
+      this[`input${typ}`] = ""
       if (typ == "Month") {
-        const max = this.getMaxDayOfMonth();
+        const max = this.getMaxDayOfMonth()
         if (+this.syncDay > max) {
-          this.syncDay = max + "";
+          this.syncDay = max + ""
         }
       }
     },
     cancelSetTime() {
-      this.parseTime();
-      this.ntpServer = "...";
-      this.timeInterval = 10;
+      this.parseTime()
+      this.ntpServer = "..."
+      this.timeInterval = 10
     },
     syncBrowser(enable) {
-      this.isSyncBrowser = enable;
+      this.isSyncBrowser = enable
       if (!enable) {
-        clearInterval(this.browserTimer);
+        clearInterval(this.browserTimer)
       } else {
         this.browserTimer = setInterval(() => {
-          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(":");
-        }, 1000);
+          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(":")
+        }, 1000)
       }
     },
     openAdd() {
-      this.inAccountDetail = false;
-      this.isAddAccount = true;
-      this.selectedPic = 0;
-      this.addForm.headpic = this.jpgArr[0].path;
+      this.inAccountDetail = false
+      this.isAddAccount = true
+      this.selectedPic = 0
+      this.addForm.headpic = this.jpgArr[0].path
       getRoles().then((res) => {
         if (res.success) {
-          this.roleList = res.data;
+          this.roleList = res.data
         }
-      });
+      })
     },
     cancelAdd() {
-      this.inAccountDetail = false;
-      this.isAddAccount = false;
-      this.$refs["addForm"].resetFields();
-      this.selectedPic = null;
+      this.inAccountDetail = false
+      this.isAddAccount = false
+      this.$refs["addForm"].resetFields()
+      this.selectedPic = null
     },
     cancelPassword() {
-      this.isChangePw = false;
-      this.inAccountDetail = false;
-      this.$refs["passwordForm"].resetFields();
+      this.isChangePw = false
+      this.inAccountDetail = false
+      this.$refs["passwordForm"].resetFields()
     },
     pickQuick(addr) {
       if (addr.length == 1) {
-        this.openWelcome(addr[0]);
+        this.openWelcome(addr[0])
       } else {
-        this.openWelcome(addr[0]);
+        this.openWelcome(addr[0])
         this.$nextTick(() => {
-          if (addr[0] == 1) {
-            return;
+          if (addr[0] == "鏃ユ湡鏃堕棿") {
+            return
           }
-          this.$refs[`view_${addr[0]}`].openRight(addr[1]);
-        });
+          this.$refs[`${addr[0]}`].openRight(addr[1])
+        })
       }
     },
     cacelChoosePic() {
-      this.addForm.headpic = "";
-      this.showChangePic = false;
-      this.selectedPic = null;
-      this.showJPGArr = false;
+      this.addForm.headpic = ""
+      this.showChangePic = false
+      this.selectedPic = null
+      this.showJPGArr = false
     },
     SaveNewPassword(formName) {
-      let data;
+      let data
       this.$refs[formName].validate((valid) => {
         if (valid) {
           if (this.passwordForm.curPassword == "") {
             data = {
               userId: this.activeAccountItem.id,
               oldPwd: "",
-              newPwd: this.passwordForm.newPassword,
-            };
+              newPwd: this.passwordForm.newPassword
+            }
           } else {
             data = {
               oldPwd: this.passwordForm.curPassword,
-              newPwd: this.passwordForm.newPassword,
-            };
+              newPwd: this.passwordForm.newPassword
+            }
           }
           updatePassword(data).then(
             (res) => {
               if (res.success) {
-                this.$message.success("瀵嗙爜" + res.msg);
+                this.$message.success("瀵嗙爜" + res.msg)
                 setTimeout(() => {
-                  this.cancelPassword();
-                }, 1000);
+                  this.cancelPassword()
+                }, 1000)
               }
             },
             (err) => {
-              this.$message.error("淇濆瓨澶辫触锛�" + err.msg);
+              this.$message.error("淇濆瓨澶辫触锛�" + err.msg)
             }
-          );
+          )
         }
-      });
+      })
     },
     saveAddAccount(formName) {
       this.$refs[formName].validate((valid) => {
@@ -1341,192 +1171,206 @@
             password: this.addForm.password,
             nickname: this.addForm.nickName,
             headpic: this.addForm.headpic,
-            roleId: this.addForm.roleId,
-          };
+            roleId: this.addForm.roleId
+          }
           addUser(data).then(
             (res) => {
-              this.$message.success(res.data);
-              this.fetchUserList(true);
+              this.$message.success(res.data)
+              this.fetchUserList(true)
             },
             (err) => {
-              this.$message.error("淇濆瓨澶辫触锛�" + err.msg);
+              this.$message.error("淇濆瓨澶辫触锛�" + err.msg)
             }
-          );
+          )
         } else {
-          return false;
+          return false
         }
-      });
+      })
     },
     pickHeadDefPic(item, i) {
       if (this.selectedPic == i) {
-        this.selectedPic = null;
-        this.addForm.headpic = "";
-        return;
+        this.selectedPic = null
+        this.addForm.headpic = ""
+        return
       }
-      this.addForm.headpic = item.path;
-      this.selectedPic = i;
+      this.addForm.headpic = item.path
+      this.selectedPic = i
     },
     testNTP() {
-      this.ntpTestLoading = true;
+      this.ntpTestLoading = true
       testNTPserver({ server: this.ntpServer })
         .then((rsp) => {
           if (rsp && rsp.success) {
             this.$notify({
               type: "success",
-              message: "鏃堕棿鍚屾鎴愬姛",
-            });
+              message: "鏃堕棿鍚屾鎴愬姛"
+            })
           } else {
             this.$notify({
               type: "error",
-              message: "鏃堕棿鍚屾澶辫触",
-            });
+              message: "鏃堕棿鍚屾澶辫触"
+            })
           }
-          this.ntpTestLoading = false;
-          this.initClockConf(true);
+          this.ntpTestLoading = false
+          this.initClockConf(true)
         })
         .catch((err) => {
           this.$notify({
             type: "error",
-            message: "鏃堕棿鍚屾澶辫触,璇锋鏌ユ湇鍔″櫒ip",
-          });
-          this.ntpTestLoading = false;
-        });
+            message: "鏃堕棿鍚屾澶辫触,璇锋鏌ユ湇鍔″櫒ip"
+          })
+          this.ntpTestLoading = false
+        })
     },
     cancelSet() {
-      this.isSetPermission = false;
-      this.inAccountDetail = false;
-      this.sysMenus = [];
+      this.isSetPermission = false
+      this.inAccountDetail = false
+      this.sysMenus = []
     },
     showChangePassword() {
-      this.isChangePw = true;
-      this.inAccountDetail = true;
+      this.isChangePw = true
+      this.inAccountDetail = true
     },
     runClock() {
-      const str = this.formatTime(++this.timestamp * 1000, "Y-M-D h:m:s");
-      [this.equipmentDate, this.equipmentTime] = str.split(" ");
+      const str = this.formatTime(++this.timestamp * 1000, "Y-M-D h:m:s")
+      ;[this.equipmentDate, this.equipmentTime] = str.split(" ")
 
       this.clockTimer = setTimeout(() => {
-        this.runClock();
-      }, 1000);
+        this.runClock()
+      }, 1000)
     },
     deleteAccount() {
-      const h = this.$createElement;
+      const h = this.$createElement
       this.$msgbox({
         title: "",
         message: h(
           "div",
           {
-            style:
-              "display: flex;  flex-direction: column; justify-content: center; align-items: center;",
+            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" }, "鎮ㄦ槸鍚︾‘璁ゅ垹闄よ处鎴凤紵"),
+            h("span", { class: "warn-dec" }, "鎮ㄦ槸鍚︾‘璁ゅ垹闄よ处鎴凤紵")
           ]
         ),
         showCancelButton: true,
         showClose: true,
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
-        customClass: "del-account-message-box",
+        customClass: "del-account-message-box"
       })
         .then(() => {
           let obj = {
-            ids: [this.activeAccountItem.id],
-          };
+            ids: [this.activeAccountItem.id]
+          }
           deleteUser(obj).then((res) => {
             if (res.success) {
-              this.fetchUserList();
-              this.$message.success("鍒犻櫎鎴愬姛!");
+              this.fetchUserList()
+              this.$message.success("鍒犻櫎鎴愬姛!")
             } else {
-              this.$message.error("鍒犻櫎澶辫触");
+              this.$message.error("鍒犻櫎澶辫触")
             }
-          });
+          })
         })
-        .catch(() => {});
+        .catch(() => {})
     },
     fetchMenu() {
       getUserMenus({
-        userId: this.activeAccountItem.id,
+        userId: this.activeAccountItem.id
       }).then((res) => {
         if (res && res.success) {
-          this.sysMenus = res.data;
-          let arr = [];
-          this.drawChecked(this.sysMenus, arr);
-          this.checkedArr = arr;
+          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);
+        if (item.selected && !item.children) res.push(item.id)
+        if (item.children) this.drawChecked(item.children, res)
       }
     },
     openPermission() {
-      this.inAccountDetail = true;
-      this.isSetPermission = true;
+      this.inAccountDetail = true
+      this.isSetPermission = true
       if (this.sysMenus.length == 0) {
-        this.fetchMenu();
+        this.fetchMenu()
       }
     },
     parseTime() {
-      [this.syncYrs, this.syncMonth, this.syncDay] = this.equipmentDate.split(
-        "-"
-      );
-      [this.syncHour, this.syncMin, this.syncSec] = this.equipmentTime.split(
-        ":"
-      );
-    },
-    // 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();
-    // },
+      ;[this.syncYrs, this.syncMonth, this.syncDay] = this.equipmentDate.split("-")
+      ;[this.syncHour, this.syncMin, this.syncSec] = this.equipmentTime.split(":")
+    }
   },
   computed: {
     activeUserRole() {
-      return this.activeAccountItem.sysRoles[0].name;
+      if (this.activeAccountItem.sysRoles && this.activeAccountItem.sysRoles.length) {
+        return this.activeAccountItem.sysRoles[0].name
+      }
+      return "鏅�氱敤鎴�"
     },
     curUserRole() {
-      const info = JSON.parse(sessionStorage.getItem("userInfo"));
-      return info.roleName;
+      const info = JSON.parse(sessionStorage.getItem("userInfo"))
+      return info.roleName
     },
     curUserID() {
-      const info = JSON.parse(sessionStorage.getItem("userInfo"));
-      return info.id;
+      const info = JSON.parse(sessionStorage.getItem("userInfo"))
+      return info.id
     },
     isShowDeleteAccount() {
       if (this.curUserRole == "瓒呯骇绠$悊鍛�") {
-        return this.activeUserRole != "瓒呯骇绠$悊鍛�";
+        return this.activeUserRole != "瓒呯骇绠$悊鍛�"
       } else if (this.curUserRole == "绠$悊鍛�") {
-        return this.activeUserRole == "鏅�氱敤鎴�";
+        return this.activeUserRole == "鏅�氱敤鎴�"
       }
-      return false;
+      return false
     },
     isShowPermitBtn() {
+      // basic 鐢ㄦ埛涓嶅厑璁镐慨鏀规潈闄�
+      if (this.activeUserRole == "瓒呯骇绠$悊鍛�") {
+        return false
+      }
       if (this.curUserRole == "绠$悊鍛�") {
-        return this.activeUserRole == "鏅�氱敤鎴�";
+        return this.activeUserRole == "鏅�氱敤鎴�"
       } else {
-        return this.curUserRole != "鏅�氱敤鎴�";
+        return this.curUserRole != "鏅�氱敤鎴�"
       }
     },
     searchArrForShow() {
       if (this.searchText == "") {
-        return this.searchArr;
+        return this.searchArr
       } else {
         return this.searchArr.filter((item) => {
-          return item.name.indexOf(this.searchText.toUpperCase()) > -1;
-        });
+          return item.name.indexOf(this.searchText.toUpperCase()) > -1
+        })
       }
-    },
+    }
   },
-};
+  watch: {
+    showWelcome(newVal) {
+      if (newVal) {
+        // 闅愯棌杩斿洖鎸夋寜閽�
+        window.parent.postMessage(
+          {
+            msg: "hiddenBack"
+          },
+          "*"
+        )
+      } else {
+        //鏄剧ず杩斿洖鎸夐挳
+        window.parent.postMessage(
+          {
+            msg: "showBack"
+          },
+          "*"
+        )
+      }
+    }
+  }
+}
 </script>
 <style lang="scss">
 .welcome-page {
@@ -1538,7 +1382,7 @@
   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;
@@ -1546,12 +1390,15 @@
     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, 0.5);
+    }
     .search-input {
       font-size: 14px;
       .el-input--mini .el-input__inner {
@@ -1574,11 +1421,35 @@
         line-height: 36px;
         outline: 0;
         padding: 0 20px;
-        -webkit-transition: border-color 0.2s
-          cubic-bezier(0.645, 0.045, 0.355, 1);
+        -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
         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;
@@ -1607,7 +1478,7 @@
         text-align: left;
         box-sizing: border-box;
         padding: 0 20px;
-        color: #333333;
+        color: #4f4f4f;
         font-size: 14px;
         cursor: pointer;
       }
@@ -1617,17 +1488,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);
       }
     }
   }
   .nav-items {
+    max-width: 960px;
+    margin: 0 auto;
     .nav-child {
       box-sizing: border-box;
       background-color: rgba(251, 251, 255, 0.1);
@@ -1642,6 +1515,15 @@
       justify-content: center;
       align-items: center;
       cursor: pointer;
+      border: 2px solid #f2f2f7;
+
+      &-active {
+        border: 2px solid #4e94ff;
+      }
+
+      &:hover {
+        background: #f2f2f7;
+      }
 
       .child-info {
         display: flex;
@@ -1653,18 +1535,17 @@
         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;
         }
       }
     }
-   
   }
 }
 .container {
@@ -1675,7 +1556,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;
@@ -1688,22 +1571,22 @@
       height: 56px;
       cursor: pointer;
       border-radius: 8px;
-      margin-bottom: 10px;
+      margin-bottom: 4px;
       display: flex;
       align-items: center;
       padding: 0 20px;
 
       .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;
@@ -1713,7 +1596,7 @@
       }
     }
     .left-card-active {
-      background-color: #4e94ff !important;
+      background-color: var(--colorCard) !important;
       .card-text {
         color: #fff !important;
       }
@@ -1734,15 +1617,33 @@
     overflow: auto;
     flex-shrink: 0;
     padding: 10px;
-    border-right: 4px solid #f2f2f7;
+    padding-top: 6px;
+    padding-right: 5px;
+    border-top: 4px solid #f2f2f7;
+    border-left: 4px solid #f2f2f7;
     box-sizing: border-box;
     background-color: #fbfaff;
-    border-left: 4px solid #f2f2f7;
     .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: var(--colorCard);
@@ -1779,7 +1680,7 @@
           height: 19.21px;
           background: #ffffff;
           border-radius: 20px;
-          color: #333333;
+          color: #4f4f4f;
           transform: scale(0.833333);
           line-height: 22.21px;
           span {
@@ -1807,6 +1708,8 @@
     position: relative;
     padding: 30px 40px;
     background: #f2f2f7;
+    border-left: 4px solid #f2f2f7;
+    border-top: 4px solid #f2f2f7;
     .account-right {
       height: 100%;
       .account-content {
@@ -1864,7 +1767,7 @@
             display: flex;
             flex-direction: column;
             align-items: center;
-            color: #333333;
+            color: #4f4f4f;
             min-width: 200px;
             .user-name {
               margin-bottom: 10px;
@@ -1892,7 +1795,7 @@
                 margin-left: 10px;
               }
               .confirm-icon {
-                color: #4e94ff;
+                color: var(--colorCard);
                 font-size: 18px;
                 margin-left: 10px;
               }
@@ -1911,7 +1814,7 @@
                   height: 20px;
                   line-height: 20px;
                   /* border: 1px solid; */
-                  border: 1px solid #4e94ff;
+                  border: 1px solid var(--colorCard);
                   border-radius: 20px;
                   background: #f2f2f7;
                 }
@@ -1939,14 +1842,14 @@
           margin-top: 80px;
           .alt-pw-btn {
             background: rgba(78, 148, 255, 0.1);
-            border: 1px solid #4e94ff;
+            border: 1px solid var(--colorCard);
           }
           .del-usr-btn {
             background: #e0e0e0;
             color: #fc4958;
           }
           .auth-set-btn {
-            background: #4e94ff;
+            background: var(--colorCard);
             color: #ffffff;
           }
           .item-btn {
@@ -1964,13 +1867,13 @@
 
       .change-pw {
         padding: 40px 10px;
-        max-width: 600px;
+        // max-width: 600px;
         margin: 0 auto;
         .title {
           font-weight: bold;
           font-size: 16px;
           line-height: 22px;
-          color: #333333;
+          color: #4f4f4f;
           margin-bottom: 40px;
           height: 28px;
           display: flex;
@@ -1990,7 +1893,7 @@
           border-radius: 8px;
           padding: 0 15px 0 20px;
           .el-select-dropdown__item {
-            color: #333333;
+            color: #4f4f4f;
             height: 32px;
             font-size: 12px;
             line-height: 32px;
@@ -2004,7 +1907,7 @@
             .el-select-dropdown__item.hover,
             .el-select-dropdown__item:hover {
               background-color: #f2f2f7;
-              color: #4e94ff;
+              color: var(--colorCard);
             }
           }
         }
@@ -2018,13 +1921,13 @@
             border: 2px solid transparent;
             border-radius: 20px;
             height: 32px;
-          line-height: 32px;
+            line-height: 32px;
             padding: 0 15px;
             font-size: 14px;
             font-weight: bold;
           }
-          .el-input__inner:focus{
-            border: 2px solid #4e94ff;
+          .el-input__inner:focus {
+            border: 2px solid var(--colorCard);
           }
           .el-input__inner::placeholder {
             color: #c0c4cc;
@@ -2035,7 +1938,7 @@
             width: 100%;
           }
           .el-select .el-input .el-select__caret {
-            color: #333333;
+            color: #4f4f4f;
             font-size: 14px;
             font-weight: 600;
           }
@@ -2059,7 +1962,7 @@
           font-size: 15px;
         }
         .el-input__clear {
-          color: #333333;
+          color: #4f4f4f;
           font-size: 16px;
           line-height: 48px;
         }
@@ -2078,7 +1981,7 @@
           line-height: 48px;
           font-size: 16px;
           font-weight: 600;
-          color: #333333;
+          color: #4f4f4f;
           height: 48px;
           background: #fbfaff;
           border-bottom: 2px solid #f2f2f7;
@@ -2109,12 +2012,12 @@
                 }
                 .el-checkbox__input.is-checked .el-checkbox__inner,
                 .el-checkbox__input.is-indeterminate .el-checkbox__inner {
-                  background-color: #4e94ff;
-                  border-color: #4e94ff;
+                  background-color: var(--colorCard);
+                  border-color: var(--colorCard);
                 }
                 .el-checkbox__inner {
                   border-radius: 1px;
-                  border: 1px solid #4e94ff;
+                  border: 1px solid var(--colorCard);
                 }
                 .el-tree-node__label {
                   font-size: 13px;
@@ -2122,7 +2025,7 @@
                 }
               }
               .el-tree-node__content:hover {
-                border: 2px solid #4e94ff;
+                border: 2px solid var(--colorCard);
               }
             }
           }
@@ -2174,7 +2077,7 @@
           }
         }
         .upload-jpg-border {
-          border: 2px solid #4e94ff;
+          border: 2px solid var(--colorCard);
         }
       }
       .add-account-page {
@@ -2188,7 +2091,7 @@
           line-height: 22px;
         }
         .fill-group {
-          max-width: 450px;
+          //  max-width: 450px;
           margin-top: 10px;
 
           margin: 0 auto;
@@ -2200,7 +2103,7 @@
             border-radius: 8px;
             padding: 0 15px 0 20px;
             .el-select-dropdown__item {
-              color: #333333;
+              color: #4f4f4f;
               height: 32px;
               font-size: 12px;
               line-height: 32px;
@@ -2214,7 +2117,7 @@
               .el-select-dropdown__item.hover,
               .el-select-dropdown__item:hover {
                 background-color: #f2f2f7;
-                color: #4e94ff;
+                color: var(--colorCard);
               }
             }
           }
@@ -2231,18 +2134,18 @@
           }
           .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 #4e94ff;
-          }
+              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;
@@ -2252,7 +2155,7 @@
               width: 100%;
             }
             .el-select .el-input .el-select__caret {
-              color: #333333;
+              color: #4f4f4f;
               font-size: 14px;
               font-weight: 600;
             }
@@ -2263,7 +2166,7 @@
     .datetime-right {
       .datetime-left {
         .device-time {
-          color: #333333;
+          color: #4f4f4f;
           .title {
             display: flex;
             justify-content: center;
@@ -2333,7 +2236,7 @@
               letter-spacing: 0.5px;
             }
             .highlight-radio {
-              background: #4e94ff;
+              background: var(--colorCard);
               color: #ffffff;
             }
           }
@@ -2486,14 +2389,14 @@
                   background: #f2f2f7;
                 }
                 .el-input__inner:focus {
-                  border: 2px solid #4e94ff;
+                  border: 2px solid var(--colorCard);
                 }
               }
               .el-button--text {
                 margin-left: 42px;
                 color: #409eff;
                 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;
@@ -2509,11 +2412,8 @@
           }
         }
       }
-      .el-form-item.is-required:not(.is-no-asterisk)
-        > .el-form-item__label:before,
-      .el-form-item.is-required:not(.is-no-asterisk)
-        .el-form-item__label-wrap
-        > .el-form-item__label:before {
+      .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before,
+      .el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap > .el-form-item__label:before {
         display: none;
       }
       .el-form-item {
@@ -2549,43 +2449,38 @@
         border: 2px solid transparent;
       }
     }
-
   }
-      .btns {
-      margin: 0 auto;
-      margin-top: 40px;
-      width: fit-content;
-      display: flex;
-      .cancel {
-        width: 188px;
-        height: 40px;
-        cursor: pointer;
-        border-radius: 25px;
-        background-color: #e0e0e0;
-        line-height: 40px;
-        font-weight: bold;
-        font-size: 16px;
-        margin-right: 12px;
-      }
-      .ok {
-        width: 188px;
-        height: 40px;
-        cursor: pointer;
-        border-radius: 25px;
-        background-color: #4e94ff;
-        color: #fff;
-        line-height: 40px;
-        font-weight: bold;
-        font-size: 16px;
-      }
+  .btns {
+    margin: 0 auto;
+    margin-top: 40px;
+    width: fit-content;
+    display: flex;
+    .cancel {
+      width: 188px;
+      height: 40px;
+      cursor: pointer;
+      border-radius: 25px;
+      background-color: #e0e0e0;
+      line-height: 40px;
+      font-weight: bold;
+      font-size: 16px;
+      margin-right: 12px;
     }
+    .ok {
+      width: 188px;
+      height: 40px;
+      cursor: pointer;
+      border-radius: 25px;
+      background-color: var(--colorCard);
+      color: #fff;
+      line-height: 40px;
+      font-weight: bold;
+      font-size: 16px;
+    }
+  }
   .container-right-for-account {
     background: #fbfaff;
     padding: 0;
   }
 }
-.del-account-message-box {
-}
 </style>
-
-

--
Gitblit v1.8.0