若依 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>
相关推荐
恋猫de小郭17 分钟前
Flutter 小技巧之:实现 iOS 26 的 “液态玻璃”
android·前端·flutter
糖墨夕22 分钟前
Trae还能将Figma 设计稿转化为前端代码
前端·trae
程序猿小D22 分钟前
第26节 Node.js 事件
服务器·前端·javascript·node.js·编辑器·ecmascript·vim
天天打码23 分钟前
Bootstrap Table开源的企业级数据表格集成
前端·开源·bootstrap
Allen Bright26 分钟前
【CSS-8】深入理解CSS选择器权重:掌握样式优先级的关键
前端·css
hnlucky28 分钟前
安装vue的教程——Windows Node.js Vue项目搭建
前端·javascript·vue.js·windows·node.js
余道各努力,千里自同风41 分钟前
CSS“多列布局”
前端·css·html
苏_Berlvy43 分钟前
javascript中Cookie、BOM、DOM的使用
javascript
Keya1 小时前
使用 tinypng 脚本打包为exe 进行压缩图片
前端·python·程序员
wordbaby1 小时前
React Router 的 handle 和 useMatches 的作用、场景和联系
前端·react.js