//车间看板
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 += '
- ' + isNull(list[headArr[0]]) + ':
- '
+ isNull(list[headArr[1]]) + '
'
}
$("#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 += ''
}
str += '' + isNull(item[headArr[q]]) + ' | '
if (q == headArr.length - 1) {
str += '
'
}
}
}
$('.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
}
}