|
@@ -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;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 加载补充信息(基本信息所有条目)
|