diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java index a635130c..44e0accc 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/UserController.java @@ -593,6 +593,7 @@ public class UserController { /** * 获取所有菜单 + * * @param * @return */ @@ -604,25 +605,7 @@ public class UserController { token = (String) request.getSession().getAttribute("userToken"); } UserByPort userToken = AuthenticationTokenPool.getUserToken(token); - //定义链接地址 - String url = PortConfig.external_url_6666 + "/system_authorizing/obtain_authorization"; - Map param = new HashMap<>(); - param.put("system", "cangchu"); - String jsonString = JSONObject.toJSONString(param); - JSONObject paramObject = JSONObject.parseObject(jsonString); - String post = null; - try { - post = HttpUtils.send(url, paramObject, HTTP.UTF_8, userToken); - } catch (IOException e) { - e.printStackTrace(); - } - JSONObject jsonObject = JSONObject.parseObject(post); - JSONObject data = (JSONObject) jsonObject.get("data"); - JSONArray powerid = (JSONArray) data.get("powerid"); - if (powerid == null) { - powerid = new JSONArray(); - } - List stringList = JSONObject.parseArray(powerid.toJSONString(), String.class); + List stringList = LinkInterfaceUtil.getUserAccessToAddresses(userToken); List accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList); // 获取顶级菜单 List menusByNoParent = new ArrayList<>(); @@ -679,6 +662,7 @@ public class UserController { return menuInfo; } + /** * 根据父级菜单获取子菜单 * @@ -713,12 +697,29 @@ public class UserController { /** * 用于移动端用户获取其可见功能 + * * @param request * @return */ @GetMapping("/getUserAuthorization") - public RestResponse getUserAuthorization(HttpServletRequest request){ - return null; + public RestResponse getUserAuthorization(HttpServletRequest request) { + String token = request.getHeader("user-token"); + if (token == null) { + token = (String) request.getSession().getAttribute("userToken"); + } + UserByPort userToken = AuthenticationTokenPool.getUserToken(token); + // 获取当前用户可见的菜单id + List stringList = LinkInterfaceUtil.getUserAccessToAddresses(userToken); + // 根据菜单id获取菜单信息 + List accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList); + List result = new ArrayList<>(); + for (AccesstoAddress ata:accessToAddressByList + ) { + if(ata.getIschild() == 2){ + result.add(ata); + } + } + return new RestResponse(result); } diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/LinkInterfaceUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/LinkInterfaceUtil.java index d9c6a126..39ece3f9 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/LinkInterfaceUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/LinkInterfaceUtil.java @@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dreamchaser.depository_manage.config.PortConfig; import com.dreamchaser.depository_manage.config.QyWxConfig; -import com.dreamchaser.depository_manage.entity.Administration; -import com.dreamchaser.depository_manage.entity.Post; -import com.dreamchaser.depository_manage.entity.UserByPort; -import com.dreamchaser.depository_manage.entity.qywxDepartment; +import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.pojo.AdministrationP; import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; import org.apache.http.protocol.HTTP; @@ -296,4 +293,29 @@ public class LinkInterfaceUtil { JSONObject jsonObject = JSONObject.parseObject(post); return (JSONArray) jsonObject.get("data"); } + + + public static List getUserAccessToAddresses(UserByPort userToken) { + //定义链接地址 + String url = PortConfig.external_url_6666 + "/system_authorizing/obtain_authorization"; + Map param = new HashMap<>(); + param.put("system", "cangchu"); + String jsonString = JSONObject.toJSONString(param); + JSONObject paramObject = JSONObject.parseObject(jsonString); + String post = null; + try { + post = HttpUtils.send(url, paramObject, HTTP.UTF_8, userToken); + } catch (IOException e) { + e.printStackTrace(); + } + JSONObject jsonObject = JSONObject.parseObject(post); + JSONObject data = (JSONObject) jsonObject.get("data"); + JSONArray powerid = (JSONArray) data.get("powerid"); + if (powerid == null) { + powerid = new JSONArray(); + } + List stringList = JSONObject.parseArray(powerid.toJSONString(), String.class); + return stringList; + } } + diff --git a/src/main/resources/templates/pages/self/userAuthorityMenus.html b/src/main/resources/templates/pages/self/userAuthorityMenus.html index 943e6c73..ccdb4ae6 100644 --- a/src/main/resources/templates/pages/self/userAuthorityMenus.html +++ b/src/main/resources/templates/pages/self/userAuthorityMenus.html @@ -18,17 +18,19 @@ clear: both; } - .layuimini-container{ - background-color: #efefef ; + .layuimini-container { + background-color: #efefef; } - .layuimini-authority-content-item a i{ + .layuimini-authority-content-item a i { background-color: #efefef; } + .first a i { color: #993333; } + .second a i { color: #6699CC; } @@ -42,8 +44,6 @@ } - -
@@ -107,7 +107,7 @@ if (childListElement.href.indexOf("my_")!== -1) { continue; } - result += createChildMenuList(childListElement); + result += createChildMenuItem(childListElement); } return result; } @@ -115,7 +115,7 @@ // 用于构造子菜单列表 - function createChildMenuList(data) { + function createChildMenuItem(data) { // 获取当前子菜单 let childList = data.child; // 定义返回结果 @@ -127,7 +127,7 @@ '

' + data.title + '

' + '
'; for (let i = 0; i < childList.length; i++) { - let childMenuList = createChildMenuList(childList[i]); + let childMenuList = createChildMenuItem(childList[i]); resultChild += childMenuList; } resultChild += '
'; @@ -147,29 +147,16 @@ $(function () { $.ajax({ - url: "/index/menus", + url: "/getUserAuthorization", type: 'get', dataType: 'json', contentType: "application/json;charset=utf-8", - success: function (data) { - let menuInfo = data.menuInfo; - for (let i = 0; i < menuInfo.length; i++) { - let menuInfoElement = menuInfo[i]; - if (menuInfoElement.href === '') { - let menuItem = createMenuList(menuInfoElement); - if (menuInfoElement.title.indexOf("辅助管理") !== -1) { - let resultChild = '
' + - '
' + - '

' + menuInfoElement.title + '

' + - '
'; - resultChild += menuItem; - resultChild += '
'; - menuItem = resultChild; - } - $("#layuimini-authority").append(menuItem); - element.render(); - } - } + success: function (res) { + let menuList = res.data; + let menuItem = createMenuList(menuList); + $("#layuimini-authority").append(menuItem); + element.render(); + } }) }); @@ -177,72 +164,40 @@ // 用于构造菜单列表 function createMenuList(data) { - - // 获取子菜单 - let childList = data.child; - // 如果存在子菜单 - if (childList.length > 0) { - // 循环子菜单 - + // 如果存在菜单 + if (data.length > 0) { // 定义结果 let result = ''; - // 设置添加标志 - let addEndDiv = true; - // 设置刷新标志 - let flush = false; // 定义暂存结果 - let tempItem = ''; - for (let i = 0; i < childList.length; i++) { + let tempItemForApplication = ''; + let tempItemForAnalyse = ''; + let tempItemForCreate = ''; + let tempItemForSystem = ''; + for (let i = 0; i < data.length; i++) { // 遍历子菜单 - let childListElement = childList[i]; - if (childListElement.href.indexOf("my_") !== -1) { + let childListElement = data[i]; + if (childListElement.url.indexOf("my_") !== -1) { // 如果是我的任务,我的申请跳过 continue; } - if (childListElement.title === "申请提交") { - // 如果是申请提交,直接添加并完成本次循环 - result += createChildMenuList(childListElement, result); - result += ''; - continue; - } - if (childListElement.title.indexOf("入") !== -1 || childListElement.title.indexOf("出") !== -1) { - // 如果是出入库管理 - tempItem = createChildMenuList(childListElement, tempItem); - // 暂时不需要添加结尾div - addEndDiv = false; - } else { - // 如果不是,根据刷新标志判断是否添加结尾div - addEndDiv = !flush; + if (childListElement.name.indexOf("申请") !== -1) { + // 如果是申请相关操作 + tempItemForApplication = createChildMenuItem(childListElement, tempItemForApplication, '业务操作','first'); + } else if (childListElement.name.indexOf("查询") !== -1 || childListElement.name.indexOf("可视化") !== -1) { + // 如果是查询可视化等操作 + tempItemForAnalyse = createChildMenuItem(childListElement, tempItemForAnalyse, '查询分析','second'); + } else if (childListElement.name.indexOf("创建") !== -1) { + // 如果是创建相关操作 + tempItemForCreate = createChildMenuItem(childListElement, tempItemForCreate, '基础设置','third'); + } else if (childListElement.name.indexOf("赋权") !== -1 || childListElement.name.indexOf("发布") !== -1) { + tempItemForSystem = createChildMenuItem(childListElement, tempItemForSystem, '系统管理','fourthly'); } - if (addEndDiv) { - // 如果需要添加 - if (tempItem !== "") { - // 如果暂存项目不为空 - tempItem += ''; - } - // 将暂存结果添加到结果中 - result += tempItem; - // 将暂存设置为空 - tempItem = ''; - // 设置刷新标志为真 - flush = true; - } - if (flush) { - - // 设置添加结尾div标志为假 - addEndDiv = false; - if (data.title === "辅助管理") { - // 如果是辅助管理菜单 - tempItem += createChildMenuList(childListElement, tempItem); - } else { - // 如果不是辅助管理菜单 - tempItem = createChildMenuList(childListElement, tempItem); - - } - if (i === childList.length - 1) { - // 如果到结尾 - result += (tempItem + ''); - } + if (i === data.length - 1) { + tempItemForApplication += ""; + tempItemForAnalyse += ""; + tempItemForCreate += ""; + tempItemForSystem += ""; + result = tempItemForApplication+tempItemForAnalyse+tempItemForCreate+tempItemForSystem; } } return result; @@ -250,47 +205,24 @@ } - // 用于构造子菜单列表 - function createChildMenuList(data, result) { - // 获取当前子菜单 - let childList = data.child; - // 定义返回结果 - // 如果存在子菜单 - if (childList !== undefined && childList !== null && childList.length > 0) { - let title = ''; - let ItemClass = ''; - if(data.title.indexOf("入") !== -1 || data.title.indexOf("出") !== -1){ - title = "出入库管理"; - ItemClass = 'second'; - }else if(data.title.indexOf("申请提交") !== -1){ - title = "申请提交"; - ItemClass = 'first' - }else{ - title = "仓库管理"; - ItemClass = 'third'; - } - let resultChild = '
' + + // 用于构造子菜单按钮 + function createChildMenuItem(data, result, title,classItem) { + if (result.indexOf("layui-collapse") === -1) { + // 如果没有面板 + let resultChild = '
' + '
' + '

' + title + '

' + '
'; - if (result.indexOf("layui-collapse") === -1) { - result += resultChild; - } - for (let i = 0; i < childList.length; i++) { - let childMenuList = createChildMenuList(childList[i], result); - result += childMenuList; - } - return result; - } else { - // 如果不存在子菜单 - - // 构造标签 - let childItem_out = ''; - return childItem_out + childItem_a + childItem_i + childItem_cite; + result += resultChild; } + // 构造标签 + let childItem_out = ''; + result += childItem_out + childItem_a + childItem_i + childItem_cite; + return result; + } $('body').on('click', '[data-refresh]', function () { diff --git a/target/classes/static/js/lay-module/layuimini/miniTab.js b/target/classes/static/js/lay-module/layuimini/miniTab.js index 6b6c1ddd..7bdea19b 100644 --- a/target/classes/static/js/lay-module/layuimini/miniTab.js +++ b/target/classes/static/js/lay-module/layuimini/miniTab.js @@ -10,7 +10,7 @@ layui.define(["element", "layer", "jquery"], function (exports) { $ = layui.$; // 用于储存移动端底部导航映射 - let mobileFooterHash = {'/userAuthorityMenus':"功能","/message":"消息","/userInfo":"我的"}; + let mobileFooterHash = {"/welcome":"首页",'/userAuthorityMenus':"功能","/message":"消息","/userInfo":"我的"}; var miniTab = {