/** * Created by jinxs on 2016.06.23. */ var webroot = $("#hdWebroot").val(); var rootUrl = webroot + '/user/org/'; var deleteUrl = rootUrl + 'delete';//删除地址 $(function () { //------------------------属性------------------------------------- var listUrl = rootUrl + 'list';//分页数据地址 var saveUrl = rootUrl + 'save';//保存添加数据地址 var loadFormUrl = rootUrl + 'get/';//加载表单数据地址 var menuUrl = rootUrl + 'getListAll'; var dialogSize = {width: 540, height: '80%'};//弹出窗口大小 var layout = $('#layout'); var menu = $("#ulMenu"); var grid = $('#grid'); var grid_form = $('#grid_form'); var selectedNode;//选中的节点 var op = '';//用于表单中树的操作 var setting = { data: { simpleData: { enable: true, pIdKey: 'parent_id' } }, view: { selectedMulti: false, showLine: true }, async: { enable: true, url: menuUrl }, callback: { onAsyncError: function (event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) { alert("加载项目目录失败!" + errorThrown); }, onAsyncSuccess: function (event, treeId, treeNode, msg) { zTree.expandAll(true); if (selectedNode && selectedNode != null) { var node = zTree.getNodeByParam("id", selectedNode.id); zTree.selectNode(node); grid.uiGrid('loadData', {url: listUrl, queryParams: {pid: selectedNode.id}, pageIndex: 1}); } }, beforeClick: function (treeId, treeNode, clickFlag) { }, onClick: function (event, treeId, treeNode) { selectedNode = zTree.getSelectedNodes()[0]; grid.uiGrid('loadData', {url: listUrl, queryParams: {pid: selectedNode.id}, pageIndex: 1}); } } }; 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'); $('#orgtype').dictCombobox("clear"); if(treeNode.orgtype!=1){ $("#orgtype_combobox_i_0").addClass("ui_combobox-item-disabled"); }else { $("#orgtype_combobox_i_0").removeClass("ui_combobox-item-disabled"); } } } }); //-----------------------初始化-------------------------------------- layout.uiLayout(); $.fn.zTree.init(menu, setting); var zTree = $.fn.zTree.getZTreeObj("ulMenu"); //初始化搜索框 $('#searchbox').uiSearchbox({ prompt: '组织名称', searcher: function (v) { grid.uiGrid('loadData', {queryParams: {key: $.trim(v)}, pageIndex: 1}); } }); //初始化grid grid.uiGrid({ defaultSortField: 'sort_no', defaultOrder: 'asc' }); var dialog = $('#dialog').uiDialog({ title: '新建', width: dialogSize.width, onOpen: function () { var dialogP = $('#dialog').uiDialog('getUserParam'); op = dialogP.action; var id = dialogP.id; switch (op) { case 'view': case 'edit': grid_form.uiForm('load', grid.uiGrid('selectedData')[0]); break; case 'add': grid_form.uiForm('load', {is_auto_expand: 0, status: 1}); break; default : break; } }, buttons: [ { id: 'btnOK', label: '保存', style: 'button_submit', icons: {left: 'icon_submit'}, disabled: false, onClick: function () { $('#grid_form').uiForm('submit', { url: saveUrl, onSubmit: function (param) { param.id = $('#hdID').val(); param.parent_name = $('#parent_id').uiCombo('getText'); param.href = $('#href').uiCombo('getText'); var parentid = $('#parent_id').uiCombo('getValue'); if (parentid == param.id) { showResult(false, '上级菜单不允许选择当前菜单'); return false; } var isValid = $('#grid_form').uiForm('validate'); return isValid; // 返回false终止表单提交 }, success: function (result) { if (result.success) { zTree.reAsyncChildNodes(null, 'refresh'); dialog.uiDialog('close'); } showResult(result.success, result.message); } }); return false; } }, { id: 'btnCancel', label: '关闭', icons: {left: 'icon_cancel'}, disabled: false, style: 'button_cancel', onClick: function () { dialog.uiDialog('close'); } } ] }); grid_form.uiForm({ template: 'grid_form_temp', onLoadSuccess: function () { var me = $(this); $('#is_auto_expand').dictCombobox(); $('#status').dictCombobox(); $('#parent_id').uiCombo(); $('#orgtype').dictCombobox({ onLoadSuccess: function (data) { if(selectedNode.orgtype!=1){ $("#orgtype_combobox_i_0").addClass("ui_combobox-item-disabled"); }else { $("#orgtype_combobox_i_0").removeClass("ui_combobox-item-disabled"); } } }); $('#pn_panel').appendTo($('#parent_id').uiCombo('panel')); $.fn.zTree.init($('#pn_tree'), form_setting, zTree.getNodes()); $.fn.zTree.getZTreeObj("pn_tree").expandAll(true); switch (op) { case 'view': parentTree_view(); me.uiForm('setReadonly', true); break; case 'edit': parentTree_view(); break; case 'add': parentTree_add(); me.uiForm('setReadonly', false); break; default : break; } function parentTree_add() { if (selectedNode && selectedNode != null) { $('#parent_id').uiCombo('setValue', selectedNode.id).uiCombo('setText', selectedNode.name); } } function parentTree_view() { var data = grid.uiGrid('selectedData')[0]; $('#parent_id').uiCombo('setValue', data.parent_id).uiCombo('setText', data.parent_name); } } }); template.helper('orgtypeFilter', function (value) { return gridColFilter('orgtype', value); }); addEvents(); //-------------------------------------方法-------------------------------------------------------- function addEvents() { //新建 $('#btn1').bind('click', function () { dialog.uiDialog('setUserParam', {action: 'add', id: 0}); dialog.uiDialog('button', 'btnOK').show(); dialog.uiDialog('open'); dialog.uiDialog('title').html('新建'); }); //删除 $('#btn2').bind('click', function () { var ids = grid.uiGrid('selectedData', 'id'); if (ids.length == 0) { showResult(false, '请选择要删除的行!', 'alert'); } else { deleteRow(ids); } }); } }); //查看 function viewRow(id, title) { var dialog = $('#dialog'); title = '-' + title || ''; dialog.uiDialog('setUserParam', {action: 'view', id: id}); dialog.uiDialog('button', 'btnOK').hide(); dialog.uiDialog('open'); dialog.uiDialog('title').html('查看' + title); } //编辑 function editRow(id) { var dialog = $('#dialog'); dialog.uiDialog('setUserParam', {action: 'edit', id: id}); dialog.uiDialog('button', 'btnOK').show(); dialog.uiDialog('open'); dialog.uiDialog('title').html('编辑'); } // 删除 function deleteRow(id) { deleteData("此操作将其子节点一起删除,确定删除吗?", deleteUrl, {ids: id}, function (result) { if (result.success) { $.fn.zTree.getZTreeObj("ulMenu").reAsyncChildNodes(null, 'refresh'); } }); } //选择action function selectRow(displayName, url) { $('#href').uiCombo('setValue', url).uiCombo('setText', url).uiCombo('hidePanel'); $('#name').val(displayName); } //删除 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); } }); } } }); }