微信小程序> 小程序登陆拦截器(类似vue路由守卫),登陆弹窗,切换密码是否可见!

小程序登陆拦截器(类似vue路由守卫),登陆弹窗,切换密码是否可见!

浏览量:5226 时间: 来源:qinyong^_^

点击:需要用户登陆才能进去页面,否则弹出登陆框 

利用原理:用户登陆后缓存的标识,和全局方法,引入全局组件!

登陆样式.login_mask {    background: rgba(0, 0, 0, 0.4);    width: 100%;    height: 100%;    position: fixed;    top: 0;    left: 0;    z-index: 1996;    display: flex;    align-items: center;}.login_main {    width: 652rpx;    height: 800rpx;    background: #f8f8f9;    margin: 0 auto;    /* margin-top: 100rpx; */    border-radius: 10rpx;    position: relative;    text-align: center;}.login_main .icon-guanbi {    position: absolute;    right: 40rpx;    top: 40rpx;    z-index: 88;    font-size: 40rpx;}.login_main .logo {    width: 60rpx;    height: 60rpx;    border-radius: 50%;    margin: 42rpx 0;}.login_main .title {    font-size: 28rpx;    color: #00274b;}.login_main .email {    width: 544rpx;    height: 88rpx;    border: 1px solid #bbc9d6;    margin: 0 auto;    border-radius: 44rpx;    text-align: left;    padding-left: 32rpx;    margin-top: 40rpx;}.login_main .password {    width: 544rpx;    height: 88rpx;    border: 1px solid #bbc9d6;    margin: 0 auto;    border-radius: 44rpx;    text-align: left;    padding-left: 32rpx;    margin-top: 40rpx;}.login_main .eye {    position: absolute;    width:100rpx;    height: 88rpx;    right: 50rpx;    top: 17rpx;    z-index: 150;}.forget {    height: 80rpx;    line-height: 80rpx;    color: #03a9f4;    font-size: 24rpx;}.termsOfService {    font-size: 24rpx;    color: #97a7b7;    margin-top: 48rpx;}.noAccount {    font-size: 24rpx;    color: #97a7b7;    margin-top: 38rpx;}.service,.register{    color:#03a9f4;}.submit {    width: 544rpx;    height: 88rpx;    line-height: 88rpx;    border-radius: 44rpx;    /* background: #93d6f8; */    background:#03a9f4;     color: #fff;    font-size: 34rpx;}

 

!--登陆模态框--template name="login"    view class="login_mask" wx:if="{{logShow}}"        view class="login_main"            icon class="iconfont icon-guanbi close" bindtap='close'/icon            image class="logo" src='../../images/icon-small.png'/image            view class="title"去{{'Laicode'}}做题,先绑定Laicode账号/view            view style="position:relative;"                label                    input  class="email" type="text" placeholder='Email' bindinput='getEmail' placeholder-style="color:#bbc9d6;font-size:28rpx;"                    /input                /label            /view            view style="position:relative;"                label                    input  name="password" class="password" placeholder="Password" password="{{showpass}}" value="{{password}}" bindinput='getPassWord' placeholder-style="color:#bbc9d6;font-size:28rpx;"                    /input                /label                icon bindtap='switchEye' class="iconfont eye {{eye?'icon-close-eye':'icon-ai-eye'}}"/icon                !-- icon wx:if="{{!eye}}" class="iconfont ."/icon --            /view            view class="forget"忘记密码/view            button class="submit"绑定/button            view class="termsOfService"使用laicode账号 则同意我们                text class="service"服务条款/text            /view            view class="noAccount"没有laicode账号?                text class="register"立即注册/text            /view        /view    /view/template

在需要用到的页面引入

!-- 引入登陆模态框 --import src="../login/login.wxml" /template is="login" data="{{showpass,eye,password,email,focus,logShow}}"/templateview bindtap='islogin'点击打卡/view

js

var util = require('../../utils/util.js'),   Page({              data: {            logShow: false        },//切换密码是否可见        switchEye() {            var that = this;            util.switchEye(that, that.data.eye, that.data.showpass)        },//获取密码        getPassWord: function(e) {            var that = this;            var password = e.detail.value;            util.getPassWord(that, password)        },//获取邮箱        getEmail(e) {            var that = this;            var email = e.detail.value;            util.getEmail(that, email)        },//关闭模态框        close() {            var that = this;            util.close(that)        },        islogin() {                     if (用户登陆的标识,可以在登陆后存到缓存里面,然后在缓存取) {                this.setData({                    logShow: true                })            } else {                           wx.navigateTo({                   url: '跳转的页面',               })            }        },        onLoad: function(options) {                 },          }  )

全局utils

//切换密码可见性function switchEye(that, eye, showpass) {    var showpass = !that.data.showpass;    var eye = !that.data.eye;        that.setData({                  showpass: showpass,            eye:eye        })}//获取输入的邮箱function getEmail(that, email) {    that.setData({        email: email    })}//获取输入的密码function getPassWord(that, password) {    console.log(password)    that.setData({        password: password    })}function close(that){    that.setData({        logShow: false    })}// 把方法暴露出来供别的页面使用module.exports = {    switchEye: switchEye,    getPassWord: getPassWord,    getEmail: getEmail,    close: close,}

代码中引用了阿里矢量图标库 使用请注意

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎