获取权限

## onion.getPermission() ### 功能 实时获取操作后台按钮所需的权限数据 ### 使用场景 根据页面地址, 获取相关接口功能的权限, 并在页面显示对应的按钮 **例**: 获取 customerSummary 接口的所有权限 ```js onion.getPermission("pages/customer/customerSummary/pageList.html") ``` ![image.png](https://cos.easydoc.net/27100029/files/kb0eov5t.png) 根据返回的权限赋值给操作按钮, 使其能展示在页面上供用户操作 ![image.png](https://cos.easydoc.net/27100029/files/kb0erppg.png) ![image.png](https://cos.easydoc.net/27100029/files/kb0espre.png) ### 如何使用 1. 传入菜单页面地址, 一般为菜单主页 `pageList.html` ```js onion.getPermission("pages/pageOne/pageTwo/pageList.html") ``` 2. 在 HTML 页面, 添加需求中要求的操作按钮, 要求按钮上有 `limitname `, class 上有 `limitBtn layui-hide` 3. 将返回对应操作的权限添加至 limitname ```html <span type="button" class="layui-btn limitBtn layui-hide" limitname="pageOne:pageTwo:funcOne" id="funcOne">功能一</span> ``` ### api定义 ``` javascript onion.getPermission = function (menuUrl) { if (onion.showPermission) { onion.hidePermissionBtn(onion.showPermission); return; } var defaultUrl = '/common/getUserPermissions'; var menuUrl = menuUrl || false; // 判断收集的userId 和 menu 是否都有 var permissionData = onion.getPermissionData(); permissionData = JSON.parse(permissionData); var flag = true; for (var key in permissionData) { if (permissionData.hasOwnProperty(key)) { if (permissionData[key] == '') { flag = false; } } }; if (!flag) { return; }; onion.ajax.post(defaultUrl, permissionData, function (res) { if (res.code == onion.networkState.SUCC) { if (menuUrl) { permissionData['menu'] = menuUrl; onion.ajax.post(defaultUrl, permissionData, function (res2) { var data1 = res.data; if (res.code == onion.networkState.SUCC) { var data2 = res2.data; var result = data1.concat(data2); } else { var result = data1; } var permissonObj = {}; result.forEach(function (item) { permissonObj[item] = true; }); onion.showPermission = permissonObj; onion.hidePermissionBtn(permissonObj); }) } else { var data1 = res.data; var permissonObj = {}; data1.forEach(function (item) { permissonObj[item] = true; }); onion.showPermission = permissonObj; onion.hidePermissionBtn(permissonObj); } } }) } onion.hidePermissionBtn = function (data) { $('.limitBtn').each(function (idx, btnItem) { var limitname = $(btnItem).attr('limitname'); if (data[limitname]) { $(btnItem).removeClass('layui-hide'); } }); } ```