datalist.html 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. {extend name="../../base/view/common/base" /}
  2. {block name="style"}
  3. <style>
  4. .tree-left{width:200px; float:left; height:calc(100vh - 79px); overflow-y: auto; border:1px solid #eeeeee; border-right:0; background-color:#fbfbfb; padding:12px 12px 12px 5px;}
  5. .tree-left::-webkit-scrollbar {width: 0;}
  6. .tree-left h3{font-size:16px; height:30px; padding-left:10px; font-weight:800}
  7. </style>
  8. {/block}
  9. <!-- 主体 -->
  10. {block name="body"}
  11. <div class="p-page">
  12. <div class="tree-left">
  13. <h3>企业组织架构</h3>
  14. <div id="depament"></div>
  15. </div>
  16. <div class="body-table" style="margin-left:200px; overflow:hidden;">
  17. <form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
  18. <div class="layui-input-inline" style="width:124px">
  19. <select name="status" lay-filter="status">
  20. <option value="1" selected>正常状态</option>
  21. <option value="2">离职状态</option>
  22. <option value="0">禁止登录</option>
  23. </select>
  24. </div>
  25. <div class="layui-input-inline" style="width:124px">
  26. <select name="political" lay-filter="political">
  27. <option value="">选择政治面貌</option>
  28. <option value="1">中共党员</option>
  29. <option value="2">团员</option>
  30. <option value="0">无</option>
  31. </select>
  32. </div>
  33. <div class="layui-input-inline" style="width:136px">
  34. <select name="position_name" lay-filter="position_name">
  35. <option value="">选择员工职务</option>
  36. {volist name=":get_base_type_data('basic_user',1)" id="v"}
  37. <option value="{$v.id}">{$v.title}</option>
  38. {/volist}
  39. </select>
  40. </div>
  41. <div class="layui-input-inline" style="width:136px">
  42. <select name="position_rank" lay-filter="position_rank">
  43. <option value="">选择员工职级</option>
  44. {volist name=":get_base_type_data('basic_user',2)" id="v"}
  45. <option value="{$v.id}">{$v.title}</option>
  46. {/volist}
  47. </select>
  48. </div>
  49. <div class="layui-input-inline" style="width:360px">
  50. <input type="text" name="keywords" placeholder="关键字,如:ID号/姓名/登录账号/手机号码/电子邮箱" class="layui-input" autocomplete="off" />
  51. </div>
  52. <div class="layui-input-inline" style="width:150px;">
  53. <input type="text" name="did" style="display:none;" value="0" />
  54. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  55. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">重置</button>
  56. </div>
  57. </form>
  58. <table class="layui-hide" id="test" lay-filter="test"></table>
  59. </div>
  60. </div>
  61. <script type="text/html" id="thumb">
  62. <img src="{{d.thumb}}" width="30" height="30" />
  63. </script>
  64. <script type="text/html" id="toolbara">
  65. <h3>员工档案</h3>
  66. </script>
  67. {/block}
  68. <!-- /主体 -->
  69. <!-- 脚本 -->
  70. {block name="script"}
  71. <script>
  72. const moduleInit = ['tool','tablePlus'];
  73. function gouguInit() {
  74. var table = layui.tablePlus,tool = layui.tool,tree = layui.tree,form = layui.form;
  75. $.ajax({
  76. url: "/api/index/get_department_tree",
  77. type:'get',
  78. success:function(res){
  79. //仅节点左侧图标控制收缩
  80. tree.render({
  81. elem: '#depament',
  82. data: res.trees,
  83. onlyIconControl: true, //是否仅允许节点左侧图标控制展开收缩
  84. click: function(obj){
  85. //layer.msg(JSON.stringify(obj.data));
  86. $('#depament').find('.layui-tree-main').removeClass('on');
  87. $(obj.elem).find('.layui-tree-main').eq(0).addClass('on');
  88. $('[name="did"]').val(obj.data.id);
  89. layui.form.render('select');
  90. $('[lay-filter="table-search"]').click();
  91. }
  92. });
  93. }
  94. });
  95. form.on('select(status)', function(data){
  96. $('[lay-filter="table-search"]').click();
  97. });
  98. form.on('select(political)', function(data){
  99. $('[lay-filter="table-search"]').click();
  100. });
  101. form.on('select(position_name)', function(data){
  102. $('[lay-filter="table-search"]').click();
  103. });
  104. form.on('select(position_rank)', function(data){
  105. $('[lay-filter="table-search"]').click();
  106. });
  107. layui.pageTable = table.render({
  108. elem: '#test',
  109. title: '员工档案',
  110. toolbar: '#toolbara',
  111. defaultToolbar: [],
  112. searchreset:function(){
  113. $('#depament').find('.layui-tree-main').removeClass('on');
  114. },
  115. is_excel:true,
  116. url: "/user/files/datalist", //数据接口
  117. height: 'full-114',
  118. size:'lg',
  119. cols: [
  120. [
  121. {field: 'id',title: 'ID号',align: 'center',fixed:'left',width: 80},
  122. {field: 'type',title: '员工类型',align: 'center',width: 80,templet: function (d) {
  123. var html = '';
  124. if(d.type == 1){
  125. html = '<span style="color:#16b777">正式员工</span>'
  126. }
  127. if(d.type == 2){
  128. html = '<span style="color:#01AAED">试用员工</span>'
  129. }
  130. if(d.type == 3){
  131. html = '<span style="color:#ffb800">实 习 生</span>'
  132. }
  133. return html;
  134. }
  135. },
  136. {field: 'name',title: '员工姓名',width: 130,templet:function(d){
  137. return '<div><div style="float:left; width:36px; height:36px; margin-right:5px;"><img src="'+d.thumb+'" style="width:100%; height:100%; vertical-align:top;object-fit: cover; border-radius:3px;" /></div><span>'+d.name+'</span></div>';
  138. }
  139. },
  140. {field: 'mobile',title: '手机号码',align: 'center',width: 110},
  141. {field: 'email',title: '电子邮箱',width: 200},
  142. {field: 'sex',title: '性别',align: 'center',width: 50,templet: function (d) {
  143. var html = '';
  144. if(d.sex == 1){
  145. html = '男'
  146. }
  147. else if(d.sex == 2){
  148. html = '女'
  149. }
  150. return html;
  151. }
  152. },
  153. {field: 'department',title: '所在主部门',width: 100},
  154. {field: 'departments',title: '所在次部门',width: 160},
  155. {field: 'position',title: '岗位职称',align: 'center',width: 100},
  156. {field: 'entry_time',title: '入职日期',align: 'center',width: 100},
  157. {field: 'job_number',title: '工号',align: 'center',width: 120},
  158. {field: 'birthday_str',title: '出生日期',align: 'center',width: 100},
  159. {field: 'nation',title: '民族',align: 'center',minWidth: 60},
  160. {field: 'native_place',title: '籍贯',align: 'center',minWidth: 90},
  161. {field: 'political_str',title: '政治面貌',align: 'center',minWidth: 80},
  162. {field: 'right',fixed:'right',title: '操作',width:110,align: 'center',ignoreExport:true,templet: function (d) {
  163. var html = '';
  164. var btn1 = '<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">详情</span>';
  165. var btn2 = '<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
  166. var btn3 = '<span class="layui-btn layui-bg-orange layui-btn-xs" lay-event="del">删除员工</span>';
  167. html = '<div class="layui-btn-group">'+btn1+btn2+'</div>';
  168. if(d.status==2){
  169. html = '<div class="layui-btn-group">'+btn1+btn3+'</div>';
  170. }
  171. return html;
  172. }
  173. }
  174. ]
  175. ]
  176. });
  177. //监听行工具事件
  178. table.on('tool(test)', function (obj) {
  179. var data = obj.data;
  180. if (obj.event === 'view') {
  181. tool.side('/user/files/view?id='+data.id);
  182. return;
  183. }
  184. if(obj.event === 'edit'){
  185. tool.side('/user/files/add?id='+data.id);
  186. }
  187. });
  188. }
  189. </script>
  190. {/block}
  191. <!-- /脚本 -->