userinfoSelect.ftl 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <!DOCTYPE HTML>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <#include "../layout/header.ftl"/>
  5. <#include "../layout/common.cssjs.ftl"/>
  6. <link type="text/css" rel="stylesheet" href="<@base />/static/css/minitable.css"/>
  7. <script type="text/javascript">
  8. function genderFormatter(value, row, index){
  9. if(value==1){
  10. return '<@locale code="userinfo.gender.female" />';
  11. }else{
  12. return '<@locale code="userinfo.gender.male" />';
  13. }
  14. };
  15. function onClick(event, treeId, treeNode) {
  16. $("#deptId").val(treeNode.id);
  17. $("#list").setGridParam({ postData: { deptId: treeNode.id} });
  18. $("#list").trigger('reloadGrid', [{page:1}]);
  19. }
  20. $(function () {
  21. $("#winClose").on("click",function(){
  22. var seldata=$.dataGridSelRowsData("#datagrid");
  23. console.log(seldata[0].id+" - "+seldata[0].fullName);
  24. $(".username", window.parent.document).val(seldata[0].username);
  25. $(".displayName", window.parent.document).val(seldata[0].displayName);
  26. $(".userId", window.parent.document).val(seldata[0].id);
  27. $.closeWindow();
  28. });
  29. var treeSettings={
  30. element : "orgsTree",
  31. rootId : "1",
  32. checkbox : null,
  33. onClick : onClick,
  34. onDblClick : null,
  35. url : "<@base/>/orgs/tree"
  36. };
  37. function singlePath(newNode) {
  38. if (newNode === curExpandNode) return;
  39. if (curExpandNode && curExpandNode.open==true) {
  40. var zTree = $.fn.zTree.getZTreeObj(treeSettings.element);
  41. if (newNode.parentTId === curExpandNode.parentTId) {
  42. zTree.expandNode(curExpandNode, false);
  43. } else {
  44. var newParents = [];
  45. while (newNode) {
  46. newNode = newNode.getParentNode();
  47. if (newNode === curExpandNode) {
  48. newParents = null;
  49. break;
  50. } else if (newNode) {
  51. newParents.push(newNode);
  52. }
  53. }
  54. if (newParents!=null) {
  55. var oldNode = curExpandNode;
  56. var oldParents = [];
  57. while (oldNode) {
  58. oldNode = oldNode.getParentNode();
  59. if (oldNode) {
  60. oldParents.push(oldNode);
  61. }
  62. }
  63. if (newParents.length>0) {
  64. for (var i = Math.min(newParents.length, oldParents.length)-1; i>=0; i--) {
  65. if (newParents[i] !== oldParents[i]) {
  66. zTree.expandNode(oldParents[i], false);
  67. break;
  68. }
  69. }
  70. } else {
  71. zTree.expandNode(oldParents[oldParents.length-1], false);
  72. }
  73. }
  74. }
  75. }
  76. curExpandNode = newNode;
  77. };
  78. function beforeExpand(treeId, treeNode) {
  79. var pNode = curExpandNode ? curExpandNode.getParentNode():null;
  80. var treeNodeP = treeNode.parentTId ? treeNode.getParentNode():null;
  81. var zTree = $.fn.zTree.getZTreeObj(""+treeSettings.element);
  82. for(var i=0, l=!treeNodeP ? 0:treeNodeP.children.length; i<l; i++ ) {
  83. if (treeNode !== treeNodeP.children[i]) {
  84. zTree.expandNode(treeNodeP.children[i], false);
  85. }
  86. }
  87. while (pNode) {
  88. if (pNode === treeNode) {
  89. break;
  90. }
  91. pNode = pNode.getParentNode();
  92. }
  93. if (!pNode) {
  94. singlePath(treeNode);
  95. }
  96. };
  97. $.fn.zTree.init(
  98. $("#"+treeSettings.element), //element
  99. {//json object
  100. check : {
  101. enable : treeSettings.checkbox
  102. },
  103. async : {
  104. enable : true,
  105. url : treeSettings.url,
  106. autoParam : ["id", "name=n", "level=lv"],
  107. dataType : "json",
  108. otherParam : {"otherParam":"zTreeAsyncTest",id:treeSettings.rootId},
  109. dataFilter : function (treeId, parentNode, childNodes) {
  110. if (!childNodes) return null;
  111. for (var i=0, l=childNodes.length; i<l; i++) {
  112. childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
  113. }
  114. return childNodes;
  115. }
  116. },
  117. data : {
  118. simpleData : {
  119. enable : true
  120. }
  121. },
  122. callback: {
  123. onClick : treeSettings.onClick,
  124. onDblClick : treeSettings.onDblClick,
  125. beforeAsync : function(treeId, treeNode){
  126. $.loading();
  127. },
  128. onAsyncSuccess : function(event, treeId, treeNode, msg){
  129. $.unloading();
  130. },
  131. //beforeExpand : beforeExpand,
  132. onExpand : function onExpand(event, treeId, treeNode) {
  133. curExpandNode = treeNode;
  134. }
  135. }
  136. }
  137. );//end tree
  138. });
  139. </script>
  140. </head>
  141. <body>
  142. <div>
  143. <input class="button btn btn-primary mr-3" style="float: right;" id="winClose" type="button" value="<@locale code="button.text.select" />" >
  144. </div>
  145. <!-- content -->
  146. <table class="table table-bordered" width="100%" >
  147. <tr>
  148. <td valign="top" class="td_1" style="vertical-align: top;">
  149. <div id="orgsTree" class="ztree"></div>
  150. </td>
  151. <td valign="top" class="td_1" style="vertical-align: top;">
  152. <table data-url="<@base/>/userinfo/grid"
  153. id="datagrid"
  154. data-toggle="table"
  155. data-classes="table table-bordered table-hover table-striped"
  156. data-click-to-select="true"
  157. data-pagination="true"
  158. data-total-field="records"
  159. data-page-list="[10, 25, 50, 100]"
  160. data-search="false"
  161. data-locale="zh-CN"
  162. data-query-params="dataGridQueryParams"
  163. data-query-params-type="pageSize"
  164. data-side-pagination="server">
  165. <thead>
  166. <tr>
  167. <th data-checkbox="true"></th>
  168. <th data-sortable="true" data-field="id" data-visible="false"><@locale code="userinfo.id"/></th>
  169. <th data-field="username"><@locale code="userinfo.username"/></th>
  170. <th data-field="displayName"><@locale code="userinfo.displayName"/></th>
  171. <th data-field="employeeNumber"><@locale code="userinfo.employeeNumber"/></th>
  172. <th data-field="organization"><@locale code="userinfo.organization"/></th>
  173. <th data-field="department"><@locale code="userinfo.department"/></th>
  174. <th data-field="jobTitle"><@locale code="userinfo.jobTitle"/></th>
  175. <th data-field="mobile" data-visible="false"><@locale code="userinfo.mobile"/></th>
  176. <th data-field="email" data-visible="false"><@locale code="userinfo.email"/></th>
  177. <th data-field="gender" data-formatter="genderFormatter" ><@locale code="userinfo.gender"/></th>
  178. </tr>
  179. </thead>
  180. </table>
  181. </td>
  182. </tr>
  183. </table>
  184. </body>
  185. </html>