Pārlūkot izejas kodu

费率加自定义输入功能

zhangweicheng 7 gadi atpakaļ
vecāks
revīzija
4929b083ec

+ 18 - 0
web/building_saas/main/html/main.html

@@ -1295,6 +1295,24 @@
                                     <input class="form-control feerateInput" id="inputFeeRate" value="">
                                 </div>
                             </div>-->
+                            <div class="form-check form-check-inline">
+                                <input class="form-check-input" type="radio" name="editFeeRateOptions" id="inputFeeRate" value="0">
+                                <label class="form-check-label" for="inputFeeRate">自定义费率</label>
+                            </div>
+                            <div class="form-check form-check-inline">
+                                <input class="form-check-input" type="radio" name="editFeeRateOptions" id="selectStd" value="1">
+                                <label class="form-check-label" for="selectStd">选择标准费率</label>
+                            </div>
+                            <div id="selfDiv">
+                                <div class="form-group row">
+                                    <label class="col-auto col-form-label col-form-label-sm">手工输入费率</label>
+                                    <div class="col">
+                                        <div class="input-group input-group-sm">
+                                            <input id="customFeeRate" type="text" class="form-control"  placeholder="输入费率" style="width:100px">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
                             <div class="modal-fixed-height" style="overflow: hidden" id="fee_rate_sheet">
                             </div>
                         </div>

+ 39 - 1
web/building_saas/main/js/views/fee_rate_view.js

@@ -188,6 +188,29 @@ var feeRateObject={
             return 0
         }
     },
+    initFeeRateEditDiv:function(optionValue){//“0” 手工输入; “1” 选择费率
+        let radioValue = optionValue,feeRateValue;
+        if(!gljUtil.isDef(optionValue)){
+            let fID = 0;
+            if ($("#calc_program_manage").is(":visible")){
+                fID = calcProgramManage.getSelectionInfo().calcItem.feeRateID;
+                feeRateValue = calcProgramManage.getSelectionInfo().calcItem.feeRate;
+            } else if ($("#zaojiashu").is(":visible")){
+                fID = projectObj.project.mainTree.selected.data.feeRateID;
+                feeRateValue = projectObj.project.mainTree.selected.data.feeRate;
+            }
+            radioValue = fID?"1":"0";
+            $("#customFeeRate").val(feeRateValue);
+        }
+        $("input[name='editFeeRateOptions'][value='"+radioValue+"']").attr("checked",true);
+        if(radioValue == "0"){
+            $("#selfDiv").show();
+            $("#fee_rate_sheet").hide();
+        }else {
+            $("#selfDiv").hide();
+            $("#fee_rate_sheet").show();
+        }
+    },
     locate: function(){   // CSL,2018.07.18
         let sheet = feeRateObject.feeRateSpreads.getSheet(0);
         let fID = 0;
@@ -1109,6 +1132,7 @@ $(function(){
         if(feeRateObject.feeRateSpreads==null){
             feeRateObject.createSheet();
         }
+        feeRateObject.initFeeRateEditDiv();
         feeRateObject.feeRateSelection=null;
         feeRateObject.showFeeRateTree(feeRateObject.feeRateSheet,feeRateObject.sheetSetting,projectObj.project.FeeRate.getActivateFeeRate().rates);
         feeRateObject.locate();
@@ -1134,7 +1158,21 @@ $(function(){
             return;
         }
         feeRateObject.submitFeeRateBySelect();
-    })
+    });
+    $("input[name='editFeeRateOptions']").each(function(){
+        $(this).click(function(){
+            let optins = $(this).val();
+            if(optins == "0"){
+                $("#selfDiv").show();
+                $("#fee_rate_sheet").hide();
+            }else {
+                $("#selfDiv").hide();
+                $("#fee_rate_sheet").show(function () {
+                    feeRateObject.feeRateSpreads.refresh();
+                });
+            }
+        });
+    });
 })
 function changeFRadioClick() {
     var radioV= $("input[name='chaneg-lv-Radio']:checked").val();

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

@@ -3283,10 +3283,23 @@ $('#calcBaseFeeRateConf').click(function () {
     if(!toggle || toggle !== 'commonTotalFee'){
         return
     }
-    let needToSave = false;
-    let validateFeeRate = feeRateObject.checkSelectedFeeRate();
     let calcBaseValue = calcBaseView.getInputExpr() ? calcBaseView.getInputExpr() : '';
     let selected = projectObj.project.mainTree.selected;
+    let needToSave = false,validateFeeRate=false,cusFeeRate = false;
+    if($("input[name='editFeeRateOptions']:checked").val() == "0"){ //等于”0“ 是自定义输入,删除费率关联ID,直接取值
+        let newVal = null;
+        if($("#customFeeRate").val() != ""){
+            newVal = number_util.checkNumberValue( $("#customFeeRate").val(),getDecimal("feeRate"));
+            if(newVal == null) return
+        }
+        selected.data.feeRateID = null;
+        selected.data.feeRate = newVal;
+        selected.changed = true;
+        needToSave = true;
+        cusFeeRate = true;
+    }else {
+        validateFeeRate =  feeRateObject.checkSelectedFeeRate();
+    }
     if(calcBaseValue !== selected.data.calcBase){
         needToSave = true;
         selected.data.userCalcBase = calcBaseValue;
@@ -3294,16 +3307,14 @@ $('#calcBaseFeeRateConf').click(function () {
     }
     if(validateFeeRate){
         feeRateObject.submitFeeRateFromBill();
-    }
-    else {
+    } else {
         if(calcBaseValue === calcBaseValue){
             $('#calcBaseFeeRate').modal('hide');
         }
     }
-    if(!projectObj.project.calcBase.success){
+    if(!projectObj.project.calcBase.success && cusFeeRate==false){
         return;
-    }
-    else if((!validateFeeRate || selected.data.feeRateID === parseInt(feeRateObject.feeRateSelection.ID)) && needToSave) {
+    } else if((!validateFeeRate || selected.data.feeRateID === parseInt(feeRateObject.feeRateSelection.ID)) && needToSave) {
         projectObj.project.calcProgram.calcAndSave(selected);
         $('#calcBaseFeeRate').modal('hide');
     }