<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <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" /> <!--[if lt IE 9]> <script type="text/javascript" src="${ctx}/assets/lib/html5.js"></script> <script type="text/javascript" src="${ctx}/assets/lib/respond.min.js"></script> <script type="text/javascript" src="${ctx}/assets/lib/PIE_IE678.js"></script> <![endif]--> <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui/css/H-ui.min.css" /> <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui.admin/css/H-ui.admin.css" /> <link rel="stylesheet" type="text/css" href="${ctx}/assets/lib/Hui-iconfont/1.0.7/iconfont.css" /> <link rel="stylesheet" type="text/css" href="${ctx}/assets/lib/icheck/icheck.css" /> <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui.admin/skin/default/skin.css" id="skin" /> <link rel="stylesheet" type="text/css" href="${ctx}/assets/static/h-ui.admin/css/style.css" /> <script type="text/ecmascript" src="${ctx}/assets/lib/jquery/1.9.1/jquery.js"></script> <script type="text/javascript" src="${ctx}/assets/static/h-ui/js/H-ui.js"></script> <link rel="stylesheet" type="text/css" media="screen" href="${ctx}/assets/lib/jqueryui/jquery-ui.css" /> <link rel="stylesheet" type="text/css" media="screen" href="${ctx}/assets/lib/jqgrid/css/ui.jqgrid.css" /> <script type="text/ecmascript" src="${ctx}/assets/lib/jqueryui/jquery-ui.js"></script> <script type="text/ecmascript" src="${ctx}/assets/lib/jqgrid/js/i18n/grid.locale-cn.js"></script> <script type="text/ecmascript" src="${ctx}/assets/lib/jqgrid/js/jquery.jqGrid.min.js"></script> <link rel="stylesheet" href="${ctx}/assets/lib/zTree/v3/css/zTreeStyle/zTreeStyle.css" type="text/css"> <script type="text/javascript" src="${ctx}/assets/lib/zTree/v3/js/jquery.ztree.all-3.5.min.js"></script> <script type="text/javascript" src="${ctx}/assets/js/base.js"></script> <style type="text/css"> ul.ztree {margin-top: 10px;border: 1px solid #617775;background: #f0f6e4;width:220px;height:360px;overflow-y:scroll;overflow-x:auto;} </style> <!--[if IE 6]> <script type="text/javascript" src="${ctx}/assets/lib/DD_belatedPNG_0.0.8a-min.js" ></script> <script>DD_belatedPNG.fix('*');</script> <![endif]--> <style type="text/css"> select{width: 243px;} </style> <script type="text/javascript"> $(function() { $(window).resize(function(){ $("#tree").setGridWidth($(window).width()-40); }); $("#tree").jqGrid({ caption:'${TitleName}', url : '${ctx}/myconsole/dic/getByTree', editurl:"${ctx}/myconsole/dic/saveOrUpdate", //定义对form编辑时的url mtype : "POST", // ajax提交方式。POST或者GET,默认GET postData:{'tablename':'${TableName}'}, hoverrows:false, // 当为false时mouse hovering会被禁用 默认 false viewrecords:false, // 定义是否要显示总记录数 gridview:true, // 构造一行数据后添加到grid中,如果设为true则是将整个表格的数据都构造完成后再添加到grid中,但treeGrid, subGrid, or afterInsertRow 不能用 默认为false height:"auto", // 表格高度,可以是数字,像素值或者百分比 rowNum:100, // 在grid上显示记录条数,这个参数是要被传递到后台 scrollrows:true, // 当为true时让所选择的行可见 treeGrid:true, // 启用或者禁用treegrid模式 默认false ExpandColumn:"tname", // 指定那列来展开tree grid,默认为第一列,只有在treeGrid为true时起作用 treedatatype:"json", // 数据类型,通常情况下与datatype相同,不会变 treeGridModel:"adjacency", // treeGrid所使用的方法 sortorder:"asc", // 排序顺序,升序或者降序(asc or desc) 默认asc autowidth : true, // 如果为ture时,则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变,为了使表格宽度能够自动调整则需要实现函数:setGridWidth 默认 false datatype:"json", pager:"#pager", // 定义翻页用的导航栏,必须是有效的html元素。翻页工具栏可以放置在html页面任意位置 prmNames : { //定义表单的主键 // Default valuesprmNames: {page:“page”,rows:“rows”, sort: “sidx”,order: “sord”, search:“_search”, nd:“nd”, npage:null} 当参数为null时不会被发到服务器端 id: "tid", oper:"oper", addoper:"add", editoper:"edit", deloper:"del" }, colModel : [ { label : '数据编号', name : 'keyid', editable: false, hidden:true }, { label : '名称', name : 'tname', editable: true, edittype:"text", width : 100, editoptions: { size:31, maxlength: 50 }, editrules:{ required: true }, formoptions:{ elmsuffix:" <span style='color:red'>*<span>", rowpos:1, colpos:1 } },{ label : '编号', name : 'tid', editable: true, edittype: "text", key : true, width : 50, editoptions: { size:31, maxlength: 50 }, editrules:{ edithidden:true, required: true, custom:true, custom_func: function(strFieldValue, strFieldName){ var strEnglish = /^([0-9a-zA-Z]+)?$/; if(!strEnglish.test(strFieldValue)){ return [false, strFieldName+"应该为大小写英文字母或者数字!"]; } else { return [true,""]; } } }, formoptions:{ elmsuffix:" <span style='color:red'>*<span>", rowpos:2, colpos:1 } },{ label : '上级编号', name : 'parentid', editable: false, hidden:true } ,{ label : '排序编号', name : 'sortid', editable: true, hidden : true, edittype: "text", width : 100, editoptions: { size:31, maxlength: 5 }, editrules:{ edithidden:true, required: true, custom:true, custom_func: function(strFieldValue, strFieldName){ var strFloat = /^([-\+]?(((\d+)(\.\d+))|(\.\d+)|(\d*)))?$/; if(!strFloat.test(strFieldValue)){ return [false, strFieldName+"应该为实数"]; } else { return [true,""]; } } }, formoptions:{ elmsuffix:" <span style='color:red'>*<span>", rowpos:3, colpos:1 } }, { label : '链接地址', name : 'turl', editable: true, width : 80, editrules:{ edithidden:true, }, editoptions: { size:50, maxlength: 50 }, formoptions:{ rowpos:4, colpos:1 } },{ label : '是否末级节点', name : 'isleaf', editable: true, edittype: "select", width : 50, editrules:{ edithidden : true }, editoptions:{ dataInit: function(elem){ $(elem).width(218); }, maxlength: 40, value : "true:是;false:否" }, formoptions:{ rowpos:5, colpos:1 } }, { label : '创建人', name : 'username', width : 60, editable: false, edittype:"text" }, { label : '创建时间', name : 'recordtime', width : 60, editable: false, edittype:"text" }, { "name":"treelevel", "hidden":true } ], "treeReader":{ "level_field":"treelevel", "leaf_field":"isleaf", "expanded_field":"expanded", "loaded":"loaded", "parent_id_field":"parentid", "icon_field":"icon" }, loadComplete: function() { } }); function getSiteURL(){ var siteName=$("#sitename").val(); if(siteName!=""){ $.post("${ctx}/myconsole/pinyin/getFirstSpell",{"chinese":$("#sitename").val()},function(data){ $("#siteid").val(data); }) } } jQuery('#tree').jqGrid('navGrid','#pager', { add : true, edit : true, del : true, search : false, refresh : true, view : false, position : "left", cloneToTop : true }, //编辑按钮事件处理 { closeAfterEdit : true, recreateForm : true, width:700, afterShowForm : function(formid) { var tidObj = formid.find('#tid'); tidObj.attr('readOnly',true); tidObj.css({'background':'#cccccc'}); }, beforeSubmit: function(postdata, formid){ // 编辑时jqgrid 将主键变成 tree_id 手动添加 keyid //postdata["keyid"] = postdata.tree_id; $.each(postdata,function (index, value) { if(index!="oper"){ modifyJosnKey(postdata,index,"dic."+index); } }) postdata["dic.tablename"]="${TableName}"; return [true,'']; //返回值必须这么写 目前没找到原因,用true 和 返回对象都不好使。待查 }, afterSubmit: function(response,postdata) { var res=eval('(' + response.responseText + ')'); if(res.flag) { parent.layer.alert(res.message, { skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 }); return [true,res.message,'']; } else { parent.layer.alert(res.message, { skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 }); return [false,res.message,'']; } }, afterComplete : function (response, postdata, formid) { //取消选择 $("#tree").jqGrid("resetSelection"); //关闭对话框 $(".ui-icon-closethick").trigger('click'); }, errorTextFormat : function(data) { return 'Error: ' + data.responseText } }, //添加按钮处理事件 { closeAfterAdd : true, recreateForm : true, checkOnUpdate : true, checkOnSubmit : true, width:700, afterShowForm : function(formid) { }, serializeEditData: function(postdata) { //对主键字段进行赋值传递 韩林平 var selRowId = $("#tree").jqGrid ('getGridParam', 'selrow'); if(selRowId == null) selRowId = ""; //获取选中的父节点主键值,添加下级站点 postdata.parentid=selRowId; $.each(postdata,function(index,value){ if(index!="oper"){ modifyJosnKey(postdata,index,"dic."+index); } }) //jqgrid 做添加操作会把主键id的值设置成“_empty”;这里修改成空; postdata["dic.keyid"]=""; postdata["dic.tablename"]="${TableName}"; return postdata; }, afterSubmit: function(response,postdata) { var res=eval('(' + response.responseText + ')'); if(res.flag) { parent.layer.alert(res.message, { skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 }); return [true,res.message,'']; } else { parent.layer.alert(res.message, { skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 }); return [false,res.message,'']; } }, errorTextFormat : function(data) { return 'Error: ' + data.responseText } }, // options for the Delete Dailog { delData:{ dictablename:function(){ var value="${TableName}"; return value; } }, errorTextFormat : function(data) { return 'Error: ' + data.responseText }, afterSubmit: function(response,postdata) { var res=eval('(' + response.responseText + ')'); if(res.flag) { //alert(res.message); parent.layer.alert(res.message, { skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 }); return [true,res.message,'']; } else { return [false,res.message,'']; } } }); jQuery('#tree').jqGrid('bindKeys'); }) var zTree; var setting = { check: { enable: true, chkStyle: "radio", radioType: "all" }, data: { simpleData: { enable: true, idKey: "KeyID", pIdKey: "ParentID", rootPId: 0 }, key:{ name:"SiteName" } }, callback: { onClick: onClick, onCheck: onCheck } }; var zNodes =${DicDataList}; function onClick(e, treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("treeSite"); zTree.checkNode(treeNode, !treeNode.checked, null, true); return false; } function onCheck(){ } function showMenu() { var cityObj = $("#citySel"); var cityOffset = $("#citySel").offset(); $("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast"); $("body").bind("mousedown", onBodyDown); } function hideMenu() { $("#menuContent").fadeOut("fast"); $("body").unbind("mousedown", onBodyDown); } function onBodyDown(event) { if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) { hideMenu(); } } $(function(){ zTree=$.fn.zTree.init($("#treeSite"), setting, zNodes); }); //表单验证 </script> <title>我的桌面</title> </head> <body> <div class="page-container"> <table id="tree"></table> <div id="pager"></div> </div> <div id="menuContent" class="menuContent" style="display:none; position: absolute;"> <ul id="treeSite" class="ztree" style="margin-top:0; width:300px; height: 300px;"></ul> </div> <footer class="footer mt-20"> <div class="container"> <p> </p> </div> </footer> </body> </html>