empUserList.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  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}/sys/empUser/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}/sys/empUser/listData" 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">
  81. <#form:input path="email" maxlength="300" class="form-control width-90"/>
  82. </div>
  83. </div>
  84. <div class="form-group">
  85. <label class="control-label">${text('电话')}:</label>
  86. <div class="control-inline">
  87. <#form:input path="phone" maxlength="100" class="form-control width-90"/>
  88. </div>
  89. </div>
  90. <div class="form-group">
  91. <label class="control-label">${text('岗位')}:</label>
  92. <div class="control-inline width-90">
  93. <#form:select name="employee.postCode" items="${postList}"
  94. itemLabel="postName" itemValue="postCode" blankOption="true" class="form-control isQuick"/>
  95. </div>
  96. </div>
  97. <div class="form-group">
  98. <label class="control-label">${text('角色')}:</label>
  99. <div class="control-inline width-120">
  100. <#form:select name="roleCode" items="${roleList}"
  101. itemLabel="roleName" itemValue="roleCode" blankOption="true" class="form-control isQuick"/>
  102. </div>
  103. </div>
  104. </div>
  105. </#form:form>
  106. <table id="dataGrid"></table>
  107. <div id="dataGridPage"></div>
  108. </div>
  109. </div>
  110. </div>
  111. <% } %>
  112. <script>
  113. // 初始化DataGrid对象
  114. $('#dataGrid').dataGrid({
  115. searchForm: $("#searchForm"),
  116. columnModel: [
  117. {header:'${text("登录账号")}', name:'loginCode', index:'a.login_code', width:125, align:"center", frozen:true, formatter: function(val, obj, row, act){
  118. return '<a href="${ctx}/sys/empUser/form?userCode='+row.userCode+'&op=edit" class="btnList" data-title="${text("编辑用户")}">'+(val||row.id)+'</a>';
  119. }},
  120. {header:'${text("用户昵称")}', name:'userName', index:'a.user_name', width:125, align:"center"},
  121. {header:'${text("员工姓名")}', name:'refName', index:'a.ref_name', width:125, align:"center"},
  122. {header:'${text("归属机构")}', name:'employee.office.officeName', index:'o.office_name', width:135, align:"center"},
  123. {header:'${text("电子邮箱")}', name:'email', index:'a.email', width:120, align:"center"},
  124. {header:'${text("手机号码")}', name:'mobile', index:'a.mobile', width:120, align:"center"},
  125. {header:'${text("办公电话")}', name:'phone', index:'a.phone', width:120, align:"center"},
  126. {header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:125, align:"center", frozen:true},
  127. {header:'${text("状态")}', name:'status', index:'a.status', width:60, align:"center", frozen:true, formatter: function(val, obj, row, act){
  128. return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
  129. }},
  130. {header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
  131. var actions = [];
  132. //<% if(hasPermi('sys:empUser:edit')){ %>
  133. actions.push('<a href="${ctx}/sys/empUser/form?userCode='+row.userCode+'&op=edit" class="btnList" title="${text("编辑用户")}"><i class="fa fa-pencil"></i></a>&nbsp;');
  134. //<% } %>
  135. //<% if(hasPermi('sys:empUser:updateStatus')){ %>
  136. if (row.status == Global.STATUS_NORMAL){
  137. 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;');
  138. }else if (row.status == Global.STATUS_DISABLE || row.status == Global.STATUS_FREEZE || row.status == Global.STATUS_AUDIT){
  139. 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;');
  140. }
  141. //<% } %>
  142. //<% if(hasPermi('sys:empUser:edit')){ %>
  143. 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;');
  144. 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;');
  145. //<% } %>
  146. //<% if(hasPermi('sys:empUser:authRole,sys:empUser:authDataScope,sys:empUser:resetpwd', 'or')){ %>
  147. actions.push('<a href="javascript:" class="btnMore" title="${text("更多操作")}"><i class="fa fa-chevron-circle-right"></i></a>&nbsp;');
  148. actions.push('<div class="moreItems">');
  149. //<% if(hasPermi('sys:empUser:authRole')){ %>
  150. 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;');
  151. //<% } %>
  152. //<% if(hasPermi('sys:empUser:authDataScope')){ %>
  153. 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;');
  154. 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;');
  155. 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;');
  156. //<% } %>
  157. //<% if(hasPermi('sys:empUser:resetpwd')){ %>
  158. 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;');
  159. //<% } %>
  160. 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;');
  161. actions.push('</div>');
  162. //<% } %>
  163. var html = '<div style="overflow-x:auto;white-space:nowrap;width:100%;text-align:left;padding:2px 0;">' + actions.join('') + '<\/div>';
  164. return html;
  165. }}
  166. ],
  167. frozenCols: true,
  168. // 加载成功后执行事件
  169. ajaxSuccess: function(data){
  170. }
  171. });
  172. $('#btnExport').click(function(){
  173. js.ajaxSubmitForm($('#searchForm'), {
  174. url:'${ctx}/sys/empUser/exportData',
  175. downloadFile:true
  176. });
  177. });
  178. $('#btnImport').click(function(){
  179. js.layer.open({
  180. type: 1,
  181. area: ['400px'],
  182. title: '${text("导入用户数据")}',
  183. resize: false,
  184. scrollbar: true,
  185. content: js.template('importTpl'),
  186. success: function(layero, index){
  187. layero.find('input[type="checkbox"]').iCheck();
  188. },
  189. btn: ['<i class="fa fa-check"></i> ${text("导入")}',
  190. '<i class="fa fa-remove"></i> ${text("关闭")}'],
  191. btn1: function(index, layero){
  192. var form = {
  193. inputForm: layero.find('#inputForm'),
  194. file: layero.find('#file').val()
  195. };
  196. if (form.file == '' || (!js.endWith(form.file, '.xls') && !js.endWith(form.file, '.xlsx'))){
  197. js.showMessage("${text('文件不正确,请选择后缀为“xls”或“xlsx”的文件。')}", null, 'warning');
  198. return false;
  199. }
  200. js.ajaxSubmitForm(form.inputForm, function(data){
  201. js.showMessage(data.message);
  202. if(data.result == Global.TRUE){
  203. js.layer.closeAll();
  204. }
  205. page();
  206. }, "json");
  207. return true;
  208. }
  209. });
  210. });
  211. </script>
  212. <script id="importTpl" type="text/template">//<!--
  213. <form id="inputForm" action="${ctx}/sys/empUser/importData" method="post" enctype="multipart/form-data"
  214. class="form-horizontal mt20 mb10" style="overflow:auto;max-height:200px;">
  215. <div class="row">
  216. <div class="col-xs-12 col-xs-offset-1">
  217. <input type="file" id="file" name="file" class="form-file"/>
  218. <div class="mt10 pt5">
  219. <#form:checkbox name="updateSupport" label="${text('是否更新已经存在的用户数据')}" class="form-control"
  220. title="${text('如果用户编码已经存在,更新这条数据。')}"/> &nbsp;
  221. <a href="${ctx}/sys/empUser/importTemplate" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> ${text('下载模板')}</a>
  222. </div>
  223. <font color="red" class="pull-left mt10">
  224. ${text('提示:仅允许导入“xls”或“xlsx”格式文件!')}
  225. </font>
  226. </div>
  227. </div>
  228. </form>
  229. //--></script>