侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

hyperf2.1+ElementUi实现后台登录单页demo

swoole  /  管理员 发布于 4年前   1149

最近有个项目打算用hyperf + jwt + vue + element ui做个后台

先开个头,做个后台登录功能


环境介绍

后端:hyperf2.1 + jwt

前端:vue2.5+ element ui 2.15+

  "dependencies": {
    "element-ui": "^2.15.6",
    "vue": "^2.5.2",
    "vue-router": "^3.0.1",
    "vuex": "^3.6.2"
  },

前端目录:截图一下 就不写了 懒

vue2.5.2.png


实现功能:登录单页demo


后端hyperf+jwt (之前有记录文章的,有兴趣的自行去下面的url看看)

https://www.zongscan.com/demo333/89383.html


前端vue 

路由

/nodejs/mytest/src/router/index.js

import login from '@/views/login'
  routes: [
    {
      path: '/login',
      name: 'login',
      component: login
    }
  ]

登录单页代码

/nodejs/mytest/src/views/login.vue

<template>
    <div class="login-container">
        <el-form :model="loginForm" :rules="rules2" status-icon ref="loginForm" label-position="left" label-width="0px" class="demo-ruleForm login-page">
            <h3 class="title">Hyperf+ElementUi后台登录</h3>
            <el-form-item prop="username">
              <el-input type="text" v-model="loginForm.name" placeholder="用户名"/>
            </el-form-item>
            <el-form-item prop="password">
              <el-input type="text" v-model="loginForm.password" placeholder="密码"/>
            </el-form-item>
            <el-checkbox v-model="checked" class="rememberme">记住密码</el-checkbox>
            <el-form-item style="width:100%;">
                <el-button type="primary" style="width:100%;" @click="handleSubmit" :loading="logining">登录</el-button>
            </el-form-item>
        </el-form>
    </div>
</template>
<script>
export default {
    data(){
        return {
            logining: false,
            loginForm: {
                name: 'admin',
                password: '123456',
            },
            rules2: {
                name: [{required: true, message: 'please enter your account', trigger: 'blur'}],
                password: [{required: true, message: 'enter your password', trigger: 'blur'}]
            },
            checked: false
        }
    },
    methods: {
        handleSubmit(event){
          this.$refs.loginForm.validate((valid) => {
              if(valid){
                  this.logining = true;
                  if (this.loginForm.name === '' || this.loginForm.password === '') {
                    this.logining = false;
                  } else {
                    this.axios({
                      method: 'get',
                      url: 'https://blog.zongscan.com/admin/login',
                      //get用params post用data
                      params: this.loginForm
                    }).then(res => {
                      this.logining = false;
                      console.log(res.data)
                      //保存token
                      localStorage.clear()
                      localStorage.setItem('token','Bearer ' + res.data.token)
                      this.$router.push('/')
                    }).catch(error => {
                      this.logining = false
                      this.$alert('账号或密码错误!', 'info', {
                          confirmButtonText: 'ok'
                      })
                    })
                  }
              }else{
                  console.log('error submit!');
                  return false;
              }
          })
        }
    }
};
</script>
<style scoped>
.login-container {
    width: 100%;
    height: 100%;
}
.login-page {
    -webkit-border-radius: 5px;
    border-radius: 5px;
    margin: 180px auto;
    width: 350px;
    padding: 35px 35px 15px;
    background: #fff;
    border: 1px solid #eaeaea;
    box-shadow: 0 0 25px #cac6c6;
}
label.el-checkbox.rememberme {
    margin: 0px 0px 15px;
    text-align: left;
}
</style>

效果图:

vue-login.png


点击登录就进首页了 后面在记录文章

有兴趣的可以收藏一下


  • 上一条:
    hyperf2.1中使用中间件方式实现跨域功能流程步骤
    下一条:
    使用 Laravel 验证上传的图像或视频
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • swoole协程通信之数据处理协程对数据进行读写,保存到协程上下文示例(0个评论)
    • swoole redis连接池应用优化之多协程频繁访问redis(0个评论)
    • php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例(2个评论)
    • php中使用hyperf框架调用文心千帆大模型实现国内版chatgpt功能示例(0个评论)
    • 在hyperf框架中使用基于protobuf的RPC生成器实现rpc服务(1个评论)
    • 近期文章
    • 在go语言中实现字符串可逆性压缩及解压缩功能(0个评论)
    • 使用go + gin + jwt + qrcode实现网站生成登录二维码在app中扫码登录功能(0个评论)
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-09
    • 2020-03
    • 2020-06
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-11
    • 2022-03
    • 2022-05
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-07
    • 2023-08
    • 2023-11
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客