| | |
| | | @click.stop |
| | | > |
| | | <div class="top"> |
| | | <img :src="`data:image/png;base64,${userInfo.headpic}`" alt="" /> |
| | | <img |
| | | v-if="userInfo" |
| | | :src="`data:image/png;base64,${userInfo.headpic}`" |
| | | alt="" |
| | | /> |
| | | |
| | | <span class="username">{{ userInfo.username }}</span> |
| | | <span class="username">{{ userInfo && userInfo.username }}</span> |
| | | </div> |
| | | <div class="link-list"> |
| | | <div |
| | |
| | | </div> |
| | | </div> |
| | | <div class="bot"> |
| | | <div class="set" @click="gotoSet"> |
| | | <div class="set" @click="clickFastPath('系统设置')"> |
| | | <span class="icon iconfont">{{ "\ue60f" }}</span> |
| | | <span>设置</span> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="tools-right"> |
| | | <div class="tools-icon my-tools-icon" @click="goToWireSet"> |
| | | <span class="icon iconfont"></span> |
| | | </div> |
| | | <div class="tools-icon my-tools-icon" @click.stop="toggleShowWifi"> |
| | | <span class="icon iconfont"></span> |
| | | </div> |
| | | <div class="tools-icon"> |
| | | <img :src="`${publicPath}images/desktop/header-icon/search.png`" alt /> |
| | | </div> |
| | |
| | | </span> |
| | | <el-dropdown-menu slot="dropdown" style="top: 44px"> |
| | | <el-dropdown-item style="text-align: left"> |
| | | <b>Hi {{ userInfo.username }}</b> |
| | | <b>Hi {{ userInfo && userInfo.username }}</b> |
| | | </el-dropdown-item> |
| | | <el-dropdown-item @click.native="showPasswdForm = true" |
| | | >修改密码</el-dropdown-item |
| | |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <div class="sys-remind" v-if="showSysRemind"> |
| | | <!-- --> |
| | | <div class="remind-title">系统更新提醒</div> |
| | | |
| | | <div class="remind-content"> |
| | | 已做好<b>系统更新</b>的准备,<span style="color: red" |
| | | >更新预计需要一定的时间</span |
| | | >,如果您未准备好,我们将在一小时后再次向您确认。 |
| | | </div> |
| | | |
| | | <div class="btns"> |
| | | <el-button size="mini" type="primary" @click="delaySysRemind(3600 * 24)" |
| | | >关闭此次提醒</el-button |
| | | > |
| | | <el-button size="mini" type="primary" @click="delaySysRemind(60 * 60)" |
| | | >1小时后提醒</el-button |
| | | > |
| | | <el-button |
| | | :loading="upgrading" |
| | | size="mini" |
| | | type="primary" |
| | | @click="updateSysNow" |
| | | > |
| | | {{ upgrading ? "更新中" : "立即更新" }}</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="sys-remind" v-if="showAppRemind"> |
| | | <!-- --> |
| | | <div class="remind-title">算法/应用更新提醒</div> |
| | | |
| | | <div class="remind-content"> |
| | | 发现 <b>算法/应用 </b>更新,<span style="color: red" |
| | | >请前往查看更新</span |
| | | >。如果您未准备好,我们将在一小时后再次向您确认。 |
| | | </div> |
| | | |
| | | <div class="btns"> |
| | | <el-button size="mini" type="primary" @click="delayAppRemind(3600 * 24)" |
| | | >关闭此次提醒</el-button |
| | | > |
| | | <el-button size="mini" type="primary" @click="delayAppRemind(60 * 60)" |
| | | >1小时后提醒</el-button |
| | | > |
| | | <el-button |
| | | :loading="upgrading" |
| | | size="mini" |
| | | type="primary" |
| | | @click="goToUpdate" |
| | | > |
| | | 前往更新</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="wifi-pop" :class="showWifi ? 'wifi-pop-show' : ''"> |
| | | <div class="top-title"> |
| | | <div class="text">无线网络</div> |
| | | <el-switch v-model="isOpenWifi" active-color="rgba(61, 104, 225, 1)"> |
| | | </el-switch> |
| | | </div> |
| | | |
| | | <div class="wifi-list"> |
| | | <div |
| | | class="item" |
| | | :class="i == activeWifi ? 'item-active' : ''" |
| | | v-for="(x, i) in wifiList" |
| | | :key="i" |
| | | @click="pickWifi(x, i)" |
| | | > |
| | | <!-- --> |
| | | <div class="top"> |
| | | <span class="icon iconfont"></span> |
| | | <div class="name"> |
| | | <span style="font-size: 14px">{{ x.name }}</span> |
| | | <span>安全</span> |
| | | </div> |
| | | </div> |
| | | <div class="bot" v-if="x.showBottom"> |
| | | <el-checkbox v-model="x.checked">自动连接</el-checkbox> |
| | | <el-button size="mini">连接</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import html2canvas from "html2canvas"; |
| | | import { logout, updatePwd } from "@/api/login"; |
| | | |
| | | import { |
| | | getUpgradeNotice, |
| | | delayUpgradeNotice, |
| | | getAppUpgradeNotice, |
| | | upgradeNewVersion, |
| | | delayAppNotice, |
| | | } from "@/api/system"; |
| | | export default { |
| | | name: "Tools", |
| | | data() { |
| | |
| | | notificationCenterVisible: false, |
| | | notificationCenterMessageCount: 0, |
| | | userInfo: {}, |
| | | activeWifi: null, |
| | | wifiList: [ |
| | | { name: "网络1", connected: false, showBottom: false, checked: false }, |
| | | { name: "网络2", connected: false, showBottom: false, checked: false }, |
| | | { name: "网络3", connected: true, showBottom: false, checked: false }, |
| | | ], |
| | | linkList: [ |
| | | { name: "文档中心" }, |
| | | { name: "系统监控器" }, |
| | | { name: "日志管理" }, |
| | | ], |
| | | showPasswdForm: false, |
| | | showWifi: false, |
| | | rules: { |
| | | oldPwd: [{ required: true, message: "请输入旧密码", trigger: "blur" }], |
| | | newPwd: [{ required: true, validator: validatePass, trigger: "blur" }], |
| | |
| | | ], |
| | | }, |
| | | showFastPath: false, |
| | | showSysRemind: false, |
| | | showAppRemind: false, |
| | | sysTimeout: 60 * 60 * 1000, |
| | | sysTimer: null, |
| | | appTimeout: 60 * 60 * 1000, |
| | | upgrading: false, |
| | | isOpenWifi: false, |
| | | passwdForm: { |
| | | oldPwd: "", |
| | | newPwd: "", |
| | |
| | | this.userInfo = |
| | | sessionStorage.getItem("userInfo") && |
| | | JSON.parse(sessionStorage.getItem("userInfo")); |
| | | console.log(this.userInfo); |
| | | if (window.toolIntervalArr) { |
| | | window.toolIntervalArr.forEach((item) => clearInterval(item)); |
| | | } |
| | |
| | | }, 600), |
| | | ]; |
| | | }, |
| | | beforeDestroy() { |
| | | clearTimeout(this.sysTimer); |
| | | this.sysTimer = null; |
| | | }, |
| | | mounted() { |
| | | document.addEventListener("click", (e) => { |
| | | // debugger |
| | | // this.showFastPath=false |
| | | if (this.showFastPath) { |
| | | if (this.showFastPath||this.showWifi) { |
| | | this.showFastPath = false; |
| | | this.showWifi = false; |
| | | } |
| | | }); |
| | | this.askSysUpdate(); |
| | | this.askAppUpdate(); |
| | | }, |
| | | methods: { |
| | | askAppUpdate() { |
| | | getAppUpgradeNotice().then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.data.NeedUpdate && res.data.NoticeStatus) { |
| | | if (res.data.LastNoticeTime == 0) { |
| | | this.showAppRemind = true; |
| | | } else { |
| | | this.appTimeout = res.data.LastNoticeTime * 1000; |
| | | this.delayAppAsk(); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | pickWifi(x, i) { |
| | | this.wifiList.forEach((x) => { |
| | | x.showBottom = false; |
| | | }); |
| | | x.showBottom = !x.showBottom; |
| | | this.activeWifi = i; |
| | | }, |
| | | goToUpdate() { |
| | | this.showAppRemind = false; |
| | | window.parent.postMessage({ msg: `toAI?activeName=update` }, "*"); |
| | | }, |
| | | goToWireSet() { |
| | | window.parent.postMessage( |
| | | { msg: `toSetting?menu=网络设置&subMenu=有线网络` }, |
| | | "*" |
| | | ); |
| | | }, |
| | | updateSysNow() { |
| | | window.parent.postMessage( |
| | | { msg: `toVindicate?autoUpdate=1` }, |
| | | "*" |
| | | ); |
| | | // this.upgrading = true; |
| | | // upgradeNewVersion() |
| | | // .then((res) => { |
| | | // if (res.code == 200) { |
| | | // this.upgrading = true; |
| | | |
| | | // this.$notify.success("更新版本成功"); |
| | | // this.showSysRemind = false; |
| | | // } |
| | | // }) |
| | | // .catch((err) => { |
| | | // this.$notify.error("更新版本失败"); |
| | | // }); |
| | | }, |
| | | delaySysRemind(sec) { |
| | | delayUpgradeNotice({ |
| | | delaySecond: sec, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$notify.success("设置成功"); |
| | | this.showSysRemind = false; |
| | | this.sysTimeout = res.data.LastNoticeTime * 1000; |
| | | this.delaySysAsk(); |
| | | } |
| | | }); |
| | | }, |
| | | delayAppRemind(sec) { |
| | | delayAppNotice({ |
| | | delay: sec, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$notify.success("设置成功"); |
| | | this.showAppRemind = false; |
| | | this.appTimeout = res.data.LastNoticeTime * 1000; |
| | | this.delayAppAsk(); |
| | | } |
| | | }); |
| | | }, |
| | | delaySysAsk() { |
| | | this.sysTimer = setTimeout(() => { |
| | | this.askSysUpdate(); |
| | | }, this.sysTimeout); |
| | | }, |
| | | delayAppAsk() { |
| | | this.appTimer = setTimeout(() => { |
| | | this.askAppUpdate(); |
| | | }, this.appTimeout); |
| | | }, |
| | | askSysUpdate() { |
| | | getUpgradeNotice().then((res) => { |
| | | if (res.data.HaveNewVersion > 0 && res.data.NoticeStatus) { |
| | | if (res.data.LastNoticeTime == 0) { |
| | | this.showSysRemind = true; |
| | | } else { |
| | | this.sysTimeout = res.data.LastNoticeTime * 1000; |
| | | this.delaySysAsk(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | toggleShowWifi() { |
| | | this.showWifi = !this.showWifi; |
| | | }, |
| | | submitForm(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | |
| | | newPwd: this.passwdForm.checkPwd, |
| | | }; |
| | | updatePwd(json).then((res) => { |
| | | console.log(res, "修改密码"); |
| | | this.$notify({ |
| | | type: res.success ? "success" : "error", |
| | | message: res.msg, |
| | | }); |
| | | if (res.success) { |
| | | this.showPasswdForm = false; |
| | | // this.$nextTick(_=>{ |
| | | // this.toLogout('修改密码成功,请重新登录!') |
| | | // }) |
| | | } |
| | | }); |
| | | } else { |
| | |
| | | clickFastPath(name) { |
| | | this.$emit("jumpToDock", name); |
| | | }, |
| | | gotoSet() { |
| | | this.$emit("jumpToDock", "系统设置"); |
| | | }, |
| | | toolHover(dock) { |
| | | //this.$parent.screenShot(dock) |
| | | }, |
| | | toLogout() { |
| | | let _this = this; |
| | | this.$confirm("确定退出登录吗?", "提示", { |
| | | // center: true, |
| | | type: "warning", |
| | | cancelButtonClass: "comfirm-class-cancle", |
| | | confirmButtonClass: "comfirm-class-sure", |
| | |
| | | text-align: center; |
| | | height: 100%; |
| | | display: inline-block; |
| | | vertical-align: top; |
| | | vertical-align: bottom; |
| | | |
| | | line-height: 56px; |
| | | padding: 0 15px; |
| | | position: relative; |
| | | .iconfont { |
| | | display: block; |
| | | line-height: 42px; |
| | | font-size: 25px; |
| | | } |
| | | } |
| | | @keyframes move { |
| | | 0% { |
| | |
| | | img { |
| | | height: 50px; |
| | | width: 50px; |
| | | background-color: bisque; |
| | | border-radius: 50%; |
| | | } |
| | | .username { |
| | |
| | | } |
| | | } |
| | | |
| | | .sys-remind { |
| | | background-color: white; |
| | | width: 400px; |
| | | position: absolute; |
| | | right: 5px; |
| | | top: 45px; |
| | | border-radius: 5px; |
| | | .remind-title { |
| | | box-sizing: border-box; |
| | | text-align: left; |
| | | padding: 0 20px; |
| | | border-bottom: 1px solid lightgray; |
| | | font-size: 16px; |
| | | line-height: 35px; |
| | | } |
| | | .remind-content { |
| | | text-align: left; |
| | | line-height: 20px; |
| | | font-size: 14px; |
| | | -webkit-box-sizing: border-box; |
| | | box-sizing: border-box; |
| | | padding: 15px 20px; |
| | | } |
| | | .btns { |
| | | padding: 0px 12px 8px 12px; |
| | | /* background-color: antiquewhite; */ |
| | | text-align: right; |
| | | } |
| | | } |
| | | |
| | | .tools-icon img { |
| | | -webkit-user-drag: none; |
| | | } |
| | |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .wifi-pop { |
| | | position: absolute; |
| | | width: 210px; |
| | | top: 55px; |
| | | height: 400px; |
| | | border-radius: 6px; |
| | | background-color: white; |
| | | transition: 0.2s; |
| | | display: none; |
| | | box-sizing: border-box; |
| | | right: 100px; |
| | | .top-title { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | box-sizing: border-box; |
| | | padding: 0 20px; |
| | | font-size: 14px; |
| | | border-bottom: 1px solid lightgray; |
| | | } |
| | | .wifi-list { |
| | | overflow: auto; |
| | | height: 340px; |
| | | .item-active { |
| | | background-color: rgba(66, 102, 153, 1); |
| | | color: white; |
| | | } |
| | | .item { |
| | | box-sizing: border-box; |
| | | cursor: pointer; |
| | | /* background-color: aqua; */ |
| | | padding: 10px 20px; |
| | | .top { |
| | | display: flex; |
| | | .icon { |
| | | font-size: 20px; |
| | | margin-right: 10px; |
| | | } |
| | | .name { |
| | | display: flex; |
| | | flex-direction: column; |
| | | line-height: 20px; |
| | | text-align: left; |
| | | } |
| | | } |
| | | .bot { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .el-checkbox { |
| | | color: white; |
| | | .el-checkbox__input.is-checked + .el-checkbox__label { |
| | | color: white; |
| | | } |
| | | .el-checkbox__label { |
| | | padding-left: 5px; |
| | | font-size: 12px; |
| | | } |
| | | .el-checkbox__inner { |
| | | width: 12px; |
| | | height: 12px; |
| | | |
| | | .el-checkbox__inner::after { |
| | | height: 6px; |
| | | left: 3px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-button--mini, |
| | | .el-button--mini.is-round { |
| | | padding: 5px 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .wifi-pop-show { |
| | | animation: move linear 0.2s 1; |
| | | display: block; |
| | | } |
| | | |
| | | .fast-path-show { |
| | | animation: move linear 0.2s 1; |
| | | display: block; |