//车间看板 var interval_do = null;// 页面刷新定时器 clearInterval(interval_do); var MyMarhq = '';// 滚动定时器 clearInterval(MyMarhq); $(function() { doData() interval_do = setInterval(getKanbanData, 60 * 1000); // 启动,执行默认方法 }) function doData() { tableBox() box2() box4() } function tableBox() { var dataList = dataType1.data var Items = dataList[2] $('.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); /* * $.each(Items,function (i, item) { str = ''+ ''+isNull(item.TASK_NO)+''+ ''+isNull(item.MODEL)+''+ ''+isNull(item.PLAN_QTY)+''+ ''+isNull(item.TRQTY)+''+ ''+isNull(item.COMPLETE_QTY)+''+ ''+isNull(item.PFY)+''+ ''+isNull(item.PASS_PERCENT)+''+ ''+isNull(item.DOWN_DATE)+''+ ''+isNull(item.REAL_FINISH_TIME)+''+ ''+isNull(item.UPH)+''+ ''+isNull(item.PRODUCE_STATE)+''+ '' * * $('.tbl-body tbody').append(str); $('.tbl-header tbody').append(str); }); */ if (MyMarhq != null) {// 判断计时器是否为空-关闭 clearInterval(MyMarhq); MyMarhq = 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 = setInterval(Marqueehq, speedhq); // 鼠标移上去取消事件 $(".tbl-header tbody").hover(function() { clearInterval(MyMarhq); }, function() { clearInterval(MyMarhq); MyMarhq = setInterval(Marqueehq, speedhq); }) } } function getObjectKeys(object) { var keys = []; for ( var property in object) keys.push(property); return keys; } function box2() { var dataList = dataType1.data// 原始数据 dataList = dataList[2] var xAxis = []; var yAxis1 = [];// 计划数量 var yAxis2 = [];// 完成数量 $.each(dataList, function(i, item) { xAxis.push(item.TASK_NO) yAxis1.push(item.PLAN_QTY) yAxis2.push(item.COMPLETE_QTY) }) var dom = document.getElementById("box2"); var myChart = echarts.init(dom); var app = {}; option = null; var posList = [ 'left', 'right', 'top', 'bottom', 'inside', 'insideTop', 'insideLeft', 'insideRight', 'insideBottom', 'insideTopLeft', 'insideTopRight', 'insideBottomLeft', 'insideBottomRight' ]; app.configParameters = { rotate : { min : -90, max : 90 }, align : { options : { left : 'left', center : 'center', right : 'right' } }, verticalAlign : { options : { top : 'top', middle : 'middle', bottom : 'bottom' } }, position : { options : echarts.util.reduce(posList, function(map, pos) { map[pos] = pos; return map; }, {}) }, distance : { min : 0, max : 100 } }; app.config = { rotate : 90, align : 'left', verticalAlign : 'middle', position : 'insideBottom', distance : 15, onChange : function() { var labelOption = { normal : { rotate : app.config.rotate, align : app.config.align, verticalAlign : app.config.verticalAlign, position : app.config.position, distance : app.config.distance } }; } }; var labelOption = { normal : { show : true, position : app.config.position, distance : app.config.distance, align : app.config.align, verticalAlign : app.config.verticalAlign, rotate : app.config.rotate, // formatter: '{c} {name|{a}}', formatter : '{c}', fontSize : 10, rich : { name : { textBorderColor : '#fff' } } } }; option = { color : [ '#00fff6', '#006699', '#4cabce', '#e5323e' ], tooltip : { trigger : 'axis', axisPointer : { type : 'shadow' } }, legend : { textStyle : {// 图例文字的样式 color : '#dbdbdb', fontSize : 10 }, data : [ '计划数量', '完成数量' ] }, textStyle : {// 图例文字的样式 color : '#dbdbdb', fontSize : 14 }, calculable : true, xAxis : [ { type : 'category', axisTick : { show : false }, data : xAxis } ], yAxis : [ { type : 'value' } ], series : [ { name : '计划数量', type : 'bar', barGap : 0, label : labelOption, data : yAxis1 }, { name : '完成数量', type : 'bar', label : labelOption, data : yAxis2 } ] }; ; if (option && typeof option === "object") { myChart.setOption(option, true); } } function box4() { var dataList = dataType2.data// 原始数据 dataList = dataList[2] var nameList = []; var valueList = []; var countList = []; if (dataList.length == 0) {// 无数据时显示整圆 nameList.push('None:0'); valueList.push({ value : 0, name : 'None:0', itemStyle : { normal : { color : 'rgb(0,100,0)' } } }) } else { $.each(dataList, function(i, item) { nameList.push(item.DEFECT_NAME) countList.push(item.DEFCODE_QTY) var arr = {} arr['value'] = item.DEFCODE_QTY arr['name'] = item.DEFECT_NAME; valueList.push(arr) }) } var dom = document.getElementById("box4"); var myChart = echarts.init(dom); var app = {}; option = null; option = { tooltip : { trigger : 'item', formatter : '{a}
{b} : {c} ({d}%)' }, legend : { type : 'scroll', orient : 'vertical', right : 40, top : 0, bottom : 20, data : nameList, textStyle : {// 图例文字的样式 color : '#dbdbdb', fontSize : 14 }, formatter : function(name) { var index = 0; var clientlabels = nameList; var clientcounts = countList; if (dataList == 0) { return 'None:0' } clientlabels.forEach(function(value, i) { if (value == name) { index = i; } }); return name + " : " + clientcounts[index]; } }, series : [ { type : 'pie', radius : '65%', center : [ '45%', '50%' ], selectedMode : 'single', data : valueList, emphasis : { itemStyle : { shadowBlur : 10, shadowOffsetX : 0, shadowColor : 'rgba(0, 0, 0, 0.5)' } } } ] }; if (option && typeof option === "object") { myChart.setOption(option, true); } } function getKanbanData() { getDataType("1", "1"); getDataType("1", "2"); } function getDataType(kanbanNo, dataType) { var params = { "kanbanNo" : kanbanNo, "dataType" : dataType }; $.ajax({ type : "GET", url : context + "kanban/getKanbanList", data : params, dataType : "json", success : function(res) { console.log(res) if (res.result) { if (dataType == "1") { dataType1 = res } else if (dataType == "2") { dataType2 = res } doData() } else { // clearInterval(interval_do);//错误-关闭定时器 } } }); } function isNull(str) { if (str == null) { return "" } else { return str } }