若依 v-hasPermi 自定义指令失效场景

今天使用若依跟往常一样使用v-hasPermi 自定义指令的时候发现这个指令失效了,原因是和v-if指令一块使用,具体代码如下:

vue 复制代码
<el-button
            size="mini"
            type="text"
            icon="el-icon-edit-outline"
            v-hasPermi="['evaluation:user:his']"
            v-if="scope.row.approveStatus === '2'"
            @click="handleHis(scope.row)"
          >评分记录</el-button>

这个其实平常也是这么用的,但是今天突然发现有问题,刚开始以为是v-hasPermi失效了,然后debug了一下,发现其实v-hasPermi指令是生效的,已经移除el-button标签,但是此时有符合v-if所以该按钮有显示出来了...

解决方案一

v-if替换为v-show

vue 复制代码
<el-button
            size="mini"
            type="text"
            icon="el-icon-edit-outline"
            v-hasPermi="['evaluation:user:his']"
            v-show="scope.row.approveStatus === '2'"
            @click="handleHis(scope.row)"
          >评分记录</el-button>

解决方案二

使用全局判断checkPermi([])函数做逻辑与操作。

vue 复制代码
<el-button
            size="mini"
            type="text"
            icon="el-icon-edit-outline"
            v-if="scope.row.approveStatus === '2' && checkPermi(['evaluation:user:his'])"
            @click="handleHis(scope.row)"
          >评分记录</el-button>
相关推荐
锐湃2 分钟前
手写agp8自定义插件,用ASM实现路由跳转
java·服务器·前端
wordbaby8 分钟前
TypeScript 类型断言和类型注解的区别
前端·typescript
谁是听故事的人9 分钟前
vue前端面试指南
前端·vue.js·面试
名字被你们想完了12 分钟前
Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(十)
前端·flutter
千寻girling14 分钟前
面试官: “ 请你讲一下 package.json 文件 ? ”
前端·javascript·面试
如果你好17 分钟前
解决深拷贝循环引用痛点:一篇看懂 WeakMap 实现方案
前端·javascript
han_20 分钟前
前端性能优化之性能指标篇
前端·javascript·性能优化
爱生活的苏苏20 分钟前
修改默认滚动条样式
开发语言·javascript·ecmascript
小p22 分钟前
nextjs学习1:回顾服务端渲染SSR
vue.js