userSelect.jsp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <t:base type="jquery,easyui,tools,DatePicker"></t:base>
  4. <link rel="stylesheet" type="text/css" href="plug-in/ztree/css/zTreeStyle.css">
  5. <script type="text/javascript" src="plug-in/ztree/js/jquery.ztree.core-3.5.min.js"></script>
  6. <script type="text/javascript" src="plug-in/ztree/js/jquery.ztree.excheck-3.5.min.js"></script>
  7. <%--update-start--Author:wangkun Date:20160327 TASK #956 【UI标签】封装选择用户标签--%>
  8. <script type="text/javascript">
  9. // var setting = {
  10. // check: {
  11. // enable: false,
  12. // chkboxType: { "Y": "", "N": "" }
  13. // },
  14. // data: {
  15. // simpleData: {
  16. // enable: true
  17. // }
  18. // },callback: {
  19. // onExpand: zTreeOnExpand,
  20. // onClick:onClick
  21. // }
  22. // };
  23. // function onClick(event, treeId, treeNode){
  24. // var departname = treeNode.name;
  25. // var queryParams = $('#userList1').datagrid('options').queryParams;
  26. // queryParams.orgIds = treeNode.id;
  27. // $('#userList1').datagrid('options').queryParams=queryParams;
  28. // $("#userList1").datagrid("reload");
  29. // }
  30. // //加载展开方法
  31. // function zTreeOnExpand(event, treeId, treeNode){
  32. // var treeNodeId = treeNode.id;
  33. // $.post(
  34. // 'departController.do?getDepartInfo',
  35. // {parentid:treeNodeId},
  36. // function(data){
  37. // var d = data; // ------ $.parseJSON(data);
  38. // if (d.success) {
  39. // var dbDate = eval(d.msg);
  40. // var tree = $.fn.zTree.getZTreeObj("departSelect");
  41. //
  42. // if (!treeNode.zAsync){
  43. // tree.addNodes(treeNode, dbDate);
  44. // treeNode.zAsync = true;
  45. // } else{
  46. // tree.reAsyncChildNodes(treeNode, "refresh");
  47. // }
  48. // //tree.addNodes(treeNode, dbDate);
  49. // }
  50. // }
  51. // );
  52. // }
  53. // //首次进入加载level为1的
  54. // $(function(){
  55. // $.post(
  56. // 'departController.do?getDepartInfo',
  57. // function(data){
  58. // var d = data; // ------ $.parseJSON(data);
  59. // if (d.success) {
  60. // var dbDate = eval(d.msg);
  61. // $.fn.zTree.init($("#departSelect"), setting, dbDate);
  62. // }
  63. // }
  64. // );
  65. // });
  66. //编写自定义JS代码获得输入框中的值等父级页面调用取值
  67. function getReason(){
  68. var strId="";
  69. var strName="";
  70. var mobilePhone = "";
  71. var selectRows = $("#userList1").datagrid('getSelections');
  72. for(var i=0;i<selectRows.length;i++){
  73. for(var key in selectRows[i]){
  74. //console.log(key+"======="+selectRows[i][key]);
  75. if(key=="id"){
  76. if(strId.length>0){
  77. strId+=","+selectRows[i][key];
  78. }else{
  79. strId=selectRows[i][key];
  80. }
  81. }
  82. if(key=="realName"){
  83. if(strName.length>0){
  84. strName+=","+selectRows[i][key];
  85. }else{
  86. strName=selectRows[i][key];
  87. }
  88. }
  89. if(key=="mobilePhone"){
  90. if(mobilePhone.length>0){
  91. mobilePhone+=","+selectRows[i][key];
  92. }else{
  93. mobilePhone=selectRows[i][key];
  94. }
  95. }
  96. }
  97. }
  98. //var strData='[{"strShiftid":"'+strShiftid+'","strShiftName":"'+strShiftName+'","strShiftType":"'+strShiftType+'"}]';
  99. var strData='[{"strId":"'+strId+'","strName":"'+strName+'","mobilePhone":"'+mobilePhone+'"}]';
  100. localStorage.removeItem("selectRowsData");
  101. return strData;
  102. }
  103. function getSelectedRow(){
  104. var selectRows = $("#userList1").datagrid('getSelections');
  105. localStorage.removeItem("selectRowsData");
  106. return selectRows;
  107. }
  108. </script>
  109. <body style="overflow-y: hidden" scroll="no">
  110. <div id="mainlist" class="easyui-layout" fit="true">
  111. <div region="center" style="padding:0px;border:0px">
  112. <t:datagrid checkbox="${checkbox}" name="userList1" title="common.user.select" actionUrl="" autoLoadData="false"
  113. fit="true" fitColumns="true" idField="id" queryMode="group" sortName="createDate" sortOrder="desc">
  114. <t:dgCol title="员工姓名" field="realName"></t:dgCol>
  115. <t:dgCol title="工号" field="userNum" width="120"></t:dgCol>
  116. <t:dgCol title="手机号码" field="mobilePhone" width="120"></t:dgCol>
  117. <t:dgCol title="员工身份证号" field="idcard" width="120"></t:dgCol>
  118. <t:dgCol title="员工居住地" field="address" width="120"></t:dgCol>
  119. <t:dgCol title="所属部门" sortable="false" field="glcName"></t:dgCol>
  120. <t:dgCol title="common.id" field="id" hidden="true"></t:dgCol>
  121. <t:dgCol title="员工岗位" field="postId" dictionary="t_bus_post,id,post_name" width="120"></t:dgCol>
  122. <t:dgCol title="员工职务" field="belongDutiesId" dictionary="t_bus_duties,id,duties_name, and delete_flag != '1' and status != '1' " width="120"></t:dgCol>
  123. <t:dgCol title="common.username" sortable="false" field="userName" hidden="true"></t:dgCol>
  124. </t:datagrid>
  125. <div style="padding: 3px; height: 65px;">
  126. <div style="width: 250px;float: left;">
  127. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="员工姓名">
  128. 员工姓名:
  129. </span>
  130. <input type="text" name="realName" id="realName" style="width: 160px; height: 24px;" class="text">
  131. </div>
  132. <div style="width: 250px;float: left;">
  133. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="工号">
  134. 工号:
  135. </span>
  136. <input type="text" name="userNum" id="userNum" style="width: 160px; height: 24px;" class="text">
  137. </div>
  138. <div style="width: 250px;float: left;">
  139. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="所属部门">
  140. 所属部门:
  141. </span>
  142. <t:dictSelect field="glcName" id="glcName" dictTable="t_s_depart" dictField="departname" dictText="departname" dictCondition="where org_type != '1' "/>
  143. </div>
  144. <div style="width: 250px;float: left;">
  145. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="员工岗位">
  146. 员工岗位:
  147. </span>
  148. <t:dictSelect field="postId" id="postId" dictTable="t_bus_post" dictField="id" dictText="post_name" dictCondition="where delete_flag=0 and status=0"/>
  149. </div>
  150. <div style="width: 250px;float: left;">
  151. <span style="vertical-align:middle;display:-moz-inline-box;display:inline-block;width: 80px;text-align:right;" title="员工职务">
  152. 员工职务:
  153. </span>
  154. <t:dictSelect field="belongDutiesId" id="belongDutiesId" dictTable="t_bus_duties" dictField="id" dictText="duties_name" dictCondition="where delete_flag=0 and status=0"/>
  155. </div>
  156. <br>
  157. <div style="width: 200px;float: right;">
  158. <a href="#" class="easyui-linkbutton" iconCls="icon-reload" onclick="clearSearch();" style="float: right;"><t:mutiLang langKey="重置"/></a>
  159. <a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="getResult();" style="float: right;"><t:mutiLang langKey="common.query"/></a>
  160. </div>
  161. </div>
  162. </div>
  163. </div>
  164. </body>
  165. <script type="text/javascript">
  166. // datagrid组件name属性值
  167. const datagridName = "#userList1";
  168. // 监听行点击事件并更新选中行信息
  169. $(function(){
  170. getResult();
  171. $(datagridName).datagrid({
  172. onClickRow : function() {
  173. setSelectedRowToLoacalStorage();
  174. }
  175. });
  176. })
  177. function clearSearch() {
  178. $('#realName').val("");
  179. $('#userNum').val("");
  180. $('#glcName').val("");
  181. $('#postId').val("");
  182. $('#belongDutiesId').val("");
  183. getResult();
  184. }
  185. function getResult() {
  186. var options = $(datagridName).datagrid("getPager").data("pagination").options;
  187. var curr = options.pageNumber;
  188. var size = options.pageSize;
  189. let queryUrl = "userController.do?datagridToBody";
  190. $.ajax({
  191. url:queryUrl,
  192. data:{
  193. pageNum:curr,
  194. pageSize:size,
  195. realName:$('#realName').val(),
  196. userNum:$('#userNum').val(),
  197. glcName:$('#glcName').val(),
  198. postId:$('#postId').val(),
  199. belongDutiesId:$('#belongDutiesId').val()
  200. },
  201. type:"post",
  202. success:function(data){
  203. if(data){
  204. loadSuccess(data);
  205. }
  206. }
  207. });
  208. }
  209. // 返回选中的行信息
  210. function setSelectedRowToLoacalStorage(){
  211. let selectRowsData = $(datagridName).datagrid('getSelections');
  212. localStorage.setItem("selectRowsData",JSON.stringify(selectRowsData));
  213. }
  214. // 处理返回数据
  215. function loadSuccess(data){
  216. let selectRecordIds = [];
  217. if(localStorage.getItem("selectRowsData")) {
  218. let selectRowsData = JSON.parse(localStorage.getItem("selectRowsData"));
  219. if(selectRowsData && selectRowsData.length > 0){
  220. let selectRowsData_ = [];
  221. let newLoad = false;
  222. // 检查上一次选中行和当前数据差距
  223. selectRowsData.forEach(item=>{
  224. let hasId = false;
  225. for (let i = 0; i < data.results.length ; i++) {
  226. let item2 = data.results[i];
  227. if(item2.id === item.id){
  228. selectRecordIds.push(item.id);
  229. hasId = true;
  230. break;
  231. }
  232. }
  233. if(!hasId){
  234. newLoad = true;
  235. selectRecordIds.push(item.id);
  236. selectRowsData_.push(item);
  237. }
  238. })
  239. // 追加上一次选择行
  240. if(newLoad && selectRowsData_.length > 0){
  241. data.results = data.results.concat(selectRowsData_);
  242. }
  243. }
  244. }
  245. try {
  246. $(datagridName).datagrid({
  247. data: data,
  248. loadFilter:function(data){
  249. return {
  250. rows: data.results,
  251. total: data.total
  252. }
  253. },
  254. onBeforeLoad:function(val){
  255. return false;
  256. }
  257. });
  258. }catch (e) {
  259. layer.alert("数据解析异常,请联系管理员!");
  260. }
  261. // 恢复选中行
  262. if(selectRecordIds.length > 0){
  263. for(let i=0;i<selectRecordIds.length;i++){
  264. if(selectRecordIds[i] !== ""){
  265. $(datagridName).datagrid("selectRecord",selectRecordIds[i]);
  266. }
  267. }
  268. }
  269. }
  270. </script>