|  | @@ -3,10 +3,10 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  var RedRankTable = new Module("#table-rank", "fcBiWorkerDaily");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -RedRankTable.slideLen = 16;
 | 
	
		
			
				|  |  |  RedRankTable.slides   = 0;
 | 
	
		
			
				|  |  | -RedRankTable.parts    = 4;
 | 
	
		
			
				|  |  | +RedRankTable.parts    = 3;
 | 
	
		
			
				|  |  |  RedRankTable.partLen  = 4;
 | 
	
		
			
				|  |  | +RedRankTable.slideLen = RedRankTable.parts * RedRankTable.partLen;
 | 
	
		
			
				|  |  |  RedRankTable.curSlide = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  RedRankTable.drawData = function (data) {
 | 
	
	
		
			
				|  | @@ -27,10 +27,11 @@ RedRankTable.showPart = function(slide, part, data){
 | 
	
		
			
				|  |  |      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()};
 | 
	
		
			
				|  |  | +            partList[partList.length] = {passNum : 0, failNum: 0, failRate: 0, totalNum:0, workerId: 0, fcDay: new Date().toLocaleDateString()};
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              partList[partList.length] = one.jsonObj;
 | 
	
		
			
				|  |  |              partList[partList.length - 1].failRate = partList[partList.length - 1].failRate/100.0;
 | 
	
		
			
				|  |  | +            partList[partList.length - 1].totalNum = partList[partList.length - 1].failNum + partList[partList.length - 1].passNum;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          partList[partList.length - 1].workerName = getUserName(partList[partList.length - 1].workerId);
 | 
	
		
			
				|  |  |          if("[用户:"+0+"]" === partList[partList.length - 1].workerName){
 | 
	
	
		
			
				|  | @@ -50,14 +51,14 @@ RedRankTable.showPart = function(slide, part, data){
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -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;
 | 
	
		
			
				|  |  | +RedRankTable.tickInterval = 2000;
 | 
	
		
			
				|  |  | +RedRankTable.tick = function(obj){
 | 
	
		
			
				|  |  | +    var totalDataLen = obj.activeData != null ? obj.activeData.len() : 0;
 | 
	
		
			
				|  |  | +    if(obj.slides !== Math.ceil(totalDataLen / obj.slideLen)){
 | 
	
		
			
				|  |  | +        obj.slides = Math.ceil(totalDataLen / obj.slideLen);
 | 
	
		
			
				|  |  | +        obj.curSlide = 0;
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  | -        this.curSlide = (this.curSlide + 1) % this.slides;
 | 
	
		
			
				|  |  | +        obj.curSlide = (obj.curSlide + 1) % obj.slides;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -67,9 +68,19 @@ RedRankTable.init();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  var newRedrankvue = new Vue({
 | 
	
		
			
				|  |  |      el: '#redrank',
 | 
	
		
			
				|  |  | -    data: {
 | 
	
		
			
				|  |  | -        parting:[[{},{},{},{}], [{},{},{},{}], [{},{},{},{}], [{},{},{},{}]],
 | 
	
		
			
				|  |  | -        title: '本厂今日生产能手榜'
 | 
	
		
			
				|  |  | +    data: function () {
 | 
	
		
			
				|  |  | +        var t = [];
 | 
	
		
			
				|  |  | +        for(let i = 0; i < RedRankTable.parts; i++){
 | 
	
		
			
				|  |  | +            var q = [];
 | 
	
		
			
				|  |  | +            for(let j = 0; j < RedRankTable.partLen ; j++){
 | 
	
		
			
				|  |  | +                q[j] = {};
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            t[i] = q;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return {
 | 
	
		
			
				|  |  | +            parting : t,
 | 
	
		
			
				|  |  | +            title: '本厂今日生产能手榜'
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      methods: {
 | 
	
		
			
				|  |  |          clicktitle: function () {
 | 
	
	
		
			
				|  | @@ -87,20 +98,26 @@ var newRedrankvue = new Vue({
 | 
	
		
			
				|  |  |          useRate: function () {
 | 
	
		
			
				|  |  |              this.useSort("Rate");
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  | +        useTotal: function () {
 | 
	
		
			
				|  |  | +            this.useSort("Total");
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  |          useSort: function (column) {
 | 
	
		
			
				|  |  |              let sorter = function () {};
 | 
	
		
			
				|  |  |              switch (column) {
 | 
	
		
			
				|  |  |                  case "Pass":
 | 
	
		
			
				|  |  | -                    return RedRankTablePlugin.sortPass;
 | 
	
		
			
				|  |  | +                    sorter = RedRankTablePlugin.sortPass;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  case "Fail":
 | 
	
		
			
				|  |  | -                    return RedRankTablePlugin.sortFail;
 | 
	
		
			
				|  |  | +                    sorter = RedRankTablePlugin.sortFail;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  case "Rate":
 | 
	
		
			
				|  |  | -                    return RedRankTablePlugin.sortRate;
 | 
	
		
			
				|  |  | +                    sorter = RedRankTablePlugin.sortRate;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                case "Total":
 | 
	
		
			
				|  |  | +                    sorter = RedRankTablePlugin.sortTotal;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  case "Id":
 | 
	
		
			
				|  |  | -                    return RedRankTablePlugin.sortId;
 | 
	
		
			
				|  |  | +                    sorter = RedRankTablePlugin.sortId;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              RedRankTablePlugin.workerDailyService.list.sortBy(sorter);
 | 
	
		
			
				|  |  |              console.warn(column);
 | 
	
	
		
			
				|  | @@ -132,6 +149,14 @@ var RedRankTablePlugin = new (function() {
 | 
	
		
			
				|  |  |          return t;
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    this.sortTotal = function (l, r){
 | 
	
		
			
				|  |  | +        var q = {};
 | 
	
		
			
				|  |  | +        checkNull(l, r, q);
 | 
	
		
			
				|  |  | +        if(q.out !== -2) return q.out;
 | 
	
		
			
				|  |  | +        var t = calcCompare(l.jsonObj.failNum + l.jsonObj.passNum, r.jsonObj.failNum + r.jsonObj.passNum, q);
 | 
	
		
			
				|  |  | +        return t;
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      function checkNull(l, r, q) {
 | 
	
		
			
				|  |  |          if (l.jsonObj == null || l.jsonObj === undefined) {
 | 
	
		
			
				|  |  |              if (r.jsonObj == null || r.jsonObj === undefined) {
 |