employeeList.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <% layout('/layouts/default.html', {title: '员工管理', libs: ['dataGrid']}){ %>
  2. <div class="main-content">
  3. <div class="box box-main">
  4. <div class="box-header">
  5. <div class="box-title">
  6. <i class="fa icon-user"></i> ${text('员工管理')}
  7. </div>
  8. <div class="box-tools pull-right">
  9. <a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
  10. <a href="#" class="btn btn-default" id="btnExport"><i class="glyphicon glyphicon-export"></i> ${text('导出')}</a>
  11. <% if(hasPermi('sys:empUser:edit')){ %>
  12. <a href="#" class="btn btn-default" id="btnImport"><i class="glyphicon glyphicon-import"></i> ${text('导入')}</a>
  13. <a href="${ctx}/mes/empUserCustom/form?op=add" class="btn btn-default btnTool" title="${text('新增用户')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
  14. <% } %>
  15. <a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
  16. <!-- <div class="btn-group">
  17. <a href="javascript:" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
  18. <i class="fa fa-navicon"></i> <span class="caret"></span>
  19. </a>
  20. <ul class="dropdown-menu">
  21. <li><a href="javascript:" id="btnExport"><i class="glyphicon glyphicon-export"></i> ${text('导出')}</a></li>
  22. <li><a href="javascript:" id="btnImport"><i class="glyphicon glyphicon-import"></i> ${text('导入')}</a></li>
  23. <li><a href="javascript:" id="btnSetting"><i class="fa fa-navicon"></i> ${text('设置')}</a></li>
  24. </ul>
  25. </div> -->
  26. </div>
  27. </div>
  28. <div class="box-body">
  29. <#form:form id="searchForm" model="${empUser}" action="${ctx}/mes/empUserCustom/emplistData" method="post" class="form-inline "
  30. data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize}" data-order-by="${parameter.orderBy}">
  31. <#form:hidden name="ctrlPermi" value="${@Global.getConfig('user.adminCtrlPermi', '2')}"/>
  32. <div class="form-group">
  33. <label class="control-label">${text('账号')}:</label>
  34. <div class="control-inline">
  35. <#form:input path="loginCode" maxlength="100" class="form-control width-90"/>
  36. </div>
  37. </div>
  38. <div class="form-group">
  39. <label class="control-label">${text('昵称')}:</label>
  40. <div class="control-inline">
  41. <#form:input path="userName" maxlength="100" class="form-control width-90"/>
  42. </div>
  43. </div>
  44. <div class="form-group">
  45. <label class="control-label">${text('姓名')}:</label>
  46. <div class="control-inline">
  47. <#form:input path="refName" maxlength="100" class="form-control width-90"/>
  48. </div>
  49. </div>
  50. <div class="form-group">
  51. <label class="control-label">${text('手机')}:</label>
  52. <div class="control-inline">
  53. <#form:input path="mobile" maxlength="100" class="form-control width-90"/>
  54. </div>
  55. </div>
  56. <div class="form-group">
  57. <label class="control-label">${text('状态')}:</label>
  58. <div class="control-inline width-90">
  59. <#form:select path="status" dictType="sys_user_status" blankOption="true" class="form-control isQuick"/>
  60. </div>
  61. </div>
  62. <!-- <div class="form-row"></div> -->
  63. <div class="form-group">
  64. <button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
  65. <button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
  66. <button type="button" class="btn btn-default btn-sm btnFormMore">${text('更多')}<i class="fa fa-angle-double-down"></i></button>
  67. </div>
  68. <div class="form-more">
  69. <div class="form-group">
  70. <label class="control-label">${text('机构')}:</label>
  71. <div class="control-inline width-90">
  72. <#form:treeselect id="office" title="${text('机构选择')}"
  73. path="employee.office.officeCode" labelPath="employee.office.officeName"
  74. url="${ctx}/sys/office/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}"
  75. btnClass="btn-sm" allowClear="true" canSelectRoot="true" canSelectParent="true"/>
  76. </div>
  77. </div>
  78. <div class="form-group">
  79. <label class="control-label">${text('公司')}:</label>
  80. <div class="control-inline width-90">
  81. <#form:treeselect id="company" title="${text('公司选择')}"
  82. path="employee.company.companyCode" labelPath="employee.company.companyName"
  83. url="${ctx}/sys/company/treeData?ctrlPermi=${@Global.getConfig('user.adminCtrlPermi', '2')}"
  84. btnClass="btn-sm" allowClear="true" canSelectRoot="true" canSelectParent="true"/>
  85. </div>
  86. </div>
  87. <div class="form-group">
  88. <label class="control-label">${text('邮箱')}:</label>
  89. <div class="control-inline">
  90. <#form:input path="email" maxlength="300" class="form-control width-90"/>
  91. </div>
  92. </div>
  93. <div class="form-group">
  94. <label class="control-label">${text('电话')}:</label>
  95. <div class="control-inline">
  96. <#form:input path="phone" maxlength="100" class="form-control width-90"/>
  97. </div>
  98. </div>
  99. <div class="form-group">
  100. <label class="control-label">${text('岗位')}:</label>
  101. <div class="control-inline width-90">
  102. <#form:select name="employee.postCode" items="${postList}"
  103. itemLabel="postName" itemValue="postCode" blankOption="true" class="form-control isQuick"/>
  104. </div>
  105. </div>
  106. <div class="form-group">
  107. <label class="control-label">${text('角色')}:</label>
  108. <div class="control-inline width-120">
  109. <#form:select name="roleCode" items="${roleList}"
  110. itemLabel="roleName" itemValue="roleCode" blankOption="true" class="form-control isQuick"/>
  111. </div>
  112. </div>
  113. </div>
  114. </#form:form>
  115. <table id="dataGrid"></table>
  116. <div id="dataGridPage"></div>
  117. </div>
  118. </div>
  119. </div>
  120. <% } %>
  121. <script>
  122. // 初始化DataGrid对象
  123. $('#dataGrid').dataGrid({
  124. searchForm: $("#searchForm"),
  125. columnModel: [
  126. {header:'${text("登录账号")}', name:'loginCode', index:'a.login_code', width:125, align:"center", frozen:true, formatter: function(val, obj, row, act){
  127. return '<a href="${ctx}/mes/empUserCustom/form?userCode='+row.userCode+'&op=edit" class="btnList" data-title="${text("编辑用户")}">'+(val||row.id)+'</a>';
  128. }},
  129. {header:'${text("用户昵称")}', name:'userName', index:'a.user_name', width:125, align:"center"},
  130. {header:'${text("员工姓名")}', name:'refName', index:'a.ref_name', width:125, align:"center"},
  131. {header:'${text("归属机构")}', name:'employee.office.officeName', index:'o.office_name', width:135, align:"center"},
  132. {header:'${text("归属公司")}', name:'employee.company.companyName', index:'c.company_name', width:135, align:"center"},
  133. {header:'${text("电子邮箱")}', name:'email', index:'a.email', width:120, align:"center"},
  134. {header:'${text("手机号码")}', name:'mobile', index:'a.mobile', width:120, align:"center"},
  135. {header:'${text("办公电话")}', name:'phone', index:'a.phone', width:120, align:"center"},
  136. {header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:125, align:"center", frozen:true},
  137. {header:'${text("状态")}', name:'status', index:'a.status', width:60, align:"center", frozen:true, formatter: function(val, obj, row, act){
  138. return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
  139. }},
  140. {header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
  141. var actions = [];
  142. //<% if(hasPermi('sys:empUser:edit')){ %>
  143. actions.push('<a href="${ctx}/mes/empUserCustom/form?userCode='+row.userCode+'&op=edit" class="btnList" title="${text("编辑用户")}"><i class="fa fa-pencil"></i></a>&nbsp;');
  144. //<% } %>
  145. //<% if(hasPermi('sys:empUser:updateStatus')){ %>
  146. if (row.status == Global.STATUS_NORMAL){
  147. actions.push('<a href="${ctx}/sys/empUser/disable?userCode='+row.userCode+'" class="btnList" title="${text("停用用户")}" data-confirm="${text("确认要停用该用户吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
  148. }else if (row.status == Global.STATUS_DISABLE || row.status == Global.STATUS_FREEZE || row.status == Global.STATUS_AUDIT){
  149. actions.push('<a href="${ctx}/sys/empUser/enable?userCode='+row.userCode+'" class="btnList" title="${text("启用用户")}" data-confirm="${text("确认要启用该用户吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
  150. }
  151. //<% } %>
  152. //<% if(hasPermi('sys:empUser:edit')){ %>
  153. actions.push('<a href="${ctx}/sys/empUser/delete?userCode='+row.userCode+'" class="btnList" title="${text("删除用户")}" data-confirm="${text("确认要删除该用户吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
  154. actions.push('<a href="${ctx}/mes/empUserCustom/form?userCode='+row.userCode+'&op=copy" class="btnList" title="${text("复制用户")}"><i class="fa fa-copy"></i></a>&nbsp;');
  155. //<% } %>
  156. //<% if(hasPermi('sys:empUser:authRole,sys:empUser:authDataScope,sys:empUser:resetpwd', 'or')){ %>
  157. actions.push('<a href="javascript:" class="btnMore" title="${text("更多操作")}"><i class="fa fa-chevron-circle-right"></i></a>&nbsp;');
  158. actions.push('<div class="moreItems">');
  159. //<% if(hasPermi('sys:empUser:authRole')){ %>
  160. actions.push('<a href="${ctx}/sys/empUser/form?userCode='+row.userCode+'&op=auth" class="btn btn-default btn-xs btnList" title="${text("用户分配角色")}"><i class="fa fa-check-square-o"></i> ${text("分配角色")}</a>&nbsp;');
  161. //<% } %>
  162. //<% if(hasPermi('sys:empUser:authDataScope')){ %>
  163. actions.push('<a href="${ctx}/mes/mesUserSkill/list?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="${text("用户分配技能")}"><i class="fa fa-check-circle-o"></i> ${text("分配技能")}</a>&nbsp;');
  164. actions.push('<a href="${ctx}/mes/mesLineProcess/formAuth?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="${text("用户工位授权")}"><i class="fa fa-check-circle-o"></i> ${text("工位授权")}</a>&nbsp;');
  165. actions.push('<a href="${ctx}/sys/empUser/formAuthDataScope?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="${text("用户分配数据权限")}"><i class="fa fa-check-circle-o"></i> ${text("数据权限")}</a>&nbsp;');
  166. //<% } %>
  167. //<% if(hasPermi('sys:empUser:resetpwd')){ %>
  168. actions.push('<a href="${ctx}/sys/empUser/resetpwd?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="${text("用户密码重置")}" data-confirm="${text("确认要将该用户密码重置到初始状态吗?")}"><i class="fa fa-reply-all"></i> ${text("重置密码")}</a>&nbsp;');
  169. //<% } %>
  170. actions.push('<a href="${ctx}/mes/mesLogin/qrcode?userCode='+row.userCode+'" class="btn btn-default btn-xs btnList" title="${text("二维码")}"><i class="fa fa-fw fa-qrcode"></i> ${text("二维码")}</a>&nbsp;');
  171. actions.push('</div>');
  172. //<% } %>
  173. var html = '<div style="overflow-x:auto;white-space:nowrap;width:100%;text-align:left;padding:2px 0;">' + actions.join('') + '<\/div>';
  174. return html;
  175. }}
  176. ],
  177. frozenCols: true,
  178. // 加载成功后执行事件
  179. ajaxSuccess: function(data){
  180. }
  181. });
  182. $('#btnExport').click(function(){
  183. js.ajaxSubmitForm($('#searchForm'), {
  184. url:'${ctx}/sys/empUser/exportData',
  185. downloadFile:true
  186. });
  187. });
  188. $('#btnImport').click(function(){
  189. js.layer.open({
  190. type: 1,
  191. area: ['400px'],
  192. title: '${text("导入用户数据")}',
  193. resize: false,
  194. scrollbar: true,
  195. content: js.template('importTpl'),
  196. success: function(layero, index){
  197. layero.find('input[type="checkbox"]').iCheck();
  198. },
  199. btn: ['<i class="fa fa-check"></i> ${text("导入")}',
  200. '<i class="fa fa-remove"></i> ${text("关闭")}'],
  201. btn1: function(index, layero){
  202. var form = {
  203. inputForm: layero.find('#inputForm'),
  204. file: layero.find('#file').val()
  205. };
  206. if (form.file == '' || (!js.endWith(form.file, '.xls') && !js.endWith(form.file, '.xlsx'))){
  207. js.showMessage("${text('文件不正确,请选择后缀为“xls”或“xlsx”的文件。')}", null, 'warning');
  208. return false;
  209. }
  210. js.ajaxSubmitForm(form.inputForm, function(data){
  211. js.showMessage(data.message);
  212. if(data.result == Global.TRUE){
  213. js.layer.closeAll();
  214. }
  215. page();
  216. }, "json");
  217. return true;
  218. }
  219. });
  220. });
  221. </script>
  222. <script id="importTpl" type="text/template">//<!--
  223. <form id="inputForm" action="${ctx}/sys/empUser/importData" method="post" enctype="multipart/form-data"
  224. class="form-horizontal mt20 mb10" style="overflow:auto;max-height:200px;">
  225. <div class="row">
  226. <div class="col-xs-12 col-xs-offset-1">
  227. <input type="file" id="file" name="file" class="form-file"/>
  228. <div class="mt10 pt5">
  229. <#form:checkbox name="updateSupport" label="${text('是否更新已经存在的用户数据')}" class="form-control"
  230. title="${text('如果用户编码已经存在,更新这条数据。')}"/> &nbsp;
  231. <a href="${ctx}/sys/empUser/importTemplate" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> ${text('下载模板')}</a>
  232. </div>
  233. <font color="red" class="pull-left mt10">
  234. ${text('提示:仅允许导入“xls”或“xlsx”格式文件!')}
  235. </font>
  236. </div>
  237. </div>
  238. </form>
  239. //--></script>