arrangeDutyList.jsp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  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. <!-- <title>班次设定</title> -->
  6. <div class="easyui-layout" fit="true">
  7. <div region="center" style="padding:0px;border:0px">
  8. <t:datagrid name="arrangeDutyList" checkbox="false" fitColumns="false" title="班次设定" actionUrl="arrangeDutyController.do?datagrid&departid=${departid}" idField="id" fit="true" queryMode="group">
  9. <t:dgCol title="主键" field="id" hidden="true" queryMode="single" width="120"></t:dgCol>
  10. <t:dgCol title="班次名称" field="dutyName" queryMode="single" width="120"></t:dgCol>
  11. <t:dgCol title="班次类型" field="dutyType" query="true" queryMode="single" dictionary="dutyType" width="120"></t:dgCol>
  12. <%-- <t:dgCol title="项目岗位" field="pjtpostDetailId" query="true" queryMode="single" dictionary="t_bus_project_post_detail,id,ptj_post_name" width="120"></t:dgCol> --%>
  13. <t:dgCol title="项目" field="pid" query="false" queryMode="single" dictionary="t_s_depart,id,departname, and org_type != '1' " width="200"></t:dgCol>
  14. <t:dgCol title="正常工作时间" field="normalworkStime" style="text-align: center;" queryMode="single" width="120"></t:dgCol>
  15. <t:dgCol title="正常下班时间" field="normalworkEtime" hidden="true" queryMode="single" width="120"></t:dgCol>
  16. <t:dgCol title="开始打卡分钟数" field="spunchMinute" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
  17. <t:dgCol title="结束打卡分钟数" field="epunchMinute" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
  18. <t:dgCol title="总工时(小时)" field="datumWorkhours" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
  19. <t:dgCol title="班次工时(小时)" field="shiftWorkhours" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
  20. <t:dgCol title="值班时间" field="ondutyStime" style="text-align: center;" queryMode="single" width="120"></t:dgCol>
  21. <t:dgCol title="值班结束时间" field="ondutyEtime" hidden="true" queryMode="single" width="120"></t:dgCol>
  22. <t:dgCol title="值班工时" field="ondutyWorkhours" hidden="true" queryMode="single" width="120"></t:dgCol>
  23. <t:dgCol title="超时加班时间" field="timeOutOvertimeStime" style="text-align: center;" queryMode="single" width="120"></t:dgCol>
  24. <t:dgCol title="超时加班结束时间" field="timeOutOvertimeEtime" hidden="true" queryMode="single" width="120"></t:dgCol>
  25. <t:dgCol title="超时加班时长(小时)" field="timeOutOvertimeHours" style="text-align: right;" queryMode="single" width="130"></t:dgCol>
  26. <t:dgCol title="班次餐补" field="dutyMealid" queryMode="single" dictionary="t_bus_meals_subsidy,id,subsidy_name" width="120"></t:dgCol>
  27. <t:dgCol title="备注" field="remark" showLen="10" queryMode="single" width="120"></t:dgCol>
  28. <t:dgCol title="创建人名称" field="createName" hidden="true" queryMode="single" width="120"></t:dgCol>
  29. <t:dgCol title="创建人登录名称" field="createBy" hidden="true" queryMode="single" width="120"></t:dgCol>
  30. <t:dgCol title="创建日期" field="createDate" formatter="yyyy-MM-dd hh:mm:ss" hidden="true" queryMode="single" width="120"></t:dgCol>
  31. <t:dgCol title="更新人名称" field="updateName" hidden="true" queryMode="single" width="120"></t:dgCol>
  32. <t:dgCol title="更新人登录名称" field="updateBy" hidden="true" queryMode="single" width="120"></t:dgCol>
  33. <t:dgCol title="更新日期" field="updateDate" formatter="yyyy-MM-dd hh:mm:ss" hidden="true" queryMode="single" width="120"></t:dgCol>
  34. <t:dgCol title="所属部门" field="sysOrgCode" hidden="true" queryMode="single" width="120"></t:dgCol>
  35. <t:dgCol title="所属公司" field="sysCompanyCode" hidden="true" queryMode="single" width="120"></t:dgCol>
  36. <t:dgCol title="状态" field="status" style="text-align: center;" queryMode="single" query="true" replace="已停用_1,已启用_0" defaultVal="0" width="120"></t:dgCol>
  37. <t:dgCol title="逻辑删除标识" field="deleteFlag" hidden="true" queryMode="single" dictionary="del_flag" width="120"></t:dgCol>
  38. <t:dgCol title="操作" field="opt"></t:dgCol>
  39. <t:dgFunOpt exp="status#eq#0" funname="changeStatus(id,status)" urlclass="ace_button" urlfont="fa-toggle-off" urlStyle="background-color:#f47920;" title=" 停用"></t:dgFunOpt>
  40. <t:dgFunOpt exp="status#eq#1" funname="changeStatus(id,status)" urlclass="ace_button" urlfont="fa-toggle-on" urlStyle="background-color:#66CD00;" title=" 启用"></t:dgFunOpt>
  41. <%--
  42. <t:dgDelOpt title="删除" url="arrangeDutyController.do?doDel&id={id}" urlclass="ace_button" urlfont="fa-trash-o"/>
  43. <t:dgToolBar title="录入" icon="icon-add" operationCode="add" url="arrangeDutyController.do?goAdd" funname="add"></t:dgToolBar>
  44. <t:dgToolBar title="修改" icon="icon-edit" operationCode="edit" url="arrangeDutyController.do?goUpdate" funname="update"></t:dgToolBar>
  45. <t:dgToolBar title="批量删除" icon="icon-remove" operationCode="remove" url="arrangeDutyController.do?doBatchDel" funname="deleteALLSelect"></t:dgToolBar>
  46. <t:dgToolBar title="查看" icon="icon-search" url="arrangeDutyController.do?goUpdate" funname="detail"></t:dgToolBar>
  47. <t:dgToolBar title="导入" icon="icon-putout" operationCode="put" funname="ImportXls"></t:dgToolBar>
  48. <t:dgToolBar title="导出" icon="icon-put" operationCode="put" funname="ExportXls"></t:dgToolBar>
  49. <t:dgToolBar title="模板下载" icon="icon-putout" operationCode="putout" funname="ExportXlsByT"></t:dgToolBar> --%>
  50. <t:dgToolBar title="录入" icon="icon-add" operationCode="add" url="arrangeDutyController.do?goAdd" funname="add"></t:dgToolBar>
  51. <t:dgToolBar title="修改" icon="icon-edit" operationCode="edit" url="arrangeDutyController.do?goUpdate" funname="update"></t:dgToolBar>
  52. <%-- <t:dgToolBar title="删除" icon="icon-remove" operationCode="remove" url="" funname="logicDel"></t:dgToolBar>
  53. <t:dgToolBar title="启用" icon="icon-enable" url="" funname="enableObj"></t:dgToolBar>
  54. <t:dgToolBar title="停用" icon="icon-disable" url="" funname="disableObj"></t:dgToolBar>--%>
  55. <t:dgToolBar title="导出" icon="icon-put" operationCode="put" funname="ExportXls"></t:dgToolBar>
  56. <t:dgToolBar title="启用" icon="icon-enable" funname="enableObj"></t:dgToolBar>
  57. <t:dgToolBar title="停用" icon="icon-disable" funname="disableObj"></t:dgToolBar>
  58. </t:datagrid>
  59. </div>
  60. <script>
  61. $(function() {
  62. var datagrid = $("#arrangeDutyListtb");
  63. datagrid.find("div[name='searchColums']").find("form#arrangeDutyListForm").children("span:first").before($("#tempSearchColums1 div[name='searchColums']").html());
  64. //datagrid.find("div[name='searchColums']").find("form#arrangeDutyListForm").children("span:first").next("span").append($("#tempSearchColums1 div[name='searchColums']").html());
  65. //datagrid.find("div[name='searchColums']").find("form#arrangeDutyListForm").children("span:first").append($("#tempSearchColums div[name='searchColums']").html());
  66. /* datagrid.before($("#tempSearchColums div[name='searchColums']").html()); */
  67. //datagrid.children(".datagrid-toolbar").before($("#tempSearchColums1 div[name='searchColums1']").html());
  68. //datagrid.children(".datagrid-toolbar").children("span:first").after($("#tempSearchColums2 div[name='searchColums2']").html());
  69. $("#tempSearchColums1").html('');
  70. $("#searchColums").attr("style","margin:23px 0 18px 0;");
  71. datagrid.find("div[name='searchColums']").next("div").children("span:first").next("span").attr("style","float:right;margin-bottom:4px;");
  72. });
  73. </script>
  74. <div id="tempSearchColums1" style="display: none;">
  75. <div name="searchColums">
  76. <label class="Validform_label" >
  77. &nbsp;&nbsp;&nbsp;&nbsp; 项目名称:
  78. </label>
  79. <input readonly="true" type="text" id="departname" name="departname" value="${departname}" placeholder="请选择项目名称" onclick="openDepartmentSelect()">
  80. <input id="pid" name=pid type="hidden" value="${departid},">
  81. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-select" id="departSearch" onclick="openDepartmentSelect()">选择</a>
  82. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-clean" id="departRedo" onclick="callbackClean()">清空</a>
  83. </div>
  84. </div>
  85. </div>
  86. <script src = "webpage/cn/com/lzt/arrangeduty/arrangeDutyList.js"></script>
  87. <script type="text/javascript">
  88. //导入
  89. function ImportXls() {
  90. openuploadwin('Excel导入', 'arrangeDutyController.do?upload', "arrangeDutyList");
  91. }
  92. //导出
  93. function ExportXls() {
  94. JeecgExcelExport("arrangeDutyController.do?exportXls","arrangeDutyList");
  95. }
  96. //模板下载
  97. function ExportXlsByT() {
  98. JeecgExcelExport("arrangeDutyController.do?exportXlsByT","arrangeDutyList");
  99. }
  100. //新增
  101. function add(title,url,id){
  102. window.location.href=url
  103. }
  104. //修改
  105. function update(title,url, id){
  106. var date = new Date();
  107. var day = date.getDate();
  108. if(day> 1 && day <6){
  109. layer.alert("每月2日~5日为考勤和工资核算期, 不能修改班次");
  110. return;
  111. }
  112. updateNotCreateWin("修改",url, "arrangeDutyList",false);
  113. }
  114. //查看
  115. function view(title,url, id){
  116. viewNotCreateWin("查看",url, "arrangeDutyList",false)
  117. }
  118. //选择项目名称,列表================
  119. function openDepartmentSelect() {
  120. //$.dialog.setting.zIndex = getzIndex();
  121. var orgIds = $("#pid").val();
  122. $.dialog({
  123. content: 'url:dialogDealController.do?projectDepartTablePart&ids='+orgIds, zIndex: getzIndex(), title: '项目名称列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  124. {name: '<t:mutiLang langKey="common.confirm"/>', callback: function (){
  125. var iframe = this.iframe.contentWindow;
  126. if(iframe.getReason().length>0){
  127. var strData=eval(iframe.getReason());
  128. for(var key in strData[0]){
  129. if(key=="strPId"){
  130. $("#pid").val(strData[0][key]);
  131. }else if(key=="strDepartName"){
  132. $("#departname").val(strData[0][key]);
  133. }
  134. }
  135. }
  136. }, focus: true},
  137. {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
  138. ]}).zindex();
  139. }
  140. function callbackClean(){
  141. $('#departname').val('');
  142. $('#pid').val('');
  143. }
  144. //选择项目名称列表================
  145. /* //选择项目名称zTree================
  146. function openDepartmentSelect() {
  147. //$.dialog.setting.zIndex = getzIndex();
  148. var orgIds = $("#pid").val();
  149. $.dialog({content: 'url:projarrangeDetailController.do?departZTreeSelect&orgIds='+orgIds, zIndex: getzIndex(), title: '所属部门列表', lock: true, width: '400px', height: '350px', opacity: 0.4, button: [
  150. {name: '<t:mutiLang langKey="common.confirm"/>', callback: callbackDepartmentSelect, focus: true},
  151. {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
  152. ]}).zindex();
  153. }
  154. function callbackDepartmentSelect() {
  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. $('#departname').val(names);
  166. $('#departname').blur();
  167. $('#pid').val(ids);
  168. }
  169. }
  170. function callbackClean(){
  171. $('#departname').val('');
  172. $('#pid').val('');
  173. }
  174. //选择项目名称zTree================ */
  175. //班次状态启用
  176. function enableObj(){
  177. //var ids = [];
  178. var ids;
  179. var rows = $("#arrangeDutyList").datagrid('getSelections');
  180. if (rows.length > 0) {
  181. if(rows[0].status == '0'){
  182. tip("班次已启用");
  183. return;
  184. }
  185. $.messager.confirm("确认", "确定要启用这条数据?", function (r) {
  186. if (r) {
  187. /* for ( var i = 0; i < rows.length; i++) {
  188. ids.push(rows[i].id);
  189. } */
  190. ids=rows[0].id;
  191. $.ajax({
  192. url : "arrangeDutyController.do?enable",
  193. type : 'post',
  194. data : {
  195. id : ids
  196. },
  197. cache : false,
  198. success : function(data) {
  199. var d = data; // ------ $.parseJSON(data);
  200. if (d.success) {
  201. tip(d.msg);
  202. $("#arrangeDutyList").datagrid('reload');
  203. clearData();
  204. ids='';
  205. }else{
  206. layer.alert(d.msg);
  207. }
  208. }
  209. });
  210. }
  211. });
  212. } else {
  213. layer.alert("请选择需要启用的数据");
  214. }
  215. }
  216. //班次状态停用
  217. function disableObj(){
  218. //var ids = [];
  219. var ids;
  220. var rows = $("#arrangeDutyList").datagrid('getSelections');
  221. if (rows.length > 0) {
  222. if(rows[0].status == '1'){
  223. tip("班次已停用");
  224. return;
  225. }
  226. $.messager.confirm("确认", "确定要停用这条数据?", function (r) {
  227. if (r) {
  228. /* for ( var i = 0; i < rows.length; i++) {
  229. ids.push(rows[i].id);
  230. } */
  231. ids=rows[0].id;
  232. $.ajax({
  233. url : "arrangeDutyController.do?disable",
  234. type : 'post',
  235. data : {
  236. id : ids
  237. },
  238. cache : false,
  239. success : function(data) {
  240. var d = data; // ------ $.parseJSON(data);
  241. if (d.success) {
  242. var msg = d.msg;
  243. tip(msg);
  244. $("#arrangeDutyList").datagrid('reload');
  245. clearData();
  246. ids='';
  247. }else{
  248. layer.alert(d.msg);
  249. }
  250. }
  251. });
  252. }
  253. });
  254. } else {
  255. layer.alert("请选择需要停用的数据");
  256. }
  257. }
  258. //清空数据
  259. function clearData(){
  260. var rowData = {};
  261. fillData(rowData);
  262. $("#arrangeDutyList").datagrid('clearChecked');
  263. }
  264. function fillData(rowData){
  265. //清空表单
  266. $("#formobj").form('clear');
  267. //填充数据
  268. for(var d in rowData){
  269. $("#"+d).val(rowData[d]);
  270. }
  271. }
  272. //逻辑删除班次表
  273. function logicDel(){
  274. var id ;
  275. var rows = $("#arrangeDutyList").datagrid('getSelections');
  276. if (rows.length > 0) {
  277. $.messager.confirm("确认", "确定要删除这条数据?", function (r) {
  278. if (r) {
  279. for ( var i = 0; i < rows.length; i++) {
  280. id=rows[i].id;
  281. }
  282. $.ajax({
  283. url : "arrangeDutyController.do?logicDel",
  284. type : 'post',
  285. data : {
  286. id : id
  287. },
  288. cache : false,
  289. success : function(data) {
  290. var d = data; // ------ $.parseJSON(data);
  291. // console.log(d);
  292. if (d.success) {
  293. tip(d.msg);
  294. $("#arrangeDutyList").datagrid('reload');
  295. clearData();
  296. id='';
  297. }else{
  298. layer.alert(d.msg);
  299. }
  300. }
  301. });
  302. }
  303. });
  304. } else {
  305. layer.alert("请选择需要删除的数据");
  306. }
  307. }
  308. function changeStatus(id,oldstatus){
  309. var newstatus = oldstatus =='1'?'0':'1';
  310. $.ajax({
  311. url : "arrangeDutyController.do?changeStatus",
  312. type : 'post',
  313. data : {
  314. id : id,
  315. status:newstatus
  316. },
  317. cache : false,
  318. success : function(data) {
  319. var d = data; // ------ $.parseJSON(data);
  320. if (d.success) {
  321. tip(d.msg);
  322. $("#arrangeDutyList").datagrid('reload');
  323. clearData();
  324. }else{
  325. layer.alert(d.msg);
  326. }
  327. }
  328. });
  329. }
  330. </script>