|  | @@ -190,6 +190,29 @@ function getCategoryHtml() {
 | 
	
		
			
				|  |  |      return html.join('');
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  // 初始化TenderTree数据
 | 
	
		
			
				|  |  | +function calculateParent(node) {
 | 
	
		
			
				|  |  | +    if (node.children && node.cid) {
 | 
	
		
			
				|  |  | +        node.total_price = 0;
 | 
	
		
			
				|  |  | +        node.gather_tp = 0;
 | 
	
		
			
				|  |  | +        node.end_contract_tp = 0;
 | 
	
		
			
				|  |  | +        node.end_qc_tp = 0;
 | 
	
		
			
				|  |  | +        node.end_gather_tp = 0;
 | 
	
		
			
				|  |  | +        node.pre_gather_tp = 0;
 | 
	
		
			
				|  |  | +        node.yf_tp = 0;
 | 
	
		
			
				|  |  | +        node.end_yf_tp = 0;
 | 
	
		
			
				|  |  | +        for (const c of node.children) {
 | 
	
		
			
				|  |  | +            calculateParent(c);
 | 
	
		
			
				|  |  | +            node.total_price = ZhCalc.add(node.total_price, c.total_price);
 | 
	
		
			
				|  |  | +            node.gather_tp = ZhCalc.add(node.gather_tp, c.gather_tp);
 | 
	
		
			
				|  |  | +            node.end_contract_tp = ZhCalc.add(node.end_contract_tp, c.end_contract_tp);
 | 
	
		
			
				|  |  | +            node.end_qc_tp = ZhCalc.add(node.end_qc_tp, c.end_qc_tp);
 | 
	
		
			
				|  |  | +            node.end_gather_tp = ZhCalc.add(node.end_gather_tp, c.end_gather_tp);
 | 
	
		
			
				|  |  | +            node.pre_gather_tp = ZhCalc.add(node.pre_gather_tp, c.pre_gather_tp);
 | 
	
		
			
				|  |  | +            node.yf_tp = ZhCalc.add(node.yf_tp, c.yf_tp);
 | 
	
		
			
				|  |  | +            node.end_yf_tp = ZhCalc.add(node.end_yf_tp, c.end_yf_tp);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  function initTenderTree () {
 | 
	
		
			
				|  |  |      const levelCategory = category.filter(function (c) {
 | 
	
		
			
				|  |  |          return c.level && c.level > 0;
 | 
	
	
		
			
				|  | @@ -265,6 +288,9 @@ function initTenderTree () {
 | 
	
		
			
				|  |  |              tenderTree.push(t);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    for (const t of tenderTree) {
 | 
	
		
			
				|  |  | +        calculateParent(t);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  function recursiveGetTenderNodeHtml (node, arr, pid) {
 | 
	
		
			
				|  |  |      const html = [];
 | 
	
	
		
			
				|  | @@ -282,13 +308,13 @@ function recursiveGetTenderNodeHtml (node, arr, pid) {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      html.push('</td>');
 | 
	
		
			
				|  |  |      // 计量模式
 | 
	
		
			
				|  |  | -    html.push('<td>');
 | 
	
		
			
				|  |  | +    html.push('<td class="text-center">');
 | 
	
		
			
				|  |  |      if (node.measure_type) {
 | 
	
		
			
				|  |  |          html.push(node.measure_type === measureType.tz.value ? '0号台账' : '工程量清单');
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      html.push('</td>');
 | 
	
		
			
				|  |  |      // 计量期数
 | 
	
		
			
				|  |  | -    html.push('<td>');
 | 
	
		
			
				|  |  | +    html.push('<td class="text-center">');
 | 
	
		
			
				|  |  |      if (!node.cid) {
 | 
	
		
			
				|  |  |          html.push(node.lastStage ? '第' + node.lastStage.order + '期' : '台账');
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -344,18 +370,18 @@ function getTenderTreeHtml () {
 | 
	
		
			
				|  |  |          const html = [];
 | 
	
		
			
				|  |  |          html.push('<table class="table table-hover table-bordered" style="margin-top: 25px">');
 | 
	
		
			
				|  |  |          html.push('<thead style="position: fixed;left:56px;top: 34px">', '<tr>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '标段名称', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '计量模式', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '计量期数', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '审批状态', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '0号台帐', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '本期完成', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '截止本期合同', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '截止本期变更', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '截止本期完成', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '截止上期完成', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '本期应付', '</th>');
 | 
	
		
			
				|  |  | -        html.push('<th>', '截止本期应付', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '标段名称', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '计量模式', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '计量期数', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '审批状态', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '0号台帐', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '本期完成', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '截止本期合同', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '截止本期变更', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '截止本期完成', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '截止上期完成', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '本期应付', '</th>');
 | 
	
		
			
				|  |  | +        html.push('<th class="text-center">', '截止本期应付', '</th>');
 | 
	
		
			
				|  |  |          html.push('</tr>', '</thead>');
 | 
	
		
			
				|  |  |          parentId = 0;
 | 
	
		
			
				|  |  |          for (const t of tenderTree) {
 |