后台管理系统实战步骤
课程安排
- day01 完成用户模块和品牌管理模块
- day02 理解后管项目搭建的方方面面
- day03 完成分类模块
- day04-day05 完成商品模块
- day06 完成首页模块
day01 用户模块
1. 了解项目结构
- vue.config.js // 配置项目
- evn.development env.production // 配置环境变量
- router
- vuex
- utils
- views
2. 掌握登录流程
- 点击登录按钮
- this.$store.dispatch(“LoginAC”, this.ruleForm)
派发了一个action: LoginAC - LoginAC 发送请求取登录
- 登录成功之后, 根据角色动态添加路由, 并且修改username,realname,role, token状态
- 然后跳转到首页
3. 掌握用户权限管理
- router.addRoutes // 动态添加路由
- 根据后台返回用户角色(role字段), 动态添加路由
- 动态添加路由时, 路由配置一定要加上 name
5. 掌握如何创建一个模块
- 先创建用户列表组件
- 配置路由
- 静态页面
- 动态数据渲染
单元格数据格式化
formater 格式化单元格 `:formater ="formatXXX"` // formatXXX是一个方法
操作按钮(删除和编辑按钮)
6. 掌握使用饿了么UI库
- el-card 设置样式为:
magin: 10px;
- el-table
- border 添加边框
- stripe 添加斑马纹
- 表格宽度设置
style:{width:xx%}
- 单元格宽度设置
width="80"
不设置就平分 - formater 格式化单元格
:formater ="formatXXX"
- 单元格文字居中 align=”center”
- slot-scope=”scope” scope提供了单元格的相关数据
scope.$index 下标
scope.row 行数据
- el-button
7.添加和编辑用户
- el-form表单的使用
- 添加和编辑公用一个表单(这个表单就做成公共组件)
- 设计使用者需要传入的属性
- 给使用者提供的事件
- 给使用者提供的插槽
父组件修改子组件数据
// 子组件
{{msg}}
```
4. 子组件修改父组件数据
- 父组件使用 :msg.sync="msg"
- 子组件使用 $emit('update:msg', '新数据')
```vue
// 方式一:
// 父组件
父组件
{{msg}}
// 子组件
```
```vue
// 方式2 父组件给子组件传对象
// 父组件
父组件
{{obj.msg}}
// 子组件
```
##### 8.编辑用户
1. 从列表页跳转到编辑页面
```vue
edit(scope) {
this.$router.push({
path: '/user/edit',
query: {
id: scope.row.id
}
})
},
```
2. 新建表单(编辑和添加共用)
- 确认按钮的文字由使用者传入
- 表单的数据fromData由使用者传入
作业:
1. 完成用户模块的编辑和添加
1. 完成品牌模块列表, 编辑, 添加
品牌模块有两个字段: 名称, 公司地址
## day02 分类模块
##### 一级分类
1. 配路由和组件
1. 做好静态页面
1. 请求数据, 替代静态页面
1. 添加删除功能
1. 增加和编辑功能
1. 配路由和组件
1. 公共组件静态
1. 实现添加和编辑的功能
##### 使用弹窗实现编辑和添加功能
1. dialog组件的使用
1. ref的使用
```vue
// 父组件修改子组件状态
1. 给子组件添加ref,比如ref="form"
2. 父组件通过this.refs['form']获得子组件实例
```
3. From公共组件设计
3. 变量控制状态
```vue
// 当前修改的行的下标
currIndex: '',
// 提交的类型
submitType: "",
// 表单的标题
title: "",
// 表单数据
```
5. 编辑功能实现
5. 添加功能实现
##### 二级分类
1. 需要个更新yunmi-server代码
```html
git checkout . // 清除修改
git clean -fd // 清除新建文件
git pull origin master // 更新代码
```
2. 二级分类列表需要传入参数 parentId
```vue
查看下级
toLeval2(scope) {
this.$router.push('/type/list2', {id: scope.row.id});
}
```
3. 获取二级分类列表
```json
this.$axios.get('/subType/all',{parentId: this.$route.query.id});
```
## day03 首页模块
##### (一) canvas