//车间看板
var interval_do = null;// 页面刷新定时器
clearInterval(interval_do);
var MyMarhq = '';// 滚动定时器
clearInterval(MyMarhq);
var MyMarhq_1 = '';// 滚动定时器
clearInterval(MyMarhq_1);
var MyMarhq_2 = '';// 滚动定时器
clearInterval(MyMarhq_2);
var MyMarhq_3 = '';// 滚动定时器
clearInterval(MyMarhq_3);
$(function() {
doData()
interval_do = setInterval(getKanbanData, 60 * 1000); // 启动,执行默认方法
})
function doData() {
setTitle()
setBox1()
setBox2()
setBox3()
setBox4()
}
function setTitle() {
if(RESULT.data.DATA_0.result==1){
return false
}
var list = RESULT.data.DATA_0.data[0]
$("#title_0").text(list.TITILE0)
$("#title_1").text(list.TITILE1)
$("#title_2").text(list.TITILE2)
$("#title_3").text(list.TITILE3)
$("#title_4").text(list.TITILE4)
}
function setBox1() {
if(RESULT.data.DATA_1.result==1){
return false
}
var dataList = RESULT.data.DATA_1.data
var Items = dataList
$('.tbl-body tbody').empty();
$('.tbl-header tbody').empty();
$('.tbl-body thead').empty();
$('.tbl-header thead').empty();
var headStr = '';
var str = '';
var temp = Items[0]
var headArr = getObjectKeys(temp);// 存放表头数据
for (var i = 0; i < headArr.length; i++) {
if (i == 0) {
headStr = '
'
}
headStr += '' + isNull(temp[headArr[i]]) + ' | '
if (i == headArr.length) {
headStr += '
'
}
}
$('.tbl-body thead').append(headStr);
$('.tbl-header thead').append(headStr);
for (var j = 1; j < Items.length; j++) {
var item = Items[j]
for (var q = 0; q < headArr.length; q++) {
if (q == 0) {
str += ''
}
str += '' + isNull(item[headArr[q]]) + ' | '
if (q == headArr.length) {
str += '
'
}
}
}
$('.tbl-body tbody').append(str);
$('.tbl-header tbody').append(str);
if (MyMarhq_1 != null) {// 判断计时器是否为空-关闭
clearInterval(MyMarhq_1);
MyMarhq_1 = null;
}
if (Items.length > 8) {
$('.tbl-body tbody').html($('.tbl-body tbody').html() + $('.tbl-body tbody').html());
$('.tbl-body').css('top', '0');
var tblTop = 0;
var speedhq = 50; // 数值越大越慢
var outerHeight = $('.tbl-body tbody').find("tr").outerHeight();
function Marqueehq() {
if (tblTop <= -outerHeight * Items.length) {
tblTop = 0;
} else {
tblTop -= 1;
}
$('.tbl-body').css('top', tblTop + 'px');
}
MyMarhq_1 = setInterval(Marqueehq, speedhq);
// 鼠标移上去取消事件
$(".tbl-header tbody").hover(function() {
clearInterval(MyMarhq_1);
}, function() {
clearInterval(MyMarhq_1);
MyMarhq_1 = setInterval(Marqueehq, speedhq);
})
}
}
function setBox2() {
if(RESULT.data.DATA_2.result==1){
return false
}
var dataList = RESULT.data.DATA_2.data
var Items = dataList
$('.tbl-body-2 tbody').empty();
$('.tbl-header-2 tbody').empty();
$('.tbl-body-2 thead').empty();
$('.tbl-header-2 thead').empty();
var headStr = '';
var str = '';
var temp = Items[0]
var headArr = getObjectKeys(temp);// 存放表头数据
for (var i = 0; i < headArr.length; i++) {
if (i == 0) {
headStr = ''
}
headStr += '' + isNull(temp[headArr[i]]) + ' | '
if (i == headArr.length) {
headStr += '
'
}
}
$('.tbl-body-2 thead').append(headStr);
$('.tbl-header-2 thead').append(headStr);
for (var j = 1; j < Items.length; j++) {
var item = Items[j]
for (var q = 0; q < headArr.length; q++) {
if (q == 0) {
str += ''
}
str += '' + isNull(item[headArr[q]]) + ' | '
if (q == headArr.length) {
str += '
'
}
}
}
$('.tbl-body-2 tbody').append(str);
$('.tbl-header-2 tbody').append(str);
if (MyMarhq_2 != null) {// 判断计时器是否为空-关闭
clearInterval(MyMarhq_2);
MyMarhq_2 = null;
}
if (Items.length > 8) {
$('.tbl-body-2 tbody').html($('.tbl-body-2 tbody').html() + $('.tbl-body-2 tbody').html());
$('.tbl-body-2').css('top', '0');
var tblTop = 0;
var speedhq = 50; // 数值越大越慢
var outerHeight = $('.tbl-body-2 tbody').find("tr").outerHeight();
function Marqueehq() {
if (tblTop <= -outerHeight * Items.length) {
tblTop = 0;
} else {
tblTop -= 1;
}
$('.tbl-body-2').css('top', tblTop + 'px');
}
MyMarhq_2 = setInterval(Marqueehq, speedhq);
// 鼠标移上去取消事件
$(".tbl-header_2 tbody").hover(function() {
clearInterval(MyMarhq_2);
}, function() {
clearInterval(MyMarhq_2);
MyMarhq_2 = setInterval(Marqueehq, speedhq);
})
}
}
function setBox3() {
if(RESULT.data.DATA_3.result==1){
return false
}
var dataList = RESULT.data.DATA_3.data
var xData = []// 工单
var yData1 = []// 计划数量
var yData2 = []// 实际数量
if (dataList) {
for (var i = 0; i < dataList.length; i++) {
xData.push(dataList[i].TASK_NO) // 工单
yData1.push(dataList[i].PLAN_QTY) // 计划数量
yData2.push(dataList[i].ACT_QTY) // 实际数量
}
option = {
grid : {
left : '4%',
right : '4%',
bottom : '2%',
top : '15%',
containLabel : true
},
legend : {
data : ['计划数量','实际数量'],
// orient: 'vertical',
x : 'right', // 可设定图例在左、右、居中
top : 0,
textStyle : {
fontSize : fontSize(0.22),// 字体大小
color : '#ffffff'// 字体颜色
},
},
color : [ '#1D9FFF', '#02F3F0' ],
xAxis : {
type : 'category',
data : xData,
axisLabel : {
show : true,
rotate : 25,
interval : 0,
textStyle : {
color : '#ffffff',
fontSize : fontSize(0.22),
}
},
axisLine : {
lineStyle : {
color : '#FFFFFF'
}
},
},
yAxis : {
name:'数量',
type : 'value',
splitLine : {
show : false
},
axisLabel : {
// formatter : '{value} ',
textStyle : {
color : '#ffffff',
fontSize : fontSize(0.22),// 字体大小
}
},
axisLine : {
lineStyle : {
color : '#FFFFFF'
}
},
},
series : [ {
name : '计划数量',
data : yData1,
type : 'bar',
barMaxWidth : 25,// 柱图宽度
label : {
show : true,
position : 'top',
textStyle : {
fontSize : fontSize(0.22),// 字体大小
}
},
}, {
name : '实际数量',
data : yData2,
type : 'bar',
barMaxWidth : 25,// 柱图宽度
label : {
show : true,
position : 'top',
textStyle : {
fontSize : fontSize(0.22),// 字体大小
}
},
} ]
};
}
// 创建echarts对象在哪个节点上
var myCharts1 = echarts.init(document.getElementById('part_3'));
// 将选项对象赋值给echarts对象。
myCharts1.setOption(option, true);
}
function setBox4(){
if(RESULT.data.DATA_4.result==1){
return false
}
var dataList = RESULT.data.DATA_4.data
var xData = []// 工单
var yData1 = []// 计划数量
var yData2 = []// 实际数量
var maxVlaue=0;//数量坐标的最大值
if (dataList) {
for (var i = 0; i < dataList.length; i++) {
xData.push(dataList[i].DEFECT_NAME) // 不良名称
yData1.push(dataList[i].QTY) // 不良数量
maxVlaue+=Number(dataList[i].QTY)
yData2.push(Number(dataList[i].ACT)) // 累计不良折线
}
option = {
grid : {
left : '4%',
right : '4%',
bottom : '2%',
top : '20%',
containLabel : true
},
legend : {
data : ['不良数量','累计不良折线'],
// orient: 'vertical',
x : 'center', // 可设定图例在左、右、居中
top : 0,
textStyle : {
fontSize : fontSize(0.22),// 字体大小
color : '#ffffff'// 字体颜色
},
},
color : [ '#3062FF', '#FAEF9B'],
xAxis : {
type : 'category',
data : xData,
axisLabel : {
show : true,
interval : 0,
rotate : 25,
textStyle : {
color : '#ffffff',
fontSize : fontSize(0.20),
},
},
axisLine : {
lineStyle : {
color : '#FFFFFF'
}
},
},
yAxis : [{
name:'数量',
type : 'value',
max:maxVlaue,
splitLine : {
show : false
},
axisLabel : {
// formatter : '{value} ',
textStyle : {
color : '#ffffff',
fontSize : fontSize(0.22),// 字体大小
}
},
axisLine : {
lineStyle : {
color : '#FFFFFF'
}
},
},{
name:'(%)',
type : 'value',
splitLine : {
show : false
},
axisLabel : {
// formatter : '{value} ',
textStyle : {
color : '#ffffff',
fontSize : fontSize(0.22),// 字体大小
}
},
axisLine : {
lineStyle : {
color : '#FFFFFF'
}
},
}],
series : [ {
name : '不良数量',
data : yData1,
type : 'bar',
barMaxWidth : 25,// 柱图宽度
label : {
show : true,
position : 'top',
textStyle : {
fontSize : fontSize(0.22),// 字体大小
}
},
}, {
name : '累计不良折线',
data : yData2,
type : 'line',
yAxisIndex: 1,
label : {
show : true,
position : 'bottom',
textStyle : {
fontSize : fontSize(0.22),// 字体大小
}
},
markLine : {
symbol : "none",
data : [ {
silent : true, // 鼠标悬停事件 true没有,false有
label : {
// formatter : '标产',
show : false,
},
lineStyle : { // 警戒线的样式 ,虚实 颜色
type : "solid",
color : "#FF3366",
},
yAxis : 0.8
// 警戒线的标注值,可以有多个yAxis,多条警示线
} ]
}
} ]
};
}
// 创建echarts对象在哪个节点上
var myCharts1 = echarts.init(document.getElementById('part_4'));
// 将选项对象赋值给echarts对象。
myCharts1.setOption(option, true);
}
function getObjectKeys(object) {
var keys = [];
for ( var property in object)
keys.push(property);
return keys;
}
function getKanbanData() {
getDataType();
}
//获取屏幕宽度并计算比例-设置echarts文字
function fontSize(res) {
var docEl = document.documentElement, clientWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
if (!clientWidth)
return;
var fontSize = 100 * (clientWidth / 2880);// 原:1920/2400/2880
return res * fontSize;
}
function getDataType() {
var params = {
"kanbanNo" : FTYPE,
"frequency" : FREQUENCY,
"lineNo":""
};
$.ajax({
type : "GET",
url : context + "kanban/getTemplateList",
data : params,
dataType : "json",
success : function(res) {
console.log(res)
if (res.result) {
RESULT=res
doData()
} else {
// clearInterval(interval_do);//错误-关闭定时器
}
}
});
}
function isNull(str) {
if (str == null) {
return ""
} else {
return str
}
}