<!DOCTYPE HTML> 
 | 
<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> 
 | 
<head> 
 | 
<meta charset="utf-8"> 
 | 
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
 | 
<meta name="renderer" content="webkit|ie-comp|ie-stand"> 
 | 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
 | 
<meta name="viewport" 
 | 
    content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> 
 | 
<meta http-equiv="Cache-Control" content="no-siteapp" /> 
 | 
    <link th:href="@{/plugin/bootstrap-fileinput/css/fileinput.css}" 
 | 
          media="all" rel="stylesheet" type="text/css"/> 
 | 
<!-- 本框架基本脚本和样式 --> 
 | 
<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> 
 | 
    <script th:src="@{/plugin/bootstrap-fileinput/js/fileinput.js}" 
 | 
            type="text/javascript"></script> 
 | 
    <script th:src="@{/plugin/bootstrap-fileinput/js/locales/zh.js}" 
 | 
            type="text/javascript"></script> 
 | 
    <style type="text/css"> 
 | 
        table tr td { 
 | 
            border: none !important; 
 | 
        } 
 | 
  
 | 
        table tr th { 
 | 
            border: none !important; 
 | 
        } 
 | 
  
 | 
        .inline{ 
 | 
            display: INLINE; 
 | 
            width: 50%; 
 | 
        } 
 | 
  
 | 
    </style> 
 | 
</head> 
 | 
<body class="gray-bg"> 
 | 
<div class="wrapper wrapper-content animated fadeInRight"> 
 | 
  
 | 
    <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()" matrix:btn="ARTICLETYPE-addArticle"><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"   type="hidden" name="artypeId" id="artypeId"> 
 | 
                            <div class="form-group"> 
 | 
                                <label class="col-offset-1 col-sm-2 control-label">父级文章类别</label> 
 | 
                                <div class="col-sm-4"> 
 | 
                                    <select class="form-control select2 " size="1" name="artypeParentid" 
 | 
                                            id="artypeParentid" style="width: 100%"> 
 | 
                                    </select> 
 | 
                                </div> 
 | 
                                <label class="col-sm-2 control-label">文章类别名称 
 | 
                                    <span class="text-danger">*</span> 
 | 
                                </label> 
 | 
                                <div class="col-sm-4"> 
 | 
                                    <input autocomplete="off"   id="artypeName" type="text" class="form-control" name="artypeName" 
 | 
                                           maxLength="50" dataType="s1-50" 
 | 
                                           nullmsg="文章类别名称不能为空"> 
 | 
                                </div> 
 | 
                            </div> 
 | 
  
 | 
                            <div class="form-group"> 
 | 
                                <label class="col-sm-2 control-label">文章类别排序 
 | 
                                    <span class="text-danger">*</span> 
 | 
                                </label> 
 | 
                                <div class="col-sm-4"> 
 | 
                                    <input autocomplete="off"   id="artypeSort" type="text" class="form-control" name="artypeSort" 
 | 
                                           dataType="/^\d*\.?\d+$/" 
 | 
                                           errormsg="仅支持数字" 
 | 
                                           nullmsg="文章类别排序不能为空"> 
 | 
                                </div> 
 | 
  
 | 
  
 | 
                                <label class="col-sm-2 control-label">文章类别描述 
 | 
                                </label> 
 | 
                                <div class="col-sm-4"> 
 | 
                                    <input autocomplete="off"   id="artypeDescribe" type="text" class="form-control" name="artypeDescribe" 
 | 
                                           maxLength="100" dataType="s1-100" 
 | 
                                           ignore="ignore" 
 | 
                                           nullmsg="文章类别描述不能为空"> 
 | 
                                </div> 
 | 
                            </div> 
 | 
                            <div class="form-group"> 
 | 
                                <label class="col-sm-2 control-label">文章类别编号 
 | 
                                    <span class="text-danger">*</span> 
 | 
                                </label> 
 | 
                                <div class="col-sm-4"> 
 | 
                                    <input autocomplete="off"   id="artypeCode" type="text" class="form-control" name="artypeCode" 
 | 
                                           maxLength="50" dataType="/^[0-9a-zA-Z_]{1,50}$/" 
 | 
                                           nullmsg="文章类别编号不能为空" errormsg="仅支持数字、字母及'_'"> 
 | 
                                </div> 
 | 
  
 | 
                            </div> 
 | 
  
 | 
                            <div class="form-group"> 
 | 
                                <label class="col-sm-2 control-label">文章类别图片路径 
 | 
  
 | 
                                </label> 
 | 
  
 | 
                                <div class="col-sm-10"> 
 | 
                                    <input autocomplete="off"   value="" name="artypeImgurl" id="artypeImgurl" 
 | 
                                           class="form-control  upload-input" type="text" /> <a style="width: 10%" 
 | 
                                            class="btn btn-primary radius upload-a">选择图片 
 | 
                                </a> 
 | 
                                </div> 
 | 
                                <!--<div class="col-sm-5"> 
 | 
                                    <input autocomplete="off"   type="text" id="artypeImgurl" readonly="true" class="form-control" name="artypeImgurl" 
 | 
                                           multiple data-min-file-count="1"   maxLength="250" 
 | 
                                    > 
 | 
                                    <form enctype="multipart/form-data"> 
 | 
                                        <input autocomplete="off"   id="file-zh"  name="file-zh" type="file"> 
 | 
                                    </form> 
 | 
                                </div> 
 | 
                                <div class="col-sm-5"> 
 | 
                                    <img id="imageUrl"  style="width: 80%"/> 
 | 
                                </div>--> 
 | 
                            </div> 
 | 
                            <div class="form-group" id="showImgUrl"> 
 | 
                                <label class="col-sm-2 control-label"> 
 | 
  
 | 
                                </label> 
 | 
                                <div class="col-sm-10"> 
 | 
                                    <img id="imageUrl"  style="width: 50%;height: 40%"/> 
 | 
                                </div> 
 | 
                            </div> 
 | 
                            <div id="updateBtn" class="form-group" style="display: none"> 
 | 
                                <div class="col-sm-12 text-center"> 
 | 
                                    <a class="btn btn-success radius" id="saveForm" onclick="updateArticleType()" matrix:btn="ARTICLETYPE-save"><i class="fa fa-check"></i> 保存</a> 
 | 
                                    <a class="btn btn-danger  radius" onclick="delArticleType()" matrix:btn="ARTICLETYPE-del"><i class="fa fa-close" ></i> 删除</a> 
 | 
                                </div> 
 | 
                            </div> 
 | 
                        </form> 
 | 
                    </div> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
    </div> 
 | 
  
 | 
</div> 
 | 
<script type="text/javascript" 
 | 
    th:src="@{/js/systools/MJsBase.js}"></script> 
 | 
    <script type="text/javascript"> 
 | 
        var dataForm = null; 
 | 
        var artypeId = 0; 
 | 
        $(function (){ 
 | 
            initArticleTypeList(); 
 | 
        }) 
 | 
  
 | 
        var invokeUrl = basePath + "/admin/multipleUploadFile/doUpload"; 
 | 
        MUI.initImgUpload(".upload-input"); 
 | 
        /*$('#file-zh').fileinput({ 
 | 
            language: 'zh', 
 | 
            uploadUrl: invokeUrl, 
 | 
            allowedFileExtensions: ['jpg', 'png', 'gif'], 
 | 
            maxFileCount: 1, 
 | 
        }).on("fileuploaded", function (event, data, previewId, index) { 
 | 
            $('input[name=artypeImgurl]').val(data.response.path) 
 | 
        });*/ 
 | 
  
 | 
        /** 
 | 
         * 初始化文章类型列表 
 | 
         */ 
 | 
        function initArticleTypeSelected(id) { 
 | 
            $.AjaxProxy().invoke(basePath+"/admin/shopArticleType/all", 
 | 
                    function(loj) { 
 | 
                        $("#artypeParentid").createSelectTree( 
 | 
                                loj.attr("result").rows, 
 | 
                                {    id : "artypeId",        // 选项的值 
 | 
                                    parent : "artypeParentid",    // 父节点值 
 | 
                                    value : "artypeName",    // 要显示的名称 
 | 
                                    append : false, 
 | 
                                    defaultValue : id, 
 | 
                                    defaultHtml : '<option value="" >一级文章类别</option>' 
 | 
                                }); 
 | 
                    }); 
 | 
  
 | 
        } 
 | 
        //更新功能 
 | 
  
 | 
        function updateArticleType() { 
 | 
            var myForm = MForm.initForm({ 
 | 
                invokeUrl : basePath+"/admin/shopArticleType/modifyShopArticleType", 
 | 
                afterSubmit : function() { 
 | 
                    initArticleTypeList(); 
 | 
                }, 
 | 
                /*beforeSubmit: function () { 
 | 
                }*/ 
 | 
            }); 
 | 
            myForm.submit(); 
 | 
            //initDepartmentList(); 
 | 
        } 
 | 
  
 | 
        // 点击加载节点信息 
 | 
        function zTreeOnClick(event, treeId, treeNode) { 
 | 
            fnPublci.initArticleTypeSelect("#artypeParentid"); 
 | 
            dataForm = MValidform.validform("#dataform"); 
 | 
            flag=false; 
 | 
            $("#dataform").show(); 
 | 
            $("#updateBtn").show(); 
 | 
            dataForm.resetForm(); 
 | 
            $.AjaxProxy({ 
 | 
                p : { 
 | 
                    artypeId : treeNode.id 
 | 
                }, 
 | 
                a : false, 
 | 
                c : true 
 | 
            }) 
 | 
                    .invoke( 
 | 
                            basePath+"/admin/shopArticleType/findById", 
 | 
                            function(loj) { 
 | 
                                // 初始化功能基本信息1 
 | 
                                artypeId = loj.attr("result").rows[0].artypeId; 
 | 
                                initArticleTypeSelected(loj.getString(0,"artypeParentid")); 
 | 
                                $("#artypeName").val(loj.getString(0, "artypeName")); 
 | 
                                $("#artypeCode").val(loj.getString(0, "artypeCode")); 
 | 
                                $("#artypeSort").val(loj.getString(0, "artypeSort")); 
 | 
                                $("#artypeDescribe").val(loj.getString(0, "artypeDescribe")); 
 | 
                                $("#artypeImgurl").val(loj.getString(0, "artypeImgurl")); 
 | 
                                $("#artypeId").val(loj.getString(0, "artypeId")); 
 | 
                                /*$("#imageUrl").attr("src",loj.getString(0, "artypeImgurl"));*/ 
 | 
                                /*$(".file-preview-frame file-preview-success").remove();*/ 
 | 
                                if(loj.getString(0, "artypeImgurl") != ''){ 
 | 
                                    $("#imageUrl").attr("src",loj.getString(0, "artypeImgurl")); 
 | 
                                    $("#showImgUrl").show(); 
 | 
                                }else{ 
 | 
                                    $("#showImgUrl").hide(); 
 | 
                                } 
 | 
                                $(".loadingbig").remove(); 
 | 
  
 | 
                                // 初始话功能按钮 
 | 
                                $.AjaxProxy({ 
 | 
                                    p : { 
 | 
                                        id : loj.getString(0, "id") 
 | 
                                    }, 
 | 
                                    a : false, 
 | 
                                    c : false 
 | 
                                }) 
 | 
  
 | 
                            }); 
 | 
  
 | 
  
 | 
        }; 
 | 
  
 | 
  
 | 
        function initArticleTypeList() { 
 | 
            var zNodes = new Array(); 
 | 
            $.AjaxProxy().invoke( 
 | 
                    basePath+"/admin/shopArticleType/all", 
 | 
                    function(loj) { 
 | 
                        for (var i = 0; i < loj.getRowCount(); i++) { 
 | 
                            zNodes[i] = createNode(loj.getString(i, "artypeId"), loj.getString(i, "artypeParentid"), loj.getString( 
 | 
                                    i, "artypeName") , loj.getString(i, "artypeCode")); 
 | 
                        } 
 | 
                        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 delArticleType() { 
 | 
            var id = artypeId; 
 | 
            if (id != null && id != '') { 
 | 
                layer.confirm('删除功能时会删除该功能的所有子功能!', { 
 | 
                    icon : 3, 
 | 
                    title : '提示' 
 | 
                }, function(index) { 
 | 
                    layer.close(index); 
 | 
                    //var id = id; 
 | 
                    $.AjaxProxy({ 
 | 
                        p : { 
 | 
                            keys : id 
 | 
                        } 
 | 
                    }).invoke(basePath+"/admin/shopArticleType/del", function(loj) { 
 | 
                        layer.msg('删除成功!', { 
 | 
                            icon : 1,time:1000 
 | 
                        }, function(index) { 
 | 
                            $("#dataform").hide(); 
 | 
                            $("#updateBtn").hide(); 
 | 
                            layer.close(index); 
 | 
                            initArticleTypeList(); 
 | 
                        }); 
 | 
                        return false; 
 | 
                    }); 
 | 
                }); 
 | 
            } else { 
 | 
                layer.msg("请先选中要删除的功能!"); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        function openForm() { 
 | 
            layer.full( 
 | 
            layer.open({ 
 | 
                type : 2, 
 | 
                title : "添加文章类别", 
 | 
                anim:1, 
 | 
                maxmin : true, 
 | 
                area : [ MUI.SIZE_L, '450px' ], 
 | 
                content : [ basePath+'/admin/shopArticleType/editForm' ] 
 | 
            })); 
 | 
  
 | 
        } 
 | 
  
 | 
        $(".select2").select2(); 
 | 
        var myForm = null; 
 | 
        $(function() { 
 | 
            myForm = MForm.initForm({ 
 | 
                invokeUrl :basePath+ "/admin/shopArticleType/addShopArticleType", 
 | 
                afterSubmit : function() { 
 | 
                    parent.initArticleTypeList(); 
 | 
                } 
 | 
            }); 
 | 
            fnPublci.initArticleTypeSelect("#artypeParentid"); 
 | 
        }); 
 | 
  
 | 
    </script> 
 | 
</body> 
 | 
</html> 
 |