zhongzewei 7 лет назад
Родитель
Сommit
766d13d3a6

+ 2 - 2
modules/all_models/std_glj.js

@@ -27,8 +27,8 @@ const std_glj = new Schema({
     shortName: String,
     unit: String,
     adjCoe: Number,
-    materialType: String,
-    materialCoe: Number,
+    materialType: Number,   //三材类别
+    materialCoe: Number,    //三材系数
     component: [std_gljComponent]
 },{versionKey: false});
 

+ 81 - 106
web/building_saas/complementary_glj_lib/js/glj.js

@@ -418,9 +418,9 @@ let repositoryGljObj = {
                                 if(me.currentGlj){
                                     me.currentGlj.component = [];
                                 }
-                                if(me.allowComponent.indexOf(rObj.gljType) !== -1){
+                               /* if(me.allowComponent.indexOf(rObj.gljType) !== -1){
                                     rObj.basePrice = 0;
-                                }
+                                }*/
                                 if(me.componentGljType.indexOf(me.currentEditingGlj.gljType) !== -1 &&
                                     !(me.currentEditingGlj.gljType === 302 && rObj.gljType === 303) && !(me.currentEditingGlj.gljType === 303 && rObj.gljType === 302)){//修改了原本是组成物的工料机
                                     //寻找所有引用了此组成物的工料机,并从组成物中删去此工料机,并重算单价
@@ -506,9 +506,9 @@ let repositoryGljObj = {
                     me.addGljObj = null;
                     rObj.component = [];
                     //如果类型为混凝土、砂浆、配合比、机械台班时,添加时填写的单价清空
-                    if(me.allowComponent.indexOf(rObj.gljType) !== -1){
+                   /* if(me.allowComponent.indexOf(rObj.gljType) !== -1){
                         rObj.basePrice = 0;
-                    }
+                    }*/
                     rObj.basePrice = !isNaN(parseFloat(rObj.basePrice)) && (rObj.basePrice && typeof rObj.basePrice !== 'undefined') ? parseFloat(rObj.basePrice) : 0;
                     addArr.push(rObj);
                 }
@@ -668,6 +668,7 @@ let repositoryGljObj = {
             let isExsit = false;
             for(let i = 0; i < me.distTypeTree.comboDatas.length; i++){
                 if(pasteObj.gljType === me.distTypeTree.comboDatas[i].text){
+                    pasteObj.gljType = me.distTypeTree.comboDatas[i].value;
                     isExsit = true;
                     reCalBasePrc = true;
                     //
@@ -685,9 +686,9 @@ let repositoryGljObj = {
                         }
                     }
                     tempObj.component = tempObj.gljType === me.distTypeTree.comboDatas[i].value ? tempObj.component : [];
-                    if(me.allowComponent.indexOf(tempObj.gljType) !== -1){
+                    /*if(me.allowComponent.indexOf(tempObj.gljType) !== -1){
                         tempObj.basePrice = tempObj.gljType === me.distTypeTree.comboDatas[i].value ? tempObj.basePrice : 0;
-                    }
+                    }*/
                     tempObj.gljType = me.distTypeTree.comboDatas[i].value;
                     tempObj.shortName = me.distTypeTree.distTypes[me.distTypeTree.prefix + tempObj.gljType].data.shortName;
                     break;
@@ -804,125 +805,99 @@ let repositoryGljObj = {
         }
     },
     onClipboardPasted: function(e, info) {
-      //  if(info.pasteData.text.trim().length > 0){
-            let me = repositoryGljObj;
-            let updateArr = [], addArr = [];
-            let items = sheetOpr.analyzePasteData(me.setting, info);
-            let beginRow = info.cellRange.row, endRow = info.cellRange.row + info.cellRange.rowCount - 1,//复制的起始行数和结束行数
-                maxRow = me.currentCache.length - 1,//当前数据最大行数
-                updateBasePrcArr = [] ,
-                updateCount, resumeArr = [];
-            if(endRow <= maxRow){
-                //updateItems = items;
-                for(let i = 0; i < items.length; i++){
-                    let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
-                    if(updateObj && typeof updateObj.updateGlj !== 'undefined' && updateObj.updateGlj.length > 0){
-                        //updateArr = updateObj.updateGlj;
-                        updateArr = updateArr.concat(updateObj.updateGlj);
-                        if(typeof updateObj.updateBasePrcArr !== 'undefined'){
-                            updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrcArr);
-                         }
-                    }
-                    else{
-                        resumeArr.push(info.cellRange.row + i);
+        //  if(info.pasteData.text.trim().length > 0){
+        let me = repositoryGljObj;
+        let updateArr = [], addArr = [];
+        let items = sheetOpr.analyzePasteData(me.setting, info);
+        let beginRow = info.cellRange.row, endRow = info.cellRange.row + info.cellRange.rowCount - 1,//复制的起始行数和结束行数
+            maxRow = me.currentCache.length - 1,//当前数据最大行数
+            updateBasePrcArr = [] ,
+            updateCount, resumeArr = [];
+        if(endRow <= maxRow){
+            //updateItems = items;
+            for(let i = 0; i < items.length; i++){
+                let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
+                if(updateObj && typeof updateObj.updateGlj !== 'undefined' && updateObj.updateGlj.length > 0){
+                    //updateArr = updateObj.updateGlj;
+                    updateArr = updateArr.concat(updateObj.updateGlj);
+                    if(typeof updateObj.updateBasePrcArr !== 'undefined'){
+                        updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrcArr);
                     }
                 }
             }
-            else if(beginRow <= maxRow && endRow > maxRow){
-                updateCount = maxRow - beginRow + 1;
-                for(let i = 0; i < updateCount; i++){
-                    let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
-                    if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
-                        //updateArr = updateObj.updateGlj;
-                        updateArr = updateArr.concat(updateObj.updateGlj);
-                        if(typeof updateObj.updateBasePrcArr !== 'undefined'){
-                            updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrcArr);
-                        }
-                    }
-                    else{
-                        resumeArr.push(info.cellRange.row + i);
+        }
+        else if(beginRow <= maxRow && endRow > maxRow){
+            updateCount = maxRow - beginRow + 1;
+            for(let i = 0; i < updateCount; i++){
+                let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
+                if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
+                    //updateArr = updateObj.updateGlj;
+                    updateArr = updateArr.concat(updateObj.updateGlj);
+                    if(typeof updateObj.updateBasePrcArr !== 'undefined'){
+                        updateBasePrcArr = updateBasePrcArr.concat(updateObj.updateBasePrcArr);
                     }
                 }
-                if(info.cellRange.colCount === me.setting.header.length -1){
-                    for(let i = updateCount ; i < items.length; i++){
-                        if(me.isValidObj(items[i])){
-                            items[i].component = [];
-                            //类型为混凝土、砂浆、配合比、机械时,基价只能组成物计算
-                            if(me.allowComponent.indexOf(items[i].gljType) !== -1){
-                                items[i].basePrice = 0;
-                            }
-                            addArr.push(items[i]);
-                        }
-                        else{
-                            resumeArr.push(info.cellRange.row + i);
-                        }
+            }
+            if(info.cellRange.colCount === me.setting.header.length -1){
+                for(let i = updateCount ; i < items.length; i++){
+                    if(me.isValidObj(items[i])){
+                        items[i].component = [];
+                        //类型为混凝土、砂浆、配合比、机械时,基价只能组成物计算
+                        /* if(me.allowComponent.indexOf(items[i].gljType) !== -1){
+                         items[i].basePrice = 0;
+                         }*/
+                        addArr.push(items[i]);
                     }
                 }
-                else{
-                    for(let i = updateCount ; i < items.length; i++){
-                        resumeArr.push(info.cellRange.row + i);
+            }
+        }
+        else{
+            if(info.cellRange.colCount === me.setting.header.length -1){
+                for(let i = 0; i < items.length; i++){
+                    if(me.isValidObj(items[i])){
+                        items[i].component = [];
+                        /*if(me.allowComponent.indexOf(items[i].gljType) !== -1){
+                         items[i].basePrice = 0;
+                         }*/
+                        addArr.push(items[i]);
                     }
                 }
             }
-            else{
-                if(info.cellRange.colCount === me.setting.header.length -1){
-                    for(let i = 0; i < items.length; i++){
-                        if(me.isValidObj(items[i])){
-                            items[i].component = [];
-                            if(me.allowComponent.indexOf(items[i].gljType) !== -1){
-                                items[i].basePrice = 0;
-                            }
-                            addArr.push(items[i]);
+        }
+        //repaint
+        for(let i = 0; i < info.cellRange.rowCount; i++){
+            resumeArr.push(info.cellRange.row + i);
+        }
+        if(resumeArr.length > 0){
+            let sheet = me.workBook.getActiveSheet();
+            sheet.suspendPaint();
+            for(let i = 0; i < resumeArr.length ; i++){
+                if(resumeArr[i] < me.currentCache.length){
+                    for(let col = 0; col < me.setting.header.length -1; col++){
+                        if(me.setting.header[col].dataCode === 'gljType'){
+                            let gljType = me.currentCache[resumeArr[i]][me.setting.header[col].dataCode];
+                            sheet.setValue(resumeArr[i], col, me.distTypeTree.distTypes["gljType" + gljType].data.fullName);
                         }
                         else{
-                            resumeArr.push(info.cellRange.row + i);
+                            sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
                         }
                     }
                 }
                 else{
-                    for(let i = 0; i < items.length; i++){
-                        resumeArr.push(info.cellRange.row + i);
+                    for(let col = 0; col < me.setting.header.length - 1; col++){
+                        sheet.setValue(resumeArr[i], col, '', GC.Spread.Sheets.SheetArea.viewport);
                     }
                 }
             }
-            //repaint
-            if(resumeArr.length > 0){
-                let sheet = me.workBook.getActiveSheet();
-                sheet.suspendPaint();
-                for(let i = 0; i < resumeArr.length ; i++){
-                    if(resumeArr[i] < me.currentCache.length){
-                        for(let col = 0; col < me.setting.header.length -1; col++){
-                            if(me.setting.header[col].dataCode === 'gljType'){
-                                let gljType = me.currentCache[resumeArr[i]][me.setting.header[col].dataCode];
-                                sheet.setValue(resumeArr[i], col, me.distTypeTree.distTypes["gljType" + gljType].data.fullName);
-                            }
-                            else{
-                                sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
-                            }
-                        }
-                    }
-                    else{
-                        for(let col = 0; col < me.setting.header.length - 1; col++){
-                            sheet.setValue(resumeArr[i], col, '', GC.Spread.Sheets.SheetArea.viewport);
-                        }
-                    }
-                }
-                sheet.resumePaint();
-            }
-            if (updateArr.length > 0 || addArr.length > 0) {
-                me.mixUpdateRequest(updateArr, addArr, []);
-            }
-            if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
-                me.updateRationBasePrcRq(updateBasePrcArr);
-            }
-       // }
-      /*  else{//解决bug: 从原本的sheet复制一行数据,会两次调用粘贴事件函数..,todo:找出原因
-            for(let i = 0, len = info.cellRange.rowCount; i < len; i++){
-                for(let col = 0; col < 6; col++){
-                    info.sheet.setValue(info.cellRange.row + i, col, '');
-                }
-            }
-        }*/
+            sheet.resumePaint();
+        }
+        if (updateArr.length > 0 || addArr.length > 0) {
+            me.mixUpdateRequest(updateArr, addArr, []);
+        }
+        if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
+            me.updateRationBasePrcRq(updateBasePrcArr);
+        }
+        // }
     },
     updateRationBasePrcRq: function (basePrcArr) {
         CommonAjax.post('complementartGlj/api/updateRationBasePrc', {basePrcArr: basePrcArr}, function (rstData) {

+ 9 - 0
web/building_saas/main/js/models/main_consts.js

@@ -201,6 +201,15 @@ const supplyText = {
     JDYG: '甲定乙供'
 };
 
+//三材类别
+const materialType = {
+    1: '钢材',
+    2: '钢筋',
+    3: '木材',
+    4: '水泥',
+    5: '标准砖'
+};
+
 //清单固定行
 const fixedFlag = {
     // 分部分项工程