当前位置: 首页 > news >正文

项目练习:若依系统二次开发中,某些情况下,v-hasPermi不适合的解决办法

一、情景描述

像下面这种情况,你只能屏蔽了 <quantity/>组件 ,但是,不能影藏el-tab-pane页签。
而我们想要的是,影藏el-tab-pane页签及其内容。

  <el-tabs type="card">
      <el-tab-pane label="计量单位" v-hasPermi="['rent:basicinfo:preserve:quantity:list']" >
        <quantity/>
      </el-tab-pane>
</el-tabs>

二、解决办法

1、Vue2写法

使用checkPermi + v-if实现

<template>
  <el-tabs>
    <el-tab-pane v-if="checkPermi(['system:user:add'])" label="用户管理" name="user">用户管理</el-tab-pane>
    <el-tab-pane v-if="checkPermi(['system:user:add', 'system:user:edit'])" label="参数管理" name="menu">参数管理</el-tab-pane>
    <el-tab-pane v-if="checkRole(['admin'])" label="角色管理" name="role">角色管理</el-tab-pane>
    <el-tab-pane v-if="checkRole(['admin','common'])" label="定时任务" name="job">定时任务</el-tab-pane>
   </el-tabs>
</template>
 
<script>
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 
export default{
   methods: {
    checkPermi,
    checkRole
  }
}
</script>

2、Vue3写法

Vue3中,因为有setup语法糖,所以,不需要在methods中注册函数。

import { checkPermi } from "@/utils/permission.js";

function check(arr) {
  return checkPermi(arr);
}
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template #default="scope">
          <!-- 修改按钮 -->
          <el-button v-if="check(['unit:xxx:edit'])" link type="primary" icon="Edit"
            @click="handleUpdate(scope.row)">
            修改
          </el-button>
          <!-- 查看按钮 -->
          <el-button v-else link type="primary" icon="View" @click="handleUpdate(scope.row)">
            查看
          </el-button>
          <!-- 删除按钮 -->
          <el-button v-hasPermi="['unit:xxx:remove']" link type="primary" icon="Delete"
            @click="handleDelete(scope.row)">
            删除
     </el-button>
  </template>
</el-table-column>
http://www.dtcms.com/a/107289.html

相关文章:

  • DoDAF科普
  • Python入门(5):异常处理
  • 蓝桥杯练习:对称二叉树
  • 全国产FMC子卡-16bit 8通道2.4G
  • Leetcode 6207 -- DP | 思维 | 双指针
  • catch-all路由
  • 数据结构初阶: 顺序表的增删查改
  • 【LeetCode Solutions】LeetCode 126 ~ 130 题解
  • Selenium自动化中的 三大时间等待
  • gcc 链接顺序,静态库循环依赖问题
  • 「青牛科技」GC5849 12V三相无感正弦波电机驱动芯片
  • RISC-V debug专栏2 --- Debug Module(DM)
  • 在将asc文件导入maxent文件时出现for input string:“nan“
  • (kotlin) Android 13 高版本 图片选择、显示与裁剪功能实现
  • Docker容器部署Java项目的自动化脚本(Shell编写)
  • 动态规划练习题①
  • 蓝桥杯 web 灯的颜色变化(Dom操作及样式动态修改、浏览器解析顺序、定时器)
  • 计算机科学基础设施之数学:科研工具、资源与环境详介
  • qt.qpa.xcb: could not connect to display解决方法
  • Keil5烧录后STM32不自动运行?必须复位才能启动的终极解决方案
  • element-plus中,Upload上传组件的使用 + 后端处理
  • DMA在SPI和I2C通信中的应用详解
  • 解锁异步编程新姿势:CompletableFuture 深度探秘
  • java根据集合中对象的属性值大小生成排名
  • [NOIP 1999 提高组] 导弹拦截
  • C++ STL简单的几个容器
  • I²C总线高级特性与故障处理分析
  • 【leetcode100】每日温度
  • OpenCV 从入门到精通(day_04)
  • 面向对象