Przeglądaj źródła

费率页面更新

zhangweicheng 7 lat temu
rodzic
commit
92417b7ad1

+ 5 - 25
web/building_saas/main/js/views/fee_rate_view.js

@@ -543,30 +543,7 @@ var feeRateObject={
             subRateObject.initSubRateSpread(me.mainFeeRateData[row]);
         }
     },
-    updateBySelect:function (rate,selectMap,mapID) {
-        console.log(rate);
-        let selected = this.mainFeeRateSheet.getSelections()[0];
-        projectObj.project.FeeRate.backupDatas();
-        let item = this.mainFeeRateData[selected.row];
-        item.rate = rate;
-        for(let key in selectMap){
-            let recode =  item.subFeeRate.recodes[key];
-            let optionList = recode.optionList;
-            for(let o of optionList){
-                if(o.value==selectMap[key]){
-                    o.selected=true;
-                }else {
-                    o.selected = false;
-                }
-            }
-        }
-        /*if($('#cascadeSet').prop('checked')){
-            this.cascadeSetRates(item,selected.row,mapID,selectMap);
-        }else {
-            projectObj.project.FeeRate.batchUpdateFeeRate([{rateIndex:selected.row,rate:item}],feeRateObject.activateFeeRate);
-        }*/
-    },
-    setRateFromSub:function (subRate,value) {
+    setRateFromSub:function (subRate,value,subList) {
          let me = feeRateObject,feeRate =  projectObj.project.FeeRate;
          let rates = feeRate.getActivateFeeRate().rates;
          let updateDatas = [];
@@ -574,7 +551,7 @@ var feeRateObject={
          for(let r of rates){
              if(gljUtil.isDef(r.subFeeRate)){
                  let valueArray=[];//用来存参数的值
-                 let temP =null;//这个用来存储需要内插法记算的时候
+                 let temP =null;//这个用来存储需要内插法记算的时候,同时,树节点的子节点改变也计在这里, 这样,改变temP的值,会体现在保存subRecode
                  let match = false;
                  let temR = _.cloneDeep(r);//临时存储
                  for(let p of temR.subFeeRate.recodes){
@@ -599,6 +576,9 @@ var feeRateObject={
                      if(match==true && setValue ==false) valueArray.push(value);//如果匹配上了,但是setValue为false,说明没有满足和选项,要用内插法或超出倍数算值
                  }
                  if(match == true){//说明要改rate的值,先从valueMap中去查
+                     if(subList && temP.subList && temP.subList.length > 0){
+                         temP.subList = subList;// 设置树节点的子节点的值
+                     }
                      let doc = {"subFeeRate":temR.subFeeRate};
                      let valueKey = valueArray.join('-');
                      let valueMaps = r.subFeeRate.valueMaps;

+ 20 - 36
web/building_saas/main/js/views/sub_fee_rate_views.js

@@ -120,29 +120,10 @@ var subRateObject={
             $('#'+item.ID).val(selectvalue);
         })
     },
-    subRateChange:function(select){
-        let me = subRateObject;
-        let selectValueList=[];
-        let selectMap={};
-        if(me.datas&&me.datas.length>0){
-            $.bootstrapLoading.start();
-            _.forEach(me.datas,function (d,key) {
-                let selectValue = $('#'+d.ID).val();
-                selectValueList.push(selectValue);
-                selectMap[key]=selectValue;
-            })
-            let mapID =selectValueList.join('-');
-            let rate = me.valueMap[mapID];
-            feeRateObject.updateBySelect(rate,selectMap,mapID);
-        }
-    },
     onSubRateValueChange:function (e,info) {
-        let me = subRateObject, selectValueList=[],selectMap={};
+        let me = subRateObject, subList=null;
         let value = info.newValue;
         let subRate = me.datas[info.row];
-        if(subRate.isSub == true){//是树节点的子节点,计算父节点的值
-
-        }
         if(subRate.editable == true || subRate.isSub == true){//是可编辑的,要检查数据类型
             let checkResult = scMathUtil.isNumOrFormula(value);
             if(checkResult!=null && !isNaN(checkResult)){
@@ -154,23 +135,26 @@ var subRateObject={
             }
         }
 
-        feeRateObject.setRateFromSub(subRate,value)
-
-
-      /*  if(me.datas&&me.datas.length>0){
-            _.forEach(me.datas,function (d,key) {
-                if(info.row == key){
-                    selectMap[key]=info.newValue;
-                }else {
-                    let o = _.find(d.optionList,{'selected':true});
-                    selectMap[key]=o.value;
+        if(subRate.isSub == true){//是树节点的子节点,计算父节点的值
+            let parentRate = _.find(me.datas,{"ID":subRate.ParentID});//找到父节点
+            if(parentRate){
+                let sum = 0;
+                subList = _.cloneDeep(parentRate.subList);
+                for(let s of subList){//按比例计算
+                    if(s.ID == subRate.ID) s.value = value;//当前项要用新输入的值
+                    let v_a = scMathUtil.roundForObj(s.value * s.amount,getDecimal("process"))
+                    sum = scMathUtil.roundForObj(sum + v_a,getDecimal("feeRate"));
                 }
-                selectValueList.push(selectMap[key]);
-            })
-            let mapID =selectValueList.join('-');
-            let rate = me.valueMap[mapID];
-            feeRateObject.updateBySelect(rate,selectMap,mapID);
-        }*/
+                value = sum;
+                subRate = parentRate;//把subRate 指向parentRate
+            }
+        } else if(subRate.subList && subRate.subList.length > 0){//输入树节结的父结点,子结点都等于父节点的值
+            subList = _.cloneDeep(subRate.subList);
+            for(let t of subList){
+                t.value = value
+            }
+        }
+        feeRateObject.setRateFromSub(subRate,value,subList);
     },
 
     destorySpreadView:function () {