Browse Source

重新修改功能页面

lwx_dev
erdanergou 3 years ago
parent
commit
1f76d11a9e
  1. 41
      src/main/java/com/dreamchaser/depository_manage/controller/UserController.java
  2. 30
      src/main/java/com/dreamchaser/depository_manage/utils/LinkInterfaceUtil.java
  3. 162
      src/main/resources/templates/pages/self/userAuthorityMenus.html
  4. 2
      target/classes/static/js/lay-module/layuimini/miniTab.js

41
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<String, Object> 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<String> stringList = JSONObject.parseArray(powerid.toJSONString(), String.class);
List<String> stringList = LinkInterfaceUtil.getUserAccessToAddresses(userToken);
List<AccesstoAddress> accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList);
// 获取顶级菜单
List<AccesstoAddress> 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;
String token = request.getHeader("user-token");
if (token == null) {
token = (String) request.getSession().getAttribute("userToken");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
// 获取当前用户可见的菜单id
List<String> stringList = LinkInterfaceUtil.getUserAccessToAddresses(userToken);
// 根据菜单id获取菜单信息
List<AccesstoAddress> accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList);
List<AccesstoAddress> result = new ArrayList<>();
for (AccesstoAddress ata:accessToAddressByList
) {
if(ata.getIschild() == 2){
result.add(ata);
}
}
return new RestResponse(result);
}

30
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<String> getUserAccessToAddresses(UserByPort userToken) {
//定义链接地址
String url = PortConfig.external_url_6666 + "/system_authorizing/obtain_authorization";
Map<String, Object> 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<String> stringList = JSONObject.parseArray(powerid.toJSONString(), String.class);
return stringList;
}
}

162
src/main/resources/templates/pages/self/userAuthorityMenus.html

@ -26,9 +26,11 @@
background-color: #efefef;
}
.first a i {
color: #993333;
}
.second a i {
color: #6699CC;
}
@ -42,8 +44,6 @@
}
</style>
<div class="layuimini-container">
<a id="refresh" href="javascript:" data-refresh="刷新"><i class="fa fa-refresh"></i></a>
@ -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 @@
'<h2 class="layui-colla-title">' + data.title + '</h2>' +
'<div class="layui-colla-content layui-show" >';
for (let i = 0; i < childList.length; i++) {
let childMenuList = createChildMenuList(childList[i]);
let childMenuList = createChildMenuItem(childList[i]);
resultChild += childMenuList;
}
resultChild += '</div></div></div>';
@ -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 = '<div class="layui-collapse fourthly"> ' +
'<div class="layui-colla-item">' +
'<h2 class="layui-colla-title">' + menuInfoElement.title + '</h2>' +
'<div class="layui-colla-content layui-show" >';
resultChild += menuItem;
resultChild += '</div></div></div>';
menuItem = resultChild;
}
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 = '';
// 设置添加</div>标志
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 === "申请提交") {
// 如果是申请提交,直接添加</div>并完成本次循环
result += createChildMenuList(childListElement, result);
result += '</div></div></div>';
continue;
}
if (childListElement.title.indexOf("入") !== -1 || childListElement.title.indexOf("出") !== -1) {
// 如果是出入库管理
tempItem = createChildMenuList(childListElement, tempItem);
// 暂时不需要添加结尾div
addEndDiv = false;
} else {
// 如果不是,根据刷新标志判断是否添加结尾div
addEndDiv = !flush;
}
if (addEndDiv) {
// 如果需要添加
if (tempItem !== "") {
// 如果暂存项目不为空
tempItem += '</div></div></div>';
}
// 将暂存结果添加到结果中
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 + '</div></div></div>');
}
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 (i === data.length - 1) {
tempItemForApplication += "</div></div></div>";
tempItemForAnalyse += "</div></div></div>";
tempItemForCreate += "</div></div></div>";
tempItemForSystem += "</div></div></div>";
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 = '<div class="layui-collapse '+ItemClass+'"> ' +
// 用于构造子菜单按钮
function createChildMenuItem(data, result, title,classItem) {
if (result.indexOf("layui-collapse") === -1) {
// 如果没有面板
let resultChild = '<div class="layui-collapse '+classItem+'"> ' +
'<div class="layui-colla-item">' +
'<h2 class="layui-colla-title">' + title + '</h2>' +
'<div class="layui-colla-content layui-show" >';
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 = '<div class="layuimini-authority-content-item layuimini-qiuck-module">';
let childItem_a = '<a href="javascript:;" layuimini-content-href="' + data.href + '" data-title="' + data.title + '" data-icon="' + data.icon + '">';
let childItem_a = '<a href="javascript:;" layuimini-content-href="' + data.url + '" data-title="' + data.name + '" data-icon="' + data.icon + '">';
let childItem_i = '<i class="' + data.icon + '"></i>';
let childItem_cite = ' <cite>' + data.title + '</cite></a></div>';
return childItem_out + childItem_a + childItem_i + childItem_cite;
}
let childItem_cite = ' <cite>' + data.name + '</cite></a></div>';
result += childItem_out + childItem_a + childItem_i + childItem_cite;
return result;
}
$('body').on('click', '[data-refresh]', function () {

2
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 = {

Loading…
Cancel
Save