JEECG 树列表操作总刷新列表,需要重新展开问题 【官方补丁,适用所有版本】
痛苦 - JEECG 樹列表操作后,總是刷新整個列表,需要重新展開,這樣操作太繁瑣。
針對此問題,我們出了此升級方案(適用所有版本)
?JEECG 3.7.8之前版本,系統管理中的菜單管理、組織結構管理等增刪改操作,操作提交會刷新整個列表,再操作時還需一級一級重新點開,很麻煩。該補丁解決了該問題,實現針對操作節點的局部刷新,在操作完后可快速定位展示操作后的節點。
?1、修改后的操作效果演示
?
2、升級補丁下載
? ? ? ? ? 菜單管理、部門管理升級補丁下載地址:
? ? ? ? ? 鏈接:?https://pan.baidu.com/s/1FYv0sfDxd1cyWGJJ39Q-lg 密碼: f687
?
3、升級代碼細節講解(此步可略過)
以菜單管理為例,實現功能的改造
(1)菜單管理列表頁面(/src/main/webapp/webpage/system/function/functionList.jsp)
?添加列表刷新方法:
function reloadTreeNode(){var node = $('#functionList').treegrid('getSelected');if (node) {var pnode = $('#functionList').treegrid('getParent',node.id);if(pnode){if(node.parentId==""){$('#functionList').treegrid('reload');}else{$('#functionList').treegrid('reload',pnode.id);}}else{if(node.parentId==""){$('#functionList').treegrid('reload');}else{$('#functionList').treegrid('reload',pnode.id);}}}else{$('#functionList').treegrid('reload');} }(2)添加、編輯頁面改造(/src/main/webapp/webpage/system/function/function.jsp)
?添加編輯頁面,數據提交之后調用列表頁面
需要重寫表單提交后的回調方法
標簽增加callback屬性:callback="@Override callbackTreeLoad"? 并設置?dialog="true",@Override callbackTreeLoad表示調用當前頁面方法callbackTreeLoad。
<t:formvalid formid="formobj" layout="div" dialog="true" callback="@Override callbackTreeLoad" ……重寫callback方法:最后調用父頁面(即列表頁面)刷新樹形列表treegrid的方法win.reloadTreeNode();
function callbackTreeLoad(data){var win = frameElement.api.opener;if (data.success == true) {frameElement.api.close();win.tip(data.msg);} else {if (data.responseText == ''|| data.responseText == undefined) {$.messager.alert('錯誤', data.msg);$.Hidemsg();} else {try {var emsg = data.responseText.substring(data.responseText.indexOf('錯誤描述'),data.responseText.indexOf('錯誤信息'));$.messager.alert('錯誤', emsg);$.Hidemsg();} catch (ex) {$.messager.alert('錯誤',data.responseText + "");$.Hidemsg();}}return false;}win.reloadTreeNode(); }(3)改造刪除方法:
刪除按鈕自定義:funname指定重構的方法
<t:dgFunOpt funname="delMenu(id)" title="common.delete" urlclass="ace_button" urlStyle="background-color:#ec4758;" urlfont="fa-trash-o"></t:dgFunOpt>重構刪除方法:刪除成功后調用刷新樹形列表treegrid的方法reloadTreeNode();
//刪除菜單 function delMenu(id,name) {var url = "functionController.do?del&id="+idvar content = $.i18n.prop('del.this.confirm.msg');var title = $.i18n.prop('del.confirm.title');$.dialog.setting.zIndex = getzIndex(true);var navigatorName = "Microsoft Internet Explorer"; if( navigator.appName == navigatorName ||"default,shortcut".indexOf(getCookie("JEECGINDEXSTYLE"))>=0){ $.dialog.confirm(content, function(){doDelSubmit(url);rowid = '';}, function(){});}else{layer.open({title:title,content:content,icon:7,shade: 0.3,yes:function(index){doDelSubmit(url);rowid = '';},btn:[$.i18n.prop('common.ok'),$.i18n.prop('common.cancel')],btn2:function(index){layer.close(index);}});} }/*** 執行操作* * @param url* @param index*/ function doDelSubmit(url) {$.ajax({async : false,cache : false,type : 'POST',url : url,// 請求的action路徑error : function() {// 請求失敗處理函數},success : function(data) {var d = $.parseJSON(data);if (d.success) {var msg = d.msg;tip(msg);reloadTreeNode();} else {tip(d.msg);}}}); }以上改造完成!!!
?
?
?
?
?
?
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的JEECG 树列表操作总刷新列表,需要重新展开问题 【官方补丁,适用所有版本】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: activiti 如何获取下一步节点
- 下一篇: linux install用法