Vue电商后台管理系统(1)

登录

在components文件夹下创建登录组件,Login.vue,并快速生成template、script和style骨架。


配置路由,进入router文件夹,导入Login组件,创建路由并重定向首页为登录界面,进入首页时会自动跳转至登录页面,配置如下:

绘制页面:

<template><div class="login_container"><div class="login_box"><!-- 头像区域 --><div class="avatar_box"><img src="../assets/logo.png" alt /></div><!-- 登录表单区域 --><el-formref="loginFormRef":model="loginForm":rules="loginFormRules"label-width="0px"class="login_form"><!-- 用户名 --><el-form-item prop="username"><el-input v-model="loginForm.username" prefix-icon="iconfont icon-user"></el-input></el-form-item><!-- 密码 --><el-form-item prop="password"><el-inputv-model="loginForm.password"prefix-icon="iconfont icon-3702mima"type="password"></el-input></el-form-item><!-- 按钮区域 --><el-form-item class="btns"><el-button type="primary" @click="login">登录</el-button><el-button type="info" @click="resetLoginForm">重置</el-button></el-form-item></el-form></div></div>
</template>

css样式:

<style lang="less" scoped>
.login_container {background-color: #2b4b6b;height: 100%;
}.login_box {width: 450px;height: 300px;background-color: #fff;border-radius: 3px;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);.avatar_box {height: 130px;width: 130px;border: 1px solid #eee;border-radius: 50%;padding: 10px;box-shadow: 0 0 10px #ddd;position: absolute;left: 50%;transform: translate(-50%, -50%);background-color: #fff;img {width: 100%;height: 100%;border-radius: 50%;background-color: #eee;}}
}.login_form {position: absolute;bottom: 0;width: 100%;padding: 0 20px;box-sizing: border-box;
}.btns {display: flex;justify-content: flex-end;
}
</style>

实现登录功能

绑定账户信息

<template><div class="long-content"><div class="biao"><div class="hide"><img src="../../assets/logo.png" alt="" /></div><div class="form"><el-form:model="ruleForm":rules="rules"ref="ruleForm"class="demo-ruleForm"><el-form-item prop="username"><el-inputv-model="ruleForm.username"prefix-icon="el-icon-user-solid"></el-input></el-form-item><el-form-item prop="password"><el-inputtype="password"v-model="ruleForm.password"prefix-icon="el-icon-lock"></el-input></el-form-item></el-form></div><div class="botton"><el-button type="primary" size="medium" @click="submitForm('ruleForm')">登录</el-button><el-button type="info" size="medium">重置</el-button></div></div></div>
</template><script>
export default {name: "",data() {return {ruleForm: {username: "",//用户名password: "",//密码},rules: {//校验用户名username: [{ required: true, message: "请输入用户户名", trigger: "blur" },{ min: 3, max: 8, message: "长度在 3 到 5 个字符", trigger: "blur" },],//校验密码password: [{ required: true, message: "请输入密码", trigger: "blur" },{min: 3,max: 12,message: "长度在 3 到 12 个字符",trigger: "blur",},],},};},methods: {//登录submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {let url = this.$store.state.url;this.$axios.post(`${url}login`, this.ruleForm).then((res) => {console.log(res);if (res.meta.status == 200) {// 1. 将登录成功之后的 token,保存到客户端的 sessionStorage 中//1.1 项目中出了登录之外的其他API接口,必须在登录之后才能访问//1.2 token 只应在当前网站打开期间生效,所以将 token 保存在 sessionStorage 中window.sessionStorage.setItem("token", res.data.token);this.$message.success(res.meta.msg);this.$router.push("/home");} else {this.$message.error(res.meta.msg);return false;}});} else {return false;}});},},
};
</script>

实现退出功能
当用户登录后进入后台,点击退出按钮即可实现退出功能。

即在Home.vue中添加一个退出按钮,并为其添加点击事件,当用户点击时,删除当前存储在session中的token信息,并且跳转至登录页面。

<template><div><el-button type="info" @click="logout">退出</el-button></div>
</template><script>
export default {methods: {logout() {window.sessionStorage.clear()this.$router.push('/login')}}
}
</script><style lang="less" scoped>
</style>

实现导航守卫功能
至此,登录功能基本实现,但存在一个bug,即在用户未登录的情况下,在地址栏输入http://localhost:8080/#/home地址时,也可以跳转至后台。

为了解决此bug,我们在router里挂载一个导航守卫路由,即在用户每次跳转前,验证用户所要跳转的地址,若为login页面则放行,若为其他页面,则查询当前session中是否有对应的token,若有则放行,反之,则强制跳转至登陆页面。

航守卫功能

至此,登录功能基本实现,但存在一个bug,即在用户未登录的情况下,在地址栏输入http://localhost:8080/#/home地址时,也可以跳转至后台。

为了解决此bug,我们在router里挂载一个导航守卫路由,即在用户每次跳转前,验证用户所要跳转的地址,若为login页面则放行,若为其他页面,则查询当前session中是否有对应的token,若有则放行,反之,则强制跳转至登陆页面。

Vue电商后台管理系统(1)相关推荐

  1. Vue电商后台管理系统项目开发实战(一)

    前言 当下根据不同的应用场景,电商系统一般都提供了PC端,移动APP,移动Web,微信等多种访问方式.如下图. 不同的客户端共用同一个服务器,数据库,API.本次项目着重设计PC后台管理,供电商后台管 ...

  2. 9.1黑马Vue电商后台管理系统商品管理模块完善:编辑商品的功能

    在原视频中,老师跳过了这个功能,我觉得自己去实现也可以锻炼自己,于是自己补充了编辑功能 同用户管理,权限管理等之前各个模块的编辑功能不同,因为商品具有很多可编辑的选项,所以选择像添加商品一样,单独放在 ...

  3. 10.1 黑马Vue电商后台管理系统之完善订单管理模块--加入修改订单模块

    效果如下: 实现如下: 1.我仍然保留了添加地址这一个对话框,但只是绑定在另一个按钮上面,而点击左侧第一个按钮就会跳转到"修改订单"模块 <template v-slot=& ...

  4. 10.2 黑马Vue电商后台管理系统 完善订单模块--搜索订单(修改后端)

    效果如下: 搜索时列表动态变化,在我专栏下另一篇文章写了,这篇文章不再讲述,这篇文章只讲述如何从后端(打开vue_api_server这个文件夹,而不是vue_shop)修改代码来实现这个功能 我的思 ...

  5. vue电商后台管理系统--订单管理篇

    渲染订单table表格 <!-- 订单列表数据 --><el-table :data="orderList" border stripe><el-ta ...

  6. html全局布局 vue_基于Vue+Element的电商后台管理系统

    前言 mall项目后台管理系统的前端项目. 项目介绍 mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现. 主要包括商品管理.订单管理.会员管理.促销管理.运 ...

  7. Vue全家桶 - 电商后台管理系统项目开发实录(详)

    目录 1. 项目概述 1.1 电商项目基本业务概述 1.2 电商后台管理系统的功能 1.3 电商后台管理系统的开发模式(前.后端分离) 2. 项目初始化 2.1 前端项目初始化步骤 码云相关操作 2. ...

  8. 【Vue】实战项目:电商后台管理系统(Element-UI)(一)前后端搭建 - 登录界面 - 主页界面

    文章目录 0. 项目介绍 电商管理系统(Element-UI) 开发模式 前端技术栈 后端技术栈 1. 配置--初始化 前端项目 ① 安装 Vue 脚手架 ② 通过 Vue 脚手架创建项目 ③ 配置 ...

  9. Vue项目实战之电商后台管理系统(二) 主页模块

    前言 目录 前言 一.主页布局 1.1 整体布局 1.2 头部区域布局 1.3 左侧菜单布局 1.3.1 静态布局 1.3.2 通过axios请求拦截器来进行权限验证 1.3.3 通过axios获取左 ...

最新文章

  1. java锁屏_JAVA设置桌面不锁屏设置
  2. 欧阳自远:有个性的嫦娥12345,如何不重复美国探月路?
  3. 大厂技术资料:Redis+Nginx+Spring全家桶+Dubbo精选
  4. C++、C#控制台应用程序暂停下来的方法
  5. queueing 优化_简单聊聊网页的资源加载优化
  6. Linux下glibc内存管理
  7. 数据库系统概念总结:第十二、十三章 查询处理和查询优化
  8. 什么是Session分布式共享
  9. [Nginx]nginx 配置实例-负载均衡
  10. 对象存储,为什么那么火?
  11. 蓝桥杯 ADV-18 算法提高 实数相加
  12. HDU5926 Mr. Frog’s Game
  13. ipadpro编写java代码_iPad Pro变生产力工具,你还缺个轻量级浏览器端代码编辑器...
  14. 1999-2019,互联网失落者
  15. ThreadLocal原理及使用场景
  16. 洛谷 P1510 精卫填海
  17. Excel表格中身份证号码显示不全如何解决
  18. 高德地图API调用和数据解析
  19. 9月20日云栖精选夜读:异构计算高性能计算分论坛——揭秘拿什么实现超算平民化、国际化?
  20. 【C++】String用法总结

热门文章

  1. cqyz oj | 单峰排列
  2. 二阶龙格库塔公式推导_[常微分方程的数值解法系列五] 龙格-库塔(RK4)法
  3. 源码时代 UI干货分享 | 如何用AI制作出迪士尼电影里的毛绒文字效果!!
  4. MSIL Instruction Set
  5. C/S是什么,B/S是什么
  6. 涉密计算机系统分级保护,计算机信息系统分级保护方案.pdf
  7. 手把手教你搭建完美的 Android 搞机/逆向环境
  8. day45--冒泡排序
  9. EDMA 和QDMA
  10. 7.23洪资内参(更新中)