mirror of https://gitee.com/y_project/RuoYi.git
代码生成支持选择上级菜单
parent
44df8c4c8b
commit
b7aa9f3f42
|
@ -25,6 +25,12 @@ public class GenConstants
|
||||||
/** 树名称字段 */
|
/** 树名称字段 */
|
||||||
public static final String TREE_NAME = "treeName";
|
public static final String TREE_NAME = "treeName";
|
||||||
|
|
||||||
|
/** 上级菜单ID字段 */
|
||||||
|
public static final String PARENT_MENU_ID = "parentMenuId";
|
||||||
|
|
||||||
|
/** 上级菜单名称字段 */
|
||||||
|
public static final String PARENT_MENU_NAME = "parentMenuName";
|
||||||
|
|
||||||
/** 数据库字符串类型 */
|
/** 数据库字符串类型 */
|
||||||
public static final String[] COLUMNTYPE_STR = { "char", "varchar", "narchar", "varchar2", "tinytext", "text",
|
public static final String[] COLUMNTYPE_STR = { "char", "varchar", "narchar", "varchar2", "tinytext", "text",
|
||||||
"mediumtext", "longtext" };
|
"mediumtext", "longtext" };
|
||||||
|
|
|
@ -83,6 +83,12 @@ public class GenTable extends BaseEntity
|
||||||
/** 树名称字段 */
|
/** 树名称字段 */
|
||||||
private String treeName;
|
private String treeName;
|
||||||
|
|
||||||
|
/** 上级菜单ID字段 */
|
||||||
|
private String parentMenuId;
|
||||||
|
|
||||||
|
/** 上级菜单名称字段 */
|
||||||
|
private String parentMenuName;
|
||||||
|
|
||||||
public Long getTableId()
|
public Long getTableId()
|
||||||
{
|
{
|
||||||
return tableId;
|
return tableId;
|
||||||
|
@ -273,6 +279,26 @@ public class GenTable extends BaseEntity
|
||||||
this.treeName = treeName;
|
this.treeName = treeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getParentMenuId()
|
||||||
|
{
|
||||||
|
return parentMenuId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParentMenuId(String parentMenuId)
|
||||||
|
{
|
||||||
|
this.parentMenuId = parentMenuId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getParentMenuName()
|
||||||
|
{
|
||||||
|
return parentMenuName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParentMenuName(String parentMenuName)
|
||||||
|
{
|
||||||
|
this.parentMenuName = parentMenuName;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isSub()
|
public boolean isSub()
|
||||||
{
|
{
|
||||||
return isSub(this.tplCategory);
|
return isSub(this.tplCategory);
|
||||||
|
|
|
@ -391,9 +391,14 @@ public class GenTableServiceImpl implements IGenTableService
|
||||||
String treeCode = paramsObj.getString(GenConstants.TREE_CODE);
|
String treeCode = paramsObj.getString(GenConstants.TREE_CODE);
|
||||||
String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE);
|
String treeParentCode = paramsObj.getString(GenConstants.TREE_PARENT_CODE);
|
||||||
String treeName = paramsObj.getString(GenConstants.TREE_NAME);
|
String treeName = paramsObj.getString(GenConstants.TREE_NAME);
|
||||||
|
String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID);
|
||||||
|
String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME);
|
||||||
|
|
||||||
genTable.setTreeCode(treeCode);
|
genTable.setTreeCode(treeCode);
|
||||||
genTable.setTreeParentCode(treeParentCode);
|
genTable.setTreeParentCode(treeParentCode);
|
||||||
genTable.setTreeName(treeName);
|
genTable.setTreeName(treeName);
|
||||||
|
genTable.setParentMenuId(parentMenuId);
|
||||||
|
genTable.setParentMenuName(parentMenuName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -23,6 +23,9 @@ public class VelocityUtils
|
||||||
/** html空间路径 */
|
/** html空间路径 */
|
||||||
private static final String TEMPLATES_PATH = "main/resources/templates";
|
private static final String TEMPLATES_PATH = "main/resources/templates";
|
||||||
|
|
||||||
|
/** 默认上级菜单,系统工具 */
|
||||||
|
private static final String DEFAULT_PARENT_MENU_ID = "3";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置模板变量信息
|
* 设置模板变量信息
|
||||||
*
|
*
|
||||||
|
@ -53,6 +56,7 @@ public class VelocityUtils
|
||||||
velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName));
|
velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName));
|
||||||
velocityContext.put("columns", genTable.getColumns());
|
velocityContext.put("columns", genTable.getColumns());
|
||||||
velocityContext.put("table", genTable);
|
velocityContext.put("table", genTable);
|
||||||
|
setMenuVelocityContext(velocityContext, genTable);
|
||||||
if (GenConstants.TPL_TREE.equals(tplCategory))
|
if (GenConstants.TPL_TREE.equals(tplCategory))
|
||||||
{
|
{
|
||||||
setTreeVelocityContext(velocityContext, genTable);
|
setTreeVelocityContext(velocityContext, genTable);
|
||||||
|
@ -64,6 +68,14 @@ public class VelocityUtils
|
||||||
return velocityContext;
|
return velocityContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setMenuVelocityContext(VelocityContext context, GenTable genTable)
|
||||||
|
{
|
||||||
|
String options = genTable.getOptions();
|
||||||
|
JSONObject paramsObj = JSONObject.parseObject(options);
|
||||||
|
String parentMenuId = getParentMenuId(paramsObj);
|
||||||
|
context.put("parentMenuId", parentMenuId);
|
||||||
|
}
|
||||||
|
|
||||||
public static void setTreeVelocityContext(VelocityContext context, GenTable genTable)
|
public static void setTreeVelocityContext(VelocityContext context, GenTable genTable)
|
||||||
{
|
{
|
||||||
String options = genTable.getOptions();
|
String options = genTable.getOptions();
|
||||||
|
@ -283,6 +295,21 @@ public class VelocityUtils
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取上级菜单ID字段
|
||||||
|
*
|
||||||
|
* @param options 生成其他选项
|
||||||
|
* @return 上级菜单ID字段
|
||||||
|
*/
|
||||||
|
public static String getParentMenuId(JSONObject paramsObj)
|
||||||
|
{
|
||||||
|
if (paramsObj.containsKey(GenConstants.PARENT_MENU_ID))
|
||||||
|
{
|
||||||
|
return paramsObj.getString(GenConstants.PARENT_MENU_ID);
|
||||||
|
}
|
||||||
|
return DEFAULT_PARENT_MENU_ID;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取树编码
|
* 获取树编码
|
||||||
*
|
*
|
||||||
|
@ -295,7 +322,7 @@ public class VelocityUtils
|
||||||
{
|
{
|
||||||
return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE));
|
return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE));
|
||||||
}
|
}
|
||||||
return "";
|
return StringUtils.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -310,7 +337,7 @@ public class VelocityUtils
|
||||||
{
|
{
|
||||||
return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE));
|
return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE));
|
||||||
}
|
}
|
||||||
return "";
|
return StringUtils.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -325,7 +352,7 @@ public class VelocityUtils
|
||||||
{
|
{
|
||||||
return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME));
|
return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME));
|
||||||
}
|
}
|
||||||
return "";
|
return StringUtils.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -133,6 +133,18 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4 control-label is-required" title="分配到指定菜单下,例如 系统管理">上级菜单:<i class="fa fa-question-circle-o"></i></label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input id="parentMenuId" name="params[parentMenuId]" type="hidden" th:value="*{parentMenuId}"/>
|
||||||
|
<div class="input-group">
|
||||||
|
<input id="parentMenuName" name="params[parentMenuName]" class="form-control" type="text" onclick="selectMenuTree()" placeholder="请选择上级菜单" maxlength="50" th:value="*{parentMenuName}" required>
|
||||||
|
<span class="input-group-addon"><i class="fa fa-search"></i></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden" id="subInfo">
|
<div class="hidden" id="subInfo">
|
||||||
<h4 class="form-header h4">关联信息</h4>
|
<h4 class="form-header h4">关联信息</h4>
|
||||||
|
@ -463,18 +475,39 @@
|
||||||
title: '选择字典类型',
|
title: '选择字典类型',
|
||||||
width: "380",
|
width: "380",
|
||||||
url: url,
|
url: url,
|
||||||
callBack: doSubmit
|
callBack: doDictSubmit
|
||||||
};
|
};
|
||||||
$.modal.openOptions(options);
|
$.modal.openOptions(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
function doSubmit(index, layero){
|
// 选择菜单处理函数
|
||||||
|
function selectMenuTree() {
|
||||||
|
var parentMenuId = $("#parentMenuId").val();
|
||||||
|
var menuId = parentMenuId > 0 ? parentMenuId : 1;
|
||||||
|
var url = ctx + "system/menu/selectMenuTree/" + menuId;
|
||||||
|
var options = {
|
||||||
|
title: '菜单选择',
|
||||||
|
width: "380",
|
||||||
|
url: url,
|
||||||
|
callBack: doMenuSubmit
|
||||||
|
};
|
||||||
|
$.modal.openOptions(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
function doDictSubmit(index, layero){
|
||||||
var body = layer.getChildFrame('body', index);
|
var body = layer.getChildFrame('body', index);
|
||||||
var columnId = body.find('#columnId').val();
|
var columnId = body.find('#columnId').val();
|
||||||
var dictType = body.find('#dictType').val();
|
var dictType = body.find('#dictType').val();
|
||||||
layer.close(index);
|
layer.close(index);
|
||||||
$("#columns_dict_" + columnId).val(dictType);
|
$("#columns_dict_" + columnId).val(dictType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function doMenuSubmit(index, layero){
|
||||||
|
var body = layer.getChildFrame('body', index);
|
||||||
|
$("#parentMenuId").val(body.find('#treeId').val());
|
||||||
|
$("#parentMenuName").val(body.find('#treeName').val());
|
||||||
|
layer.close(index);
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -60,13 +60,19 @@
|
||||||
field: 'tableName',
|
field: 'tableName',
|
||||||
title: '表名称',
|
title: '表名称',
|
||||||
width: '20%',
|
width: '20%',
|
||||||
sortable: true
|
sortable: true,
|
||||||
|
formatter: function(value, row, index) {
|
||||||
|
return $.table.tooltip(value);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'tableComment',
|
field: 'tableComment',
|
||||||
title: '表描述',
|
title: '表描述',
|
||||||
width: '20%',
|
width: '20%',
|
||||||
sortable: true
|
sortable: true,
|
||||||
|
formatter: function(value, row, index) {
|
||||||
|
return $.table.tooltip(value);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'createTime',
|
field: 'createTime',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
-- 菜单 SQL
|
-- 菜单 SQL
|
||||||
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
|
insert into sys_menu (menu_name, parent_id, order_num, url, menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||||
values('${functionName}', '3', '1', '/${moduleName}/${businessName}', 'C', '0', '${permissionPrefix}:view', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '${functionName}菜单');
|
values('${functionName}', '${parentMenuId}', '1', '/${moduleName}/${businessName}', 'C', '0', '${permissionPrefix}:view', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '${functionName}菜单');
|
||||||
|
|
||||||
-- 按钮父菜单ID
|
-- 按钮父菜单ID
|
||||||
SELECT @parentId := LAST_INSERT_ID();
|
SELECT @parentId := LAST_INSERT_ID();
|
||||||
|
|
Loading…
Reference in New Issue