main
tamguo 7 years ago
parent de20d2b661
commit c6d894ec1e

@ -0,0 +1,12 @@
package com.tamguo.modules.sys.dao;
import java.util.List;
import com.tamguo.config.dao.SuperMapper;
import com.tamguo.modules.sys.model.SysMenuEntity;
import com.tamguo.modules.sys.model.condition.SysMenuCondition;
public interface SysMenuMapper extends SuperMapper<SysMenuEntity>{
List<SysMenuEntity> listData(SysMenuCondition condition);
}

@ -0,0 +1,252 @@
package com.tamguo.modules.sys.model;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableName;
/**
* The persistent class for the sys_menu database table.
*
*/
@TableName(value="sys_menu")
public class SysMenuEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String menuCode;
private String createBy;
private Date createDate;
private String isShow;
private String menuColor;
private String menuHref;
private String menuIcon;
private String menuName;
private String menuTarget;
private String menuType;
private String moduleCodes;
private String parentCode;
private String parentCodes;
private String permission;
private String remarks;
private String status;
private String sysCode;
private String treeLeaf;
private BigDecimal treeLevel;
private String treeNames;
private BigDecimal treeSort;
private String treeSorts;
private String updateBy;
private Date updateDate;
private BigDecimal weight;
public SysMenuEntity() {
}
public String getMenuCode() {
return this.menuCode;
}
public void setMenuCode(String menuCode) {
this.menuCode = menuCode;
}
public String getCreateBy() {
return this.createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Date getCreateDate() {
return this.createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public String getIsShow() {
return this.isShow;
}
public void setIsShow(String isShow) {
this.isShow = isShow;
}
public String getMenuColor() {
return this.menuColor;
}
public void setMenuColor(String menuColor) {
this.menuColor = menuColor;
}
public String getMenuHref() {
return this.menuHref;
}
public void setMenuHref(String menuHref) {
this.menuHref = menuHref;
}
public String getMenuIcon() {
return this.menuIcon;
}
public void setMenuIcon(String menuIcon) {
this.menuIcon = menuIcon;
}
public String getMenuName() {
return this.menuName;
}
public void setMenuName(String menuName) {
this.menuName = menuName;
}
public String getMenuTarget() {
return this.menuTarget;
}
public void setMenuTarget(String menuTarget) {
this.menuTarget = menuTarget;
}
public String getMenuType() {
return this.menuType;
}
public void setMenuType(String menuType) {
this.menuType = menuType;
}
public String getModuleCodes() {
return this.moduleCodes;
}
public void setModuleCodes(String moduleCodes) {
this.moduleCodes = moduleCodes;
}
public String getParentCode() {
return this.parentCode;
}
public void setParentCode(String parentCode) {
this.parentCode = parentCode;
}
public String getParentCodes() {
return this.parentCodes;
}
public void setParentCodes(String parentCodes) {
this.parentCodes = parentCodes;
}
public String getPermission() {
return this.permission;
}
public void setPermission(String permission) {
this.permission = permission;
}
public String getRemarks() {
return this.remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getStatus() {
return this.status;
}
public void setStatus(String status) {
this.status = status;
}
public String getSysCode() {
return this.sysCode;
}
public void setSysCode(String sysCode) {
this.sysCode = sysCode;
}
public String getTreeLeaf() {
return this.treeLeaf;
}
public void setTreeLeaf(String treeLeaf) {
this.treeLeaf = treeLeaf;
}
public BigDecimal getTreeLevel() {
return this.treeLevel;
}
public void setTreeLevel(BigDecimal treeLevel) {
this.treeLevel = treeLevel;
}
public String getTreeNames() {
return this.treeNames;
}
public void setTreeNames(String treeNames) {
this.treeNames = treeNames;
}
public BigDecimal getTreeSort() {
return this.treeSort;
}
public void setTreeSort(BigDecimal treeSort) {
this.treeSort = treeSort;
}
public String getTreeSorts() {
return this.treeSorts;
}
public void setTreeSorts(String treeSorts) {
this.treeSorts = treeSorts;
}
public String getUpdateBy() {
return this.updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public BigDecimal getWeight() {
return this.weight;
}
public void setWeight(BigDecimal weight) {
this.weight = weight;
}
// grid tree
public String getId() {
return getMenuCode();
}
}

@ -0,0 +1,21 @@
package com.tamguo.modules.sys.model.condition;
public class SysMenuCondition {
private Integer pageNo;
private Integer pageSize;
public Integer getPageNo() {
return pageNo;
}
public void setPageNo(Integer pageNo) {
this.pageNo = pageNo;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
}

@ -0,0 +1,13 @@
package com.tamguo.modules.sys.service;
import java.util.List;
import com.baomidou.mybatisplus.service.IService;
import com.tamguo.modules.sys.model.SysMenuEntity;
import com.tamguo.modules.sys.model.condition.SysMenuCondition;
public interface ISysMenuService extends IService<SysMenuEntity>{
List<SysMenuEntity> listData(SysMenuCondition condition);
}

@ -0,0 +1,24 @@
package com.tamguo.modules.sys.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.tamguo.modules.sys.dao.SysMenuMapper;
import com.tamguo.modules.sys.model.SysMenuEntity;
import com.tamguo.modules.sys.model.condition.SysMenuCondition;
import com.tamguo.modules.sys.service.ISysMenuService;
@Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity> implements ISysMenuService {
@Autowired
SysMenuMapper sysMenuMapper;
@Override
public List<SysMenuEntity> listData(SysMenuCondition condition) {
return sysMenuMapper.listData(condition);
}
}

@ -0,0 +1,34 @@
package com.tamguo.modules.sys.web;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.tamguo.modules.sys.model.SysMenuEntity;
import com.tamguo.modules.sys.model.condition.SysMenuCondition;
import com.tamguo.modules.sys.service.ISysMenuService;
@Controller
@RequestMapping(path="sys/menu")
public class SysMenuController {
private final String MENU_INDEX_PAGE = "modules/sys/menu/index";
@Autowired
private ISysMenuService iSysMenuService;
@RequestMapping(path="index")
public String index() {
return MENU_INDEX_PAGE;
}
@RequestMapping(path="listData",method=RequestMethod.POST)
@ResponseBody
public List<SysMenuEntity> listData(SysMenuCondition condition) {
List<SysMenuEntity> list = iSysMenuService.listData(condition);
return list;
}
}

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tamguo.modules.sys.dao.SysMenuMapper">
<select id="listData" resultType="SysMenuEntity">
SELECT
m.menu_code,
m.parent_code,
m.parent_codes,
m.tree_sort,
m.tree_sorts,
m.tree_leaf,
m.tree_level,
m.tree_names,
m.menu_name,
m.menu_type,
m.menu_href,
m.menu_target,
m.menu_icon,
m.menu_color,
m.permission,
m.weight,
m.is_show,
m.sys_code,
m.module_codes,
m.`status`,
m.create_by,
m.update_by,
m.update_date,
m.remarks
FROM
sys_menu m
</select>
</mapper>

@ -34,7 +34,7 @@
</li>
<li class="treeview"><a title="系统设置" href="javascript:" data-href="blank" class="addTabPage"><i class="fa fa-fw icon-settings"></i> <span>系统设置</span> <span class="pull-right-container"><i class="fa fa-angle-left pull-right"></i></span></a>
<ul class="treeview-menu">
<li class="treeview"><a title="菜单管理" href="javascript:" data-href="/js/a/sys/menu/list" class="addTabPage"><i class="fa fa-fw icon-book-open"></i> <span>菜单管理</span></a></li>
<li class="treeview"><a title="菜单管理" href="javascript:" data-href="sys/menu/index" class="addTabPage"><i class="fa fa-fw icon-book-open"></i> <span>菜单管理</span></a></li>
<li class="treeview"><a title="行政区划" href="javascript:" data-href="/js/a/sys/area/list" class="addTabPage"><i class="fa fa-fw icon-map"></i> <span>行政区划</span></a></li>
</ul>
</li>

@ -0,0 +1,138 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta content="webkit" name="renderer"/><meta http-equiv="X-UA-Compatible"
content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta http-equiv="Cache-Control"
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>菜单管理 - JeeSite Demo</title>
<script th:src="${setting.domain + 'global.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-1.12.4.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-migrate-1.4.1.min.js'}"></script>
<!--[if lt IE 9]><script src="/js/static/common/h5fix.min.js"></script><![endif]-->
<link rel="stylesheet" th:href="${setting.domain + 'fonts/font-icons.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'bootstrap/css/bootstrap.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'select2/4.0/select2.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'icheck/1.0/minimal/grey.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'jqGrid/4.7/css/ui.jqgrid.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'adminlte/css/AdminLTE.min.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/jeesite.css'}">
<link rel="stylesheet" th:href="${setting.domain + 'common/common.css'}">
</head><body class="hold-transition ">
<div class="wrapper"><div class="main-content">
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-book-open"></i> 菜单管理(
</div>
<div class="box-title dropdown input-inline">
<div class="dropdown-toggle" data-hover="dropdown">
主导航菜单<b class="caret"></b>
</div>
<ul class="dropdown-menu">
<!-- --> <li><a href="/js/a/sys/menu/list?sysCode=default"> <i
class="fa fa-angle-right"></i> 主导航菜单
</a></li>
<!-- --> </ul>
</div>
<div class="box-title"></div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>
<a href="#" class="btn btn-default" id="btnRefreshTree" title="刷新"><i class="fa fa-refresh"></i> 刷新</a>
<a href="#" class="btn btn-default" id="btnExpandTreeNode" title="展开一级"><i class="fa fa-angle-double-down"></i> 展开</a>
<a href="#" class="btn btn-default" id="btnCollapseTreeNode" title="折叠全部"><i class="fa fa-angle-double-up"></i> 折叠</a>
<a href="/js/a/sys/menu/form?sysCode=default" class="btn btn-default btnTool" title="新增菜单"><i class="fa fa-plus"></i> 新增</a>
<a href="#" class="btn btn-default" id="btnUpdateSort" title="保存排序"><i class="fa fa-sort-amount-asc"></i> 保存排序</a>
</div>
</div>
<div class="box-body">
<form id="searchForm" th:action="${setting.domain + 'sys/menu/listData'}" method="post" class="form-inline hide">
<input type="hidden" id="moduleCodes" name="moduleCodes" value="" class="isReset"/>
<input type="hidden" id="sysCode" name="sysCode" value="default"/>
<div class="form-group">
<label class="control-label">菜单名称:</label>
<div class="control-inline">
<input type="text" id="menuNameOrig" name="menuNameOrig" value="" maxlength="50" class="form-control"/>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-sm">查询</button>
<button type="reset" class="btn btn-default btn-sm">重置</button>
</div>
</form>
<form id="dataGridForm" action="/js/a/sys/menu/updateTreeSort" method="post">
<table id="dataGrid"></table>
</form>
</div>
</div>
</div>
</div>
<a id="scroll-up" href="#" class="btn btn-sm"><i class="fa fa-angle-double-up"></i></a>
<script th:src="${setting.domain + 'bootstrap/js/bootstrap.min.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/select2.js'}"></script>
<script th:src="${setting.domain + 'select2/4.0/i18n/zh_CN.js'}"></script>
<script th:src="${setting.domain + 'layer/3.1/layer.js'}"></script>
<script th:src="${setting.domain + 'my97/WdatePicker.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/jquery.jqGrid.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/jquery.jqGrid.extend.js'}"></script>
<script th:src="${setting.domain + 'jqGrid/4.7/js/i18n/zh_CN.js'}"></script>
<script th:src="${setting.domain + 'common/jeesite.js'}"></script>
<script th:src="${setting.domain + 'common/i18n/jeesite_zh_CN.js'}"></script>
<script th:src="${setting.domain + 'common/common.js'}"></script>
<script>
// 初始化DataGrid对象
$('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'菜单名称', name:'menuName', width:200, formatter: function(val, obj, row, act){
return '<i class="'+row.menuIcon+'" style="color:'+row.color+'"></i> <a href="/js/a/sys/menu/form?menuCode='
+row.id+'" class="btnList" style="color:'+row.color+'" data-title="编辑菜单">'+val+'</a>';
}},
{header:'归属模块', name:'moduleCodes', width:100, align:"center", formatter: function(val, obj, row, act){
return '<a href="javascript:" title="按模块查询" onclick="$(\'#moduleCodes\').val($(this).text());$(\'#dataGrid\').dataGrid(\'refreshTree\',1);">'+val+'</a>';
}},
{header:'链接', name:'menuHref', width:150},
{header:'排序', name:'treeSort', width:63, align:"center", formatter: function(val, obj, row, act){
var html = [];
html.push('<input type="hidden" name="ids" value="'+row.id+'"/>');
html.push('<input name="sorts" type="text" value="'+row.treeSort+'" style="width:50px;height:19px;margin:0;padding:0;text-align:center;border:1px solid #ddd">');
return html.join('');
}},
{header:'类型', name:'menuType', width:50, fixed:true, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel([{"id":"1019065441892847616","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":30,"treeNames":"菜单","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000030,","dictCode":"1019065441892847616","description":"","cssStyle":"","cssClass":"","dictLabelOrig":"菜单","dictValue":"1","dictType":"sys_menu_type","isSys":"1","dictLabel":"菜单","isRoot":true,"isTreeLeaf":true,"parentCode":"0"},{"id":"1019065442081591296","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":40,"treeNames":"权限","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000040,","dictCode":"1019065442081591296","description":"","cssStyle":"color:#c243d6;","cssClass":"","dictLabelOrig":"权限","dictValue":"2","dictType":"sys_menu_type","isSys":"1","dictLabel":"权限","isRoot":true,"isTreeLeaf":true,"parentCode":"0"}], val, '未知', true);
}},
{header:'可见', name:'isShow', width:50, fixed:true, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel([{"id":"1019065440366120960","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":30,"treeNames":"显示","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000030,","dictCode":"1019065440366120960","description":"","cssStyle":"","cssClass":"","dictLabelOrig":"显示","dictValue":"1","dictType":"sys_show_hide","isSys":"1","dictLabel":"显示","isRoot":true,"isTreeLeaf":true,"parentCode":"0"},{"id":"1019065440512921600","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":40,"treeNames":"隐藏","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000040,","dictCode":"1019065440512921600","description":"","cssStyle":"color:#aaa;","cssClass":"","dictLabelOrig":"隐藏","dictValue":"0","dictType":"sys_show_hide","isSys":"1","dictLabel":"隐藏","isRoot":true,"isTreeLeaf":true,"parentCode":"0"}], val, '未知', true);
}},
{header:'权限标识', name:'permission', width:150},
{header:'权重', name:'weight', width:90, fixed:true, align:"center", formatter: function(val, obj, row, act){
return js.getDictLabel([{"id":"1019065442236780544","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":30,"treeNames":"默认权重","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000030,","dictCode":"1019065442236780544","description":"","cssStyle":"","cssClass":"","dictLabelOrig":"默认权重","dictValue":"20","dictType":"sys_menu_weight","isSys":"1","dictLabel":"默认权重","isRoot":true,"isTreeLeaf":true,"parentCode":"0"},{"id":"1019065442404552704","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":40,"treeNames":"二级管理员","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000040,","dictCode":"1019065442404552704","description":"","cssStyle":"","cssClass":"","dictLabelOrig":"二级管理员","dictValue":"40","dictType":"sys_menu_weight","isSys":"1","dictLabel":"二级管理员","isRoot":true,"isTreeLeaf":true,"parentCode":"0"},{"id":"1019065442559741952","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":50,"treeNames":"系统管理员","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000050,","dictCode":"1019065442559741952","description":"","cssStyle":"","cssClass":"","dictLabelOrig":"系统管理员","dictValue":"60","dictType":"sys_menu_weight","isSys":"1","dictLabel":"系统管理员","isRoot":true,"isTreeLeaf":true,"parentCode":"0"},{"id":"1019065442698153984","updateDate":"2018-07-17 11:45","updateBy":"system","createBy":"system","status":"0","createDate":"2018-07-17 11:45","treeSort":60,"treeNames":"超级管理员","parentCodes":"0,","treeLeaf":"1","treeLevel":0,"treeSorts":"0000000060,","dictCode":"1019065442698153984","description":"","cssStyle":"color:#c243d6;","cssClass":"","dictLabelOrig":"超级管理员","dictValue":"80","dictType":"sys_menu_weight","isSys":"1","dictLabel":"超级管理员","isRoot":true,"isTreeLeaf":true,"parentCode":"0"}], val, '未知', true);
}},
{header:'操作', name:'actions', width:100, sortable:false, formatter: function(val, obj, row, act){
var actions = [];
actions.push('<a href="/js/a/sys/menu/form?menuCode='+row.id+'" class="btnList" title="编辑菜单"><i class="fa fa-pencil"></i></a>&nbsp;');
actions.push('<a href="/js/a/sys/menu/delete?menuCode='+row.id+'" class="btnList" title="删除菜单" data-confirm="确认要删除该菜单及所有子菜单吗?" data-deltreenode="'+row.id+'"><i class="fa fa-trash-o"></i></a>&nbsp;');
actions.push('<a href="/js/a/sys/menu/form?parentCode='+row.id+'&sysCode='+row.sysCode+'" class="btnList" title="新增下级菜单"><i class="fa fa-plus-square"></i></a>&nbsp;');
//actions.push('<a href="#" title="只看本节点" onclick="$(\'#dataGrid\').dataGrid(\'refreshTree\', 1, \''+row.id+'\')"><i class="fa fa-arrow-circle-down"></i></a>&nbsp;');
return actions.join('');
}}
],
treeGrid: true, // 启用树结构表格
defaultExpandLevel: 0, // 默认展开的层次
expandNodeClearPostData: 'menuNameOrig', // 展开节点清理请求参数数据(一般设置查询条件的字段属性,否则在查询后,不能展开子节点数据)
// 加载成功后执行事件
ajaxSuccess: function(data){
}
});
// 绑定更新排序按钮
$('#btnUpdateSort').click(function(){
js.ajaxSubmitForm($("#dataGridForm"), function(data){
if(data.result == Global.TRUE){
$('#btnRefreshTree').click();
}
js.showMessage(data.message);
}, "json");
});
</script>
Loading…
Cancel
Save