Browse Source

添加功能页面

lwx_dev
erdanergou 3 years ago
parent
commit
e51557c822
  1. 135
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  2. 142
      src/main/java/com/dreamchaser/depository_manage/controller/UserController.java
  3. 15
      src/main/resources/static/css/layuimini.css
  4. 67
      src/main/resources/static/css/public.css
  5. 2
      src/main/resources/static/lib/layui-v2.6.3/css/layui.css
  6. 14
      src/main/resources/templates/index_mobile.html
  7. 124
      src/main/resources/templates/pages/self/userAuthorityMenus.html
  8. 72
      src/test/java/com/dreamchaser/depository_manage/TestForOther.java
  9. 15
      target/classes/static/css/layuimini.css
  10. 67
      target/classes/static/css/public.css
  11. 2
      target/classes/static/lib/layui-v2.6.3/css/layui.css
  12. 14
      target/classes/templates/index_mobile.html

135
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -49,8 +49,7 @@ public class PageController {
@Autowired @Autowired
private MaterialService materialService; private MaterialService materialService;
@Autowired
private AccessAddressService accessAddressService;
@Autowired @Autowired
private CompanyService companyService; private CompanyService companyService;
@ -168,132 +167,7 @@ public class PageController {
return mv; return mv;
} }
/**
* 获取所有菜单
*
* @param uid
* @return
*/
@RequestMapping(value = "/index/menus", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> index_menus(@RequestParam("uid") String uid,
HttpServletRequest request,
HttpServletResponse response) {
String token = request.getHeader("user-token");
if (token == null) {
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<AccesstoAddress> accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList);
// 获取顶级菜单
List<AccesstoAddress> menusByNoParent = new ArrayList<>();
for (int i = 0; i < accessToAddressByList.size(); i++) {
if (accessToAddressByList.get(i).getMenuparent() == 0) {
menusByNoParent.add(accessToAddressByList.get(i));
}
}
//定义首页
Map<String, Object> home = new HashMap<>();
Map<String, Object> homeInfo = new HashMap<>();
homeInfo.put("title", "首页");
homeInfo.put("href", "/welcome");
home.put("homeInfo", homeInfo);
//定义logo
Map<String, Object> logo = new HashMap<>();
Map<String, Object> logoInfo = new HashMap<>();
logoInfo.put("title", "");
logoInfo.put("image", "/static/images/logo_back.ico");
logoInfo.put("href", "");
logo.put("logoInfo", logoInfo);
//定义菜单
List<Object> allMenus = new ArrayList<>();
for (int i = 0; i < menusByNoParent.size(); i++) {
// 获取所有二级菜单
AccesstoAddress menusparent = menusByNoParent.get(i);
Map<String, Object> menu = MenuConstructor(menusparent);
List<AccesstoAddress> accessstoAddressByParent = childAddress(accessToAddressByList, menusparent);
List<Object> menu_childs = new ArrayList<>();
for (int j = 0; j < accessstoAddressByParent.size(); j++) {
// 二级菜单下的菜单
AccesstoAddress address = accessstoAddressByParent.get(j);
Map<String, Object> menu_child = MenuConstructor(address);
List<Object> menu_childs1 = new ArrayList<>();
if (address.getIschild() == 1) {
List<AccesstoAddress> accessstoAddressByParent1 = childAddress(accessToAddressByList, address);
for (int k = 0; k < accessstoAddressByParent1.size(); k++) {
AccesstoAddress accesstoAddress = accessstoAddressByParent1.get(k);
Map<String, Object> menu_child1 = MenuConstructor(accesstoAddress);
menu_childs1.add(((HashMap<String, Object>) menu_child1).clone());
menu_child1.clear();
}
}
menu_child.put("child", ((ArrayList<Object>) menu_childs1).clone());
menu_childs.add(((HashMap<String, Object>) menu_child).clone());
menu_child.clear();
}
menu.put("child", menu_childs);
allMenus.add(menu);
}
Map<String, Object> menuInfo = new HashMap<>();
menuInfo.put("menuInfo", allMenus);
menuInfo.put("homeInfo", homeInfo);
menuInfo.put("logoInfo", logoInfo);
return menuInfo;
}
/**
* 根据父级菜单获取子菜单
*
* @param accessToAddressByList
* @param address
* @return
*/
public List<AccesstoAddress> childAddress(List<AccesstoAddress> accessToAddressByList, AccesstoAddress address) {
List<AccesstoAddress> accessstoAddressByParent = new ArrayList<>();
for (int k = 0; k < accessToAddressByList.size(); k++) {
AccesstoAddress accesstoAddress = accessToAddressByList.get(k);
if (accesstoAddress.getMenuparent() == address.getId()) {
accessstoAddressByParent.add(accesstoAddress);
}
}
return accessstoAddressByParent;
}
/**
* 用于菜单构造
*
* @param address
* @return
*/
public Map<String, Object> MenuConstructor(AccesstoAddress address) {
Map<String, Object> menu = new HashMap<>();
menu.put("title", address.getName());
menu.put("href", address.getUrl());
menu.put("icon", address.getIcon());
menu.put("target", address.getTarget());
return menu;
}
@GetMapping("/register") @GetMapping("/register")
@ -3273,6 +3147,13 @@ public class PageController {
return list; return list;
} }
@GetMapping("/userAuthorityMenus")
public ModelAndView userAuthorityMenus(){
ModelAndView mv = new ModelAndView();
mv.setViewName("pages/self/userAuthorityMenus");
return mv;
}
} }

142
src/main/java/com/dreamchaser/depository_manage/controller/UserController.java

@ -3,6 +3,7 @@ package com.dreamchaser.depository_manage.controller;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dreamchaser.depository_manage.config.PortConfig; import com.dreamchaser.depository_manage.config.PortConfig;
import com.dreamchaser.depository_manage.entity.AccesstoAddress;
import com.dreamchaser.depository_manage.entity.Depository; import com.dreamchaser.depository_manage.entity.Depository;
import com.dreamchaser.depository_manage.entity.User; import com.dreamchaser.depository_manage.entity.User;
import com.dreamchaser.depository_manage.entity.UserByPort; import com.dreamchaser.depository_manage.entity.UserByPort;
@ -15,6 +16,7 @@ import com.dreamchaser.depository_manage.security.bean.VerificationCode;
import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool; import com.dreamchaser.depository_manage.security.pool.AuthenticationTokenPool;
import com.dreamchaser.depository_manage.security.pool.UserKeyAndTokenPool; import com.dreamchaser.depository_manage.security.pool.UserKeyAndTokenPool;
import com.dreamchaser.depository_manage.security.pool.VerificationCodePool; import com.dreamchaser.depository_manage.security.pool.VerificationCodePool;
import com.dreamchaser.depository_manage.service.AccessAddressService;
import com.dreamchaser.depository_manage.service.DepositoryService; import com.dreamchaser.depository_manage.service.DepositoryService;
import com.dreamchaser.depository_manage.service.RoleService; import com.dreamchaser.depository_manage.service.RoleService;
import com.dreamchaser.depository_manage.service.UserService; import com.dreamchaser.depository_manage.service.UserService;
@ -29,10 +31,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
import java.time.Instant; import java.time.Instant;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.dreamchaser.depository_manage.utils.CrudUtil.deleteHandle; import static com.dreamchaser.depository_manage.utils.CrudUtil.deleteHandle;
@ -60,6 +59,10 @@ public class UserController {
@Autowired @Autowired
private RedisTemplate<String, String> redisTemplate; private RedisTemplate<String, String> redisTemplate;
@Autowired
private AccessAddressService accessAddressService;
/** /**
* 注册用户通常为手机或者邮箱注册 * 注册用户通常为手机或者邮箱注册
* *
@ -588,4 +591,135 @@ public class UserController {
} }
/**
* 获取所有菜单
* @param
* @return
*/
@RequestMapping(value = "/index/menus", method = RequestMethod.GET)
public Map<String, Object> index_menus(HttpServletRequest request,
HttpServletResponse response) {
String token = request.getHeader("user-token");
if (token == null) {
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<AccesstoAddress> accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList);
// 获取顶级菜单
List<AccesstoAddress> menusByNoParent = new ArrayList<>();
for (AccesstoAddress value : accessToAddressByList) {
if (value.getMenuparent() == 0) {
menusByNoParent.add(value);
}
}
//定义首页
Map<String, Object> home = new HashMap<>();
Map<String, Object> homeInfo = new HashMap<>();
homeInfo.put("title", "首页");
homeInfo.put("href", "/welcome");
home.put("homeInfo", homeInfo);
//定义logo
Map<String, Object> logo = new HashMap<>();
Map<String, Object> logoInfo = new HashMap<>();
logoInfo.put("title", "");
logoInfo.put("image", "/static/images/logo_back.ico");
logoInfo.put("href", "");
logo.put("logoInfo", logoInfo);
//定义菜单
List<Object> allMenus = new ArrayList<>();
for (AccesstoAddress menusparent : menusByNoParent) {
// 获取所有二级菜单
Map<String, Object> menu = MenuConstructor(menusparent);
List<AccesstoAddress> accessstoAddressByParent = childAddress(accessToAddressByList, menusparent);
List<Object> menu_childs = new ArrayList<>();
for (AccesstoAddress address : accessstoAddressByParent) {
// 二级菜单下的菜单
Map<String, Object> menu_child = MenuConstructor(address);
List<Object> menu_childs1 = new ArrayList<>();
if (address.getIschild() == 1) {
List<AccesstoAddress> accessstoAddressByParent1 = childAddress(accessToAddressByList, address);
for (AccesstoAddress accesstoAddress : accessstoAddressByParent1) {
Map<String, Object> menu_child1 = MenuConstructor(accesstoAddress);
menu_childs1.add(((HashMap<String, Object>) menu_child1).clone());
menu_child1.clear();
}
}
menu_child.put("child", ((ArrayList<Object>) menu_childs1).clone());
menu_childs.add(((HashMap<String, Object>) menu_child).clone());
menu_child.clear();
}
menu.put("child", menu_childs);
allMenus.add(menu);
}
Map<String, Object> menuInfo = new HashMap<>();
menuInfo.put("menuInfo", allMenus);
menuInfo.put("homeInfo", homeInfo);
menuInfo.put("logoInfo", logoInfo);
return menuInfo;
}
/**
* 根据父级菜单获取子菜单
*
* @param accessToAddressByList
* @param address
* @return
*/
public List<AccesstoAddress> childAddress(List<AccesstoAddress> accessToAddressByList, AccesstoAddress address) {
List<AccesstoAddress> accessstoAddressByParent = new ArrayList<>();
for (AccesstoAddress accesstoAddress : accessToAddressByList) {
if (Integer.compare(accesstoAddress.getMenuparent(), address.getId()) == 0) {
accessstoAddressByParent.add(accesstoAddress);
}
}
return accessstoAddressByParent;
}
/**
* 用于菜单构造
*
* @param address
* @return
*/
public Map<String, Object> MenuConstructor(AccesstoAddress address) {
Map<String, Object> menu = new HashMap<>();
menu.put("title", address.getName());
menu.put("href", address.getUrl());
menu.put("icon", address.getIcon());
menu.put("target", address.getTarget());
return menu;
}
/**
* 用于移动端用户获取其可见功能
* @param request
* @return
*/
@GetMapping("/getUserAuthorization")
public RestResponse getUserAuthorization(HttpServletRequest request){
return null;
}
} }

15
src/main/resources/static/css/layuimini.css

@ -923,21 +923,34 @@
.layuimini-footer-content { .layuimini-footer-content {
z-index: 997; z-index: 997;
text-align: center; text-align: center;
width: 100%;
border-top: 1px solid #ebebeb;
background-color: #ffffff;
position: fixed;
bottom: 0;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
justify-content: space-around;
} }
.layuimini-footer-content-right { .layuimini-footer-content-right {
width: 35%; width: 35%;
display: inline-block; display: inline-block;
text-align: center;
} }
.layuimini-footer-content-center { .layuimini-footer-content-center {
width: 20%; width: 30%;
display: inline-block; display: inline-block;
text-align: center;
} }
.layuimini-footer-content-left { .layuimini-footer-content-left {
width: 35%; width: 35%;
display: inline-block; display: inline-block;
text-align: center;
} }
.layuimini-footer-content-item { .layuimini-footer-content-item {

67
src/main/resources/static/css/public.css

@ -25,7 +25,7 @@ body {
} }
.layuimini-form > .layui-form-item > .layui-form-label { .layuimini-form > .layui-form-item > .layui-form-label {
width: 120px ; width: 120px;
} }
.layuimini-form > .layui-form-item > .layui-input-block { .layuimini-form > .layui-form-item > .layui-input-block {
@ -84,11 +84,11 @@ body {
border-top-right-radius: 4px; border-top-right-radius: 4px;
} }
.my-card-context{ .my-card-context {
margin-left: 15px; margin-left: 15px;
font-size: 18px; font-size: 18px;
margin-top: 5px; margin-top: 5px;
font-weight:normal; font-weight: normal;
} }
.my-time { .my-time {
@ -96,7 +96,7 @@ body {
margin-bottom: 20px; margin-bottom: 20px;
} }
.my-info{ .my-info {
margin-top: 10px; margin-top: 10px;
margin-bottom: 20px; margin-bottom: 20px;
} }
@ -107,7 +107,6 @@ body {
} }
.waterfall-demo { .waterfall-demo {
position: relative; position: relative;
opacity: 0; opacity: 0;
@ -149,7 +148,7 @@ body {
} }
.layui-return-top{ .layui-return-top {
position: fixed; position: fixed;
z-index: 100000; z-index: 100000;
bottom: 15px; bottom: 15px;
@ -165,7 +164,6 @@ body {
} }
.layuimini-qiuck-module a i { .layuimini-qiuck-module a i {
display: inline-block; display: inline-block;
width: 100%; width: 100%;
@ -227,8 +225,61 @@ body {
color: #999; color: #999;
} }
.userInfo_icon{ .userInfo_icon {
height: 200px; height: 200px;
width: 200px; width: 200px;
border-radius: 50%; border-radius: 50%;
} }
.layuimini-authority {
margin-top: 20px;
}
.layuimini-authority-content {
margin-top: 10px;
}
.layuimini-authority-content-item {
width: 21%;
float: left;
margin-left: 2%;
margin-right: 2%;
}
.layuimini-authority-content:before, .layuimini-authority-content:after {
content: "";
display: block;
clear: both;
}
.layuimini-authority-content-item a i {
display: inline-block;
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
border-radius: 2px;
font-size: 30px;
transition: all .3s;
-webkit-transition: all .3s;
background-color:#ffffff;
}
.layuimini-authority-content-item a cite {
position: relative;
top: 2px;
left: 5px;
display: block;
color: #666;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 14px;
}
.layuimini-authority-title{
font-weight: bolder;
font-size: larger;
}

2
src/main/resources/static/lib/layui-v2.6.3/css/layui.css

@ -2137,7 +2137,7 @@ a cite {
color: #333 color: #333
} }
.layui-btn-customize{ .layui-btn-customize {
background-color: #ffffff; background-color: #ffffff;
color: #000000; color: #000000;
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;

14
src/main/resources/templates/index_mobile.html

@ -115,15 +115,15 @@
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a href="javascript:;" layuimini-content-href="/welcome" data-title="首页" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/welcome" data-title="首页" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-home fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px;"></i> <i class="fa fa-home fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px; "></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px;">首页</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size:13px;line-height: 13px">首页</cite>
</a> </a>
</div> </div>
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a href="javascript:;" layuimini-content-href="/welcome" data-title="功能" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/userAuthorityMenus" data-title="功能" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-minus-square-o fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px;"></i> <i class="fa fa-minus-square-o fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px;">功能</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size:13px;line-height: 13px">功能</cite>
</a> </a>
</div> </div>
</div> </div>
@ -132,7 +132,7 @@
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a id="scan"> <a id="scan">
<i class="fa-qrcode fa-fw fa-lg fa" style=" position: relative; top: -5px; left: 20px;"></i> <i class="fa-qrcode fa-fw fa-lg fa" style=" position: relative; top: -5px; left: 20px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -22px;font-size: 13px">库存查看</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -22px;font-size:13px;line-height: 13px">库存查看</cite>
</a> </a>
</div> </div>
</div> </div>
@ -142,14 +142,14 @@
<a href="javascript:;" layuimini-content-href="/message" data-title="消息" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/message" data-title="消息" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-comment-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i> <i class="fa fa-comment-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size: 14px">消息</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size:13px;line-height: 13px">消息</cite>
</a> </a>
</div> </div>
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a href="javascript:;" layuimini-content-href="/userInfo" data-title="我的" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/userInfo" data-title="我的" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-user-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i> <i class="fa fa-user-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px; font-size: 14px">我的</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px; font-size:13px;line-height: 13px">我的</cite>
</a> </a>
</div> </div>
</div> </div>

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

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>用户功能</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<style>
.layui-colla-content:before,.layui-colla-content:after{
content: "";
display: block;
clear: both;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layuimini-authority" id="layuimini-authority">
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
layui.use(['layer', 'miniTab', 'echarts','element'], function () {
var $ = layui.jquery,
layer = layui.layer,
element = layui.element,
miniTab = layui.miniTab;
miniTab.listen();
$(function () {
$.ajax({
url: "/index/menus",
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"> ' +
'<div class="layui-colla-item">' +
'<h2 class="layui-colla-title">' + menuInfoElement.title + '</h2>' +
'<div class="layui-colla-content" >';
resultChild += menuItem;
resultChild += '</div></div></div>';
menuItem = resultChild;
}
$("#layuimini-authority").append(menuItem);
element.render();
}
}
}
})
});
// 用于构造菜单列表
function createMenuList(data) {
// 获取子菜单
let childList = data.child;
// 如果存在子菜单
if (childList.length > 0) {
let result = '';
// 循环子菜单
for (let i = 0; i < childList.length; i++) {
let childListElement = childList[i];
if (childListElement.href.indexOf("my_")!== -1) {
continue;
}
result += createChildMenuList(childListElement);
}
return result;
}
}
// 用于构造子菜单列表
function createChildMenuList(data) {
// 获取当前子菜单
let childList = data.child;
// 定义返回结果
let result;
// 如果存在子菜单
if (childList !== undefined && childList !== null && childList.length > 0) {
let resultChild = '<div class="layui-collapse"> ' +
'<div class="layui-colla-item">' +
'<h2 class="layui-colla-title">' + data.title + '</h2>' +
'<div class="layui-colla-content" >';
for (let i = 0; i < childList.length; i++) {
let childMenuList = createChildMenuList(childList[i]);
resultChild += childMenuList;
}
resultChild += '</div></div></div>';
return resultChild;
} 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_i = '<i class="' + data.icon + '"></i>';
let childItem_cite = ' <cite>' + data.title + '</cite></a></div>';
result = childItem_out + childItem_a + childItem_i + childItem_cite;
}
return result;
}
});
</script>
</body>
</html>

72
src/test/java/com/dreamchaser/depository_manage/TestForOther.java

@ -10,6 +10,7 @@ import com.alibaba.excel.write.metadata.fill.FillWrapper;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPObject; import com.alibaba.fastjson.JSONPObject;
import com.dreamchaser.depository_manage.config.PortConfig;
import com.dreamchaser.depository_manage.config.QyWxConfig; import com.dreamchaser.depository_manage.config.QyWxConfig;
import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.mapper.DepositoryMapper; import com.dreamchaser.depository_manage.mapper.DepositoryMapper;
@ -23,9 +24,11 @@ import com.dreamchaser.depository_manage.pojo.callBackXml.approvalCallBackXml.Ap
import com.dreamchaser.depository_manage.service.*; import com.dreamchaser.depository_manage.service.*;
import com.dreamchaser.depository_manage.service.impl.QyWxOperationService; import com.dreamchaser.depository_manage.service.impl.QyWxOperationService;
import com.dreamchaser.depository_manage.utils.CreateQrCodeUtil; import com.dreamchaser.depository_manage.utils.CreateQrCodeUtil;
import com.dreamchaser.depository_manage.utils.HttpUtils;
import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil;
import com.dreamchaser.depository_manage.utils.ZipMultiFileUtil; import com.dreamchaser.depository_manage.utils.ZipMultiFileUtil;
import javafx.scene.paint.Material; import javafx.scene.paint.Material;
import org.apache.http.protocol.HTTP;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -49,7 +52,7 @@ public class TestForOther {
@Autowired @Autowired
DepositoryRecordService depositoryRecordService; AccessAddressService accessAddressService;
/** /**
@ -59,21 +62,60 @@ public class TestForOther {
@Test @Test
public void run() { public void run() {
// ApprovalInfo_Details approvalInfo = new ApprovalInfo_Details(); UserByPort userToken = LinkInterfaceUtil.FindUserById(78, null);
// ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver(); //定义链接地址
// approver.setUserId("PangFuZhen"); String url = PortConfig.external_url_6666 + "/system_authorizing/obtain_authorization";
// approvalInfo.setApprover(approver); Map<String, Object> param = new HashMap<>();
// depositoryRecordService.reviewByQyWxApprovalOut("1",approvalInfo,"599076aa8e931b27af7935eb69db4243","2","202303290034", false,2); param.put("system", "cangchu");
// depositoryRecordService.reviewByQyWxApprovalIn("[1]",approvalInfo,"460f46eaefb46bb0c171029f62e2cea6","2","202303220009"); String jsonString = JSONObject.toJSONString(param);
UserByPort userByPort = LinkInterfaceUtil.FindUserById(76, null); JSONObject paramObject = JSONObject.parseObject(jsonString);
// List<String> s = excelService.writeExcelForPrint(2, 4,userByPort); String post = null;
// GetMonthStartAndEnd(); 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<AccesstoAddress> accessToAddressByList = accessAddressService.findAccessToAddressByList(stringList);
}
/**
* 根据父级菜单获取子菜单
*
* @param accessToAddressByList
* @param address
* @return
*/
public List<AccesstoAddress> childAddress(List<AccesstoAddress> accessToAddressByList, AccesstoAddress address) {
List<AccesstoAddress> accessstoAddressByParent = new ArrayList<>();
for (AccesstoAddress accesstoAddress : accessToAddressByList) {
if (Integer.compare(accesstoAddress.getMenuparent(), address.getId()) == 0) {
accessstoAddressByParent.add(accesstoAddress);
}
}
return accessstoAddressByParent;
}
// List<UserByPort> departmentHeadByUser = LinkInterfaceUtil.findDepartmentHeadByUser(userByPort); /**
// System.out.println(departmentHeadByUser); * 用于菜单构造
System.out.println(userByPort); *
List<String> a = new ArrayList<>(); * @param address
List<String> list = Collections.synchronizedList(a); * @return
*/
public Map<String, Object> MenuConstructor(AccesstoAddress address) {
Map<String, Object> menu = new HashMap<>();
menu.put("title", address.getName());
menu.put("href", address.getUrl());
menu.put("icon", address.getIcon());
menu.put("target", address.getTarget());
return menu;
} }

15
target/classes/static/css/layuimini.css

@ -923,21 +923,34 @@
.layuimini-footer-content { .layuimini-footer-content {
z-index: 997; z-index: 997;
text-align: center; text-align: center;
width: 100%;
border-top: 1px solid #ebebeb;
background-color: #ffffff;
position: fixed;
bottom: 0;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
justify-content: space-around;
} }
.layuimini-footer-content-right { .layuimini-footer-content-right {
width: 35%; width: 35%;
display: inline-block; display: inline-block;
text-align: center;
} }
.layuimini-footer-content-center { .layuimini-footer-content-center {
width: 20%; width: 30%;
display: inline-block; display: inline-block;
text-align: center;
} }
.layuimini-footer-content-left { .layuimini-footer-content-left {
width: 35%; width: 35%;
display: inline-block; display: inline-block;
text-align: center;
} }
.layuimini-footer-content-item { .layuimini-footer-content-item {

67
target/classes/static/css/public.css

@ -25,7 +25,7 @@ body {
} }
.layuimini-form > .layui-form-item > .layui-form-label { .layuimini-form > .layui-form-item > .layui-form-label {
width: 120px ; width: 120px;
} }
.layuimini-form > .layui-form-item > .layui-input-block { .layuimini-form > .layui-form-item > .layui-input-block {
@ -84,11 +84,11 @@ body {
border-top-right-radius: 4px; border-top-right-radius: 4px;
} }
.my-card-context{ .my-card-context {
margin-left: 15px; margin-left: 15px;
font-size: 18px; font-size: 18px;
margin-top: 5px; margin-top: 5px;
font-weight:normal; font-weight: normal;
} }
.my-time { .my-time {
@ -96,7 +96,7 @@ body {
margin-bottom: 20px; margin-bottom: 20px;
} }
.my-info{ .my-info {
margin-top: 10px; margin-top: 10px;
margin-bottom: 20px; margin-bottom: 20px;
} }
@ -107,7 +107,6 @@ body {
} }
.waterfall-demo { .waterfall-demo {
position: relative; position: relative;
opacity: 0; opacity: 0;
@ -149,7 +148,7 @@ body {
} }
.layui-return-top{ .layui-return-top {
position: fixed; position: fixed;
z-index: 100000; z-index: 100000;
bottom: 15px; bottom: 15px;
@ -165,7 +164,6 @@ body {
} }
.layuimini-qiuck-module a i { .layuimini-qiuck-module a i {
display: inline-block; display: inline-block;
width: 100%; width: 100%;
@ -227,8 +225,61 @@ body {
color: #999; color: #999;
} }
.userInfo_icon{ .userInfo_icon {
height: 200px; height: 200px;
width: 200px; width: 200px;
border-radius: 50%; border-radius: 50%;
} }
.layuimini-authority {
margin-top: 20px;
}
.layuimini-authority-content {
margin-top: 10px;
}
.layuimini-authority-content-item {
width: 21%;
float: left;
margin-left: 2%;
margin-right: 2%;
}
.layuimini-authority-content:before, .layuimini-authority-content:after {
content: "";
display: block;
clear: both;
}
.layuimini-authority-content-item a i {
display: inline-block;
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
border-radius: 2px;
font-size: 30px;
transition: all .3s;
-webkit-transition: all .3s;
background-color:#ffffff;
}
.layuimini-authority-content-item a cite {
position: relative;
top: 2px;
left: 5px;
display: block;
color: #666;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 14px;
}
.layuimini-authority-title{
font-weight: bolder;
font-size: larger;
}

2
target/classes/static/lib/layui-v2.6.3/css/layui.css

@ -2137,7 +2137,7 @@ a cite {
color: #333 color: #333
} }
.layui-btn-customize{ .layui-btn-customize {
background-color: #ffffff; background-color: #ffffff;
color: #000000; color: #000000;
border: 1px solid #d2d2d2; border: 1px solid #d2d2d2;

14
target/classes/templates/index_mobile.html

@ -115,15 +115,15 @@
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a href="javascript:;" layuimini-content-href="/welcome" data-title="首页" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/welcome" data-title="首页" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-home fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px;"></i> <i class="fa fa-home fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px; "></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px;">首页</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size:13px;line-height: 13px">首页</cite>
</a> </a>
</div> </div>
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a href="javascript:;" layuimini-content-href="/welcome" data-title="功能" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/userAuthorityMenus" data-title="功能" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-minus-square-o fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px;"></i> <i class="fa fa-minus-square-o fa-lg fa-fw" style=" position: relative; top: -5px; left: 15px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px;">功能</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size:13px;line-height: 13px">功能</cite>
</a> </a>
</div> </div>
</div> </div>
@ -132,7 +132,7 @@
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a id="scan"> <a id="scan">
<i class="fa-qrcode fa-fw fa-lg fa" style=" position: relative; top: -5px; left: 20px;"></i> <i class="fa-qrcode fa-fw fa-lg fa" style=" position: relative; top: -5px; left: 20px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -22px;font-size: 13px">库存查看</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -22px;font-size:13px;line-height: 13px">库存查看</cite>
</a> </a>
</div> </div>
</div> </div>
@ -142,14 +142,14 @@
<a href="javascript:;" layuimini-content-href="/message" data-title="消息" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/message" data-title="消息" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-comment-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i> <i class="fa fa-comment-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size: 14px">消息</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px;font-size:13px;line-height: 13px">消息</cite>
</a> </a>
</div> </div>
<div class="layuimini-footer-content-item"> <div class="layuimini-footer-content-item">
<a href="javascript:;" layuimini-content-href="/userInfo" data-title="我的" style="display: inline-block" footer="1" <a href="javascript:;" layuimini-content-href="/userInfo" data-title="我的" style="display: inline-block" footer="1"
data-icon="fa fa-window-maximize"> data-icon="fa fa-window-maximize">
<i class="fa fa-user-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i> <i class="fa fa-user-o fa-lg fa-fw" style=" position: relative; top: -8px; left: 15px;"></i>
<span style=" display: inline-block; position: relative; top: 10px;left: -15px; font-size: 14px">我的</span> <cite style=" display: inline-block; position: relative; top: 10px;left: -15px; font-size:13px;line-height: 13px">我的</cite>
</a> </a>
</div> </div>
</div> </div>

Loading…
Cancel
Save