提交 3295b209 编写于 作者: Skyeye云's avatar Skyeye云

列表添加查询机制,添加创世菜单完成

上级 6c9dd562
......@@ -56,5 +56,17 @@ public class Constants {
*/
public static final String SYS_USER_LOCK_STATE_ISUNLOCK = "0";//未锁定
public static final String SYS_USER_LOCK_STATE_ISLOCK = "1";//锁定
/**
* 菜单类型
*/
public static final String SYS_MENU_TYPE_IS_IFRAME = "iframe";
public static final String SYS_MENU_TYPE_IS_HTML = "html";
/**
* 菜单链接打开类型,父菜单默认为1.1:打开iframe,2:打开html。
*/
public static final String SYS_MENU_OPEN_TYPE_IS_IFRAME = "1";
public static final String SYS_MENU_OPEN_TYPE_IS_HTML = "2";
}
......@@ -9,4 +9,6 @@ public interface SysEveMenuDao {
public List<Map<String, Object>> querySysMenuList(Map<String, Object> map, PageBounds pageBounds) throws Exception;
public void insertSysMenuMation(Map<String, Object> map) throws Exception;
}
......@@ -7,4 +7,6 @@ public interface SysEveMenuService {
public void querySysMenuList(InputObject inputObject, OutputObject outputObject) throws Exception;
public void insertSysMenuMation(InputObject inputObject, OutputObject outputObject) throws Exception;
}
......@@ -10,8 +10,10 @@ import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.skyeye.authority.dao.SysEveMenuDao;
import com.skyeye.authority.service.SysEveMenuService;
import com.skyeye.common.constans.Constants;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.ToolUtil;
@Service
public class SysEveMenuServiceImpl implements SysEveMenuService{
......@@ -39,6 +41,40 @@ public class SysEveMenuServiceImpl implements SysEveMenuService{
outputObject.setBeans(beans);
outputObject.settotal(total);
}
/**
*
* @Title: insertSysMenuMation
* @Description: 添加菜单
* @param @param inputObject
* @param @param outputObject
* @param @throws Exception 参数
* @return void 返回类型
* @throws
*/
@Override
public void insertSysMenuMation(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> map = inputObject.getParams();
if(Constants.SYS_MENU_TYPE_IS_IFRAME.equals(map.get("menuType").toString())){//iframe
map.put("openType", Constants.SYS_MENU_OPEN_TYPE_IS_IFRAME);//1:打开iframe
}else if(Constants.SYS_MENU_TYPE_IS_HTML.equals(map.get("menuType").toString())){//html
map.put("openType", Constants.SYS_MENU_OPEN_TYPE_IS_HTML);//2:打开html
}else{
outputObject.setreturnMessage("菜单类型错误。");
return;
}
if("0".equals(map.get("parentId").toString())){
map.put("menuLevel", 0);
}else{
String[] str = map.get("parentId").toString().split(",");
map.put("menuLevel", str.length);
map.put("parentId", str[str.length - 1]);
}
map.put("id", ToolUtil.getSurFaceId());
map.put("createTime", ToolUtil.getTimeAndToString());
map.put("createId", "0dc9dd4cd4d446ae9455215fe753c44e");
sysEveMenuDao.insertSysMenuMation(map);
}
......
......@@ -31,4 +31,20 @@ public class SysEveMenuController {
sysEveMenuService.querySysMenuList(inputObject, outputObject);
}
/**
*
* @Title: insertSysMenuMation
* @Description: 添加菜单
* @param @param inputObject
* @param @param outputObject
* @param @throws Exception 参数
* @return void 返回类型
* @throws
*/
@RequestMapping("/post/SysEveMenuController/insertSysMenuMation")
@ResponseBody
public void insertSysMenuMation(InputObject inputObject, OutputObject outputObject) throws Exception{
sysEveMenuService.insertSysMenuMation(inputObject, outputObject);
}
}
......@@ -19,10 +19,19 @@
LEFT JOIN sys_eve_user b ON a.creater = a.id
WHERE 1=1
<if test="menuName != '' and menuName != null">
a.menu_name like '%${menuName}%'
AND a.menu_name LIKE '%${menuName}%'
</if>
<if test="menuUrl != '' and menuUrl != null">
AND a.menu_url LIKE '%${menuUrl}%'
</if>
ORDER BY a.create_time DESC
</select>
<insert id="insertSysMenuMation" parameterType="java.util.Map">
INSERT into sys_eve_menu
(id, menu_name, title_name, menu_icon, menu_url, menu_type, menu_sys_type, menu_parent_id, menu_level, open_type, creater, create_time)
VALUES
(#{id}, #{menuName}, #{titleName}, #{menuIcon}, #{menuUrl}, #{menuType}, #{menuSysType}, #{parentId}, #{menuLevel}, #{openType}, #{createId}, #{createTime})
</insert>
</mapper>
\ No newline at end of file
......@@ -10,17 +10,19 @@
a.user_name userName,
a.user_photo userPhoto,
a.user_idcard userIdCard,
CASE WHEN a.user_sex = '0' THEN '保密' WHEN a.user_sex = '1' THEN '男' WHEN a.user_sex = '2' THEN '女' ELSE '保密' END sexName,
a.user_sex sexName,
a.user_lock userLock,
(SELECT c.user_name FROM sys_eve_user c WHERE a.creater = c.id) createName,
group_concat(distinct b.name) roleName,
(SELECT group_concat(distinct b.name) FROM sys_eve_role b WHERE INSTR(CONCAT(',', a.role_id, ','), CONCAT(',', b.id, ','))) roleName,
CONVERT(a.create_time, char) createTime
FROM
sys_eve_user a
LEFT JOIN sys_eve_role b ON INSTR(CONCAT(',', a.role_id, ','), CONCAT(',', b.id, ','))
WHERE 1 = 1
<if test="userCode != '' and userCode != null">
AND a.user_code like '%${userCode}%'
</if>
<if test="userName != '' and userName != null">
a.user_name like '%${userName}%'
AND a.user_name like '%${userName}%'
</if>
ORDER BY a.create_time DESC
</select>
......
......@@ -4,6 +4,7 @@
<url id="sys001" path="/post/SysEveUserController/querySysUserList" val="获取用户列表">
<property id="limit" name="limit" ref="required" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required" var="分页参数,第几页"/>
<property id="userCode" name="userCode" ref="" var="用户账号"/>
<property id="userName" name="userName" ref="" var="用户名称"/>
</url>
<url id="sys002" path="/post/SysEveUserController/editSysUserLockStateToLockById" val="锁定账号">
......@@ -26,6 +27,16 @@
<property id="limit" name="limit" ref="required" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required" var="分页参数,第几页"/>
<property id="menuName" name="menuName" ref="" var="菜单名称"/>
<property id="menuUrl" name="menuUrl" ref="" var="菜单链接"/>
</url>
<url id="sys007" path="/post/SysEveMenuController/insertSysMenuMation" val="添加菜单">
<property id="menuName" name="menuName" ref="required" var="菜单名称"/>
<property id="titleName" name="titleName" ref="required" var="标题名称" />
<property id="menuIcon" name="menuIcon" ref="required" var="菜单logo"/>
<property id="menuUrl" name="menuUrl" ref="required" var="菜单链接"/>
<property id="menuType" name="menuType" ref="required" var="菜单类型"/>
<property id="menuSysType" name="menuSysType" ref="required,num" var="是否为系统菜单"/>
<property id="parentId" name="parentId" ref="required" var="菜单父ID"/>
</url>
</controller>
\ No newline at end of file
......@@ -7,27 +7,56 @@ layui.config({
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$;
form.render();
//菜单级别变化事件
form.on('radio(menuLevel)', function (data) {
var val = data.value;
if(val == '1'){//创世菜单
$("#parentIdBox").addClass("layui-hide");
}else if(val == '2'){
$("#parentIdBox").removeClass("layui-hide");
}else{
top.winui.window.msg('状态值错误', {icon: 2,time: 2000});
}
});
//系统菜单同步
form.on('switch(isNecessary)', function (data) {
//同步开关值
$(data.elem).val(data.elem.checked);
});
form.on('submit(formAddMenu)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
//执行上传操作
$("#showForm").find('.fileUploadContent').each(function(i, dom) {
var id = $(dom).attr('id');
if(id != undefined && id == 'userPhoto') {
var opt = uploadTools.getOpt(id);
if(uploadTools.getFileNumber(opt) > 0) {
uploadTools.uploadFile(opt);
}
}
});
var params = {
rowId: parent.rowId,
userName: $("#userName").val(),
userIdCard: $("#userIdCard").val(),
userSex: $("input[name='userSex']:checked").val(),
userPhoto: "11"
menuName: $("#menuName").val(),
titleName: $("#menuTitle").val(),
menuIcon: $("#menuIcon").val(),
menuUrl: $("#menuUrl").val(),
menuType: data.field.menuType
};
AjaxPostUtil.request({url:reqBasePath + "sys005", params:params, type:'json', callback:function(json){
if(data.field.menuLevel == '1'){//创世菜单
params.parentId = '0';
}else if(data.field.menuLevel == '2'){//子菜单
if(isNull($("#parentIdOne").val())){//父菜单为空
top.winui.window.msg("请至少选择一级父菜单", {icon: 2,time: 2000});
return false;
}else{
params.parentId = "";
}
}else{
top.winui.window.msg('状态值错误', {icon: 2,time: 2000});
}
if($("#menuSysType").val()){
params.menuSysType = '1';
}else{
params.menuSysType = '2';
}
AjaxPostUtil.request({url:reqBasePath + "sys007", params:params, type:'json', callback:function(json){
if(json.returnCode == 0){
parent.layer.close(index);
parent.refreshCode = '0';
......@@ -38,9 +67,14 @@ layui.config({
}
return false;
});
//初始化加载隐藏创世菜单
$("#parentIdBox").addClass("layui-hide");
//取消
$("body").on("click", "#cancle", function(){
parent.layer.close(index);
});
});
});
\ No newline at end of file
......@@ -3,18 +3,20 @@ var rowId = "";
layui.config({
base: basePath,
version: skyeyeVersion
}).define(['table', 'jquery', 'winui'], function (exports) {
}).define(['table', 'jquery', 'winui', 'form'], function (exports) {
winui.renderColor();
var $ = layui.$,
form = layui.form,
table = layui.table;
//表格渲染
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: reqBasePath + 'sys006',
where:{menuName:""},
where:{menuName:$("#menuName").val(), menuUrl:$("#menuUrl").val()},
even:true, //隔行变色
page: true,
limits: [8, 16, 24, 32, 40, 48, 56],
......@@ -24,10 +26,16 @@ layui.config({
{ field: 'menuName', title: '菜单名称', width: 120 },
{ field: 'menuIcon', title: '图标码', width: 120 },
{ field: 'titleName', title: '标题名称', width: 120 },
{ field: 'menuLevel', title: '菜单级别', width: 120},
{ field: 'menuType', title: '菜单链接类型', width: 160 },
{ field: 'menuUrl', title: '系统菜单', width: 60 },
{ field: 'menuSysType', title: '系统菜单', width: 60, templet: function(d){
{ field: 'menuLevel', title: '菜单级别', width: 120, templet: function(d){
if(d.parentId == '0'){
return "创世菜单";
}else{
return "子菜单-->" + d.menuLevel + "级子菜单";
}
}},
{ field: 'menuType', title: '菜单类型', width: 100 },
{ field: 'menuUrl', title: '菜单链接', width: 100 },
{ field: 'menuSysType', title: '系统菜单', width: 100, templet: function(d){
if(d.menuSysType == 2){
return '';
}else if(d.menuSysType == 1){
......@@ -40,6 +48,7 @@ layui.config({
{ title: '操作', fixed: 'right', align: 'center', width: 120, toolbar: '#tableBar'}
]]
});
table.on('tool(messageTable)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值
......@@ -50,6 +59,16 @@ layui.config({
}
});
//搜索表单
form.render();
form.on('submit(formSearch)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
loadTable();
}
return false;
});
//删除
function del(data){
......@@ -65,7 +84,7 @@ layui.config({
callBack: function(refreshCode){
if (refreshCode == '0') {
top.winui.window.msg("操作成功", {icon: 1,time: 2000});
table.reload("messageTable", {userName:""});
loadTable();
} else if (refreshCode == '-9999') {
top.winui.window.msg("操作失败", {icon: 2,time: 2000});
}
......@@ -74,7 +93,7 @@ layui.config({
//刷新数据
$("body").on("click", "#reloadTable", function(){
table.reload("messageTable", {menuName:""});
loadTable();
});
//新增菜单
......@@ -86,12 +105,16 @@ layui.config({
callBack: function(refreshCode){
if (refreshCode == '0') {
top.winui.window.msg("操作成功", {icon: 1,time: 2000});
table.reload("messageTable", {menuName:""});
loadTable();
} else if (refreshCode == '-9999') {
top.winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
});
function loadTable(){
table.reload("messageTable", {where:{menuName:$("#menuName").val(), menuUrl:$("#menuUrl").val()}});
}
exports('sysevemenulist', {});
});
......@@ -3,18 +3,20 @@ var rowId = "";
layui.config({
base: basePath,
version: skyeyeVersion
}).define(['table', 'jquery', 'winui'], function (exports) {
}).define(['table', 'jquery', 'winui', 'form'], function (exports) {
winui.renderColor();
var $ = layui.$,
form = layui.form,
table = layui.table;
//表格渲染
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: reqBasePath + 'sys001',
where:{userName:""},
where:{userCode:$("#userCode").val(), userName:$("#userName").val()},
even:true, //隔行变色
page: true,
limits: [8, 16, 24, 32, 40, 48, 56],
......@@ -32,7 +34,17 @@ layui.config({
}
}},
{ field: 'userIdCard', title: '身份证', width: 160 },
{ field: 'sexName', title: '性别', width: 60 },
{ field: 'sexName', title: '性别', width: 60, templet: function(d){
if(d.sexName == '0'){
return "保密";
}else if(d.sexName == '1'){
return "";
}else if(d.sexName == '2'){
return "";
}else{
return "参数错误";
}
}},
{ field: 'userLock', title: '锁定', width: 60, templet: function(d){
if(d.userLock == 0){
return '';
......@@ -48,6 +60,7 @@ layui.config({
{ title: '操作', fixed: 'right', align: 'center', width: 120, toolbar: '#tableBar'}
]]
});
table.on('tool(messageTable)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值
......@@ -60,12 +73,22 @@ layui.config({
}
});
//搜索表单
form.render();
form.on('submit(formSearch)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
loadTable();
}
return false;
});
//锁定
function lock(data){
AjaxPostUtil.request({url:reqBasePath + "sys002", params:{rowId:data.id}, type:'json', callback:function(json){
if(json.returnCode == 0){
top.winui.window.msg("已成功锁定,该账号目前无法登录。", {icon: 1,time: 2000});
table.reload("messageTable", {});
loadTable();
}else{
top.winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
}
......@@ -77,7 +100,7 @@ layui.config({
AjaxPostUtil.request({url:reqBasePath + "sys003", params:{rowId:data.id}, type:'json', callback:function(json){
if(json.returnCode == 0){
top.winui.window.msg("账号恢复正常。", {icon: 1,time: 2000});
table.reload("messageTable", {});
loadTable();
}else{
top.winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
}
......@@ -94,7 +117,7 @@ layui.config({
callBack: function(refreshCode){
if (refreshCode == '0') {
top.winui.window.msg("操作成功", {icon: 1,time: 2000});
table.reload("messageTable", {userName:""});
loadTable();
} else if (refreshCode == '-9999') {
top.winui.window.msg("操作失败", {icon: 2,time: 2000});
}
......@@ -102,7 +125,12 @@ layui.config({
}
$("body").on("click", "#reloadTable", function(){
table.reload("messageTable", {userName:""});
loadTable();
});
function loadTable(){
table.reload("messageTable", {where:{userCode:$("#userCode").val(), userName:$("#userName").val()}});
}
exports('syseveuserlist', {});
});
......@@ -9,8 +9,76 @@
</head>
<body>
<div style="width:600px;margin:0 auto;padding-top:20px;">
<form class="layui-form" action="" id="showForm">
<form class="layui-form" action="" id="showForm" autocomplete="off">
<div class="layui-form-item">
<label class="layui-form-label">菜单名称</label>
<div class="layui-input-block">
<input type="text" id="menuName" name="menuName" win-verify="required" placeholder="请输入菜单名称" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">窗口标题</label>
<div class="layui-input-block">
<input type="text" id="menuTitle" name="menuTitle" win-verify="required" placeholder="请输入菜单名称" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单图标</label>
<div class="layui-input-block">
<input type="text" id="menuIcon" name="menuIcon" win-verify="required" placeholder="请输入图标src或者class" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单地址</label>
<div class="layui-input-block">
<input type="text" id="menuUrl" name="menuUrl" win-verify="required" placeholder="请输入菜单地址" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单级别</label>
<div class="layui-input-block winui-radio">
<input type="radio" name="menuLevel" value="1" title="创世菜单" lay-filter="menuLevel" checked/>
<input type="radio" name="menuLevel" value="2" title="子菜单" lay-filter="menuLevel" />
</div>
</div>
<div class="layui-form-item" id="parentIdBox">
<label class="layui-form-label">上级菜单</label>
<div class="layui-input-block">
<select id="parentIdOne" name="parentIdOne" >
<option value="0">请选择上级菜单</option>
<option value="1">&#x4E2A;&#x6027;&#x5316;</option>
<option value="3">&#x6253;&#x8D4F;&#x4F5C;&#x8005;</option>
<option value="4">&#x57FA;&#x672C;&#x8BF4;&#x660E;</option>
<option value="23">&#x7CFB;&#x7EDF;&#x8BBE;&#x7F6E;</option>
<option value="27">Font Awesome&#x56FE;&#x6807;&#x5C55;&#x793A;</option>
<option value="43">Font Awesome&#x7B2C;&#x4E09;&#x65B9;LOGO</option>
<option value="53">&#x81EA;&#x5B9A;&#x4E49;&#x56FE;&#x7247;&#x83DC;&#x5355;</option>
<option value="60">&#x7CFB;&#x7EDF;&#x65E5;&#x5FD7;</option>
<option value="62">&#x70B9;&#x8D5E;</option>
<option value="63">123</option>
<option value="66">&#x4F5C;&#x8005;&#x535A;&#x5BA2;</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单类型</label>
<div class="layui-input-block winui-radio">
<input type="radio" name="menuType" value="html" title="HTML" lay-filter="menuType" checked/>
<input type="radio" name="menuType" value="iframe" title="Iframe" lay-filter="menuType" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">系统菜单</label>
<div class="layui-input-block winui-switch">
<input id="menuSysType" name="menuSysType" lay-filter="isNecessary" type="checkbox" lay-skin="switch" lay-text="是|否" value="false" />
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="winui-btn" lay-submit lay-filter="formAddMenu">确定</button>
<button class="winui-btn" id="cancle">取消</button>
</div>
</div>
</form>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
......
......@@ -8,6 +8,27 @@
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div class="txtcenter" style="width:700px;margin:0 auto;padding-top:20px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">菜单名称</label>
<div class="layui-input-inline">
<input type="text" id="menuName" name="menuName" placeholder="请输入菜单名称" class="layui-input" />
</div>
<label class="layui-form-label">菜单链接</label>
<div class="layui-input-inline">
<input type="text" id="menuUrl" name="menuUrl" placeholder="请输入菜单链接" class="layui-input" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="margin:0;">
<button class="layui-btn" lay-submit lay-filter="formSearch">搜索</button>
</div>
</div>
</form>
</div>
<div class="winui-toolbar">
<div class="winui-tool">
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i>刷新数据</button>
......
......@@ -8,6 +8,27 @@
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div class="txtcenter" style="width:700px;margin:0 auto;padding-top:20px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">用户账号</label>
<div class="layui-input-inline">
<input type="text" id="userCode" name="userCode" placeholder="请输入用户账号" class="layui-input" />
</div>
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline">
<input type="text" id="userName" name="userName" placeholder="请输入用户名称" class="layui-input" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="margin:0;">
<button class="layui-btn" lay-submit lay-filter="formSearch">搜索</button>
</div>
</div>
</form>
</div>
<div class="winui-toolbar">
<div class="winui-tool">
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i>刷新数据</button>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册