var example = null;
var pers = null;
var isSelected = [];
var id = localStorage.getItem("id");
var year = localStorage.getItem("year");
var month = localStorage.getItem("month");
var proId = localStorage.getItem("proId");
var proName = localStorage.getItem("proName");
var teamId = localStorage.getItem("teamId");
var teamName = localStorage.getItem("teamName");
var seTime = localStorage.getItem("seTime");
var date = seTime.split("~");
var startTime = date[0];
var endTime = date[1];
$(function () {
layui.use(['layer', 'laydate', 'form'], function () {
var layer = layui.layer;
var laydate = layui.laydate;
var form = layui.form;
$("#proName").html(proName);
$("#teamName").html(teamName);
$("#year").html(year);
$("#month").html(month);
init();
pers = checkPermission();
$("#searchBt").click(function () {
example.ajax.reload();
});
$("#download").click(function () {
var token = localStorage.getItem("token");
var loadingMsg = layer.msg('下载中,请稍候...', {icon: 16, scrollbar: false, time: 0});
// var url = ctxPath + "/wagesGrant/exportWagesGran?id=" + id + "&token=" + token;
var keyWord = $("#keyWord").val();
var url = ctxPath + "/wagesGrant/exportWagesGran?teamId=" + teamId + "&proId=" + proId+ "&year=" + year+ "&month=" + month+ "&startTime=" + startTime + "&endTime=" + endTime + "&keyWord=" + keyWord + "&token=" + token;
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
var blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = "工资支付表-"+ proName +"-"+teamName+ "-"+ year+ "-"+ month + ".xlsx"; // 文件名
}else {
layer.msg('导出发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
}
a.click()
window.URL.revokeObjectURL(url)
};
xhr.send();
});
});
})
function init() {
example =
$('#dt-table').DataTable({
"sort": false,
'paging':false,
"searching": false,
"processing": true, //加载数据时显示进度状态
"serverSide": true,
"language": {
"url": contentPath + "/js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url": ctxPath + "/wagesGrant/getWagesInfos",
"type": "get",
"data": function (d) {
d.teamId = teamId;
d.proId = proId;
d.year = year;
d.month = month;
d.keyWord = $("#keyWord").val();
d.startTime = startTime;
d.endTime = endTime;
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
layer.msg("token过期,请先登录", {shift: -1, time: 1000}, function () {
location.href = ctxPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
}
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>",
"columns": [
{
width: '5%',
data: function (row, type, set, meta) {
var c = meta.settings._iDisplayStart + meta.row + 1;
return c;
}
},
{"data": "teamMembers",width: '8%', },
{"data": "idNumber",width: '8%',},
{"data": "postName",width: '8%',},
{"data": "unitPrice",width: '8%'},
{"data": "checkNum",width: '8%'},
{"data": "basePay",width: '8%',},
{"data": "overtimeday",width: '5%',},
{"data": "unitOvertimePay",width: '5%',},
{"data": "overtimePay",width: '5%',
"render": function (data, type, row,meta) {
var overtimePay = row['overtimePay'];
overtimePay = Number(overtimePay)
overtimePay = overtimePay.toFixed(2);
var id = "jbxj" + meta.row ;
var html = '';
html += "";
return html;
}
},
{"data": "unitPerformanceFee",width: '5%',},
{"data": "performanceDay",width: '5%',},
{"data": "performanceFeePay",width: '5%',
"render": function (data, type, row,meta) {
var performanceFeePay = row['performanceFeePay'];
performanceFeePay = Number(performanceFeePay)
performanceFeePay = performanceFeePay.toFixed(2);
var id = "jxxj" + meta.row ;
var html = '';
html += "";
return html;
}
},
{"data": "payNum",width: '5%',
"render": function (data, type, row,meta) {
var payNum = row['payNum'];
if(payNum==null||payNum=="null"){
payNum=0;
}
payNum = Number(payNum)
payNum = payNum.toFixed(2);
var id = "bcxj" + meta.row ;
var html = '';
html += "";
return html;
}
},
{"data": "performanceCount",width: '8%'},
{"data": "autograph",width: '8%'},
],
footerCallback: function (row, data, start, end, display) {
var api = this.api(), data;
var intVal = function (i) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '') * 1 :
typeof i === 'number' ? i : 0;
};
// 当月发放基本工资 小计 api.column(0).data()是获取对应的数据 下标从0开始。
var basePay = api.column(6).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0);
// 加班费 小计 api.column(0).data()是获取对应的数据 下标从0开始。
var overtimePay = api.column(9).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0);
// 绩效奖金 小计 api.column(0).data()是获取对应的数据 下标从0开始。
var performanceFeePay = api.column(12).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0);
// 绩效奖金 累计(含本月) 小计 api.column(0).data()是获取对应的数据 下标从0开始。
var performanceCount = api.column(14).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0);
// 绩效奖金 累计(含本月) 小计 api.column(0).data()是获取对应的数据 下标从0开始。
var bcxj = api.column(13).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0);
//全部统计
pageTotal = api.column(4, { page: 'current' }).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0);
//api.column(6).footer 是放到对应的列表 下标从0开始。
basePay =basePay.toFixed(2);
$(api.column(6).footer()).html(
basePay
);
overtimePay =overtimePay.toFixed(2);
$(api.column(9).footer()).html(
overtimePay
);
performanceFeePay =performanceFeePay.toFixed(2);
$(api.column(12).footer()).html(
performanceFeePay
);
bcxj =bcxj.toFixed(2);
$(api.column(13).footer()).html(
bcxj
);
performanceCount =performanceCount.toFixed(2);
$(api.column(14).footer()).html(
performanceCount
);
},
"order": [ [1, "asc"]] //在栏目列上显示排序功能
});
}
//设置弹窗关闭
function reloading() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.location.reload();
}