From 1a5cd8c7fde9c7f7218742ea962d30d9a9820155 Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期日, 26 九月 2021 20:16:57 +0800
Subject: [PATCH] 弹层层级bug修复v3
---
src/pages/settings/index/index.vue | 1332 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 862 insertions(+), 470 deletions(-)
diff --git a/src/pages/settings/index/index.vue b/src/pages/settings/index/index.vue
index 13bbef1..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"></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,211 +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')"
- ></span
- >
- <span class="icon iconfont fanzhuan" @click="minusOne('hrs')"
- ></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')"
- ></span
- >
- <span class="icon iconfont fanzhuan" @click="minusOne('min')"
- ></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')"
- ></span
- >
- <span class="icon iconfont fanzhuan" @click="minusOne('sec')"
- ></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')"
+ ></span
+ >
+ <span
+ class="icon iconfont fanzhuan"
+ @click="minusOne('hrs')"
+ ></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')"
+ ></span
+ >
+ <span
+ class="icon iconfont fanzhuan"
+ @click="minusOne('min')"
+ ></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')"
+ ></span
+ >
+ <span
+ class="icon iconfont fanzhuan"
+ @click="minusOne('sec')"
+ ></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
+ 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>
@@ -578,12 +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",
@@ -594,6 +672,7 @@
netSettings,
keyboardLanguage,
generalSettings,
+ deviceInfo,
},
data() {
var v2 = (rule, value, callback) => {
@@ -636,6 +715,7 @@
syncHour: "",
showWelcome: true,
syncDay: "",
+ searchText: "",
syncMin: "",
syncSec: "00",
isSyncBrowser: false,
@@ -643,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,
@@ -652,6 +752,7 @@
selectedPic: null,
showDayInput: false,
timestamp: 0,
+ ajustType: "鎵嬪姩鏍℃椂",
inAccountDetail: false,
isChangePw: false,
isSetPermission: false,
@@ -666,17 +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: "\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: "",
@@ -728,6 +872,9 @@
beforeDestroy() {
clearTimeout(this.clockTimer);
clearInterval(this.browserTimer);
+ if (this.$refs.curPage) {
+ this.$refs.curPage.removeEventListener("click");
+ }
},
mounted() {
const menu = getUrlKey("menu");
@@ -735,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() {
@@ -1043,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;
@@ -1117,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 = "";
@@ -1228,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);
@@ -1326,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>
@@ -1333,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 {
@@ -1380,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: rgba(61, 104, 225, 1);
- color: #fff;
+ background-color: #4e94ff !important;
+ .card-text {
+ color: #fff !important;
+ }
+ .b {
+ display: none;
+ }
+ .w {
+ display: block;
+ }
}
.left-card:hover {
- background-color: rgba(61, 104, 225, 1);
- color: #fff;
+ background-color: #f2f2f7;
}
}
.container-center {
@@ -1466,55 +1778,8 @@
}
.account-card-active {
- background-color: rgba(61, 104, 225, 1);
+ background-color: var(--colorCard);
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;
- }
}
}
}
@@ -1524,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 {
@@ -1760,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)
@@ -1777,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