61.(前端)权限管理实现——从数据库中获取数据展示在前端,使用插槽和Tag标签美化数据展示

2023-11-17

1.概述

在这里插入图片描述
本次内容,主要是对用户权限列表进行展示

2.基本流程

  1. 在component文件夹下创建power文件夹。并在power文件夹下创建Menu.vue
  2. 在Menu.vue任意编写显示内容,用于测试
  3. 去router/index.js挂载组件:导入组件,在子视图中创建子路由
  4. 测试1:是否点击能显示页面
  5. 添加面包屑与基本信息的卡片el-card(有对应代码在4.1)
  6. 从user/User.vue下复制对应代码,写入表格信息并修改对应名称(代码对应4.2)
  7. 测试3:是否显示表格
  8. 从数据库中获取数据,展示在前端页面(对应代码4.3)
  9. 测试4:是否显示数据
  10. 使用插槽slot-scope 去控制标签Tag,Tag用于美化权限等级的显示
  11. 最终测试结果

3.测试

3.1测试1:是否点击能显示页面

在这里插入图片描述

3.2测试2:点击面包屑中的首页是否能发生跳转

在这里插入图片描述

3.3测试3:是否显示表格

在这里插入图片描述

3.4测试3:是否显示表格

在这里插入图片描述

3.5最终结果展示

 5.

4.主要代码

4.1对应基本流程第五步

<!-- components/power/Menu.vue -->
<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>
            INFO信息
        </el-card>
    </div>
</template>

4.2对应基本流程第六步

<!-- components/power/Menu.vue -->
<template>
    <div>
        <el-card>
            <el-row>
                <el-col>
                    <el-table :data="menuList" border style="width:100%">
                        <el-table-column type="index"></el-table-column>
                        <el-table-column prop="id" label="ID"></el-table-column>
                        <el-table-column prop="name" label="权限名称"></el-table-column>
                        <el-table-column prop="path" label="权限路径"></el-table-column>
                        <el-table-column prop="level" label="权限等级"></el-table-column>
                    </el-table>
                </el-col>
            </el-row>
        </el-card>
    </div>
</template>

4.3对应流程第七步

从数据库中获取数据展示在前端页面

export default {
    data () {
        return {
            menuList: []
        }
    },
    created(){
        this.getMenuList()
    },
    methods: {
        async getMenuList() {
            const { data: res } = await this.$axios.get('/api/menu', {params:{type:'list'}})
            if (res.status !== 200) return this.$msg.error(res.msg)
            console.log(res.data);
            this.menuList = res.data
        }
    }
}

5.完整代码

<!-- components/power/Menu.vue -->
<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>
            <el-row>
                <el-col>
                    <el-table :data="menuList" border style="width:100%">
                        <el-table-column type="index"></el-table-column>
                        <el-table-column prop="id" label="ID"></el-table-column>
                        <el-table-column prop="name" label="权限名称"></el-table-column>
                        <el-table-column prop="path" label="权限路径"></el-table-column>
                        <el-table-column prop="level" label="权限等级">
                            <template slot-scope="scope">
                                <el-tag v-if="scope.row.level == 1">一级菜单</el-tag>
                                <el-tag type="success" v-if="scope.row.level == 2">二级菜单</el-tag>
                            </template>
                        </el-table-column>
                    </el-table>
                </el-col>
            </el-row>
        </el-card>
    </div>
</template>

<script>

export default {
    data () {
        return {
            menuList: []
        }
    },
    created(){
        this.getMenuList()
    },
    methods: {
        async getMenuList() {
            const { data: res } = await this.$axios.get('/api/menu', {params:{type:'list'}})
            if (res.status !== 200) return this.$msg.error(res.msg)
            console.log(res.data);
            this.menuList = res.data
        }
    }
}

</script>

引入组件

// src/router/index.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import Welcome from '../components/Welcome.vue'
import Home from '../components/Home.vue'
import User from '../components/user/User.vue'
import Menu  from '../components/power/Menu.vue'
// 引入全局样式
import '../assets/css/global.css'


Vue.use(VueRouter)

const routes = [
  // 为login组件创建路由
  {
    path: '/login',
    name: 'Login',
    component: Login
  },
  {
    path: '/home',
    name: 'Home',
    component: Home,
    // 引入子组件,创建子路由
    redirect: '/welcome',
    children: [
      {
        path: '/welcome', component: Welcome
      },
      {
        path: "/user_list", component: User
      },
      {
        path: "/role_list", component: Menu
      }
    ]
  }
]
const router = new VueRouter({
  routes
})

export default router



// 根据用户当前是否登录,在访问之前做一个判断
router.beforeEach ((to, from, next) => {
  if (to.path == '/login') return next() // 如果直接访问login界面,那就跳转过去
  // 如果不是直接访问登录界面,看一下他有没有token,如果没有的话,先让他登录,有就想去哪去哪
  const tokenStr = window.sessionStorage.getItem('token')
  if (!tokenStr) return next('/login')
  next()
})

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

61.(前端)权限管理实现——从数据库中获取数据展示在前端,使用插槽和Tag标签美化数据展示 的相关文章

  • 第1章 NumPy基础

    为何第1章介绍NumPy基础 在机器学习和深度学习中 图像 声音 文本等首先要数字化 如何实现数字化 数字化后如何处理 这些都涉及NumPy NumPy是数据科学的通用语言 它是科学计算 矩阵运算 深度学习的基石 PyTorch中的重要概念

随机推荐

  • 分布式消息队列RocketMQ--事务消息--解决分布式事务的最佳实践

    分布式消息队列RocketMQ 事务消息 解决分布式事务的最佳实践 标签 事务消息exactlyRocketMQKafka分布式消息队列 2016 12 23 22 08 7789人阅读 评论 8 收藏 举报 分类 分布式消息队列Rocke
  • Windows Server2012R2 VisualSVN3.9.7-Server在线修改密码搭建

    经过核验 按下面这样的方式去升级 从3 0 0升级到3 9 7 同时支持用户通过web界面修改密码 每个用户忘记密码要管理员来修改 工作量不大 但真的是耗时费力 还不讨好 1 安装软件准备 1 1 软件准备 1 Windows Server
  • 自动化测试系列 —— UI自动化测试

    UI 测试是一种测试类型 也称为用户界面测试 通过该测试 我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG 了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要 通过执行 UI 测试 测试人
  • 【数据结构】串

    串 串的顺序实现 简单的模式匹配算法 KMP算法 KMP算法的进一步优化 串的顺序实现 初始化 define MaxSize 50 typedef char ElemType 顺序存储表示 typedef struct ElemType d
  • Klocwork安装

    简单介绍一下Klocwork在windows下的安装 操作系统是win7 Klocwork的版本是10 0 第一步 由于Klocwork的安装程序已十分成熟 所以在安装之前不需要什么准备共走 双击Klocwork的安装包 会出现下图的安装引
  • java实现顺序表

    顺序表是在计算机内存中以数组的形式保存的线性表 是指用一组地址连续的存储单元依次存储数据元素的线性结构 线性表采用顺序存储的方式存储就称之为顺序表 顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中 1 创建一个顺序表 cl
  • 一个常见的Spring IOC疑难症状

    b size x large Case size b 请看下面的IOC实例 1 AaaService实现AaaaInterface接口 2 在BaaService中Autowired AaaService b size large Code
  • linux参数传入awk,linux awk命令--如何引入外部变量

    目标 用shell命令删除目录下文件 但是排除某些特殊文件 第一时间无脑从谷歌获取 rm ls txt grep v test txt 或者 rm ls txt egrep v test txt 或者 rm ls txt awk if 0
  • python实现新闻网站_如何利用 Python 爬虫实现给微信群发新闻早报?(详细)

    1 场景 经常有小伙伴在交流群问我 每天的早报新闻是怎么获取的 其实 早期使用的方案 是利用爬虫获取到一些新闻网站的标题 然后做了一些简单的数据清洗 最后利用 itchat 发送到指定的社群中 由于爬虫面对 网站改版的不稳定性及 itcha
  • 全额限定名

    全额限定名说白了就是路径名 全额限定名 java lang String class文件中就是 java lang String pathname2classname classname2pathname
  • java 异常 理解_java异常理解(1)

    JAVA异常处理机制 1引子 try catch finally恐怕是大家再熟悉不过的语句了 而且感觉用起来也是很简单 逻辑上似乎也是很容易理解 不过 我亲自体验的 教训 告诉我 这个东西可不是想象中的那么简单 听话 不信 那你看看下面的代
  • 光流估计(对视频处理+python实现+原理+实验报告)

    资源 光流估计 对视频处理 python实现 原理 实验报告 实现效果 相关原理 光流是空间运动物体在观测成像平面上的像素运动的 瞬时速度 根据各个像素点的速度矢量特征 可以对图像进行动态分析 例如目标跟踪 亮度恒定 同一点随苕时间的变化
  • 植被物候参数遥感研究进展(好文分享)

    在气候变化背景下 植被物候作为生态系统对环境变化响应的直接体现方式 日益受到学界关注 获取长期 连续 多尺度的植被物候数据是物候研究的基础 而利用卫星遥感手段获取的物候参数已经成为陆地生态系统变化研究的重要指标 遥感物候参数在农业生产管理
  • 530 Please login with USER and PASS.

    安装 npm install save hexo deployer ftpsync 配置 deploy type ftpsync host xx xx xx xx user bxu123123 pass xx11123 remote htd
  • C++ RSA加解密

    原文链接 https blog csdn net u011029517 article details 79392522 之前需要用到RSA加解密的时候花费了我不少的时间 网上有很多RSA加解密的文章 但大多数都是从文件读取公钥或者私钥的
  • 字节跳动五面都过了,结果被刷了,问了hr原因竟说是...

    摘要 说在前面 面试时最好不要虚报工资 本来字节跳动是很想去的 几轮面试也通过了 最后没offer 自己只想到几个原因 1 虚报工资 比实际高30 2 有更好的人选 这个可能性不大 我看还在招聘 我是面试Android开发的 3年经验 下面
  • linux clamav 免费查毒工具

    linux下需要杀毒工具吗 我一直认为是不要的 基于linux的病毒很少 linux 安全防护也做的很好 一般很难功破 我想那些 们更喜欢 写windows下的病毒 用的人多啊 传播也容易 下面的操作 都是以管理员的身份来进行的 一 安装c
  • Java各种系统架构图及其简介

    1 spring架构图 Spring是一个开源框架 是为了解决企业应用程序开发复杂性而创建的 框架的主要优势之一就是其分层架构 分层架构允许您选择使用哪一个组件 同时为J2EE应用程序开发提供集成的框架 Spring框架的功能可以用在任何J
  • 使用Xshell7控制多台服务同时安装ZK最新版集群服务

    一 环境准备 主机名称 主机IP 节点 集群内通讯端口 选举leader clinet端提供服务 端口 docker0 192 168 1 100 node 0 2888 3888 2181 docker1 192 168 1 101 no
  • 61.(前端)权限管理实现——从数据库中获取数据展示在前端,使用插槽和Tag标签美化数据展示

    1 概述 本次内容 主要是对用户权限列表进行展示 2 基本流程 在component文件夹下创建power文件夹 并在power文件夹下创建Menu vue 在Menu vue任意编写显示内容 用于测试 去router index js挂载