Jelajahi Sumber

refactor updatedercj

Xiaopeng Zhang 4 bulan lalu
induk
melakukan
422f6ea3e6
3 mengubah file dengan 600 tambahan dan 893 penghapusan
  1. 356 379
      src/Service.js
  2. 1 1
      src/editor.js
  3. 243 513
      src/utils.js

+ 356 - 379
src/Service.js

@@ -1433,30 +1433,18 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
     }
 
-
-    updateDercj_djcs_(row, data, xuhao) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename
+    //没有预拌砂浆,没有补充
+    updateDercj_djcs_(row, data, xuhao, mode=0/**0->update by view; 1-> config change */) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename
         console.log("data updated");
         //处理附注
-        let huan = false;//换
+        let huan = false;
         let qd = this.cache_djcs.filter(x=>x["_children"].filter(y=>y['key']==row).length > 0)[0];
         let de = qd["_children"].filter(x=>x['key'] == row)[0];
         if (de.hasOwnProperty("rcjdg")) {//新数据
-            for (let i = 1; i < de['rcjdg'].length; i++) {
-                for(let j = 1; j < data.length; j++) {
-                    if (data[j][16] == de['rcjdg'][i][16]) {
-                        de['rcjdg'][i][5] = data[j][5];//更新单价
-                        /****ToDo 更新其他字段 */
-                        if (de['rcjdg'][i][2] == data[j][2]) {//更新名称
-                    
-                        } else {
-                           huan = true;
-                        }
-                    }
-                }
-            }
+            de['dercj'] = copy(de['rcjdg']);
 
-            if (de['fuzhuEnable'] && de.hasOwnProperty('fuzhu')) {//没强行改过含量
-                de['dercj'] = copy(de['rcjdg']);
+            if (de.hasOwnProperty('fuzhu')) {//
+                
                 for(let j = 1; j < de['rcjdg'].length; j++) {
                     let origin = Number(de['rcjdg'][j][10]);
                     let bianhao_huan = '';
@@ -1523,70 +1511,47 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                         
 
                     }
-                    for (let k = 0; k < data.length; k++) {
-                        if (data[k][16] == de['dercj'][j][16]) {
-                            
-                            if (bianhao_huan == '') {
-                                de['dercj'][j][1] = data[k][1];//编号
-                            } else {
-                                de['dercj'][j][1] = bianhao_huan;//编号
-                            }
-                            if (bianhao_huan == '') {
-                                de['dercj'][j][2] = data[k][2];//名称
-                            } else {
-                                de['dercj'][j][1] = name_huan;//编号
-                            }
                             
-                            
-                        }
-                    }
-                    if (new_jia > 0) {
-                        de['dercj'][j][5] = new_jia;//jiage
+                    if (bianhao_huan == '') {
+                                
                     } else {
-                        de['dercj'][j][5] = de['rcjdg'][j][5];//单价
+                                de['dercj'][j][1] = bianhao_huan;//编号
+                                de['dercj'][j][2] = name_huan;//mc
+                                de['dercj'][j][5] = new_jia;//jiage
                     }
-
-                    
+                                        
                     de['dercj'][j][10] =  origin;
                     de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
                 }
 
-            } else if (de['fuzhuEnable'] && !de.hasOwnProperty('fuzhu')) {
-                de['dercj'] = copy(de['rcjdg']);
-                for(let j = 1; j < de['rcjdg'].length; j++) {
-                    let origin = Number(de['rcjdg'][j][10]);
-                    
+            }
+            
+            
+            for(let j = 1; j < de['dercj'].length; j++) {
                     for (let k = 0; k < data.length; k++) {
                         if (data[k][16] == de['dercj'][j][16]) {
-                            de['dercj'][j][2] = data[k][2];//名称
-                            de['dercj'][j][1] = data[k][1];//编号
+                            if (de['dercj'][j][2] == data[k][2]) {//名称
+                                
+                            } else {
+                                huan = true;
+                            }
+                            
                         }
-                    }
-                    de['dercj'][j][5] = de['rcjdg'][j][5];
-                    de['dercj'][j][10] =  origin;
-                    de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
-                }
+                    }        
             }
+            
 
-            else {
-                //强行改含量
-                de['dercj'] = copy(de['rcjdg']);
-                for(let j = 1; j < de['rcjdg'].length; j++) {
-                    for (let k = 0; k < data.length; k++) {
-                        if (data[k][16] == de['dercj'][j][16]) {
-                            de['dercj'][j][2] = data[k][2];//名称
-                            de['dercj'][j][1] = data[k][1];//编号
-                            de['dercj'][j][10] =  data[k][10];
-                            de['dercj'][j][11] = Number(de['dercj'][j][5]) * de['dercj'][j][10];
-
-                        }
-                    }
-                }
+            if (mode == 1) {
+                data = de['dercj'];
+                huan = false;
+            } else {
+                de['dercj'] = copy(data);
+                data = de['dercj'];
             }
         
 
             
-            data = de['dercj'];
+            
         } else {////单项定额没有底稿,老数据没底搞,无法判断换部换,暂时统一认为不换
             //强行改含量
             de['dercj'] = copy(data);
@@ -1596,8 +1561,8 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         for(let i = 1; i < data.length; i++) {
             data[i][11] = Number(data[i][10]) * Number(data[i][5]);
         }
-        if (data[0].length > 18)
-        data = data.filter(x=>x[18]!='true').map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16]]);
+        //if (data[0].length > 18)
+        //data = data.filter(x=>x[18]!='true').map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16]]);
               
         let sum = 0;
         let rgf_sum = 0;
@@ -1605,6 +1570,18 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         let clf_sum = 0;
         let zcf_sum = 0;
         for(let i = 1; i < data.length; i++) {
+            if (data[i][1]=='00EXP001' && data[i][4] == '%'){//回程费占人工费
+                continue;
+                
+            }
+            if (data[i][1]=='99EXP007' && data[i][4] == '%'){//回程费占机械费
+                continue;
+                
+            }
+            if (data[i][1]=='31130104' && data[i][4] == '%'){//回程费占材料费
+                continue;
+                
+            }
             sum += Number(data[i][11]);//11-> hejia
             if (Number(data[i][8]) == 1) {
                 rgf_sum += Number(data[i][11]);
@@ -1688,7 +1665,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                 
                 
                 
-                qd["_children"][i]["dercj"] = copy(data);
+                qd["_children"][i]["dercj"] = this.handleJGC(copy(data));
                 qd["_children"][i]['清单编码'] = renameDingE(oldname, xuhao, huan);
 
             }
@@ -1696,41 +1673,17 @@ async generateQingdanTuijian(name, bh, bt, bm) {
     }
 
 
-    updateDercj_(row, data, xuhao, yuban, rcjbc) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename, yuban is 预拌砂浆
+    updateDercj_(row, data, xuhao, yuban, rcjbc, mode=0) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename, yuban is 预拌砂浆
         console.log("data updated");
         //处理附注
         let huan = false;//换
-        let huankey = [];
+        let data_normal = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
+        "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", 'key', 'bc' ]];//正常部分,不包括补充
         let qd = this.cache.filter(x=>x["_children"].filter(y=>y['key']==row).length > 0)[0];
         let de = qd["_children"].filter(x=>x['key'] == row)[0];
         if (de.hasOwnProperty("rcjdg")) {//新数据
-            for (let i = 1; i < de['rcjdg'].length; i++) {
-                for (let j = 1; j < data.length; j++) {
-                    if (de['rcjdg'][i][16] == data[j][16]) {
-                        de['rcjdg'][i][5] = data[j][5];//更新单价,底稿的单价不是很需要同步(在人才机汇总修改价格)
-                        /****ToDo 更新其他字段 */
-                        if (data[j][2].includes('(湿拌砂浆)')) {
-                            let index = data[j][2].indexOf("(湿拌砂浆)");
-                            data[j][2] = data[j][2].substring(0, index);
-                        }
-                        if (data[j][2].includes('(干拌(混)砂浆)')) {
-                            let index = data[j][2].indexOf("(干拌(混)砂浆)");
-                            data[j][2] = data[j][2].substring(0, index);
-                        }
-                        if (de['rcjdg'][i][2] == data[j][2]) {//更新名称
-                    
-                        } else {
-                             //if (de['rcjdg'][i][18] == 'false')
-                             huan = true;
-                             huankey.push(de['rcjdg'][i][16]);
-                        }
-                    }
-                }
-                
-            }
-           
-            if (de['fuzhuEnable'] && de.hasOwnProperty('fuzhu')) {//没强行改过含量
-                de['dercj'] = copy(de['rcjdg']);
+            de['dercj'] = copy(de['rcjdg']);
+            if (de.hasOwnProperty('fuzhu')) {//没强行改过含量
                 for(let j = 1; j < de['rcjdg'].length; j++) {
                     let origin = Number(de['rcjdg'][j][10]);
                     let bianhao_huan = '';
@@ -1739,8 +1692,6 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     for(let i = 0; i < de['fuzhu'].length; i++) {
                         let selected = de['fuzhu'][i];//selected is 结构化的处理信息
                         let target = selected[0];
-                        
-                        
                         if (match_target(de['rcjdg'][j][1], de['rcjdg'][j][2], target, selected[1])) {
                             if (selected[2] == '系数' || selected[2] == '商品砼系数' || selected[2] == '除此机械外') {
                                 origin = origin * (Number(selected[3]) ** Number(selected[5]));
@@ -1791,222 +1742,302 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                             }
                             else {
                                 throw new Error('无法处理的附注'.concat(selected[2]));
-                            }
-                            
-                        }
-                        
-
-                    }
-                    for (let k = 0; k < data.length; k++) {
-                        if (data[k][16] == de['dercj'][j][16]) {
-                            
-                            if (bianhao_huan == '') {
-                                de['dercj'][j][1] = data[k][1];//编号
-                            } else {
-                                de['dercj'][j][1] = bianhao_huan;//编号
-                            }
-                            if (bianhao_huan == '') {
-                                de['dercj'][j][2] = data[k][2];//名称
-                            } else {
-                                de['dercj'][j][1] = name_huan;//编号
-                            }
-                            
-                            
+                            }    
                         }
-                    }
-                    if (new_jia > 0) {
-                        de['dercj'][j][5] = new_jia;//jiage
+                    }       
+                    if (bianhao_huan == '') {
+                                
                     } else {
-                        de['dercj'][j][5] = de['rcjdg'][j][5];//单价
-                    }
-
-                    
-                    de['dercj'][j][10] =  origin;
-                    de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
-                }
-
-            } else if (de['fuzhuEnable'] && !de.hasOwnProperty('fuzhu')) {
-                de['dercj'] = copy(de['rcjdg']);
-                for(let j = 1; j < de['rcjdg'].length; j++) {
-                    let origin = Number(de['rcjdg'][j][10]);
-                    
-                    for (let k = 0; k < data.length; k++) {
-                        if (data[k][16] == de['dercj'][j][16]) {
-                            de['dercj'][j][2] = data[k][2];//名称
-                            de['dercj'][j][1] = data[k][1];//编号
-                        }
-                    }
-
-                    de['dercj'][j][5] = de['rcjdg'][j][5];
+                                de['dercj'][j][1] = bianhao_huan;//编号
+                                de['dercj'][j][2] = name_huan;//mc
+                                de['dercj'][j][5] = new_jia;//jiage
+                    }                  
                     de['dercj'][j][10] =  origin;
                     de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
                 }
             }
-
-            else {
-                //强行改含量
-                de['dercj'] = copy(de['rcjdg']);
-                for(let j = 1; j < de['rcjdg'].length; j++) {
-                    for (let k = 0; k < data.length; k++) {
-                        if (data[k][16] == de['dercj'][j][16]) {
-                            de['dercj'][j][2] = data[k][2];//名称
-                            de['dercj'][j][1] = data[k][1];//编号
-                            de['dercj'][j][10] =  data[k][10];
-                            de['dercj'][j][11] = Number(de['dercj'][j][5]) * de['dercj'][j][10];
-
+            //基于底稿判断换
+            for(let j = 1; j < de['dercj'].length; j++) {
+                for (let k = 0; k < data.length; k++) {
+                    if (data[k][16] == de['dercj'][j][16]) {
+                        let datak2 = data[k][2];
+                        if (datak2.includes('(湿拌砂浆)')) {
+                            datak2 = datak2.replace('(湿拌砂浆)', '');
                         }
+                        if (datak2.includes('(干拌(混)砂浆)')) {
+                            datak2 = datak2.replace('(干拌(混)砂浆)', '');
+                        }
+                        if (de['dercj'][j][2] == datak2) {//名称
+                            
+                        } else {
+                            huan = true;
+                        }    
                     }
-                }
+                }        
             }
-        
-
-            
-            data = de['dercj'];
-            if (de['fuzhuEnable']) {
-                data = data.filter(x=>x[1] != 'S00001' && x[1] != 'JD0001');//预拌砂浆额外配套
-                /*
-                for (let i = 1; i < data.length; i++) {
-                    if (data[i][2].includes('(湿拌砂浆)')) {
-                        let index = data[i][2].indexOf("(湿拌砂浆)");
-                        data[i][2] = data[i][2].substring(0, index);
-                    }
-                    if (data[i][2].includes('(干拌(混)砂浆)')) {
-                        let index = data[i][2].indexOf("(干拌(混)砂浆)");
-                        data[i][2] = data[i][2].substring(0, index);
-                    }
-                }
-                */
-                de['dercj'] = copy(data);
+            if (mode == 1) {
+                data_normal = de['dercj'];
+                huan = false;
+            } else {
+                data_normal = copy(data.filter(x=>x[17] != 'true'));
             }
         } else {////单项定额没有底稿,老数据没底搞,无法判断换部换,暂时统一认为不换
             //强行改含量
-            de['dercj'] = copy(data);
-            data = de['dercj'];
+            data_normal = copy(data.filter(x=>x[17] != 'true'));
+            //data = de['dercj'];
         }
-        
 
-        if (de.hasOwnProperty("rcjdg") && de['fuzhuEnable'] && yuban.length > 0) {//没强行改过含量
-            if (yuban.includes('1')) {
-                for(let i = 1; i < data.length; i++) {
-                    if (data[i][4]=='工日') {
-                        data[i][10] = Number(data[i][10]) - 0.45;
-                    }
-                    if (data[i][2].includes('搅拌机')) {
-                        data[i][10] = 0;
+        //处理补充
+        for(let i = 0; i < rcjbc.length; i++) {
+            data_normal.push(['', rcjbc[i]['人材机编码'], rcjbc[i]['名称'], rcjbc[i]['规格型号'], rcjbc[i]['单位'], rcjbc[i]['单价'], rcjbc[i]['产地'], rcjbc[i]['供应厂商'], rcjbc[i]['人材机类别'], rcjbc[i]['甲供标志'], rcjbc[i]['含量'], '', rcjbc[i]['暂估价标志'],rcjbc[i]['主要材料标志'],rcjbc[i]['主材标志'],rcjbc[i]['设备标志'], rcjbc[i]['id'], 'true']);
+            for (let k = 0; k < data.length; k++) {
+                if (data[k][16] == rcjbc[i]['id']) {
+                    let datak2 = data[k][2];
+                    if (datak2.includes('(湿拌砂浆)')) {
+                        datak2 = datak2.replace('(湿拌砂浆)', '');
                     }
-                    if (data[i][2].includes('砂浆') && !data[i][2].includes('搅拌机')) {
-                        data[i][2] = data[i][2].concat('(湿拌砂浆)')
+                    if (datak2.includes('(干拌(混)砂浆)')) {
+                        datak2 = datak2.replace('(干拌(混)砂浆)', '');
                     }
-                }
-                let flip = [];
-                for(let i = 1; i < data.length; i++) {
-                    
-                    if (data[i][18]=='true') {
-                        for (let j = 0; j < data[i][20].length; j++) {
-                            flip.push(data[i][20][j]);
+                    if (rcjbc[i]['名称'] == datak2) {//名称
+                        
+                    } else {
+                        if (mode == 2) {
+            
+                        } else {
+                            huan = true;
                         }
-                        data[i][18] = 'false';
-                    }
-                   
+                    }    
                 }
-                for(let i = 1; i < data.length; i++) {
-                    
-                    if (flip.includes(data[i][16])) {
-                        data[i][18] = 'true';
+            }  
+        }
+
+        if (yuban.length > 0) {//处理预拌砂浆
+            if (yuban.includes('1')) {//与换无关
+                for(let i = 1; i < data_normal.length; i++) {
+                    if (data_normal[i][4]=='工日') {
+                        data_normal[i][10] = Number(data_normal[i][10]) - 0.45;
+                    }
+                    if (data_normal[i][2].includes('搅拌机')) {
+                        data_normal[i][10] = 0;
+                    }
+                    if (data_normal[i][2].includes('砂浆') && !data_normal[i][2].includes('搅拌机')) {
+                        data_normal[i][2] = data_normal[i][2].concat('(湿拌砂浆)')
                     }
-                   
+                }
+                if (mode == 0) {
+                    data_normal  = copy(data);
+                } else if (mode == 1) {
+                    //data_normal = data_normal.filter(x=>x[17]!='true');
+                    //data_normal = data_normal.concat(data.filter(x=> x[17] == 'true'));
+                } else if (mode == 2) {
+                    let data_normal_2 = copy(data_normal);
+                    data_normal = data.filter(x=>x[17]!='true');
+                    data_normal = data_normal.concat(data_normal_2.filter(x=> x[17] == 'true'));
                 }
 
-
-
-            } else if (yuban.includes('2')) {
-                let origin = 0;
-                for(let i = 1; i < data.length; i++) {
-                  if (data[i][4]=='工日') {
-                    data[i][10] = Number(data[i][10]) - 0.3;
+            } else if (yuban.includes('2')) {//与换无关
+                
+                let added = [];
+                for(let i = 1; i < data_normal.length; i++) {
+                  let origin = 0;
+                  if (data_normal[i][4]=='工日') {
+                    data_normal[i][10] = Number(data_normal[i][10]) - 0.3;
                   }
-                  if (data[i][2].includes('搅拌机')) {
-                    data[i][10] = 0;
+                  if (data_normal[i][2].includes('搅拌机')) {
+                    data_normal[i][10] = 0;
                   }
-                  
-                  if (data[i][2].includes('砂浆') && !data[i][2].includes('搅拌机')) {
-                    data[i][2] = data[i][2].concat('(干拌(混)砂浆)');
-                    origin = Number(data[i][10]); 
-                    data[i][10] = origin * 1.75;
+                  if (data_normal[i][2].includes('砂浆') && !data_normal[i][2].includes('搅拌机')) {
+                    data_normal[i][2] = data_normal[i][2].concat('(干拌(混)砂浆)');
+                    origin = Number(data_normal[i][10]); 
+                    data_normal[i][10] = origin * 1.75;
+                    added.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), ''/**hj */, ''/**zgj */,''/**zycl */,''/**zc */,''/**sb */,'',data_normal[i][17]]);
+                    added.push(['', 'JD0001', '其他机械费(电)', '', '度', '0.65', '', '', '3', 'false', (origin * 2.15).toString(), ''/**hj */, ''/**zgj */,''/**zycl */,''/**zc */,''/**sb */, '',data_normal[i][17]]);
+    
                   }
+
                 }
-                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','','', 'false', [], []]);
-                data.push(['', 'JD0001', '其他机械费(电)', '', '度', '0.65', '', '', '3', 'false', (origin * 2.15).toString(), '', '','','','', '', 'false', [], []]);
-                let flip = [];
-                for(let i = 1; i < data.length; i++) {
-                    
-                    if (data[i][18]=='true') {
-                        for (let j = 0; j < data[i][20].length; j++) {
-                            flip.push(data[i][20][j]);
-                        }
-                        data[i][18] = 'false';
-                    }
-                   
-                }
-                for(let i = 1; i < data.length; i++) {
-                    
-                    if (flip.includes(data[i][16])) {
-                        data[i][18] = 'true';
-                    }
-                   
+                data_normal = data_normal.concat(added);
+                if (mode == 0) {
+                    data_normal  = copy(data);
+                } else if (mode == 1) {
+                    //data_normal = data_normal.filter(x=>x[17]!='true');
+                    //data_normal = data_normal.concat(data.filter(x=> x[17] == 'true'));
+                } else if (mode == 2) {
+                    let data_normal_2 = copy(data_normal);
+                    data_normal = data.filter(x=>x[17]!='true');
+                    data_normal = data_normal.concat(data_normal_2.filter(x=> x[17] == 'true'));
                 }
 
 
+            } else if (yuban.includes('3')) {//与换无关
+                let added = [];
+                for(let i = 1; i < data_normal.length; i++) {
+                  let origin = 0;
+                  if (data_normal[i][4]=='工日') {
+                    data_normal[i][10] = Number(data_normal[i][10]) - 0.2;
+                  } 
+                  if (data_normal[i][2].includes('砂浆') && !data_normal[i][2].includes('搅拌机')) {
+                    data_normal[i][2] = data_normal[i][2].concat('(干拌(混)砂浆)');
+                    origin = Number(data_normal[i][10]); 
+                    data_normal[i][10] = origin * 1.75;
+                    added.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','','',data_normal[i][17]]);
 
-            } else if (yuban.includes('3')) {
-                let origin = 0;
-                for(let i = 1; i < data.length; i++) {
-                  if (data[i][4]=='工日') {
-                    data[i][10] = Number(data[i][10]) - 0.2;
-                  }
-                 
-                  
-                  if (data[i][2].includes('砂浆') && !data[i][2].includes('搅拌机')) {
-                    data[i][2] = data[i][2].concat('(干拌(混)砂浆)');
-                    origin = Number(data[i][10]); 
-                    data[i][10] = origin * 1.75;
                   }
                 }
-                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','','', 'false', [], []]);
-                let flip = [];
-                for(let i = 1; i < data.length; i++) {
-                    
-                    if (data[i][18]=='true') {
-                        for (let j = 0; j < data[i][20].length; j++) {
-                            flip.push(data[i][20][j]);
+                data_normal = data_normal.concat(added);
+                if (mode == 0) {
+                    data_normal  = copy(data);
+                } else if (mode == 1) {
+                    //data_normal = data_normal.filter(x=>x[17]!='true');
+                    //data_normal = data_normal.concat(data.filter(x=> x[17] == 'true'));
+                } else if (mode == 2) {
+                    let data_normal_2 = copy(data_normal);
+                    data_normal = data.filter(x=>x[17]!='true');
+                    data_normal = data_normal.concat(data_normal_2.filter(x=> x[17] == 'true'));
+                }
+
+
+            } else {
+                let data_normal_2 = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
+            "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", 'key', 'bc' ]];
+                for(let i = 1; i < data_normal.length; i++) {
+                    let bc = data_normal[i][17];
+                    let child = addChildren(10, data_normal[i][1], data_normal[i][10], data_normal[i][17], data_normal[i][16]);
+                    if (child.length > 0) {
+
+                    } else {
+                        child = addChildren(40, data_normal[i][1], data_normal[i][10], data_normal[i][17], data_normal[i][16]);
+                        if (child.length > 0) {
+
+                        } else {
+                            child = addChildren(50, data_normal[i][1], data_normal[i][10], data_normal[i][17], data_normal[i][16]);
                         }
-                        data[i][18] = 'false';
                     }
-                   
+                    if (child.length > 0) {//拆分
+                        for(let j = 0; j < child.length; j++) {
+                            data_normal_2.push(child[j]);
+                            if (bc == 'true') {
+                                for (let k = 0; k < data.length; k++) {
+                                    if (data[k][16] == child[j][16]) {
+                                        let datak2 = data[k][2];
+                                    
+                                        if (child[j][2] == datak2) {//名称
+                                        
+                                        } else {
+                                            if (mode > 0) {
+
+                                            } else {
+                                                huan = true;
+                                            }
+                                        }
+                                    
+                                    }
+                                }  
+                            } else if (mode != 1){
+                                for (let k = 0; k < data.length; k++) {
+                                    if (data[k][16] == child[j][16]) {
+                                        let datak2 = data[k][2];
+                                    
+                                        if (child[j][2] == datak2) {//名称
+                                        
+                                        } else {
+                                            huan = true;
+                                        }
+                                    
+                                    }
+                                }  
+                            }
+                        }
+
+
+                    } else {
+                        data_normal_2.push(data_normal[i]);
+                    }
                 }
-                for(let i = 1; i < data.length; i++) {
-                    
-                    if (flip.includes(data[i][16])) {
-                        data[i][18] = 'true';
+                if (mode == 0) {
+                    data_normal = copy(data);
+                } else if (mode == 2) {
+                    data_normal = data.filter(x=>x[17]!='true');
+                    data_normal = data_normal.concat(data_normal_2.filter(x=> x[17] == 'true'));
+                } else if (mode == 1) {
+                    data_normal = data_normal_2;
+                    //data_normal = data_normal.concat(data.filter(x=> x[17] == 'true'));
+                }
+            }
+            
+        } else {//没有预拌
+            let data_normal_2 = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
+            "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", 'key', 'bc' ]];
+            for(let i = 1; i < data_normal.length; i++) {
+                let bc = data_normal[i][17];
+                let child = addChildren(10, data_normal[i][1], data_normal[i][10], data_normal[i][17], data_normal[i][16]);
+                if (child.length > 0) {
+
+                } else {
+                    child = addChildren(40, data_normal[i][1], data_normal[i][10], data_normal[i][17], data_normal[i][16]);
+                    if (child.length > 0) {
+
+                    } else {
+                        child = addChildren(50, data_normal[i][1], data_normal[i][10], data_normal[i][17], data_normal[i][16]);
                     }
-                   
+                }
+                if (child.length > 0) {//拆分
+                    for(let j = 0; j < child.length; j++) {
+                        data_normal_2.push(child[j]);
+                        if (bc == 'true') {
+                            for (let k = 0; k < data.length; k++) {
+                                if (data[k][16] == child[j][16]) {
+                                    let datak2 = data[k][2];
+                                    
+                                    if (child[j][2] == datak2) {//名称
+                                        
+                                    } else {
+                                        if (mode > 0) {
+
+                                        } else {
+                                            huan = true;
+                                        }
+                                    }
+                                    
+                                }
+                            }  
+                        } else if (mode != 1){
+                            for (let k = 0; k < data.length; k++) {
+                                if (data[k][16] == child[j][16]) {
+                                    let datak2 = data[k][2];
+                                    
+                                    if (child[j][2] == datak2) {//名称
+                                        
+                                    } else {
+                                        huan = true;
+                                    }
+                                    
+                                }
+                            }  
+                        }
+                    }
+
+
+                } else {
+                    data_normal_2.push(data_normal[i]);
                 }
 
             }
-            de['dercj'] = copy(data);
-        }
 
-        if (de['dercj'][0].length > 18)
-        de['dercj'] = de['dercj'].filter(x=>x[18]!='true').map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17]]);
-        let keyleft = de['dercj'].map(x=>x[16]);
-        huankey = huankey.filter(x=>keyleft.includes(x));
-        if (huankey.length == 0)huan = false;
-        de['dercj'] = de['dercj'].filter(x=>!x[1].includes('10000F') && x[17] != 'true');//补充
-        de['dercj'] = de['dercj'].map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], '']);
-        for(let i = 0; i < rcjbc.length; i++) {
-            de['dercj'].push(['', rcjbc[i]['人材机编码'], rcjbc[i]['名称'], rcjbc[i]['规格型号'], rcjbc[i]['单位'], rcjbc[i]['单价'], rcjbc[i]['产地'], rcjbc[i]['供应厂商'], rcjbc[i]['人材机类别'], rcjbc[i]['甲供标志'], rcjbc[i]['含量'], '', rcjbc[i]['暂估价标志'],rcjbc[i]['主要材料标志'],rcjbc[i]['主材标志'],rcjbc[i]['设备标志'], '', 'true']);
-        }
-        data = copy(de['dercj']);
+            if (mode == 0) {
+                data_normal = copy(data);
+            } else if (mode == 2) {
+                data_normal = data.filter(x=>x[17]!='true');
+                data_normal = data_normal.concat(data_normal_2.filter(x=> x[17] == 'true'));
+            } else if (mode == 1) {
+                data_normal = data_normal_2;
+                //data_normal = data_normal.concat(data.filter(x=> x[17] == 'true'));
+            }
+
+        }        
+     
+        data = copy(data_normal);
 
         //模拟formula计算每一行的合价
         for(let i = 1; i < data.length; i++) {
@@ -2067,7 +2098,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                 
                 
                 
-                qd["_children"][i]["dercj"] = copy(data);
+                qd["_children"][i]["dercj"] = this.handleJGC(copy(data));
                 qd["_children"][i]['清单编码'] = renameDingE(oldname, xuhao, huan);
 
             }
@@ -2081,21 +2112,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         this.updateFootprint(qd['key']);
         let bm = de['清单编码'];
         let alreadyFuzhu = extractFuzhu(bm);//[xuhao]
-        let origin = de['dercj'];
-        let change = false;
-        for(let i = 1; i < data.length; i++) {
-            let before = origin[i][10];//含量
-            let after = data[i][10];
-            if (Number(before) - Number(after) < 0.0001 && Number(before) - Number(after) > -0.0001) {
-                //no change
-            } else {
-                change = true;
-                break;
-            }
-        }
-        if (change) {
-            de['fuzhuEnable'] = false;
-        }
+        
 
 
         
@@ -2125,21 +2142,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         let de = qd["_children"].filter(x=>x['key'] == row)[0];
         let bm = de['清单编码'];
         let alreadyFuzhu = extractFuzhu(bm);//[xuhao]
-        let origin = de['dercj'];
-        let change = false;
-        for(let i = 1; i < data.length; i++) {
-            let before = origin[i][10];
-            let after = data[i][10];
-            if (Number(before) - Number(after) < 0.0001 && Number(before) - Number(after) > -0.0001) {
-                //no change
-            } else {
-                change = true;
-                break;
-            }
-        }
-        if (change) {
-            de['fuzhuEnable'] = false;
-        }
+        
 
 
         
@@ -2175,7 +2178,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
         }
         de['fuzhu'] = copy(selected);
-        this.updateDercj_(row, de['dercj'], xuhao, de['yuban'], de['rcjbc']);
+        this.updateDercj_(row, de['dercj'], xuhao, de['yuban'], de['rcjbc'], 1);
 
         let newData = this.cache.map(x=>{
             if (x['key'] == qd['key']) {
@@ -2204,7 +2207,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
         }
         de['fuzhu'] = copy(selected);
-        this.updateDercj_djcs_(row, de['dercj'], xuhao);
+        this.updateDercj_djcs_(row, de['dercj'], xuhao, 1);
 
         let newData = this.cache_djcs.map(x=>{
             if (x['key'] == qd['key']) {
@@ -2226,47 +2229,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         this.updateFootprint(qd['key']);
         let de = qd["_children"].filter(x=>x['key'] == row)[0];
         let rcj = copy(de['dercj']);
-        /*
-        let dg = copy(de['rcjdg']);
-        if (dg == null && dg.length == 0) {
-
-        } else {
-        let children = [];
-        
-        for(let i = 1; i < dg.length; i++) {
-            if (dg[i][16] == rcj[old_index][16]) {
-                if (dg[i][20].length > 0) {
-                    children = dg[i][20];
-                    
-                }
-            }
-        }
-        let newdg = dg.filter(x=>!children.includes(x['16']));
-        let added = addChildren(zhuanye, new_bianhao, rcj[old_index][10], rcj[old_index][16]);
-        if (added.length == 0) {
-            for(let i = 1; i < newdg.length; i++) {
-                if (newdg[i][16] == rcj[old_index][16]) {
-                    newdg[i][18] = 'false';
-                      
-                }
-            }
-        }
-        else {
-            let childid = [];
-            for(let i = 0; i < added.length; i++) {
-                newdg.push(added[i]);
-                childid.push(added[i][16]);
-            }
-            for(let i = 1; i < newdg.length; i++) {
-                if (newdg[i][16] == rcj[old_index][16]) {
-                    newdg[i][20] = childid;
-                      
-                }
-            }
-
-        }
-        de['rcjdg'] = newdg;
-        }*/
+     
         rcj[old_index][1] = new_bianhao;
         rcj[old_index][2] = new_name;
         rcj[old_index][5] = new_jia;
@@ -2274,10 +2237,6 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         return this.updateDercj(row, rcj);
 
 
-
-
-
-
     }
 
     updateShuliang(value, row) {
@@ -2451,7 +2410,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     '综合人工工日': null,
                     '备注': null,
                     "dercj": dercj,
-                    'rcjdg': dercj.map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], 'false', [], []]),
+                    'rcjdg': dercj.map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17]]),
                     'key' :   newKey,
                     "fuzhuEnable": false,
                     'yuban': [],
@@ -2480,11 +2439,11 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                 //console.log(res);
                 let qd = this.cache_djcs.filter(x=>x['key'] == row)[0];
                 let dercj = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
-                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", "key", 'bc', "hidden", "parent", "children" ]];
+                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", "key", 'bc']];
                 for(let i = 0; i < res['rgde'].length; i++) {
                     dercj.push(['', res['rgde'][i]['CLBH'], res['rgde'][i]['CLMC'], '', res['rgde'][i]['JLDW'], 
                     res['rgde'][i]['YSJG'], '', '', '1', '', res['rgde'][i]['gr'], res['rgde'][i]['gf'],
-                    '', '', '', '', uuidv4(), "false",'false', [], [] ]);
+                    '', '', '', '', uuidv4(), "false" ]);
                 }
                 for(let i = 0; i < res['clde'].length; i++) {
                     let hit = false;
@@ -2499,9 +2458,9 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     if (hit) {
                         dercj.push(['', res['clde'][i]['CLBH'], res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
                     jg, '', '', '2', 'true', res['clde'][i]['SL'], res['clde'][i]['HJ'],
-                    '', '', '', '', uuidv4(), 'false','false', [], [] ]);
+                    '', '', '', '', uuidv4(), 'false' ]);
                     } else {
-                        if (res['clde'][i].hasOwnProperty('children')) {
+                       /* if (res['clde'][i].hasOwnProperty('children')) {
                             let parent = uuidv4();
                             let children = [];
                             let child_data = res['clde'][i]['children'];
@@ -2516,24 +2475,24 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                                 res['clde'][i]['YSJG'], '', '', '2', 'false', res['clde'][i]['SL'], res['clde'][i]['HJ'],
                                 '', '', '', '', parent, 'false','true', [], children ]);
 
-                        } else {
+                        } else {*/
                              dercj.push(['', res['clde'][i]['CLBH'], res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
                               res['clde'][i]['YSJG'], '', '', '2', 'false', res['clde'][i]['SL'], res['clde'][i]['HJ'],
-                              '', '', '', '', uuidv4(), 'false','false', [], [] ]);
-                        }
+                              '', '', '', '', uuidv4(), 'false' ]);
+                        
                     }
                     
                 }
                 for(let i = 0; i < res['jxde'].length; i++) {
                     dercj.push(['', res['jxde'][i]['jxbh'], res['jxde'][i]['jxmc'], '', res['jxde'][i]['DW'], 
                     res['jxde'][i]['tbdj'], '', '', '3', '', res['jxde'][i]['sl'], res['jxde'][i]['hj'],
-                    '', '', '', '',uuidv4(), 'false','false', [], [] ]);
+                    '', '', '', '',uuidv4(), 'false' ]);
                 }
                 let newKey = uuidv4();
                 if (!qd.hasOwnProperty('_children')) {
                     qd["_children"] = [];
                 }
-                let newdercj = copy(dercj).filter(x=>x[18]!='true').map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17]]);
+                let newdercj = copy(dercj).map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17]]);
                 qd["_children"].push({
                     '操作': '',
                     '序号': null,
@@ -2594,11 +2553,11 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                 }
                 let qd = this.cache.filter(x=>x['key'] == row)[0];
                 let dercj = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
-                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", 'key', 'bc', 'hidden', 'parent', 'children' ]];
+                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", 'key', 'bc' ]];
                 for(let i = 0; i < res['rgde'].length; i++) {
                     dercj.push(['', res['rgde'][i]['CLBH'], res['rgde'][i]['CLMC'], '', res['rgde'][i]['JLDW'], 
                     res['rgde'][i]['YSJG'], '', '', '1', '', res['rgde'][i]['gr'], res['rgde'][i]['gf'],
-                    '', '', '', '', uuidv4(), 'false','false', [],[] ]);
+                    '', '', '', '', uuidv4(), 'false' ]);
                 }
                 for(let i = 0; i < res['clde'].length; i++) {
                     let hit = false;
@@ -2612,10 +2571,10 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     }
                     if (hit) {
                         dercj.push(['', res['clde'][i]['CLBH'], res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
-                    jg, '', '', '2', 'true', res['clde'][i]['SL'], res['clde'][i]['HJ'],
-                    '', '', '', '', uuidv4(), 'false','false', [], [] ]);
+                           jg, '', '', '2', 'true', res['clde'][i]['SL'], res['clde'][i]['HJ'],
+                           '', '', '', '', uuidv4(), 'false' ]);
                     } else {
-                        if (res['clde'][i].hasOwnProperty('children') && res['clde'][i]['CLMC'].includes('砂浆')) {
+                        /*if (res['clde'][i].hasOwnProperty('children') && res['clde'][i]['CLMC'].includes('砂浆')) {
                             let parent = uuidv4();
                             let children = [];
                             let child_data = res['clde'][i]['children'];
@@ -2630,11 +2589,11 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     res['clde'][i]['YSJG'], '', '', '2', 'false', res['clde'][i]['SL'], res['clde'][i]['HJ'],
                     '', '', '', '', parent, 'false','true', [], children ]);
 
-                        } else {
+                        } else {*/
                             dercj.push(['', res['clde'][i]['CLBH'].toString(), res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
-                    res['clde'][i]['YSJG'], '', '', '2', 'false', res['clde'][i]['SL'], res['clde'][i]['HJ'],
-                    '', '', '', '', uuidv4(), 'false','false', [], [] ]);
-                        }
+                                res['clde'][i]['YSJG'], '', '', '2', 'false', res['clde'][i]['SL'], res['clde'][i]['HJ'],
+                                '', '', '', '', uuidv4(), 'false' ]);
+                        
                         
                     }
                     
@@ -2642,13 +2601,13 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                 for(let i = 0; i < res['jxde'].length; i++) {
                     dercj.push(['', res['jxde'][i]['jxbh'], res['jxde'][i]['jxmc'], '', res['jxde'][i]['DW'], 
                     res['jxde'][i]['tbdj'], '', '', '3', '', res['jxde'][i]['sl'], res['jxde'][i]['hj'],
-                    '', '', '', '', uuidv4(), 'false','false', [], [] ]);
+                    '', '', '', '', uuidv4(), 'false']);
                 }
                 let newKey = uuidv4();
                 if (!qd.hasOwnProperty('_children')) {
                     qd["_children"] = [];
                 }
-                let newdercj = copy(dercj).filter(x=>x[18]!='true').map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17]]);
+                let newdercj = copy(dercj).map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17]]);
                 qd["_children"].push({
                     '操作': '',
                     '序号': null,
@@ -2681,7 +2640,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
     
                     
                 });
-                this.updateDercj_(newKey, dercj, [], [], []);
+                this.updateDercj_(newKey, dercj, [], [], [], 1);
                 let summarized = this.summarize(this.cache);
                 this.push_op(copy(summarized));
                 /////////////////
@@ -2813,7 +2772,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
         }
         de['yuban'] = copy(selected);
-        this.updateDercj_(row, de['dercj'], alreadyFuzhu, selected, de['rcjbc']);
+        this.updateDercj_(row, de['dercj'], alreadyFuzhu, selected, de['rcjbc'], 1);
 
         let newData = this.cache.map(x=>{
             if (x['key'] == qd['key']) {
@@ -2843,7 +2802,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
     
         }
         de['rcjbc'] = copy(rcjbc);
-        this.updateDercj_(row, de['dercj'], alreadyFuzhu, de['yuban'], rcjbc);
+        this.updateDercj_(row, de['dercj'], alreadyFuzhu, de['yuban'], rcjbc, 2);
     
         let newData = this.cache.map(x=>{
             if (x['key'] == qd['key']) {
@@ -2859,6 +2818,24 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         return [copy(this.cache), copy(de['dercj'])];
     }
 
+    handleJGC(input) {
+        for (let i = 0;i < input.length; i++) {
+            let bh = input[i][1];
+            let hit = false;
+            let jg = 0;
+            for(let j = 0; j < this.jiagongcai.length; j++) {
+                if (this.jiagongcai[j]['材料编号'] == bh) {
+                    hit = true;
+                    //jg = this.jiagongcai[j]['单价'];
+                }
+            }
+            if (hit) {
+                input[i][9] = 'true';
+            }
+        }
+        return input;
+    }
+
     
 }
 

+ 1 - 1
src/editor.js

@@ -48,7 +48,7 @@ export const shanchu = ( selectedRow) => {
   };
 
 
-
+////////////////////////////////QINGDAN//////////////////////////////
 
 
 

+ 243 - 513
src/utils.js

@@ -1250,495 +1250,244 @@ const ylpbcl = [['0430061', '白水泥', 'kg', 0.52, 29595],
 ['2330520', '纸筋', 'kg', 0.5, 30188],
 ['2359999', '其它材料费(调整)', '元', 1.0, 31054]];
 
-const xsazpbsj = ['304912001',
-    '304912002',
-    '304912003',
-    '304912004',
-    '304912005',
-    '304912006',
-    '304912007',
-    '304912008',
-    '304913001',
-    '304913002',
-    '304913003',
-    '304913004',
-    '304913005',
-    '304913006',
-    '304913007',
-    '304913008',
-    '304913009',
-    '304913010',
-    '304913012',
-    '304913013',
-    '304913014',
-    '304913015',
-    '304913016',
-    '304913017',
-    '304913018',
-    '304913019',
-    '304913020',
-    '304913021',
-    '304913022',
-    '304913023',
-    '304913024',
-    '304913025',
-    '304913026',
-    '304913027',
-    '304913028',
-    '304913029',
-    '304913030',
-    '304913031',
-    '304913071',
-    '304913072',
-    '304914008',
-    '304914009',
-    '304914015',
-    '304913011',
-    '304916001',
-    '304916002',
-    '304916003',
-    '304916004',
-    '304916005',
-    '304916006',
-    '304916007'];
 
-const xsazpbsjchai = [['304912001', 202.0, 263],
-['304912001', 1.61, 5],
-['304912001', 0.3, 353],
-['304912002', 217.0, 263],
-['304912002', 1.61, 5],
-['304912002', 0.3, 353],
-['304912003', 223.0, 263],
-['304912003', 1.61, 5],
-['304912003', 0.3, 353],
-['304912004', 253.0, 263],
-['304912004', 1.61, 5],
-['304912004', 0.3, 353],
-['304912005', 174.0, 263],
-['304912005', 1.61, 5],
-['304912005', 0.1, 38],
-['304912005', 0.3, 353],
-['304912006', 202.0, 263],
-['304912006', 1.61, 5],
-['304912006', 0.08, 38],
-['304912006', 0.3, 353],
-['304912007', 230.0, 263],
-['304912007', 1.61, 5],
-['304912007', 0.05, 38],
-['304912007', 0.3, 353],
-['304912008', 258.0, 263],
-['304912008', 1.61, 5],
-['304912008', 0.03, 38],
-['304912008', 0.3, 353],
-['304913001', 765.0, 263],
-['304913001', 1.007, 5],
-['304913001', 0.3, 353],
-['304913002', 644.0, 263],
-['304913002', 1.272, 5],
-['304913002', 0.3, 353],
-['304913003', 557.0, 263],
-['304913003', 1.464, 5],
-['304913003', 0.3, 353],
-['304913004', 490.0, 263],
-['304913004', 1.611, 5],
-['304913004', 0.3, 353],
-['304913005', 408.0, 263],
-['304913005', 1.611, 5],
-['304913005', 0.3, 353],
-['304913006', 359.0, 263],
-['304913006', 1.611, 5],
-['304913006', 0.15, 353],
-['304913012', 644.0, 266],
-['304913012', 1.28, 5],
-['304913012', 0.3, 353],
-['304913013', 185.0, 263],
-['304913013', 0.31, 38],
-['304913013', 1.48, 5],
-['304913013', 0.3, 353],
-['304913014', 130.0, 263],
-['304913014', 0.32, 38],
-['304913014', 1.56, 5],
-['304913014', 0.3, 353],
-['304913015', 340.0, 263],
-['304913015', 0.56, 38],
-['304913015', 0.46, 5],
-['304913015', 0.3, 353],
-['304913016', 306.0, 263],
-['304913016', 0.13, 38],
-['304913016', 1.63, 5],
-['304913016', 0.3, 353],
-['304913017', 382.0, 263],
-['304913017', 0.32, 38],
-['304913017', 1.01, 5],
-['304913017', 0.3, 353],
-['304913018', 204.0, 263],
-['304913018', 0.17, 38],
-['304913018', 1.63, 5],
-['304913018', 0.3, 353],
-['304913019', 466.0, 263],
-['304913019', 0.04, 38],
-['304913019', 1.52, 5],
-['304913019', 0.3, 353],
-['304913020', 371.0, 263],
-['304913020', 0.15, 38],
-['304913020', 1.48, 5],
-['304913020', 0.3, 353],
-['304913021', 278.0, 263],
-['304913021', 0.23, 38],
-['304913021', 1.48, 5],
-['304913021', 0.3, 353],
-['304913022', 453.0, 263],
-['304913022', 0.19, 38],
-['304913022', 1.2, 5],
-['304913022', 0.3, 353],
-['304913023', 510.0, 263],
-['304913023', 0.08, 38],
-['304913023', 1.36, 5],
-['304913023', 0.3, 353],
-['304913024', 583.0, 263],
-['304913024', 0.24, 38],
-['304913024', 0.77, 5],
-['304913024', 0.3, 353],
-['304913025', 467.0, 263],
-['304913025', 0.39, 38],
-['304913025', 0.62, 5],
-['304913025', 0.3, 353],
-['304913026', 391.0, 263],
-['304913026', 0.1, 38],
-['304913026', 1.56, 5],
-['304913026', 0.3, 353],
-['304913027', 242.0, 263],
-['304913027', 0.1, 38],
-['304913027', 1.61, 5],
-['304913027', 0.3, 353],
-['304913028', 0.47, 38],
-['304913028', 1.47, 5],
-['304913028', 0.3, 353],
-['304913029', 0.4, 38],
-['304913029', 1.61, 5],
-['304913029', 0.3, 353],
-['304913030', 0.36, 38],
-['304913030', 1.61, 5],
-['304913030', 0.3, 353],
-['304913031', 0.25, 38],
-['304913031', 1.61, 5],
-['304913031', 0.3, 353],
-['304913071', 0.34, 38],
-['304913071', 1.63, 5],
-['304913071', 16.6, 1198],
-['304913071', 0.3, 353],
-['304913072', 224.0, 263],
-['304913072', 0.37, 38],
-['304913072', 1.18, 5],
-['304913072', 26.63, 47],
-['304913072', 0.3, 353],
-['304914008', 1.56, 5],
-['304914008', 275.0, 1085],
-['304914008', 530.0, 41],
-['304914009', 1.69, 5],
-['304914009', 244.0, 1085],
-['304914009', 468.0, 41],
-['304914015', 1085.0, 263],
-['304914015', 0.32, 6],
-['304914015', 1650.0, 864],
-['304914015', 0.4, 353],
-['304913007', 765.0, 263],
-['304913007', 1.007, 5],
-['304913007', 38.25, 1305],
-['304913007', 0.3, 353],
-['304913008', 644.0, 263],
-['304913008', 1.272, 5],
-['304913008', 32.2, 1305],
-['304913008', 0.3, 353],
-['304913009', 557.0, 263],
-['304913009', 1.464, 5],
-['304913009', 27.85, 1305],
-['304913009', 0.3, 353],
-['304913010', 490.0, 263],
-['304913010', 1.611, 5],
-['304913010', 24.5, 1305],
-['304913010', 0.3, 353],
-['304913011', 408.0, 263],
-['304913011', 1.611, 5],
-['304913011', 0.3, 353],
-['304913011', 20.4, 1305],
-['304916001', 312.96, 263],
-['304916001', 1.18, 12],
-['304916001', 0.4, 353],
-['304916002', 340.1, 263],
-['304916002', 1.14, 12],
-['304916002', 0.4, 353],
-['304916003', 411.48, 263],
-['304916003', 1.04, 12],
-['304916003', 0.4, 353],
-['304916004', 180.46, 263],
-['304916004', 1.13, 12],
-['304916004', 0.12, 38],
-['304916004', 0.4, 353],
-['304916005', 262.65, 263],
-['304916005', 0.99, 12],
-['304916005', 0.13, 38],
-['304916005', 0.4, 353],
-['304916006', 281.51, 263],
-['304916006', 0.94, 12],
-['304916006', 0.14, 38],
-['304916006', 0.4, 353],
-['304916007', 312.96, 263],
-['304916007', 0.92, 12],
-['304916007', 0.13, 38],
-['304916007', 0.4, 353]];
+const xstjpbsj = ['0304912001',
+    '0304912002',
+    '0304912003',
+    '0304912004',
+    '0304912005',
+    '0304912006',
+    '0304912007',
+    '0304912008',
+    '0304913001',
+    '0304913002',
+    '0304913003',
+    '0304913004',
+    '0304913005',
+    '0304913006',
+    '0304913007',
+    '0304913008',
+    '0304913009',
+    '0304913010',
+    '0304913012',
+    '0304913013',
+    '0304913014',
+    '0304913015',
+    '0304913016',
+    '0304913017',
+    '0304913018',
+    '0304913019',
+    '0304913020',
+    '0304913021',
+    '0304913022',
+    '0304913023',
+    '0304913024',
+    '0304913025',
+    '0304913026',
+    '0304913027',
+    '0304913028',
+    '0304913029',
+    '0304913030',
+    '0304913031',
+    '0304913071',
+    '0304913072',
+    '0304914008',
+    '0304914009',
+    '0304914015',
+    '0304913011',
+    '0304916001',
+    '0304916002',
+    '0304916003',
+    '0304916004',
+    '0304916005',
+    '0304916006',
+    '0304916007'];
 
-const xsazpbcl = [['0101020201', '中砂', 't', 68.5, 5],
-['0101020401', '砂', 't', 59.0, 6],
-['0101070501', '轻质砂 JML', 'm3', 70.0, 12],
-['0105010201', '石灰膏', 'm3', 160.0, 38],
-['0105050201', '滑石粉', 'kg', 0.45, 41],
-['0105060402', '纸筋', 'kg', 0.5, 47],
-['0301010102', '水泥 32.5级', 'kg', 0.31, 263],
-['0301030100', '白水泥', 'kg', 0.58, 266],
-['0612070102', '水', 'm3', 4.1, 353],
-['0512010304', '钢屑', 'kg', 0.76, 864],
-['0604010302', '石油沥青30#', 'kg', 3.69, 1085],
-['0608013501', '麻刀', 'kg', 2.0, 1198],
-['0609100611', '防水剂', 'kg', 1.52, 1305]];
-
-const xstjpbsj = ['304912001',
-    '304912002',
-    '304912003',
-    '304912004',
-    '304912005',
-    '304912006',
-    '304912007',
-    '304912008',
-    '304913001',
-    '304913002',
-    '304913003',
-    '304913004',
-    '304913005',
-    '304913006',
-    '304913007',
-    '304913008',
-    '304913009',
-    '304913010',
-    '304913012',
-    '304913013',
-    '304913014',
-    '304913015',
-    '304913016',
-    '304913017',
-    '304913018',
-    '304913019',
-    '304913020',
-    '304913021',
-    '304913022',
-    '304913023',
-    '304913024',
-    '304913025',
-    '304913026',
-    '304913027',
-    '304913028',
-    '304913029',
-    '304913030',
-    '304913031',
-    '304913071',
-    '304913072',
-    '304914008',
-    '304914009',
-    '304914015',
-    '304913011',
-    '304916001',
-    '304916002',
-    '304916003',
-    '304916004',
-    '304916005',
-    '304916006',
-    '304916007'];
-
-const xstjpbsjchai = [['304912001', 202.0, 263],
-['304912001', 1.61, 5],
-['304912001', 0.3, 353],
-['304912002', 217.0, 263],
-['304912002', 1.61, 5],
-['304912002', 0.3, 353],
-['304912003', 223.0, 263],
-['304912003', 1.61, 5],
-['304912003', 0.3, 353],
-['304912004', 253.0, 263],
-['304912004', 1.61, 5],
-['304912004', 0.3, 353],
-['304912005', 174.0, 263],
-['304912005', 1.61, 5],
-['304912005', 0.1, 38],
-['304912005', 0.3, 353],
-['304912006', 202.0, 263],
-['304912006', 1.61, 5],
-['304912006', 0.08, 38],
-['304912006', 0.3, 353],
-['304912007', 230.0, 263],
-['304912007', 1.61, 5],
-['304912007', 0.05, 38],
-['304912007', 0.3, 353],
-['304912008', 258.0, 263],
-['304912008', 1.61, 5],
-['304912008', 0.03, 38],
-['304912008', 0.3, 353],
-['304913001', 765.0, 263],
-['304913001', 1.007, 5],
-['304913001', 0.3, 353],
-['304913002', 644.0, 263],
-['304913002', 1.272, 5],
-['304913002', 0.3, 353],
-['304913003', 557.0, 263],
-['304913003', 1.464, 5],
-['304913003', 0.3, 353],
-['304913004', 490.0, 263],
-['304913004', 1.611, 5],
-['304913004', 0.3, 353],
-['304913005', 408.0, 263],
-['304913005', 1.611, 5],
-['304913005', 0.3, 353],
-['304913006', 359.0, 263],
-['304913006', 1.611, 5],
-['304913006', 0.15, 353],
-['304913012', 644.0, 266],
-['304913012', 1.28, 5],
-['304913012', 0.3, 353],
-['304913013', 185.0, 263],
-['304913013', 0.31, 38],
-['304913013', 1.48, 5],
-['304913013', 0.3, 353],
-['304913014', 130.0, 263],
-['304913014', 0.32, 38],
-['304913014', 1.56, 5],
-['304913014', 0.3, 353],
-['304913015', 340.0, 263],
-['304913015', 0.56, 38],
-['304913015', 0.46, 5],
-['304913015', 0.3, 353],
-['304913016', 306.0, 263],
-['304913016', 0.13, 38],
-['304913016', 1.63, 5],
-['304913016', 0.3, 353],
-['304913017', 382.0, 263],
-['304913017', 0.32, 38],
-['304913017', 1.01, 5],
-['304913017', 0.3, 353],
-['304913018', 204.0, 263],
-['304913018', 0.17, 38],
-['304913018', 1.63, 5],
-['304913018', 0.3, 353],
-['304913019', 466.0, 263],
-['304913019', 0.04, 38],
-['304913019', 1.52, 5],
-['304913019', 0.3, 353],
-['304913020', 371.0, 263],
-['304913020', 0.15, 38],
-['304913020', 1.48, 5],
-['304913020', 0.3, 353],
-['304913021', 278.0, 263],
-['304913021', 0.23, 38],
-['304913021', 1.48, 5],
-['304913021', 0.3, 353],
-['304913022', 453.0, 263],
-['304913022', 0.19, 38],
-['304913022', 1.2, 5],
-['304913022', 0.3, 353],
-['304913023', 510.0, 263],
-['304913023', 0.08, 38],
-['304913023', 1.36, 5],
-['304913023', 0.3, 353],
-['304913024', 583.0, 263],
-['304913024', 0.24, 38],
-['304913024', 0.77, 5],
-['304913024', 0.3, 353],
-['304913025', 467.0, 263],
-['304913025', 0.39, 38],
-['304913025', 0.62, 5],
-['304913025', 0.3, 353],
-['304913026', 391.0, 263],
-['304913026', 0.1, 38],
-['304913026', 1.56, 5],
-['304913026', 0.3, 353],
-['304913027', 242.0, 263],
-['304913027', 0.1, 38],
-['304913027', 1.61, 5],
-['304913027', 0.3, 353],
-['304913028', 0.47, 38],
-['304913028', 1.47, 5],
-['304913028', 0.3, 353],
-['304913029', 0.4, 38],
-['304913029', 1.61, 5],
-['304913029', 0.3, 353],
-['304913030', 0.36, 38],
-['304913030', 1.61, 5],
-['304913030', 0.3, 353],
-['304913031', 0.25, 38],
-['304913031', 1.61, 5],
-['304913031', 0.3, 353],
-['304913071', 0.34, 38],
-['304913071', 1.63, 5],
-['304913071', 16.6, 1198],
-['304913071', 0.3, 353],
-['304913072', 224.0, 263],
-['304913072', 0.37, 38],
-['304913072', 1.18, 5],
-['304913072', 26.63, 47],
-['304913072', 0.3, 353],
-['304914008', 1.56, 5],
-['304914008', 275.0, 1085],
-['304914008', 530.0, 41],
-['304914009', 1.69, 5],
-['304914009', 244.0, 1085],
-['304914009', 468.0, 41],
-['304914015', 1085.0, 263],
-['304914015', 0.32, 6],
-['304914015', 1650.0, 864],
-['304914015', 0.4, 353],
-['304913007', 765.0, 263],
-['304913007', 1.007, 5],
-['304913007', 38.25, 1305],
-['304913007', 0.3, 353],
-['304913008', 644.0, 263],
-['304913008', 1.272, 5],
-['304913008', 32.2, 1305],
-['304913008', 0.3, 353],
-['304913009', 557.0, 263],
-['304913009', 1.464, 5],
-['304913009', 27.85, 1305],
-['304913009', 0.3, 353],
-['304913010', 490.0, 263],
-['304913010', 1.611, 5],
-['304913010', 24.5, 1305],
-['304913010', 0.3, 353],
-['304913011', 408.0, 263],
-['304913011', 1.611, 5],
-['304913011', 0.3, 353],
-['304913011', 20.4, 1305],
-['304916001', 312.96, 263],
-['304916001', 1.18, 12],
-['304916001', 0.4, 353],
-['304916002', 340.1, 263],
-['304916002', 1.14, 12],
-['304916002', 0.4, 353],
-['304916003', 411.48, 263],
-['304916003', 1.04, 12],
-['304916003', 0.4, 353],
-['304916004', 180.46, 263],
-['304916004', 1.13, 12],
-['304916004', 0.12, 38],
-['304916004', 0.4, 353],
-['304916005', 262.65, 263],
-['304916005', 0.99, 12],
-['304916005', 0.13, 38],
-['304916005', 0.4, 353],
-['304916006', 281.51, 263],
-['304916006', 0.94, 12],
-['304916006', 0.14, 38],
-['304916006', 0.4, 353],
-['304916007', 312.96, 263],
-['304916007', 0.92, 12],
-['304916007', 0.13, 38],
-['304916007', 0.4, 353]];
+const xstjpbsjchai = [['0304912001', 202.0, 263],
+['0304912001', 1.61, 5],
+['0304912001', 0.3, 353],
+['0304912002', 217.0, 263],
+['0304912002', 1.61, 5],
+['0304912002', 0.3, 353],
+['0304912003', 223.0, 263],
+['0304912003', 1.61, 5],
+['0304912003', 0.3, 353],
+['0304912004', 253.0, 263],
+['0304912004', 1.61, 5],
+['0304912004', 0.3, 353],
+['0304912005', 174.0, 263],
+['0304912005', 1.61, 5],
+['0304912005', 0.1, 38],
+['0304912005', 0.3, 353],
+['0304912006', 202.0, 263],
+['0304912006', 1.61, 5],
+['0304912006', 0.08, 38],
+['0304912006', 0.3, 353],
+['0304912007', 230.0, 263],
+['0304912007', 1.61, 5],
+['0304912007', 0.05, 38],
+['0304912007', 0.3, 353],
+['0304912008', 258.0, 263],
+['0304912008', 1.61, 5],
+['0304912008', 0.03, 38],
+['0304912008', 0.3, 353],
+['0304913001', 765.0, 263],
+['0304913001', 1.007, 5],
+['0304913001', 0.3, 353],
+['0304913002', 644.0, 263],
+['0304913002', 1.272, 5],
+['0304913002', 0.3, 353],
+['0304913003', 557.0, 263],
+['0304913003', 1.464, 5],
+['0304913003', 0.3, 353],
+['0304913004', 490.0, 263],
+['0304913004', 1.611, 5],
+['0304913004', 0.3, 353],
+['0304913005', 408.0, 263],
+['0304913005', 1.611, 5],
+['0304913005', 0.3, 353],
+['0304913006', 359.0, 263],
+['0304913006', 1.611, 5],
+['0304913006', 0.15, 353],
+['0304913012', 644.0, 266],
+['0304913012', 1.28, 5],
+['0304913012', 0.3, 353],
+['0304913013', 185.0, 263],
+['0304913013', 0.31, 38],
+['0304913013', 1.48, 5],
+['0304913013', 0.3, 353],
+['0304913014', 130.0, 263],
+['0304913014', 0.32, 38],
+['0304913014', 1.56, 5],
+['0304913014', 0.3, 353],
+['0304913015', 340.0, 263],
+['0304913015', 0.56, 38],
+['0304913015', 0.46, 5],
+['0304913015', 0.3, 353],
+['0304913016', 306.0, 263],
+['0304913016', 0.13, 38],
+['0304913016', 1.63, 5],
+['0304913016', 0.3, 353],
+['0304913017', 382.0, 263],
+['0304913017', 0.32, 38],
+['0304913017', 1.01, 5],
+['0304913017', 0.3, 353],
+['0304913018', 204.0, 263],
+['0304913018', 0.17, 38],
+['0304913018', 1.63, 5],
+['0304913018', 0.3, 353],
+['0304913019', 466.0, 263],
+['0304913019', 0.04, 38],
+['0304913019', 1.52, 5],
+['0304913019', 0.3, 353],
+['0304913020', 371.0, 263],
+['0304913020', 0.15, 38],
+['0304913020', 1.48, 5],
+['0304913020', 0.3, 353],
+['0304913021', 278.0, 263],
+['0304913021', 0.23, 38],
+['0304913021', 1.48, 5],
+['0304913021', 0.3, 353],
+['0304913022', 453.0, 263],
+['0304913022', 0.19, 38],
+['0304913022', 1.2, 5],
+['0304913022', 0.3, 353],
+['0304913023', 510.0, 263],
+['0304913023', 0.08, 38],
+['0304913023', 1.36, 5],
+['0304913023', 0.3, 353],
+['0304913024', 583.0, 263],
+['0304913024', 0.24, 38],
+['0304913024', 0.77, 5],
+['0304913024', 0.3, 353],
+['0304913025', 467.0, 263],
+['0304913025', 0.39, 38],
+['0304913025', 0.62, 5],
+['0304913025', 0.3, 353],
+['0304913026', 391.0, 263],
+['0304913026', 0.1, 38],
+['0304913026', 1.56, 5],
+['0304913026', 0.3, 353],
+['0304913027', 242.0, 263],
+['0304913027', 0.1, 38],
+['0304913027', 1.61, 5],
+['0304913027', 0.3, 353],
+['0304913028', 0.47, 38],
+['0304913028', 1.47, 5],
+['0304913028', 0.3, 353],
+['0304913029', 0.4, 38],
+['0304913029', 1.61, 5],
+['0304913029', 0.3, 353],
+['0304913030', 0.36, 38],
+['0304913030', 1.61, 5],
+['0304913030', 0.3, 353],
+['0304913031', 0.25, 38],
+['0304913031', 1.61, 5],
+['0304913031', 0.3, 353],
+['0304913071', 0.34, 38],
+['0304913071', 1.63, 5],
+['0304913071', 16.6, 1198],
+['0304913071', 0.3, 353],
+['0304913072', 224.0, 263],
+['0304913072', 0.37, 38],
+['0304913072', 1.18, 5],
+['0304913072', 26.63, 47],
+['0304913072', 0.3, 353],
+['0304914008', 1.56, 5],
+['0304914008', 275.0, 1085],
+['0304914008', 530.0, 41],
+['0304914009', 1.69, 5],
+['0304914009', 244.0, 1085],
+['0304914009', 468.0, 41],
+['0304914015', 1085.0, 263],
+['0304914015', 0.32, 6],
+['0304914015', 1650.0, 864],
+['0304914015', 0.4, 353],
+['0304913007', 765.0, 263],
+['0304913007', 1.007, 5],
+['0304913007', 38.25, 1305],
+['0304913007', 0.3, 353],
+['0304913008', 644.0, 263],
+['0304913008', 1.272, 5],
+['0304913008', 32.2, 1305],
+['0304913008', 0.3, 353],
+['0304913009', 557.0, 263],
+['0304913009', 1.464, 5],
+['0304913009', 27.85, 1305],
+['0304913009', 0.3, 353],
+['0304913010', 490.0, 263],
+['0304913010', 1.611, 5],
+['0304913010', 24.5, 1305],
+['0304913010', 0.3, 353],
+['0304913011', 408.0, 263],
+['0304913011', 1.611, 5],
+['0304913011', 0.3, 353],
+['0304913011', 20.4, 1305],
+['0304916001', 312.96, 263],
+['0304916001', 1.18, 12],
+['0304916001', 0.4, 353],
+['0304916002', 340.1, 263],
+['0304916002', 1.14, 12],
+['0304916002', 0.4, 353],
+['0304916003', 411.48, 263],
+['0304916003', 1.04, 12],
+['0304916003', 0.4, 353],
+['0304916004', 180.46, 263],
+['0304916004', 1.13, 12],
+['0304916004', 0.12, 38],
+['0304916004', 0.4, 353],
+['0304916005', 262.65, 263],
+['0304916005', 0.99, 12],
+['0304916005', 0.13, 38],
+['0304916005', 0.4, 353],
+['0304916006', 281.51, 263],
+['0304916006', 0.94, 12],
+['0304916006', 0.14, 38],
+['0304916006', 0.4, 353],
+['0304916007', 312.96, 263],
+['0304916007', 0.92, 12],
+['0304916007', 0.13, 38],
+['0304916007', 0.4, 353]];
 
 const xstjpbcl = [['0101020201', '中砂', 't', 68.5, 5],
 ['0101020401', '砂', 't', 59.0, 6],
@@ -1754,7 +1503,7 @@ const xstjpbcl = [['0101020201', '中砂', 't', 68.5, 5],
 ['0608013501', '麻刀', 'kg', 2.0, 1198],
 ['0609100611', '防水剂', 'kg', 1.52, 1305]];
    
-export const addChildren = (zhuanye, bianhao, hl, parent) => {
+export const addChildren = (zhuanye, bianhao, hl, bc, key) => {
     if (zhuanye == 40) {
         if (ylpbsj.includes(bianhao)) {
             let result = [];
@@ -1765,7 +1514,7 @@ export const addChildren = (zhuanye, bianhao, hl, parent) => {
                    for(let j = 0; j < ylpbcl.length; j++ ) {
                     if (ylpbcl[j][4] == rcjid) {
                         result.push(['', ylpbcl[j][0], ylpbcl[j][1], '', ylpbcl[j][2], ylpbcl[j][3], '', '', '2', '', Number(hl) * Number(sl),
-                        Number(hl) * Number(sl) * Number(ylpbcl[j][3]), '', '', '', '', uuidv4(), '', 'false', [parent], [] ]);
+                        Number(hl) * Number(sl) * Number(ylpbcl[j][3]), '', '', '', '', key.concat('-').concat(ylpbcl[j][0]), bc,  ]);
                     }
                    }
                 }
@@ -1775,7 +1524,7 @@ export const addChildren = (zhuanye, bianhao, hl, parent) => {
             return [];
         }
     }
-    else if (zhuanye == 50) {
+    else if (zhuanye == 50 || zhuanye == 60) {
         if (xstjpbsj.includes(bianhao)) {
             let result = [];
             for (let i = 0; i < xstjpbsjchai.length; i++) {
@@ -1785,27 +1534,7 @@ export const addChildren = (zhuanye, bianhao, hl, parent) => {
                    for(let j = 0; j < xstjpbcl.length; j++ ) {
                     if (xstjpbcl[j][4] == rcjid) {
                         result.push(['', xstjpbcl[j][0], xstjpbcl[j][1], '', xstjpbcl[j][2], xstjpbcl[j][3], '', '', '2', '', Number(hl) * Number(sl),
-                        Number(hl) * Number(sl) * Number(xstjpbcl[j][3]), '', '', '', '', uuidv4(), '', 'false', [parent], [] ]);
-                    }
-                   }
-                }
-            }
-            return result;
-        } else {
-            return [];
-        }
-    }
-    else if (zhuanye == 60) {
-        if (xsazpbsj.includes(bianhao)) {
-            let result = [];
-            for (let i = 0; i < xsazpbsjchai.length; i++) {
-                if (xsazpbsjchai[i][0] == bianhao) {
-                   let  rcjid = xsazpbsjchai[i][2];
-                   let sl = xsazpbsjchai[i][1];
-                   for(let j = 0; j < xsazpbcl.length; j++ ) {
-                    if (xsazpbcl[j][4] == rcjid) {
-                        result.push(['', xsazpbcl[j][0], xsazpbcl[j][1], '', xsazpbcl[j][2], xsazpbcl[j][3], '', '', '2', '', Number(hl) * Number(sl),
-                        Number(hl) * Number(sl) * Number(xsazpbcl[j][3]), '', '', '', '', uuidv4(), '', 'false', [parent], [] ]);
+                        Number(hl) * Number(sl) * Number(xstjpbcl[j][3]), '', '', '', '', key.concat('-').concat(xstjpbcl[j][0]), bc,  ]);
                     }
                    }
                 }
@@ -1815,6 +1544,7 @@ export const addChildren = (zhuanye, bianhao, hl, parent) => {
             return [];
         }
     }
+    
     else {
         if (tjpbsj.includes(bianhao)) {
             let result = [];
@@ -1825,7 +1555,7 @@ export const addChildren = (zhuanye, bianhao, hl, parent) => {
                    for(let j = 0; j < tjpbcl.length; j++ ) {
                     if (tjpbcl[j][4] == rcjid) {
                         result.push(['', tjpbcl[j][0], tjpbcl[j][1], '', tjpbcl[j][2], tjpbcl[j][3], '', '', '2', '', Number(hl) * Number(sl),
-                        Number(hl) * Number(sl) * Number(tjpbcl[j][3]), '', '', '', '', uuidv4(), '', 'false', [parent], [] ]);
+                        Number(hl) * Number(sl) * Number(tjpbcl[j][3]), '', '', '', '', key.concat('-').concat(tjpbcl[j][0]), bc,  ]);
                     }
                    }
                 }
@@ -1835,4 +1565,4 @@ export const addChildren = (zhuanye, bianhao, hl, parent) => {
             return [];
         }
     }
-};
+};