From 84ad5590bafc58e17ebcf7ebdce2cd70c0c22ea9 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期五, 24 九月 2021 18:54:56 +0800
Subject: [PATCH] 日期时间新版

---
 src/pages/settings/index/index.vue | 1330 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 857 insertions(+), 473 deletions(-)

diff --git a/src/pages/settings/index/index.vue b/src/pages/settings/index/index.vue
index 6f35c34..e1f3626 100644
--- a/src/pages/settings/index/index.vue
+++ b/src/pages/settings/index/index.vue
@@ -6,14 +6,16 @@
         :class="activeIndex == i ? 'left-card-active' : ''"
         v-for="(item, i) in menuArr"
         :key="i"
-        @click="openMenu(item.name, i)"
+        @click="openMenu(i)"
       >
-        <span class="icon iconfont">{{ item.icon }}</span>
+        <!-- <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>
       </div>
     </div>
 
-    <div class="container-center" v-if="activeIndex == 0 || activeIndex == 1">
+    <div class="container-center" v-if="activeIndex == 0">
       <div class="account-left" v-if="activeIndex == 0">
         <div class="account-list">
           <div
@@ -42,38 +44,6 @@
             style="font-size: 38px"
             @click="openAdd"
           ></i>
-        </div>
-      </div>
-      <div class="datetime-left" v-if="activeIndex == 1">
-        <div class="time-card">
-          <div class="head">
-            <span class="icon iconfont">&#xe690;</span>
-            <span>璁惧鏃堕棿</span>
-          </div>
-          <div class="time-main">{{ equipmentTime }}</div>
-          <div class="date-bot">
-            <span class="year">{{ equipmentDate }}</span>
-            <span class="week">{{ weekday }}</span>
-          </div>
-        </div>
-        <div class="line">
-          <div class="name">NTP鏍℃椂</div>
-          <el-switch
-            v-model="isNtp"
-            @change="changeSwitch('isNtp')"
-            active-color="rgba(61, 104, 225, 1)"
-          >
-          </el-switch>
-        </div>
-
-        <div class="line">
-          <div class="name">鎵嬪姩鏍″</div>
-          <el-switch
-            v-model="isManual"
-            @change="changeSwitch('isManual')"
-            active-color="rgba(61, 104, 225, 1)"
-          >
-          </el-switch>
         </div>
       </div>
     </div>
@@ -354,216 +324,318 @@
       </div>
 
       <div class="datetime-right" v-if="activeIndex == 1">
-        <div class="ntp-time" v-if="isNtp">
-          <el-form label-width="160px">
-            <el-form-item label="鏈嶅姟鍣ㄥ湴鍧�">
-              <ipInput
-                :ip="ntpServer"
-                @on-blur="ntpServer = arguments[0]"
-              ></ipInput>
-            </el-form-item>
-
-            <el-form-item label="鏍℃椂鏃堕棿闂撮殧锛堝垎閽燂級">
-              <div class="right">
-                <el-input-number
-                  v-model.number="timeInterval"
-                  :min="1"
-                  :max="60"
-                  placeholder="璇疯緭鍏�"
-                  size="small"
-                  :controls="false"
-                ></el-input-number>
-                <el-button
-                  type="text"
-                  @click="testNTP"
-                  :loading="ntpTestLoading"
-                  >娴嬭瘯</el-button
-                >
-              </div>
-            </el-form-item>
-          </el-form>
-        </div>
-
-        <div class="manual-time" v-if="isManual">
-          <switchBar
-            :barName="`鍚屾鏈绠楁満鏃堕棿`"
-            @switchChange="syncBrowser"
-            :value="isSyncBrowser"
-          ></switchBar>
-
-          <div class="clock-wrap">
-            <div class="clock">
-              <div class="hour">
-                <div class="dnum" @click="showInput('Hour')">
-                  <span v-show="!showHourInput">{{ syncHour }}</span>
-                  <input
-                    class="input-box"
-                    v-show="showHourInput"
-                    ref="iptHour"
-                    oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>23)value='23'"
-                    type="text"
-                    v-model="inputHour"
-                    @blur="hideInput('Hour')"
-                    @keydown.enter="hideInput('Hour')"
-                  />
-                </div>
-                <div class="control">
-                  <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>
-              <div class="mins">
-                <div class="dnum" @click="showInput('Min')">
-                  <span v-show="!showMinInput">{{ syncMin }}</span>
-                  <input
-                    class="input-box"
-                    v-show="showMinInput"
-                    ref="iptMin"
-                    oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>59)value='59'"
-                    type="text"
-                    v-model="inputMin"
-                    @blur="hideInput('Min')"
-                    @keydown.enter="hideInput('Min')"
-                  />
-                </div>
-                <div class="control">
-                  <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>
-              <div class="mins">
-                <div class="dnum" @click="showInput('Sec')">
-                  <span v-show="!showSecInput">{{ syncSec }}</span>
-                  <input
-                    class="input-box"
-                    v-show="showSecInput"
-                    ref="iptSec"
-                    oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>59)value='59'"
-                    type="text"
-                    v-model="inputSec"
-                    @blur="hideInput('Sec')"
-                    @keydown.enter="hideInput('Sec')"
-                  />
-                </div>
-                <div class="control">
-                  <span class="icon iconfont" @click="plusOne('sec')"
-                    >&#xe60e;</span
-                  >
-                  <span class="icon iconfont fanzhuan" @click="minusOne('sec')"
-                    >&#xe60e;</span
-                  >
-                </div>
-              </div>
+        <div class="datetime-left">
+          <div class="device-time">
+            <div class="title">
+              <img src="/images/settings/榛戣壊涓�绾con/璁惧淇℃伅.png" alt="" />
+              <span>璁惧鏃堕棿</span>
+            </div>
+            <div class="time-main">{{ equipmentTime }}</div>
+            <div class="date-bot">
+              <span class="year">{{ equipmentDate }}</span>
+              <span class="week">{{ weekday }}</span>
             </div>
           </div>
 
-          <div class="adjust-bar">
-            <div class="minus" @click="minusOne('yrs')">-</div>
-            <div class="middle" @click="showInput('Yrs')">
-              <span v-show="!showYrsInput">{{ syncYrs }}</span>
-              <input
-                class="input-box"
-                v-show="showYrsInput"
-                ref="iptYrs"
-                oninput="value=value.replace(/[^\d]/g,'');if(value.length>4)value=value.slice(0,4);"
-                type="text"
-                v-model="inputYrs"
-                @blur="hideInput('Yrs')"
-                @keydown.enter="hideInput('Yrs')"
-              />
-              骞�
-            </div>
-            <div class="plus" @click="plusOne('yrs')">+</div>
-          </div>
-          <div class="adjust-bar">
-            <div class="minus" @click="minusOne('mth')">-</div>
-            <div class="middle" @click="showInput('Month')">
-              <span v-show="!showMonthInput">{{ syncMonth }}</span>
-              <input
-                class="input-box"
-                v-show="showMonthInput"
-                ref="iptMonth"
-                @input="checkMonthInput"
-                type="text"
-                v-model="inputMonth"
-                @blur="hideInput('Month')"
-                @keydown.enter="hideInput('Month')"
-              />
-              鏈�
+          <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"
+                :class="isNtp ? '' : 'highlight-radio'"
+                @click="isNtp = false"
+              >
+                鎵嬪姩鏍℃椂
+              </div>
+              <div
+                class="radio"
+                :class="isNtp ? 'highlight-radio' : ''"
+                @click="isNtp = true"
+              >
+                NTP鏍℃椂
+              </div>
             </div>
 
-            <div class="plus" @click="plusOne('mth')">+</div>
-          </div>
-          <div class="adjust-bar">
-            <div class="minus" @click="minusOne('day')">-</div>
-            <div class="middle" @click="showInput('Day')">
-              <span v-show="!showDayInput">{{ syncDay }}</span>
-              <input
-                class="input-box"
-                v-show="showDayInput"
-                ref="iptDay"
-                @input="checkDayInput"
-                type="text"
-                v-model="inputDay"
-                @blur="hideInput('Day')"
-                @keydown.enter="hideInput('Day')"
-              />
-              鏃�
-            </div>
-            <div class="plus" @click="plusOne('day')">+</div>
-          </div>
-        </div>
+            <div class="mamal-wrap" v-if="isNtp == false">
+              <div class="clock-wrap">
+                <div class="clock">
+                  <div class="time-block">
+                    <div class="dnum" @click="showInput('Hour')">
+                      <span v-show="!showHourInput">{{ syncHour }}</span>
+                      <input
+                        class="input-box"
+                        v-show="showHourInput"
+                        ref="iptHour"
+                        oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>23)value='23'"
+                        type="text"
+                        v-model="inputHour"
+                        @blur="hideInput('Hour')"
+                        @keydown.enter="hideInput('Hour')"
+                      />
+                    </div>
+                    <div class="control">
+                      <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>
+                  <div class="time-block">
+                    <div class="dnum" @click="showInput('Min')">
+                      <span v-show="!showMinInput">{{ syncMin }}</span>
+                      <input
+                        class="input-box"
+                        v-show="showMinInput"
+                        ref="iptMin"
+                        oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>59)value='59'"
+                        type="text"
+                        v-model="inputMin"
+                        @blur="hideInput('Min')"
+                        @keydown.enter="hideInput('Min')"
+                      />
+                    </div>
+                    <div class="control">
+                      <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>
+                  <div class="time-block">
+                    <div class="dnum" @click="showInput('Sec')">
+                      <span v-show="!showSecInput">{{ syncSec }}</span>
+                      <input
+                        class="input-box"
+                        v-show="showSecInput"
+                        ref="iptSec"
+                        oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>59)value='59'"
+                        type="text"
+                        v-model="inputSec"
+                        @blur="hideInput('Sec')"
+                        @keydown.enter="hideInput('Sec')"
+                      />
+                    </div>
+                    <div class="control">
+                      <span class="icon iconfont" @click="plusOne('sec')"
+                        >&#xe60e;</span
+                      >
+                      <span
+                        class="icon iconfont fanzhuan"
+                        @click="minusOne('sec')"
+                        >&#xe60e;</span
+                      >
+                    </div>
+                  </div>
+                </div>
+              </div>
 
-        <div class="btns">
-          <div class="cancel" @click="cancelSetTime">鍙栨秷</div>
-          <div class="ok" @click="submitClock">淇濆瓨</div>
+              <div class="date-adjust">
+                <div class="adjust-bar">
+                  <div class="minus" @click="minusOne('yrs')">
+                    <i class="el-icon-remove-outline"></i>
+                  </div>
+                  <div class="middle" @click="showInput('Yrs')">
+                    <span v-show="!showYrsInput">{{ syncYrs }}</span>
+                    <input
+                      class="input-box"
+                      v-show="showYrsInput"
+                      ref="iptYrs"
+                      oninput="value=value.replace(/[^\d]/g,'');if(value.length>4)value=value.slice(0,4);"
+                      type="text"
+                      v-model="inputYrs"
+                      @blur="hideInput('Yrs')"
+                      @keydown.enter="hideInput('Yrs')"
+                    />
+                    <span>骞�</span>
+                  </div>
+                  <div class="plus" @click="plusOne('yrs')">
+                    <i class="el-icon-circle-plus-outline"></i>
+                  </div>
+                </div>
+                <div class="adjust-bar">
+                  <div class="minus" @click="minusOne('mth')">
+                    <i class="el-icon-remove-outline"></i>
+                  </div>
+                  <div class="middle" @click="showInput('Month')">
+                    <span v-show="!showMonthInput">{{ syncMonth }}</span>
+                    <input
+                      class="input-box"
+                      v-show="showMonthInput"
+                      ref="iptMonth"
+                      @input="checkMonthInput"
+                      type="text"
+                      v-model="inputMonth"
+                      @blur="hideInput('Month')"
+                      @keydown.enter="hideInput('Month')"
+                    />
+                    <span>鏈�</span>
+                  </div>
+
+                  <div class="plus" @click="plusOne('mth')">
+                    <i class="el-icon-circle-plus-outline"></i>
+                  </div>
+                </div>
+                <div class="adjust-bar">
+                  <div class="minus" @click="minusOne('day')">
+                    <i class="el-icon-remove-outline"></i>
+                  </div>
+                  <div class="middle" @click="showInput('Day')">
+                    <span v-show="!showDayInput">{{ syncDay }}</span>
+                    <input
+                      class="input-box"
+                      v-show="showDayInput"
+                      ref="iptDay"
+                      @input="checkDayInput"
+                      type="text"
+                      v-model="inputDay"
+                      @blur="hideInput('Day')"
+                      @keydown.enter="hideInput('Day')"
+                    />
+                    <span>鏃�</span>
+                  </div>
+                  <div class="plus" @click="plusOne('day')">
+                    <i class="el-icon-circle-plus-outline"></i>
+                  </div>
+                </div>
+              </div>
+
+              <div class="manual-time">
+                <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>
+                </el-form-item>
+
+                <el-form-item label="鏍℃椂鏃堕棿闂撮殧">
+                  <div class="right">
+                    <el-input-number
+                      v-model.number="timeInterval"
+                      :min="1"
+                      :max="60"
+                      placeholder="璇疯緭鍏�"
+                      size="small"
+                      :controls="false"
+                    ></el-input-number>
+
+                    <span class="desc-min">鍒嗛挓</span>
+                    <el-button
+                      type="text"
+                      @click="testNTP"
+                      :loading="ntpTestLoading"
+                      >娴嬭瘯</el-button
+                    >
+                  </div>
+                </el-form-item>
+              </el-form>
+            </div>
+
+            <div class="btns">
+              <div class="cancel" @click="cancelSetTime">鍙栨秷</div>
+              <div class="ok" @click="submitClock">淇濆瓨</div>
+            </div>
+          </div>
         </div>
       </div>
     </div>
 
     <clusterManagement
       v-if="activeIndex == 2"
+      ref="view_2"
       style="width: 100%"
     ></clusterManagement>
     <netSettings
-      ref="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
+    <deviceInfo
       v-if="activeIndex == 6"
       style="width: 100%"
+      ref="view_6"
     ></deviceInfo>
-    
   </div>
-  <div class="welcome-page" v-else>
+  <div class="welcome-page" v-else ref="curPage">
     <div
-      class="child"
-      @click="openWelcome(item, i)"
-      v-for="(item, i) in menuArr"
-      :key="i"
+      class="search-box"
+      :class="showRecomand ? 'border-change' : ''"
+      @click.stop
     >
-      <div class="child-info">
-        <span class="icon iconfont welcome-icon">{{ item.icon }}</span>
-        <span class="welcome-title">{{ item.name }}</span>
+      <!-- @blur="showRecomand = false" -->
+      <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)"
+        >
+          {{ item.name }}
+        </div>
+        <div class="no-res-bar" v-if="searchArrForShow.length == 0">
+          娌℃湁鎵惧埌涓� {{ searchText }} 鐩稿叧鐨勭粨鏋�
+        </div>
+      </div>
+      <div class="dummy-end" v-if="showRecomand" style="height: 15px"></div>
+    </div>
+    <div class="nav-items">
+      <div
+        class="nav-child"
+        @click="openWelcome(i)"
+        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>
       </div>
     </div>
   </div>
@@ -583,13 +655,13 @@
   getRoles,
 } from "@/api/user";
 import switchBar from "../components/switchBar";
-import ipInput from "@/components/subComponents/IPInput";
+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";
+import { pad0, getUrlKey } from "@/api/utils";
 
 export default {
   name: "settings",
@@ -600,7 +672,7 @@
     netSettings,
     keyboardLanguage,
     generalSettings,
-    deviceInfo
+    deviceInfo,
   },
   data() {
     var v2 = (rule, value, callback) => {
@@ -643,6 +715,7 @@
       syncHour: "",
       showWelcome: true,
       syncDay: "",
+      searchText: "",
       syncMin: "",
       syncSec: "00",
       isSyncBrowser: false,
@@ -650,6 +723,26 @@
       isAddAccount: false,
       browserTimer: null,
       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] },
+      ],
       inputNickName: "",
       showHourInput: false,
       showMinInput: false,
@@ -659,6 +752,7 @@
       selectedPic: null,
       showDayInput: false,
       timestamp: 0,
+      ajustType: "鎵嬪姩鏍℃椂",
       inAccountDetail: false,
       isChangePw: false,
       isSetPermission: false,
@@ -673,18 +767,60 @@
       settime: "",
       weekday: "",
       menuArr: [
-        { name: "璐︽埛", icon: "\ue6de" },
-        { name: "鏃ユ湡鏃堕棿", icon: "\ue6ff" },
-        { name: "闆嗙兢绠$悊", icon: "\ue6df" },
-        { name: "缃戠粶璁剧疆", icon: "\ue6dd" },
-        { name: "閿洏鍜岃瑷�", icon: "\ue6dc" },
-        { name: "閫氱敤璁剧疆", icon: "\ue6db" },
-        { name: "璁惧淇℃伅", icon: "\ue756" },
+        {
+          name: "璐︽埛",
+          icon: "\ue6de",
+          imgUrl: "/images/settings/璐︽埛-钃�.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/璐︽埛.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/璐︽埛.png",
+        },
+        {
+          name: "鏃ユ湡鏃堕棿",
+          icon: "\ue6ff",
+          imgUrl: "/images/settings/鏃堕棿鏃ユ湡.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/鏃堕棿淇℃伅.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/鏃堕棿鏃ユ湡.png",
+        },
+        {
+          name: "闆嗙兢绠$悊",
+          icon: "\ue6df",
+          imgUrl: "/images/settings/闆嗙兢绠$悊.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/闆嗙兢绠$悊.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/闆嗙兢绠$悊.png",
+        },
+        {
+          name: "缃戠粶璁剧疆",
+          icon: "\ue6dd",
+          imgUrl: "/images/settings/缃戠粶璁剧疆.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/缃戠粶璁剧疆.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/缃戠粶璁剧疆.png",
+        },
+        {
+          name: "閿洏鍜岃瑷�",
+          icon: "\ue6dc",
+          imgUrl: "/images/settings/閿洏鍜岃瑷�.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/閿洏鍜岃瑷�.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/閿洏鍜岃瑷�.png",
+        },
+        {
+          name: "閫氱敤璁剧疆",
+          icon: "\ue6db",
+          imgUrl: "/images/settings/閫氱敤璁剧疆.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/閫氱敤璁剧疆.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/閫氱敤璁剧疆.png",
+        },
+        {
+          name: "璁惧淇℃伅",
+          icon: "\ue756",
+          imgUrl: "/images/settings/璁惧淇℃伅.png",
+          blackIcon: "/images/settings/榛戣壊涓�绾con/璁惧淇℃伅.png",
+          whiteIcon: "/images/settings/鐧借壊涓�绾con/璁惧淇℃伅.png",
+        },
       ],
       accountArr: [],
       jpgArr: [],
-      isManual: false,
-      isNtp: true,
+      isManual: true,
+      isNtp: false,
       activeIndex: 0,
       clockTimer: null,
       inputHour: "",
@@ -736,6 +872,9 @@
   beforeDestroy() {
     clearTimeout(this.clockTimer);
     clearInterval(this.browserTimer);
+    if (this.$refs.curPage) {
+      this.$refs.curPage.removeEventListener("click");
+    }
   },
   mounted() {
     const menu = getUrlKey("menu");
@@ -743,11 +882,19 @@
       this.showWelcome = false;
       this.activeIndex = this.menuArr.findIndex((x) => x.name == menu);
       this.$nextTick(() => {
-        this.$refs.netSettings.openRight(2);
+        this.$refs.view_3.openRight(2);
       });
     }
     this.fetchUserList();
     this.fetchDefHeadPic();
+    const e = this.$refs.curPage;
+    if (e) {
+      e.addEventListener("click", () => {
+        if (this.showRecomand) {
+          this.showRecomand = false;
+        }
+      });
+    }
   },
   methods: {
     fetchDefHeadPic() {
@@ -1051,15 +1198,15 @@
         }
       });
     },
-    openMenu(name, i) {
+    openMenu(i) {
       this.activeIndex = i;
       if (this.activeIndex == 1) {
         this.initClockConf();
       }
     },
-    openWelcome(item, i) {
+    openWelcome(i) {
       this.showWelcome = false;
-      this.openMenu(item.name, i);
+      this.openMenu(i);
     },
     showInput(typ) {
       this[`show${typ}Input`] = true;
@@ -1125,6 +1272,22 @@
       this.isChangePw = false;
       this.inAccountDetail = false;
       this.$refs["passwordForm"].resetFields();
+    },
+    pickQuick(addr) {
+      if (addr.length == 1) {
+        this.openWelcome(addr[0]);
+      } else {
+        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]);
+        });
+      }
     },
     cacelChoosePic() {
       this.addForm.headpic = "";
@@ -1236,6 +1399,7 @@
     runClock() {
       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);
@@ -1334,6 +1498,15 @@
       }
       return true;
     },
+    searchArrForShow() {
+      if (this.searchText == "") {
+        return this.searchArr;
+      } else {
+        return this.searchArr.filter((item) => {
+          return item.name.indexOf(this.searchText.toUpperCase()) > -1;
+        });
+      }
+    },
   },
 };
 </script>
@@ -1341,44 +1514,149 @@
 .welcome-page {
   width: 100%;
   height: 100%;
-  background-color: #f5f5f5;
   display: -ms-flexbox;
-  padding: 0 50px;
+  padding: 145px 32px 50px 32px;
   box-sizing: border-box;
-  .child {
+  background-color: rgba(255, 255, 255, 0.9);
+  backdrop-filter: blur(4px);
+  .border-change {
+    border-radius: 20px !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;
     box-sizing: border-box;
-    background-color: white;
-    float: left;
-    width: 250px;
-    height: 200px;
-    margin: 50px 57px 30px 57px;
-    border-radius: 20px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    cursor: pointer;
-    -moz-box-shadow: 2px 2px 4px rgb(226, 226, 226);
-    -webkit-box-shadow: 2px 2px 4px rgb(226, 226, 226);
-    box-shadow: 2px 2px 4px rgb(226, 226, 226);
-    .child-info {
-      display: flex;
-      flex-direction: column;
-      height: 62%;
-      justify-content: space-around;
-      .welcome-icon {
-        font-size: 72px;
+    backdrop-filter: blur(4px);
+    border-radius: 40px;
+    .search-input {
+      font-size: 14px;
+      .el-input--mini .el-input__inner {
+        height: 36px;
+        line-height: 36px;
       }
-      .welcome-title {
-        font-size: 18px;
+      .el-input--suffix .el-input__inner {
+        padding-right: 40px;
+      }
+      .el-input__inner {
+        background-color: #fff;
+        background-image: none;
+        border-radius: 40px;
+        border: none;
+        box-sizing: border-box;
+        color: #606266;
+        display: inline-block;
+        font-size: 14px;
+        height: 36px;
+        line-height: 36px;
+        outline: 0;
+        padding: 0 20px;
+        -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;
+      }
+      .el-input__suffix {
+        display: flex;
+        align-items: center;
+        padding-right: 10px;
+        .el-input__suffix-inner {
+          border-color: none;
+          .el-icon-circle-close:before {
+            content: "\e79d" !important;
+            font-size: 17px;
+          }
+          .el-icon-search {
+            color: #2f2d3d;
+            font-weight: bold;
+            font-size: 17px;
+          }
+        }
       }
     }
+    .search-res {
+      max-height: 240px;
+      overflow: auto;
+      .res-bar {
+        height: 40px;
+        line-height: 40px;
+        text-align: left;
+        box-sizing: border-box;
+        padding: 0 20px;
+        color: #333333;
+        font-size: 14px;
+        cursor: pointer;
+      }
+      .no-res-bar {
+        height: 40px;
+        line-height: 40px;
+        text-align: left;
+        box-sizing: border-box;
+        padding: 0 20px;
+        color: #333333;
+        font-size: 14px;
+      }
+      .res-bar:hover {
+        background: #f5f5f6 10%;
+        font-weight: bold;
+        color: #4e94ff;
+      }
+      // .res-bar:last-child {
+      //   border-radius: 0 0 20px 20px;
+      // }
+    }
   }
-  .child:hover {
-    -moz-box-shadow: 5px 5px 15px rgb(218, 218, 218);
-    -webkit-box-shadow: 5px 5px 15px rgb(218, 218, 218);
-    box-shadow: 5px 5px 15px rgb(218, 218, 218);
-    transform: translate3d(0, -3px, 0);
-    transition: all 0.4s;
+  .nav-items {
+    .nav-child {
+      box-sizing: border-box;
+      background-color: rgba(251, 251, 255, 0.1);
+      backdrop-filter: blur(4px);
+      float: left;
+      width: 208px;
+      height: 190px;
+      margin: 0 15px;
+      margin-bottom: 30px;
+      border-radius: 15px;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      cursor: pointer;
+
+      // box-shadow: 2px 2px 4px rgb(226, 226, 226);
+      .child-info {
+        display: flex;
+        flex-direction: column;
+        // justify-content: space-around;
+        height: 100%;
+        .welcome-icon {
+          font-size: 72px;
+        }
+        img {
+          width: 64px;
+          margin: 0 auto;
+          margin-top: 65px;
+          height: 50px;
+        }
+        .welcome-title {
+          font-size: 16px;
+          font-weight: bold;
+          margin-top: 24px;
+          color: #333333;
+        }
+      }
+    }
+    .nav-child:hover {
+      // box-shadow: 4px 4px 12px rgb(218, 218, 218);
+      // transform: translate3d(0, -1px, 0);
+      // transition: all 0.3s;
+    }
   }
 }
 .container {
@@ -1388,38 +1666,64 @@
   flex: 1;
   flex-basis: auto;
   box-sizing: border-box;
+  background-color: #fff;
+  border-top: 1px solid #e1e0e6;
+
   .container-left {
     height: 100%;
-    width: 230px;
+    width: 244px;
     overflow: auto;
     box-sizing: border-box;
     flex-shrink: 0;
     padding: 10px;
-    border-right: 5px solid rgba(248, 248, 248, 1);
+    // border-right: 5px solid rgba(248, 248, 248, 1);
     box-sizing: border-box;
     .left-card {
-      height: 55px;
+      height: 56px;
       cursor: pointer;
-      border-radius: 12px;
+      border-radius: 8px;
       margin-bottom: 10px;
       display: flex;
       align-items: center;
-      .iconfont {
-        margin-left: 25px;
-        margin-right: 10px;
-        font-size: 24px;
-      }
+      padding: 0 20px;
+      // .iconfont {
+      //   margin-left: 25px;
+      //   margin-right: 10px;
+      //   font-size: 24px;
+      // }
       .card-text {
+        margin-left: 20px;
+        color: #333333;
+        font-weight: bold;
         font-size: 16px;
+        line-height: 22px;
+        height: 22px;
+      }
+      img {
+        height: 40px;
+        width: 40px;
+      }
+      .w {
+        display: none;
+      }
+      .b {
+        display: block;
       }
     }
     .left-card-active {
-      background-color: var(--colorCard);
-      color: #fff;
+      background-color: #4e94ff !important;
+      .card-text {
+        color: #fff !important;
+      }
+      .b {
+        display: none;
+      }
+      .w {
+        display: block;
+      }
     }
     .left-card:hover {
-      background-color: var(--colorCard);
-      color: #fff;
+      background-color: #f2f2f7;
     }
   }
   .container-center {
@@ -1478,53 +1782,6 @@
         color: #fff;
       }
     }
-    .datetime-left {
-      .time-card {
-        height: 105px;
-        background-color: rgba(248, 248, 248, 1);
-        margin-bottom: 30px;
-        border-radius: 10px;
-        .head {
-          height: 30px;
-          line-height: 30px;
-          text-align: left;
-          box-sizing: border-box;
-          padding: 0 10px;
-          font-size: 14px;
-          .icon {
-            margin-right: 5px;
-            color: rgba(61, 104, 225, 1);
-          }
-        }
-        .time-main {
-          height: 42px;
-          line-height: 42px;
-          font-family: Consolas;
-          font-size: 36px;
-        }
-        .date-bot {
-          height: 25px;
-          font-size: 14px;
-          line-height: 25px;
-          color: #868686;
-          display: flex;
-          justify-content: space-evenly;
-        }
-      }
-      .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;
-        }
-      }
-    }
   }
   .container-right {
     flex: 1;
@@ -1532,7 +1789,8 @@
     overflow: auto;
     box-sizing: border-box;
     position: relative;
-    padding: 20px 40px;
+    padding: 30px 40px;
+    background: #f2f2f7;
     .account-right {
       .account-content {
         .content-top {
@@ -1768,6 +2026,256 @@
       }
     }
     .datetime-right {
+      .datetime-left {
+        .device-time {
+          color: #333333;
+          .title {
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            font-size: 16px;
+            line-height: 28px;
+            font-weight: bold;
+            margin-bottom: 22px;
+            img {
+              margin-right: 10px;
+              height: 28px;
+              width: 28px;
+            }
+          }
+          .time-main {
+            height: 50px;
+            line-height: 50px;
+            font-family: Consolas;
+            font-size: 40px;
+
+            font-weight: bold;
+            letter-spacing: 2px;
+          }
+          .date-bot {
+            height: 20px;
+            letter-spacing: 0.5px;
+            display: flex;
+            justify-content: center;
+            font-weight: bold;
+            font-size: 14px;
+            line-height: 20px;
+            margin-top: 8px;
+            .year {
+              margin-right: 10px;
+            }
+          }
+        }
+        .adjust-zone {
+          margin-top: 40px;
+          background: linear-gradient(
+            96.76deg,
+            rgba(234, 253, 255, 0.1) 0%,
+            rgba(200, 249, 255, 0.35) 29.69%,
+            rgba(244, 238, 255, 0.5) 68.75%,
+            rgba(201, 249, 255, 0.5) 100%
+          );
+          height: 370px;
+          box-sizing: border-box;
+          padding: 29px;
+          .two-radio {
+            width: 180px;
+            height: 28px;
+            background: #ffffff;
+            border-radius: 20px;
+            display: flex;
+            margin: 0 auto;
+            .radio {
+              width: 90px;
+              height: 28px;
+              line-height: 28px;
+              border-radius: 20px;
+              display: flex;
+              justify-content: center;
+              font-weight: bold;
+              font-size: 14px;
+              cursor: pointer;
+              letter-spacing: 0.5px;
+            }
+            .highlight-radio {
+              background: #4e94ff;
+              color: #ffffff;
+            }
+          }
+          .clock-wrap {
+            display: flex;
+            margin: 30px auto;
+            justify-content: center;
+            align-items: center;
+            .clock {
+              display: flex;
+              align-items: center;
+              justify-content: space-evenly;
+              .iconfont {
+                cursor: pointer;
+                color: rgba(134, 134, 134, 1);
+              }
+              .iconfont:hover {
+                background-color: gainsboro;
+              }
+              .time-block {
+                background-color: #fff;
+                display: flex;
+                align-items: center;
+                width: 100px;
+                height: 50px;
+                justify-content: space-evenly;
+                border-radius: 10px;
+              }
+              .dnum {
+                width: 40px;
+                height: 40px;
+                line-height: 40px;
+                font-size: 34px;
+                font-family: Consolas;
+                display: flex;
+                align-items: center;
+                .input-box {
+                  width: inherit;
+                  border: none;
+                  border-radius: 5px;
+                  height: 35px;
+                  font-size: 28px;
+                  text-align: center;
+                }
+
+                .input-box:focus {
+                  outline: none;
+                }
+              }
+              .control {
+                width: 20px;
+                .fanzhuan {
+                  display: inline-block;
+                  -moz-transform: scaleY(-1);
+                  -webkit-transform: scaleY(-1);
+                  -o-transform: scaleY(-1);
+                  transform: scaleY(-1);
+                }
+              }
+              .sep {
+                font-family: Consolas;
+                width: 40px;
+                font-size: 34px;
+                height: 40px;
+                line-height: 40px;
+              }
+            }
+          }
+          .date-adjust {
+            width: 580px;
+            margin: 0 auto;
+            height: 40px;
+            background: #ffffff;
+            border-radius: 20px;
+            display: flex;
+            justify-content: space-evenly;
+            justify-content: space-around;
+            padding: 0px 15px;
+            box-sizing: border-box;
+            .adjust-bar {
+              display: flex;
+              justify-content: space-between;
+              align-items: center;
+              line-height: 40px;
+              width: 90px;
+              .middle {
+                font-weight: 600;
+                font-size: 14px;
+                width: 70px;
+              }
+              .input-box {
+                width: 38px;
+                border: none;
+                border-radius: 2px;
+                height: 25px;
+                text-align: center;
+                background-color: #f2f2f7;
+              }
+
+              .input-box:focus {
+                outline: none;
+              }
+              .minus {
+                font-size: 14px;
+                cursor: pointer;
+                line-height: 40px;
+                color: #000000;
+                width: 25px;
+                cursor: pointer;
+              }
+              .plus {
+                font-size: 14px;
+                cursor: pointer;
+                line-height: 40px;
+                color: #000000;
+                width: 25px;
+                cursor: pointer;
+              }
+            }
+          }
+          .ntp-wrap {
+            margin-top: 40px;
+            margin-bottom: 68px;
+            .el-form-item {
+              margin: 20px auto;
+              height: 48px;
+              background: #ffffff;
+              box-sizing: border-box;
+              border-radius: 8px;
+              width: 580px;
+              padding: 0 30px;
+              display: flex;
+              align-items: center;
+            }
+            .right {
+              display: flex;
+              align-items: baseline;
+              .desc-min {
+                font-size: 12px;
+                font-weight: bold;
+                margin-left: 6px;
+              }
+              .el-input-number--small {
+                width: 195px;
+                .el-input__inner {
+                  height: 32px;
+                  line-height: 32px;
+                  border: 2px solid transparent;
+                  border-radius: 20px;
+                  background: #f2f2f7;
+                }
+                .el-input__inner:focus {
+                  border: 2px solid #4e94ff;
+                }
+              }
+              .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;
+                box-sizing: border-box;
+                border-radius: 20px;
+                width: 68px;
+                color: #333;
+                font-weight: bold;
+              }
+            }
+          }
+          .manual-time {
+            width: 500px;
+            margin: 0 auto;
+          }
+        }
+      }
       .el-form-item.is-required:not(.is-no-asterisk)
         > .el-form-item__label:before,
       .el-form-item.is-required:not(.is-no-asterisk)
@@ -1785,180 +2293,56 @@
         border-radius: 10px;
         .el-form-item__label {
           text-align: left;
-          line-height: 42px;
+          width: 184px;
+          color: #333;
+          font-weight: bold;
         }
       }
       .el-form-item__content {
-        line-height: 40px;
+        line-height: 16px;
         position: relative;
         font-size: 14px;
-        margin-bottom: 10px;
       }
       .ip-input-container {
         max-width: none !important;
-      }
-      .ntp-time {
-        .right {
-          display: flex;
-          align-items: baseline;
-          .el-input-number--small {
-            width: 100%;
-          }
-          .el-button--text {
-            margin-left: 10px;
-            text-decoration: underline;
-          }
-        }
-      }
-      .manual-time {
-        .clock-wrap {
-          height: 75px;
-
-          background-color: #f8f8f8;
-          display: flex;
-          justify-content: center;
-          align-items: center;
-          margin-bottom: 10px;
-          border-radius: 10px;
-          .clock {
-            display: flex;
-            align-items: center;
-            height: 90px;
-            justify-content: space-evenly;
-            .iconfont {
-              cursor: pointer;
-              color: rgba(134, 134, 134, 1);
-            }
-            .iconfont:hover {
-              background-color: gainsboro;
-            }
-            .hour {
-              background-color: rgba(240, 240, 240, 1);
-              display: flex;
-              align-items: center;
-              width: 100px;
-              height: 50px;
-              justify-content: space-evenly;
-              border-radius: 10px;
-            }
-            .dnum {
-              width: 40px;
-              height: 40px;
-              line-height: 40px;
-              font-size: 34px;
-              font-family: Consolas;
-              display: flex;
-              align-items: center;
-              .input-box {
-                width: inherit;
-                border: none;
-                border-radius: 5px;
-                height: 35px;
-                font-size: 28px;
-                text-align: center;
-              }
-
-              .input-box:focus {
-                outline: none;
-              }
-            }
-            .control {
-              width: 20px;
-              .fanzhuan {
-                display: inline-block;
-                -moz-transform: scaleY(-1);
-                -webkit-transform: scaleY(-1);
-                -o-transform: scaleY(-1);
-                transform: scaleY(-1);
-              }
-            }
-            .sep {
-              font-family: Consolas;
-              width: 40px;
-              font-size: 34px;
-              height: 40px;
-              line-height: 40px;
-            }
-            .mins {
-              background-color: #f0f0f0;
-              display: flex;
-              align-items: center;
-              width: 110px;
-              height: 50px;
-              justify-content: space-evenly;
-              border-radius: 10px;
-            }
-          }
-        }
-        .adjust-bar {
-          display: flex;
-          justify-content: space-between;
-          align-items: center;
-          margin-bottom: 10px;
-          border-radius: 10px;
-          height: 50px;
-          background-color: rgba(248, 248, 248, 1);
-          .middle {
-            font-size: 14px;
-          }
-          .input-box {
-            width: 80px;
-            border: none;
-            border-radius: 5px;
-            height: 25px;
-            font-size: 18px;
-            text-align: center;
-          }
-
-          .input-box:focus {
-            outline: none;
-          }
-          .minus {
-            width: 50px;
-            height: 50px;
-            background-color: #f0f0f0;
-            font-size: 35px;
-            border-radius: 10px;
-            cursor: pointer;
-            line-height: 50px;
-            color: rgba(134, 134, 134, 1);
-          }
-          .plus {
-            width: 50px;
-            height: 50px;
-            cursor: pointer;
-            background-color: #f0f0f0;
-            font-size: 35px;
-            border-radius: 10px;
-            line-height: 50px;
-            color: rgba(134, 134, 134, 1);
-          }
-        }
+        display: inline-block;
+        width: 336px;
+        height: 34px;
+        line-height: normal;
+        box-sizing: border-box;
+        background-color: #f2f2f7;
+        text-align: left;
+        max-width: 360px;
+        border-radius: 20px;
+        border: 2px solid transparent;
       }
     }
     .btns {
+      margin: 0 auto;
+      margin-top: 30px;
+      width: fit-content;
       display: flex;
-      justify-content: space-between;
-      margin-top: 20px;
-
       .cancel {
+        width: 188px;
         height: 40px;
-        width: 48%;
         cursor: pointer;
-        border-radius: 8px;
-        background-color: rgba(240, 240, 240, 1);
+        border-radius: 25px;
+        background-color: #e0e0e0;
         line-height: 40px;
-        font-size: 14px;
+        font-weight: bold;
+        font-size: 16px;
+        margin-right: 12px;
       }
       .ok {
+        width: 188px;
         height: 40px;
-        width: 48%;
         cursor: pointer;
-        border-radius: 8px;
-        background-color: rgba(61, 104, 225, 1);
+        border-radius: 25px;
+        background-color: #4e94ff;
         color: #fff;
         line-height: 40px;
-        font-size: 14px;
+        font-weight: bold;
+        font-size: 16px;
       }
     }
   }

--
Gitblit v1.8.0