rock_kaoqinj_dept.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. <?php if(!defined('HOST'))die('not access');?>
  2. <script >
  3. $(document).ready(function(){
  4. {params}
  5. var xusnid = params.snid;if(!xusnid)xusnid='0';
  6. var at = $('#optionview_{rand}').bootstree({
  7. url:false,autoLoad:false,
  8. columns:[{
  9. text:'系统上部门',dataIndex:'name',align:'left',xtype:'treecolumn'
  10. }],
  11. itemdblclick:function(d){
  12. a.setparams({'deptid':d.id}, true);
  13. }
  14. });
  15. var ats = $('#optionviews_{rand}').bootstree({
  16. url:false,autoLoad:false,
  17. columns:[{
  18. text:'选中考勤机设备上部门',dataIndex:'name',align:'left',xtype:'treecolumn'
  19. }],
  20. itemdblclick:function(d){
  21. a.setparams({'deptid':d.id}, true);
  22. }
  23. });
  24. var a = $('#admin_{rand}').bootstable({
  25. tablename:'admin',sort:'sort',dir:'asc',fanye:true,url:publicstore('{mode}','{dir}'),
  26. storeafteraction:'kquserafter',checked:true,storebeforeaction:'kquserbefore',autoLoad:false,
  27. columns:[{
  28. text:'头像',dataIndex:'face',renderer:function(v,d){
  29. if(isempt(v))v='images/noface.png';
  30. return '<img onclick="$.imgview({url:this.src})" src="'+v+'" height="24" width="24">';
  31. }
  32. },{
  33. text:'姓名',dataIndex:'name',sortable:true
  34. },{
  35. text:'部门',dataIndex:'deptname',align:'left'
  36. },{
  37. text:'职位',dataIndex:'ranking',sortable:true
  38. },{
  39. text:'ID',dataIndex:'id',sortable:true
  40. },{
  41. text:'人员状态',dataIndex:'status',sortable:true,type:'checkbox'
  42. },{
  43. text:'考勤机状态',dataIndex:'kqjzt'
  44. },{
  45. text:'指纹1',dataIndex:'fingerprint1'
  46. },{
  47. text:'指纹2',dataIndex:'fingerprint2'
  48. },{
  49. text:'设备头像',dataIndex:'headpic'
  50. }],
  51. load:function(d){
  52. if(d.deptdata){
  53. at.loadData(d.deptdata);
  54. }
  55. if(d.kqsnarr){
  56. js.setselectdata(get('snid_{rand}'),d.kqsnarr,'id');
  57. get('snid_{rand}').value = xusnid;
  58. if(xusnid>0)get('downbtn_{rand}').disabled = false;
  59. }
  60. if(d.deptsdata){
  61. ats.loadData(d.deptsdata);
  62. }
  63. var str = '';
  64. if(d.nocunid)str='该考勤机设备上人员<font color=red>['+d.nocunid+']</font>在系统上可能不存在。';
  65. $('#tishi_{rand}').html(str);
  66. }
  67. });
  68. var c = {
  69. search:function(){
  70. var s=get('key_{rand}').value;
  71. a.setparams({key:s,snid:get('snid_{rand}').value},true);
  72. },
  73. init:function(){
  74. a.setparams({snid:xusnid},true);
  75. },
  76. changesnid:function(o1,lx){
  77. var snid = get('snid_{rand}').value;
  78. get('downbtn_{rand}').disabled = (snid=='0');
  79. this.search();
  80. },
  81. sendcmd:function(lx, name){
  82. var snid = get('snid_{rand}').value;
  83. if(snid=='0'){js.msg('msg','没有选中考勤机设备');return;}
  84. var ids = a.getchecked();
  85. var nopd = ',getuser,delsuser,';//不需要判断
  86. if(nopd.indexOf(','+lx+',')<0){
  87. if(ids==''){js.msg('msg','没用复选框选中记录');return;}
  88. var len = ids.split(',').length;
  89. if(len>20){js.msg('msg','一次最多只能选择20个人员');return;}
  90. }
  91. if(lx=='getclockin' || lx=='getpic' || lx=='delclockin' || lx=='delpic'){
  92. this.getdakjil(name, lx, ids, snid);
  93. return;
  94. }
  95. if(name.indexOf('删除')>=0){
  96. js.confirm('确定要发送命令['+name+']吗?命令运行成功就不能恢复了,谨慎操作!', function(jg){
  97. if(jg=='yes')c.sendcmds(ids, snid,lx);
  98. });
  99. }else{
  100. this.sendcmds(ids, snid,lx);
  101. }
  102. },
  103. sendcmds:function(ids,snid,lx){
  104. js.ajax(js.getajaxurl('sendusercmd','{mode}','{dir}'),{uids:ids,snid:snid,'type':lx},function(ret){
  105. if(!ret.success){
  106. js.msg('msg', ret.msg);
  107. }else{
  108. a.reload();
  109. js.msg('success', ret.data);
  110. }
  111. },'get,json',false,'发送中...,已发送');
  112. },
  113. getdakjil:function(name,lxs,uids, snid){
  114. var h = $.bootsform({
  115. title:name,height:400,width:400,
  116. tablename:'getclockin',isedit:2,
  117. url:js.getajaxurl('sendusercmd','{mode}','{dir}',{'uids':uids,'type':lxs,'snid':snid}),
  118. submitfields:'startdt,enddt',
  119. items:[{
  120. labelText:'要获取人员',name:'gtype',type:'select',valuefields:'id',displayfields:'name',store:[{name:'选中人员',id:0},{name:'设备上所有人员',id:1}],required:true,value:'0'
  121. },{
  122. labelText:'日期从',name:'startdt',type:'date'
  123. },{
  124. labelText:'到',name:'endddt',type:'date'
  125. }],
  126. success:function(d){
  127. js.msg('success',d.data);
  128. a.reload();
  129. }
  130. });
  131. h.form.endddt.value = js.now();
  132. h.form.startdt.value = js.now();
  133. h.isValid();
  134. }
  135. };
  136. js.initbtn(c);
  137. $('#optionview_{rand}').css('height',''+(viewheight-25)+'px');
  138. $('#optionviews_{rand}').css('height',''+(viewheight-25)+'px');
  139. $('#snid_{rand}').change(function(){
  140. c.changesnid();
  141. });
  142. $('#downbtn_{rand}').rockmenu({
  143. width:230,top:35,donghua:false,
  144. data:[{
  145. name:'上传人员到设备',lx:'user'
  146. },{
  147. name:'上传人员指纹到设备',lx:'fingerprint'
  148. },{
  149. name:'从设备上获取所有人员',lx:'getuser'
  150. },{
  151. name:'系统不存在人员在设备上删除',lx:'delsuser'
  152. },{
  153. name:'设备上人员删除...',lx:'deluser'
  154. },{
  155. name:'从设备上获取指纹',lx:'getfingerprint'
  156. },{
  157. name:'从设备上获取头像',lx:'getheadpic'
  158. },{
  159. name:'系统头像上传到设备',lx:'headpic'
  160. },{
  161. name:'获取打卡记录...',lx:'getclockin'
  162. },{
  163. name:'获取打卡记录和现场照片...',lx:'getpic'
  164. },{
  165. name:'删除打卡记录...',lx:'delclockin'
  166. },{
  167. name:'删除现场照片...',lx:'delpic'
  168. }],
  169. itemsclick:function(d, i){
  170. c.sendcmd(d.lx, d.name);
  171. }
  172. });
  173. c.init();
  174. });
  175. </script>
  176. <div>
  177. <table width="100%">
  178. <tr valign="top">
  179. <td>
  180. <div style="border:1px #cccccc solid;width:220px">
  181. <div id="optionview_{rand}" style="height:400px;overflow:auto;"></div>
  182. </div>
  183. </td>
  184. <td width="10" nowrap><div style="width:10px">&nbsp;</div></td>
  185. <td width="95%">
  186. <table width="100%"><tr>
  187. <td>
  188. <select class="form-control" style="width:270px" id="snid_{rand}" ><option value="0">-选择要操作的考勤机设备-</option></select>
  189. </td>
  190. <td style="padding-left:10px">
  191. <button class="btn btn-default" disabled id="downbtn_{rand}" type="button">选中设备操作 <i class="icon-angle-down"></i></button>
  192. </td>
  193. <td style="padding-left:10px">
  194. <input class="form-control" style="width:160px" id="key_{rand}" placeholder="姓名/部门/职位">
  195. </td>
  196. <td style="padding-left:10px">
  197. <button class="btn btn-default" click="search" type="button">搜索</button>
  198. </td>
  199. <td width="80%">
  200. </td>
  201. <td align="right" nowrap>
  202. </td>
  203. </tr>
  204. </table>
  205. </div>
  206. <div class="blank10"></div>
  207. <div id="admin_{rand}"></div>
  208. <div id="tishi_{rand}" class="tishi"></div>
  209. </td>
  210. <td width="10" nowrap><div style="width:10px">&nbsp;</div></td>
  211. <td>
  212. <div style="border:1px #cccccc solid;width:220px">
  213. <div id="optionviews_{rand}" style="height:400px;overflow:auto;"></div>
  214. </div>
  215. </td>
  216. </tr>
  217. </table>
粤ICP备19079148号