vue element 写的登录页面_Vue|电商后台管理系统(1)

922cd742760e81aef9be72a5331ee667.gif

点击上方蓝字设为星标8f9c0da9043b3297e84776e9376af90d.png

下面开始今天的学习~

已经有一段时间没有更新了,正好这段时间在做一个电商管理系统的项目,借此总结一下。该项目主要是一个电商的后台管理系统,可实现管理用户账号,即登录、退出、用户管理、权限管理等,商品管理,即商品分类、分类参数、商品信息,订单信息等以及数据统计。

前端项目是基于Vue的SPA项目,前端技术栈采用Vue+Vue-Router+Element-UI+Axios+Echarts,后端技术栈采用Node.js+Express+Jwt(模拟session)+Mysql+Sequelize组成。由于此项目主要练习相关前端技术栈,故后端采用已有模板进行搭建。

安装Vue脚手架

通过 vue ui 命令启动可视化窗口对Vue脚手架进行配置(需事先安装好Vue),命令键入成功后,会自动弹出配置页面,选择 手动配置 ,勾选 Babel (将高级JS语法转换为低级语法)、 Router (路由)、 Linter (拼写检查)进行配置,选择 标准配置 ,创建好项目后可能会需要一段时间的加载。

20964d904631f70e0f0afcaf4d84c443.png1594f7bfa8c88a1891ab704ddc7dbbfc.png9ce8544fc37b05adbfa9901ae60dc47d.png1955deded902d411beaa975ec133d539.png

安装依赖

点击右上角添加插件,搜索vue-cli-plugin-elemen,点击插件图标然后点击最下方安装按钮,安装成功点击下方完成安装。

1955deded902d411beaa975ec133d539.png

预览页面

点击左侧边栏选择任务->serve->运行,预编译成功后点击启动app,将自动跳转至http://localhost:8080/#/,即搭建成功。

7d1153615d557f1a75fd54c0d902b0b3.png24145301508b918422c52052c7be54df.pnge8ee786bec09bef10adde4f60e816473.png

项目结构

用vscode打开刚刚创建的Vue脚手架,项目结构如下:

f8dd2390fb5cea3a524af17d9a77c428.png

  • node_modules:用于存放用包管理工具下载安装了的包

  • public:用于存放静态资源文件(不会经过webpack的打包处理)

  • src:用于存放项目的源码文件

    • assets:用于存放静态资源文件(会经过webpack的打包处理)

    • components:用于存放vue组件

    • plugins:用于存放element.js

    • router:用于存放路由文件

    • views:用于存放视图文件

    • APP.vue:项目入口文件

    • main.js:项目的核心文件

  • .editorconfig:代码规范配置文件

  • .gitignore:git忽略配置文件

  • babel.config.js:babel配置文件

  • package.json:项目配置文件

  • package-lock.json:项目包管控文件

  • README.md:说明文件

删除多余文件

删除view文件夹,即删除view内的所有文件及view文件夹。

删除router/index.js 内的views文件夹内文件的导入,以及routes内的相关代码,留下以下代码:

a860f3f0efd5d4d22d0dcf8a33621ab7.png

删除components内的HelloWorld.vue文件,并重新创建名为Home.vue的文件,配置如下:

7ce0345a5b4d1d9564716c8fa1b735fe.png

删除APP.vue文件中的多余部分,配置如下:

871d97f78b85e54fcaab72aa2e5ba287.png

预览首页,如下图所示:

03c39a036e1a7c3edca9c4533720ab30.png

搭建登录页面

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

035378f9c12008f1f335b79de2891176.png

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

c3c0bd74e78e8c0b7418e48ecbeb8fa1.png

安装Less依赖,回到项目仪表盘首页,点击依赖,选择开发依赖,安装less和less-loader依赖。

efe3f84d9a033bfa387c3bbc880089cb.png

绘制登录界面(由于仅仅使用到了最基本的html+css 这里就不详细讲解了),绘制完毕后,界面如下:

07ec2a2cd37cd9b1e3e8ada59ff24990.png

8dc2a6ce4da19cbdf80b362568633b24.png

50084c6def8d50b4934686e189b73de7.png

实现登录功能

1 绑定账号信息

在script中创建表单数据绑定对象loginForm,并设置username和password,为了测试效果,这里将其进行赋值。

e99f3746ea15827675e5c215b0accd46.png

在template中将login_form表单进行数据绑定

6da36e9e001a17501788a21ae66a767f.png

刷新当前页面,发现登录窗口中自动填写了账号及密码,说明数据绑定成功。

ca96ca8a372e4dad719c90177fef12f5.png

2 账户合法性验证

为了减轻服务器压力,在发送登录请求前,将先对输入的账户信息合法性进行验证。这里我们使用Element-UI组件进行实现。

1.在data中创建表单验证规则对象

3ea6f21f3f3c8b87eeff28242912e9f6.png

2.表单绑定验证规则

927d19ab1f9919784a901cbac050a7c5.png

3.测试,当输入非法账户时,进行提示

a1fd92ddffa272e3be77c7282abffe21.png

3 重置功能实现

当点击重置按钮时,账号和密码输入框的内容将会清空。给登录表单注册引用信息,添加重置按钮点击事件,调用resetFields()清空表单内容。

1390e6efe9407a26f69740e61b95e051.png

eac5330e0191ce39aed4d0c071692d08.png

4 实现登录功能

由于登录功能需要用到后端模块,我们将后端模块导入,并启动服务器。

安装axios依赖

3610d35291ed782948cf6041c53a1bbb.png

在main.js中导入axios模块,并设置基准地址

d981a68b4a5c8e9b2dc117a7ee3ce976.png

给登录按钮添加点击事件,当用户点击登录按钮时,进行账号合法性验证,如果当前所输入的账号合法,则允许向服务器发送登录请求。

服务器根据请求信息检查当前账号是否正确,并返回响应信息,客户端通过返回的响应信息做出相应响应。

即若账号密码错误则提示登陆失败,反之,登陆成功,将当前的token存储至session并跳转至后台主页。

dc22cdec5c8036f06acf9ce89effd662.png

5 实现退出功能

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

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

70236d6ff5d9d1817b0edaa25280a449.png

6 实现导航守卫功能

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

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

4deceaa924e0a5433a36664eed24e76b.png

d25bf7a433bacb09c2152eed9f3f64d7.png

——————end——————

图 片 / Cs Max

编 辑 / Liony

f6e6aae64f89e9f490c7f51efed0eb04.png 在看点这里 38482574c2fa43322bba20b96bce419f.gif
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值