|  | @@ -33,6 +33,18 @@ class rptMemPaymentSafe extends RptMemBase {
 | 
	
		
			
				|  |  |              this.ctx.subProject = await this.ctx.service.subProject.getDataByCondition({ budget_id: id });
 | 
	
		
			
				|  |  |              this.ctx.subProject.info = await this.ctx.service.subProjInfo.getInfo4Report(this.ctx.subProject.id);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if (budget.final_id) {
 | 
	
		
			
				|  |  | +            const finalInfo = await this.ctx.service.budgetFinalList.getDataById(budget.final_id);
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_uid = finalInfo.uid;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_u_name = finalInfo.u_name;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_u_role = finalInfo.u_role;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_u_company = finalInfo.u_company;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_u_mobile = finalInfo.u_mobile;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_u_login = finalInfo.u_login;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_create_time = finalInfo.create_time;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_update_time = finalInfo.update_time;
 | 
	
		
			
				|  |  | +            this.ctx.budget.final_tender_info = finalInfo.tender_info ? JSON.parse(finalInfo.tender_info) : [];
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      async doBeforeLoadReport(params) {
 | 
	
	
		
			
				|  | @@ -72,6 +84,12 @@ class rptMemPaymentSafe extends RptMemBase {
 | 
	
		
			
				|  |  |          // return showLevel ? tree.getDefaultDatasByLevel(this.ctx.tender.rpt_show_level) : tree.getDefaultDatas();
 | 
	
		
			
				|  |  |          return tree.getDefaultDatas();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    async budgetFinalInfo(bid) {
 | 
	
		
			
				|  |  | +        const budget = this.ctx.budget && this.ctx.budget.id === bid
 | 
	
		
			
				|  |  | +            ? this.ctx.budget
 | 
	
		
			
				|  |  | +            : await this.ctx.service.budget.getDataById(bid);
 | 
	
		
			
				|  |  | +        return [finalInfo];
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      async budgetFinal(bid, showLevel = false) {
 | 
	
		
			
				|  |  |          const budget = this.ctx.budget && this.ctx.budget.id === bid
 | 
	
		
			
				|  |  |              ? this.ctx.budget
 | 
	
	
		
			
				|  | @@ -90,6 +108,8 @@ class rptMemPaymentSafe extends RptMemBase {
 | 
	
		
			
				|  |  |                  return [this.ctx.subProject.info];
 | 
	
		
			
				|  |  |              case 'mem_qty_info':
 | 
	
		
			
				|  |  |                  return [...this.ctx.subProject.info.main_quantity, ...this.ctx.subProject.info.gcl_quantity];
 | 
	
		
			
				|  |  | +            case 'budget':
 | 
	
		
			
				|  |  | +                return [this.ctx.budget];
 | 
	
		
			
				|  |  |              case 'mem_budget_gu':
 | 
	
		
			
				|  |  |                  return this.budgetGu(this.ctx.budget.id);
 | 
	
		
			
				|  |  |              case 'mem_budget_gai':
 |