动态控制按钮权限
## 动态控制按钮权限
### 背景
由于项目开发初期,没有考虑按钮权限,所以前端默认所有的按钮都是可见,现在需要加上按钮权限,通过权限菜单动态显示操作按钮
---
### 技术原理
把请求权限的接口放在table渲染成功之后触发,保证当前页面的所有节点都已加载完成,这样
就可以取得操作按钮的节点,已将所有逻辑封装在util.js,实际操作不需要关系js逻辑,只
需要在对应的操作按钮上添加相应的限制信息就可以
### 如何操作
#### 针对pageList.html
```javascript
<div class="toolbox layui-row notb p10">
<span class="layui-btn ml15 limitBtn layui-hide" limitname="system:user:save" id="userAdd"><i class="layui-icon"></i> 用户新增</span>
<button class="layui-btn" lay-submit lay-filter="userSearch"><i class="layui-icon"></i>用户查询</button>
</div>
</div>
```
找到对应的按钮span,添加 **==limitBtn layui-hide==**, ==layui-hide==保证节点在初始化的时候是隐藏的,==limitBtn==是确认当前按钮是需要限制的按钮。 ==limitname==是指当前限定按钮到底限制什么,里面的数据是后台返回的
#### 针对非pageList.html
请在页面加载完成的时候,一般是数据回显之后,手动调用==onion.getPermission();==,其他和pageList.html一致,找到对应的操作按钮,添加类名和限定内容
### 公开API
onion.getPermission
手动获取权限接口数据,参数是菜单地址
demo:

如果是table数据,手动执行done回调钩子
### 操作细节
直接操作接口数据,根据当前权限接口返回的数据,确认limitname是什么内容