فهرست منبع

双击添加清单bug
插入设备定位

zhongzewei 6 سال پیش
والد
کامیت
9e4d605067

+ 16 - 4
web/building_saas/main/js/views/glj_view.js

@@ -1000,7 +1000,7 @@ var gljOprObj = {
         }
     },
     setGLJSelection: function (args, newVal) {
-        if ($('#actionType').val() == 'add' || $('#actionType').val() == 'insert'|| $('#actionType').val() == 'addMix') {
+        if ($('#actionType').val() == 'add' || $('#actionType').val() == 'insert'|| $('#actionType').val() == 'insertEquipment' || $('#actionType').val() == 'addMix') {
             this.addGLJsSelection(args, newVal);
         } else {
             this.replaceGLJSelection(args, newVal);
@@ -1439,7 +1439,7 @@ $(function () {
         }
         gljOprObj.gljLibSheetData = gljOprObj.AllRecode;
         let gljClass = 0, selectMap = {};
-        if ($('#actionType').val() == 'add' || $('#actionType').val() == 'insert') {//插入,添加
+        if ($('#actionType').val() == 'add' || $('#actionType').val() == 'insert' || $('#actionType').val() == 'insertEquipment') {//插入,添加
             gljOprObj.GLJSelection = [];
         } else if($('#actionType').val() =='m_replace' || $('#actionType').val() == 'replace'){//替换、批量替换
             let selected = gljOprObj.sheetData[gljContextMenu.selectedRow];
@@ -1474,8 +1474,20 @@ $(function () {
             gljOprObj.gljLibSheet.setActiveCell(index, 0);
             gljOprObj.initSelection({row: index});
             gljOprObj.gljLibSpresd.focus(true);
+        } else if ($('#actionType').val() === 'insertEquipment') {//右键插入设备,人材机选择窗口,应默认固定到分类"养护管理设备"。
+            let locateClass = gljOprObj.treeData.std.find(function (stdClass) {
+                return stdClass.Name === '养护管理设备';
+            });
+            if (locateClass) {
+                gljClass = locateClass.ID;
+                gljOprObj.locateZTree(gljClass);
+                gljOprObj.gljLibSheet.showRow(0, GC.Spread.Sheets.VerticalPosition.top);
+                gljOprObj.gljLibSheet.setActiveCell(0, 0);
+                gljOprObj.initSelection({row: 0});
+            }
+        } else {
+            gljOprObj.showLibGLJSheetData();
         }
-        else gljOprObj.showLibGLJSheetData();
     });
 
     $('#glj_tree_div').on('hidden.bs.modal', function () {
@@ -1522,7 +1534,7 @@ $(function () {
         if (gljOprObj.GLJSelection.length < 1) {
             return;
         }
-        if ($('#actionType').val() == 'insert') {  //造价书页面中插入定额类型的工料机
+        if (['insert', 'insertEquipment'].includes($('#actionType').val())) {  //造价书页面中插入定额类型的工料机
             gljOprObj.doInsertGLJ();
         } else if ($('#actionType').val() == 'add') { //添加工料机
             gljOprObj.doAddGLJ();

+ 1 - 18
web/building_saas/main/js/views/project_view.js

@@ -1351,25 +1351,15 @@ var projectObj = {
                         if (projectReadOnly) {
                             return true;
                         }
-                        // 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) {
                         let selected = project.mainTree.selected;
-                       /* if(selected.sourceType == ModuleNames.bills){
-                            if(selected.data.type == billType.FX||selected.data.type ==billType.BILL){
-                                if(selected.data.calcBase&&selected.data.calcBase!=""){
-                                    alert("当前有基数计算,不能插入定额/量价/人材机。");
-                                    return;
-                                }
-                            }
-                        }*/
                         if(selected.data.calcBase&&selected.data.calcBase!=""){
                             alert("当前有基数计算,不能插入定额/量价/人材机。");
                             return;
                         }
-                        getGLJData('insert');// ProjectController.addRation(project, controller, rationType.volumePrice);
+                        getGLJData('insertEquipment');// ProjectController.addRation(project, controller, rationType.volumePrice);
                     },
                     visible: function(key, opt){//2018-11-08  新需求,这个按钮先隐藏,有需要再放开
                         let selected = project.mainTree.selected;
@@ -1378,13 +1368,6 @@ var projectObj = {
                         if (belongFlag && belongFlag === fixedFlag.EQUIPMENT_ACQUISITION_FEE) {
                             return true;
                         }
-                        /*if (selected && selected.sourceType == ModuleNames.bills) {
-                            //属于的固定清单
-                            let belongFlag = cbTools.getBelongFlag(selected);
-                            if (belongFlag && belongFlag === fixedFlag.EQUIPMENT_ACQUISITION_FEE) {
-                                return true;
-                            }
-                        }*/
                         return false;
                     }
                 },

+ 8 - 3
web/building_saas/main/js/views/std_billsGuidance_lib.js

@@ -261,12 +261,17 @@ const billsGuidance = (function () {
         * 该清单节点是否可以继续往下递归匹配,即该节点是否还可插入子项(在该层匹配到的时候判断)
         * 1.该底层节点不能含有非清单子项
         * 2.该节点不能含有计算基数
-        * todo 3.数量单价等相关概念做完了再补上
+        * todo 3.数量单价等相关概念,等有了补上
         * @param {Object}billsNode(清单树中的某节点) @return {Boolean}
         * */
         function canRecursive(billsNode) {
-            //不含有子清单节点但却含有子节点,说明该节点含有非清单子项
-            if (billsNode.children > 0 && billsNode.source.children === 0) {
+            //主树节点含有子节点,清单节点不含子节点,说明该节点含有非清单子项
+            //这里需要去mainTree查,不能在清单树查,因为清单树的节点children里只会有清单,就算实际上有定额,这个children里也不含该定额
+            let mainTreeNode = projectObj.project.mainTree.getNodeByID(billsNode.data.ID);
+            if (!mainTreeNode) {
+                return false;
+            }
+            if (mainTreeNode && mainTreeNode.children.length > 0 && billsNode.children.length === 0) {
                 return false;
             } else if (billsNode.data.calcBase) {
                 return false;