当前位置: 首页 > news >正文

element-vue实现网页锁屏功能

1.写一个锁屏页面,这里比较简单,自己定义一下,需要放到底层HTML中哦,比如index.html

<div id="appIndex"><el-dialog title="请输入密码解锁屏幕" :visible.sync="lockScreenFlag" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" :append-to-body="true"width="500px" center><el-form :model="form" :rules="rules" ref="form"><el-form-item label="用户名" prop="loginName"><el-input v-model="form.loginName" autocomplete="off" :disabled="true" prefix-icon="el-icon-user-solid"></el-input></el-form-item><el-form-item label="密码" prop="password">
<!--                <el-input type="password" v-model="form.password" autocomplete="off" prefix-icon="el-icon-lock"></el-input>--><el-input prefix-icon="el-icon-lock" placeholder="请输入密码" :type="inputType?'text':'password'" v-model="form.password"><i slot="suffix" :class="inputType?'el-icon-minus':'el-icon-view'" style="margin-top:8px;font-size:18px;" autocomplete="auto" @click="inputType=!inputType"></i></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer" style="text-align: right; padding-right: 5px;"><el-button type="primary" @click="submitPassword" size="small">确 定</el-button></div></el-dialog>
</div>

2.里面需要结合Vue双向绑定的成分

//用户信息
let user = [[${user}]]
//过期事件,let lockScreenTime = 30let app = new Vue({el: '#appIndex',data: function () {var passwordSuccess = (rule, value, callback) => {request.post(ctx+"system/user/checkLoginNameAndPassword",Qs.stringify(this.form)).then(res=>{if (res.data == 0){callback();}else if (res.data == 1){callback(new Error("输入的密码错误或输入了非法用户名"));}else {callback(new Error(res.data.msg));}})}return {lockScreenFlag: false,timer: undefined,time: parseFloat(lockScreenTime)*1000*60,form:{loginName:user.loginName,password: '',},inputType: false,rules: {password: [{required: true, message: '请输入用户名密码', trigger: 'blur'},{validator: passwordSuccess, trigger: 'blur'},],},}},created: function () {if (window.localStorage.getItem("lockScreenFlag")!=undefined){let lockScreenFlag = window.localStorage.getItem("lockScreenFlag");if (lockScreenFlag == '0'){this.lockScreenFlag = false;$("#wrapper").css("pointer-events","auto")}else {$("#wrapper").css("pointer-events","none")this.lockScreenFlag = true;}}this.move();},mounted(){let _this = this;window.document.onmousemove = function () {_this.move();}window.move = this.move;window.openScreen = this.openScreen;},methods: {submitPassword(){this.$refs['form'].validate((valid) => {if (valid) {this.lockScreenFlag = false;$("#wrapper").css("pointer-events","auto")window.localStorage.setItem("lockScreenFlag",'0')}})},lockScreen(){window.clearTimeout(this.timer)this.timer = window.setTimeout(this.openScreen,this.time)},openScreen(){if (!this.lockScreenFlag){this.lockScreenFlag = true;$("#wrapper").css("pointer-events","none")window.localStorage.setItem("lockScreenFlag",'1')}},move(){if (!this.lockScreenFlag){this.lockScreen()}}}})

相关文章:

  • webshell之Laravel和yii
  • 2023.11.25更新关于mac开发APP(flutter)的笔记与整理(实机开发一)
  • 关于easy-es的聚合问题
  • AJAX技术-04-- 跨域说明
  • 【nlp】3.3 Transformer论文复现:2. 编码器部分(掩码张量、多头注意力机制、前馈全连接层)
  • 无需API开发,有赞小程序集成广告推广系统,提升品牌曝光
  • 堆和栈的区别 重点来说一下堆和栈;堆与栈之间的联系
  • Mono 8、Mono 10、Mono 10 Packed、Mono 12、Mono 12 Packe等像素格式简介
  • .NET 使用配置文件
  • 通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(三)
  • Elasticsearch:ES|QL 查询中的元数据字段及多值字段
  • webrtc兼容android4.x的一次探索
  • 深度学习之基于Tensorflow卷积神经网络鸟类目标识别检测系统
  • 3.1.2 Linux时间子系统 hrtimer示例使用
  • Rust语言入门教程(一) - 简介及Cargo使用
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • C++类中的特殊成员函数
  • CEF与代理
  • Docker入门(二) - Dockerfile
  • Object.assign方法不能实现深复制
  • 产品三维模型在线预览
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 扑朔迷离的属性和特性【彻底弄清】
  • 什么是Javascript函数节流?
  • 通信类
  • 我与Jetbrains的这些年
  • 物联网链路协议
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 一、python与pycharm的安装
  • 用element的upload组件实现多图片上传和压缩
  • No resource identifier found for attribute,RxJava之zip操作符
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.ajax()参数及用法
  • (06)金属布线——为半导体注入生命的连接
  • (12)Hive调优——count distinct去重优化
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2020)Java后端开发----(面试题和笔试题)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (day 12)JavaScript学习笔记(数组3)
  • (定时器/计数器)中断系统(详解与使用)
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十)T检验-第一部分