rock_kaoqin_sjpb.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php defined('HOST') or die ('not access');?>
  2. <script>
  3. $(document).ready(function(){
  4. {params}
  5. var atype=params.atype,columna=[],chagnedtarr={},lbob=false,pblx=0;if(atype)atype='';
  6. var column = [{
  7. text:'部门',dataIndex:'deptname',align:'left',sortable:true
  8. },{
  9. text:'姓名',dataIndex:'name',sortable:true
  10. }];
  11. for(var i=1;i<=28;i++){
  12. columna.push({
  13. text:''+i+'',
  14. dataIndex:'day'+i+'',
  15. });
  16. }
  17. var a = $('#view_{rand}').bootstable({
  18. tablename:'admin',
  19. fanye:true,
  20. url:publicstore('{mode}','{dir}'),
  21. storeafteraction:'pbkqdistafter',
  22. storebeforeaction:'pbkqdistbefore',
  23. params:{'pblx':0,'atype':atype},
  24. columns:[].concat(column,columna),
  25. itemclick:function(d,oi, e){
  26. var e1 = e.target;
  27. if(e1.nodeName.toLowerCase()=='td'){
  28. var o1 = $(e1),row = o1.attr('row'),cell = parseFloat(o1.attr('cell'));
  29. if(cell>=2){
  30. var ke = 'a_'+row+'_'+cell+'';
  31. if(chagnedtarr[ke]){
  32. o1.css('background','');
  33. chagnedtarr[ke] = false;
  34. }else{
  35. o1.css('background','#94DDFC');
  36. chagnedtarr[ke] = o1;
  37. }
  38. }
  39. }
  40. },
  41. loadbefore:function(d){
  42. var cs = [],i;
  43. for(i in column)cs.push(column[i]);
  44. var warr=['日','一','二','三','四','五','六'],w=parseFloat(d.week),tsa;
  45. for(i=1;i<=d.maxjg;i++){
  46. if(i>1)w++;
  47. if(w>6)w=0;
  48. tsa = ''+i+'<br>('+warr[w]+')';
  49. if(w==0||w==6)tsa='<font color="#ff6600">'+tsa+'</font>';
  50. cs.push({
  51. text:tsa,
  52. dataIndex:'day'+i+''
  53. });
  54. }
  55. a.setColumns(cs);
  56. },
  57. load:function(d){
  58. var str='提示:其中空白为休息日,0:未设置',gzrows=d.gzrows;
  59. var rda = [{
  60. name:'设置为休息日',lx:0,id:0
  61. },{
  62. name:'取消休息日',lx:1,id:0
  63. },{
  64. name:'设置为工作日',lx:2,id:0
  65. },{
  66. name:'取消工作日',lx:3,id:0
  67. }];
  68. for(var i=0;i<gzrows.length;i++){
  69. str+=','+gzrows[i].id+':'+gzrows[i].name+'';
  70. rda.push({name:'设置规则为:'+gzrows[i].name+'',lx:4,id:gzrows[i].id});
  71. }
  72. rda.push({name:'取消规则',id:5,lx:5});
  73. $('#guistr_{rand}').html(str);
  74. if(!lbob){
  75. $('#downbtn_{rand}').rockmenu({
  76. width:230,top:35,donghua:false,
  77. data:rda,
  78. itemsclick:function(d, i){
  79. c.setdownss(d);
  80. }
  81. });
  82. }
  83. },
  84. beforeload:function(){
  85. chagnedtarr={};
  86. }
  87. });
  88. var c = {
  89. search:function(){
  90. var s=get('key_{rand}').value;
  91. a.setparams({key:s,dt1:get('dt1_{rand}').value},true);
  92. },
  93. clickdt:function(o1, lx){
  94. $(o1).rockdatepicker({initshow:true,view:'month',inputid:'dt'+lx+'_{rand}'});
  95. },
  96. daochu:function(){
  97. a.exceldown('考勤时间排班('+get('dt1_{rand}').value+')');
  98. },
  99. xuanzeq:function(){
  100. for(var i in chagnedtarr){
  101. if(chagnedtarr[i])chagnedtarr[i].css('background','');
  102. }
  103. chagnedtarr={};
  104. },
  105. //保存
  106. setdownss:function(d){
  107. if(pblx=='0'){js.msg('msg','请先选择根据组/人员来设置');return;}
  108. var str='',i,j,kes,o,row,cell,kesa,da,can=[],mon=get('dt1_{rand}').value,type=d.lx;
  109. for(kes in chagnedtarr){
  110. o = chagnedtarr[kes];
  111. if(o){
  112. kesa = kes.split('_');
  113. row = parseFloat(kesa[1]);
  114. cell = parseFloat(kesa[2]);
  115. da = a.getData(row);
  116. can.push({receid:da.id,dt:mon+'-'+(cell-1)+'',plx:pblx,type:type,mid:d.id});
  117. }
  118. }
  119. var cans={},len=can.length;
  120. if(len==0){js.msg('msg','没有选中单元格来设置');return;}
  121. for(i=0;i<len;i++){
  122. for(j in can[i])cans[''+j+'_'+i+'']=can[i][j];
  123. }
  124. cans.len = len;
  125. js.ajax(js.getajaxurl('setpaiban','{mode}','{dir}'),cans, function(s){
  126. a.reload();
  127. },'post',false,'标识中,标识成功');
  128. },
  129. changeplx:function(){
  130. var val = get('plx_{rand}').value;
  131. pblx = val;
  132. get('downbtn_{rand}').disabled=(pblx=='0')?true:false;
  133. a.setparams({key:'','pblx':val},true);
  134. }
  135. };
  136. $('#dt1_{rand}').val(js.now('Y-m'));
  137. js.initbtn(c);
  138. $('#plx_{rand}').change(function(){
  139. c.changeplx();
  140. });
  141. });
  142. </script>
  143. <div>
  144. <table width="100%"><tr>
  145. <td nowrap>月份&nbsp;</td>
  146. <td nowrap>
  147. <div style="width:120px" class="input-group">
  148. <input placeholder="月份" readonly class="form-control" id="dt1_{rand}" >
  149. <span class="input-group-btn">
  150. <button class="btn btn-default" click="clickdt,1" type="button"><i class="icon-calendar"></i></button>
  151. </span>
  152. </div>
  153. </td>
  154. <td style="padding-left:10px">
  155. <select class="form-control" style="width:170px" id="plx_{rand}">
  156. <option value="0">查看人员排班情况</option>
  157. <option value="1">根据组来排班(设置)</option>
  158. <option value="2">根据人员来排班(设置)</option>
  159. </select>
  160. </td>
  161. <td style="padding-left:10px">
  162. <input class="form-control" style="width:150px" id="key_{rand}" placeholder="姓名/部门">
  163. </td>
  164. <td style="padding-left:10px">
  165. <button class="btn btn-default" click="search" type="button">搜索</button>
  166. </td>
  167. <td style="padding-left:10px">
  168. </td>
  169. <td style="padding-left:5px">
  170. </td>
  171. <td width="80%"></td>
  172. <td align="right" nowrap>
  173. <button class="btn btn-default" id="downbtn_{rand}" disabled type="button">选中标识为 <i class="icon-angle-down"></i></button>&nbsp;&nbsp;
  174. <button class="btn btn-default" click="xuanzeq" type="button">取消选择</button>&nbsp;&nbsp;
  175. <button class="btn btn-default" click="daochu" type="button">导出</button>
  176. </td>
  177. </tr></table>
  178. </div>
  179. <div class="blank10"></div>
  180. <div id="view_{rand}" style="cursor:default"></div>
  181. <div class="tishi" id="guistr_{rand}">提示:</div>