/** * Created by jinxs on 2016.06.23. */ var webroot = $("#hdWebroot").val(); var rootUrl = webroot + '/dict/category/'; $(function () { //------------------------属性------------------------------ var saveUrl = rootUrl + 'save'; var menuUrl = rootUrl + 'list'; var deleteUrl = rootUrl + 'delete'; var layout = $('#layout'); var menu = $("#ulMenu"); var grid_form = $('#grid_form'); var selectedNode;//选中的节点 var $notice; var setting = { data: { simpleData: { enable: true, pIdKey: 'pid', rootPid: '' } }, view: { selectedMulti: false, showLine: true }, async: { enable: true, url: menuUrl, autoParam: ["code"] }, callback: { onAsyncError: function (event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) { alert("加载项目目录失败!" + errorThrown); }, onAsyncSuccess: function (event, treeId, treeNode, msg) { zTree.expandAll(true); if (selectedNode) { selectedNode = zTree.getNodeByParam("id", selectedNode.id, null); zTree.selectNode(selectedNode); } }, onClick: function (event, treeId, treeNode) { selectedNode = treeNode; $('#id').val(treeNode.id); $('#name').val(treeNode.name); $('#pid').val(treeNode.pid); $('#iconname').val(treeNode.iconname); $('#code').val(treeNode.code); var categorytype=$('#categorytype'); pNode=treeNode.getParentNode(); if(pNode!=null&&pNode.pid!=null){ categorytype.uiCombobox("setReadonly",true); }else { categorytype.uiCombobox("setReadonly",false); } categorytype.uiCombobox("setValue",treeNode.categorytype); $('#codeRow').toggle(treeNode.getParentNode() == null); $('#typeRow').toggle(treeNode.getParentNode() != null); $notice.text('编辑结点[' + treeNode.name + ']'); } } }; var form_setting = $.extend({}, setting, { callback: { onAsyncError: function (event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) { alert("加载项目目录失败!" + errorThrown); }, beforeClick: function (treeId, treeNode, clickFlag) { }, onClick: function (event, treeId, treeNode) { $('#parent_id').uiCombo('setValue', treeNode.id).uiCombo('setText', treeNode.name).uiCombo('hidePanel'); } } }); //-----------------------初始化-------------------------------------- layout.uiLayout(); $.fn.zTree.init(menu, setting); var zTree = $.fn.zTree.getZTreeObj("ulMenu"); grid_form.uiForm({ template: 'grid_form_temp', onLoadSuccess: function () { $notice = $("#notice"); var categorytype = $('#categorytype'); categorytype.uiCombobox({ width: 400 }); $('#typeRow').hide(); } }).uiForm("load"); addEvents(); //-------------------------------------方法-------------------------------------------------------- function addEvents() { //新建 $('#btnAdd').uiButton({ onClick: function () { if(selectedNode==undefined){ showResult(false, "请选择父节点!"); return; } grid_form.each(function () { this.reset(); $('#pid').val(selectedNode.id); $('#code').val(selectedNode.code); $('#id').val(''); if(selectedNode.pid!=null){ var categorytype = $('#categorytype'); categorytype.uiCombobox("setValue",selectedNode.categorytype); categorytype.uiCombobox("setReadonly",true); } }); $("#name").focus(); $('#codeRow').hide(); $('#typeRow').show(); $notice.text('新增结点至[' + selectedNode.name + ']'); } }); $('#btnSave').uiButton({ onClick: function () { $('#grid_form').uiForm('submit', { url: saveUrl, onSubmit: function (param) { // 返回false终止表单提交 return $('#grid_form').uiForm('validate'); }, success: function (result) { if (result.success) { var pNode = null; if (selectedNode) { pNode = selectedNode.getParentNode(); } grid_form.uiForm('reset'); zTree.reAsyncChildNodes(pNode, 'refresh'); } showResult(result.success, result.message); } }); } }); //删除 $('#btnDelete').uiButton({ onClick: function () { deleteData( "确定要删除结点[" + selectedNode.name + "]及其子结点吗?", deleteUrl, {code: selectedNode.code}, function (result) { if (result.success) { grid_form.uiForm('reset'); zTree.reAsyncChildNodes(selectedNode.getParentNode(), 'refresh'); } } ); } }); } //删除 function deleteData(confirmText, url, data, callback) { $.uiMessagebox.confirm({ title: '确认操作', content: confirmText, onClose: function (value) { if (value) { $.ajax({ type: 'post', url: url, data: data, success: function (result) { callback && callback.call(this, result); } }); } } }); } });