Преглед изворни кода

Merge branch '1.0.0_online' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost into 1.0.0_online

zhongzewei пре 6 година
родитељ
комит
6437a2f426

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

@@ -9,8 +9,8 @@
             <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="#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>
             <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>
         <select class="form-control form-control-sm" style="width: auto; font-size: .875rem ;color: #007bff" id="adjustType">
         <select class="form-control form-control-sm" style="width: auto; font-size: .875rem ;color: #007bff" id="adjustType">
-            <option value="priceInfo">造价信息差额调整法</option>
-            <option value="priceCoe" selected>价格指数调整法</option>
+            <option value="priceInfo" selected>造价信息差额调整法</option>
+            <option value="priceCoe">价格指数调整法</option>
         </select>
         </select>
     </div>
     </div>
 </div>
 </div>
@@ -31,7 +31,7 @@
                 <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="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="SCHZ">三材汇总</a></li>
                 <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="ZYCL">主要材料</a></li>
                 <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="ZYCL">主要材料</a></li>
-                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="AMAE">添加承包人提供主要材料和工程设备</a></li>
+                <li class="nav-item"><a class="nav-link" href="javascript:void(0)" id="AMAE">承包人提供主要材料和工程设备</a></li>
             </ul>
             </ul>
         </div>
         </div>
         <div class="main-content col p-0" id="material_adjust" style="overflow: hidden; display: none">
         <div class="main-content col p-0" id="material_adjust" style="overflow: hidden; display: none">
@@ -203,23 +203,23 @@
                             <label class="form-check-label" for="glj_sel_all">所有</label>
                             <label class="form-check-label" for="glj_sel_all">所有</label>
                         </div>
                         </div>
                         <div class="form-check form-check-inline">
                         <div class="form-check form-check-inline">
-                            <input class="form-check-input glj_sel_input" type="checkbox" id="glj_sel_labour" value="1">
+                            <input class="form-check-input glj_sel_input glj_sel_input_other" type="checkbox" id="glj_sel_labour" value="1">
                             <label class="form-check-label" for="glj_sel_labour">人</label>
                             <label class="form-check-label" for="glj_sel_labour">人</label>
                         </div>
                         </div>
                         <div class="form-check form-check-inline">
                         <div class="form-check form-check-inline">
-                            <input class="form-check-input glj_sel_input" type="checkbox" id="glj_sel_material" checked value="2">
+                            <input class="form-check-input glj_sel_input glj_sel_input_other" type="checkbox" id="glj_sel_material" checked value="2">
                             <label class="form-check-label" for="glj_sel_material">材</label>
                             <label class="form-check-label" for="glj_sel_material">材</label>
                         </div>
                         </div>
                         <div class="form-check form-check-inline">
                         <div class="form-check form-check-inline">
-                            <input class="form-check-input glj_sel_input" type="checkbox" id="glj_sel_machine" value="3">
+                            <input class="form-check-input glj_sel_input glj_sel_input_other" type="checkbox" id="glj_sel_machine" value="3">
                             <label class="form-check-label" for="glj_sel_machine">机</label>
                             <label class="form-check-label" for="glj_sel_machine">机</label>
                         </div>
                         </div>
                         <div class="form-check form-check-inline">
                         <div class="form-check form-check-inline">
-                            <input class="form-check-input glj_sel_input" type="checkbox" id="glj_sel_main" checked value="4">
+                            <input class="form-check-input glj_sel_input glj_sel_input_other" type="checkbox" id="glj_sel_main" checked value="4">
                             <label class="form-check-label" for="glj_sel_main">主材</label>
                             <label class="form-check-label" for="glj_sel_main">主材</label>
                         </div>
                         </div>
                         <div class="form-check form-check-inline">
                         <div class="form-check form-check-inline">
-                            <input class="form-check-input glj_sel_input" type="checkbox" id="glj_sel_eqp" checked value="5">
+                            <input class="form-check-input glj_sel_input glj_sel_input_other" type="checkbox" id="glj_sel_eqp" checked value="5">
                             <label class="form-check-label" for="glj_sel_eqp">设备</label>
                             <label class="form-check-label" for="glj_sel_eqp">设备</label>
                         </div>
                         </div>
                     </div>
                     </div>
@@ -229,8 +229,8 @@
                 </div>
                 </div>
             </div>
             </div>
             <div class="modal-footer">
             <div class="modal-footer">
-                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
                 <button type="button" class="btn btn-primary" id="glj_sel_confirm" data-dismiss="modal">确定</button>
                 <button type="button" class="btn btn-primary" id="glj_sel_confirm" data-dismiss="modal">确定</button>
+                <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>

+ 47 - 15
web/building_saas/main/js/views/material_adjust_view.js

@@ -14,10 +14,10 @@ let materialAdjustObj = {
             {headerName: "规格型号", headerWidth: 120, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell'},
             {headerName: "规格型号", headerWidth: 120, dataCode: "specs", hAlign: "left", dataType: "String",cellType:'tipsCell'},
             {headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"},
             {headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"},
             {headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
             {headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
-            {headerName: "风险系数", headerWidth: 90, dataCode: "riskCoe", hAlign: "right", dataType: "Number",validator:"number"},
+            {headerName: "风险系数%", headerWidth: 90, dataCode: "riskCoe", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "基准单价", headerWidth: 70, dataCode: "standardPrice", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "基准单价", headerWidth: 70, dataCode: "standardPrice", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "投标单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "投标单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},
-            {headerName: "合价", headerWidth: 70, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number"},
+            {headerName: "合价", headerWidth: 70, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number",decimalField:'bills.totalPrice'},
             {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
             {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
             {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
             {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
@@ -36,7 +36,7 @@ let materialAdjustObj = {
             {headerName: "现行价格指数FI", headerWidth: 70, dataCode: "FI", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "现行价格指数FI", headerWidth: 70, dataCode: "FI", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
             {headerName: "数量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
             {headerName: "单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},
             {headerName: "单价", headerWidth: 70, dataCode: "marketPrice", hAlign: "right", dataType: "Number",validator:"number"},
-            {headerName: "合价", headerWidth: 70, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number"},
+            {headerName: "合价", headerWidth: 70, dataCode: "totalPrice", hAlign: "right", dataType: "Number",validator:"number",decimalField:'bills.totalPrice'},
             {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
             {headerName: "产地", headerWidth: 80, dataCode: "originPlace", hAlign: "left", dataType: "String"},
             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
             {headerName: "厂家", headerWidth: 80, dataCode: "vender", hAlign: "left", dataType: "String"},
             {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
             {headerName: "供货方式", headerWidth: 70, dataCode: "supply", hAlign: "center", dataType: "String",cellType:'comboBox',editorValueType:true,options:supplyComboMap},
@@ -101,19 +101,31 @@ let materialAdjustObj = {
             projectGLJ.updatePrice(recode,editField,value,'pg',me.refreshSheetDatas);
             projectGLJ.updatePrice(recode,editField,value,'pg',me.refreshSheetDatas);
             return;
             return;
         }
         }
-        value = scMathUtil.roundForObj(value,getDecimal("process"));
+        if(value) value = scMathUtil.roundForObj(value,getDecimal("process"));
+        if(value == null) value="";
         let updateData = {id: recode.id, field: dataCode, value: value+""};
         let updateData = {id: recode.id, field: dataCode, value: value+""};
         projectGLJ.pGljUpdate(updateData,me.refreshSheetDatas);
         projectGLJ.pGljUpdate(updateData,me.refreshSheetDatas);
 
 
     },
     },
-    deleteAdjust:function (row) {
-        let me = this;
+    deleteAdjust:function () {
+        let me = this,updateMap={};
         let projectGLJ = projectObj.project.projectGLJ;
         let projectGLJ = projectObj.project.projectGLJ;
-        let field =  $("#adjustType").val() == "priceInfo"?"is_info_adjust":"is_coe_adjust";
         let datas = $("#adjustType").val() == "priceInfo"?me.priceInfoDatas:me.priceCoeDatas;
         let datas = $("#adjustType").val() == "priceInfo"?me.priceInfoDatas:me.priceCoeDatas;
-        let recode = datas[row];
+        let sels = this.spread.getActiveSheet().getSelections();
+        let select =  sels.length > 0? sels[0]:null;
+        if(!select) return;
+        for(let i =0;i<select.rowCount;i++){
+            let recode = datas[select.row+i];
+            if(recode) updateMap[recode.id] = {is_info_adjust:0,is_coe_adjust:0};
+        }
+        if( _.isEmpty(updateMap)) return;
+        projectGLJ.batchUpdateGLJProperty(updateMap,materialAdjustObj.refreshSheetDatas);
+
+
+
+      /*  let recode = datas[row];
         let updateData = {id: recode.id, field: field, value: 0};
         let updateData = {id: recode.id, field: field, value: 0};
-        projectGLJ.pGljUpdate(updateData,me.refreshSheetDatas);
+        projectGLJ.pGljUpdate(updateData,me.refreshSheetDatas);*/
     },
     },
     showPriceInfoDatas:function () {
     showPriceInfoDatas:function () {
         this.spread.setActiveSheetIndex(0);
         this.spread.setActiveSheetIndex(0);
@@ -200,7 +212,7 @@ let materialAdjustObj = {
                     },
                     },
                     callback: function (key, opt) {
                     callback: function (key, opt) {
                         let row = me.rightClickTarget.row;
                         let row = me.rightClickTarget.row;
-                        me.deleteAdjust(row);
+                        me.deleteAdjust();
                     }
                     }
                 }
                 }
             }
             }
@@ -251,6 +263,7 @@ let gljFromObj={
             lockColumns: ["is_evaluate"]
             lockColumns: ["is_evaluate"]
         }
         }
     },
     },
+    checkType:"取消",//记住点击过的按钮的text
     initSpread:function () {
     initSpread:function () {
         if(!this.spread){
         if(!this.spread){
             this.spread = SheetDataHelper.createNewSpread($("#glj_from_sheet")[0]);
             this.spread = SheetDataHelper.createNewSpread($("#glj_from_sheet")[0]);
@@ -306,6 +319,7 @@ let gljFromObj={
         });
         });
     },
     },
     refreshDatas:function () {
     refreshDatas:function () {
+        this.checkByType(this.checkType);
         sheetCommonObj.showData(this.sheet, this.setting,this.datas);
         sheetCommonObj.showData(this.sheet, this.setting,this.datas);
         this.sheet.setRowCount(this.datas.length);
         this.sheet.setRowCount(this.datas.length);
     },
     },
@@ -337,19 +351,19 @@ let gljFromObj={
                     break;
                     break;
             }
             }
         }
         }
-        this.refreshDatas();
+        //this.refreshDatas();
     },
     },
     confirmSelect:function () {
     confirmSelect:function () {
         let updateMap = {};
         let updateMap = {};
         let adjustType =  $("#adjustType").val()
         let adjustType =  $("#adjustType").val()
         for(let d of this.datas){
         for(let d of this.datas){
             if(d.select == 1){
             if(d.select == 1){
-                let tem;
-                if(adjustType== "priceInfo"){
+                let tem = {is_info_adjust:1,riskCoe:"",standardPrice:d.marketPrice+"",is_coe_adjust:1,FI:"",FO:""};//现在改成添加的话,两个页面都添加,删除两个页面都删除
+             /*   if(adjustType== "priceInfo"){
                     tem = {is_info_adjust:1,riskCoe:"",standardPrice:d.marketPrice+""};
                     tem = {is_info_adjust:1,riskCoe:"",standardPrice:d.marketPrice+""};
                 }else {
                 }else {
                     tem = {is_coe_adjust:1,FI:"",FO:""};
                     tem = {is_coe_adjust:1,FI:"",FO:""};
-                }
+                }*/
                 updateMap[d.id] = tem;
                 updateMap[d.id] = tem;
             }
             }
         }
         }
@@ -366,10 +380,27 @@ $(function () {
         materialAdjustObj.refreshSheetDatas();
         materialAdjustObj.refreshSheetDatas();
     });
     });
     $('#selectFromGLJ').on('shown.bs.modal',function(e){
     $('#selectFromGLJ').on('shown.bs.modal',function(e){
+        gljFromObj.checkType="取消";
         gljFromObj.initSpread();
         gljFromObj.initSpread();
         gljFromObj.showDatas();
         gljFromObj.showDatas();
     });
     });
     $(".glj_sel_input").change(function () {
     $(".glj_sel_input").change(function () {
+        let check = $(this).prop("checked");
+        if($(this).val() == 0){//勾选的是全选,其它的勾选项跟着改变
+            for(let a of $(".glj_sel_input")){
+                $(a).prop("checked",check)
+            }
+        }else {//勾选其它选项
+            let a_checked = true;
+            for(let o of $(".glj_sel_input_other")){//如果其它的有一个不勾选,则所有项也不打勾
+                if($(o).prop("checked") === false){
+                    a_checked = false;
+                    break;
+                }
+            }
+            $("#glj_sel_all").prop("checked",a_checked);
+        }
+
         gljFromObj.showDatas();
         gljFromObj.showDatas();
     });
     });
 
 
@@ -378,7 +409,8 @@ $(function () {
     });
     });
 
 
     $(".glj_sel_check_btn").click(function () {
     $(".glj_sel_check_btn").click(function () {
-        gljFromObj.checkByType($(this).text())
+        gljFromObj.checkType = $(this).text();
+        gljFromObj.refreshDatas();
     })
     })
     
     
     $("#glj_sel_confirm").click(function () {
     $("#glj_sel_confirm").click(function () {