浏览代码

重庆导入导出2层结构文件遗漏编码问题

TonyKang 3 年之前
父节点
当前提交
eda7a583e0

+ 2 - 1
web/building_saas/main/js/models/exportStdInterfaceBase.js

@@ -726,7 +726,8 @@ const XML_EXPORT_BASE = (() => {
                 ParentID: data.ParentID,
                 NextSiblingID: data.NextSiblingID,
                 name: data.name,
-                code: data.code || String(curCode++)
+                code: data.code || String(curCode++),
+                projType: data.projType
             };
         }
     }

+ 12 - 4
web/building_saas/main/js/views/export_view.js

@@ -32,6 +32,7 @@ const ExportView = (() => {
         confirming: false   //导出确认
     };
     let spread = null;
+    let sheetData = [];
     //初始化设置工程编号表格
     function initSpread(datas) {
         if (spread) {
@@ -44,12 +45,15 @@ const ExportView = (() => {
         sheetCommonObj.showTreeData(sheet, sheetSetting, datas);
     }
     //获取设置的工程编号
-    function getCodeFromSheet(sheet) {
+    function getCodeFromSheet(sheet, isTwoLevel) {
         let codeCol = 1;
         let rst = [];
         //排除建设项目行
         for (let row = 1; row < sheet.getRowCount(); row++) {
-            rst.push(sheet.getText(row, codeCol) || '');
+            const rowData = (sheetData||[])[row];
+            if (rowData && (!isTwoLevel || rowData.projType === 'Tender')) {
+                rst.push(sheet.getText(row, codeCol) || '');
+            }
         }
         return rst;
     }
@@ -234,12 +238,16 @@ const ExportView = (() => {
                 projectData = _cache.getItem('projectData');
                 $("#export_index_checkbox").hide();
             }
-            initSpread(XML_EXPORT_BASE.UTIL.getCodeSheetData(projectData));
+            const shtData = XML_EXPORT_BASE.UTIL.getCodeSheetData(projectData);
+            initSpread(shtData);
+            sheetData = shtData;
         });
         //设置完工程编号后,导出数据。如果选中多个文件,导出压缩包
         $('#exportCode-confirm').click(async function () {
             // 工程编号
-            let codes = getCodeFromSheet(spread.getSheet(0));
+            const projectData = _cache.getItem('projectData');
+            const isTwoLevel = projectData ? !!projectData.isTwoLevel : false;
+            let codes = getCodeFromSheet(spread.getSheet(0), isTwoLevel);
             if (codes.includes('')) {
                 alert('单项、单位工程工程编号不可为空。');
                 STATE.confirming = false;

+ 15 - 6
web/over_write/js/chongqing_2018_export.js

@@ -2197,17 +2197,26 @@ const XMLStandard = (function () {
             let idx = 0;
             // 从建设项目元素中筛选出单项工程元素
             let engs = _util.getElementFromSrc(obj.data, '单项工程');
-            engs.forEach(eng => {
-                // 从属性中找到编号项
-                let codeItem = eng.attrs.find(attr => attr.name === '编号');
-                codeItem.value = codes[idx++];
+            if (engs.length) {
+                engs.forEach(eng => {
+                    // 从属性中找到编号项
+                    let codeItem = eng.attrs.find(attr => attr.name === '编号');
+                    codeItem.value = codes[idx++];
+                    // 从单项工程元素中筛选出单位工程元素
+                    let tenders = _util.getElementFromSrc(eng, '单位工程');
+                    tenders.forEach(tender => {
+                        let codeItem = tender.attrs.find(attr => attr.name === '编号');
+                        codeItem.value = codes[idx++];
+                    });
+                });
+            } else {
                 // 从单项工程元素中筛选出单位工程元素
-                let tenders = _util.getElementFromSrc(eng, '单位工程');
+                let tenders = _util.getElementFromSrc(obj.data, '单位工程');
                 tenders.forEach(tender => {
                     let codeItem = tender.attrs.find(attr => attr.name === '编号');
                     codeItem.value = codes[idx++];
                 });
-            });
+            }
         });
     }