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"></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')" - ></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 + <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