//车间看板 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 += '
' } $("#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 } }