当涉及到按钮权限控制时,通常需要在前端和后端两方面进行处理。以下是更详细的代码示例,展示如何在前端使用 Vue.js 和 Element UI,以及在后端使用 Spring Boot 实现按钮权限控制:
- 前端代码(Vue.js + Element UI):
<template>
<div>
<el-button v-if="hasPermission('edit')" @click="handleEdit">编辑</el-button>
<el-button v-if="hasPermission('delete')" @click="handleDelete">删除</el-button>
</div>
</template>
<script>
export default {
data() {
return {
permissions: [], // 当前用户拥有的权限
};
},
methods: {
async fetchPermissions() {
try {
const response = await fetch('/api/permissions');
const data = await response.json();
this.permissions = data.permissions;
} catch (error) {
console.error('Failed to fetch permissions: ', error);
}
},
hasPermission(permission) {
return this.permissions.includes(permission);
},
handleEdit() {
// 编辑按钮点击事件处理逻辑
},
handleDelete() {
// 删除按钮点击事件处理逻辑
},
},
mounted() {
this.fetchPermissions();
},
};
</script>在上述代码中,我们通过 fetchPermissions 方法从后端获取当前用户的权限信息,并根据权限动态显示或隐藏按钮。
- 后端代码(Spring Boot):
@RestController
public class PermissionController {
@GetMapping("/api/permissions")
public Map<String, List<String>> getUserPermissions() {
// 模拟当前用户权限信息
List<String> permissions = Arrays.asList("edit", "delete");
Map<String, List<String>> response = new HashMap<>();
response.put("permissions", permissions);
return response;
}
}在后端代码中,我们提供了一个简单的接口 /api/permissions 来模拟获取当前用户的权限信息。
















