Browse Source

bug fixed

zhangweicheng 7 years ago
parent
commit
913568e997

+ 5 - 0
web/building_saas/css/custom.css

@@ -32,4 +32,9 @@ legend.legend{
 
 .li_sub {
     margin-left: 14px;
+}
+
+.filterType{
+    padding-left: .75rem;
+    padding-right:0px;
 }

+ 2 - 2
web/building_saas/glj/html/project_glj.html

@@ -12,8 +12,8 @@
 </div>
 <div class="container-fluid">
     <div class="row">
-        <div class="gl-side col-lg-1" id='filterType'>
-            <ul class="list-unstyled ml-3 mt-2 mb-2">
+        <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>

+ 12 - 3
web/building_saas/main/js/controllers/block_controller.js

@@ -34,12 +34,21 @@ let BlockController = {
             if(MainTreeCol.readOnly.billsParent(selected)){
                 return true;
             }
+            if(this.haveCalcBase(selected)){//有使用基数计算,disable
+                return true;
+            }
         }
         if(blockData.firstNodeType != blockType.RATION && selected.sourceType == ModuleNames.ration){
             return true;
         }
         return false;
     },
+    haveCalcBase : function (node) {
+        if(node.data.calcBase ==null||node.data.calcBase ==undefined|| node.data.calcBase == ""){
+            return false;
+        }
+        return true;
+    },
     isDXFYorMainEq:function (node) {//焦点行是大项费用或定额下的主材设备
         if(node.sourceType == ModuleNames.bills && node.data.type == billType.DXFY){//焦点行是大项费用则无效;
             return true;
@@ -121,7 +130,7 @@ let BlockController = {
                 return "next";
             }
             if(isFXorBX(selected)||(selected.sourceType === Bills.getSourceType()&& selected.source.children.length == 0)){//焦点行是分项/叶子清单,且无基数计算,则粘贴到分项/叶子清单下
-                if(selected.data.calcBase ==null||selected.data.calcBase ==undefined|| selected.data.calcBase == ""){//无基数计算
+                if(!this.haveCalcBase(selected)){//无基数计算
                     return "sub";
                 }
             }
@@ -150,7 +159,7 @@ let BlockController = {
         }else {//焦点行不属于“分部分项工程”
             if(blockData.firstNodeType == blockType.BILL &&selected.sourceType == Bills.getSourceType()){//如果剪切板中是从“分部分项工程”以外复制的清单块
                 if(selected.children.length==0 || selected.children[0].sourceType == Bills.getSourceType()){//焦点行没有子项,或者子项是清单,判断是否有基数计算
-                    if(selected.data.calcBase && selected.data.calcBase!=""){//如果焦点行有基数计算,则子项灰显不可选。
+                    if(this.haveCalcBase(selected)){//如果焦点行有基数计算,则子项灰显不可选。
                         setRadioProp('sub_node',{checked:false,disabled:true});
                     }else{//如果焦点行没有基数计算,则子项可选。
                         setRadioProp('sub_node',{checked:false,disabled:false});
@@ -179,7 +188,7 @@ let BlockController = {
             return false;
        }
        function blockIsFXorBX(type) {
-           return type == blockType.FX||blockType.BX;
+           return type == blockType.FX||type == blockType.BX;
        }
 
     },

+ 2 - 2
web/building_saas/main/js/models/ration.js

@@ -400,7 +400,7 @@ var Ration = {
                 if(engineering==engineeringType.BUILD_IN) {//如果是安装工程,要看需不需要生成安装增加费
                     needInstall = project.Bills.isFBFX(r.node);
                 }
-                r.value = r.value.replace(/[\s\r\n]/g, "");//去掉空格回车换行等字符
+                r.value===null||r.value===undefined?"":r.value = r.value.replace(/[\s\r\n]/g, "");//去掉空格回车换行等字符
                 nodeInfo.push({ID:r.node.data.ID,billsItemID:r.node.data.billsItemID,newCode:r.value,needInstall:needInstall});
                 refershNodes.push(r.node);
             }
@@ -432,7 +432,7 @@ var Ration = {
                     $.bootstrapLoading.end();
                 });
 
-                if(data.length<recodes.length){//说明有部分定额编号没找到记录
+                if(data.length<recodes.length&&recodes[data.length].value!=null){//说明有部分定额编号没找到记录
                     alert('当前库中找不到定额"' + recodes[data.length].value + '"');
                 }
             })

+ 0 - 12
web/building_saas/main/js/models/ration_glj.js

@@ -570,18 +570,6 @@ var ration_glj = {
                         }
                     }
                 }
-              /*  let newNode=null;
-                for (let r_glj of data) {
-                    r_glj.marketUnitFee = r_glj.marketPrice;
-                    r_glj.quantity = r_glj.quantity + "";
-                    project.Ration.datas.push(r_glj);
-                    newNode = project.mainTree.insert(parentNodeID, nextNodeID, r_glj.ID);
-                    newNode.source = r_glj;
-                    newNode.sourceType = project.Ration.getSourceType();
-                    newNode.data = r_glj;
-                    ProjectController.syncDisplayNewNode(projectObj.mainController, newNode);
-                }*/
-                //this.nodes[this.prefix + parentID];
                 callback(parentNodeID,nextNodeID,data);
             }, function () {
                 $.bootstrapLoading.end();

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

@@ -275,8 +275,7 @@ var gljOprObj = {
         sheet.bind(GC.Spread.Sheets.Events.EditStarting, function (sender, args) {
             if (args.row>=me.sheetData.length){
                 args.cancel = true;
-            }
-            if (me.sheetData[args.row].isMixRatio) {
+            }else if (me.sheetData[args.row].isMixRatio) {
                 args.cancel = true;
             }
         });

+ 13 - 3
web/building_saas/main/js/views/project_glj_view.js

@@ -23,7 +23,7 @@ projectGljObject={
             {headerName: "供货方式", headerWidth: 80, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
             {headerName: "甲供数量", headerWidth: 100, dataCode: "supply_quantity", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "三材类别", headerWidth: 80, dataCode: "materialType", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:materialComboMap},
-            {headerName: "三材系数", headerWidth: 100, dataCode: "materialCoe", hAlign: "right", dataType: "Number",decimalField:'material',validator:"number"},
+            {headerName: "三材系数", headerWidth: 100, dataCode: "materialCoe", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'material'
             {headerName: "交货方式", headerWidth: 90, dataCode: "delivery", hAlign: "left", dataType: "String"},
             {headerName: "送达地点", headerWidth: 100, dataCode: "delivery_address", hAlign: "left", dataType: "String"},
             {headerName: "不调价", headerWidth: 55, dataCode: "is_adjust_price", dataType: "String",cellType: "checkBox"}
@@ -68,7 +68,7 @@ projectGljObject={
             {headerName: "定额价", headerWidth: 70, dataCode: "basePrice", hAlign: "right", dataType: "Number",decimalField:'glj.unitPrice',validator:"number"},
             {headerName: "市场价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",decimalField:"glj.unitPrice",validator:"number"},
             {headerName: "总消耗量", headerWidth: 100, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
-            {headerName: "三材系数", headerWidth: 100, dataCode: "materialCoe", hAlign: "right", dataType: "Number",decimalField:'material',validator:"number"},
+            {headerName: "三材系数", headerWidth: 100, dataCode: "materialCoe", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:'material'
             {headerName: "三材量", headerWidth: 100, dataCode: "materialQuantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
             {headerName: "三材类别", headerWidth: 80, dataCode: "materialType", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:materialComboMap}
         ],
@@ -464,7 +464,8 @@ projectGljObject={
             bgColour:'white'
         };
         if(glj.materialCoe){
-            data.materialCoe = scMathUtil.roundToString(glj.materialCoe,m_decimal);
+            data.materialCoe = scMathUtil.roundForObj(glj.materialCoe,m_decimal);
+            //data.materialCoe = scMathUtil.roundToString(glj.materialCoe,m_decimal);
             data.materialQuantity = scMathUtil.roundForObj(glj.materialCoe * glj.quantity,q_decimal);//还要做汇总,汇总完再转成string
         }
         gljOprObj.setGLJPrice(data,glj);
@@ -537,6 +538,9 @@ projectGljObject={
         if (materialIdList.indexOf(glj.type) >= 0) {
             data.is_evaluate = glj.is_evaluate;
         }
+        if(glj.materialCoe !== null && glj.materialCoe !==undefined){
+            data.materialCoe =  scMathUtil.roundForObj(glj.materialCoe,getDecimal("material"));
+        }
         //bgColour
         if(data.basePrice == data.marketPrice){//如果定额价等于市场价时,改底色。 优先度低于有组成物时的底色
             data.bgColour = "#C4CAFB";
@@ -739,6 +743,12 @@ projectGljObject={
                     value = 0;
                 }
             }
+            if(dataCode === 'materialType' && value == null){//删除三材类别时,清空三材系数
+                extend.materialCoe = null;
+            }
+            if(dataCode == 'materialCoe'){
+                value = scMathUtil.roundForObj(value,getDecimal("material"));
+            }
             extend = Object.keys(extend).length > 0 ?  JSON.stringify(extend) : '';
             let updateData = {id: recode.id, field: dataCode, value: value, extend: extend};
             projectGLJ.pGljUpdate(updateData,callback);