zoukankan      html  css  js  c++  java
  • Vue + ElementUI的电商管理系统实例07 权限列表

    1、创建新的rights权限分支并推送到云端:

    新建分支:

    git checkout -b rights

    推送到远程:

    git push -u origin rights

    2、通过路由展示权限列表组件

    在components里新建power文件夹和rights.vue文件

    <template>
    <div>
      <h3>权限列表组件</h3>
    </div>
    </template>
    
    <script>
    export default {}
    </script>
    
    <style scoped>
    </style>

    添加权限列表路由:

    import Rights from '../components/power/rights.vue'
    
    const routes = [
      { path: '/', redirect: '/login' }, // 重定向
      { path: '/login', component: Login },
      {
        path: '/home',
        component: Home,
        redirect: '/welcome', // 重定向
        children: [ // 子路由
          { path: '/welcome', component: Welcome },
          { path: '/users', component: Users }, // 用户列表
          { path: '/rights', component: Rights } // 权限列表
        ]
      }
    ]

    现在点击页面左侧菜单的权限列表,就可以显示出权限列表组件页面了。

    3、绘制面包屑导航和卡片视图

    先添加面包屑导航:

    <template>
      <div>
        <!--面包屑导航区域-->
        <el-breadcrumb separator-class="el-icon-arrow-right">
          <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
          <el-breadcrumb-item>权限管理</el-breadcrumb-item>
          <el-breadcrumb-item>权限列表</el-breadcrumb-item>
        </el-breadcrumb>
      </div>
    </template>

    然后是卡片视图区域:

    <template>
      <div>
        <!--面包屑导航区域-->
        <el-breadcrumb separator-class="el-icon-arrow-right">
          <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
          <el-breadcrumb-item>权限管理</el-breadcrumb-item>
          <el-breadcrumb-item>权限列表</el-breadcrumb-item>
        </el-breadcrumb>
        <!--卡片视图区域-->
        <el-card>
            111
        </el-card>
      </div>
    </template>

    4、调用Api接口获取权限列表的数据

    所有权限列表  

    请求路径:rights/:type   请求方法:get   请求参数:type (值 list 或 tree , list 列表显示权限, tree 树状显示权限)
    <script>
    export default {
      data() {
        return {
          rightsList: [] // 权限列表数据
        }
      },
      created() { // 生命周期函数
        this.getRightsList()
      },
      methods: {
        async getRightsList() {
          const { data: res } = await this.$http.get('rights/list')
          console.log(res)
          if (res.meta.status !== 200) {
            return this.$message.error(res.meta.msg)
          }
          this.rightsList = res.data
        }
      }
    }
    </script>

    5、渲染列表数据UI结构

    先添加一个表格,修改对应参数:

    <el-table :data="rightsList" border stripe style=" 100%">
          <el-table-column type="index" label="#"></el-table-column>
          <el-table-column prop="authName" label="权限名称"></el-table-column>
          <el-table-column prop="path" label="路径"></el-table-column>
          <el-table-column prop="level" label="权限等级"></el-table-column>
    </el-table>

    效果图:

    然后修改下权限等级的UI:

    要使用Tag标签来实现,0对应一级显示为蓝色,1对应二级显示为绿色,2对应三级显示为黄色。

    记得先要把Tag导入到element.js里。

    因为要自定义权限等级这一列,所以要通过作用域插槽的形式

    用if来判断scope.row.level的值:

    <el-table-column prop="level" label="权限等级">
            <!-- 作用域插槽 -->
            <template slot-scope="scope">
                <el-tag v-if="scope.row.level == 0">一级</el-tag>
                <el-tag v-if="scope.row.level == 1" type="success">二级</el-tag>
                <el-tag v-if="scope.row.level == 2" type="warning">三级</el-tag>
            </template>
    </el-table-column>
    
    <!--也这样写-->
    
    <el-table-column prop="level" label="权限等级">
            <!-- 作用域插槽 -->
            <template slot-scope="scope">
                <el-tag v-if="scope.row.level == 0">一级</el-tag>
                <el-tag v-else-if="scope.row.level == 1" type="success">二级</el-tag>
                <el-tag v-else type="warning">三级</el-tag>
            </template>
    </el-table-column>

    效果图:

  • 相关阅读:
    赠与今年的大学毕业生(胡适先生30年代的文章,仍不过时)
    统一管理磁盘上的开源代码
    生成sqlite导入库的做法
    提高二维矢量绘图效率之一般做法
    boost库命名规则的优点
    如何把腾讯微博挂到CSDN博客上
    fatal error C1902 Program database manager mismatch; please check your installation问题的解决
    智能指针变量做函数参数的一个值得注意的地方
    PC会消亡吗?
    软件制造问题的微软答案
  • 原文地址:https://www.cnblogs.com/joe235/p/12123156.html
Copyright © 2011-2022 走看看