vue2人力资源项目9权限管理

页面搭建

<template>
  <div class="container">
    <div class="app-container">
      <el-button size="mini" type="primary">添加权限
      </el-button>
      <el-table-column label="名称" />
      <el-table-column label="标识" />
      <el-table-column label="描述" />
      <el-table-column label="操作">
        <el-button type="primary" mini="size">添加</el-button>
        <el-button type="primary" mini="size">删除</el-button>
        <el-button type="primary" mini="size">编辑</el-button>
      </el-table-column>
    </div>
  </div>
</template>

封装接口调用

api

import request from '@/utils/request'

// 获取权限列表
export function getPermissionList() {
  return request({

    url: '/sys/permission'
  })
}

一进页面就调用

export default {
  name: 'Permission',
  created() {
    this.getPermissionList()
  },
  methods: {
    async getPermissionList() {
      const result = await getPermissionList
    }
  }
}

 将获取的数据转换为树形

 methods: {
    async getPermissionList() {
      // 将获取的数据转换为树形
      this.list = transListToTreeData(await getPermissionList, 0)
    }
  }

给表格绑定数据,添加 row-key和default-expand-all和默认展开节点属性

 <el-table :data="list" roe-key="id" default-expand-all>

用插槽和v-if设置二级权限没有添加

 <template v-slot="{row}">
            <el-button v-if="row.type === 1" type="primary" mini="size">添加</el-button>
            <el-button type="primary" mini="size">删除</el-button>
            <el-button type="primary" mini="size">编辑</el-button>
          </template>

员工角色分配-弹出层

 点击按钮

1.设置控制退出角色的显示的变量

 showRoleDialog: false,

2.visible加.sync可以让我们点击x直接关闭弹层

  <el-dialog :visible.sync="showRoleDialog" />

3.封装api


// 获取可用角色
export function getEnableRoleList() {
  return request({
    url: '/sys/role/list/enabled'
  })
}

4.弹出层

<el-checkbox-group v-model="roleIds">
        <el-checkbox v-for="item in roleList" :key="item.id">
          {{ item.name }}
        </el-checkbox>
      </el-checkbox-group>

回显数据

1.回显数据 

  methods: {
    // 点击角色按钮弹层出现
    async btnRole(id) {
      // 通过传入的id获取当前用户所拥有的角色

      this.roleList = await getEnableRoleList()
      // 记录当前点击的id,因为之后确定取消要存取给对应的用户
      this.currentUserId = id
      // 调用接口,解构数据,获取当前用户拥有的角色
      const { roleIds } = await getEmployeeDetail(id)
      // 赋值给对应的显示的勾选
      this.roleIds = roleIds
      // 先获取接口,获取成功了在显示弹层,否则页面来不及跳转
      this.showRoleDialog = true
    },

 2.确定按钮

调用接口,传入参数,提示信息

 async  btnRoleOk() {
      await assignRole({
        // 传入参数
        id: this.currentUserId,
        roleIds: this.roleIds
      })
      this.$message.success('分配用户角色成功')
      this.showRoleDialog = false
    }

3.取消按钮

          <el-button size="mini" @click="showRoleDialog=false">取消</el-button>

给角色分配权限-弹出层

1.控制弹层显示(:visible要加.sync修饰符,还要加title)

   <el-dialog :visible.sync=" showPermissionDialog" title="分配权限">
      <!--放置权限数据-->
    </el-dialog>

2.步骤同上

这里用了文档里的方法,通过获取实例调用方法来实现双向绑定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/631217.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DS高阶:跳表

一、skiplist 1.1 skiplist的概念 skiplist本质上也是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树和哈希表的价值是一样的&#xff0c;可以作为key或者key/value的查找模型。skiplist是由William Pugh发明的&#xff0c;最早出现于他在1990年发…

商品服务:SPUSKU规格参数销售属性

1.Object划分 1.PO&#xff08;Persistant Object&#xff09;持久对象 PO就是对应数据库中某个表中的一条记录&#xff0c;多个记录可以用PO的集合。PO中应该不报含任何对数据库的操作 2.DO(Domain Object) 领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。 3…

蓝队技术 | 使用Sysmon日志识别和分析Windows恶意活动

在这篇文章中&#xff0c;我们将演示如何使用Sysmon日志来分析和了解恶意软件的各种行为&#xff0c;其中包括如何通过Firefox从Dropbox下载、运行、并使用Windows工具进行安装。本文将介绍Sysmon日志中各种有用的Event ID&#xff0c;以及如何识别和分析Windows操作系统上的恶…

(五)Spring教程——Spring IoC容器(上)

在Spring框架中&#xff0c;Bean的实例化和组装都是IoC容器配置元数据完成的。Spring框架提供的容器主要是基于BeanFactory和ApplicationContext两个接口&#xff0c;一种是实现BeanFactory接口的简单容器&#xff0c;另一种是实现ApplicationContext接口的高级容器。 BeanFact…

嵌入式开发十五:STM32中断系统

STM32 中断非常强大&#xff0c;几乎每个外设都可以产生中断&#xff0c;因此这里我们单独来介绍它&#xff0c;为后面介绍外设中断做铺垫。 目录 一、中断的介绍 1.1 中断的概念 1.2 中断优先级: 1.3 中断的嵌套 1.4 内部中断和外部中断 1.5 中断响应和事件响应 1.6 …

【C语言】指针(二)

目录 一、传值调用和传址调用 二、数组名的理解 三、通过指针访问数组 四、一维数组传参的本质 五、指针数组 六、指针数组模拟实现二维数组 一、传值调用和传址调用 指针可以用在哪里呢&#xff1f;我们看下面一段代码&#xff1a; #include <stdio.h>void Swap(i…

2005-2022年全国及各省绿色信贷水平测算数据(含原始数据+计算过程+计算结果)

2005-2022年全国及各省绿色信贷水平测算数据&#xff08;含原始数据计算过程计算结果&#xff09; 1、时间&#xff1a;2005-2022年 2、来源&#xff1a;工业统计年鉴、统计年鉴、其中2017年采用插值法填补 3、范围&#xff1a;31省 4、方法说明&#xff1a;选取各省六大高…

HTML静态网页成品作业(HTML+CSS)——动漫喜羊羊网页设计制作(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

R实验 基础(二)

实验目的&#xff1a; 掌握向量的几种类型&#xff1a;数值向量、逻辑向量、字符向量、复数向量&#xff1b;掌握生成向量几个的函数使用和向量的下标运算&#xff1b;掌握因子的定义和相关函数的使用。 实验内容&#xff1a; R语言中&#xff0c;数值向量用得非常多。生成数…

QT多线程的使用

目录 一.介绍 二.第一种多线程方式 1.创建一个线程子类&#xff0c;继承QT中的QThread 2.重新父类的run( )方法 3.在线程中创建子线程对象 4.run( )方法 5.启动子线程 三.第二种多线程方式 1.创建一个新类&#xff08;这个类是QObject的派生&#xff09; 2.在这个类中…

宝塔助手是以宝塔Linux面板提供的API开发的一款可以随时随地管理服务器的APP

【软件介绍】手机操控云服务器的神器软件&#xff0c;本人亲测在用&#xff0c;好用极了&#xff01; 【软件名称】宝塔助手 【软件包名】com.lensyn.zsbt 【软件版本】1.4.1 【软件大小】29.00M 【适用系统】安卓 【软件特色】宝塔助手是以宝塔Linux面板提供的API开发的一款可…

centos无法联网解决方案(9步完成

1.打开终端&#xff0c;输入 su - root 进入到管理员模式&#xff08;-的前后都有空格哈&#xff09; 切换后&#xff0c;显示的就是root... 2.. &#xff0c;输入命令ip addr 2. 切换当前目录 cd /etc/sysconfig/network-scripts/ 3.输入命令&#xff0c;打开文件 vi /etc…

【Unity学习笔记】第十六 World space、Parent space和Self space及Quaternion左乘右乘辨析

目录 World space、Parent space和Self space不同坐标系下的移动不同坐标系下的旋转——Quaternion左乘右乘的区别辨析总结 参考&#xff1a; Unity 世界坐标&局部坐标下的旋转Quaternion multiplication orderlocal space vs global space vs object space in unity3dTran…

二进制搭建 k8s 单 Master 集群架构

一、单机 matser 部署环境 mater节点mater01192.168.80.7kube-apiserver、kube-controller-manager、kube-scheduler、 etcdnode节点node01192.168.80.11kubelet kube-proxy docker &#xff08;容器引擎&#xff09;node02192.168.80.12kubelet kube-proxy docker &#xff0…

DNL、相位噪声以及量化噪底如何影响ADC性能

在一般奈奎斯特ADC的理论性能中常常见到如下公式&#xff08;1-1&#xff09;&#xff0c;我们可以简单聊聊这个公式的来源及其背后的隐形知识。 &#xff08;1&#xff09;采样时钟抖动部分是第一项&#xff0c;是一个满幅输入信号的频率&#xff0c;注意这里要求的是满幅&…

代码随想录打卡day27day28

回溯算法 回溯法解决的问题都可以抽象为树形结构&#xff0c;是的&#xff0c;我指的是所有回溯法的问题都可以抽象为树形结构&#xff01; 因为回溯法解决的都是在集合中递归查找子集&#xff0c;集合的大小就构成了树的宽度&#xff0c;递归的深度就构成了树的深度。 递归…

Day29

回溯算法part03 LC39组合总和(未掌握) 未掌握分析&#xff1a;被数组中的元素可以被重复选取误导&#xff0c;同时没有想到暴力解法来理解回溯 暴力解法肯定是for循环遍历candidates中的每个元素&#xff0c;下一层子循环不像之前的组合题目那样从i1开始&#xff0c;该题目元…

其实解决问题的方法很简单

大家好&#xff01;我是编码小哥&#xff0c;欢迎关注&#xff0c;持续分享更多实用的编程经验和开发技巧&#xff0c;共同进步&#xff01; 本例是一个动态数组的例子&#xff0c;实现数据的增加、删除、根据索引修改数值、获取数值。 dynamic_array.c #include "dy…

什么是TCP的粘包、拆包问题?

一、问题解析 TCP粘包和拆包问题是指在进行TCP通信时&#xff0c;因为TCP是面向流的&#xff0c;所以发送方在传输数据时可能会将多个小的数据包粘合在一起发送&#xff0c;而接收方则可能将这些数据包拆分成多个小的数据包进行接收&#xff0c;从而导致数据接收出现错误或者数…

C语言 | Leetcode C语言题解之第92题反转链表II

题目&#xff1a; 题解&#xff1a; struct ListNode *reverseBetween(struct ListNode *head, int left, int right) {// 因为头节点有可能发生变化&#xff0c;使用虚拟头节点可以避免复杂的分类讨论struct ListNode *dummyNode malloc(sizeof(struct ListNode));dummyNode…