<!DOCTYPE html> 
 | 
<html> 
 | 
<head> 
 | 
    <meta charset="utf-8"> 
 | 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 | 
    <meta name="renderer" content="webkit"> 
 | 
    <meta http-equiv="Cache-Control" content="no-siteapp"/> 
 | 
    <title>主页</title> 
 | 
    <link rel="shortcut icon" th:href="@{/images/favicon.ico}"> 
 | 
    <!--[if lt IE 8]> 
 | 
    <meta http-equiv="refresh" content="0;ie.html"/> 
 | 
    <![endif]--> 
 | 
  
 | 
    <!-- 本框架基本脚本和样式 --> 
 | 
    <script type="text/javascript" 
 | 
            th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> 
 | 
    <script type="text/javascript" 
 | 
            th:src="@{/js/systools/MBase.js}"></script> 
 | 
    <!-- 界面单独引入的其他样式和脚本 --> 
 | 
    <link rel="stylesheet" 
 | 
          th:href="@{/plugin/zTree/zTreeStyle/zTreeStyle.css}" 
 | 
          type="text/css"> 
 | 
    <script type="text/javascript" 
 | 
            th:src="@{/plugin/zTree/jquery.ztree.core-3.5.min.js}"></script> 
 | 
    <script type="text/javascript" 
 | 
            th:src="@{/plugin/bootstrap-3.3.5/js/bootstrapSwitch.js}"></script> 
 | 
    <link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrapSwitch.css}"> 
 | 
    <script type="text/javascript" 
 | 
            th:src="@{/js/function/public.js}"></script> 
 | 
    <style type="text/css"> 
 | 
        table tr td { 
 | 
            border: none !important; 
 | 
        } 
 | 
  
 | 
        table tr th { 
 | 
            border: none !important; 
 | 
        } 
 | 
  
 | 
        .inline { 
 | 
            display: INLINE; 
 | 
            width: 50%; 
 | 
        } 
 | 
  
 | 
        #btns { 
 | 
            max-height: 400px; 
 | 
            overflow: scroll; 
 | 
        } 
 | 
  
 | 
        .ztree { 
 | 
            max-height: 600px; 
 | 
            overflow: scroll; 
 | 
        } 
 | 
    </style> 
 | 
</head> 
 | 
<body class="gray-bg"> 
 | 
<div class="wrapper wrapper-content   "> 
 | 
    <div class="row"> 
 | 
        <div class="col-sm-3"> 
 | 
            <div class="ibox float-e-margins"> 
 | 
                <div class="ibox-title"> 
 | 
                    <h5>功能列表</h5> 
 | 
                    <div class="pull-right "> 
 | 
                        <a class="f-r text-success " onclick="openForm()"><i 
 | 
                                class="fa fa-plus c-success"></i> 添加功能</a> 
 | 
                    </div> 
 | 
                </div> 
 | 
                <div id="treeDemo" class="ibox-content ztree" 
 | 
                     style="min-height: 400px"></div> 
 | 
            </div> 
 | 
        </div> 
 | 
        <div class="col-sm-9"> 
 | 
            <div class="ibox float-e-margins"> 
 | 
                <div class="ibox-title"> 
 | 
                    <h5>编辑功能</h5> 
 | 
                    <div class="ibox-tools"></div> 
 | 
                </div> 
 | 
                <div class="ibox-content" style="min-height: 400px"> 
 | 
                    <form class="form-horizontal dataform " style="display: none" 
 | 
                          id="dataform"> 
 | 
                        <input autocomplete="off"   name="fnId" id="functionId"> 
 | 
                        <div class="form-group"> 
 | 
                            <label class="col-sm-2 control-label">父级功能</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <select class="form-control select2 " size="1" name="fnParentId" 
 | 
                                        id="fnParentId" style="width: 100%"> 
 | 
                                </select> 
 | 
                            </div> 
 | 
                            <label class="col-sm-2 control-label">排序</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <input autocomplete="off" name="fnSequence" type="number" class="form-control" 
 | 
                                       id="sortIndex"> 
 | 
                            </div> 
 | 
                        </div> 
 | 
                        <div class="form-group"> 
 | 
                            <label class="col-sm-2 control-label">功能名称</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <input autocomplete="off" id="name" type="text" name="fnName" class="form-control " 
 | 
                                       datatype="*1-50" nullmsg="功能名称不能为空"> 
 | 
                                <div class="Validform_checktip"></div> 
 | 
                            </div> 
 | 
                            <label class="col-sm-2 control-label">功能图标</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <input autocomplete="off" datatype="*1-50" id="iconText" name="fnIcon" ignore="ignore" 
 | 
                                       type="text" class="form-control " 
 | 
                                       onclick="showIcon()"> 
 | 
                                <div class="Validform_checktip"></div> 
 | 
                            </div> 
 | 
                        </div> 
 | 
  
 | 
                        <div class="form-group"> 
 | 
                            <label class="col-sm-2 control-label">菜单路径</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <input autocomplete="off" name="fnPath" id="fnPath" type="text" 
 | 
                                       class="form-control" value=""> 
 | 
                            </div> 
 | 
                            <label class="col-sm-2 control-label">当前状态</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <div class="switch" data-on="success" id="state-switch" data-off="warning" 
 | 
                                     data-on-label="启用" data-off-label="禁用"> 
 | 
                                    <input autocomplete="off" type="checkbox" id="fnIsDisable"/> 
 | 
                                </div> 
 | 
                            </div> 
 | 
                        </div> 
 | 
                        <div class="form-group"> 
 | 
                            <label class="col-sm-2 control-label">功能CODE</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <input autocomplete="off" id="fnCode" type="text" name="fnCode" class="form-control " 
 | 
                                       datatype="*1-50" nullmsg="功能code不能为空"> 
 | 
                                <div class="Validform_checktip"></div> 
 | 
                            </div> 
 | 
                            <label class="col-sm-2 control-label">是否在菜单栏显示</label> 
 | 
                            <div class="col-sm-4"> 
 | 
                                <div class="radio radio-success radio-single radio-inline"> 
 | 
                                    <input autocomplete="off" name="fnShowMenu" type="radio" id="radio1" value="是"> 
 | 
                                    <label for="radio1">显示</label> 
 | 
                                </div> 
 | 
                                <div class="radio radio-success radio-single radio-inline"> 
 | 
                                    <input autocomplete="off" name="fnShowMenu" type="radio" id="radio2" value="否"> 
 | 
                                    <label for="radio2">不显示</label> 
 | 
                                </div> 
 | 
                            </div> 
 | 
  
 | 
                        </div> 
 | 
                        <div class="form-group"> 
 | 
                            <label class="col-sm-2 control-label">功能按钮</label> 
 | 
                            <div class="form-control-static col-sm-10" id="btns"> 
 | 
                            </div> 
 | 
                        </div> 
 | 
                        <div class="form-group"> 
 | 
                            <div class="col-sm-12 text-center"> 
 | 
                                <a class="btn btn-success radius" onclick="updateFunction()"><i class="fa fa-check"></i> 
 | 
                                    保存</a> 
 | 
                                <a class="btn btn-danger  radius" onclick="delFunction()"><i class="fa fa-close"></i> 删除</a> 
 | 
                            </div> 
 | 
                        </div> 
 | 
                    </form> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
    </div> 
 | 
</div> 
 | 
<script type="text/javascript" 
 | 
        th:src="@{/js/systools/MJsBase.js}"></script> 
 | 
<script type="text/javascript"> 
 | 
    //做一个标记用来记录功能状态的改变是用户还是系统引起的 
 | 
    var flag = false; 
 | 
  
 | 
    var dataForm = null; 
 | 
    $(function () { 
 | 
        $(".select2").select2(); 
 | 
        initFunctionList(); 
 | 
        dataForm = MValidform.validform("#dataform"); 
 | 
  
 | 
        //设置关闭点击事件 
 | 
        $('#fnIsDisable').change(function () { 
 | 
            if (flag) { 
 | 
                console.log("user click"); 
 | 
                var path = ""; 
 | 
                var $fnIsDisable = $('#fnIsDisable'); 
 | 
                var checked = document.getElementById("fnIsDisable").checked; 
 | 
                if (checked) { 
 | 
                    //启用 
 | 
                    path = "enableFunction"; 
 | 
                } else { 
 | 
                    //禁用 
 | 
                    path = "disEnableFunction"; 
 | 
                } 
 | 
                var id = $("#functionId").val(); 
 | 
                if (id != null && id != '') { 
 | 
                    $.AjaxProxy({ 
 | 
                        p: { 
 | 
                            fnId: id 
 | 
                        } 
 | 
                    }).invoke(basePath + "/admin/sysFunction/" + path, 
 | 
                        function (loj) { 
 | 
                            layer.msg(loj.getValue("info"), {icon: 1, time: 1000}); 
 | 
                            return false; 
 | 
                        }); 
 | 
                } 
 | 
            } else { 
 | 
                console.log("system change"); 
 | 
                flag = true; 
 | 
            } 
 | 
        }); 
 | 
    }); 
 | 
  
 | 
    /** 
 | 
     * 初始化功能列表 
 | 
     */ 
 | 
    function initFunctionSelected(id) { 
 | 
        console.log("parentid=" + id); 
 | 
        $.AjaxProxy().invoke(basePath + "/admin/sysFunction/all", 
 | 
            function (loj) { 
 | 
                $("#fnParentId").createSelectTree( 
 | 
                    loj.attr("result").rows, 
 | 
                    { 
 | 
                        id: "fnId",        // 选项的值 
 | 
                        parent: "fnParentId",    // 父节点值 
 | 
                        value: "fnName",    // 要显示的名称 
 | 
                        append: false, 
 | 
                        defaultValue: id, 
 | 
                        defaultHtml: '<option value="" >一级功能</option>' 
 | 
                    }); 
 | 
            }); 
 | 
  
 | 
    } 
 | 
  
 | 
    //更新功能 
 | 
    function updateFunction() { 
 | 
        var myForm = MForm.initForm({ 
 | 
            invokeUrl: basePath + "/admin/sysFunction/modifyFunction", 
 | 
            afterSubmit: function () { 
 | 
                initFunctionList(); 
 | 
            }, 
 | 
        }); 
 | 
        myForm.submit(); 
 | 
    } 
 | 
  
 | 
  
 | 
    // 点击加载节点信息 
 | 
    function zTreeOnClick(event, treeId, treeNode) { 
 | 
        fnPublci.initFunctionSelect("#fnParentId"); 
 | 
        flag = false; 
 | 
        $("#dataform").show(); 
 | 
        dataForm.resetForm(); 
 | 
        $.AjaxProxy({ 
 | 
            p: { 
 | 
                fnId: treeNode.id 
 | 
            }, 
 | 
            a: false, 
 | 
            c: true 
 | 
        }) 
 | 
            .invoke( 
 | 
                basePath + "/admin/sysFunction/findById", 
 | 
                function (loj) { 
 | 
                    // 初始化功能基本信息1 
 | 
                    initFunctionSelected(loj.getString(0, "fnParentId")); 
 | 
                    $("#functionId").val(loj.getString(0, "fnId")); 
 | 
                    $("#name").val(loj.getString(0, "fnName")); 
 | 
                    $("#iconText").val(loj.getString(0, "fnIcon")); 
 | 
                    $("#fnPath").val(loj.getString(0, "fnPath")); 
 | 
                    $("#fnCode").val(loj.getString(0, "fnCode")); 
 | 
                    if (loj.getString(0, "fnShowMenu") == "是") { 
 | 
                        $("#radio1").trigger("click"); 
 | 
                    } else { 
 | 
                        $("#radio2").trigger("click"); 
 | 
                    } 
 | 
  
 | 
                    $("#sortIndex").val( 
 | 
                        loj.getString(0, "fnSequence")); 
 | 
                    if ("否" == loj.getString(0, "fnIsDisable")) { 
 | 
                        $('#state-switch').bootstrapSwitch('setState', true); 
 | 
                    } else { 
 | 
                        $('#state-switch').bootstrapSwitch('setState', false); 
 | 
                    } 
 | 
                    // 初始话功能按钮 
 | 
                    $.AjaxProxy({ 
 | 
                        p: { 
 | 
                            id: loj.getString(0, "id") 
 | 
                        }, 
 | 
                        a: false, 
 | 
                        c: false 
 | 
                    }) 
 | 
                        .invoke( 
 | 
                            basePath + "/admin/sysBtn/all", 
 | 
                            function (loj2) { 
 | 
                                var html = []; 
 | 
                                for (var i = 0; i < loj2 
 | 
                                    .getRowCount(); i++) {// 全部功能按钮 
 | 
                                    var isbtnselect = false; 
 | 
                                    var fbPath = ""; 
 | 
                                    if (loj.getString(0, "sysFnBtnRel") != null) { 
 | 
                                        var fnBtnRels = loj.getString(0, "sysFnBtnRel"); 
 | 
                                        for (var k = 0; k < fnBtnRels.length; k++) { 
 | 
                                            if (fnBtnRels[k].btnValue == loj2.getString(i, "btnValue")) { 
 | 
                                                isbtnselect = true; 
 | 
                                                fbPath = fnBtnRels[k].fbPath; 
 | 
                                            } 
 | 
                                        } 
 | 
                                    } 
 | 
                                    if (isbtnselect) { 
 | 
  
 | 
                                        html[i] = '<div class="checkbox ">  <input autocomplete="off"    name="sysFnBtnRel[' + i + '].btnValue" type="checkbox" checked="checked" id="inlineCheckbox' 
 | 
                                            + loj2.getString(i, "btnValue") + '" value="' + loj2.getString(i, "btnValue") 
 | 
                                            + '" checked>   <label for="inlineCheckbox' + loj2.getString(i, "btnValue") 
 | 
                                            + '"> ' + loj2.getString(i, "btnKey") + '   </label>' 
 | 
                                            + '<input autocomplete="off"   value="' + fbPath + '" type="text" name="sysFnBtnRel[' + i + '].fbPath"  class="form-control inline"    maxlength="200">' + '</div>' 
 | 
                                            + '<input autocomplete="off"   type="hidden"  name="sysFnBtnRel[' + i + '].btnKey" value="' + loj2.getString(i, "btnKey") + '"  />'; 
 | 
                                    } else { 
 | 
                                        html[i] = '<div class="checkbox ">  <input autocomplete="off"    name="sysFnBtnRel[' + i + '].btnValue" type="checkbox" id="inlineCheckbox' 
 | 
                                            + loj2.getString(i, "btnValue") + '" value="' + loj2.getString(i, "btnValue") + '"> <label for="inlineCheckbox' 
 | 
                                            + loj2.getString(i, "btnValue") + '"> ' + loj2.getString(i, "btnKey") 
 | 
                                            + '   </label> ' 
 | 
                                            + '<input autocomplete="off"   value="' + loj2.getString(i, "fbPath") + '" type="text" name="sysFnBtnRel[' + i + '].fbPath" class="form-control inline"    maxlength="200"></div>' 
 | 
                                            + '<input autocomplete="off"   type="hidden"  name="sysFnBtnRel[' + i + '].btnKey" value="' + loj2.getString(i, "btnKey") + '"  />'; 
 | 
                                    } 
 | 
                                } 
 | 
                                $("#btns").html(html.join("")); 
 | 
                            }); 
 | 
                }); 
 | 
  
 | 
  
 | 
    }; 
 | 
  
 | 
  
 | 
    function initFunctionList() { 
 | 
        var zNodes = new Array(); 
 | 
        $.AjaxProxy().invoke( 
 | 
            basePath + "/admin/sysFunction/all", 
 | 
            function (loj) { 
 | 
                for (var i = 0; i < loj.getRowCount(); i++) { 
 | 
                    zNodes[i] = createNode(loj.getString(i, "fnId"), loj.getString(i, "fnParentId"), loj.getString( 
 | 
                        i, "fnName")); 
 | 
                } 
 | 
                initTree(zNodes); 
 | 
            }); 
 | 
    } 
 | 
  
 | 
    //初始化树型控件 
 | 
    function initTree(zNodes) { 
 | 
        var setting = { 
 | 
            view: { 
 | 
                dblClickExpand: false, 
 | 
                showLine: false, 
 | 
                selectedMulti: false 
 | 
            }, 
 | 
            data: { 
 | 
                simpleData: { 
 | 
                    enable: true, 
 | 
                    idKey: "id", 
 | 
                    pIdKey: "pId", 
 | 
                    rootPId: "" 
 | 
                } 
 | 
            }, 
 | 
            callback: { 
 | 
                onClick: zTreeOnClick 
 | 
            } 
 | 
        }; 
 | 
        $.fn.zTree.init($("#treeDemo"), setting, zNodes); 
 | 
    } 
 | 
  
 | 
  
 | 
    function createNode(id, parentId, name) { 
 | 
        var o = new Object(); 
 | 
        o.id = id; 
 | 
        o.pId = parentId; 
 | 
        o.name = name; 
 | 
        o.open = true; 
 | 
        return o; 
 | 
    } 
 | 
  
 | 
    function showIcon() { 
 | 
        layer.open({ 
 | 
            type: 2, 
 | 
            title: false, 
 | 
            area: ['80%', '80%'], 
 | 
            fix: true, // 不固定 
 | 
            shadeClose: true, 
 | 
            shade: 0.8, 
 | 
            maxmin: true, 
 | 
            content: basePath + '/common/redirect/icons' 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    function delFunction() { 
 | 
        var id = $("#functionId").val(); 
 | 
        if (id != null && id != '') { 
 | 
            layer.confirm('删除功能时会删除该功能的所有子功能!', { 
 | 
                icon: 3, 
 | 
                title: '提示' 
 | 
            }, function (index) { 
 | 
                layer.close(index); 
 | 
                var id = $("#functionId").val(); 
 | 
                $.AjaxProxy({ 
 | 
                    p: { 
 | 
                        fnId: id 
 | 
                    } 
 | 
                }).invoke(basePath + "/admin/sysFunction/del", function (loj) { 
 | 
                    layer.msg('删除成功!', { 
 | 
                        icon: 1, time: 1000 
 | 
                    }, function (index) { 
 | 
                        $("#dataform").hide(); 
 | 
                        layer.close(index); 
 | 
                        initFunctionList(); 
 | 
                    }); 
 | 
                    return false; 
 | 
                }); 
 | 
            }); 
 | 
        } else { 
 | 
            layer.msg("请先选中要删除的功能!"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    function openForm() { 
 | 
        layer.open({ 
 | 
            type: 2, 
 | 
            title: "新增功能", 
 | 
            anim: 1, 
 | 
            maxmin: true, 
 | 
            area: [MUI.SIZE_L, '450px'], 
 | 
            content: [basePath + '/admin/sysFunction/editForm'] 
 | 
        }); 
 | 
    } 
 | 
</script> 
 | 
  
 | 
</body> 
 | 
</html> 
 | 
</html> 
 |