|  | @@ -75,6 +75,16 @@ const dbFullCode = {
 | 
	
		
			
				|  |  |          document.getElementById('db-full-code-change').disabled = true;
 | 
	
		
			
				|  |  |          $('#db-full-code-file').change(dbFullCode.loadXlsx);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    _completeFullCode: function (b, index) {
 | 
	
		
			
				|  |  | +        for (let j = index-1; j >= 0; j--) {
 | 
	
		
			
				|  |  | +            if (this.dealBills[j].tag === -1) continue;
 | 
	
		
			
				|  |  | +            if (this.dealBills[j].tag !== b.tag && this.dealBills[j].level < 4) {
 | 
	
		
			
				|  |  | +                b.full_code = this.dealBills[j].full_code + b.code;
 | 
	
		
			
				|  |  | +                b.level = this.dealBills[j].level + 1;
 | 
	
		
			
				|  |  | +                return;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      change: function () {
 | 
	
		
			
				|  |  |          const regChar = /^-[a-zA-Z]$/, regNum = /^-[0-9]{1,2}$/, regCode = /^[0-9]{3,4}((-[0-9]{1,2})|(-[a-zA-Z]))*$/;
 | 
	
		
			
				|  |  |          let invalid = 0;
 | 
	
	
		
			
				|  | @@ -82,24 +92,16 @@ const dbFullCode = {
 | 
	
		
			
				|  |  |              if (regCode.test(db.code)) {
 | 
	
		
			
				|  |  |                  db.tag = 0;
 | 
	
		
			
				|  |  |                  db.full_code = db.code;
 | 
	
		
			
				|  |  | +                db.level = db.full_code.split('-').length;
 | 
	
		
			
				|  |  |              } else if (regNum.test(db.code)) {
 | 
	
		
			
				|  |  |                  db.tag = 1;
 | 
	
		
			
				|  |  | -                for (let j = i-1; j >= 0; j--) {
 | 
	
		
			
				|  |  | -                    if (this.dealBills[j].tag !== db.tag) {
 | 
	
		
			
				|  |  | -                        db.full_code = this.dealBills[j].full_code + db.code;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                this._completeFullCode(db, i);
 | 
	
		
			
				|  |  |              } else if (regChar.test(db.code)) {
 | 
	
		
			
				|  |  |                  db.tag = 2;
 | 
	
		
			
				|  |  | -                for (let j = i-1; j >= 0; j--) {
 | 
	
		
			
				|  |  | -                    if (this.dealBills[j].tag !== db.tag) {
 | 
	
		
			
				|  |  | -                        db.full_code = this.dealBills[j].full_code + db.code;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | +                this._completeFullCode(db, i);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                  db.tag = -1;
 | 
	
		
			
				|  |  | +                db.full_code = '';
 | 
	
		
			
				|  |  |                  invalid += 1;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 |