| | |
| | | class="account-card" |
| | | v-for="(item, index) in accountArr" |
| | | :key="index" |
| | | ref="account-card" |
| | | @click="openAccount(item, index)" |
| | | > |
| | | <div class="touxiang"> |
| | | <img src="" alt="" /> |
| | |
| | | v-if="activePage == '账户' || activePage == '日期时间'" |
| | | > |
| | | <div class="account-right" v-if="activePage == '账户'"> |
| | | <div class="account-content" v-if="inAccountDetail == false"> |
| | | <div |
| | | class="account-content" |
| | | v-if="inAccountDetail == false && isAddAccount == false" |
| | | > |
| | | <div class="content-top"> |
| | | <div class="touxiang-big"></div> |
| | | <div class="user-desc"> |
| | | <div class="username">飞利浦</div> |
| | | <div class="username"> |
| | | <span class="icon iconfont" style="margin-right: 5px" |
| | | ></span |
| | | > |
| | | |
| | | <span>飞利浦</span> |
| | | </div> |
| | | <div class="nickname"> |
| | | <span>兔兔</span> |
| | | <span class="icon iconfont"></span> |
| | | <span>昵称:</span> |
| | | <span v-show="!showInputNickName">{{ inputNickName }}</span> |
| | | <input |
| | | type="text" |
| | | class="input-nick" |
| | | ref="input-nick" |
| | | v-show="showInputNickName" |
| | | v-model="inputNickName" |
| | | @blur="hideInputNick" |
| | | @keydown.enter="hideInputNick" |
| | | /> |
| | | <span class="icon iconfont" @click="editNickName" |
| | | ></span |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="change-pw" v-if="inAccountDetail && isChangePw"> |
| | | <div class="title">修改密码</div> |
| | | |
| | | <div class="p-title">当前密码:</div> |
| | | <el-form |
| | | :model="passwordForm" |
| | | :rules="rules" |
| | | ref="passwordForm" |
| | | class="password-form" |
| | | > |
| | | <el-form-item> |
| | | <div class="p-title">当前密码:</div> |
| | | |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="input1" |
| | | show-password |
| | | ></el-input> |
| | | <div class="p-title">新密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="input2" |
| | | show-password |
| | | ></el-input> |
| | | <div class="p-title">确认密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="input3" |
| | | show-password |
| | | ></el-input> |
| | | |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="passwordForm.curPassword" |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <div class="p-title">新密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="passwordForm.newPassword" |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <div class="p-title">确认密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="passwordForm.confirmPassword" |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <div class="cancel" @click="cancelChangePassword">取消</div> |
| | | <div class="ok">保存</div> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="add-account-page" v-if="inAccountDetail && isAddAccount"> |
| | | <div class="add-account-page" v-if="isAddAccount"> |
| | | <div class="title">添加账户</div> |
| | | <div class="upload-group"> |
| | | <div |
| | |
| | | v-for="(item, index) in jpgArr" |
| | | :key="index" |
| | | ></div> |
| | | <div |
| | | <!-- <div |
| | | class="upload-jpg" |
| | | style="height: 0px; visibility: hidden" |
| | | ></div> |
| | |
| | | <div |
| | | class="upload-jpg" |
| | | style="height: 0px; visibility: hidden" |
| | | ></div> |
| | | ></div> --> |
| | | </div> |
| | | <div class="fill-group"> |
| | | <div class="p-title">用户名:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="input1" |
| | | show-password |
| | | ></el-input> |
| | | <div class="p-title">昵称</div> |
| | | <el-input |
| | | placeholder="选填" |
| | | v-model="input2" |
| | | show-password |
| | | ></el-input> |
| | | <div class="p-title">密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="input3" |
| | | show-password |
| | | ></el-input> |
| | | <div class="p-title">确认密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="input3" |
| | | show-password |
| | | ></el-input> |
| | | <el-form |
| | | :model="addForm" |
| | | :rules="rules" |
| | | ref="addForm" |
| | | class="add-form" |
| | | > |
| | | <el-form-item> |
| | | <div class="p-title">用户名:</div> |
| | | |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="addForm.userName" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <div class="p-title">昵称:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="addForm.nickName" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <div class="p-title">密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="addForm.password" |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <div class="p-title">确认密码:</div> |
| | | <el-input |
| | | placeholder="必填" |
| | | v-model="addForm.confirmPassword" |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="btns"> |
| | | <div class="cancel" @click="cancelAdd">取消</div> |
| | |
| | | </div> |
| | | <div class="adjust-bar"> |
| | | <div class="minus" @click="minusOne('mth')">-</div> |
| | | <div class="middle"> |
| | | |
| | | <span v-show="!showMonthInput">{{ syncMonth }}</span> |
| | | <div class="middle" @click="showInput('Month')"> |
| | | <span v-show="!showMonthInput">{{ syncMonth }}</span> |
| | | <input |
| | | class="input-box" |
| | | v-show="showMonthInput" |
| | | ref="iptYrs" |
| | | oninput="value=value.replace(/[^\d]/g,'');if(value.length>4)value=value.slice(0,4);" |
| | | ref="iptMonth" |
| | | oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>12)value='12'" |
| | | type="text" |
| | | v-model="inputMonth" |
| | | @blur="hideInput('Month')" |
| | | @keydown.enter="hideInput('Month')" |
| | | /> |
| | | 月 |
| | | |
| | | |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="plus" @click="plusOne('mth')">+</div> |
| | | </div> |
| | | <div class="adjust-bar"> |
| | | <div class="minus" @click="minusOne('day')">-</div> |
| | | <div class="middle">{{ syncDay }} 日</div> |
| | | <div class="middle" @click="showInput('Day')"> |
| | | <span v-show="!showDayInput">{{ syncDay }}</span> |
| | | <input |
| | | class="input-box" |
| | | v-show="showDayInput" |
| | | ref="iptDay" |
| | | oninput="value=value.replace(/[^\d]/g,'');if(value.length>2)value=value.slice(0,2);if(+value>31)value='31'" |
| | | type="text" |
| | | v-model="inputDay" |
| | | @blur="hideInput('Day')" |
| | | @keydown.enter="hideInput('Day')" |
| | | /> |
| | | 日 |
| | | </div> |
| | | <div class="plus" @click="plusOne('day')">+</div> |
| | | </div> |
| | | </div> |
| | |
| | | browserTimer: null, |
| | | timezone: "", |
| | | isRealtime: false, |
| | | inputNickName: "兔兔", |
| | | showHourInput: false, |
| | | showMinInput: false, |
| | | showSecInput: false, |
| | | showYrsInput: false, |
| | | showMonthInput: false, |
| | | showDayInput: false, |
| | | |
| | | timestamp: 0, |
| | | inAccountDetail: false, |
| | |
| | | inputMin: "", |
| | | inputSec: "", |
| | | inputYrs: "", |
| | | showInputNickName: false, |
| | | inputMonth: "", |
| | | inputDay: "", |
| | | passwordForm: { |
| | | curPassword: "", |
| | | newPassword: "", |
| | | confirmPassword: "", |
| | | }, |
| | | activeAccount: 0, |
| | | addForm: { |
| | | userName: "", |
| | | nickName: "", |
| | | password: "", |
| | | confirmPassword: "", |
| | | }, |
| | | }; |
| | | }, |
| | | beforeDestroy() { |
| | |
| | | }); |
| | | }, |
| | | methods: { |
| | | editNickName() { |
| | | this.showInputNickName = true; |
| | | this.$refs["input-nick"].focus(); |
| | | }, |
| | | hideInputNick() { |
| | | this.showInputNickName = false; |
| | | }, |
| | | openAccount(item, i) { |
| | | this.$refs[`account-card`].forEach((x) => { |
| | | x.style.backgroundColor = "rgba(248, 248, 248, 1)"; |
| | | x.style.color = "#2c3e50"; |
| | | }); |
| | | this.$refs[`account-card`][i].style.backgroundColor = |
| | | "rgba(61, 104, 225, 1)"; |
| | | this.$refs[`account-card`][i].style.color = "#fff"; |
| | | }, |
| | | minusOne(typ) { |
| | | this.isSyncBrowser = false; |
| | | this.syncBrowser(false); |
| | |
| | | } |
| | | }, |
| | | submitClock() { |
| | | debugger; |
| | | if (this.syncType === "1") { |
| | | if (this.ntpServer === "") { |
| | | this.$notify({ |
| | |
| | | } else if (this.timeInterval === "") { |
| | | this.timeInterval = 1; |
| | | } |
| | | } else { |
| | | } else if (this.isSyncBrowser) { |
| | | if (this.settime === "") { |
| | | this.$notify({ |
| | | type: "error", |
| | |
| | | }); |
| | | return false; |
| | | } |
| | | } else { |
| | | this.settime = `${this.syncYrs}-${this.syncMonth}-${this.syncDay} ${this.syncHour}:${this.syncMin}:${this.syncSec}`; |
| | | } |
| | | let requestBody = { |
| | | timeZone: this.timezone, |
| | |
| | | }, |
| | | openChangePw() {}, |
| | | showAddAccount() { |
| | | this.inAccountDetail = true; |
| | | this.inAccountDetail = false; |
| | | this.isAddAccount = true; |
| | | }, |
| | | cancelAdd() { |
| | |
| | | this.isNtp = !v; |
| | | v && (this.syncType = "2"); |
| | | if (v) { |
| | | [ |
| | | this.syncYrs, |
| | | this.syncMonth, |
| | | this.syncDay, |
| | | ] = this.equipmentDate.split("-"); |
| | | [this.syncYrs, this.syncMonth, this.syncDay] = this.equipmentDate.split( |
| | | "-" |
| | | ); |
| | | [this.syncHour, this.syncMin, this.syncSec] = this.equipmentTime.split( |
| | | ":" |
| | | ); |
| | |
| | | border-right: 5px solid rgba(248, 248, 248, 1); |
| | | box-sizing: border-box; |
| | | .account-left { |
| | | .account-list { |
| | | height: 530px; |
| | | } |
| | | |
| | | .add-account { |
| | | color: rgba(61, 104, 225, 1); |
| | | margin-top: 50px; |
| | | |
| | | .iconfont { |
| | | cursor: pointer; |
| | | font-size: 30px; |
| | | font-size: 32px; |
| | | } |
| | | } |
| | | .account-card { |
| | | height: 40px; |
| | | background-color: goldenrod; |
| | | height: 50px; |
| | | background-color: rgba(248, 248, 248, 1); |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | box-sizing: border-box; |
| | | border-radius: 10px; |
| | | cursor: pointer; |
| | | .touxiang { |
| | | height: 30px; |
| | | width: 30px; |
| | | background-color: green; |
| | | height: 35px; |
| | | width: 35px; |
| | | background-color: bisque; |
| | | border-radius: 17.5px; |
| | | } |
| | | .user-name { |
| | | margin-left: 10px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | |
| | | } |
| | | .datetime-left { |
| | | .time-card { |
| | |
| | | .account-right { |
| | | .account-content { |
| | | .content-top { |
| | | height: 150px; |
| | | background-color: antiquewhite; |
| | | height: 120px; |
| | | width: 350px; |
| | | margin: 0 auto; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-bottom: 20px; |
| | | .touxiang-big { |
| | | width: 100px; |
| | | height: 100px; |
| | | background-color: indigo; |
| | | background-color: bisque; |
| | | border-radius: 50px; |
| | | } |
| | | .user-desc { |
| | | background-color: khaki; |
| | | height: 100px; |
| | | width: 150px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: baseline; |
| | | min-width: 200px; |
| | | .username { |
| | | margin: 5px 15px; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | width: 90px; |
| | | text-align: left; |
| | | font-size: 15px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .nickname { |
| | | margin: 5px 15px; |
| | | font-size: 14px; |
| | | .input-nick { |
| | | width: 50px; |
| | | margin-right: 5px; |
| | | } |
| | | .iconfont { |
| | | font-size: 14px; |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | align-items: center; |
| | | .item-btn { |
| | | width: 500px; |
| | | height: 50px; |
| | | background-color: rgba(240, 240, 240, 1); |
| | | margin-bottom: 10px; |
| | | height: 45px; |
| | | background-color: #f0f0f0; |
| | | margin-bottom: 15px; |
| | | border-radius: 10px; |
| | | line-height: 45px; |
| | | font-size: 15px; |
| | | cursor: pointer; |
| | | } |
| | | .item-btn:hover { |
| | | color: rgba(255, 153, 102, 1); |
| | | } |
| | | } |
| | | } |
| | | .title { |
| | | height: 30px; |
| | | line-height: 30px; |
| | | /* background-color: aliceblue; */ |
| | | margin-bottom: 10px; |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | } |
| | | .change-pw { |
| | | .p-title { |
| | | text-align: left; |
| | | font-size: 15px; |
| | | margin-top: 5px; |
| | | } |
| | | } |
| | | .el-form-item { |
| | | margin-bottom: 0; |
| | | .el-input__inner { |
| | | background-color: rgba(240, 240, 240, 1); |
| | | border: none; |
| | | border-radius: 12px; |
| | | height: 45px; |
| | | padding: 0 20px; |
| | | font-size: 15px; |
| | | } |
| | | .el-input__clear { |
| | | color: dimgray; |
| | | font-size: 17px; |
| | | line-height: 45px; |
| | | } |
| | | .el-input__suffix { |
| | | right: 1px; |
| | | top: -0.5px; |
| | | width: 45px; |
| | | // background-color: rgba(61, 104, 225, 1); |
| | | /* color: white; */ |
| | | border-radius: 12px; |
| | | } |
| | | } |
| | | .permission { |
| | |
| | | } |
| | | |
| | | .add-account-page { |
| | | background-color: lightcyan; |
| | | padding: 10px 50px; |
| | | // background-color: lightcyan; |
| | | // padding: 10px 50px; |
| | | .upload-group { |
| | | background-color: lightgrey; |
| | | height: 100px; |
| | | display: flex; |
| | | height: 120px; |
| | | width: 350px; |
| | | margin: 0 auto; |
| | | overflow: hidden; |
| | | .upload-jpg { |
| | | height: 40px; |
| | | width: 40px; |
| | | background-color: lightcoral; |
| | | height: 50px; |
| | | width: 50px; |
| | | float: left; |
| | | margin: 0 10px; |
| | | background-color: antiquewhite; |
| | | margin-bottom: 20px; |
| | | border-radius: 25px; |
| | | } |
| | | } |
| | | .fill-group { |
| | |
| | | .middle { |
| | | font-size: 14px; |
| | | } |
| | | .input-box { |
| | | width: 80px; |
| | | border: none; |
| | | border-radius: 5px; |
| | | height: 25px; |
| | | font-size: 18px; |
| | | text-align: center; |
| | | } |
| | | .input-box { |
| | | width: 80px; |
| | | border: none; |
| | | border-radius: 5px; |
| | | height: 25px; |
| | | font-size: 18px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .input-box:focus { |
| | | outline: none; |
| | | } |
| | | .input-box:focus { |
| | | outline: none; |
| | | } |
| | | .minus { |
| | | width: 50px; |
| | | height: 50px; |
| | |
| | | .btns { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-top: 200px; |
| | | margin-top: 20px; |
| | | |
| | | .cancel { |
| | | height: 40px; |
| | | width: 48%; |
| | | |
| | | cursor: pointer; |
| | | border-radius: 8px; |
| | | background-color: rgba(240, 240, 240, 1); |
| | | line-height: 40px; |
| | |
| | | .ok { |
| | | height: 40px; |
| | | width: 48%; |
| | | |
| | | cursor: pointer; |
| | | border-radius: 8px; |
| | | background-color: rgba(61, 104, 225, 1); |
| | | color: #fff; |