Browse Source

1.添加用户和角色管理页面

1 1 day ago
parent
commit
762f62ce33
16 changed files with 1220 additions and 7 deletions
  1. 24 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/RoleViewController.java
  2. 1 1
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysRoleServiceController.java
  3. 1 1
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserRoleServiceController.java
  4. 1 1
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserServiceController.java
  5. 29 0
      imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/UserViewController.java
  6. 52 0
      imwork-windows/imwork-silos/src/main/resources/static/business/upms/role/allot.js
  7. 272 0
      imwork-windows/imwork-silos/src/main/resources/static/business/upms/role/list.js
  8. 41 0
      imwork-windows/imwork-silos/src/main/resources/static/business/upms/role/save.js
  9. 52 0
      imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/allot.js
  10. 45 0
      imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/edit.js
  11. 328 0
      imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/list.js
  12. 4 4
      imwork-windows/imwork-silos/src/main/resources/templates/main/index.html
  13. 61 0
      imwork-windows/imwork-silos/src/main/resources/templates/upms/role/list.html
  14. 59 0
      imwork-windows/imwork-silos/src/main/resources/templates/upms/role/update.html
  15. 161 0
      imwork-windows/imwork-silos/src/main/resources/templates/upms/user/edit.html
  16. 89 0
      imwork-windows/imwork-silos/src/main/resources/templates/upms/user/list.html

+ 24 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/RoleViewController.java

@@ -0,0 +1,24 @@
+package top.imwork.window.silos.controller.upms;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * Copyright (C), 2015-2025
+ * FileName: RoleViewController
+ * Author<作者姓名>:   stars
+ * CreateTime<创建时间>:   2025/12/9 16:54
+ * UpdateTime<修改时间>:   2025/12/9 16:54
+ * Description〈功能简述〉:
+ * History<历史描述>:
+ * Since<版本号>: 1.0.0
+ */
+@RequestMapping("/upms/role/")
+@Controller
+public class RoleViewController {
+    @GetMapping("/list.html")
+    public String list() {
+        return "/upms/role/list";
+    }
+}

+ 1 - 1
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysRoleServiceController.java

@@ -22,7 +22,7 @@ import top.imwork.window.silos.service.ISysRoleService;
  * date: 2025-12-09 16:29:22
  */
 @RestController
-@RequestMapping("/sysrole")
+@RequestMapping("/upms/sysrole")
 public class SysRoleServiceController extends BaseController {
 
     @Resource

+ 1 - 1
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserRoleServiceController.java

@@ -22,7 +22,7 @@ import top.imwork.window.silos.service.ISysUserRoleService;
  * date: 2025-12-09 16:29:22
  */
 @RestController
-@RequestMapping("/sysuserrole")
+@RequestMapping("/upms/sysuserrole")
 public class SysUserRoleServiceController extends BaseController {
 
     @Resource

+ 1 - 1
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserServiceController.java

@@ -22,7 +22,7 @@ import top.imwork.window.silos.service.ISysUserService;
  * date: 2025-12-09 16:29:22
  */
 @RestController
-@RequestMapping("/sysuser")
+@RequestMapping("/upms/sysuser")
 public class SysUserServiceController extends BaseController {
 
     @Resource

+ 29 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/UserViewController.java

@@ -0,0 +1,29 @@
+package top.imwork.window.silos.controller.upms;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * Copyright (C), 2015-2025
+ * FileName: UpmsViewController
+ * Author<作者姓名>:   stars
+ * CreateTime<创建时间>:   2025/12/9 16:52
+ * UpdateTime<修改时间>:   2025/12/9 16:52
+ * Description〈功能简述〉: upms视图控制器
+ * History<历史描述>:
+ * Since<版本号>: 1.0.0
+ */
+@RequestMapping("/upms/user/")
+@Controller
+public class UserViewController {
+    @GetMapping("/list.html")
+    public String list() {
+        return "/upms/user/list";
+    }
+
+    @GetMapping("/edit.html")
+    public String edit() {
+        return "/upms/user/edit";
+    }
+}

+ 52 - 0
imwork-windows/imwork-silos/src/main/resources/static/business/upms/role/allot.js

@@ -0,0 +1,52 @@
+layui.use(['form', 'layer'], function () {
+    var form = layui.form
+    layer = parent.layer === undefined ? layui.layer : top.layer,
+        $ = layui.jquery;
+
+    form.on("submit(save)", function (data) {
+        //弹出loading
+        var index = layer.msg('数据提交中,请稍候...', {
+            icon: 16,
+            shade: 0.8,
+            time:false //取消自动关闭
+        });
+        var ids = $("#ids").val();
+        var roleName = $("#roleName").val();
+        var zTreeOjb = $.fn.zTree.getZTreeObj("permissionTree");
+        var checkedNodes = zTreeObj.getCheckedNodes();
+        //alert(ids+"=="+ JSON.stringify(checkedNodes))
+        var json = [];
+        for(var i=0;i<checkedNodes.length;i++){
+            var obj = new Object();
+            obj.permissionId = checkedNodes[i].id;
+            obj.permissionName = checkedNodes[i].name;
+            obj.roleId = ids;
+            obj.roleName = roleName;
+            json.push(obj);
+        }
+
+        //alert(JSON.stringify(json))
+        //实际使用时的提交信息
+        $.ajax( {
+            url : "/sysRolePermission/save",
+            type : "POST",
+            dataType:"json",
+            contentType:'application/json;charset=UTF-8',
+            data:JSON.stringify(json),
+            success : function(res) {
+                layer.close(index);//手动关闭
+                layer.msg(res.message);
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            },
+            error:function(e){
+                layer.close(index);//手动关闭
+                layer.msg("操作失败,请重试!");
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            }
+        })
+    })
+})

+ 272 - 0
imwork-windows/imwork-silos/src/main/resources/static/business/upms/role/list.js

@@ -0,0 +1,272 @@
+layui.use(['form','layer','table','laytpl'],function(){
+    var form = layui.form,
+        layer = parent.layer === undefined ? layui.layer : top.layer,
+        $ = layui.jquery,
+        laytpl = layui.laytpl,
+        table = layui.table;
+
+    //用户列表
+    var tableIns = table.render({
+        elem: '#list',
+        /*url : '../../json/userList.json',*/
+        url : '/silos/upms/sysrole/queryPage',
+        method: 'POST',
+        dataType: 'json',
+        contentType: 'application/json;charset=utf-8',
+        headers: {token: ''},
+        cellMinWidth : 95,
+        page : true,
+        height : "full-125",
+        limits : [10,15,20,25],
+        limit : 15,
+        id : "listTable",
+        request: {
+            pageName: "pageNo",//重新定义当前页码参数名称
+            limitName: "pageRows"//重新定义每页大小参数名称
+        },
+        response: {
+            statusName: 'code', //数据状态的字段名称,默认:code
+            statusCode: 200, //成功的状态码,默认:0
+            msgName: 'msg',  //状态信息的字段名称,默认:msg
+            countName: 'totalRows',  //数据总数的字段名称,默认:count
+            dataName: 'data' //数据列表的字段名称,默认:data
+        },
+        where: {
+            //请求的参数写在where
+        },
+        parseData: function (res) {
+            return {
+                "code": res.code,
+                "msg": res.msg, //解析提示文本
+                "totalRows": res.data.totalRows, //解析数据长度
+                "data": res.data.dataList, //解析数据列表
+            };
+        },
+        cols : [[
+            {type: "checkbox", fixed:"left", width:50},
+            {field: 'roleName', title: '角色名称', minWidth:100, align:"center"},
+            {field: 'roleDesc', title: '角色详情', minWidth:100, align:"center"},
+            {field: 'roleType', title: '角色类型', align:'center',templet:function(d){
+                    if(d.roleType == "0"){
+                        return "默认角色";
+                    }else if(d.roleType == "1"){
+                        return "普通管理员";
+                    }else if(d.roleType == "2"){
+                        return "系统管理员";
+                    }else if(d.roleType == "3"){
+                        return "区域管理员";
+                    }else if(d.roleType == "9"){
+                        return "超级管理员";
+                    }else{
+                        return "异常角色";
+                    }
+                }},
+            {field: 'createTime', title: '创建时间', minWidth:100, align:"center",templet:function (d) {
+                    return showTime(d.createTime);
+                }},
+            {field: 'updateTime', title: '更新时间', align:'center',minWidth:150,templet:function (d) {
+                    return showTime(d.updateTime);
+                }},
+            {title: '操作', minWidth:175, templet:'#listBar',fixed:"right",align:"center"}
+        ]]
+    });
+
+    //搜索【此功能需要后台配合,所以暂时没有动态效果演示】
+    $(".search_btn").on("click",function(){
+        if($(".searchVal").val() != ''){
+            table.reload("listTable",{
+                page: {
+                    curr: 1 //重新从第 1 页开始
+                },
+                where: {
+                    key: $(".searchVal").val()  //搜索的关键字
+                }
+            })
+        }else{
+            layer.msg("请输入搜索的内容");
+        }
+    });
+
+    //添加用户
+    function add(edit){
+        var index = layui.layer.open({
+            title : "添加信息",
+            type : 2,
+            content : "/silos/upms/sysrole/update",
+            success : function(layero, index){
+                var body = layui.layer.getChildFrame('body', index);
+                if(edit){
+                    body.find(".userName").val(edit.userName);  //登录名
+                    body.find(".userEmail").val(edit.userEmail);  //邮箱
+                    body.find(".userSex input[value="+edit.userSex+"]").prop("checked","checked");  //性别
+                    body.find(".userGrade").val(edit.userGrade);  //会员等级
+                    body.find(".userStatus").val(edit.userStatus);    //用户状态
+                    body.find(".userDesc").text(edit.userDesc);    //用户简介
+                    form.render();
+                }
+                setTimeout(function(){
+                    layui.layer.tips('点击此处返回用户列表', '.layui-layer-setwin .layui-layer-close', {
+                        tips: 3
+                    });
+                },500)
+            }
+        })
+        layui.layer.full(index);
+        window.sessionStorage.setItem("index",index);
+        //改变窗口大小时,重置弹窗的宽高,防止超出可视区域(如F12调出debug的操作)
+        $(window).on("resize",function(){
+            layui.layer.full(window.sessionStorage.getItem("index"));
+        })
+    }
+    $(".add_btn").click(function(){
+        add();
+    })
+
+    //批量删除
+    $(".delAll_btn").click(function(){
+        var checkStatus = table.checkStatus('listTable'),
+            data = checkStatus.data,
+            ids = [];
+        if(data.length > 0) {
+            for (var i in data) {
+                ids.push(data[i].id);
+            }
+            //console.log(ids)
+            layer.confirm('确定删除选中的条目?', {icon: 3, title: '提示信息'}, function (index) {
+
+                $.ajax( {
+                    url : "/silos/upms/sysrole/deleteInfoByIds/"+ids,
+                    type : "POST",
+                    dataType:"json",
+                    async : false,
+                    contentType:'application/json;charset=UTF-8',
+                    success : function(res) {
+                        console.log(res);
+                        tableIns.reload();
+                        layer.close(index);
+                    },
+                    error:function(e){
+                        tableIns.reload();
+                        layer.close(index);
+                    }
+                })
+            })
+        }else{
+            layer.msg("请选择需要删除的条目!");
+        }
+    })
+
+    //列表操作
+    table.on('tool(list)', function(obj){
+        var layEvent = obj.event,
+            data = obj.data;
+
+        if(layEvent === 'edit'){ //编辑
+            addUser(data);
+        }else if(layEvent === 'usable'){ //启用禁用
+            var _this = $(this),
+                usableText = "是否确定禁用此用户?",
+                btnText = "已禁用";
+            if(_this.text()=="已禁用"){
+                usableText = "是否确定启用此用户?",
+                btnText = "已启用";
+            }
+            layer.confirm(usableText,{
+                icon: 3,
+                title:'系统提示',
+                cancel : function(index){
+                    layer.close(index);
+                }
+            },function(index){
+                _this.text(btnText);
+                layer.close(index);
+            },function(index){
+                layer.close(index);
+            });
+        }else if(layEvent === 'del'){ //删除
+            layer.confirm('确定删除?', {icon: 3, title: '提示信息'}, function (index) {
+                $.ajax({
+                    url: "/silos/upms/sysrole/deleteInfoByIds/" + data.id,
+                    type: "POST",
+                    dataType: "json",
+                    async: false,
+                    contentType: 'application/json;charset=UTF-8',
+                    success: function (res) {
+                        //console.log(res);
+                        tableIns.reload();
+                        layer.close(index);
+                    },
+                    error: function (e) {
+                        tableIns.reload();
+                        layer.close(index);
+                    }
+                })
+            });
+        }
+    });
+
+    $(".allot_btn").click(function(){
+        allot();
+    })
+
+    //分配权限
+    function allot(){
+        var checkStatus = table.checkStatus('listTable'),
+            data = checkStatus.data,
+            ids = [];
+        if(data.length > 0) {
+            for (var i in data) {
+                ids.push(data[i].id);
+            }
+            var index = layui.layer.open({
+                type: 2,
+                title: '分配权限',
+                shadeClose: true,
+                shade: 0.8,
+                area: ['380px', '80%'],
+                content: "/silos/upms/sysrole/allot?ids="+ids,
+                success : function(layero, index){
+                    var body = layui.layer.getChildFrame('body', index);
+
+                    setTimeout(function(){
+                        layui.layer.tips('点击此处返回用户列表', '.layui-layer-setwin .layui-layer-close', {
+                            tips: 3
+                        });
+                    },500)
+                }
+            });
+            layui.layer.full(index);
+            window.sessionStorage.setItem("index",index);
+            //改变窗口大小时,重置弹窗的宽高,防止超出可视区域(如F12调出debug的操作)
+            $(window).on("resize",function(){
+                layui.layer.full(window.sessionStorage.getItem("index"));
+            })
+        }else{
+            layer.msg("请选择需要分配权限的角色");
+        }
+
+    }
+
+    //时间转换函数
+    function showTime(tempDate)
+    {
+        var d = new Date(tempDate);
+        var year = d.getFullYear();
+        var month = d.getMonth();
+        month++;
+        var day = d.getDate();
+        var hours = d.getHours();
+
+        var minutes = d.getMinutes();
+        var seconds = d.getSeconds();
+        month = month<10 ? "0"+month:month;
+        day = day<10 ? "0"+day:day;
+        hours = hours<10 ? "0"+hours:hours;
+        minutes = minutes<10 ? "0"+minutes:minutes;
+        seconds = seconds<10 ? "0"+seconds:seconds;
+
+
+        var time = year+"-"+month+"-"+day+" "+hours+":"+minutes+":"+seconds;
+        return time;
+    }
+})

+ 41 - 0
imwork-windows/imwork-silos/src/main/resources/static/business/upms/role/save.js

@@ -0,0 +1,41 @@
+layui.use(['form', 'layer'], function () {
+    var form = layui.form
+    layer = parent.layer === undefined ? layui.layer : top.layer,
+        $ = layui.jquery;
+
+    form.on("submit(save)", function (data) {
+        //弹出loading
+        var index = layer.msg('数据提交中,请稍候...', {
+            icon: 16,
+            shade: 0.8,
+            time:false //取消自动关闭
+        });
+        //实际使用时的提交信息
+        $.ajax( {
+            url : "/role/save",
+            type : "POST",
+            dataType:"json",
+            contentType:'application/json;charset=UTF-8',
+            data:JSON.stringify({roleName:$("#roleName").val(),
+                roleType:$("#roleType").val(),
+                authType: $("#authType").val(),
+                roleDesc: $("#roleDesc").val(),
+            }),
+            success : function(res) {
+                //console.log(res.message);
+                layer.close(index);//手动关闭
+                layer.msg(res.message);
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            },
+            error:function(e){
+                layer.close(index);//手动关闭
+                layer.msg("操作失败,请重试!");
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            }
+        })
+    })
+})

+ 52 - 0
imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/allot.js

@@ -0,0 +1,52 @@
+layui.use(['form', 'layer'], function () {
+    var form = layui.form
+    layer = parent.layer === undefined ? layui.layer : top.layer,
+        $ = layui.jquery;
+
+    form.on("submit(save)", function (data) {
+        //弹出loading
+        var index = layer.msg('数据提交中,请稍候...', {
+            icon: 16,
+            shade: 0.8,
+            time:false //取消自动关闭
+        });
+        var ids = $("#ids").val();
+        var userName = $("#userName").val();
+        var zTreeOjb = $.fn.zTree.getZTreeObj("roleTree");
+        var checkedNodes = zTreeObj.getCheckedNodes();
+        //alert(ids+"=="+ JSON.stringify(checkedNodes))
+        var json = [];
+        for(var i=0;i<checkedNodes.length;i++){
+            var obj = new Object();
+            obj.roleId = checkedNodes[i].id;
+            obj.roleName = checkedNodes[i].name;
+            obj.userId = ids;
+            obj.userName = userName;
+            json.push(obj);
+        }
+
+        //alert(JSON.stringify(json))
+        //实际使用时的提交信息
+        $.ajax( {
+            url : "/sysUserRole/save",
+            type : "POST",
+            dataType:"json",
+            contentType:'application/json;charset=UTF-8',
+            data:JSON.stringify(json),
+            success : function(res) {
+                layer.close(index);//手动关闭
+                layer.msg(res.message);
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            },
+            error:function(e){
+                layer.close(index);//手动关闭
+                layer.msg("操作失败,请重试!");
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            }
+        })
+    })
+})

+ 45 - 0
imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/edit.js

@@ -0,0 +1,45 @@
+layui.use(['form', 'layer'], function () {
+    var form = layui.form
+    layer = parent.layer === undefined ? layui.layer : top.layer,
+        $ = layui.jquery;
+
+    form.on("submit(save)", function (data) {
+        //弹出loading
+        const index = top.layer.msg('数据提交中,请稍候', {icon: 16, time: false, shade: 0.8});
+        //实际使用时的提交信息
+        $.ajax( {
+            url : "/silos/upms/sysuser/save",
+            type : "POST",
+            dataType:"json",
+            contentType:'application/json;charset=UTF-8',
+            data:JSON.stringify({loginName:$("#loginName").val(),
+                userName:$("#userName").val(),
+                userAddress: $("#userAddress").val(),
+                userMobilePhone: $("#userMobilePhone").val(),
+                userDesc: $("#userDesc").val(),
+                userEmail: $("#userEmail").val(),
+                userType: $("#userType").val(),
+                userGender: $('input[name="userGender"]:checked').val(),
+                userStatus: $("#userStatus").val(),
+                orgTreeId: $("#orgTreeId").val(),
+                remark: $("#remark").val(),
+            }),
+            success : function(res) {
+                console.log(res);
+                layer.close(index);
+                layer.msg(res.msg);
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            },
+            error:function(e){
+                layer.close(index);
+                layer.msg("信息提交异常!");
+                layer.closeAll("iframe");
+                //刷新父页面
+                parent.location.reload();
+            }
+        })
+        return false;
+    })
+})

+ 328 - 0
imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/list.js

@@ -0,0 +1,328 @@
+layui.config({
+    base: '/admin/assets/lib/jplus/treeTable/'
+}).use(['form', 'layer', 'table', 'laytpl', 'treeTable'], function () {
+    var form = layui.form,
+        layer = parent.layer === undefined ? layui.layer : top.layer,
+        $ = layui.jquery,
+        laytpl = layui.laytpl,
+        table = layui.table,
+        treeTable = layui.treeTable;
+
+    //用户列表
+    var tableIns = table.render({
+        elem: '#list',
+        url: '/silos/upms/sysuser/queryPage',
+        method: 'POST',
+        dataType: 'json',
+        contentType: 'application/json;charset=utf-8',
+        headers: {token: ''},
+        cellMinWidth: 95,
+        page: true,
+        height: "full-125",
+        limits: [10, 15, 20, 25],
+        limit: 15,
+        id: "listTable",
+        request: {
+            pageName: "pageNo",//重新定义当前页码参数名称
+            limitName: "pageRows"//重新定义每页大小参数名称
+        },
+        response: {
+            statusName: 'code', //数据状态的字段名称,默认:code
+            statusCode: 200, //成功的状态码,默认:0
+            msgName: 'msg',  //状态信息的字段名称,默认:msg
+            countName: 'totalRows',  //数据总数的字段名称,默认:count
+            dataName: 'data' //数据列表的字段名称,默认:data
+        },
+        where: {
+            //请求的参数写在where
+        },
+        parseData: function (res) {
+            return {
+                "code": res.code,
+                "msg": res.msg, //解析提示文本
+                "totalRows": res.data.totalRows, //解析数据长度
+                "data": res.data.dataList, //解析数据列表
+            };
+        },
+        cols: [[
+            {type: "checkbox", fixed: "left", width: 50},
+            {field: 'userName', title: '用户名', minWidth: 100, align: "center"},
+            {field: 'loginName', title: '登录名', minWidth: 100, align: "center"},
+            {
+                field: 'userGender', title: '性别', align: 'center', templet: function (d) {
+                    if (d.userGender == "0") {
+                        return "男";
+                    } else if (d.userGender == "1") {
+                        return "女";
+                    } else if (d.userGender == "2") {
+                        return "保密";
+                    } else {
+                        return "保密";
+                    }
+                }
+            },
+            {field: 'userAddress', title: '用户地址', minWidth: 100, align: "center"},
+            {field: 'userDesc', title: '用户详情', minWidth: 100, align: "center"},
+            {
+                field: 'userEmail', title: '用户邮箱', minWidth: 200, align: 'center', templet: function (d) {
+                    if (d.userEmail) {
+                        return '<a class="layui-blue" href="mailto:' + d.userEmail + '">' + d.userEmail + '</a>';
+                    }
+                    return "";
+                }
+            },
+            {field: 'userMobilePhone', title: '手机号码', align: 'center'},
+            {
+                field: 'userType', title: '用户类型', align: 'center', templet: function (d) {
+                    if (d.userType == "0") {
+                        return "默认用户";
+                    } else if (d.userType == "1") {
+                        return "普通管理员";
+                    } else if (d.userType == "2") {
+                        return "系统管理员";
+                    } else if (d.userType == "3") {
+                        return "区域管理员";
+                    } else if (d.userType == "9") {
+                        return "超级管理员";
+                    } else {
+                        return "未授权用户";
+                    }
+                }
+            },
+            {
+                field: 'userStatus', title: '用户状态', align: 'center', templet: function (d) {
+                    /*return d.userStatus == "0" ? "正常使用" : "限制使用";*/
+                    if (d.userStatus == "0") {
+                        return "默认";
+                    } else if (d.userStatus == "1") {
+                        return "无效";
+                    } else if (d.userStatus == "2") {
+                        return "被删除";
+                    } else if (d.userStatus == "3") {
+                        return "暂停使用";
+                    } else {
+                        return "异常用户";
+                    }
+                }
+            },
+            {field: 'userIdCard', title: '身份证号', minWidth: 100, align: "center"},
+            /*{field: 'userAvatar', title: '用户头像', minWidth:100, align:"center",templet:function(d){
+                    return "<img src='"+d.userAvatar+"' style='width: 30px;height: 30px'>";
+            }},*/
+            {field: 'orgTreeName', title: '所属组织', minWidth: 100, align: "center"},
+            {field: 'employeeId', title: '工号', minWidth: 100, align: "center"},
+            {field: 'loginerrorTimes', title: '登录错误次数', minWidth: 100, align: "center"},
+            {
+                field: 'createTime', title: '创建时间', minWidth: 100, align: "center", templet: function (d) {
+                    return showTime(d.createTime);
+                }
+            },
+            {
+                field: 'updateTime', title: '修改时间', minWidth: 100, align: "center", templet: function (d) {
+                    return showTime(d.updateTime);
+                }
+            },
+            {
+                field: 'lastLoginTime', title: '最后登录时间', align: 'center', minWidth: 100, templet: function (d) {
+                    return showTime(d.lastLoginTime);
+                }
+            },
+            {title: '操作', minWidth: 200, templet: '#listBar', fixed: "right", align: "center", toolBar: '#listBar'}
+        ]]
+    });
+
+    //搜索【此功能需要后台配合,所以暂时没有动态效果演示】
+    $(".search_btn").on("click", function () {
+        table.reload("listTable", {
+            page: {
+                curr: 1 //重新从第 1 页开始
+            },
+            where: {
+                userName: $("#userName").val(),  //搜索的关键字
+                loginName: $("#loginName").val(),
+                userMobilePhone: $("#userMobilePhone").val(),
+                userNickName: $("#userNickName").val()
+            }
+        })
+    });
+
+    $(".add_btn").click(function () {
+        edit();
+    })
+
+    //添加用户
+    function edit(edit) {
+        let title = "添加用户";
+        if (edit != null) {
+            title = "修改用户";
+        }
+        const index = layui.layer.open({
+            title: title,
+            type: 2,
+            content: "/silos/upms/sysuser/edit.html",
+            success: function (layero, index) {
+                var body = layui.layer.getChildFrame('body', index);
+                if (edit) {
+                    body.find(".userName").val(edit.userName);  //登录名
+                    body.find(".userEmail").val(edit.userEmail);  //邮箱
+                    body.find(".userSex input[value=" + edit.userSex + "]").prop("checked", "checked");  //性别
+                    body.find(".userGrade").val(edit.userGrade);  //会员等级
+                    body.find(".userStatus").val(edit.userStatus);    //用户状态
+                    body.find(".userDesc").text(edit.userDesc);    //用户简介
+                    form.render();
+                }
+                setTimeout(function () {
+                    layui.layer.tips('点击此处返回用户列表', '.layui-layer-setwin .layui-layer-close', {
+                        tips: 3
+                    });
+                }, 500)
+            }
+        });
+        layui.layer.full(index);
+        window.sessionStorage.setItem("index", index);
+        //改变窗口大小时,重置弹窗的宽高,防止超出可视区域(如F12调出debug的操作)
+        $(window).on("resize", function () {
+            layui.layer.full(window.sessionStorage.getItem("index"));
+        })
+    }
+
+    //批量删除
+    $(".delAll_btn").click(function () {
+        let checkStatus = table.checkStatus('listTable'),
+            data = checkStatus.data,
+            idsArr = [];
+        if (data.length > 0) {
+            for (const i in data) {
+                idsArr.push(data[i].id);
+            }
+            layer.confirm('确定删除选中的用户?', {icon: 3, title: '提示信息'}, function (index) {
+                $.ajax({
+                    url: "/silos/upms/sysuser/deleteByIds",
+                    type: "POST",
+                    dataType: "json",
+                    async: false,
+                    contentType: 'application/json;charset=UTF-8',
+                    data: JSON.stringify({idsArr: idsArr}),
+                    success: function (res) {
+                        //console.log(res);
+                        tableIns.reload();
+                        layer.close(index);
+                    },
+                    error: function (e) {
+                        tableIns.reload();
+                        layer.close(index);
+                    }
+                })
+                return false;
+            })
+        } else {
+            layer.msg("请选择需要删除的用户");
+        }
+    })
+
+    //列表操作
+    table.on('tool(list)', function (obj) {
+        const layEvent = obj.event,
+            data = obj.data;
+
+        if (layEvent === 'edit') { //编辑
+            edit(data);
+        } else if (layEvent === 'usable') { //启用禁用
+            let _this = $(this),
+                usableText = "是否确定禁用此用户?",
+                btnText = "已禁用";
+            if (_this.text() == "已禁用") {
+                usableText = "是否确定启用此用户?",
+                    btnText = "已启用";
+            }
+            layer.confirm(usableText, {
+                icon: 3,
+                title: '系统提示',
+                cancel: function (index) {
+                    layer.close(index);
+                }
+            }, function (index) {
+                _this.text(btnText);
+                layer.close(index);
+            }, function (index) {
+                layer.close(index);
+            });
+        } else if (layEvent === 'del') { //删除
+            let id = data.id
+            layer.confirm('确定删除此用户?', {icon: 3, title: '提示信息'}, function (index) {
+                $.get("/silos/upms/sysuser/delete", {
+                    id: id  //将需要删除的newsId作为参数传入
+                }, function (data) {
+                    tableIns.reload();
+                    layer.close(index);
+                })
+            });
+        }
+    });
+
+
+    //分配角色
+    function allot() {
+        var checkStatus = table.checkStatus('listTable'),
+            data = checkStatus.data,
+            ids = [];
+        if (data.length > 0) {
+            for (var i in data) {
+                ids.push(data[i].id);
+            }
+            var index = layui.layer.open({
+                title: "分配角色",
+                type: 2,
+                content: "/silos/upms/sysuser/allot?ids=" + ids,
+                success: function (layero, index) {
+                    var body = layui.layer.getChildFrame('body', index);
+
+                    setTimeout(function () {
+                        layui.layer.tips('点击此处返回用户列表', '.layui-layer-setwin .layui-layer-close', {
+                            tips: 3
+                        });
+                    }, 500)
+                }
+            })
+            layui.layer.full(index);
+            window.sessionStorage.setItem("index", index);
+            //改变窗口大小时,重置弹窗的宽高,防止超出可视区域(如F12调出debug的操作)
+            $(window).on("resize", function () {
+                layui.layer.full(window.sessionStorage.getItem("index"));
+            })
+        } else {
+            layer.msg("请选择需要分配权限的角色");
+        }
+
+    }
+
+    $(".allot_btn").click(function () {
+        allot();
+    })
+
+    //时间转换函数
+    function showTime(tempDate) {
+        var d = new Date(tempDate);
+        var year = d.getFullYear();
+        var month = d.getMonth();
+        month++;
+        var day = d.getDate();
+        var hours = d.getHours();
+
+        var minutes = d.getMinutes();
+        var seconds = d.getSeconds();
+        month = month < 10 ? "0" + month : month;
+        day = day < 10 ? "0" + day : day;
+        hours = hours < 10 ? "0" + hours : hours;
+        minutes = minutes < 10 ? "0" + minutes : minutes;
+        seconds = seconds < 10 ? "0" + seconds : seconds;
+
+
+        var time = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
+        return time;
+    }
+
+    $(".refresh").click(function () {
+        location.reload();
+    })
+})

+ 4 - 4
imwork-windows/imwork-silos/src/main/resources/templates/main/index.html

@@ -41,15 +41,15 @@
             <li class="canvas-nav-item">
                 <a href="javascript:;"><i class="fa fa-cogs icons"></i><span>系统管理</span><i class="layui-icon layui-icon-right icon-right"></i></a>
                 <ul>
-                    <li><a href="/admin/upms/organization/list.html" id="2" class="tabs"><span>组织管理</span></a></li>
+                    <li><a href="/silos/upms/organization/list.html" id="2" class="tabs"><span>组织管理</span></a></li>
                 </ul>
             </li>
             <li class="canvas-nav-item">
                 <a href="javascript:;"><i class="fa fa-users icons"></i><span>权限管理</span><i class="layui-icon layui-icon-right icon-right"></i></a>
                 <ul>
-                    <li><a href="/admin/upms/user/list.html" class="tabs" id="3" icons="fa fa-user-o"><span>用户管理</span></a></li>
-                    <li><a href="/admin/upms/permission/list.html" class="tabs" id="4"><span>权限管理</span></a></li>
-                    <li><a href="/admin/upms/role/list.html" class="tabs" id="5"><span>角色管理</span></a></li>
+                    <li><a href="/silos/upms/user/list.html" class="tabs" id="3" icons="fa fa-user-o"><span>用户管理</span></a></li>
+                    <li><a href="/silos/upms/permission/list.html" class="tabs" id="4"><span>权限管理</span></a></li>
+                    <li><a href="/silos/upms/role/list.html" class="tabs" id="5"><span>角色管理</span></a></li>
                 </ul>
             </li>
             <li class="canvas-nav-item">

+ 61 - 0
imwork-windows/imwork-silos/src/main/resources/templates/upms/role/list.html

@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org">
+<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">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="format-detection" content="telephone=no">
+
+    <link rel="shortcut icon" href="../../../assets/images/logo/logo.png" th:href="@{/assets/images/logo/logo.png}"/>
+    <link rel="bookmark" href="../../../assets/images/logo/logo.png" th:href="@{/assets/images/logo/logo.png}"/>
+    <link rel="stylesheet" href="../../../assets/lib/layui/css/layui.css" th:href="@{/assets/lib/layui/css/layui.css}"/>
+    <link rel="stylesheet" href="../../../assets/lib/font/css/font-awesome.css" th:href="@{/assets/lib/font/css/font-awesome.css}"/>
+    <link rel="stylesheet" href="../../../assets/css/admin.css" th:href="@{/assets/css/admin.css}"/>
+</head>
+<body class="childrenBody">
+<div class="layui-card">
+    <div class="layui-card-body">
+        <form class="layui-form">
+            <blockquote class="layui-elem-quote quoteBox">
+                <form class="layui-form">
+                    <div class="layui-inline">
+                        <div class="layui-input-inline">
+                            <input type="text" class="layui-input searchVal" placeholder="请输入搜索的内容"/>
+                        </div>
+                        <a class="layui-btn search_btn" data-type="reload">搜索</a>
+                    </div>
+                    <div class="layui-inline"><a class="layui-btn layui-btn-primary allot_btn">分配</a></div>
+                    <div class="layui-inline">
+                        <a class="layui-btn layui-btn-normal add_btn">添加</a>
+                    </div>
+                    <div class="layui-inline">
+                        <a class="layui-btn layui-btn-warm add_btn">编辑</a>
+                    </div>
+                    <div class="layui-inline">
+                        <a class="layui-btn layui-btn-danger layui-btn-normal delAll_btn">删除</a>
+                    </div>
+                    <div class="layui-inline"><a class="layui-btn layui-btn-normal refresh"><i
+                            class="layui-icon layui-icon-refresh-3"></i>刷新</a></div>
+                </form>
+            </blockquote>
+            <table id="list" lay-filter="list"></table>
+
+            <!--操作-->
+            <script type="text/html" id="listBar">
+                <a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="edit">编辑</a>
+                <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
+            </script>
+        </form>
+    </div>
+</div>
+
+<script src="../../../assets/lib/jquery/jquery.min.js" th:src="@{/assets/lib/jquery/jquery.min.js}"></script>
+<script src="../../../assets/lib/layui/layui.js" th:src="@{/assets/lib/layui/layui.js}"></script>
+<script src="../../../assets/js/admin.js" th:src="@{/assets/js/admin.js}"></script>
+<script type="text/javascript" src="../../../static/business/upms/role/list.js" th:src="@{/business/upms/role/list.js}"></script>
+</body>
+</html>

+ 59 - 0
imwork-windows/imwork-silos/src/main/resources/templates/upms/role/update.html

@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org">
+<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">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="format-detection" content="telephone=no">
+
+    <link rel="stylesheet" href="../../static/assets/lib/layui/css/layui.css" th:href="@{/assets/lib/layui/css/layui.css}" media="all">
+    <link rel="stylesheet" href="../../static/assets/lib/font/css/font-awesome.css" th:href="@{/assets/lib/font/css/font-awesome.css}" media="all">
+    <link rel="stylesheet" href="../../static/assets/lib/jsplus/zTree_v3/css/zTreeStyle/zTreeStyle.css" th:href="@{/assets/lib/jsplus/zTree_v3/css/zTreeStyle/zTreeStyle.css}" media="all">
+    <link rel="stylesheet" href="../../static/assets/css/admin.css" th:href="@{/assets/css/admin.css}">
+
+</head>
+<body class="childrenBody">
+<form class="layui-form" style="width:80%;">
+    <input type="hidden" id="id" name="id" th:value="${session.role.id}"/>
+    <div class="layui-form-item">
+        <div class="layui-inline">
+            <label class="layui-form-label">角色名称</label>
+            <div class="layui-input-block">
+                <input type="text" id="roleName" name="roleName" class="layui-input" th:value="${session.role.roleName}"
+                       placeholder="请输入角色名称">
+            </div>
+        </div>
+        <div class="layui-inline">
+            <label class="layui-form-label">角色类型</label>
+            <div class="layui-input-inline">
+                <input type="text" id="roleType" name="roleType" class="layui-input roleType" lay-verify="required" th:value="${session.role.roleType}"
+                       placeholder="请输入角色类型">
+            </div>
+        </div>
+    </div>
+    <div class="layui-form-item layui-row layui-col-xs12">
+        <label class="layui-form-label">描述</label>
+        <div class="layui-input-block">
+            <textarea placeholder="请输入描述" id="remark" name="remark" th:text="${session.role.remark}" class="layui-textarea roleDesc"></textarea>
+        </div>
+    </div>
+    <div class="layui-form-item layui-row layui-col-xs12">
+        <div class="layui-input-block">
+            <button class="layui-btn layui-btn-sm" lay-submit="" lay-filter="save">保存</button>
+            <button type="reset" class="layui-btn layui-btn-sm layui-btn-primary">清除</button>
+        </div>
+    </div>
+</form>
+<script src="../../static/assets/lib/jquery/jquery.js" th:src="@{/assets/lib/jquery/jquery.js}"></script>
+<script src="../../static/assets/lib/jsplus/zTree_v3/js/jquery.ztree.all.js" th:src="@{/assets/lib/jsplus/zTree_v3/js/jquery.ztree.all.js}"></script>
+<script type="text/javascript" src="../../static/assets/lib/layui/layui.js" th:src="@{/assets/lib/layui/layui.js}"></script>
+<script type="text/javascript" src="../../static/business/upms/role/list.js" th:src="@{/business/upms/role/list.js}"></script>
+<script th:inline="javascript" type="text/javascript">
+    var ctxPath = [[${#httpServletRequest.getContextPath()}]];
+</script>
+</body>
+</html>

+ 161 - 0
imwork-windows/imwork-silos/src/main/resources/templates/upms/user/edit.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org">
+<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">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="format-detection" content="telephone=no">
+
+    <link rel="stylesheet" href="../../assets/lib/layui/css/layui.css" th:href="@{/assets/lib/layui/css/layui.css}" media="all"/>
+    <link rel="stylesheet" href="../../assets/lib/font/css/font-awesome.min.css" th:href="@{/assets/lib/font/css/font-awesome.css}" media="all"/>
+
+    <link rel="stylesheet" href="../../assets/lib/jsplus/zTree_v3/css/zTreeStyle/zTreeStyle.css" th:href="@{/assets/lib/jsplus/zTree_v3/css/zTreeStyle/zTreeStyle.css}" media="all">
+    <link rel="stylesheet" href="../../assets/css/admin.css" th:href="@{/assets/css/admin.css}">
+
+</head>
+<body class="childrenBody">
+<form class="layui-form" style="width:80%;">
+    <!--<input type="hidden" id="id" name="id" th:value="${session.role.id}"/>
+    <div class="layui-form-item">
+        <div class="layui-inline">
+            <label class="layui-form-label">用户名称</label>
+            <div class="layui-input-block">
+                <input type="text" id="userName" name="userName" class="layui-input" placeholder="请输入用户名称">
+            </div>
+        </div>
+        <div class="layui-inline">
+            <label class="layui-form-label">角色类型</label>
+            <div class="layui-input-inline">
+                <input type="text" id="roleType" name="roleType" class="layui-input roleType" lay-verify="required" th:value="${session.role.roleType}"
+                       placeholder="请输入角色类型">
+            </div>
+        </div>
+    </div>-->
+    <div class="layui-row childrenRow">
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">用户名</label>
+            <div class="layui-input-block">
+                <input type="text" id="userName" name="userName" class="layui-input userName" lay-verify="required"
+                       placeholder="请输入用户名">
+            </div>
+        </div>
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">登录名</label>
+            <div class="layui-input-block">
+                <input type="text" id="loginName" name="loginName" class="layui-input loginName" lay-verify="required"
+                       placeholder="请输入登录名">
+            </div>
+        </div>
+    </div>
+
+    <div class="layui-row childrenRow">
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">用户地址</label>
+            <div class="layui-input-block">
+                <input type="text" id="userAddress" name="userAddress" class="layui-input userAddress"
+                       placeholder="请输入用户地址">
+            </div>
+        </div>
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">手机号码</label>
+            <div class="layui-input-block">
+                <input type="text" id="userMobilePhone" name="userMobilPhone" class="layui-input userMobilePhone"
+                       lay-verify="phone" placeholder="请输入手机号码">
+            </div>
+        </div>
+    </div>
+
+    <div class="layui-row childrenRow">
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">用户昵称</label>
+            <div class="layui-input-block">
+                <input type="text" id="userNickName" name="userAddress" class="layui-input userNickName"
+                       placeholder="请输入用户昵称">
+            </div>
+        </div>
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">网络类型</label>
+            <div class="layui-input-block">
+                <select id="allowedNetworkType" name="allowedNetworkType" class="allowedNetworkType" lay-filter="allowedNetworkType">
+                    <option value="9">通用</option>0.内网1.外网9.通用
+                    <option value="0">内网</option>
+                    <option value="1">外网</option>
+                    <option value="2">工作</option>
+                </select>
+            </div>
+        </div>
+    </div>
+
+    <div class="layui-row childrenRow">
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">邮箱</label>
+            <div class="layui-input-block">
+                <input type="text" id="userEmail" name="userEmail" class="layui-input userEmail" lay-verify="email" placeholder="请输入邮箱">
+            </div>
+        </div>
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">性别</label>
+            <div id="userGender" class="layui-input-block userGender">
+                <input type="radio" name="sex" value="0" title="男">
+                <input type="radio" name="sex" value="1" title="女">
+                <input type="radio" name="sex" value="2" title="保密" checked>
+            </div>
+        </div>
+    </div>
+
+    <div class="layui-row childrenRow">
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">用户类型</label>
+            <div class="layui-input-block">
+                <select id="userType" name="userType" class="userType" lay-filter="userType">
+                    <option value="0">系统默认</option>
+                    <option value="1">普通管理员</option>
+                    <option value="2">系统管理员</option>
+                    <option value="9">超级管理员</option>
+                </select>
+            </div>
+        </div>
+        <div class="magb15 layui-col-md6 layui-col-xs12">
+            <label class="layui-form-label">用户状态</label>
+            <div class="layui-input-block">
+                <select id="userStatus" name="userStatus" class="userStatus" lay-filter="userStatus">
+                    <option value="0">正常使用</option>
+                    <option value="1">无效用户</option>
+                    <option value="2">已经删除</option>
+                    <option value="3">暂停使用</option>
+                </select>
+            </div>
+        </div>
+    </div>
+    <div class="layui-form-item layui-row layui-col-xs12 childrenRow">
+        <label class="layui-form-label">用户简介</label>
+        <div class="layui-input-block">
+            <textarea placeholder="请输入用户简介" id="userDesc" name="userDesc" class="layui-textarea userDesc"></textarea>
+        </div>
+    </div>
+    <div class="layui-form-item layui-row layui-col-xs12 childrenRow">
+        <label class="layui-form-label">备注</label>
+        <div class="layui-input-block">
+            <textarea placeholder="请输入备注" id="remark" name="remark" class="layui-textarea remark"></textarea>
+        </div>
+    </div>
+    <div class="layui-form-item layui-row layui-col-xs12">
+        <div class="layui-input-block">
+            <button class="layui-btn layui-btn-sm" lay-submit="" lay-filter="save">保存</button>
+            <button type="reset" class="layui-btn layui-btn-sm layui-btn-primary">清除</button>
+        </div>
+    </div>
+</form>
+<script src="../../../assets/lib/jquery/jquery.js" th:src="@{/assets/lib/jquery/jquery.min.js}"></script>
+<script src="../../../assets/lib/jsplus/zTree_v3/js/jquery.ztree.all.js" th:src="@{/assets/lib/jsplus/zTree_v3/js/jquery.ztree.all.js}"></script>
+<script type="text/javascript" src="../../../assets/lib/layui/layui.js" th:src="@{/assets/lib/layui/layui.js}"></script>
+<script type="text/javascript" src="../../../static/business/upms/user/edit.js" th:src="@{/business/upms/user/edit.js}"></script>
+<script th:inline="javascript" type="text/javascript">
+    /*var ctxPath = [[${#httpServletRequest.getContextPath()}]];*/
+</script>
+</body>
+</html>

+ 89 - 0
imwork-windows/imwork-silos/src/main/resources/templates/upms/user/list.html

@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org">
+<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">
+	<meta name="apple-mobile-web-app-status-bar-style" content="black">
+	<meta name="apple-mobile-web-app-capable" content="yes">
+	<meta name="format-detection" content="telephone=no">
+
+	<link rel="stylesheet" href="../../../static/assets/lib/layui/css/layui.css" th:href="@{/assets/lib/layui/css/layui.css}"/>
+	<link rel="stylesheet" href="../../../static/assets/lib/fonts/fontawesome4/css/font-awesome.css" th:href="@{/assets/lib/fonts/fontawesome4/css/font-awesome.css}"/>
+	<link rel="stylesheet" href="../../static/assets/css/commons.css" th:href="@{/assets/css/commons.css}"/>
+
+</head>
+<body class="childrenBody">
+<form class="layui-form">
+	<blockquote class="layui-elem-quote quoteBox">
+		<form class="layui-form">
+			<div class="layui-inline">
+				<label class="layui-form-label">用户名</label>
+				<div class="layui-input-block">
+					<input type="text" id="userName" name="userName" class="layui-input userName"
+						   lay-verify="required" placeholder="请输入用户名">
+				</div>
+			</div>
+			<div class="layui-inline">
+				<label class="layui-form-label">登录名</label>
+				<div class="layui-input-block">
+					<input type="text" id="loginName" name="loginName" class="layui-input loginName" lay-verify="required"
+						   placeholder="请输入登录名">
+				</div>
+			</div>
+			<div class="layui-inline">
+				<label class="layui-form-label">手机号码</label>
+				<div class="layui-input-block">
+					<input type="text" id="userMobilePhone" name="userMobilPhone" class="layui-input userMobilePhone"
+						   lay-verify="phone" placeholder="请输入手机号码">
+				</div>
+			</div>
+			<div class="layui-inline">
+				<label class="layui-form-label">用户昵称</label>
+				<div class="layui-input-block">
+					<input type="text" id="userNickName" name="userAddress" class="layui-input userNickName"
+						   placeholder="请输入用户昵称">
+				</div>
+			</div>
+			<div class="layui-inline">
+				<label class="layui-form-label">邮箱</label>
+				<div class="layui-input-block">
+					<input type="text" class="layui-input userEmail" lay-verify="email" placeholder="请输入邮箱">
+				</div>
+			</div>
+			<hr/>
+			<div class="childrenInline">
+				<div class="layui-inline">
+					<!--<div class="layui-input-inline">
+                        <input type="text" class="layui-input searchVal" placeholder="请输入搜索的内容" />
+                    </div>-->
+					<a class="layui-btn search_btn" data-type="reload"><i
+							class="layui-icon layui-icon-search"></i>搜索</a>
+				</div>
+				<div class="layui-inline"><a class="layui-btn layui-btn-normal refresh"><i
+						class="layui-icon layui-icon-refresh-3"></i>刷新</a></div>
+				<div class="layui-inline">
+					<a class="layui-btn layui-btn-normal add_btn">添加用户</a>
+				</div>
+				<div class="layui-inline">
+					<a class="layui-btn layui-btn-danger layui-btn-normal delAll_btn">批量删除</a>
+				</div>
+			</div>
+		</form>
+	</blockquote>
+	<table id="list" lay-filter="list"></table>
+
+	<!--操作-->
+	<script type="text/html" id="listBar">
+		<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
+		<a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="usable">已启用</a>
+		<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
+	</script>
+</form>
+<script src="../../../static/assets/lib/jquery/jquery.js" th:src="@{/assets/lib/jquery/jquery.js}"></script>
+<script src="../../../static/assets/lib/layui/layui.js" th:src="@{/assets/lib/layui/layui.js}"></script>
+<script src="../../../static/business/upms/user/list.js" th:src="@{/business/upms/user/list.js}"></script>
+</body>
+</html>