resourcesTree.jsp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="com.hotent.platform.model.system.Resources"%>
  2. <%@include file="/commons/include/html_doctype.html"%>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>资源管理</title>
  6. <%@include file="/commons/include/form.jsp" %>
  7. <f:link href="tree/zTreeStyle.css"></f:link>
  8. <script type="text/javascript" src="${ctx}/js/tree/jquery.ztree.js"></script>
  9. <script type="text/javascript">
  10. var rootId=0;
  11. var foldMenu;
  12. var leafMenu;
  13. var systemMenu;
  14. //当前访问系统
  15. var systemId=null;
  16. $(function(){
  17. //布局
  18. loadLayout();
  19. //菜单
  20. loadMenu();
  21. //加载树
  22. systemId=$("#subSystem").val();
  23. loadTree();
  24. //改变子系统
  25. $("#subSystem").change(function(){
  26. systemId=$("#subSystem").val();
  27. loadTree();
  28. });
  29. });
  30. //菜单
  31. function loadMenu(){
  32. foldMenu = $.ligerMenu({ top: 100, left: 100, width: 120, items:
  33. [{ text: '增加节点', click: addNode },
  34. { text: '编辑节点', click: editNode },
  35. { text: '删除节点', click: delNode },
  36. { text: '导入资源', click: importXml },
  37. { text: '导出资源', click: exportXml },
  38. { text: '节点排序', click: sortNode },
  39. { text: '移动节点', click: moveNode }]
  40. });
  41. systemMenu=$.ligerMenu({ top: 100, left: 100, width: 120, items:
  42. [{ text: '增加节点', click: addNode },
  43. { text: '导入资源', click: importXml },
  44. { text: '节点排序', click: sortNode }]
  45. });
  46. leafMenu = $.ligerMenu({ top: 100, left: 100, width: 120, items:
  47. [{ text: '编辑节点', click: editNode },
  48. { text: '删除节点', click: delNode },
  49. { text: '编辑URL', click: editUrl } ]
  50. });
  51. };
  52. //布局
  53. function loadLayout(){
  54. $("#layout").ligerLayout( {
  55. leftWidth : 200,
  56. onHeightChanged: heightChanged,
  57. allowLeftResize:false
  58. });
  59. //取得layout的高度
  60. var height = $(".l-layout-center").height();
  61. $("#resourcesTree").height(height-90);
  62. };
  63. //布局大小改变的时候通知tab,面板改变大小
  64. function heightChanged(options){
  65. $("#resourcesTree").height(options.middleHeight -90);
  66. };
  67. //树
  68. var resourcesTree;
  69. var expandByDepth = 1;
  70. //加载树
  71. function loadTree(){
  72. var setting = {
  73. async: {enable: false},
  74. data: {
  75. key:{name:"resName"},
  76. simpleData: {
  77. enable: true,
  78. idKey: "resId",
  79. pIdKey: "parentId",
  80. rootPId: <%=Resources.ROOT_PID%>
  81. }
  82. },
  83. view: {
  84. selectedMulti: false
  85. },
  86. edit: {
  87. drag: {
  88. prev: false,inner: false,next: false,isMove:false
  89. },
  90. enable: true,
  91. showRemoveBtn: false,
  92. showRenameBtn: false
  93. },
  94. callback:{
  95. onClick: zTreeOnLeftClick,
  96. onRightClick: zTreeOnRightClick,
  97. beforeDrop: null,
  98. onDrop: null
  99. }
  100. };
  101. var url="${ctx}/platform/system/resources/getSystemTreeData.ht";
  102. var params={systemId:systemId};
  103. $.post(url,params,function(result){
  104. resourcesTree=$.fn.zTree.init($("#resourcesTree"), setting,result);
  105. resourcesTree.expandAll(false);
  106. var node = resourcesTree.getNodeByParam("resId","0",null);
  107. resourcesTree.expandNode(node,true,false,false,false);
  108. /*
  109. if(expandByDepth!=0)
  110. {
  111. var nodes = resourcesTree.getNodesByFilter(function(node){
  112. return (node.level==expandByDepth);
  113. });
  114. if(nodes.length>0){
  115. for(var idx=0;idx<nodes.length;idx++){
  116. resourcesTree.expandNode(nodes[idx],false,false);
  117. }
  118. }
  119. }
  120. else
  121. {
  122. }
  123. */
  124. });
  125. };
  126. //拖放 前准备
  127. /*
  128. function beforeDrop(treeId, treeNodes, targetNode, moveType) {
  129. if (!treeNodes) return false;
  130. var drop=true;
  131. var isFolder=targetNode.isFolder;
  132. if(moveType=="inner"){
  133. //判断是否有子节点,没有子节点不充许拖放
  134. if(isFolder!=1){
  135. $.ligerDialog.warn(targetNode.resName+'没有子节点,不能接收!','提示信息');
  136. drop= false;
  137. }
  138. }
  139. return drop;
  140. };
  141. //拖放 后动作
  142. function onDrop(event, treeId, treeNodes, targetNode, moveType) {
  143. if(!targetNode) return;
  144. if(!treeNodes) return;
  145. var targetId=targetNode.resId;
  146. var sourceNode=treeNodes[0];
  147. var sourceId=sourceNode.resId;
  148. var url="${ctx}/platform/system/resources/move.ht";
  149. var params={targetId:targetId,sourceId:sourceId,moveType:moveType};
  150. $.post(url,params,function(result){
  151. //作为子节点。
  152. if("inner"==moveType){
  153. sourceNode.parentId=targetId;
  154. }
  155. else{
  156. sourceNode.parentId=targetNode.parentId;
  157. }
  158. });
  159. } */
  160. //左击
  161. function zTreeOnLeftClick(event, treeId, treeNode){
  162. var resId=treeNode.resId;
  163. if(resId==rootId){
  164. return;
  165. }
  166. var url="${ctx}/platform/system/resources/get.ht?resId="+treeNode.resId;
  167. $("#listFrame").attr("src",url);
  168. };
  169. /**
  170. * 树右击事件
  171. */
  172. function zTreeOnRightClick(e, treeId, treeNode) {
  173. foldMenu.hide();
  174. leafMenu.hide();
  175. if (treeNode) {
  176. resourcesTree.selectNode(treeNode);
  177. var isfolder=treeNode.isFolder;
  178. var h=$(window).height() ;
  179. var w=$(window).width() ;
  180. var menuWidth=120;
  181. var menuHeight=75;
  182. var menu=null;
  183. if(isfolder==1){
  184. if(treeNode.resId!=0){
  185. menu=foldMenu;
  186. }else{
  187. menu=systemMenu;
  188. }
  189. }
  190. else if(isfolder==0){
  191. menu=leafMenu;
  192. }
  193. var x=e.pageX,y=e.pageY;
  194. if(e.pageY+menuHeight>h){
  195. y=e.pageY-menuHeight;
  196. }
  197. if(e.pageX+menuWidth>w){
  198. x=e.pageX-menuWidth;
  199. }
  200. menu.show({ top: y, left: x });
  201. }
  202. };
  203. //展开收起
  204. function treeExpandAll(type){
  205. resourcesTree = $.fn.zTree.getZTreeObj("resourcesTree");
  206. resourcesTree.expandAll(type);
  207. };
  208. //添加资源
  209. function addNode(){
  210. var url="${ctx}/platform/system/resources/edit.ht?parentId="+getSelectNode().resId+"&systemId="+systemId;
  211. $("#listFrame").attr("src",url);
  212. };
  213. //移动节点
  214. function moveNode(){
  215. var selectNode=getSelectNode();
  216. if(!selectNode) return;
  217. var sourceId=selectNode.resId;
  218. if(sourceId==rootId){
  219. $.ligerDialog.warn('该节点为系统节点 ,不允许该操作');
  220. return;
  221. }
  222. var url="${ctx}/platform/system/resources/MoveTree.ht";
  223. var param = {systemId:systemId,sourceNode:selectNode};
  224. var winArgs="dialogWidth=230px;dialogHeight=450px;help=0;status=0;scroll=0;center=1";
  225. url=url.getNewUrl();
  226. /* var obj=window.showModalDialog(url,param,winArgs);
  227. if(!obj) return;
  228. var targetId = obj.targetNode.resId;
  229. url="${ctx}/platform/system/resources/move.ht";
  230. var params={targetId:targetId,sourceId:sourceId};
  231. $.post(url,params,function(result){
  232. loadTree();
  233. }); */
  234. /*KILLDIALOG*/
  235. DialogUtil.open({
  236. height:550,
  237. width: 250,
  238. title : '移动节点',
  239. url: url,
  240. isResize: true,
  241. //自定义参数
  242. param: param,
  243. sucCall:function(obj){
  244. if(!obj) return;
  245. var targetId = obj.targetNode.resId;
  246. url="${ctx}/platform/system/resources/move.ht";
  247. var params={targetId:targetId,sourceId:sourceId};
  248. $.post(url,params,function(result){
  249. loadTree();
  250. });
  251. }
  252. });
  253. }
  254. //编辑资源
  255. function editNode(){
  256. var selectNode=getSelectNode();
  257. var resId=selectNode.resId;
  258. if(resId==rootId){
  259. $.ligerDialog.warn('该节点为系统节点 ,不允许该操作');
  260. return;
  261. }
  262. var url="${ctx}/platform/system/resources/edit.ht?resId="+selectNode.resId;
  263. $("#listFrame").attr("src",url);
  264. };
  265. //导入资源
  266. function importXml(){
  267. var selectNode=getSelectNode();
  268. var resId=selectNode.resId;
  269. var obj={resId:resId,systemId:systemId};
  270. var url=__ctx +"/platform/system/resources/import.ht";
  271. var conf=$.extend({},{dialogWidth:550 ,dialogHeight:200,help:0,status:0,scroll:0,center:1});
  272. var winArgs="dialogWidth="+conf.dialogWidth+"px;dialogHeight="+conf.dialogHeight
  273. +"px;help=" + conf.help +";status=" + conf.status +";scroll=" + conf.scroll +";center=" +conf.center;
  274. url=url.getNewUrl();
  275. //var rtn=window.showModalDialog(url,obj,winArgs);
  276. /*KILLDIALOG*/
  277. DialogUtil.open({
  278. height:conf.dialogHeight,
  279. width: conf.dialogWidth,
  280. title : '导入资源',
  281. url: url,
  282. isResize: true,
  283. //自定义参数
  284. obj: obj
  285. });
  286. }
  287. //导出资源
  288. function exportXml(){
  289. var selectNode=getSelectNode();
  290. var resId=selectNode.resId;
  291. window.location.href="${ctx}/platform/system/resources/exportXml.ht?resId="+resId;
  292. }
  293. //节点排序
  294. function sortNode(){
  295. var selectNode=getSelectNode();
  296. var resId=selectNode.resId;
  297. var url=__ctx +'/platform/system/resources/sortList.ht?resId='+resId+'&systemId='+systemId;
  298. var winArgs="dialogWidth:600px;dialogHeight:300px";
  299. url=url.getNewUrl();
  300. /* var rtn=window.showModalDialog(url,"",winArgs);
  301. reFresh(); */
  302. /*KILLDIALOG*/
  303. DialogUtil.open({
  304. height:400,
  305. width: 600,
  306. title : '节点排序',
  307. url: url,
  308. isResize: true,
  309. //自定义参数
  310. sucCall:function(rtn){
  311. reFresh();
  312. }
  313. });
  314. }
  315. //删除资源
  316. function delNode(){
  317. var selectNode=getSelectNode();
  318. var resId=selectNode.resId;
  319. if(resId==rootId){
  320. $.ligerDialog.warn('该节点为系统节点 ,不允许该操作');
  321. return;
  322. }
  323. var callback = function(rtn) {
  324. if(!rtn) return;
  325. var url="${ctx}/platform/system/resources/del.ht";
  326. var params={resId:resId};
  327. $.post(url,params,function(responseText){
  328. var obj=new com.hotent.form.ResultMessage(responseText);
  329. if(obj.isSuccess()){//成功
  330. resourcesTree.removeNode(selectNode);
  331. $("#listFrame").attr("src","about:blank");
  332. }
  333. else{
  334. $.ligerDialog.err("提示信息","删除资源失败!",obj.getMessage());
  335. }
  336. });
  337. };
  338. $.ligerDialog.confirm('确认删除吗?','提示信息',callback);
  339. };
  340. //
  341. function editUrl(){
  342. var selectNode=getSelectNode();
  343. var resId=selectNode.resId;
  344. var url="${ctx}/platform/system/resourcesUrl/edit.ht?resId="+resId;
  345. $("#listFrame").attr("src",url);
  346. };
  347. //选择资源节点。
  348. function getSelectNode(){
  349. resourcesTree = $.fn.zTree.getZTreeObj("resourcesTree");
  350. var nodes = resourcesTree.getSelectedNodes();
  351. var node = nodes[0];
  352. return node;
  353. }
  354. //刷新
  355. function reFresh(){
  356. loadTree();
  357. };
  358. //添加完成后调用该函数
  359. function addResource(id,text,icon,isFolder){
  360. var parentNode=getSelectNode();
  361. resourcesTree = $.fn.zTree.getZTreeObj("resourcesTree");
  362. var treeNode= {resId:id,parentId:parentNode.resId,resName:text,icon:icon,isFolder:isFolder};
  363. resourcesTree.addNodes(parentNode,treeNode);
  364. }
  365. //编辑完成后调用该函数。
  366. function editResource(text,icon,isFolder){
  367. var selectNode=getSelectNode();
  368. selectNode.resName=text;
  369. selectNode.icon=icon;
  370. selectNode.isFolder=isFolder;
  371. resourcesTree = $.fn.zTree.getZTreeObj("resourcesTree");
  372. resourcesTree.updateNode(selectNode);
  373. }
  374. </script>
  375. <style type="text/css">
  376. html,body{ padding:0px; margin:0; width:100%;height:100%;overflow: hidden;}
  377. </style>
  378. </head>
  379. <body >
  380. <div id="layout" >
  381. <div id="resourcesTree1" position="left" title="资源管理" style="text-align: left;" >
  382. <div style="width:100%;">
  383. <select id="subSystem" style="width:99.8% !important;height: 30px;">
  384. <c:forEach var="subSystemItem" items="${subSystemList}">
  385. <option value="${subSystemItem.systemId}" <c:if test="${subSystemItem.systemId==currentSystemId}">selected="selected"</c:if> >${subSystemItem.sysName}</option>
  386. </c:forEach>
  387. </select>
  388. </div><div class="tree-toolbar" id="pToolbar">
  389. <div class="group"><a class="link reload" id="treeFresh" href="javascript:reFresh();"><span></span></a></div>
  390. <div class="l-bar-separator"></div>
  391. <div class="group"><a class="link expand" id="treeExpandAll" href="javascript:treeExpandAll(true)" ><span></span></a></div>
  392. <div class="l-bar-separator"></div>
  393. <div class="group"><a class="link collapse" id="treeCollapseAll" href="javascript:treeExpandAll(false)" ><span></span></a></div>
  394. </div>
  395. <div id="resourcesTree" class="ztree" style="overflow:auto;clear:left"></div>
  396. </div>
  397. <div position="center">
  398. <iframe id="listFrame" src="" frameborder="no" width="100%" height="100%"></iframe>
  399. </div>
  400. </div>
  401. </body>
  402. </html>