//车间看板
|
var interval_do = null;// 页面刷新定时器
|
clearInterval(interval_do);
|
|
var MyMarhq_3 = '';// 滚动定时器
|
clearInterval(MyMarhq_3);
|
|
$(function() {
|
doData()
|
interval_do = setInterval(getKanbanData, 60 * 1000); // 启动,执行默认方法
|
})
|
|
function doData() {
|
setTitle()
|
setBox1()
|
setBox2()
|
setBox3()
|
setBox4()
|
setBox5()
|
}
|
|
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)
|
$("#title_5").text(list.TITILE5)
|
}
|
|
function setBox1() {
|
if (RESULT.data.DATA_1.result == 1) {
|
return false
|
}
|
buildEchart(RESULT.data.DATA_1.data,'part_1')
|
}
|
|
function setBox2() {
|
if (RESULT.data.DATA_2.result == 1) {
|
return false
|
}
|
buildEchart(RESULT.data.DATA_2.data,'part_2')
|
}
|
|
function setBox3() {
|
if (RESULT.data.DATA_3.result == 1) {
|
return false
|
}
|
buildEchart(RESULT.data.DATA_3.data,'part_3')
|
}
|
|
function setBox4() {
|
if (RESULT.data.DATA_4.result == 1) {
|
return false
|
}
|
|
var Items = RESULT.data.DATA_4.data
|
var headArr = getObjectKeys(Items[0]);
|
var divStr = '';
|
|
for (var i = 0; i < Items.length; i++) {
|
var list = Items[i]
|
var styleColor = ''
|
var color = ''
|
if (list[headArr[2]] == 0) {
|
styleColor = 'style="color:#FFFFFF;"'
|
} else if (list[headArr[2]] == 1) {
|
styleColor = 'style="color:#66FF99;"'
|
} else if (list[headArr[2]] == 2) {
|
styleColor = 'style="color:#FFFF66;"'
|
} else if (list[headArr[2]] == 3) {
|
styleColor = 'style="color:#FF0033;"'
|
}
|
|
divStr += '<div class="info-box"><div class="info-con"><ul><li style="font-weight: bold;">' + isNull(list[headArr[0]]) + ':</li><li ' + styleColor + '>'
|
+ isNull(list[headArr[1]]) + '</li></ul></div></div>'
|
}
|
|
$("#part_4").html(divStr)
|
}
|
|
function setBox5() {
|
|
if (RESULT.data.DATA_5.result == 1) {
|
return false
|
}
|
var dataList = RESULT.data.DATA_5.data
|
var Items = dataList
|
$('.tbl-body-5 tbody').empty();
|
$('.tbl-header-5 tbody').empty();
|
|
var str = '';
|
var temp = Items[0]
|
var headArr = getObjectKeys(temp);// 存放表头数据
|
|
for (var j = 0; j < Items.length; j++) {
|
var item = Items[j]
|
for (var q = 0; q < headArr.length; q++) {
|
if (q == 0) {
|
str += '<tr>'
|
}
|
str += '<td>' + isNull(item[headArr[q]]) + '</td>'
|
if (q == headArr.length - 1) {
|
str += '</tr>'
|
}
|
}
|
}
|
|
$('.tbl-body-5 tbody').append(str);
|
$('.tbl-header-5 tbody').append(str);
|
|
if (MyMarhq_3 != null) {// 判断计时器是否为空-关闭
|
clearInterval(MyMarhq_3);
|
MyMarhq_3 = null;
|
}
|
|
if (Items.length > 4) {
|
$('.tbl-body-5 tbody').html($('.tbl-body-5 tbody').html() + $('.tbl-body-5 tbody').html());
|
$('.tbl-body-5').css('top', '0');
|
var tblTop = 0;
|
var speedhq = 80; // 数值越大越慢
|
var outerHeight = $('.tbl-body-5 tbody').find("tr").outerHeight();
|
function Marqueehq() {
|
if (tblTop <= -outerHeight * Items.length) {
|
tblTop = 0;
|
} else {
|
tblTop -= 1;
|
}
|
$('.tbl-body-5').css('top', tblTop + 'px');
|
}
|
MyMarhq_3 = setInterval(Marqueehq, speedhq);
|
|
// 鼠标移上去取消事件
|
$(".tbl-header_5 tbody").hover(function() {
|
clearInterval(MyMarhq_3);
|
}, function() {
|
clearInterval(MyMarhq_3);
|
MyMarhq_3 = setInterval(Marqueehq, speedhq);
|
})
|
}
|
}
|
|
function getObjectKeys(object) {
|
var keys = [];
|
for ( var property in object)
|
keys.push(property);
|
return keys;
|
}
|
|
function getKanbanData() {
|
getDataType();
|
}
|
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 buildEchart(echartData,divObject,themeType){
|
|
console.log(themeType)
|
|
var Item = echartData;
|
|
var xData = [];// 类型
|
var yData = [];// Y轴数据
|
var legandData = [];// 数据项
|
var seriesData = [];// seriess生成图形集合
|
var yAxis = [];//y轴
|
var yAxisDataT = [];// 数据对应的y轴
|
var barType = [];// 对应图表数据类型
|
var unitData = [];// 各y轴的单位
|
// 生成y轴使用
|
var yaxixIndexData = [];// y轴新增-临时
|
var echartsTypeData = [];// 图表数据类型集合-临时
|
var unitList = [];// 单位类型集合-临时
|
|
if (Item) {
|
for (var i = 0; i < Item.length; i++) {
|
xData.push(Item[i].X_AXIS_DATA) // x轴
|
legandData.push(Item[i].DATA_NAME) // 项目
|
}
|
xData = unique(xData)// 去重
|
legandData = unique(legandData)// 去重
|
|
for (var i = 0; i < legandData.length; i++) {// 项目
|
yData[legandData[i]] = []
|
echartsTypeData[legandData[i]] = []
|
yaxixIndexData[legandData[i]] = []
|
unitList[legandData[i]] = []
|
}
|
|
for (var i = 0; i < legandData.length; i++) {// 项目
|
for (var j = 0; j < Item.length; j++) {// 数据
|
if (legandData[i] == Item[j].DATA_NAME) {
|
for (var q = 0; q < xData.length; q++) {// x轴
|
if (xData[q] == Item[j].X_AXIS_DATA) {
|
var v = Item[j].Y_AXIS_DATA // 数值
|
var t = Item[j].CHART_TYPE // 图表类型
|
var y = Item[j].Y_AXIS_INDEX // y轴
|
var u = Item[j].UNIT // y轴
|
yData[legandData[i]].push(v)
|
echartsTypeData[legandData[i]].push(t)
|
yaxixIndexData[legandData[i]].push(y)
|
unitList[legandData[i]].push(u)
|
}
|
}
|
}
|
}
|
}
|
}
|
|
for (var i = 0; i < legandData.length; i++) {
|
var t = echartsTypeData[legandData[i]]
|
barType.push(t[0])
|
var y = yaxixIndexData[legandData[i]]
|
yAxisDataT.push(y[0])
|
var u = unitList[legandData[i]]
|
unitData.push(u[0])
|
}
|
|
for (var i = 0; i < yAxisDataT.length; i++) {
|
if (i != 0 && yAxisDataT[i] == yAxisDataT[i - 1]) {
|
continue;
|
} else {
|
var arr = {
|
type : 'value',
|
name : unitData[i],
|
splitLine : {
|
show : false
|
},
|
axisLabel : {
|
// formatter : '{value} ',
|
textStyle : {
|
color : '#ffffff',
|
fontSize : fontSize(0.22),// 字体大小
|
}
|
},
|
axisLine : {
|
lineStyle : {
|
color : '#FFFFFF'
|
}
|
},
|
}
|
yAxis.push(arr)
|
}
|
}
|
|
for (var i = 0; i < legandData.length; i++) {// 输出图表数据
|
var arr = {
|
name : legandData[i],
|
data : yData[legandData[i]],
|
type : barType[i],
|
barMaxWidth : 20,// 柱图宽度
|
yAxisIndex : yAxisDataT[i],
|
label : {
|
show : true,
|
position : 'top',
|
textStyle : {
|
fontSize : fontSize(0.22),// 字体大小
|
}
|
},
|
}
|
seriesData.push(arr)
|
}
|
|
option = {
|
grid : {
|
left : '1%',
|
right : '1%',
|
bottom : '1%',
|
containLabel : true
|
},
|
legend : {
|
data : legandData,
|
// orient: 'vertical',
|
x : 'center', // 可设定图例在左、右、居中
|
top : 0,
|
textStyle : {
|
fontSize : fontSize(0.22),// 字体大小
|
color : '#ffffff'// 字体颜色
|
},
|
},
|
//color : [ '#3062FF', '#02F3F0', '#FAEF9B', '#5A9AFF', '#BA99FF', '#7A62F2' ],
|
xAxis : {
|
type : 'category',
|
data : xData,
|
axisLabel : {
|
show : true,
|
interval : 0,
|
textStyle : {
|
color : '#ffffff',
|
fontSize : fontSize(0.22),// 字体大小
|
}
|
},
|
axisLine : {
|
lineStyle : {
|
color : '#FFFFFF'
|
}
|
},
|
},
|
yAxis : yAxis,
|
series : seriesData
|
};
|
|
// 创建echarts对象在哪个节点上
|
var myCharts1 = echarts.init(document.getElementById(divObject),'macarons');
|
// 将选项对象赋值给echarts对象。
|
myCharts1.setOption(option, true);
|
}
|
|
function unique(arr) {// 去重
|
if (!Array.isArray(arr)) {
|
console.log('type error!')
|
return false
|
}
|
var array = [];
|
for (var i = 0; i < arr.length; i++) {
|
if (array.indexOf(arr[i]) === -1) {
|
array.push(arr[i])
|
}
|
}
|
return array;
|
}
|
|
// 获取屏幕宽度并计算比例-设置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 isNull(str) {
|
if (str == null) {
|
return ""
|
} else {
|
return str
|
}
|
}
|