|  | @@ -554,6 +554,41 @@ let baseFigureTemplate = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return projectObj.project.calcProgram.getBeforeTaxTotalFee(excludeNodes, tender);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    // 市政道路工程安全文明施工费: 按“税前工程造价”为基数,以累进办法计算。
 | 
	
		
			
				|  |  | +    SZDLGCAQWMSGF(tender) {
 | 
	
		
			
				|  |  | +        const baseFee = this['SQGCZJ'](tender);
 | 
	
		
			
				|  |  | +        return calculateUtil.getProgressiveFee(baseFee, '市政道路工程安全文明施工费', projectObj.project.property.progressiveInterval, projectObj.project.property.taxType, decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 市政桥梁工程安全文明施工费: 按“税前工程造价”为基数,以累进办法计算。
 | 
	
		
			
				|  |  | +    SZQLGCAQWMSGF(tender) {
 | 
	
		
			
				|  |  | +        const baseFee = this['SQGCZJ'](tender);
 | 
	
		
			
				|  |  | +        return calculateUtil.getProgressiveFee(baseFee, '市政桥梁工程安全文明施工费', projectObj.project.property.progressiveInterval, projectObj.project.property.taxType, decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 市政隧道工程安全文明施工费: 按“税前工程造价”为基数,以累进办法计算。
 | 
	
		
			
				|  |  | +    SZSDGCAQWMSGF(tender) {
 | 
	
		
			
				|  |  | +        const baseFee = this['SQGCZJ'](tender);
 | 
	
		
			
				|  |  | +        return calculateUtil.getProgressiveFee(baseFee, '市政隧道工程安全文明施工费', projectObj.project.property.progressiveInterval, projectObj.project.property.taxType, decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 城轨盾构工程安全文明施工费: 按“税前工程造价”为基数,以累进办法计算。
 | 
	
		
			
				|  |  | +    CGDGGCAQWMSGF(tender) {
 | 
	
		
			
				|  |  | +        const baseFee = this['SQGCZJ'](tender);
 | 
	
		
			
				|  |  | +        return calculateUtil.getProgressiveFee(baseFee, '城轨盾构工程安全文明施工费', projectObj.project.property.progressiveInterval, projectObj.project.property.taxType, decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 城轨高架桥工程安全文明施工费: 按“税前工程造价”为基数,以累进办法计算。
 | 
	
		
			
				|  |  | +    CGGJQGCAQWMSGF(tender) {
 | 
	
		
			
				|  |  | +        const baseFee = this['SQGCZJ'](tender);
 | 
	
		
			
				|  |  | +        return calculateUtil.getProgressiveFee(baseFee, '城轨高架桥工程安全文明施工费', projectObj.project.property.progressiveInterval, projectObj.project.property.taxType, decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 城轨地下工程安全文明施工费: 按“税前工程造价”为基数,以累进办法计算。
 | 
	
		
			
				|  |  | +    CGDXGCAQWMSGF(tender) {
 | 
	
		
			
				|  |  | +        const baseFee = this['SQGCZJ'](tender);
 | 
	
		
			
				|  |  | +        return calculateUtil.getProgressiveFee(baseFee, '城轨地下工程安全文明施工费', projectObj.project.property.progressiveInterval, projectObj.project.property.taxType, decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 城轨轨道工程安全文明施工费: 按“税前工程造价”为基数,以累进办法计算。
 | 
	
		
			
				|  |  | +    CGGDGCAQWMSGF(tender) {
 | 
	
		
			
				|  |  | +        const baseFee = this['SQGCZJ'](tender);
 | 
	
		
			
				|  |  | +        return calculateUtil.getProgressiveFee(baseFee, '城轨轨道工程安全文明施工费', projectObj.project.property.progressiveInterval, projectObj.project.property.taxType, decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      'RCJJC': function (tender) {//人材机价差
 | 
	
		
			
				|  |  |          return (this['RGJC'](tender) + this['CLJC'](tender) + this['JXJC'](tender)).toDecimal(decimalObj.bills.totalPrice);
 | 
	
		
			
				|  |  |      },
 | 
	
	
		
			
				|  | @@ -997,15 +1032,15 @@ let baseFigureTemplate = {
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +const progreesiveBases = ['SZDLGCAQWMSGF', 'SZQLGCAQWMSGF', 'SZSDGCAQWMSGF', 'CGDGGCAQWMSGF', 'CGGJQGCAQWMSGF', 'CGDXGCAQWMSGF', 'CGGDGCAQWMSGF'];
 | 
	
		
			
				|  |  |  let figureClassTemplate = {
 | 
	
		
			
				|  |  | -    'CONSTRUCTION_ORGANIZATION': {flag: fixedFlag.CONSTRUCTION_ORGANIZATION, filter: ['CSXMF', 'ZZCSXMF', 'ZZCSXMDEJJZJGCF', 'ZZCSXMDEJJRGF', 'ZZCSXMDEJJCLF', 'ZZCSXMDEJJJXF', 'QTXMF', 'GF', 'SJ', 'SQGCZJ', 'AQWMSGZXF']},
 | 
	
		
			
				|  |  | +    'CONSTRUCTION_ORGANIZATION': {flag: fixedFlag.CONSTRUCTION_ORGANIZATION, filter: ['CSXMF', 'ZZCSXMF', 'ZZCSXMDEJJZJGCF', 'ZZCSXMDEJJRGF', 'ZZCSXMDEJJCLF', 'ZZCSXMDEJJJXF', 'QTXMF', 'GF', 'SJ', 'SQGCZJ', 'AQWMSGZXF', ...progreesiveBases]},
 | 
	
		
			
				|  |  |      'SAFETY_CONSTRUCTION': {flag: fixedFlag.SAFETY_CONSTRUCTION, filter: ['CSXMF', 'ZZCSXMF', 'ZZCSXMDEJJZJGCF', 'ZZCSXMDEJJRGF', 'ZZCSXMDEJJCLF', 'ZZCSXMDEJJJXF', 'QTXMF', 'GF', 'SJ', 'AQWMSGZXF']},
 | 
	
		
			
				|  |  | -    'OTHER': {flag: fixedFlag.OTHER, filter: ['QTXMF', 'SQGCZJ', 'AQWMSGZXF']},
 | 
	
		
			
				|  |  | -    'CHARGE': {flag: fixedFlag.CHARGE, filter: ['GF', 'SQGCZJ', 'AQWMSGZXF']},
 | 
	
		
			
				|  |  | -    'TAX': {flag: fixedFlag.TAX, filter: ['SJ', 'SQGCZJ']},
 | 
	
		
			
				|  |  | -    'ENGINEERINGCOST': {flag: fixedFlag.ENGINEERINGCOST, filter: ['SQGCZJ']},
 | 
	
		
			
				|  |  | -    'OTHERS': {flag: fixedFlag.ENGINEERINGCOST, filter: ['SQGCZJ', 'AQWMSGZXF']},
 | 
	
		
			
				|  |  | +    'OTHER': {flag: fixedFlag.OTHER, filter: ['QTXMF', 'SQGCZJ', 'AQWMSGZXF', ...progreesiveBases]},
 | 
	
		
			
				|  |  | +    'CHARGE': {flag: fixedFlag.CHARGE, filter: ['GF', 'SQGCZJ', 'AQWMSGZXF', ...progreesiveBases]},
 | 
	
		
			
				|  |  | +    'TAX': {flag: fixedFlag.TAX, filter: ['SJ', 'SQGCZJ', ...progreesiveBases]},
 | 
	
		
			
				|  |  | +    'ENGINEERINGCOST': {flag: fixedFlag.ENGINEERINGCOST, filter: ['SQGCZJ', ...progreesiveBases]},
 | 
	
		
			
				|  |  | +    'OTHERS': {flag: fixedFlag.ENGINEERINGCOST, filter: ['SQGCZJ', 'AQWMSGZXF', ...progreesiveBases]},
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //基数的值不是通过清单节点获得的,则该基数的fixedBill为空,如价差、甲供、分包; class:分类,用于基数选择界面分类显示
 |