374 lines
17 KiB
HTML
374 lines
17 KiB
HTML
|
<!doctype html>
|
|||
|
<html lang="en">
|
|||
|
<head>
|
|||
|
<base href="/servicecity/">
|
|||
|
<meta charset="UTF-8"/>
|
|||
|
<meta http-equiv="X-UA-Compatible" content="IE=11,chrome=1"/>
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|||
|
|
|||
|
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
|||
|
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
|||
|
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
|||
|
<style>
|
|||
|
.un-pass-class .layui-layer-btn .layui-layer-btn0{
|
|||
|
background-color: #FF5722;
|
|||
|
color: #ffffff;
|
|||
|
border: 1px solid #dedede;
|
|||
|
}
|
|||
|
</style>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div class="layui-fluid layui-anim layui-anim-fadein">
|
|||
|
<div class="layui-row">
|
|||
|
<div class="layui-col-md12">
|
|||
|
<div class="layui-card">
|
|||
|
<div class="layui-card-body">
|
|||
|
<div class="test-table-reload-btn layui-form" style="margin-bottom: 5px;">
|
|||
|
<div class="layui-inline">
|
|||
|
<input type="text" id="keywords" class="layui-input search-item" placeholder="请假人姓名|手机号" style="height: 38px;width: 150px;" autocomplete="off">
|
|||
|
</div>
|
|||
|
<div class="layui-inline" style="width: 150px;">
|
|||
|
<select id="approverState" name="approverState">
|
|||
|
<option value="">审批状态</option>
|
|||
|
<option value="0">待审批</option>
|
|||
|
<option value="1">同意</option>
|
|||
|
<option value="2">不同意</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
<div class="layui-inline">
|
|||
|
<input type="text" id="startTime" class="layui-input search-item"
|
|||
|
readonly="readonly" placeholder="开始时间" style="height: 38px;width: 120px;cursor: pointer" autocomplete="off">
|
|||
|
</div>
|
|||
|
<div class="layui-inline">
|
|||
|
<input type="text" id="endTime" class="layui-input search-item"
|
|||
|
readonly="readonly" placeholder="截止时间" style="height: 38px;width: 120px;cursor: pointer" autocomplete="off">
|
|||
|
</div>
|
|||
|
<button type="button" id="search" class="layui-btn layui-btn-sm">
|
|||
|
<i class="fa fa-lg fa-search"></i> 搜索
|
|||
|
</button>
|
|||
|
</div>
|
|||
|
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<script id="pass-div-box" type="text/html">
|
|||
|
<div class="layui-fluid layui-anim layui-anim-fadein">
|
|||
|
<div class="layui-row">
|
|||
|
<div class="layui-col-md12 layui-col-sm12">
|
|||
|
<div class="layui-form">
|
|||
|
<div class="">
|
|||
|
<textarea id="leaveRefuseSummary" name="leaveRefuseSummary" autocomplete="off" maxlength="255"
|
|||
|
placeholder="请填写审批意见" class="layui-textarea"></textarea>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</script>
|
|||
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
|||
|
<script type="text/javascript">
|
|||
|
layui.config({
|
|||
|
base: 'assets/layuiadmin/'
|
|||
|
}).extend({
|
|||
|
index: 'lib/index'
|
|||
|
}).use(['index', 'table', 'laytpl', 'form','laydate'], function() {
|
|||
|
var $ = layui.$;
|
|||
|
var $win = $(window);
|
|||
|
var laytpl = layui.laytpl;
|
|||
|
var table = layui.table;
|
|||
|
var admin = layui.admin;
|
|||
|
var form = layui.form;
|
|||
|
var laydate = layui.laydate;
|
|||
|
var tableUrl = 'api/leave/list-page-leave-detail1';
|
|||
|
var dataLoading = false;
|
|||
|
|
|||
|
function init() {
|
|||
|
laydate.render({
|
|||
|
elem: '#startTime'
|
|||
|
});
|
|||
|
laydate.render({
|
|||
|
elem: '#endTime'
|
|||
|
});
|
|||
|
initTable();
|
|||
|
}
|
|||
|
init();
|
|||
|
|
|||
|
function initTable() {
|
|||
|
dataLoading = true;
|
|||
|
table.render({
|
|||
|
elem: '#dataTable',
|
|||
|
id: 'dataTable',
|
|||
|
url: top.restAjax.path(tableUrl, []),
|
|||
|
width: admin.screen() > 1 ? '100%' : '',
|
|||
|
height: $win.height() - 100,
|
|||
|
limit: 20,
|
|||
|
limits: [20, 40, 60, 80, 100, 200],
|
|||
|
request: {
|
|||
|
pageName: 'page',
|
|||
|
limitName: 'rows'
|
|||
|
},
|
|||
|
cols: [[
|
|||
|
{field:'rowNum', width:60, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
|
|||
|
{field: 'userAvatar', width: 60, title: '头像', align:'center',fixed: 'left',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '<img style="width: 30px;height: 30px;" src="assets/images/profile-photo.jpg"/>';
|
|||
|
} else {
|
|||
|
return '<img style="width: 30px;height: 30px;" src="route/file/downloadfile/false/'+ rowData +'"/>';
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveUserName', width: 200, title: '请假人', align:'center',fixed: 'left',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData + '【' + row['userPhone'] + '】';
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'isSelf', width: 100, title: '公私假', align:'center',fixed: 'left',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(rowData === 0) {
|
|||
|
return '公假';
|
|||
|
}
|
|||
|
if(rowData === 1) {
|
|||
|
return '私假';
|
|||
|
}
|
|||
|
return '错误'
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveTypeName', width: 100, title: '请假缘由', align:'center',fixed: 'left',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveTime', width: 180, title: '请假时间', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveTimeEnd', width: 180, title: '结束时间', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveTimeLong', width: 100, title: '请假时长', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData + '天';
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveSummary', width: 200, title: '详细请假原因', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return '<span style="color: #1E9FFF">' + rowData + '</span>';
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'outgoingLocation', width: 200, title: '外出地点', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return `<a href="javascript:void(0);" lay-event="showOutgoingEvent">${rowData}</a>`;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveImg', width: 100, title: '请假条', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return '<button type="button" class="layui-btn layui-btn-xs layui-btn-normal" lay-event="leaveImgEvent">查看</button>';
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveState', width: 100, title: '当前状态', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(rowData == '0'){
|
|||
|
return '<span style="color: #aa7700">待审批</span>'
|
|||
|
}
|
|||
|
if(rowData == '1'){
|
|||
|
return '<span style="color: #00a0e9">同意</span>'
|
|||
|
}
|
|||
|
if(rowData == '2'){
|
|||
|
return '<span style="color: red">不同意</span>'
|
|||
|
}
|
|||
|
return '-';
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'leaveRefuseSummary', width: 120, title: '审批意见', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'approverName', width: 100, title: '1级审批人', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'approverState', width: 120, title: '1级审批状态', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(rowData == '0'){
|
|||
|
return '<span style="color: #aa7700">待审批</span>'
|
|||
|
}
|
|||
|
if(rowData == '1') {
|
|||
|
return '<span style="color: #00a0e9">同意</span>'
|
|||
|
}
|
|||
|
if(rowData == '2') {
|
|||
|
return '<span style="color: red">不同意</span>'
|
|||
|
}
|
|||
|
return '-';
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'approverRefuseSummary', width: 120, title: '1级审批意见', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'approver2State', width: 120, title: '2级审批状态', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(rowData == '0'){
|
|||
|
return '<span style="color: #aa7700">待审批</span>'
|
|||
|
}
|
|||
|
if(rowData == '1') {
|
|||
|
return '<span style="color: #00a0e9">同意</span>'
|
|||
|
}
|
|||
|
if(rowData == '2') {
|
|||
|
return '<span style="color: red">不同意</span>'
|
|||
|
}
|
|||
|
return '-';
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'approver2RefuseSummary', width: 120, title: '2级审批意见', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
},
|
|||
|
{field: 'approver2Name', width: 120, title: '2级审批人', align:'center',
|
|||
|
templet: function(row) {
|
|||
|
var rowData = row[this.field];
|
|||
|
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
|||
|
return '-';
|
|||
|
}
|
|||
|
return rowData;
|
|||
|
}
|
|||
|
}
|
|||
|
]],
|
|||
|
page: true,
|
|||
|
parseData: function(data) {
|
|||
|
return {
|
|||
|
'code': 0,
|
|||
|
'msg': '',
|
|||
|
'count': data.total,
|
|||
|
'data': data.rows
|
|||
|
};
|
|||
|
},
|
|||
|
done: function(){
|
|||
|
dataLoading = false;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
// 重载表格
|
|||
|
function reloadTable(currentPage) {
|
|||
|
dataLoading = true;
|
|||
|
table.reload('dataTable', {
|
|||
|
url: top.restAjax.path(tableUrl, []),
|
|||
|
where :{
|
|||
|
keywords : $('#keywords').val(),
|
|||
|
approverState : $('#approverState').val(),
|
|||
|
startTime : $('#startTime').val(),
|
|||
|
endTime : $('#endTime').val()
|
|||
|
},
|
|||
|
page: {
|
|||
|
curr: currentPage
|
|||
|
},
|
|||
|
height: $win.height() - 100,
|
|||
|
done:function(){
|
|||
|
dataLoading = false;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
table.on('tool(dataTable)', function(obj) {
|
|||
|
if(obj.event === 'leaveImgEvent') {
|
|||
|
let data = obj.data;
|
|||
|
let fileIds = data.leaveImg.split(',');
|
|||
|
let files = [];
|
|||
|
$.each(fileIds, function(index, item) {
|
|||
|
files.push({
|
|||
|
alt: index,
|
|||
|
pid: item,
|
|||
|
src: `route/file/downloadfile/true/${item}`,
|
|||
|
thumb: `route/file/downloadfile/true/${item}`
|
|||
|
})
|
|||
|
})
|
|||
|
layer.photos({
|
|||
|
photos: {
|
|||
|
title: `${data.leaveUserName}的请假条`,
|
|||
|
id: data.leaveId,
|
|||
|
start: 0,
|
|||
|
data: files
|
|||
|
},
|
|||
|
anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机
|
|||
|
});
|
|||
|
}
|
|||
|
if(obj.event === 'showOutgoingEvent') {
|
|||
|
let data = obj.data;
|
|||
|
console.log(data);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
$(document).on('click', '#search', function() {
|
|||
|
if(dataLoading){
|
|||
|
layer.msg('数据加载中,请稍等...');
|
|||
|
return;
|
|||
|
}
|
|||
|
reloadTable(1);
|
|||
|
});
|
|||
|
});
|
|||
|
</script>
|
|||
|
</body>
|
|||
|
</html>
|