userinfoSelect.ftl 6.0 KB

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