{extend name="../../base/view/common/base" /}
|
{block name="style"}
|
<style>
|
.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;}
|
.tree-left::-webkit-scrollbar {width: 0;}
|
.tree-left h3{font-size:16px; height:30px; padding-left:10px; font-weight:800}
|
</style>
|
{/block}
|
<!-- 主体 -->
|
{block name="body"}
|
<div class="p-page">
|
<div class="tree-left">
|
<h3>企业组织架构</h3>
|
<div id="depament"></div>
|
</div>
|
<div class="body-table" style="margin-left:200px; overflow:hidden;">
|
<form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
|
<div class="layui-input-inline" style="width:136px">
|
<select name="status">
|
<option value="">选择员工状态</option>
|
<option value="1">正常状态</option>
|
<option value="2">离职状态</option>
|
<option value="0">禁止登录</option>
|
</select>
|
</div>
|
<div class="layui-input-inline" style="width:136px">
|
<select name="type">
|
<option value="">选择员工类型</option>
|
<option value="1">正式员工</option>
|
<option value="2">试用员工</option>
|
<option value="3">实习员工</option>
|
</select>
|
</div>
|
<div class="layui-input-inline" style="width:360px">
|
<input type="text" name="keywords" placeholder="关键字,如:ID号/姓名/登录账号/手机号码/电子邮箱" class="layui-input" autocomplete="off" />
|
</div>
|
<div class="layui-input-inline" style="width:150px;">
|
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
|
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
|
</div>
|
</form>
|
<table class="layui-hide" id="test" lay-filter="test"></table>
|
</div>
|
</div>
|
|
<script type="text/html" id="thumb">
|
<img src="{{d.thumb}}" width="30" height="30" />
|
</script>
|
<script type="text/html" id="toolbara">
|
<div class="layui-btn-group">
|
<button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon"></i>添加员工</button>
|
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="disable"><i class="layui-icon">ဆ</i>禁止登录</button>
|
<button class="layui-btn layui-btn-warm layui-btn-sm" lay-event="recovery"><i class="layui-icon"></i>恢复正常</button>
|
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="import"><i class="layui-icon"></i>批量导入</button>
|
</div>
|
</script>
|
|
{/block}
|
<!-- /主体 -->
|
|
<!-- 脚本 -->
|
{block name="script"}
|
<script>
|
const moduleInit = ['tool','tablePlus','uploadPlus'];
|
function gouguInit() {
|
var table = layui.tablePlus,tool = layui.tool,tree = layui.tree,form = layui.form,uploadPlus = layui.uploadPlus;
|
$.ajax({
|
url: "/api/index/get_department_tree",
|
type:'get',
|
success:function(res){
|
//仅节点左侧图标控制收缩
|
tree.render({
|
elem: '#depament',
|
data: res.trees,
|
onlyIconControl: true, //是否仅允许节点左侧图标控制展开收缩
|
click: function(obj){
|
//layer.msg(JSON.stringify(obj.data));
|
$('#depament').find('.layui-tree-main').removeClass('on');
|
$(obj.elem).find('.layui-tree-main').eq(0).addClass('on');
|
layui.pageTable.reload({
|
where:{did: obj.data.id},
|
page:{curr:1}
|
});
|
$('[name="keywords"]').val('');
|
$('[name="status"]').val('');
|
$('[name="type"]').val('');
|
layui.form.render('select');
|
}
|
});
|
}
|
});
|
|
layui.pageTable = table.render({
|
elem: '#test',
|
title: '员工列表',
|
toolbar: '#toolbara',
|
url: "/user/user/index", //数据接口
|
height: 'full-112',
|
cols: [
|
[
|
{type:'checkbox',fixed:'left'},
|
{
|
field: 'id',
|
title: 'ID号',
|
align: 'center',
|
width: 80
|
}, {
|
field: 'status',
|
title: '状态',
|
align: 'center',
|
width: 60,
|
templet: function (d) {
|
var html = '<span class="layui-badge layui-bg-green">正常</span>';
|
if(d.status == 2){
|
html = '<span class="layui-badge layui-bg-orange">已离职</span>'
|
}
|
else if(d.status == 0){
|
html = '<span class="layui-badge">被禁用</span>'
|
}
|
return html;
|
}
|
},{
|
field: 'type',
|
title: '员工类型',
|
align: 'center',
|
width: 80,
|
templet: function (d) {
|
var html = '<span style="color:#393D49">正式员工</span>';
|
if(d.type == 2){
|
html = '<span style="color:#01AAED">试用员工</span>'
|
}
|
else if(d.type == 3){
|
html = '<span style="color:#5FB878">实 习 生</span>'
|
}
|
return html;
|
}
|
}, {
|
field: 'username',
|
title: '登录账号',
|
width: 132
|
}, {
|
field: 'thumb',
|
title: '头像',
|
toolbar: '#thumb',
|
align: 'center',
|
width: 50
|
}, {
|
field: 'name',
|
title: '员工姓名',
|
align: 'center',
|
width: 80
|
},{
|
field: 'mobile',
|
title: '手机号码',
|
align: 'center',
|
width: 120
|
},{
|
field: 'email',
|
title: '电子邮箱',
|
width: 200
|
},{
|
field: 'sex',
|
title: '性别',
|
align: 'center',
|
width: 50,
|
templet: function (d) {
|
var html = '未知';
|
if(d.sex == 1){
|
html = '男'
|
}
|
else if(d.sex == 2){
|
html = '女'
|
}
|
return html;
|
}
|
},{
|
field: 'department',
|
title: '所在主部门',
|
width: 100
|
}, {
|
field: 'departments',
|
title: '所在次部门',
|
width: 160
|
}, {
|
field: 'position',
|
title: '岗位职称',
|
align: 'center',
|
width: 100
|
}, {
|
field: 'entry_time',
|
title: '入职日期',
|
align: 'center',
|
width: 100
|
}, {
|
field: 'login_num',
|
title: '累计登录',
|
align: 'center',
|
width: 80
|
}, {
|
field: 'last_login_time',
|
title: '最后登录时间',
|
align: 'center',
|
minWidth: 136
|
},{
|
field: 'right',
|
fixed:'right',
|
title: '操作',
|
width: 150,
|
align: 'center',
|
ignoreExport:true,
|
templet: function (d) {
|
var html = '';
|
var btn1 = '<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">详情</span>';
|
var btn2 = '<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
|
var btn3 = '<span class="layui-btn layui-btn-xs layui-btn-warm" lay-event="copy">复制密码</span>';
|
var btn4 = '<span class="layui-btn layui-btn-xs layui-btn-danger" lay-event="psw">重置密码</span>';
|
if(d.reg_pwd == ''){
|
html = '<div class="layui-btn-group">'+btn1+btn2+btn4+'</div>';
|
}
|
else{
|
html = '<div class="layui-btn-group">'+btn1+btn2+btn3+'</div>';
|
}
|
return html;
|
}
|
}
|
]
|
]
|
});
|
|
//表头工具栏事件
|
table.on('toolbar(test)', function(obj){
|
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
|
var data = checkStatus.data;
|
if (obj.event === 'add') {
|
tool.side("/user/user/add");
|
return;
|
}
|
if (obj.event === 'import') {
|
let importUpload = new uploadPlus({
|
"title":'批量导入员工',
|
"use":'import',
|
"url":'/api/import/import_admin',
|
"import":{
|
"template":'/static/home/file/勾股OA员工导入模板.xlsx',
|
"tips":'如果导入失败,请根据提示注意检查表格数据,部门、职位需要是系统中存在的数据,如果不存在的话可能会导入失败。'
|
},
|
callback:function(res){
|
layui.pageTable.reload();
|
}
|
});
|
return;
|
}
|
|
var uidArray=[],msg='是否执行该操作?',type=0;
|
for(var i=0;i<data.length;i++){
|
uidArray.push(data[i].id);
|
}
|
if (obj.event === 'disable') {
|
if(data.length==0){
|
layer.msg('请选择要操作的员工');
|
return false;
|
}
|
layer.confirm('您确定要把选中的员工设为禁止登录?', {
|
icon: 3,
|
title: '提示'
|
}, function (index) {
|
let callback = function (e) {
|
layer.msg(e.msg);
|
if (e.code == 0) {
|
layui.pageTable.reload();
|
}
|
}
|
tool.post("/user/user/set", {ids: uidArray.join(','),type:0}, callback);
|
layer.close(index);
|
});
|
}
|
|
if (obj.event === 'recovery') {
|
if(data.length==0){
|
layer.msg('请选择要操作的员工');
|
return false;
|
}
|
layer.confirm('您确定要把选中的员工恢复正常?', {
|
icon: 3,
|
title: '提示'
|
}, function (index) {
|
let callback = function (e) {
|
layer.msg(e.msg);
|
if (e.code == 0) {
|
layui.pageTable.reload();
|
}
|
}
|
tool.post("/user/user/set", {ids: uidArray.join(','),type:1}, callback);
|
layer.close(index);
|
});
|
}
|
|
});
|
|
|
//监听行工具事件
|
table.on('tool(test)', function (obj) {
|
var data = obj.data;
|
if (obj.event === 'view') {
|
tool.side('/user/user/view?id='+data.id);
|
return;
|
}
|
if(obj.data.status == 2){
|
layer.msg('离职员工不支持操作');
|
return false;
|
}
|
if(obj.event === 'edit'){
|
if(obj.data.id == 1){
|
layer.msg('超级管理员信息不支持编辑');
|
return false;
|
}
|
tool.side('/user/user/add?id='+data.id);
|
}
|
else if (obj.event === 'copy') {
|
tool.copyCtrl(data.reg_pwd);
|
return;
|
}
|
else if (obj.event === 'psw') {
|
layer.confirm('确定要重设该用户的密码?', {
|
icon: 3,
|
title: '提示'
|
}, function (index) {
|
let callback = function (e) {
|
layer.msg(e.msg);
|
if (e.code == 0) {
|
layui.pageTable.reload();
|
}
|
}
|
tool.post("/user/user/reset_psw", {id: data.id}, callback);
|
layer.close(index);
|
});
|
return;
|
}
|
});
|
}
|
</script>
|
{/block}
|
<!-- /脚本 -->
|