// dependency : newCommon var RedRankTable = new Module("#table-rank", "fcBiWorkerDaily"); RedRankTable.slideLen = 16; RedRankTable.slides = 0; RedRankTable.parts = 4; RedRankTable.partLen = 4; RedRankTable.curSlide = 0; RedRankTable.drawData = function (data) { // showSlide this.showSlide(this.curSlide, data); }; RedRankTable.showSlide = function (slide, data) { for(var part = 0; part < this.parts; part++){ this.showPart(slide, part, data); } }; RedRankTable.showPart = function(slide, part, data){ var lpos = slide * this.slideLen + (part * this.partLen); var rpos = slide * this.slideLen + ((part+1) * this.partLen); var partList = []; for (var i = lpos; i < rpos; i++) { var one = data.getSorted(i); if(one == null || one == undefined) { partList[partList.length] = {passNum : 0, failNum: 0, failRate: 0, workerId: 0, fcDay: new Date().toLocaleDateString()}; } else { partList[partList.length] = one.jsonObj; partList[partList.length].failRate = partList[partList.length].failRate/100.0; } partList[partList.length - 1].workerName = getUserName(partList[partList.length - 1].workerId); if("[用户:"+0+"]" == partList[partList.length - 1].workerName){ partList[partList.length - 1].workerName = "-"; } partList[partList.length - 1].color = true; } let k = newRedrankvue.parting[part].length; for(let i = 0; i < k; i++){ newRedrankvue.parting[part].pop(); } for(let i = 0; i < partList.length; i++){ newRedrankvue.parting[part].push(partList[i]); } }; RedRankTable.tickInterval = 1000; RedRankTable.tick = function(){ var totalDataLen = this.activeData != null ? this.activeData.len() : 0; if(this.slides != Math.ceil(totalDataLen / this.slideLen)){ this.slides = Math.ceil(totalDataLen / this.slideLen); this.curSlide = 0; } else { this.curSlide = (this.curSlide + 1) % this.slides; } }; RedRankTable.init(); var newRedrankvue = new Vue({ el: '#redrank', data: { parting:[[{},{},{},{}], [{},{},{},{}], [{},{},{},{}], [{},{},{},{}]], title: '本厂今日生产能手榜' }, methods: { clicktitle: function () { alert("Hello! This is Title"); } } }); var RedRankTablePlugin = new (function() { this.workerDailyService = new DataObjectService("fcBiWorkerDaily", ONDEMAND | AUTO | FAST, "?type=1"); this.tick = function(obj){ RedRankTable.setData(obj.workerDailyService.getList()); }; this.setup = function(obj){ setInterval(obj.tick, 1000, obj); }; this.setup(this); })(); (function() { setInterval(RedRankTablePlugin.tick, 1000); })();