Pārlūkot izejas kodu

bugs,子目换算窗口

zhangweicheng 7 gadi atpakaļ
vecāks
revīzija
77bf942157

+ 2 - 1
modules/all_models/ration.js

@@ -16,7 +16,8 @@ var rationAssItemSchema = mongoose.Schema({
     decimal: Number,
     carryBit: String,
     minValue: String,
-    maxValue: String
+    maxValue: String,
+    isAdjust:Number //0不调整,1调整
 }, { _id: false });
 
 // 定额、量价、工料机定额 合并存储

+ 1 - 0
modules/main/facade/ration_facade.js

@@ -602,6 +602,7 @@ function createRationAss(std) {
         for(let i=0;i<std.rationAssList.length;i++){
             let ass = std.rationAssList[i];
             ass._doc.actualValue = ass.stdValue;
+            ass._doc.isAdjust = 0;
             if(_.isString(ass._doc.assistCode)) ass._doc.assistCode = ass._doc.assistCode.replace("\n","");
             rationAssList.push(ass);
         }

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

@@ -284,6 +284,7 @@ function getContent(coes) {
 }
 
 function calculateTimes(ass){
+    if(ass.isAdjust == 0) return 0;//打勾辅助定额才计算
     let times =(ass.actualValue-ass.stdValue)/ass.stepValue;
     let r = false;
     if(times<0){

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

@@ -54,7 +54,7 @@ legend.legend{
 }
 
 .filterType ul{
-    width: 110px;
+    width: 98px;
 }
 .a_color{
     color: #007bff;

+ 12 - 9
web/building_saas/main/js/models/ration_ass.js

@@ -98,33 +98,36 @@ var ration_ass = {
             updateData.push(newobj);
             return updateData;
         };
-        ration_ass.prototype.updateActualValue=function(assList,index,newVal){
+        ration_ass.prototype.updateActualValue=function(assList,index,newVal,isAdjust = 1){//修改实际值默认打勾
             let me = this;
             var selected = projectObj.project.mainTree.selected;
-            assList[index].actualValue=newVal;
+            let newList = _.cloneDeep(assList);
+            if(gljUtil.isDef(newVal))newList[index].actualValue=newVal;
+            newList[index].isAdjust = isAdjust;
             var rationname = selected.data.name;
             if(selected.data.hasOwnProperty('caption')){
-                 rationname = selected.data.caption.replace('%s',newVal);
+                if(isAdjust == 1) newVal =  newList[index].stdValue;//如果是取消打勾,名字恢复成实际值
+                rationname =  selected.data.caption.replace('%s',newVal);
             }
             var query = {
-                'ration':selected.data,
-                'editAss':assList[index],
+                'ration':{projectID:selected.data.projectID,ID:selected.data.ID},
+                'editAss':newList[index],
                 'editIndex':index
             };
             var doc ={
-                rationAssList:assList,
+                rationAssList:newList,
                 name:rationname
             };
 
             var updateData = this.getUpdateData('ut_update',query,doc);
             $.bootstrapLoading.start();
             CommonAjax.post("/ration/updateRationAss",updateData[0],function (result) {
+                //更新缓存
+                selected.data.rationAssList = newList;
                 $.bootstrapLoading.end();
                 zmhs_obj.refreshAfterUpdate(result);
-                zmhs_obj.showAssData();
+                zmhs_obj.showDatas();
             })
-           // project.pushNow('updateRationAss',[this.getSourceType()],updateData);
-
         };
         return new ration_ass(project);
     }

+ 27 - 9
web/building_saas/main/js/views/zmhs_view.js

@@ -19,11 +19,13 @@ let zmhs_obj = {
         },
         getText:{
             forContent:function (item) {//所选人材机,内容和条件互换位置
-               if(gljUtil.isDef(item.option_codes)&&item.option_codes!=""){
-                   return item.name;
-               }else {
-                   return item.content;
-               }
+                if(gljUtil.isDef(item.option_codes)&&item.option_codes!=""){
+                    return item.name;
+                }else if(item.assistCode &&item.assistCode!="" ){//是辅助定额行,显示实际值
+                    return item.actualValue;
+                } else {
+                    return item.content;
+                }
             },
             forName:function (item) {
                 if(gljUtil.isDef(item.select_code)&&item.select_code!=""){
@@ -55,6 +57,7 @@ let zmhs_obj = {
     assSpread:null,
     assSheet:null,
     assSheetData: [],
+    assFirstIndex:0,
     assSetting: {
         header: [
             {headerName: "调整名称", headerWidth: 100, dataCode: "name", dataType: "String"},
@@ -78,7 +81,7 @@ let zmhs_obj = {
             this.coeSheet = this.coeSpread.getSheet(0);
             sheetCommonObj.initSheet(this.coeSheet, this.coeSetting, 30);
             this.coeSheet.name('ration_coe');
-            this.coeSheet.bind(GC.Spread.Sheets.Events.CellClick, this.onCoeCellClick);
+            //this.coeSheet.bind(GC.Spread.Sheets.Events.CellClick, this.onCoeCellClick);  配合自定义系数使用,现在自定义系数不在这显示了
             this.coeSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, this.onButtonClick);
             this.coeSheet.bind(GC.Spread.Sheets.Events.ValueChanged,this.onCoeValueChange);
             this.coeSheet.bind(GC.Spread.Sheets.Events.SelectionChanged, function (e,args) {
@@ -120,6 +123,8 @@ let zmhs_obj = {
             let ration = selected.data;
             coeList = ration_coe.getCoeByRationID(ration.ID);
             _.remove(coeList,{"coeID":-1})//2018-12-24 新需求,把自定义乘系数分离出来,这里排除自定义乘系数行
+            this.assFirstIndex = coeList.length;//辅助定额的起始下标
+            coeList = coeList.concat(this.getAssList(node))  //2019-01-23 新需求,将辅助定额合并到一个表显示
         }
         this.coeSheet.setRowCount(0);
         sheetCommonObj.showData(this.coeSheet, this.coeSetting,coeList);
@@ -130,6 +135,8 @@ let zmhs_obj = {
                 if(gljUtil.isDef(coeList[i].option_codes)&&coeList[i].option_codes!=""){
                     this.getComboBoxForCodes(coeList[i],i);//设置可选类型的下拉框
                     //  sheet.setValue(row, col, val, ch);
+                } else if(coeList[i].assistCode && coeList[i].assistCode !=''){//是辅助定额列
+                    this.coeSheet.getCell(i, 2, GC.Spread.Sheets.SheetArea.viewport).locked(false);
                 } else if(coeList[i].coeID == -1){ //自定义系数列
                     this.coeSheet.getCell(i, 1, GC.Spread.Sheets.SheetArea.viewport).locked(false);
                     this.coeSheet.setCellType(i, 1, sheetCommonObj.getCustomerCoeCellType(this.generateHtmlString,this.bindCusEditorValue,this.updateCusCoeAfterEditor), GC.Spread.Sheets.SheetArea.viewport);
@@ -189,6 +196,12 @@ let zmhs_obj = {
             disableSpread(this.assSpread);
         }
     },
+    getAssList:function (node) {
+        let selected = node?node:projectObj.project.mainTree.selected;
+        let assList = selected&&selected.data.rationAssList ? selected.data.rationAssList : [];
+        this.assSheetData = assList;
+        return assList;
+    },
     refreshAfterUpdate:function(result,reload){
         let ration_glj = projectObj.project.ration_glj;
         let calcInstall = false;//是否记录安装增加费
@@ -374,7 +387,7 @@ let zmhs_obj = {
             args.sheet.getCell(args.row, args.col).value(newval);
         }
         let recode = me.coeSheetData[args.row];
-        projectObj.project.ration_coe.adjustCoeClick(recode, newval);
+        recode.assistCode && recode.assistCode != "" ? me.adjustAssClick(args,newval) : projectObj.project.ration_coe.adjustCoeClick(recode, newval);
     },
     generateHtmlString: function (context,cellRect,$editor) {//这里要改成动态的了,根据自定义系数内容生成对应的输入框
         let me = zmhs_obj;
@@ -412,6 +425,8 @@ let zmhs_obj = {
         let recode = zmhs_obj.coeSheetData[args.row];
         if(gljUtil.isDef(recode.option_codes)&&recode.option_codes!=""&& fieldID == 'name'){//说明是选择了下拉框
             projectObj.project.ration_coe.adjustCoeClick(recode, 1,{'select_code':args.newValue});
+        }else if(recode.assistCode &&recode.assistCode!=""){//编辑的是辅助定额
+            zmhs_obj.updateRationAss({editingText:args.newValue,row:args.row - zmhs_obj.assFirstIndex})//转换一下
         }
     },
     onCusValueChange:function (e,args) {
@@ -484,6 +499,10 @@ let zmhs_obj = {
             me.updateRationAss(args);
         }
     },
+    adjustAssClick:function (args,newval) {
+        let me = zmhs_obj, row = args.row - me.assFirstIndex;
+        projectObj.project.ration_ass.updateActualValue(me.assSheetData, row,null,newval);
+    },
     updateRationAss: function (args) {
         var me = zmhs_obj;
         var newval;
@@ -500,8 +519,7 @@ let zmhs_obj = {
             newval = scMathUtil.roundTo(newval, -2);
             projectObj.project.ration_ass.updateActualValue(me.assSheetData, args.row, newval);
         } else {
-            newval = recode.actualValue;
-            me.assSheet.getCell(args.row, args.col).value(newval);
+            me.showDatas();
         }
     },
     checkingActualValue(record, newval){