IntelligentRecognition/ah-jjsp-web/bns/js/teamInformation/teamDetails.js

488 lines
16 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}