Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程

这篇具有很好参考价值的文章主要介绍了Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

完善登录流程

1. 丰富登录界面

1.1 从 Element 指南中选择组件模板丰富登录界面,放置一个登录界面表单,包含账号密码输入框和登录重置按钮。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

<template>
  <el-form :model="loginForm" :rules="fieldRules" ref="loginForm" label-position="left" label-width="0px" class="demo-ruleForm login-container">
    <h3 class="title">系统登录</h3>
    <el-form-item prop="account">
      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号"></el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
    </el-form-item>
    <!-- <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox> -->
    <el-form-item style="width:100%;">
      <el-button type="primary" style="width:48%;" @click.native.prevent="reset">重 置</el-button>
      <el-button type="primary" style="width:48%;" @click.native.prevent="login" :loading="logining">登 录</el-button>
    </el-form-item>
  </el-form>
</template>

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

1.2 稍微调整一下界面样式

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

<style lang="scss" scoped>
  .login-container {
    -webkit-border-radius: 5px;
    border-radius: 5px;
    -moz-border-radius: 5px;
    background-clip: padding-box;
    margin: 180px auto;
    width: 350px;
    padding: 35px 35px 15px 35px;
    background: #fff;
    border: 1px solid #eaeaea;
    box-shadow: 0 0 25px #cac6c6;
    .title {
      margin: 0px auto 40px auto;
      text-align: center;
      color: #505458;
    }
    .remember {
      margin: 0px 0px 35px 0px;
    }
  }
</style>

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

1.3 添加页面组件显示规则和操作响应,其中登录成功后,把登录用户信息存储到本地会话,用于配置路由跳转目标。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

<script>
  import Cookies from "js-cookie";
  export default {
    name: 'Login',
    data() {
      return {
        logining: false,
        loginForm: {
          account: 'admin',
          password: '123456'
        },
        fieldRules: {
          account: [
            { required: true, message: '请输入账号', trigger: 'blur' },
          ],
          password: [
            { required: true, message: '请输入密码', trigger: 'blur' },
          ]
        },
        checked: true
      };
    },
    methods: {
      login() {
        let userInfo = {account:this.loginForm.account, password:this.loginForm.password}
        this.$api.login(JSON.stringify(userInfo)).then((res) => {
            Cookies.set('token', res.data.token) // 放置token到Cookie
            sessionStorage.setItem('user', userInfo.account) // 保存用户到本地会话
            this.$router.push('/')  // 登录成功,跳转到主页
          }).catch(function(res) {
            alert(res);
          });
      },
      reset() {
        this.$refs.loginForm.resetFields();
      }
    }
  }
</script>

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

1.4 最后效果如下图所示。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

2.修改接口

修改 http/interface.js,把请求类型改为 post,并传入 data 参数。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

export const login = data => {
    return axios({
        url: '/login',
        method: 'post',
        data
    })
}

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

3.修改 mock 接口

修改 mock/modules/logins.js,把请求类型改为 post。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

// 登录接口
export function login () {
  return {
    // isOpen: false,
    url: 'http://localhost:8080/login',
    type: 'post',
    data: {
      'msg': 'success',
      'code': 0,
      'data': {
        'token': '4344323121398'
        // 其他数据
      }
    }
  }
}

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

4.添加导航守卫

在 router/index.js 中添加导航守卫,如下图所示,根据用户登录会话记录,路由到主页或登录界面。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

5.修改主页界面

 5.1 向 home.vue 添加组件,构建主界面。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

<template>
    <el-row class="container">
        <el-col :span="24" class="header">
            <el-col :span="5" class="logo" :class="isCollapse?'logo-collapse-width':'logo-width'">
        <img :src="this.logo" /> {{isCollapse?sysName:sysName}}
            </el-col>
            <el-col :span="1">
                <div class="tools" @click.prevent="collapse">
                    <i class="el-icon-menu"></i>
                </div>
                    <!-- <i class="fa fa-align-justify"></i> -->
            </el-col>
            <el-col :span="13">
                <div class="hearNavBar">
          <el-menu :default-active="activeIndex" class="el-menu-demo" background-color="#4b5f6e" text-color="#fff"
              active-text-color="#ffd04b" mode="horizontal" @select="handleSelectHearNavBar">
            <el-menu-item index="1">首页</el-menu-item>
            <el-menu-item index="2">消息中心</el-menu-item>
            <el-menu-item index="3">订单管理</el-menu-item>
          </el-menu>
                </div>
            </el-col>
            <el-col :span="5" class="userinfo">
                <el-dropdown trigger="hover">
                    <span class="el-dropdown-link userinfo-inner"><img :src="this.userAvatar" /> {{username}}</span>
                    <el-dropdown-menu slot="dropdown">
                        <el-dropdown-item>我的消息</el-dropdown-item>
                        <el-dropdown-item>设置</el-dropdown-item>
                        <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
                    </el-dropdown-menu>
                </el-dropdown>
            </el-col>
        </el-col>
        <el-col :span="24" class="main">
            <aside class="aside">
                <!--导航菜单-->
        <el-menu default-active="1-3" class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect" :collapse="isCollapse">
          <el-submenu index="1">
            <template slot="title">
              <i class="el-icon-location"></i>
              <span slot="title">导航一</span>
            </template>
            <el-menu-item index="1-1">选项1</el-menu-item>
            <el-menu-item index="1-2">选项2</el-menu-item>
            <el-menu-item index="1-3">选项3</el-menu-item>
          </el-submenu>
          <el-menu-item index="2">
            <i class="el-icon-menu"></i>
            <span slot="title">导航二</span>
          </el-menu-item>
          <el-menu-item index="3" disabled>
            <i class="el-icon-document"></i>
            <span slot="title">导航三</span>
          </el-menu-item>
          <el-menu-item index="4">
            <i class="el-icon-setting"></i>
            <span slot="title">导航四</span>
          </el-menu-item>
        </el-menu>
            </aside>
            <section class="content-container">
                <div class="grid-content bg-purple-light">
                    <el-col :span="24" class="breadcrumb-container">
                        <el-breadcrumb separator="/" class="breadcrumb-inner">
                            <el-breadcrumb-item v-for="item in $route.matched" :key="item.path">
                                {{ item.name }}
                            </el-breadcrumb-item>
                        </el-breadcrumb>
                    </el-col>
                    <el-col :span="24" class="content-wrapper">
                        <transition name="fade" mode="out-in">
                            <router-view></router-view>
                        </transition>
                    </el-col>
                </div>
            </section>
        </el-col>
    </el-row>
</template>

5.2 处理页面事件和页面数据显示,主要是两个事件和在 mounted 函数内获取页面数据。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

5.3 修饰调整 css 样式,构建界面,样式太多,就不贴了,直接看源码 ,调整完效果如下图所示。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

6.嵌套路由

6.1 在 views 目录下新建 Main、User、Menu 页面,用于菜单路由,内容随便显示点什么就可以。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

6.2 在 router/index.js 文件中添加子路由,分别指向子页面。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

 6.3 在 views/Home.vue 页面对应的导航菜单中添加点击事件,路由到对应的子页面。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

6.4 登录之后,点击用户管理,路由到用户管理界面。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

6.5 点击菜单管理,路由到菜单管理界面。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

6.5 这里发现点击导航菜单之后,菜单就不能点击了,经查看是导航页面坐标样式问题,把用户管理等页面的样式去掉就好了。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui

6.6 同理添加机构管理、角色管理、日志管理的菜单之后,效果如下。

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程,vue.js,javascript,elementui文章来源地址https://www.toymoban.com/news/detail-696638.html

到了这里,关于Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【VUE学习】权限管理系统前端vue实现4-自定义icon实现

    template 部分:定义了组件的模板内容。在这里,使用了 svg 标签来创建一个 SVG 图标元素,并添加了一个 use 元素来引用具体的图标。 :xlink:href 属性使用了绑定语法,将 iconName 绑定为 use 元素的 xlink:href 属性的值。 script setup 部分:使用了 Vue 3 的 script setup 语法,用于编写组件

    2024年02月13日
    浏览(41)
  • [VUE学习]权限管理系统前端vue实现8-右上角用户头像显示实现

               next(‘/logon’) 、 next(to) 或者 next({ …to, replace: true })           在路由守卫中, 只有next()是放行 ,其他的诸如:next(‘/logon’) 、 next(to) 或者 next({ …to, replace: true })都不是放行, 而是:中断当前导航,执行新的导航                 他不是直接放行 二十

    2024年02月13日
    浏览(44)
  • Vue + Element-ui实现后台管理系统---项目搭建 + ⾸⻚布局实现

    目录:导读 项目搭建 + ⾸⻚布局实现 一、项目搭建 1、环境搭建 2、项目初期搭建 二、Main.vue 三、左侧栏部分(CommonAside.vue) 四、header部分(CommonHeader.vue) 五、Home.vue 写在最后 这篇主要讲解 项目搭建 + 后台⾸⻚布局实现 : 整体效果 后台首页按布局一共包含3个部分: 1、左侧栏

    2024年02月02日
    浏览(51)
  • 基于vue-cli创建后台管理系统前端页面——element-ui,axios,跨域配置,布局初步,导航栏

    1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配置,请求添加Jwt的设置; 3.进行初始化布局,引入新增页面的方式; 4.home页面导航栏的设置,一级目录,二级目录; 安装成功 布局初步 1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配置,请

    2024年02月09日
    浏览(52)
  • [VUE学习]权限管理系统前端vue实现9-动态路由,动态标签页,动态面包屑

                    在总体布局页面添加router router-view 是 Vue Router 提供的组件,用于动态展示匹配到的路由组件内容。 通过在合适的位置放置 router-view ,你可以根据路由路径动态地渲染对应的组件内容。                     因为我们是多级页面 之后动态路由也是多级的 如

    2024年02月13日
    浏览(45)
  • 基于Vue+Element UI的文件管理系统-Demo

    记录一下之前写过的一个文件管理系统demo。 功能包括文件夹的新增、删除、重命名及移动,文件的上传、删除、移动及下载功能。 相关功能的操作直接和 后端 进行 请求 交互。 因为该demo集成在大的系统中,懒得提取建库开源,所以算是只记录思路。 右键文件夹时显示操作

    2024年03月08日
    浏览(36)
  • 【vue后台管理系统】基于Vue+Element-UI+ECharts开发通用管理后台(中)

    点击菜单图标之前: 点击菜单图标之后: 首先我们要知道菜单栏的收缩,由el-menu的collapse属性控制: 我们通过分析可以知道: 菜单按钮的点击是在CommonHeader.vue组件中,而我们修改的collapse属性却在CommonAside.vue中,这是两个不同的组件。很明显这涉及到了组件间的通信问题,

    2024年02月03日
    浏览(46)
  • Vue2+element-ui后台管理系统(静态页面)

    node:https://nodejs.org/en/ git:https://git-scm.com/ vue:https://v2.cn.vuejs.org/v2/guide/installation.html element-ui:https://element.eleme.cn/#/zh-CN/component/installation 项目所需:https://pan.baidu.com/s/1ua0jp9YCtPH6slE49HDUBw 提取码:kkkk 在node和vue都调试、配置好的情况下使用vscode 在终端中输入命令 npm i -g @vue

    2024年02月06日
    浏览(55)
  • Vue+Element UI 生鲜管理系统简介及项目搭建,页面布局(一)

    自从入了这家公司,就没分配过前端的工作了,在上一家还能前后端都写写,现在真是对vue的代码真是望尘莫及哇,前几天跟前端朋友交流前端知识的时候,发现自己脑子里面的前端代码好像被偷了一样,赶紧找个项目练练,虽然现在是java,以后还是想要做全栈呢( ▽ )(哈哈

    2024年02月11日
    浏览(42)
  • Spring Boot + Vue + Element UI的网上商城后台管理之订单管理系统

    以下是订单管理系统的思维导图,展示了系统的主要功能和模块之间的关系。 根节点 订单列表 查看订单列表 搜索订单 排序订单 导出订单列表 订单详情 查看订单详情 修改订单信息 修改商品信息 修改价格 修改收货地址 取消订单 处理订单 处理订单操作 确认订单 拒绝订单

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包