Browse Source

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/YangHuCost

zhangweicheng 6 years ago
parent
commit
a9270a8338

+ 1 - 1
web/building_saas/main/html/main.html

@@ -161,7 +161,7 @@
                           </li>
 
                           <li class="nav-item dropdown">
-                              <a class="nav-link dropdown-toggle more" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">更多</a>
+                              <a class="nav-link dropdown-toggle more" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" style="display:none">更多</a>
                               <div class="dropdown-menu" id="div_more_dropdown_right">
                                   <!--<a class="dropdown-item  right-nav-link"  href="javascript:void(0)" id = 'locateTab' relaPanel="#locate">查找定位</a>-->
                                   <!--<a class="dropdown-item" data-toggle="tab" href="#sqpz" role="tab">书签批注</a>-->

+ 11 - 5
web/building_saas/main/js/models/calc_program.js

@@ -1603,10 +1603,6 @@ class CalcProgram {
         let nQ = calcTools.uiNodeQty(treeNode);
         let nTQ = calcTools.uiNodeTenderQty(treeNode);
 
-        function isBaseFeeType(type){
-            return ['labour', 'material', 'machine', 'mainMaterial', 'equipment'].indexOf(type) > -1;
-        };
-
         /*删掉多余的费用。例如:从其它计算方式(有很多费)切换到公式计算方式(只需要common费),多出来的费要删除。
         fieldNameArr 值取自:遍历treeNode的计算规则,取有绑定的字段名。这些字段名以外的fee是因旧计算多出来的,需要删除。 */
         function deleteUselessFees(treeNode, fieldNameArr){
@@ -1748,13 +1744,23 @@ class CalcProgram {
                     uf = nQ ? (tf / nQ) : tf;        // 如果工程量为0或空,综合合单直接填到综合单价
                     uf = uf.toDecimal(decimalObj.bills.unitPrice);
                     if (projectObj.project.property.valuationType != 'bill') {  // 招投标项目, 还要反算
-                        tf = (uf * nQ).toDecimal(decimalObj.bills.totalPrice);
+                        let nQ2 = nQ ? nQ : 1;
+                        tf = (uf * nQ2).toDecimal(decimalObj.bills.totalPrice);
                     };
                 };
 
                 ftObj.unitFee = uf;
                 ftObj.totalFee = tf;
                 calcTools.checkFeeField(treeNode, ftObj);
+
+                if (treeNode.modifyFlag == 2 || treeNode.modifyFlag == 3){
+                    let ftObj2 = {
+                        fieldName: 'rationCommon',
+                        unitFee: uf,
+                        totalFee: tf
+                    };
+                    calcTools.checkFeeField(treeNode, ftObj2);
+                }
             }
 
             treeNode.data.calcTemplate = {"calcItems": []};

+ 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;