Vue:要求录入数据用户和登录用户不一致时不允许修改数据
在做项目时遇到了一个问题:要求录入数据用户和登录用户不一致时不允许修改数据

最开始的时候我想的很简单直接验证就行:(其他内容不展示,只展示按钮)
<div>
<button class="button-border" @click="handleUpdate()">
修改
</button>
</div>
handleUpdate (row) {
// 修改校验:协议录入人需要与登录人保持一致
if(row.input_user_name == this.$store.state.user.name){
//input_user_name为数据录入的用户名,this.$store.state.user.name就是现登录的用户名
this.$router.push({ path: '/process/insert', query: { flowId: row.flow_id} })
}else{
this.$modal.alertError("协议录入账户与登录账户不一致,不允许修改。");
}
},
以为要用到slot-scope="scope",所以我直接加在了
标签里,但是发现修改按钮不显示:
<div slot-scope="scope">
<button class="button-border" @click="handleUpdate(scope.row)">
修改
</button>
</div>
在经过网上搜索之后说现在的版本换成了v-slot,官方文档:https://v2.cn.vuejs.org/v2/guide/components-slots.html;
但是经过尝试之后还是不行的,在仔细研究了之后发现将
于是我对这个流程进行了分析:推荐在线画流程图的网站:https://www.processon.com/

在看着这个流程图时,我的思路逐渐清晰,发现我好像陷入了误区:
在控制台打印时,我发现这个数据表返回的有一个是ID,而我一直在尝试用ID来调取name,那我为什么不直接获取现在登录的用户ID来和录入数据的用户ID来进行对比呢:
<div>
<button class="button-border" @click="handleUpdate()">
修改
</button>
</div>
//数据
data(){
return:{
isDisabled: true,//数据绑定的方法,为true是不可以修改输入框内容
}
}
//方法
handleUpdate(row) {
// 修改校验:协议录入人需要与登录人保持一致
if ( this.form.createBy === this.$store.state.user.userId ) {
//this.form.createBy为录入数据用户ID,this.$store.state.user.userId为现登录用户ID
this.isDisabled = !this.isDisabled
} else {
this.$modal.alertError("协议录入账户与登录账户不一致,不允许修改。");
}
}
这样就实现了录入数据用户和登录用户不一致时不允许修改数据

浙公网安备 33010602011771号