sysOrgDialog.jsp 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <%@page pageEncoding="UTF-8"%>
  2. <%@include file="/commons/include/html_doctype.html"%>
  3. <html>
  4. <head>
  5. <%@include file="/commons/include/form.jsp"%>
  6. <title>组织选择</title>
  7. <f:link href="tree/zTreeStyle.css"></f:link>
  8. <style type="text/css">
  9. html {
  10. overflow: hidden;
  11. }
  12. .ztree {
  13. overflow: auto;
  14. }
  15. .label {
  16. color: #6F8DC6;
  17. text-align:left;
  18. padding-right: 6px;
  19. padding-left: 0px;
  20. font-weight: bold;
  21. }
  22. .panel-search {
  23. min-width: 321px;
  24. padding-bottom: 3px;
  25. padding-left: 0px;
  26. padding-top: 3px;
  27. }
  28. .l-layout-right{left:578px;}
  29. </style>
  30. <script type="text/javascript"
  31. src="${ctx}/js/tree/jquery.ztree.js"></script>
  32. <script type="text/javascript">
  33. var dialog = frameElement.dialog; //调用页面的dialog对象(ligerui对象)、
  34. var scope =eval("("+dialog.get("scope")+")");
  35. var isSingle='${param.isSingle}';
  36. var orgTree = null;
  37. findStr = '';
  38. //树展开层数
  39. var expandDepth = 2;
  40. var type ="";
  41. var typeVal="";
  42. if(scope){
  43. type = scope.type;
  44. typeVal = scope.value;
  45. }
  46. forbidF5("Chrome");//禁止刷新页面
  47. $(function() {
  48. $("#defLayout").ligerLayout({
  49. leftWidth: 190,
  50. allowRightResize:false,
  51. allowLeftResize:false,
  52. allowTopResize:false,
  53. allowBottomResize:false,
  54. height: '90%',
  55. minLeftWidth:170,
  56. rightWidth:170
  57. });
  58. $('#demensionId').change(function(){
  59. var demensionId=$(this).val();
  60. loadTree(demensionId);
  61. });
  62. //首先加载行政维度的数据。
  63. loadTree(1);
  64. //快速查找
  65. handQuickFind();
  66. initData();
  67. var src="${ctx}/platform/system/sysOrg/selector.ht?isSingle=${param.isSingle}&type="+type+"&typeVal="+typeVal;
  68. $("#orgFrame").attr("src",src);
  69. });
  70. function handQuickFind(){
  71. $("input.quick-find").bind('keyup',function(){
  72. var str = $(this).val();
  73. if(!str)return;
  74. if(str==findStr)return;
  75. findStr = str;
  76. var tbody = $("#orgList"),
  77. firstTr = $('tr.hidden',tbody);
  78. $("tr",tbody).each(function(){
  79. var me = $(this),
  80. span = $('span',me),
  81. spanStr = span.html();
  82. if(!spanStr)return true;
  83. if(spanStr.indexOf(findStr)>-1){
  84. $(this).insertAfter(firstTr);
  85. }
  86. });
  87. });
  88. }
  89. //初始化父级窗口传进来的数据
  90. function initData(){
  91. //var obj = window.dialogArguments;
  92. var obj=dialog.get("arrys");
  93. if(obj&&obj.length>0){
  94. for(var i=0,c;c=obj[i++];){
  95. var data = c.id+'#'+c.name;
  96. if(c.name!=undefined&&c.name!="undefined"&&c.name!=null&&c.name!=""){
  97. add(data);
  98. }
  99. }
  100. }
  101. };
  102. function add(data) {
  103. var aryTmp = data.split("#");
  104. var orgId = aryTmp[0];
  105. var len = $("#org_" + orgId).length;
  106. if (len > 0) return;
  107. var roleTemplate = $("#orgTemplate").val();
  108. var html = roleTemplate.replace("#orgId", orgId)
  109. .replace("#data", data)
  110. .replace("#name", aryTmp[1]);
  111. $("#orgList").append(html);
  112. };
  113. //展开收起
  114. function treeExpandAll(type) {
  115. orgTree = $.fn.zTree.getZTreeObj("orgTree");
  116. orgTree.expandAll(type);
  117. };
  118. function treeExpand() {
  119. orgTree = $.fn.zTree.getZTreeObj("orgTree");
  120. var treeNodes = orgTree.transformToArray(orgTree.getNodes());
  121. for(var i=1;i<treeNodes.length;i++){
  122. if(treeNodes[i].children){
  123. orgTree.expandNode(treeNodes[i], true, false, false);
  124. }
  125. }
  126. };
  127. function treeFlesh(){
  128. var demId=$("#demensionId").val();
  129. loadTree(demId);
  130. }
  131. function loadTree(value) {
  132. var setting = {
  133. data: {
  134. key : {
  135. name: "orgName"
  136. },
  137. simpleData: {
  138. enable: true,
  139. idKey: "orgId",
  140. pIdKey: "orgSupId",
  141. rootPId: 0
  142. }
  143. },
  144. async: {
  145. enable: true,
  146. url:"${ctx}/platform/system/sysOrg/getTreeData.ht?demId="+value+"&type="+type+"&typeVal="+typeVal,
  147. autoParam:["orgId","orgSupId"]
  148. },
  149. callback:{
  150. onClick : treeClick,
  151. onAsyncSuccess: orgTreeOnAsyncSuccess
  152. }
  153. };
  154. orgTree=$.fn.zTree.init($("#orgTree"), setting);
  155. };
  156. //判断是否为子结点,以改变图标
  157. function orgTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
  158. if(treeNode){
  159. var children=treeNode.children;
  160. if(children.length==0){
  161. treeNode.isParent=true;
  162. orgTree = $.fn.zTree.getZTreeObj("orgTree");
  163. orgTree.updateNode(treeNode);
  164. }
  165. }
  166. };
  167. //选择分类
  168. function getSelectNode() {
  169. orgTree = $.fn.zTree.getZTreeObj("orgTree");
  170. var nodes = orgTree.getSelectedNodes();
  171. var node = nodes[0];
  172. if (node == null || node.orgId == 0)
  173. return '';
  174. return node.orgId;
  175. }
  176. function treeClick(event, treeId, treeNode) {
  177. //取得组织id
  178. var orgId = getSelectNode();
  179. var demId = $("#demensionId").val();
  180. var url = "${ctx}/platform/system/sysOrg/selector.ht?orgId=" + orgId + "&type="+type+"&typeVal="+typeVal+"&demId=" + demId+"&isSingle=${param.isSingle}";
  181. $("#orgFrame").attr("src", url);
  182. setOrgId(orgId,demId);
  183. }
  184. function setOrgId(orgId,demId){
  185. $("#orgId").val(orgId);
  186. $("#demId").val(demId);
  187. }
  188. function selectOrg() {
  189. var pleaseSelect= "请选择组织!";
  190. var aryOrg;
  191. if(isSingle=='true'){
  192. aryOrg = $('#orgFrame').contents().find(":input[name='orgId'][checked]");
  193. }else{
  194. aryOrg = $("input[name='org']", $("#orgList"));
  195. }
  196. if (aryOrg.length == 0) {
  197. alert(pleaseSelect);
  198. return;
  199. }
  200. var aryId = [];
  201. var aryName = [];
  202. var orgJson = [];
  203. aryOrg.each(function() {
  204. var data = $(this).val();
  205. var aryTmp = data.split("#");
  206. aryId.push(aryTmp[0]);
  207. aryName.push(aryTmp[1]);
  208. orgJson.push({
  209. id: aryTmp[0],
  210. name: aryTmp[1]
  211. });
  212. });
  213. var orgIds = aryId.join(",");
  214. var orgNames = aryName.join(",");
  215. var obj = {};
  216. obj.orgId = orgIds;
  217. obj.orgName = orgNames;
  218. obj.orgJson = orgJson;
  219. //window.returnValue = obj;
  220. dialog.get("sucCall")(obj);
  221. dialog.close();
  222. }
  223. /*KILLDIALOG*/
  224. function dellAll() {
  225. $("#orgList").empty();
  226. };
  227. //清空
  228. function clearOrg() {
  229. /* window.returnValue = {
  230. orgId: '',
  231. orgName: '',
  232. orgJson: []
  233. }; */
  234. var rtn={
  235. orgId: '',
  236. orgName: '',
  237. orgJson: []
  238. };
  239. dialog.get("sucCall")(rtn);
  240. dialog.close();
  241. }
  242. function selectMulti(obj) {
  243. if ($(obj).attr("checked") == "checked") {
  244. var data = $(obj).val();
  245. add(data);
  246. }
  247. };
  248. function del(obj) {
  249. var tr = $(obj).closest("tr");
  250. $(tr).remove();
  251. };
  252. function treeFresh() {
  253. loadTree(1);
  254. setTimeout(function() {
  255. curStatus = true;
  256. treeExpandAll(false, true);
  257. }, 100);
  258. }
  259. </script>
  260. <style type="text/css">
  261. html { overflow-x: hidden; }
  262. .ztree {
  263. overflow: auto;
  264. }
  265. .label {
  266. color: #6F8DC6;
  267. text-align: right;
  268. padding-right: 6px;
  269. padding-left: 0px;
  270. font-weight: bold;
  271. }
  272. .panel-search {
  273. min-width: 321px;
  274. padding-bottom: 3px;
  275. padding-left: 0px;
  276. padding-top: 3px;
  277. }
  278. .l-layout-right{left:578px;}
  279. </style>
  280. </head>
  281. <body>
  282. <div id="defLayout">
  283. <div position="left" title="组织树" style="float: left;width: 100% !important;height:95%;;">
  284. <div style="width:100%;">
  285. <select id="demensionId" style="width:99.8% !important;">
  286. <c:forEach var="dem" items="${demensionList}">
  287. <option value="${dem.demId}" <c:if test="${dem.demId==1 }">selected='selected'</c:if> >${dem.demName}</option>
  288. </c:forEach>
  289. </select>
  290. </div>
  291. <div class="tree-toolbar">
  292. <span class="toolBar">
  293. <div class="group">
  294. <a class="link reload" id="treeFresh" href="javascript:treeFlesh();">刷新</a>
  295. </div>
  296. <div class="l-bar-separator"></div>
  297. <div class="group">
  298. <a class="link expand" id="treeExpandAll"
  299. href="javascript:treeExpand()">展开</a>
  300. </div>
  301. <div class="l-bar-separator"></div>
  302. <div class="group">
  303. <a class="link collapse" id="treeCollapseAll" href="javascript:treeExpandAll(false)">收起</a>
  304. </div>
  305. </span>
  306. </div>
  307. <ul id="orgTree" class="ztree" style="overflow:auto;height:89%;"></ul>
  308. </div>
  309. <div position="center">
  310. <div class="l-layout-header">组织列表</div>
  311. <iframe id="orgFrame" name="orgFrame" height="95%" width="100%"
  312. frameborder="0" ></iframe>
  313. </div>
  314. <c:if test="${param.isSingle==false}">
  315. <div position="right" title="<span><a onclick='javascript:dellAll();' class='link del'>清空 </a><input type='text' class='quick-find' title='快速查询'/></span>" style="overflow: auto;height:95%;width:170px;">
  316. <table width="145" class="table-grid table-list" cellpadding="1" cellspacing="1">
  317. <tbody id="orgList">
  318. <tr class="hidden"></tr>
  319. </tbody>
  320. </table>
  321. </div>
  322. </c:if>
  323. </div>
  324. <div position="bottom" class="bottom" style='margin-top:10px;'>
  325. <a href='#' class='button' onclick="selectOrg()" style="margin-right:10px;" ><span class="icon ok"></span><span >选择</span></a>
  326. <a href="javascript:;" class="button" onclick="clearOrg()"><span class="icon cancel" ></span><span class="cance" >清空</span></a>
  327. <a href='#' class='button' style='margin-left:10px;' onclick="dialog.close()"><span class="icon cancel"></span><span >取消</span></a>
  328. </div>
  329. <textarea style="display: none;" id="orgTemplate">
  330. <tr id="org_#orgId">
  331. <td>
  332. <input type="hidden" name="org" value="#data"><span>#name</span>
  333. </td>
  334. <td style="width: 30px;" nowrap="nowrap"><a onclick="javascript:del(this);" class="link del" title="删除">&nbsp;</a> </td>
  335. </tr>
  336. </textarea>
  337. </body>
  338. </html>