dingAttendanceinfoList.jsp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  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="css/commoncss.css"/>
  5. <div class="easyui-layout" fit="true">
  6. <div region="center" style="padding:0px;border:0px">
  7. <div id="dingAttendanceinfoListtb" style="padding:3px; height: auto">
  8. <div name="searchColums" id="searchColums">
  9. <table style="height:40px;padding:0px" cellpadding="0" cellspacing="1" >
  10. <tbody>
  11. <tr>
  12. <td align="right" style="width: 74px;">
  13. <label class="Validform_label">
  14. 考勤时间:
  15. </label>
  16. </td>
  17. <td class="value">
  18. <div style="display:inline">
  19. <input id="attendanceStime" name="attendanceStime" type="text" style="width: 120px" class="Wdate" onClick="WdatePicker()" onblur="probationCount()" placeholder="YYYY-MM-DD" value='<fmt:formatDate value='${personnelInfo.contractStime}' type="date" pattern="yyyy-MM-dd"/>'/>
  20. ~
  21. </div>
  22. <div style="display:inline">
  23. <input id="attendanceEtime" name="attendanceEtime" type="text" style="width: 120px" class="Wdate" onClick="WdatePicker()" onblur="probationCount()" placeholder="YYYY-MM-DD" value='<fmt:formatDate value='${personnelInfo.contractEtime}' type="date" pattern="yyyy-MM-dd"/>'/>
  24. </div>
  25. </td>
  26. <td align="right" style="width: 74px;">
  27. <label class="Validform_label">
  28. 所属单位:
  29. </label>
  30. </td>
  31. <td class="value">
  32. <input readonly="true" type="text" id="departname" name="departname" style="width: 120px" placeholder="请选择所属单位" onclick="openDepartmentSelect()">
  33. <input id="orgIds" name="orgIds" type="hidden" value="">
  34. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-select" id="departSearch" onclick="openDepartmentSelect()">选择</a>
  35. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-clean" id="departRedo" onclick="callbackClean()">清空</a>
  36. </td>
  37. <!--
  38. <td align="right">
  39. <label class="Validform_label">
  40. 员工工号:
  41. </label>
  42. </td>
  43. <td class="value">
  44. <input id=userCode name="userCode" type="text" style="width: 157px; " class="inputxt" placeholder="请输入员工工号">
  45. </td>
  46. -->
  47. <td align="right" style="width: 74px;">
  48. <label class="Validform_label">
  49. 员工姓名:
  50. </label>
  51. </td>
  52. <td class="value">
  53. <input id="userName" name="userName" type="text" style="width: 120px;" class="inputxt" placeholder="请输入员工姓名">
  54. </td>
  55. </tr>
  56. </tbody>
  57. </table>
  58. <div style="border-bottom-width:0;height:30px;" class="datagrid-toolbar">
  59. <span style="float:left;" >
  60. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-synchronization" onclick="synchronization()">同步</a>
  61. </span>
  62. <span style="float:left;" >
  63. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-putout" operationCode="putout" onclick="ExportXls()">导出</a>
  64. </span>
  65. <div style="float: right;">
  66. <span>
  67. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-search" id="dingAttendanceinfoSearch" onclick="dingAttendanceinfoListsearch()">查询</a>
  68. </span>
  69. <span>
  70. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-reload" id="dingAttendanceinfoRedo" onclick="searchReset('dingAttendanceinfoList')">重置</a>
  71. </span>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <t:datagrid name="dingAttendanceinfoList" fitColumns="true" title="考勤数据管理" actionUrl="dingAttendanceinfoController.do?datagrid" idField="id" fit="true" queryMode="group">
  77. <t:dgCol title="主键" field="id" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  78. <t:dgCol title="创建人名称" field="createName" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  79. <t:dgCol title="创建人登录名称" field="createBy" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  80. <t:dgCol title="创建日期" field="createDate" formatter="yyyy-MM-dd" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  81. <t:dgCol title="更新人名称" field="updateName" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  82. <t:dgCol title="更新人登录名称" field="updateBy" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  83. <t:dgCol title="更新日期" field="updateDate" formatter="yyyy-MM-dd" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  84. <t:dgCol title="所属部门" field="sysOrgCode" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  85. <t:dgCol title="所属公司" field="sysCompanyCode" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  86. <t:dgCol title="流程状态" field="bpmStatus" hidden="true" queryMode="single" dictionary="bpm_status" width="120" sortable="false"></t:dgCol>
  87. <t:dgCol title="员工ID" field="userId" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  88. <t:dgCol title="员工工号" field="userCode" queryMode="single" width="40" sortable="false"></t:dgCol>
  89. <t:dgCol title="员工姓名" field="realname" queryMode="single" width="40" sortable="false"></t:dgCol>
  90. <t:dgCol title="所属单位" field="belongUnitid" queryMode="single" dictionary="t_s_depart,id,departname, and org_type != '1' " width="120" sortable="false"></t:dgCol>
  91. <t:dgCol title="考勤日期" field="attendanceDate" queryMode="single" width="120" formatter="yyyy-MM-dd" sortable="false" extendParams="align:'center',"></t:dgCol>
  92. <t:dgCol title="考勤时间" field="attendanceTimeString" queryMode="single" width="120" sortable="false" extendParams="align:'center'," ></t:dgCol>
  93. <t:dgCol title="钉钉考勤唯一标识" field="dingUniqueid" hidden="true" queryMode="single" width="120" sortable="false"></t:dgCol>
  94. </t:datagrid>
  95. </div>
  96. </div>
  97. <script src = "webpage/cn/com/lzt/dingattendanceinfo/dingAttendanceinfoList.js"></script>
  98. <script type="text/javascript">
  99. function openDepartmentSelect() {
  100. // $.dialog.setting.zIndex = getzIndex();
  101. // var orgIds = $("#orgIds").val();
  102. // /** 按照登录用户的组织查询所有子组织
  103. // $.dialog({content: 'url:departController.do?departSelectByIds&orgIds='+orgIds, zIndex: 2100, title: '所属部门列表', lock: true, width: '400px', height: '350px', opacity: 0.4, button: [
  104. // {name: '<t:mutiLang langKey="common.confirm"/>', callback: callbackDepartmentSelect, focus: true},
  105. // {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
  106. // ]}).zindex();
  107. // */
  108. // // 查询所有组织结构
  109. // $.dialog({content: 'url:departController.do?departSelect&orgIds='+orgIds, zIndex: getzIndex(), title: '所属部门列表', lock: true, width: '400px', height: '350px', opacity: 0.4, button: [
  110. // {name: '<t:mutiLang langKey="common.confirm"/>', callback: callbackDepartmentSelect, focus: true},
  111. // {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
  112. // ]}).zindex();
  113. var orgIds = $("#orgIds").val();
  114. $.dialog({
  115. content: 'url:dialogDealController.do?projectDepartTableAll&ids='+orgIds, zIndex: getzIndex(), title: '项目名称列表', lock: true, width: '600px', height: '400px', opacity: 0.4, button: [
  116. {name: '<t:mutiLang langKey="common.confirm"/>', callback: function (){
  117. var iframe = this.iframe.contentWindow;
  118. if(iframe.getReason().length>0){
  119. var strData=eval(iframe.getReason());
  120. for(var key in strData[0]){
  121. if(key=="strPId"){
  122. $("#orgIds").val(strData[0][key]);
  123. }else if(key=="strDepartName"){
  124. $("#departname").val(strData[0][key]);
  125. }
  126. }
  127. }
  128. }, focus: true},
  129. {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){
  130. $('#departname').val('');
  131. $('#orgIds').val('');
  132. }}
  133. ]}).zindex();
  134. }
  135. function callbackDepartmentSelect() {
  136. /** 按照登录用户的组织查询所有子组织
  137. var iframe = this.iframe.contentWindow;
  138. var treeObj = iframe.$.fn.zTree.getZTreeObj("departSelectByIds");
  139. var nodes = treeObj.getCheckedNodes(true);
  140. if(nodes.length>0){
  141. var ids='',names='';
  142. for(i=0;i<nodes.length;i++){
  143. var node = nodes[i];
  144. ids += node.id+',';
  145. names += node.name+',';
  146. }
  147. ids = ids.substring(0,ids.length - 1);
  148. names = names.substring(0,names.length - 1);
  149. $('#departname').val(names);
  150. $('#departname').blur();
  151. $('#orgIds').val(ids);
  152. }
  153. */
  154. // 查询所有组织结构
  155. // var iframe = this.iframe.contentWindow;
  156. // var treeObj = iframe.$.fn.zTree.getZTreeObj("departSelect");
  157. // var nodes = treeObj.getCheckedNodes(true);
  158. // if(nodes.length>0){
  159. // var ids='',names='';
  160. // for(i=0;i<nodes.length;i++){
  161. // var node = nodes[i];
  162. // ids += node.id+',';
  163. // names += node.name+',';
  164. // }
  165. // // 把最后的逗号去掉
  166. // names = names.substring(0,names.length - 1);
  167. // $('#departname').val(names);
  168. // $('#departname').blur();
  169. // $('#orgIds').val(ids);
  170. // }
  171. }
  172. function callbackClean(){
  173. $('#departname').val('');
  174. $('#orgIds').val('');
  175. }
  176. function synchronization() {
  177. var attendanceStime = $("#attendanceStime").val();
  178. var attendanceEtime = $("#attendanceEtime").val();
  179. if(!attendanceStime || !attendanceEtime) {
  180. layer.alert("开始时间和结束时间不能为空,请重新选择");
  181. return;
  182. }
  183. var attendanceStimeTemp = attendanceStime + " 00:00:00";
  184. var attendanceEtimeTemp = attendanceEtime + " 23:59:59";
  185. var dateDiff = new Date(attendanceEtimeTemp) - new Date(attendanceStimeTemp);
  186. var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));
  187. if (dayDiff >= 7) {
  188. layer.alert("同步的开始时间和结束时间最大间隔为7天,请重新选择");
  189. return;
  190. }
  191. var url = "dingAttendanceinfoController.do?signRecordSynchronization&attendanceStime=" + attendanceStime + "&attendanceEtime=" + attendanceEtime;
  192. $.ajax({
  193. async : false,
  194. cache : false,
  195. type : 'POST',
  196. url : url,// 请求的action路径
  197. error : function() {// 请求失败处理函数
  198. },
  199. success : function(data) {
  200. var d = data; // ------ $.parseJSON(data);
  201. if (d.success) {
  202. $("#dingAttendanceinfoList").datagrid('reload');
  203. var msg = d.msg;
  204. tip(msg);
  205. } else {
  206. layer.alert(d.msg);
  207. }
  208. }
  209. });
  210. }
  211. //导出
  212. function ExportXls() {
  213. JeecgExcelExport("dingAttendanceinfoController.do?exportXls","dingAttendanceinfoList");
  214. }
  215. /**
  216. //导入
  217. function ImportXls() {
  218. openuploadwin('Excel导入', 'dingAttendanceinfoController.do?upload', "dingAttendanceinfoList");
  219. }
  220. //模板下载
  221. function ExportXlsByT() {
  222. JeecgExcelExport("dingAttendanceinfoController.do?exportXlsByT","dingAttendanceinfoList");
  223. }
  224. //新增
  225. function add(title,url,id){
  226. window.location.href=url
  227. }
  228. //修改
  229. function update(title,url, id){
  230. updateNotCreateWin("修改",url, "dingAttendanceinfoList",false);
  231. }
  232. //查看
  233. function view(title,url, id){
  234. viewNotCreateWin("查看",url, "dingAttendanceinfoList",false)
  235. }
  236. */
  237. </script>