|  | @@ -93,61 +93,61 @@ const XMLStandard = (function () {
 | 
	
		
			
				|  |  |          '修复': '23',
 | 
	
		
			
				|  |  |          '其他': '99',
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  | -/*     // 需要用固定类别关联的费用字典,用固定类别来映射
 | 
	
		
			
				|  |  | -    // 数据节选自标准pdf文件《《建设工程政府投资项目造价数据标准》信息公开版》,附录C-费用名称与费用代号
 | 
	
		
			
				|  |  | -    // 若映射表中没有映射关系,则费用字典取名称首字母
 | 
	
		
			
				|  |  | -    const FlagFeeCodeMap = {
 | 
	
		
			
				|  |  | -        // 分部分项工程
 | 
	
		
			
				|  |  | -        [fixedFlag.SUB_ENGINERRING]: 'QDF',
 | 
	
		
			
				|  |  | -        // 措施项目
 | 
	
		
			
				|  |  | -        [fixedFlag.MEASURE]: 'CSF',
 | 
	
		
			
				|  |  | -        // 其他项目
 | 
	
		
			
				|  |  | -        [fixedFlag.OTHER]: 'QTF',
 | 
	
		
			
				|  |  | -        // 措施项目的子项
 | 
	
		
			
				|  |  | -        [fixedFlag.GREEN_MEASURE_FEE]: 'AQWMSGF', // 绿色施工安全防护措施费
 | 
	
		
			
				|  |  | -        [fixedFlag.OTHER_MEASURE_FEE]: 'QTCSF', // 其他措施费
 | 
	
		
			
				|  |  | -        // 其他项目的子项
 | 
	
		
			
				|  |  | -        [fixedFlag.PROVISIONAL]: 'ZLF', // 暂列金额
 | 
	
		
			
				|  |  | -        [fixedFlag.ESTIMATE]: 'ZGJ', // 暂估价
 | 
	
		
			
				|  |  | -        [fixedFlag.MATERIAL_PROVISIONAL]: 'ZGC', // 材料(工程设备)暂估价
 | 
	
		
			
				|  |  | -        [fixedFlag.ENGINEERING_ESITIMATE]: 'ZGGC', // 专业工程暂估价
 | 
	
		
			
				|  |  | -        [fixedFlag.DAYWORK]: 'LXF', // 计日工
 | 
	
		
			
				|  |  | -        [fixedFlag.TURN_KEY_CONTRACT]: 'ZCBFWF', // 总承包服务费
 | 
	
		
			
				|  |  | -        [fixedFlag.BUDGET_INCLUDE_WORK_FEE]: 'YSBGF', // 预算包干费
 | 
	
		
			
				|  |  | -        [fixedFlag.PROJECT_HIGH_QUALITY_FEE]: 'GCYZF', // 工程优质费
 | 
	
		
			
				|  |  | -        [fixedFlag.BUDGET_ESTIMATE_DIFF]: 'GSFDC', // 概算幅度差
 | 
	
		
			
				|  |  | -        [fixedFlag.CLAIM]: 'SPFY', // 索赔费用
 | 
	
		
			
				|  |  | -        [fixedFlag.VISA]: 'XCQZFY', // 现场签证
 | 
	
		
			
				|  |  | -        [fixedFlag.OTHER_FEE]: 'QTFY', // 其他费用
 | 
	
		
			
				|  |  | -        // 税金
 | 
	
		
			
				|  |  | -        [fixedFlag.TAX]: 'SJ',
 | 
	
		
			
				|  |  | -        // 工程造价
 | 
	
		
			
				|  |  | -        [fixedFlag.ENGINEERINGCOST]: 'ZZJ',
 | 
	
		
			
				|  |  | -    }; */
 | 
	
		
			
				|  |  | +    /*     // 需要用固定类别关联的费用字典,用固定类别来映射
 | 
	
		
			
				|  |  | +        // 数据节选自标准pdf文件《《建设工程政府投资项目造价数据标准》信息公开版》,附录C-费用名称与费用代号
 | 
	
		
			
				|  |  | +        // 若映射表中没有映射关系,则费用字典取名称首字母
 | 
	
		
			
				|  |  | +        const FlagFeeCodeMap = {
 | 
	
		
			
				|  |  | +            // 分部分项工程
 | 
	
		
			
				|  |  | +            [fixedFlag.SUB_ENGINERRING]: 'QDF',
 | 
	
		
			
				|  |  | +            // 措施项目
 | 
	
		
			
				|  |  | +            [fixedFlag.MEASURE]: 'CSF',
 | 
	
		
			
				|  |  | +            // 其他项目
 | 
	
		
			
				|  |  | +            [fixedFlag.OTHER]: 'QTF',
 | 
	
		
			
				|  |  | +            // 措施项目的子项
 | 
	
		
			
				|  |  | +            [fixedFlag.GREEN_MEASURE_FEE]: 'AQWMSGF', // 绿色施工安全防护措施费
 | 
	
		
			
				|  |  | +            [fixedFlag.OTHER_MEASURE_FEE]: 'QTCSF', // 其他措施费
 | 
	
		
			
				|  |  | +            // 其他项目的子项
 | 
	
		
			
				|  |  | +            [fixedFlag.PROVISIONAL]: 'ZLF', // 暂列金额
 | 
	
		
			
				|  |  | +            [fixedFlag.ESTIMATE]: 'ZGJ', // 暂估价
 | 
	
		
			
				|  |  | +            [fixedFlag.MATERIAL_PROVISIONAL]: 'ZGC', // 材料(工程设备)暂估价
 | 
	
		
			
				|  |  | +            [fixedFlag.ENGINEERING_ESITIMATE]: 'ZGGC', // 专业工程暂估价
 | 
	
		
			
				|  |  | +            [fixedFlag.DAYWORK]: 'LXF', // 计日工
 | 
	
		
			
				|  |  | +            [fixedFlag.TURN_KEY_CONTRACT]: 'ZCBFWF', // 总承包服务费
 | 
	
		
			
				|  |  | +            [fixedFlag.BUDGET_INCLUDE_WORK_FEE]: 'YSBGF', // 预算包干费
 | 
	
		
			
				|  |  | +            [fixedFlag.PROJECT_HIGH_QUALITY_FEE]: 'GCYZF', // 工程优质费
 | 
	
		
			
				|  |  | +            [fixedFlag.BUDGET_ESTIMATE_DIFF]: 'GSFDC', // 概算幅度差
 | 
	
		
			
				|  |  | +            [fixedFlag.CLAIM]: 'SPFY', // 索赔费用
 | 
	
		
			
				|  |  | +            [fixedFlag.VISA]: 'XCQZFY', // 现场签证
 | 
	
		
			
				|  |  | +            [fixedFlag.OTHER_FEE]: 'QTFY', // 其他费用
 | 
	
		
			
				|  |  | +            // 税金
 | 
	
		
			
				|  |  | +            [fixedFlag.TAX]: 'SJ',
 | 
	
		
			
				|  |  | +            // 工程造价
 | 
	
		
			
				|  |  | +            [fixedFlag.ENGINEERINGCOST]: 'ZZJ',
 | 
	
		
			
				|  |  | +        }; */
 | 
	
		
			
				|  |  |      // 需要用计算基数关联的费用字典
 | 
	
		
			
				|  |  | -/*     const FormulaFeeCodeMap = {
 | 
	
		
			
				|  |  | -        '{分部分项工程费}': 'QDF',
 | 
	
		
			
				|  |  | -        '{分部分项人工费}': 'QRG',
 | 
	
		
			
				|  |  | -        '{分部分项材料费}': 'QCL',
 | 
	
		
			
				|  |  | -        '{分部分项施工机具费}': 'QJX',
 | 
	
		
			
				|  |  | -        '{分部分项主材费}': 'QZCF',
 | 
	
		
			
				|  |  | -        '{分部分项设备费}': 'QSBF',
 | 
	
		
			
				|  |  | -        '{分部分项人工工日}': 'FBFXRGGR', // 标准没有,自增
 | 
	
		
			
				|  |  | -        '{建筑面积}': 'JZMZ', // 自增
 | 
	
		
			
				|  |  | -        '{措施项目费}': 'CSF',
 | 
	
		
			
				|  |  | -        '{其他项目费}': 'QTF',
 | 
	
		
			
				|  |  | -        '{甲供人工费}': 'JGRGF', // 自增
 | 
	
		
			
				|  |  | -        '{甲供材料费}': 'JGC',
 | 
	
		
			
				|  |  | -        '{甲供施工机具费}': 'JGSGJJF', // 自增
 | 
	
		
			
				|  |  | -        '{甲定人工费}': 'JDRGF', // 自增
 | 
	
		
			
				|  |  | -        '{甲定材料费}': 'JDCLF', // 自增
 | 
	
		
			
				|  |  | -        '{甲定施工机具费}': 'JDSGJJF', // 自增
 | 
	
		
			
				|  |  | -        '{甲定主材费}': 'JDZCF', // 自增
 | 
	
		
			
				|  |  | -        '{甲定设备费}': 'JDSBF', // 自增
 | 
	
		
			
				|  |  | -        '{暂估材料费(从子目汇总)}': 'ZGCLFCZMHZ', // 自增
 | 
	
		
			
				|  |  | -        '{税金}': 'SJ',
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    }; */
 | 
	
		
			
				|  |  | +    /*     const FormulaFeeCodeMap = {
 | 
	
		
			
				|  |  | +            '{分部分项工程费}': 'QDF',
 | 
	
		
			
				|  |  | +            '{分部分项人工费}': 'QRG',
 | 
	
		
			
				|  |  | +            '{分部分项材料费}': 'QCL',
 | 
	
		
			
				|  |  | +            '{分部分项施工机具费}': 'QJX',
 | 
	
		
			
				|  |  | +            '{分部分项主材费}': 'QZCF',
 | 
	
		
			
				|  |  | +            '{分部分项设备费}': 'QSBF',
 | 
	
		
			
				|  |  | +            '{分部分项人工工日}': 'FBFXRGGR', // 标准没有,自增
 | 
	
		
			
				|  |  | +            '{建筑面积}': 'JZMZ', // 自增
 | 
	
		
			
				|  |  | +            '{措施项目费}': 'CSF',
 | 
	
		
			
				|  |  | +            '{其他项目费}': 'QTF',
 | 
	
		
			
				|  |  | +            '{甲供人工费}': 'JGRGF', // 自增
 | 
	
		
			
				|  |  | +            '{甲供材料费}': 'JGC',
 | 
	
		
			
				|  |  | +            '{甲供施工机具费}': 'JGSGJJF', // 自增
 | 
	
		
			
				|  |  | +            '{甲定人工费}': 'JDRGF', // 自增
 | 
	
		
			
				|  |  | +            '{甲定材料费}': 'JDCLF', // 自增
 | 
	
		
			
				|  |  | +            '{甲定施工机具费}': 'JDSGJJF', // 自增
 | 
	
		
			
				|  |  | +            '{甲定主材费}': 'JDZCF', // 自增
 | 
	
		
			
				|  |  | +            '{甲定设备费}': 'JDSBF', // 自增
 | 
	
		
			
				|  |  | +            '{暂估材料费(从子目汇总)}': 'ZGCLFCZMHZ', // 自增
 | 
	
		
			
				|  |  | +            '{税金}': 'SJ',
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +        }; */
 | 
	
		
			
				|  |  |      // 费用字典占用列表,普通清单根据首字母获取费用字典时,与下列占用费用字典重复时,需要加上_序号后缀
 | 
	
		
			
				|  |  |      const feeCodeList = [
 | 
	
		
			
				|  |  |          'QDF', 'QRG', 'QCL', 'QJX', 'ZCSB', 'QZCF', 'QSBF', 'QGL', 'QLR', 'QZGJ', 'CSF', 'AQWMSGF', 'AXSJSCSXMF',
 | 
	
	
		
			
				|  | @@ -366,7 +366,7 @@ const XMLStandard = (function () {
 | 
	
		
			
				|  |  |                  const feeCode = getFeeCode(null, base);
 | 
	
		
			
				|  |  |                  if (/[\(\)]/.test(base)) {
 | 
	
		
			
				|  |  |                      // 将()进行处理不然会被当成组
 | 
	
		
			
				|  |  | -                    base = base.replace(/[\(\)]/g, function(matched) {
 | 
	
		
			
				|  |  | +                    base = base.replace(/[\(\)]/g, function (matched) {
 | 
	
		
			
				|  |  |                          return matched === '(' ? '\\(' : '\\)'
 | 
	
		
			
				|  |  |                      });
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -2270,11 +2270,20 @@ const XMLStandard = (function () {
 | 
	
		
			
				|  |  |          // attrList 单位工程的工程特征,来自property.projectFeature
 | 
	
		
			
				|  |  |          function loadAttrInfo(attrList) {
 | 
	
		
			
				|  |  |              const attrInfo = new Info('AttrInfo');
 | 
	
		
			
				|  |  | -            // 有值的才输出
 | 
	
		
			
				|  |  | -            attrInfo.children = attrList
 | 
	
		
			
				|  |  | -                .filter(attr => commonUtil.isDef(attr.value))
 | 
	
		
			
				|  |  | -                .map(attr => new InfoItem('AttrInfoItem', attr));
 | 
	
		
			
				|  |  | -            return attrInfo;
 | 
	
		
			
				|  |  | +            attrInfo.children = loadItems(attrList);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 递归导出子项
 | 
	
		
			
				|  |  | +            function loadItems(items) {
 | 
	
		
			
				|  |  | +                const children = [];
 | 
	
		
			
				|  |  | +                items.forEach(item => {
 | 
	
		
			
				|  |  | +                    const infoItem = new InfoItem('AttrInfoItem', item);
 | 
	
		
			
				|  |  | +                    children.push(infoItem);
 | 
	
		
			
				|  |  | +                    if (item.items && item.items.length) {
 | 
	
		
			
				|  |  | +                        infoItem.children = loadItems(item.items);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +                return children;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 加载补充信息(基本信息所有条目)
 |