我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue+element实现输入密码锁屏

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue+element实现输入密码锁屏

本文实例为大家分享了vue+element实现输入密码锁屏的具体代码,供大家参考,具体内容如下

1.页面中个的点击事件

通过vuex来存在状态


            lock() {
                console.log('锁屏')
                const that = this
                this.$prompt('请输入锁屏密码', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    inputPattern: /\S/,        //判断不为空正则
                    inputErrorMessage: '锁屏密码不能为空'
                }).then(({
                    value
                }) => {
                    that.isLock = !that.isLock
                    that.$store.commit('SET_LOCK_PASSWD', value)
                    that.elementTips("success", "锁屏成功");
                    this.handleLock()
                }).catch(() => {
                    that.elementTips("info", "锁屏失败");
                });
            },
            //判断输入框是否有内容,有内容就跳转,设置状态
            handleLock() {
                const that = this
                if (util.validatenull(this.lockPasswd)) {
                    this.box = true
                    return
                }
                that.$store.commit('SET_LOCK')
                setTimeout(() => {
                    that.go('/lock')
          }, 100)
 },

2.在vuex中设置状态

import util from '@/utils'
import store from '../'
import cookie from '@/utils/cookie.js'
const mutations = {
    SET_IM(state, userInfo) {
        console.log('user:', userInfo)
        state.userInfo = userInfo
    },
    SET_LOCK(state, action) {
        state.isLock = true
        util.setStore('isLock', state.isLock)

        // console.log('util.setStore',util.getStore('isLock'))
    },
    SET_LOCK_PASSWD(state, lockPasswd) {
        state.lockPasswd = lockPasswd
        util.setStore('lockPasswd', state.lockPasswd)

        // console.log('util.setStore',util.getStore('lockPasswd'))
    },
    CLEAR_LOCK(state, action) {
        state.isLock = false
        state.lockPasswd = ''
        util.removeStore('lockPasswd')
        util.removeStore('isLock')
        // console.log('state.isLock',state.isLock)
    },
    }
export default mutations



const getters = {
  isLock: state => state.isLock,
  lockPasswd: state => state.lockPasswd,
}
export default getters



import {
    getStore
} from '@/utils'
export default {
    userInfo: {},
    //im 实例
    nim: null,
    name: '',
    isLock: false,
    lockPasswd: '',
     userUID: '',
    sdktoken: '',
}

3.解锁页面

<template>
    <div class="lock-container pull-height">
        <div class="lock-form animated bounceInDown">
            <div class="animated" :class="{'shake':passwdError,'bounceOut':pass}">
                <h3 class="text-white">{{name}}</h3>
                <el-input placeholder="请输入登录密码" type="password" class="input-with-select animated" v-model="passwd"
                 @keyup.enter.native="handleLogin">
                    <!-- <el-button slot="append" @click="handleLogin" style="padding-right:36px;"><svg-icon  class-name='international-icon' icon-class="deblocking"/></el-button> -->
                    <!-- <el-button slot="append" @click="handleLogout"><svg-icon class-name='international-icon' icon-class="lockOut"/></el-button> -->
                    <el-button slot="append" @click="handleLogin" style="padding-right:36px;"><i class="el-icon-unlock"></i></el-button>
                    <el-button slot="append" @click="handleLogout"><i class="el-icon-switch-button"></i></el-button>
                </el-input>
            </div>
        </div>
    </div>
</template>
<script>
    import util from '@/utils'
    import {
        mapGetters,
        mapState
    } from 'vuex'
    export default {
        name: 'lock',
        data() {
            return {
                passwd: '',
                passwdError: false,
                pass: false
            }
        },
        created() {},
        mounted() {},
        computed: {
            ...mapState({
                name: state => state.name
            }),
            ...mapGetters(['tag', 'lockPasswd'])
        },
        props: [],
        methods: {
            handleLogout() {
                this.$confirm('是否退出系统, 是否继续?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    //删除vuex状态表
                    this.$store.commit('CLEAR_LOCK')
                    //删除user_token
                    util.removeStore('user_token')
                    this.$router.push({
                        path: '/login'
                    })
                    console.log('555')
                }).catch(() => {
                    return false
                })
            },
            handleLogin() {
                console.log('this.lockPasswd', this.lockPasswd)
                if (this.passwd !== this.lockPasswd) {
                    this.passwd = ''
                    this.$message({
                        message: '解锁密码错误,请重新输入',
                        type: 'error'
                    })
                    this.passwdError = true
                    setTimeout(() => {
                        this.passwdError = false
                    }, 1000)
                    return
                }
                this.pass = true
                setTimeout(() => {
                    //输入密码正确后删除vuex中状态值
                    this.$store.commit('CLEAR_LOCK')
                    this.$router.go(-1); //返回上一层
                }, 1000)
            }
        },
        components: {}
    }
</script>

<style lang="scss">
    .lock-container {
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
    }

    .lock-container::before {
        z-index: -999;
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-image: url("../../assets/images/lockLogin.png");
        background-size: cover;
    }

    .lock-form {
        width: 300px;
    }
</style>

4.在路由中利用路由钩子函数

import Vue from 'vue'
import Router from 'vue-router'
import util from '@/utils'
import store from '@/store'

router.beforeEach((to, form, next) => {
    let user_token = util.getStore('user_token');
    let toPath = to.path
    console.log('toPath:', toPath)
    console.log('在白名单中:', whiteList.indexOf(toPath));
    console.log('user_token:', user_token)
    document.body.scrollTop = 0
    // firefox
    document.documentElement.scrollTop = 0
    // safari
    window.pageYOffset = 0
    if (whiteList.indexOf(toPath) == -1 && (!user_token && user_token !== undefined && user_token != null)) {
        //不在白名单,并且user_token没有
        router.push({
            path: '/login'
        })
    } else if (whiteList.indexOf(toPath) != -1) {
        //去登录页
        // util.removeStore('user_token')
        next();
    } else if (whiteList.indexOf(toPath) == -1 && user_token) {
        //不在白名单,并且user_token存在
        next()
    }

    
    if (store.getters.isLock && to.path !== '/lock') {
        next({
            path: '/lock'
        })
    }
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue+element实现输入密码锁屏

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

win7锁屏密码输错锁定电脑防止他人一直循环输入密码

在win7系统下,设置了锁屏密码,在输入了多次错误密码编程客栈之后,系统自动锁定了电脑,这样一来,可以防止别人一直循环输入密码。这种功能可以在编辑器中对账户锁定策略进行修改设置。1.首先,点击开始菜单再附件里面找到运行,点击打开它。2.在&
2023-06-09

python输入错误密码用户锁定实现方法

小编给大家带来了用python实现用户多次密码输入错误后,用户锁定的实现方式,以及具体的流程,让大家更好的理解运行的过程。 1.新建一个文件,用以存放白名单用户(正确注册的用户 格式:username:password),再建一个文件,用以
2022-06-04

怎么用python实现输入错误密码用户锁定

这篇文章主要讲解了“怎么用python实现输入错误密码用户锁定”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用python实现输入错误密码用户锁定”吧!1.新建一个文件,用以存放白名单用
2023-06-01

nodejs实现输入三次密码

Node.js 是一款广泛应用于服务器端的 JavaScript 运行环境。它能够实现高效的事件驱动、非阻塞I/O模型,同时支持大规模的并发操作。本文将介绍如何使用 Node.js 实现一个输入三次密码的功能。在实现这个功能之前,我们需要先了解 Node.js 中的两个模块:readline 和 console。readline 模块是 Node.js 的标准模块之一,它提供了
2023-05-23

C#怎么实现密码验证与输错密码账户锁定

本文小编为大家详细介绍“C#怎么实现密码验证与输错密码账户锁定”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么实现密码验证与输错密码账户锁定”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。C#实现的Chec
2023-06-30

如何编写limitIE为IE加上一把密码锁实现输入密码才可以访问

这篇文章主要介绍“如何编写limitIE为IE加上一把密码锁实现输入密码才可以访问”,在日常操作中,相信很多人在如何编写limitIE为IE加上一把密码锁实现输入密码才可以访问问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
2023-06-08

VBS如何实现Runas自动输入密码,

这篇文章主要介绍VBS如何实现Runas自动输入密码,,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:Set Shell = CreateObject("WScript.Shell") Shell.Run "
2023-06-08

shell脚本实现输入密码显示星号

read -p "请输入使用者都名称:" USERecho -e "请输入使用者密码: c"while : ;dochar=` #这里是反引号,tab键上面那个stty cbreak -echodd if=/dev/tty bs=1 cou
2022-06-04

Android的支付密码输入框实现浅析

先看一下效果图实现思路:变成点的控件不是TextView和EditText而是Imageview。首先写一个RelativeLayout里边包含6个ImageView和一个EditText(EditText要覆盖ImageView)将Edi
2022-06-06

C语言怎么实现密码输入功能

在C语言中,可以使用`getpass()`函数实现密码输入功能。`getpass()`函数定义在``头文件中。以下是一个示例代码:```c#include #include int main() {char *password = getp
2023-08-31

C#怎么实现弹窗提示输入密码

这篇文章主要介绍“C#怎么实现弹窗提示输入密码”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#怎么实现弹窗提示输入密码”文章能帮助大家解决问题。具体内容如下String PM = Interact
2023-06-29

Android怎么实现自定义密码输入框

本篇内容主要讲解“Android怎么实现自定义密码输入框”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android怎么实现自定义密码输入框”吧!一、实现效果及方案预期效果图:如上图所示,要实现
2023-06-25

uniapp自定义输入框,实现验证码输入框、密码输入框、兼容微信小程序

前言 在移动端或者小程序项目中,验证码输入框、密码输入框也是很常见的,今天我们就来实现一个这样的效果。 图片展示 代码实现 我这里是用uniapp实现的可兼容微信小程序。 大家如果需要微信小程序也可以参考此案例,实现思路都是一样的。 te
2023-08-18

编程热搜

目录