• vue+element-ui商城后台管理系统(day03)


    day03


    一. 实现操作列的功能
    二. 补充一些git操作
    三. 权限管理
    四. 上传到git
    五. 自己写发现的问题


    一. 实现操作列的功能

    1.1 实现编辑用户

    • 创建dialog
    • 为编辑按钮添加点击事件(传入id)
    • 根据APIid获取数据并把数据保存在一个data
      • forminfo的数据要分开
      • 因为要重置表单操作
    • 编辑用户表单操作
      • 重置修改表单的操作
      • 表单预校验
      • 通过则关闭dialog message 刷新用户列表

    1.2 实现删除用户功能

    • 全局注册主件Messagebox.comfirm
    • cofirm传入的参数的含义
    • confirm点击确认返回promise, 点击取消调用catch, 如果用asyncawait就要把catch写出来
    • 发送delete请求删除用户

    二. 补充一些git操作

    2.1 当写好了新的代码发现事master但是想建立新分支?

    git checkout -b 'new-branch'
    

    2.2 想更改分支名字

    • ① 重命名远程分支对应的本地分支(没有远程分支的话直接这样就可以了)
    git branch -m oldName newName
    
    • ② 删除远程分支
    git push --delete origin oldName
    
    • ③ 将本地新分支push到远程
    git push origin newName
    
    • ④ 把修改后的本地分支与远程分支关联
    git branch --set-upstream-to origin/newName
    

    • 设分支关联的意义
      • 不用每次push都要指定哪一个远程关联的分支
      • git branch -vv
    • 如果更新了代码却在master想建立在分支
      • 可以直接git branch -b 'new branch name'
    • git的流程图
      在这里插入图片描述

    三. 权限管理

    3.1 权限列表

    • 创建新分支
    • 页面结构
      • 面包屑
      • 卡片 > 表格
    • Tag组件与v-if根据作用域插槽的属性来判断显示哪一种标签

    3.2 角色列表

    • 用户 => 角色 => 权限
      • 用用户绑定角色, 然后再根据角色来分配权限, 而不是直接把权限分配给用户
    • 获取角色信息
    • 绘制基本表格信息(编辑, 删除, 分配权限)
    • <el-table-colum type="expand"></el-table-colum>来设置扩展栏
    • 利用栅格系统<el-row/><el-col/>来分配一级权限与二级权限
      • 再用tag标签来包起来
    • 一级权限
      • 添加边框
        • 第一个添加顶部, 全部都添加底部边框
        • :class=[ index1 === 0 ? 'bdTop' : '', 'bdBottom' ]
        • 小箭头字体图标
    • 二级权限
      • html结构
    <el-row>
        <el-col v-for>
            一级权限内容
        <el-col/>
        <el-col>
            二级权限内容
            <el-row>
            	<el-col v-for>
                    二级权限内容
                <el-col/>
                <el-col>
                    <el-tag v-for>三级权限内容<el-tag/>
                <el-col/>
            <el-row/>
        <el-col/>
    <el-row/>
    
    • 为权限加添样式使其可以居中(给父级)
    .vcenter {
    	display: flex;
        aitems~
    }
    
    • 为权限列表的tag组件添加删除标签, 确认删除框
    • 防止删除权限后进行全体的刷新
      • 所以不用this.getRolesList()
      • role.children = res.data

    3.3 分配权限

    • 控制分配权限的dialog的显示与隐藏

    • 在点击分配权限的时候获取权限列表并渲染出来

    • 通过Tree组件和其data与props属性来确定渲染出来的树形结构

    • 组件优化

      • 添加复选框
      • 添加node-key属性使其点击复选框的时候选中的是它的id值
      • 默认渲染展开全部
    • 添加默认选中

      • data中存放一个保存三级节点id的属性
      • 再放:default-checked-keys
    • 使用递归来添加默认选中权限

      getTreeKeys (node) {
        if (!node.children) {
          // 显示的子权限
          return this.showTreeRights.push(node.id)
        } else {
          // 默认的展开
          this.showTreeExpand.push(node.id)
        }
        node.children.forEach(value => {
          this.getTreeKeys(value)
        })
      },
      
    • 连续点击不同角色会出现没有权限的地方被勾选上

      • 解决方法:
        • 在每次关闭dialog的时候清空arr
    • 权限分配提交

      • 使用组件的方法来获得版选中与全选中的id(node-key)
      • 用…arr的方法添加在一个数组中
      • 因为不能直接获取角色id所以要定义一个data来存放打开dialog的时候的id
      • 因为传送的数据类型是一个字符串, 使用arr.join(',')可以获取字符串形式
      • 获取tree组件被选中和被版选中的方法
        • getCheckedKeys
        • getHalfCheckedKeys
    • 角色分配

      • 所有角色的数据列表也要保存
      • 要把el-select双向绑定一个id存放的属性才会出现选中的效果
      • 发送请求
      • 给dialog添加关闭后重置userInfo与选中的id

    四. 上传到git


    五. 自己写发现的问题

    5.1 使用element-uiMessageBox组件

    • 要有删除键一定要在Message后面.confirm
      • Vue.prototype.confirm = Message.confirm

    5.2 table与form的prop问题

    • formproprules对应key
    • tablepropdata对应的值的key

    5.3 table的column调用作用域插槽溢出问题

    • 如果templatev-slot="value"而下面使用{{ value }}会有溢出的风险
    • {{ value }}改为{{ value.row }}

    5.4 tree问题

    • 每次点开分配权限的时候要刷新tree组件的:data?不然会出现已选的复选框不正常的问题(这里就是list)

    5.5 v-model不要在前面加:

  • 相关阅读:
    hdu1209(Clock)
    [NodeJS]使用Node.js写一个简单的在线聊天室
    UVa 11168 Airport , 凸包
    【数据结构与算法】(二) c 语言链表的简单操作
    Struts简单介绍
    bzoj3931【CQOI2015】网络吞吐量
    python爬虫解决百度贴吧登陆验证码问题
    TNS-01251: Cannot set trace/log directory under ADR
    Oracle 监听器日志文件过大导致监听异常
    RHEL7
  • 原文地址:https://www.cnblogs.com/lezaizhu/p/13836158.html
Copyright © 2020-2023  润新知