浏览代码

bug fixed

zhangweicheng 7 年之前
父节点
当前提交
97787be6c3

+ 7 - 0
modules/ration_glj/facade/glj_calculate_facade.js

@@ -55,6 +55,7 @@ async function calculateQuantity(query,noNeedCal){
                  }
              }
          }
+        gljList = sortRationGLJ(gljList);
          for(let i =0;i<gljList.length;i++ ){
              let r = await calculateQuantityPerGLJ(gljList[i],i,coeList,assList,adjustState,noNeedCal);
              result.glj_result.push(r);
@@ -89,6 +90,12 @@ function generateUpdateTasks(result) {
     return tasks;
 }
 
+function sortRationGLJ(list) {
+    list = _.sortByAll(list, [function (item) {
+        return item.type + "";
+    }, "code"])
+    return list;
+}
 
 async function calculateQuantityPerGLJ(glj,index,coeList,assList,adjustState,noNeedCal) {
     let decimalObject =await decimal_facade.getProjectDecimal(glj.projectID);

+ 1 - 1
public/web/tree_sheet/tree_sheet_helper.js

@@ -141,7 +141,7 @@ var TREE_SHEET_HELPER = {
                 var getFieldText2 = function () {
                     var fields = colSetting.data.field.split('.'), iField, data = node.data;
                     for (iField = 0; iField < fields.length; iField++) {
-                        if (data[fields[iField]]) {
+                        if (data[fields[iField]] && data[fields[iField]]!='0') {
                             data = data[fields[iField]];
                         } else {
                             return '';

+ 10 - 1
web/building_saas/css/custom.css

@@ -36,5 +36,14 @@ legend.legend{
 
 .filterType{
     padding-left: .75rem;
-    padding-right:0px;
+}
+
+.a_color{
+    color: #007bff;
+}
+
+.filterType a{
+    padding: 8px;
+    padding-top: 7px;
+    padding-bottom: 7px;
 }

+ 4 - 3
web/building_saas/css/main.css

@@ -149,9 +149,10 @@ body {
 .bottom-tools {
     height: 30px;
     line-height: 30px;
-    background:#F1F1F1;
-    bottom:28px;
-    left:0px;
+    background:#fff;
+    bottom:22px;
+    left:22px;
+    z-index: 999
 }
 .side-tabs .nav-tabs .nav-item {
     z-index: 999

+ 5 - 5
web/building_saas/fee_rates/fee_rate.html

@@ -3,7 +3,7 @@
 <div >
 <div class="toolsbar_feeRate px-1 ">
     <div class="form-inline py-1">
-        <label class="mx-2" >当前使用:<span id="feeRateFileName">费率1</span>(<a href="#" id="pop-lv"><span id="projectCount">3</span> 个单位工程使用</a>)
+        <label class="mx-2" >当前使用:<span id="feeRateFileName">费率1</span>(<label class="a_color" id="pop-lv"><span id="projectCount">3</span> 个单位工程使用</label>)
             <a class="btn btn-sm ml-1" href="#" data-toggle="modal" data-target="#change-lv" id="changFeeRateFile"><i class="fa fa-exchange"></i> 选择其他</a>
             <a class="btn btn-sm ml-1" href="#" data-toggle="modal" id="saveAs" data-target="#copy-lv"><i class="fa fa-files-o"></i> 另存单独用</a></label>
     </div>
@@ -73,8 +73,8 @@
 
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button"  class="btn btn-primary" data-dismiss="modal" id="changeFeeRateConfirm">确定</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>
@@ -103,8 +103,8 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-primary" id="changeConfirm" data-dismiss="modal">确定</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>
@@ -130,8 +130,8 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-primary" id="saveAsConfirm">确定</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>
@@ -156,8 +156,8 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-primary" data-dismiss="modal" id="renameConfirm" disabled>确定</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>

+ 18 - 17
web/building_saas/glj/html/project_glj.html

@@ -5,27 +5,28 @@
 </style>
 <div class="toolsbar px-1">
     <div class="form-inline py-1">
-        <label class="mx-2">当前使用:<span id="current-name"></span>(<a href="#" id="pop-used-list" data-original-title="" title=""><span id="used-project-count">0</span> 个单位工程使用</a>)
+        <label class="mx-2">当前使用:<span id="current-name"></span>(<label class="a_color" id="pop-used-list" data-original-title="" title=""><span id="used-project-count">0</span>个单位工程使用</label>)
             <a class="btn btn-sm ml-1" href="#" data-toggle="modal" data-target="#change-unitFile"><i class="fa fa-exchange"></i> 选择其他</a>
             <a class="btn btn-sm ml-1" href="#" data-toggle="modal" data-target="#unitFile-save-as"><i class="fa fa-files-o"></i> 另存单独用</a></label>
     </div>
 </div>
+
 <div class="container-fluid">
     <div class="row">
         <div class="gl-side col-lg-1 filterType" id='filterType'>
-            <ul class="list-unstyled mt-2 mb-2">
-                <li><a href="javascript:void(0)" id="ALL">所有人材机</a></li>
-                <li class="mb-2 li_sub"><a href="javascript:void(0)" id="LABOUR">人工</a></li>
-                <li class="mb-2 li_sub"><a href="javascript:void(0)" id="GENERAL_MATERIAL">材料</a></li>
-                <li class="mb-2 li_sub"><a href="javascript:void(0)" id="GENERAL_MACHINE">机械</a></li>
-                <li class="mb-2 li_sub"><a href="javascript:void(0)" id="MAIN_MATERIAL">主材</a></li>
-                <li class="mb-2 li_sub"><a href="javascript:void(0)" id="EQUIPMENT">设备</a></li>
-                <li class="mb-2"><a href="javascript:void(0)" id="FBFX">分部分项人材机</a></li>
-                <li class="mb-2"><a href="javascript:void(0)" id="TECH">措施项目人材机</a></li>
-                <li class="mb-2"><a href="javascript:void(0)" id="JGCL">甲供材料</a></li>
-                <li class="mb-2"><a href="javascript:void(0)" id="ZGCL">暂估材料</a></li>
-                <li class="mb-2"><a href="javascript:void(0)" id="SCHZ">三材汇总</a></li>
-                <li class="mb-2"><a href="javascript:void(0)" id="ZYCL">主要材料</a></li>
+            <ul class="nav flex-column nav-pills mt-2 mb-2">
+                <li class="nav-item"><a class="nav-link active" href="#" id="ALL">所有人材机</a></li>
+                <li class="nav-item li_sub"><a class="nav-link" href="javascript:void(0)" id="LABOUR">人工</a></li>
+                <li class="nav-item li_sub"><a class="nav-link" href="javascript:void(0)" id="GENERAL_MATERIAL">材料</a></li>
+                <li class="nav-item li_sub"><a class="nav-link" href="javascript:void(0)" id="GENERAL_MACHINE">机械</a></li>
+                <li class="nav-item li_sub"><a class="nav-link" href="javascript:void(0)" id="MAIN_MATERIAL">主材</a></li>
+                <li class="nav-item li_sub"><a class="nav-link" href="javascript:void(0)" id="EQUIPMENT">设备</a></li>
+                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="FBFX">分部分项人材机</a></li>
+                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="TECH">措施项目人材机</a></li>
+                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="JGCL">甲供材料</a></li>
+                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="ZGCL">暂估材料</a></li>
+                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="SCHZ">三材汇总</a></li>
+                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="ZYCL">主要材料</a></li>
             </ul>
         </div>
         <div class="main-content col p-0 col-lg-11" id="project-glj-main">
@@ -105,8 +106,8 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <a href="javascript:void(0);" class="btn btn-primary" id="change-file-confirm">确定</a>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>
@@ -129,8 +130,8 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-primary" id="save-as-confirm">确定</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>
@@ -156,8 +157,8 @@
                 </div>
             </div>
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-primary" data-dismiss="modal" id="renameUnitFileConfirm" disabled>确定</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
         </div>
     </div>

+ 9 - 2
web/building_saas/main/js/controllers/block_controller.js

@@ -272,7 +272,9 @@ let BlockController = {
              //主材设备工料机插入主树
              project.ration_glj.addToMainTree(result.ration_gljs);
              //更新计算程序模板,并进行重新计算
-             project.calcProgram.calcRationsAndSave(rationNodes);
+             project.calcProgram.calcRationsAndSave(rationNodes,function () {
+                 installationFeeObj.calcInstallationFee();
+             });
         })
 
     },
@@ -298,6 +300,11 @@ let BlockController = {
         //更新项目工料机模块信息-计算消耗量
         project.projectGLJ.datas = result.gljData;
         project.projectGLJ.calcQuantity();
+        for(let r of result.rations){
+            if(r.type == rationType.gljRation){//对于工料机类型的定额,要重新设置下市场单价
+                gljOprObj.setGLJPrice(r);
+            }
+        }
     },
 
     addToTree:function (parentID,nextID,bills,rations) {
@@ -487,7 +494,7 @@ let BlockController = {
             billsIDMap[tem_ration.billsItemID]?tem_ration.billsItemID = billsIDMap[tem_ration.billsItemID]:'';
 
             let firstLibID = rationLibObj.getFirstStdRationLibID();
-            if(firstLibID){
+            if(firstLibID&&tem_ration.type == rationType.ration){
                 tem_ration.prefix = projectObj.project.Ration.getRationPrefix(firstLibID,tem_ration);
             }
             return tem_ration;

+ 1 - 1
web/building_saas/main/js/controllers/project_controller.js

@@ -35,7 +35,7 @@ ProjectController = {
                 sc.setTreeSelected(newNode);
                 TREE_SHEET_HELPER.refreshTreeNodeData(sc.setting, sc.sheet, [newNode], false);
                 sc.sheet.setSelection(newNode.serialNo(), sels[0].col, 1, 1);
-                sc.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
+               // sc.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
             }
             cbTools.refreshFormulaNodes();
         });

+ 1 - 0
web/building_saas/main/js/models/bills.js

@@ -740,6 +740,7 @@ var Bills = {
                     if(!isChange) {
                         project.projectGLJ.loadData();
                     }
+                    gljOprObj.refreshView();
                 });
 
                /* project.calcProgram.calcBillsAndSave(parentNodes,function () {

+ 3 - 20
web/building_saas/main/js/models/ration.js

@@ -604,28 +604,11 @@ var Ration = {
                     project.projectGLJ.loadData(function () {
                         project.ration_glj.addToMainTree(data.ration_gljs);
                         projectObj.mainController.refreshTreeNode([newNode], false);
-                        if(project.Bills.isFBFX(newNode)) { //判断是否属于分部分项工程 ,是的话才需要做计取安装费计算
-                           // let changeNodes = project.calcProgram.calculate(newNode);//先计算不保存,如果计算安装增加费后不用自动计算,则单独调用保存的方法
-                            project.installation_fee.calcInstallationFee(function (isChange,rations) {
-                                if(isChange){
-                                    rations.push(newNode);
-                                    project.calcProgram.calcRationsAndSave(rations);
-                                }else {
-                                    project.calcProgram.calcRationsAndSave([newNode]);
-                                }
-                            });
-                        }else {
-                            project.calcProgram.calcAndSave(newNode);
-                        }
-                     /*   project.calcProgram.calcAndSave(newNode,function () {
+                        project.calcProgram.calcAndSave(newNode,function () {
                             if(project.Bills.isFBFX(newNode)) { //判断是否属于分部分项工程 ,是的话才需要做计取安装费计算
-                                project.installation_fee.calcInstallationFee(function (isChange) {
-                                    if(isChange){
-                                        project.calcProgram.calcAllNodesAndSave();
-                                    }
-                                });
+                                installationFeeObj.calcInstallationFee();
                             }
-                        });*/
+                        });
                         $.bootstrapLoading.end();
                     });
                 })

+ 4 - 3
web/building_saas/main/js/models/ration_glj.js

@@ -278,6 +278,9 @@ var ration_glj = {
                     projectObj.mainController.deleteNode(node, next);
                 }
             }
+            project.calcProgram.calcAndSave(rationNode,function () {
+                installationFeeObj.calcInstallationFee();
+            });
         };
         // CSL,2017.05.09
         ration_glj.prototype.modifyQuantity = function (data, newQuantity) {
@@ -446,6 +449,7 @@ var ration_glj = {
                         gljOprObj.refreshView();
                     }
                     $.bootstrapLoading.end();
+                    installationFeeObj.calcInstallationFee();
                 });
             }
             var query = {
@@ -752,7 +756,6 @@ var ration_glj = {
         ration_glj.prototype.transferToNodeData = function (data) {
             data.contain=scMathUtil.roundForObj(data.quantity,getDecimal('glj.quantity'));
             data.subType = data.type;
-            data.marketUnitFee = data.marketPrice;
         };
         ration_glj.prototype.combineRationAndGLJ = function (ration) {
             if (ration) {
@@ -765,8 +768,6 @@ var ration_glj = {
                         ration.isEstimate = glj.is_evaluate;
                     }
                     ration = gljOprObj.setGLJPrice(ration,glj);
-                    ration.basePrice = glj.unit_price.base_price;
-                    ration.marketUnitFee = glj.unit_price.market_price;
                     ration.isAdd = glj.unit_price.is_add;
                     var connect_index = gljOprObj.getIndex(glj, gljKeyArray);
                     if (mixRatioMap.hasOwnProperty(connect_index)) {

+ 2 - 2
web/building_saas/main/js/views/glj_view.js

@@ -362,7 +362,7 @@ var gljOprObj = {
             if (args.row < detailList.length) {
                 projectObj.project.quantity_detail.updateQuantityDetail(args, me.detailSetting.header[args.col].dataCode, detailList[args.row], selected,callback);
             }
-        }, 100);
+        }, 200);
 
     },
     onEditGLJSheet: function (args) {
@@ -752,6 +752,7 @@ var gljOprObj = {
         data.marketPrice = result.marketPrice;
         data.basePrice =  result.basePrice;
         data.adjustPrice = result.adjustPrice;
+        data.marketUnitFee = data.marketPrice;//更新树节点市场单价列的值
         return data;
 
     },
@@ -1062,7 +1063,6 @@ var gljOprObj = {
             project.projectGLJ.loadData(function () {
                 for(let r_glj of data){
                     r_glj = me.setGLJPrice(r_glj);//设置工料机价格
-                    r_glj.marketUnitFee = r_glj.marketPrice;
                     newNode = project.mainTree.insert(parentNodeID, nextNodeID, r_glj.ID);
                     newNode.source = r_glj;
                     newNode.sourceType = project.Ration.getSourceType();

+ 14 - 6
web/building_saas/main/js/views/project_glj_view.js

@@ -183,7 +183,7 @@ projectGljObject={
         let oldSel = me.mixRatioSheet.getSelections()[0];
         if(sheet.name() == 'projectGljSheet'){//projectGljSheet/materialSheet 工料机汇总和三材汇总表
             let sel = me.projectGljSheet.getSelections()[0];
-            let srow = sel.row == -1?0:sel.row;
+            let srow = sel.row == -1||sel.row == ""?0:sel.row;
             if(me.projectGljSheetData.length>srow){
                 gljId = me.projectGljSheetData[srow].id;
                 gljType = me.projectGljSheetData[srow].type;
@@ -271,7 +271,7 @@ projectGljObject={
             }
         }
         if(dataCode == 'materialCoe'){//三材类别为空时,三材系数应只读,不允许输入。
-            if(data.materialType == undefined || data.materialType == null){
+            if(data.materialType == undefined || data.materialType == null||data.materialType==''){
                 return false;
             }
         }
@@ -334,7 +334,7 @@ projectGljObject={
     showProjectGljData:function () {
         this.projectGljSpread.setActiveSheetIndex(0);
         let sel = this.projectGljSheet.getSelections()[0];
-        let oldData = sel.row<this.projectGljSheetData.length?this.projectGljSheetData[sel.row]:'';
+        let oldData = sel.row<this.projectGljSheetData.length?this.projectGljSheetData[sel.row]:"";
         let projectGljSheetData = [];
         let gljList = projectObj.project.projectGLJ.datas.gljList;
         gljList = this.filterProjectGLJ(gljList);
@@ -346,7 +346,7 @@ projectGljObject={
         this.projectGljSheet.setRowCount(0);
         sheetCommonObj.showData(this.projectGljSheet, this.projectGljSetting,this.projectGljSheetData);
         this.projectGljSheet.setRowCount(this.projectGljSheetData.length);
-        sel.row = _.findIndex(this.projectGljSheetData,{'id':oldData.id});
+        sel.row = oldData?_.findIndex(this.projectGljSheetData,{'id':oldData.id}):'';
         this.projectGljSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
     },
     showMaterialTreeData:function () {
@@ -755,7 +755,8 @@ projectGljObject={
                     value = 0;
                 }
             }
-            if(dataCode === 'materialType' && value == null){//删除三材类别时,清空三材系数
+            if(dataCode === 'materialType' && (value == null || value=="")){//删除三材类别时,清空三材系数
+                value = null;
                 extend.materialCoe = null;
             }
             if(dataCode == 'materialCoe'){
@@ -1120,7 +1121,14 @@ $(function () {
         });
     });
 
-    $("#filterType").on("click","ul li a",function(){
+    $("#filterType").on("click","ul li a",function(e){
+
+        let children = $('#filterType a');
+        for(let c of children){
+            $(c).removeClass('active');
+        }
+        $(this).addClass('active');
+
         let me = projectGljObject;
         me.displayType = filterType[this.id];
         me.refreshDataSheet();

+ 2 - 2
web/building_saas/main/js/views/zmhs_view.js

@@ -8,8 +8,8 @@ let zmhs_obj = {
     coeSheetData:[],
     coeSetting: {
         header: [
-            {headerName: "调整", headerWidth: 100, dataCode: "isAdjust", dataType: "String", cellType: "checkBox"},
-            {headerName: "条件", headerWidth: 120, dataCode: "name", dataType: "String", cellType: "button"},
+            {headerName: "调整", headerWidth: 45, dataCode: "isAdjust", dataType: "String", cellType: "checkBox"},
+            {headerName: "条件", headerWidth: 150, dataCode: "name", dataType: "String", cellType: "button"},
             {headerName: "内容", headerWidth: 350, dataCode: "content", dataType: "String", hAlign: "left"}
         ],
         view: {