597 lines
20 KiB
JavaScript
597 lines
20 KiB
JavaScript
let form, layer, laydate, checkedDate;
|
||
let myChart4 = echarts.init(document.getElementById('voi-echarts'));
|
||
layui.use(['form', 'laydate', 'layer'], function () {
|
||
layer = layui.layer;
|
||
form = layui.form;
|
||
laydate = layui.laydate;
|
||
laydate.render({
|
||
elem: '#createTime', //指定元素 元素选择器
|
||
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
|
||
trigger: 'click',
|
||
range: true,
|
||
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
|
||
max: Date.parse(new Date()),
|
||
btns: ['now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
|
||
done: function (value, date) { //时间回调
|
||
let dateArr = value.split(' - ');
|
||
setDateData(getAllDate(dateArr[0], dateArr[1]));
|
||
getDaily(dateArr[1]);
|
||
}
|
||
});
|
||
checkedDate = getNowTime();
|
||
$('#createTime').val(getBeforeDate(9) + " - " + getNowTime())
|
||
setDateData(getAllDate(getBeforeDate(9), getNowTime()));
|
||
getDaily(getNowTime());
|
||
});
|
||
|
||
// 设置日期数据
|
||
function setDateData(data) {
|
||
let reverseData = data.reverse();
|
||
let html = '';
|
||
reverseData.forEach((item, index) => {
|
||
if (index === 0) {
|
||
html += '<p class="p-checked date' + (index + 1) + '" id="lastDate" tabindex="' + (index + 1) + '" onclick="dailyDetail(\'' + item + '\',\'' + (index + 1) + '\')">' + item + '</p> ';
|
||
} else {
|
||
html += '<p class="date' + (index + 1) + '" tabindex="' + (index + 1) + '" onclick="dailyDetail(\'' + item + '\',\'' + (index + 1) + '\')">' + item + '</p> ';
|
||
}
|
||
});
|
||
$('.date-box').empty().append(html);
|
||
}
|
||
|
||
function dailyDetail(data, index) {
|
||
$('.date-box').find('p').each(function () {
|
||
if ($(this).hasClass('p-checked')) {
|
||
$(this).removeClass('p-checked');
|
||
}
|
||
})
|
||
$('.date' + index).addClass('p-checked');
|
||
$('.daily-box').css('display', 'none');
|
||
$('.download-btn').css('display', 'none');
|
||
getDaily(data);
|
||
checkedDate = data;
|
||
}
|
||
|
||
// 刷新数据
|
||
function refreshData(){
|
||
let loadingMsg = layer.msg('数据更新中,请稍候...', {icon: 16, scrollbar: false, time: 0, offset: ['45%', '57%']});
|
||
$.ajax({
|
||
headers: {
|
||
"encrypt": sm3(JSON.stringify({}))
|
||
},
|
||
type: 'POST',
|
||
url: dataUrl + "proteam/pot/dailyDutyReport/refreshData?token=" + token,
|
||
data: {},
|
||
async: false,
|
||
dataType: 'json',
|
||
success: function (result) {
|
||
layer.close(loadingMsg);
|
||
if (result.code === 500) {
|
||
return layer.alert(result.msg, {icon: 2})
|
||
} else if (result.code === 401) {
|
||
logout(1)
|
||
} else if (result.code === 200) {
|
||
getDaily(getNowTime());
|
||
}
|
||
}, error: function (XMLHttpRequest, textStatus, errorThrown) {
|
||
layer.close(loadingMsg); // 关闭提示层
|
||
layer.msg('数据刷新发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
|
||
}
|
||
});
|
||
}
|
||
|
||
// 下载日报
|
||
function downloadDaily() {
|
||
let loadingMsg = layer.msg('日报下载中,请稍候...', {icon: 16, scrollbar: false, time: 0, offset: ['45%', '57%']});
|
||
let url = dataUrl + 'proteam/pot/dailyDutyReport/downloadDaily?currentDay=' + checkedDate + "&chineseDate=" + setDate(checkedDate) + "&token=" + token;
|
||
let xhr = new XMLHttpRequest();
|
||
xhr.open("get", url, true);
|
||
xhr.responseType = "blob"; // 转换流
|
||
xhr.setRequestHeader("encrypt",
|
||
sm3(JSON.stringify({
|
||
currentDay: checkedDate,
|
||
chineseDate: setDate(checkedDate)
|
||
})));
|
||
xhr.onload = function () {
|
||
layer.close(loadingMsg);
|
||
if (this.status === 200) {
|
||
let blob = this.response;
|
||
var a = document.createElement("a");
|
||
var url = window.URL.createObjectURL(blob);
|
||
a.href = url;
|
||
a.download = "国网安徽电力基建安全日报" + setDate(checkedDate) + ".docx"; // 文件名
|
||
} else {
|
||
layer.msg('服务异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000, offset: ['45%', '57%']});
|
||
}
|
||
a.click()
|
||
window.URL.revokeObjectURL(url)
|
||
};
|
||
xhr.send();
|
||
}
|
||
|
||
// 加载日报数据
|
||
function getDaily(currentDay) {
|
||
let loadingMsg = layer.msg('数据加载中,请稍候...', {icon: 16, scrollbar: false, time: 0, offset: ['45%', '57%']});
|
||
$.ajax({
|
||
headers: {
|
||
"encrypt": sm3(JSON.stringify({
|
||
currentDay: currentDay
|
||
}))
|
||
},
|
||
type: 'POST',
|
||
url: dataUrl + "proteam/pot/dailyDutyReport/getDailyData?token=" + token,
|
||
data: {
|
||
currentDay: currentDay
|
||
},
|
||
async: false,
|
||
dataType: 'json',
|
||
success: function (result) {
|
||
layer.close(loadingMsg);
|
||
if (result.code === 500) {
|
||
setDailyData(currentDay, null);
|
||
return layer.alert(data.msg, {icon: 2})
|
||
} else if (result.code === 401) {
|
||
logout(1)
|
||
} else if (result.code === 200) {
|
||
if (result.data) {
|
||
setDailyData(currentDay, result.data);
|
||
} else {
|
||
setDailyData(currentDay, null);
|
||
}
|
||
}
|
||
}, error: function (XMLHttpRequest, textStatus, errorThrown) {
|
||
layer.close(loadingMsg); // 关闭提示层
|
||
layer.msg('数据加载发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
|
||
setDailyData(currentDay, null);
|
||
}
|
||
});
|
||
}
|
||
|
||
// 日报赋值
|
||
function setDailyData(data, dataMap) {
|
||
$('.daily-date').html(setDate(data));
|
||
$('.daily-box').css('display', 'block');
|
||
$('.download-btn').css('display', 'block');
|
||
if(data === getNowTime()){
|
||
$('.refresh-btn').css('display', 'block');
|
||
}else{
|
||
$('.refresh-btn').css('display', 'none');
|
||
}
|
||
setModuleOneData(dataMap);
|
||
setModuleTwoData(dataMap);
|
||
setModuleThreeData(dataMap);
|
||
setModuleFourData(dataMap);
|
||
setModuleFiveData(dataMap);
|
||
setModuleSixData(dataMap);
|
||
setModuleSevenData(dataMap);
|
||
setModuleEightData(dataMap);
|
||
setModuleNineData(dataMap);
|
||
setModuleTenData(dataMap);
|
||
setModuleElevenData(dataMap);
|
||
initEchartsTwo(dataMap.moduleTwelve);
|
||
setModuleThirteenData(dataMap);
|
||
}
|
||
|
||
/*安全质量检查总体情况赋值*/
|
||
function setModuleOneData(data) {
|
||
if (data) {
|
||
let moduleOne = data.moduleOne;
|
||
$('#moduleOneNum').html(moduleOne.moduleOneNum);
|
||
$('#moduleOneNum2').html(moduleOne.moduleOneNum2);
|
||
$('#moduleOneNum3').html(moduleOne.moduleOneNum3);
|
||
$('#moduleOneNum4').html(moduleOne.moduleOneNum4);
|
||
$('#moduleOneNum5').html(moduleOne.moduleOneNum5);
|
||
$('#moduleOneNum6').html(moduleOne.moduleOneNum6);
|
||
}
|
||
}
|
||
|
||
/*班组及人员情况赋值*/
|
||
function setModuleTwoData(data) {
|
||
if (data) {
|
||
let moduleTwo = data.moduleTwo;
|
||
$('#moduleTwoNum').html(moduleTwo.moduleTwoNum);
|
||
$('#moduleTwoNum2').html(moduleTwo.moduleTwoNum2);
|
||
$('#moduleTwoNum3').html(moduleTwo.moduleTwoNum3);
|
||
}
|
||
}
|
||
|
||
/*作业计划执行情况-日计划实施赋值*/
|
||
function setModuleThreeData(data) {
|
||
if (data) {
|
||
let moduleThree = data.moduleThree;
|
||
$('#moduleThreeNum').html(moduleThree.moduleThreeNum);
|
||
$('#moduleThreeNum2').html(moduleThree.moduleThreeNum2);
|
||
$('#moduleThreeNum3').html(moduleThree.moduleThreeNum3);
|
||
$('#moduleThreeNum4').html(moduleThree.moduleThreeNum4);
|
||
}
|
||
}
|
||
|
||
/*作业计划执行情况-今日视频监控接入情况赋值*/
|
||
function setModuleFourData(data) {
|
||
if (data) {
|
||
let moduleFour = data.moduleFour;
|
||
$('.moduleFourNum').html(moduleFour.moduleFourNum);
|
||
$('.moduleFourNum2').html(moduleFour.moduleFourNum2);
|
||
$('#moduleFourNum3').html(moduleFour.moduleFourNum3);
|
||
}
|
||
}
|
||
|
||
/*督查情况-总体情况赋值*/
|
||
function setModuleFiveData(data) {
|
||
if (data) {
|
||
let moduleFive = data.moduleFive;
|
||
$('.moduleFiveNum').html(moduleFive.moduleFiveNum);
|
||
$('#moduleFiveNum2').html(moduleFive.moduleFiveNum2);
|
||
$('#moduleFiveNum3').html(moduleFive.moduleFiveNum3);
|
||
$('#moduleFiveNum4').html(moduleFive.moduleFiveNum4);
|
||
$('#moduleFiveNum5').html(moduleFive.moduleFiveNum5);
|
||
}
|
||
}
|
||
|
||
/*关键措施照片上传和日报评价情况赋值*/
|
||
function setModuleSixData(data) {
|
||
if (data) {
|
||
let moduleSix = data.moduleSix;
|
||
let html = '';
|
||
if (moduleSix) {
|
||
moduleSix.forEach((item, index) => {
|
||
html += '<tr><td>' + (index + 1) + '</td>' +
|
||
'<td>' + item.name + '</td>' +
|
||
'<td>' + item.num + '</td>' +
|
||
'<td>' + item.num + '</td>' +
|
||
'<td>' + item.rate + '</td>' +
|
||
'<td>' + item.eval + '</td></tr>'
|
||
})
|
||
} else {
|
||
html += '<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>'
|
||
}
|
||
$('.two-table tbody').empty().append(html);
|
||
}
|
||
}
|
||
|
||
/*新进班组风险提示赋值*/
|
||
function setModuleSevenData(data) {
|
||
if (data) {
|
||
let moduleSeven = data.moduleSeven;
|
||
let html = '';
|
||
if (moduleSeven.length > 0) {
|
||
moduleSeven.forEach((item, index) => {
|
||
html += '<tr><td>' + (index + 1) + '</td>' +
|
||
'<td>' + setValue2(item.bidName) + '</td>' +
|
||
'<td>' + setValue2(item.orgName) + '</td>' +
|
||
'<td>' + setValue2(item.workManager) + '</td></tr>'
|
||
})
|
||
} else {
|
||
html += '<tr><td></td><td></td><td></td><td></td></tr>'
|
||
}
|
||
$('.four-table tbody').empty().append(html);
|
||
}
|
||
}
|
||
|
||
/*无作业班组核查赋值*/
|
||
function setModuleEightData(data) {
|
||
if (data) {
|
||
let moduleEight = data.moduleEight;
|
||
let html = '';
|
||
if (moduleEight.length > 0) {
|
||
moduleEight.forEach((item, index) => {
|
||
html += '<tr><td>' + (index + 1) + '</td>' +
|
||
'<td>' + setValue2(item.bidName) + '</td>' +
|
||
'<td>' + setValue2(item.orgName) + '</td>' +
|
||
'<td>' + setValue2(item.workManager) + '</td>' +
|
||
'<td></td>' +
|
||
'</tr>'
|
||
})
|
||
} else {
|
||
html += '<tr><td></td><td></td><td></td><td></td><td></td></tr>'
|
||
}
|
||
$('.five-table tbody').empty().append(html);
|
||
}
|
||
}
|
||
|
||
/*班组人员较大变化核查赋值*/
|
||
function setModuleNineData(data) {
|
||
if (data) {
|
||
let moduleNine = data.moduleNine;
|
||
let html = '';
|
||
if (moduleNine.length > 0) {
|
||
moduleNine.forEach((item, index) => {
|
||
html += '<tr><td>' + (index + 1) + '</td>' +
|
||
'<td>' + setValue2(item.bidName) + '</td>' +
|
||
'<td>' + setValue2(item.orgName) + '</td>' +
|
||
'<td>' + setValue2(item.workManager) + '</td>' +
|
||
'<td></td>' +
|
||
'</tr>'
|
||
})
|
||
} else {
|
||
html += '<tr><td></td><td></td><td></td><td></td><td></td></tr>'
|
||
}
|
||
$('.six-table tbody').empty().append(html);
|
||
}
|
||
}
|
||
|
||
/*二级风险到岗到位抽查情况赋值*/
|
||
function setModuleTenData(data) {
|
||
if (data) {
|
||
let moduleTen = data.moduleTen;
|
||
let html = '';
|
||
if (moduleTen.length > 0) {
|
||
moduleTen.forEach((item, index) => {
|
||
html += '<tr><td>' + (index + 1) + '</td><td>' + item.bidName + '</td><td>' + arriveInPlace(item.yzNum) + '</td><td>' + arriveInPlace(item.jlNum) + '</td><td>' + arriveInPlace(item.sgNum) + '</td></tr>'
|
||
})
|
||
} else {
|
||
html += '<tr><td></td><td></td><td></td><td></td><td></td></tr>'
|
||
}
|
||
html += '<tr><td colspan="5">备注:“/”代表未到岗到位,“√”代表到岗到位。</td></tr>';
|
||
$('.seven-table tbody').empty().append(html);
|
||
}
|
||
}
|
||
|
||
// 备注:“/”代表未到岗到位,“√”代表到岗到位。
|
||
function arriveInPlace(value) {
|
||
if (parseInt(value) > 0) {
|
||
return '√';
|
||
}
|
||
return '/';
|
||
}
|
||
|
||
function setModuleElevenData(data) {
|
||
let html = '';
|
||
if(data.moduleEleven && data.moduleEleven.length > 0){
|
||
$.each(data.moduleEleven,function(index,item){
|
||
html += '<table class="general-voi" id="general-voi'+index+'">' +
|
||
'<colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup>' +
|
||
'<tr><td colspan="2" style="text-align: initial;padding-left: 40px;">'+item.levelId+'</td></tr>' +
|
||
'<tr><td>违章现场</td><td>'+item.proName+'</td></tr>' +
|
||
'<tr style="height: 300px;"><td>违章照片</td><td>'+setVoiPhotos(item)+'</td></tr>' +
|
||
'<tr><td>违章内容</td><td>'+item.content+'</td></tr>' +
|
||
'<tr><td>违章依据</td><td>'+item.voiYj+'</td></tr>' +
|
||
'</table>';
|
||
})
|
||
}else{
|
||
html += '<table class="general-voi">' +
|
||
'<colgroup><col style="width: 20%;"></col><col style="width: 80%;"></col></colgroup>' +
|
||
'<tr><td colspan="2" style="text-align: initial;padding-left: 40px;">一般违章</td></tr>' +
|
||
'<tr><td>违章现场</td><td></td></tr>' +
|
||
'<tr style="height: 300px;"><td>违章照片</td><td></td></tr>' +
|
||
'<tr><td>违章内容</td><td></td></tr>' +
|
||
'<tr><td>违章依据</td><td></td></tr>' +
|
||
'</table>';
|
||
}
|
||
$('.general-voi-box').empty().append(html);
|
||
if(data.moduleEleven && data.moduleEleven.length > 0){
|
||
$.each(data.moduleEleven,function(index,item){
|
||
let viewer = new Viewer(document.getElementById('general-voi'+index+''), {
|
||
url: 'data-original',
|
||
show: function () {
|
||
viewer.update();
|
||
}
|
||
});
|
||
})
|
||
}
|
||
}
|
||
|
||
/* 违章照片 */
|
||
function setVoiPhotos(obj){
|
||
let imgPath = obj.imgPath, imgPathArr = imgPath.split(','), cent = ''
|
||
$.each(imgPathArr, function (index, item) {
|
||
let path = photoUrl + item + '?token=' + token
|
||
cent += '<img src="' + path + '" width="530" height="350" style="margin-bottom:10px;" data-original = "' + path + '">'
|
||
})
|
||
return cent;
|
||
}
|
||
|
||
/* 违章数量 */
|
||
function setModuleThirteenData(data){
|
||
if(data.moduleThirteen){
|
||
let moduleThirteen = data.moduleThirteen;
|
||
$('.fiveNum6').html(moduleThirteen.fiveNum6);
|
||
$('#fiveNum7').html(moduleThirteen.fiveNum7);
|
||
$('.fiveNum8').html(moduleThirteen.fiveNum8);
|
||
$('#fiveNum9').html(moduleThirteen.fiveNum9);
|
||
$('#fiveNum10').html(moduleThirteen.fiveNum10);
|
||
$('#fiveNum11').html(moduleThirteen.fiveNum11);
|
||
}
|
||
}
|
||
|
||
/*周风险echarts*/
|
||
function initEchartsTwo(dataList) {
|
||
let xAxisList = [];
|
||
let data = [];
|
||
let data2 = [];
|
||
let data3 = [];
|
||
$.each(dataList, function (index, item) {
|
||
xAxisList.push(item.orgName)
|
||
data.push(item.num)
|
||
data2.push(item.yzNum)
|
||
data3.push(item.ybNum)
|
||
})
|
||
let fontSize = '14';
|
||
// 基于准备好的dom,初始化echarts图表
|
||
let option = {
|
||
backgroundColor: 'transparent',
|
||
tooltip: {
|
||
show: false
|
||
},
|
||
legend: {
|
||
// right: '3%',
|
||
top: '92%',
|
||
itemWidth: 10,
|
||
itemHeight: 10,
|
||
itemGap: 15,
|
||
// 环图之间间隔,图例防抖动
|
||
inactiveBorderWidth: 0,
|
||
itemStyle: {
|
||
borderWidth: 0,
|
||
},
|
||
selectedMode: false
|
||
},
|
||
grid: {
|
||
left: '3%',
|
||
right: '3%',
|
||
bottom: '10%',
|
||
top: '15%',
|
||
containLabel: true,
|
||
},
|
||
calculable: true,
|
||
xAxis: [{
|
||
type: 'category',
|
||
axisLabel: {
|
||
interval: 0, // 解决x轴名称过长问题
|
||
rotate: 45,
|
||
textStyle: {
|
||
color: '#262626',
|
||
fontSize: 14,
|
||
fontFamily: 'Alibaba PuHuiTi R'
|
||
}
|
||
},
|
||
axisLine: {
|
||
show: false,
|
||
lineStyle: { //y轴网格线设置
|
||
color: '#262626',
|
||
width: 1,
|
||
|
||
}
|
||
},
|
||
data: xAxisList,
|
||
|
||
}],
|
||
yAxis: [{
|
||
type: 'value',
|
||
// name: "单位/个",
|
||
nameGap: 8,
|
||
nameTextStyle: {
|
||
color: "#262626",
|
||
},
|
||
|
||
axisTick: {
|
||
show: false,
|
||
},
|
||
axisLine: {
|
||
show: false,
|
||
lineStyle: { //y轴网格线设置
|
||
color: '#2c2c2c',
|
||
width: 1,
|
||
|
||
}
|
||
},
|
||
splitLine: { //保留网格线
|
||
show: true,
|
||
lineStyle: { //y轴网格线设置
|
||
color: '#101C4A',
|
||
width: 1,
|
||
}
|
||
},
|
||
axisLabel: {
|
||
show: true,
|
||
textStyle: {
|
||
fontSize: 16,
|
||
color: '#262626', //字体颜色
|
||
fontFamily: 'Alibaba PuHuiTi R'
|
||
}
|
||
},
|
||
}],
|
||
series: [
|
||
{
|
||
name: '作业现场',
|
||
type: 'bar',
|
||
z: 1,
|
||
barWidth: 6,
|
||
barGap: '100%',
|
||
label: {
|
||
show: true,
|
||
position: 'top',
|
||
textStyle: {
|
||
color: '#262626'
|
||
}
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: new echarts.graphic.LinearGradient(
|
||
0, 1, 0, 0,
|
||
[{
|
||
offset: 0,
|
||
color: '#4472c4'
|
||
},
|
||
{
|
||
offset: 1,
|
||
color: '#4c87ef'
|
||
}
|
||
]
|
||
)
|
||
},
|
||
|
||
},
|
||
data: data,
|
||
|
||
},
|
||
{
|
||
name: '严重违章',
|
||
type: 'bar',
|
||
barGap: '100%',
|
||
z: 1,
|
||
barWidth: 6,
|
||
label: {
|
||
show: true,
|
||
position: 'top',
|
||
textStyle: {
|
||
color: '#262626'
|
||
}
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: new echarts.graphic.LinearGradient(
|
||
0, 1, 0, 0,
|
||
[{
|
||
offset: 0,
|
||
color: '#618b35'
|
||
},
|
||
{
|
||
offset: 1,
|
||
color: '#97ec3e'
|
||
}
|
||
]
|
||
)
|
||
},
|
||
|
||
},
|
||
data: data2,
|
||
},
|
||
{
|
||
name: '一般违章',
|
||
type: 'bar',
|
||
barGap: '100%',
|
||
z: 1,
|
||
barWidth: 6,
|
||
label: {
|
||
show: true,
|
||
position: 'top',
|
||
textStyle: {
|
||
color: '#262626'
|
||
}
|
||
},
|
||
itemStyle: {
|
||
normal: {
|
||
color: new echarts.graphic.LinearGradient(
|
||
0, 1, 0, 0,
|
||
[{
|
||
offset: 0,
|
||
color: '#a83232'
|
||
},
|
||
{
|
||
offset: 1,
|
||
color: '#d02020'
|
||
}
|
||
]
|
||
)
|
||
},
|
||
|
||
},
|
||
data: data3,
|
||
}
|
||
]
|
||
};
|
||
myChart4.setOption(option, true);
|
||
window.addEventListener("resize", function () {
|
||
myChart4.resize();
|
||
});
|
||
} |