项目介绍
黑马后台管理系统是一个电商后台管理系统的前端项目,基于Vue+Element实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能
开发技术
此项目开发我用到的技术有:vue2+node.js+webapck element axios router vuex
项目的开发流程:
-
项目选型
-
搭建登录注册页,权限管理,封装接口,vuex,路由配置,环境配置, 本地代理
-
主功能页面:按照各个页面业务需求进行开发
-
打包项目
-
代码整理,代码注释
分模块
这个项目大致分为了:登录,退出登录,用户管理,权限管理,商品管理,订单管理,数据统计7部分
登录模块
实现用户登录功能的逻辑是: ①在登录页面输入账号和密码进行登录,将数据发送给服务器 ②服务器返回登录的结果,登录成功则返回数据中带有token ③客户端得到token并进行保存,后续的请求都需要将此token发送给服务器,服务器会验证token以保证用户身份。
首先在点击登录时候进行登陆的的表单验证
然后在request.js中添加请求拦截和响应拦截。在请求拦截中,会给请求头添加token字段,还有loading动画的开启。在响应拦截中,可以做一些loading动画的关闭,还有可以根据后端返回的状态码,做一些检验token是否有效或者过期的操作。接着就是做一些axios进行的api接口的封装,这里我用到了async,await封装请求接口函数,这样可以将异步操作同步化操作,代码更加友好。
在封装里处理token过期清除本地存储返回登录页。
跳转成功了我又去配置了路由守卫,判断是不是有token,有没有权力让他去进入主页面
侧边栏的布局以及渲染 请求数据
在element-ui中也提供了相应的组件,在NavMenu导航菜单中可以找到相应的组件对应的区域
-
:router 开启路由模式,设置el-menu-item的index值 为路由标识
-
动态渲染:不同身份登录,权限控制
data中定义一个数组leftmenu来接收左侧菜单数据
退出模块
调用接口,删除本地中的token,并跳转到登录页
用户管理模块
添加编辑
-
展示:现有用户数量
GET
-
增加:用户名、密码、邮箱、手机,新增后重新加载页面
POST
-
删除:删除后重新加载页面
PUT
-
修改:
DELETE
1.改基本信息:手机、邮箱 2.改角色:关系到权限 -
组件 面包屑、搜索框、表格、分页组件、switch状态转换
请求数据状态切换、分页、面包屑导航切换然后对添加和编辑的表单进行验证,然后为了优化项目
我把添加和编辑的封装到组件进行复用,使页面解构更清晰。
搜索功能的实现
将值利用绑定到queryInfo.query
分页!
@size-change: 监听pagesize改变的事件 @current-change: 监听页码值改变的事件 :current-page: 当前页 :page-sizes:一页的的信息条数 :page-size: 当前的页数 layout: 控制显示内容 :total:总共的信息条数
权限管理模块
角色列表
-
添加角色(简单提交)
-
编辑、删除(简单slot-scope传参、delete请求)
-
分配角色(tag)
-
权限展示(表格展开行)
角色列表页面一个重点就是利用了element ui
中的 table表格
插件的展开行
分配权限也是利用利用了elemen