chenshilong 7 éve
szülő
commit
361534b7f5

+ 13 - 0
web/building_saas/main/js/models/ration.js

@@ -715,6 +715,19 @@ var Ration = {
             }
             return true;
         };
+        ration.prototype.canAdd = function (node) {     // CSL.2018.07.23
+            if (!node) return false;
+            if (calcTools.isRationCategory(node)) return true;
+            if (calcTools.isBill(node)){
+                if (node.data.type == billType.FX || node.data.type == billType.BX) return true;  // 分项、补项
+                if (calcTools.isLeafBill(node)
+                    && (node.data.type != billType.DXFY)
+                    && (node.data.type != billType.FB)
+                    && !project.Bills.isMeasure(node)) return true;  // 叶子清单项
+            };
+
+            return false;
+        }
         ration.prototype.getAllInstallTypeRation = function () {//取所有计取安装增加费生成的定额
             return _.filter(this.datas,{'type':rationType.install});
         };

+ 20 - 31
web/building_saas/main/js/views/project_view.js

@@ -160,7 +160,7 @@ var projectObj = {
             return false
         };
 
-        setButtonValid(canInsertRationNode(selected), $('#insertRation'));
+        setButtonValid(projectObj.project.Ration.canAdd(selected), $('#insertRation'));
         setButtonValid(ifCanDelete(), $('#delete'));
         setButtonValid(canUpLevel(selected), $('#upLevel'));
         setButtonValid(canDownLevel(selected), $('#downLevel'));
@@ -982,47 +982,52 @@ var projectObj = {
                          }
                      }
                 },
+                "spr1": '--------',
                 "insertRation": {
                     name: "插入定额",
                     icon: 'fa-sign-in',
                     disabled: function () {
-                        var selected = project.mainTree.selected;
-                        return project.Ration.addRationChecking(selected);  // Vincent, 2018-01-02
+                        // var selected = project.mainTree.selected;
+                        // return project.Ration.addRationChecking(selected);  // Vincent, 2018-01-02
+                        // 工具栏要加按钮,且不能隐藏。菜单可以隐藏,两者又必须统一,所以启用新规则。怕以后又要改回来,所以保留。 CSL, 2018-01-02
+                        return !project.Ration.canAdd(project.mainTree.selected);
                     },
                     callback: function (key, opt) {
                         project.Ration.addNewRation(null,rationType.ration);
                        // ProjectController.addRation(project, controller, rationType.ration);
-                    },
+                    }/*,
                     visible: function(key, opt){
                         var selected = project.mainTree.selected;
                         return canInsertRationNode(selected);
-                    }
+                    }*/
                 },
                 "insertLJ": {
                     name: "插入量价",
                     icon: 'fa-sign-in',
                     disabled: function () {
-                        var selected = project.mainTree.selected;
-                        return project.Ration.addRationChecking(selected);  // Vincent, 2018-01-02
+                        // var selected = project.mainTree.selected;
+                        // return project.Ration.addRationChecking(selected);  // Vincent, 2018-01-02
+                        return !project.Ration.canAdd(project.mainTree.selected);
                     },
                     callback: function (key, opt) {
                         project.Ration.addNewRation(null,rationType.volumePrice);
                        // ProjectController.addRation(project, controller, rationType.volumePrice);
-                    },
+                    }/*,
                     visible: function(key, opt){
                         var selected = project.mainTree.selected;
                         if(selected){
                            return canInsertRationNode(selected);
                         }
                        return false;
-                    }
+                    }*/
                 },
                 "insertGLJ": {
                     name: "插入人材机",
                     icon: 'fa-sign-in',
                     disabled: function () {
-                        var selected = project.mainTree.selected;
-                        return project.Ration.addRationChecking(selected);  // Vincent, 2018-01-02
+                        // var selected = project.mainTree.selected;
+                        // return project.Ration.addRationChecking(selected);  // Vincent, 2018-01-02
+                        return !project.Ration.canAdd(project.mainTree.selected);
                     },
                     callback: function (key, opt) {
                         var selected = project.mainTree.selected;
@@ -1035,15 +1040,16 @@ var projectObj = {
                             }
                         }
                         getGLJData('insert');// ProjectController.addRation(project, controller, rationType.volumePrice);
-                    },
+                    }/*,
                     visible: function(key, opt){
                         var selected = project.mainTree.selected;
                         if(selected){
                           return canInsertRationNode(selected);
                         }
                         return false;
-                    }
+                    }*/
                 },
+                "spr2": '--------',
                 "calc_installation_fee": {
                     name: "计取安装费用",
                     icon: 'fa-sign-in',
@@ -1058,7 +1064,6 @@ var projectObj = {
                         return engineering==engineeringType.BUILD_IN;
                     }
                 },
-                "spr1": '--------',
                 "delete": {
                     name: '删除',
                     icon: 'fa-remove',
@@ -1074,14 +1079,13 @@ var projectObj = {
                         }
                     }
                 },
-                "spr2":'--------',
                 "calculateAll_RationContent": {
                     name: '造价计算',
                     callback: function () {
                         project.calcProgram.calcAllNodesAndSave();
                     }
                 },
-                "spr2":'--------',
+                "spr4":'--------',
                 "copyBlock": {
                     name: '复制整块',
                     icon: 'fa-copy',
@@ -1109,7 +1113,6 @@ var projectObj = {
 
                     }
                 },
-                "spr2":'--------',
                 "pasteBlock": {
                     name: '粘贴整块',
                     icon: 'fa-paste',
@@ -2139,20 +2142,6 @@ function canInsertRationNode(selected) {//判断是否能插入定额、量价
     else {
         return true
     }
-
-/*    if (selected) {// Vincent, 2018-01-02
-        if(selected.sourceType === project.Ration.getSourceType()){ // 焦点行是定额/量价/工料机,有效显示。
-            return false;
-        }else if(selected.sourceType === project.Bills.getSourceType()){
-            if(selected.data.type == billType.FX || selected.data.type == billType.BX){//焦点行是分项,有效显示。
-                return false
-            }
-            if(selected.data.type == billType.BILL && selected.source.children.length === 0){//焦点行是清单,且没有子项,有效显示。
-                return false
-            }
-        }
-    }
-    return true;*/
 }
 
 //导入类型(09表、广联达)