488 lines
16 KiB
JavaScript
488 lines
16 KiB
JavaScript
let table, form, layer, rate, util, user = getUser();
|
||
let pageNum = 1, limitSize = 30;
|
||
let data = '';
|
||
let teamState = [{
|
||
"name": '正常',
|
||
"value": '01'
|
||
}, {
|
||
"name": '解散',
|
||
"value": '02'
|
||
}];
|
||
//getPer();
|
||
$(function () {
|
||
layui.config({
|
||
base: "../../js/layui/", //此处路径请自行处理, 可以使用绝对路径
|
||
}).extend({
|
||
formSelects: 'formSelects-v4'
|
||
|
||
}).use(['rate', 'layer', 'formSelects', 'form', 'table', 'util'], function () {
|
||
layer = layui.layer;
|
||
form = layui.form;
|
||
rate = layui.rate;
|
||
table = layui.table;
|
||
util = layui.util;
|
||
formSelects = layui.formSelects;
|
||
formSelects.data('teamState', 'local', {
|
||
arr: teamState
|
||
});
|
||
util.event('lay-active', {
|
||
query: function () {
|
||
pages(1, limitSize);
|
||
},
|
||
reset: function () {
|
||
$('#keyword').val('');
|
||
$('#teamName').val('');
|
||
$('#foreman').val('');
|
||
$('#projectName').val('');
|
||
formSelects.value('teamState', []);
|
||
form.render();
|
||
pages(1, limitSize);
|
||
},
|
||
export: function () {
|
||
exportData();
|
||
}
|
||
});
|
||
form.render();
|
||
getPerNum();
|
||
pages(1, 30, 1);
|
||
table.on("sort(teamTable)", function (obj) {
|
||
$(".layui-laypage-skip").css("display", "none");
|
||
for (let i = 0; i < data.length; i++) {
|
||
rate.render({
|
||
elem: '#test' + i
|
||
, value: data[i].zhpj / 2
|
||
, readonly: true
|
||
, half: true,
|
||
theme: '#2F82FB'
|
||
});
|
||
table.render()
|
||
}
|
||
|
||
});
|
||
//触发单元格工具事件
|
||
table.on('tool(teamTable)', function (obj) { // 双击 toolDouble
|
||
let data = obj.data;
|
||
if (obj.event === 'detail') {
|
||
toEvaluatePage(data.classId, data.idNumber, data.teamName,data.teamId);
|
||
} else if (obj.event === 'edit') {
|
||
layer.prompt({
|
||
formType: 2,
|
||
title: '拉黑说明 '
|
||
}, function (value, index) {
|
||
/**
|
||
* 拉黑操作
|
||
*/
|
||
Ajax().post({
|
||
headers: {
|
||
"encrypt": sm3(JSON.stringify({
|
||
idNumber: data.idNumber,
|
||
content: value,
|
||
userId: JSON.parse(decrypt(us)).userId + "",
|
||
}))
|
||
},
|
||
url: dataUrl + 'proteam/pot/team/insertTeamBlack',
|
||
data: {
|
||
idNumber: data.idNumber,
|
||
content: value,
|
||
userId: JSON.parse(decrypt(us)).userId + "",
|
||
},
|
||
success: function (data) {
|
||
if (data.code === 200) {
|
||
layer.msg(data.msg, {
|
||
icon: 1,
|
||
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
||
}, function () {
|
||
pages(1, limitSize);
|
||
layer.close(index);
|
||
});
|
||
} else {
|
||
layer.msg(data.msg, {icon: -1});
|
||
}
|
||
},
|
||
async: false
|
||
});
|
||
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
|
||
});
|
||
|
||
function pages(pageNum, pageSize, typeNum) {
|
||
let params = getReqParams(pageNum, pageSize);
|
||
$.ajax({
|
||
headers: {
|
||
"encrypt": sm3(JSON.stringify(params))
|
||
},
|
||
url: dataUrl + "proteam/pot/team/getTeamList" + '?token=' + token,
|
||
data: params,
|
||
type: 'POST',
|
||
async: false,
|
||
success: function (result) {
|
||
console.log(result);
|
||
if (result.code === 200) {
|
||
if (result.rows) {
|
||
initTable(result.rows, limitSize, pageNum)
|
||
laypages(result.total, pageNum, limitSize)
|
||
}
|
||
} else if (result.code === 500) {
|
||
layer.alert(result.msg, {icon: 2})
|
||
} else if (result.code === 401) {
|
||
logout(1);
|
||
}
|
||
}, error: function () {
|
||
}
|
||
});
|
||
}
|
||
|
||
function laypages(total, page, limit) {
|
||
layui.use(['laypage'], function () {
|
||
let laypage = layui.laypage;
|
||
laypage.render({
|
||
elem: 'voi-page',
|
||
count: total,
|
||
curr: page,
|
||
limit: limit,
|
||
limits: [30, 50, 100],
|
||
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
|
||
groups: 5,
|
||
jump: function (obj, first) {
|
||
if (!first) {
|
||
pageNum = obj.curr, limitSize = obj.limit;
|
||
pages(obj.curr, obj.limit, null);
|
||
}
|
||
}
|
||
});
|
||
})
|
||
}
|
||
|
||
// 获取参数
|
||
function getReqParams(page, limit) {
|
||
console.log(page + "," + limit)
|
||
let obj = {
|
||
pageNum: page + "",
|
||
pageSize: limit + "",
|
||
keyWord: $('#keyword').val(),
|
||
teamName: $('#teamName').val(),
|
||
fzrName: $('#foreman').val(),
|
||
proName: $('#projectName').val(),
|
||
status: formSelects.value('teamState', 'val').toString(),
|
||
currentUserId: user.userId + "",
|
||
isSup: user.isSup,
|
||
currentUserOrgId: user.orgId
|
||
|
||
};
|
||
return obj;
|
||
}
|
||
|
||
function initTable(dataList, limit, page) {
|
||
table.render({
|
||
elem: "#teamTable",
|
||
id: "teamTable",
|
||
height: "full-175",
|
||
data: dataList,
|
||
cols: [
|
||
[//表头
|
||
{
|
||
title: "序号",
|
||
minWidth: 140,
|
||
unresize: true,
|
||
align: "center",
|
||
templet: function (d) {
|
||
return (page - 1) * limit + d.LAY_INDEX;
|
||
}
|
||
},
|
||
{
|
||
field: "teamName",
|
||
title: "班组名称",
|
||
unresize: false,
|
||
sort: true,
|
||
minWidth: 200,
|
||
align: "center",
|
||
},
|
||
{
|
||
field: 'fzrName',
|
||
title: "班组长",
|
||
unresize: false,
|
||
sort: true,
|
||
minWidth: 200,
|
||
align: "center",
|
||
templet: function (d) {
|
||
return "<span>" + d.fzrName + "</span><br><span>" + d.phone + "</span>";
|
||
},
|
||
},
|
||
{
|
||
field: "zhpj",
|
||
title: "班组星级",
|
||
minWidth: 200,
|
||
unresize: false,
|
||
sort: true,
|
||
templet: function (d) {
|
||
return '<div id="test' + d.LAY_TABLE_INDEX + '"></div>'
|
||
},
|
||
align: "center",
|
||
},
|
||
{
|
||
field: "proName",
|
||
title: "当前所在工程",
|
||
unresize: false,
|
||
sort: true,
|
||
minWidth: 200,
|
||
align: "center",
|
||
},
|
||
{
|
||
field: "status",
|
||
title: "状态",
|
||
unresize: false,
|
||
sort: true,
|
||
minWidth: 80,
|
||
align: "center",
|
||
},
|
||
{
|
||
field: "dayNum",
|
||
title: "今日站班会人数",
|
||
unresize: false,
|
||
sort: true,
|
||
minWidth: 200,
|
||
templet: function (d) {
|
||
return "<span onclick='toTodayPage(\""+ d.teamId + "\")' style='color: blue;cursor: pointer;'>" + d.dayNum + "</span>";
|
||
},
|
||
align: "center",
|
||
},
|
||
{
|
||
field: "yeNum",
|
||
title: "昨日站班会人数",
|
||
unresize: false,
|
||
sort: true,
|
||
minWidth: 200,
|
||
align: "center",
|
||
},
|
||
{
|
||
field: "vzNum",
|
||
title: "累计违章次数",
|
||
unresize: false,
|
||
sort: true,
|
||
minWidth: 200,
|
||
templet: function (d) {
|
||
// return '<span onclick="toViolationsPage(\'' + d.classId + '\')" style="color: blue;cursor: pointer;">' + (isEmpty(d.vzNum) ? "0" : d.vzNum) + '</span>';
|
||
// return (isEmpty(d.vzNum) ? "0" : d.vzNum);
|
||
return '<div style="cursor: pointer;color: #2F82FB" ' +
|
||
'onclick="openTeamVoi(\'' + d.idNumber + '\',\'' + d.classId + '\',\''+ d.teamId +'\')"><span>' + d.vzNum + ' </span></div>';
|
||
},
|
||
align: "center",
|
||
},
|
||
{
|
||
fixed: 'right',
|
||
title: "操作",
|
||
align: 'center',
|
||
minWidth: 200,
|
||
toolbar: '#barDemo'
|
||
}
|
||
],
|
||
],
|
||
limit: limit,
|
||
done: function (res, curr, count) {
|
||
$(".layui-laypage-skip").css("display", "none");
|
||
data = res.data;
|
||
for (let i = 0; i < res.data.length; i++) {
|
||
rate.render({
|
||
elem: '#test' + i
|
||
, value: res.data[i].zhpj / 2
|
||
, readonly: true
|
||
, half: true,
|
||
theme: '#2F82FB'
|
||
});
|
||
table.render()
|
||
}
|
||
|
||
},
|
||
});
|
||
}
|
||
|
||
/* 班组违章详情 */
|
||
function openTeamVoi(teamLeaderNumber,classId,teamId){
|
||
console.log(teamId)
|
||
let layerIndex = layer.open({
|
||
type: 2,
|
||
id:'teamVoi',
|
||
title: ['<div style="border-left: 3px solid #2F82FB;display: flex;align-items: center;height: 20px;padding: 0 10px;">班组历史违章</div>', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'],
|
||
// closeBtn: true,
|
||
content: "../dutyTask/violation/teamVoiDetail.html",
|
||
shadeClose: false,
|
||
area: ['1600px', '750px'],
|
||
move: false,
|
||
success: function () {
|
||
let iframeWin = window["layui-layer-iframe" + layerIndex];
|
||
iframeWin.setParams(teamLeaderNumber,classId,teamId);
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
/**
|
||
* 跳转违章页面
|
||
* @param teamId 班组id
|
||
*/
|
||
function toViolationsPage(classId) {
|
||
let width = '100%', height = '100%';
|
||
layer.open({
|
||
/* color:#253E78;font-size:24px;background-color:rgb(37 62 120 / 22%);*/
|
||
title: ['违章统计', 'font-size:24px;'],
|
||
type: 2,
|
||
skin: 'shadows',
|
||
content: 'child/teamStatistics.html',
|
||
area: [width, height],
|
||
maxmin: false,
|
||
success: function (layero, index) {
|
||
let body = layer.getChildFrame('body', index);
|
||
let iframeWin = window[layero.find('iframe')[0]['name']];//获得iframe页的窗口对象,执行iframe页的方法:
|
||
iframeWin.setForm(classId);//调用子页面的方法,页面锁定
|
||
}
|
||
});
|
||
}
|
||
|
||
/**
|
||
* 跳转今日人员页面
|
||
* @param teamId 班组id
|
||
*/
|
||
function toTodayPage(teamId) {
|
||
let width = '90%', height = '80%';
|
||
layer.open({
|
||
/* color:#253E78;font-size:24px;background-color:rgb(37 62 120 / 22%);*/
|
||
title: ['班组人员', 'font-size:24px;'],
|
||
type: 2,
|
||
skin: 'shadows',
|
||
content: '../../html/teamInformation/child/teamPersonnel.html',
|
||
area: [width, height],
|
||
maxmin: false,
|
||
success: function (layero, index) {
|
||
let body = layer.getChildFrame('body', index);
|
||
let iframeWin = window[layero.find('iframe')[0]['name']];//获得iframe页的窗口对象,执行iframe页的方法:
|
||
iframeWin.setForm(teamId);//调用子页面的方法,页面锁定
|
||
}
|
||
});
|
||
}
|
||
|
||
/**
|
||
* 跳转班组评价页面
|
||
* @param classId 站班会id
|
||
* @param idNumber 身份证号
|
||
* @param teamName 班组名称
|
||
*/
|
||
function toEvaluatePage(classId, idNumber, teamName,teamId) {
|
||
console.log(teamId)
|
||
let width = '100%', height = '100%';
|
||
layer.open({
|
||
id: 'abc',
|
||
/* color:#253E78;font-size:24px;background-color:rgb(37 62 120 / 22%);*/
|
||
// title: ['班组评价', 'font-size:24px;'],
|
||
title: false,
|
||
type: 2,
|
||
skin: 'shadows',
|
||
content: '../../html/teamInformation/child/teamEvaluate.html',
|
||
area: [width, height],
|
||
maxmin: false,
|
||
move: false,
|
||
closeBtn: 0,
|
||
success: function (layero, index) {
|
||
let body = layer.getChildFrame('body', index);
|
||
let iframeWin = window[layero.find('iframe')[0]['name']];//获得iframe页的窗口对象,执行iframe页的方法:
|
||
iframeWin.setForm(classId, idNumber, teamName,teamId);//调用子页面的方法,页面锁定
|
||
},
|
||
end: function () {
|
||
pages(1, 30, 1);
|
||
},
|
||
});
|
||
}
|
||
|
||
//导出
|
||
function exportData() {
|
||
let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
|
||
let url = dataUrl + "proteam/pot/team/exportTeamData?" + setData(getReqParams(pageNum, limitSize)) + '&token=' + token;
|
||
let xhr = new XMLHttpRequest();
|
||
let a = document.createElement("a");
|
||
xhr.open("get", url, true);
|
||
xhr.responseType = "blob"; // 转换流
|
||
xhr.setRequestHeader("encrypt",
|
||
sm3(JSON.stringify(
|
||
getReqParams(pageNum, limitSize)
|
||
)));
|
||
xhr.onload = function () {
|
||
layer.close(loadingMsg);
|
||
if (this.status === 200) {
|
||
let url = window.URL.createObjectURL(new Blob([this.response]))
|
||
let link = document.createElement('a')
|
||
link.style.display = 'none'
|
||
link.href = url
|
||
link.setAttribute('download', "班组明细.xlsx")
|
||
document.body.appendChild(link)
|
||
link.click()
|
||
// 释放URL对象所占资源
|
||
window.URL.revokeObjectURL(url)
|
||
// 用完即删
|
||
document.body.removeChild(link)
|
||
} else {
|
||
layer.msg("数据发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000});
|
||
}
|
||
};
|
||
xhr.send();
|
||
}
|
||
|
||
function getPerNum() {
|
||
$.ajax({
|
||
headers: {
|
||
"encrypt": sm3(JSON.stringify({
|
||
params: encrypt(JSON.stringify({
|
||
currentUserId: user.userId,
|
||
isSup: user.isSup,
|
||
currentUserOrgId: user.orgId
|
||
}))
|
||
}))
|
||
},
|
||
url: dataUrl + 'proteam/pot/team/getPerNum' + '?token=' + token,
|
||
type: 'post',
|
||
data: {
|
||
params: encrypt(JSON.stringify({
|
||
currentUserId: user.userId,
|
||
isSup: user.isSup,
|
||
currentUserOrgId: user.orgId
|
||
}))
|
||
},
|
||
success: function (obj) {
|
||
if (obj.code === 200) {
|
||
$.each(obj.data, function (index, item) {
|
||
$("#dTeam").html(item.dTeam);
|
||
$("#dZTeam").html(item.dZTeam);
|
||
$("#dPer").html(item.dPer);
|
||
$("#dZPer").html(item.dZPer);
|
||
$("#dWTeam").html(item.dWTeam);
|
||
$("#xZteam").html(item.xZteam);
|
||
$("#yTeam").html(item.yTeam);
|
||
$("#yPer").html(item.yPer);
|
||
})
|
||
}
|
||
}
|
||
});
|
||
|
||
}
|
||
|
||
// 展开/收起
|
||
function isShow(type) {
|
||
if (type === 1) {
|
||
$("#basic-info").slideLeftHide();
|
||
setTimeout(() => {
|
||
$("#show").removeAttr("style");
|
||
}, 510);
|
||
$(".basic-info-box").animate({backgroundColor: "#fff"}, "500");
|
||
} else if (type === 2) {
|
||
$("#show").css("display", "none");
|
||
$(".basic-info-box").animate({backgroundColor: "#EEF5FF"}, "500");
|
||
$("#basic-info").slideLeftShow();
|
||
}
|
||
}
|
||
|
||
|
||
|