chenshilong 7 年之前
父節點
當前提交
58267480c4

+ 25 - 10
web/building_saas/main/js/views/calc_base_view.js

@@ -114,7 +114,11 @@ let calcBaseView = {
             if(!me.isDef(v)){
                 return;
             }
-            let baseFigure = `{${v}}`;
+            let baseFigure = '';
+            if(me.curType == me.type.bills)
+                baseFigure = `{${v}}`
+            else if (me.curType == me.type.ration)
+                baseFigure = `[${v}]`;
             if(baseFigure.trim() !== ''){
                 //在光标后面插入
                 let insertStr = me.insertStr(baseFigure);
@@ -161,7 +165,7 @@ let calcBaseView = {
         let me = calcBaseView;
         let showDatas;
         me.curType = type;
-        if(type === me.type.bills){//bills
+        if (type === me.type.bills) {
             //显示清单基数分类
             $('#cbClassList').show();
             $('#qd-jsjs .modal-content').css('width', '670px');
@@ -170,7 +174,7 @@ let calcBaseView = {
             //
             let node = projectObj.project.mainTree.selected;
             //输入框显示原本的
-            if(me.isDef(node.data.calcBase)){
+            if (me.isDef(node.data.calcBase)) {
                 me.inputExpr.val(cbParser.toFExpr(node.data.calcBase));
             }
             let baseObj = projectObj.project.calcBase.getBaseByClass(node);
@@ -178,24 +182,28 @@ let calcBaseView = {
             $('#cbClassList li .btn ').removeClass('btn btn-outline-secondary btn-sm active');
             $('#cb_ALL').addClass('btn btn-outline-secondary btn-sm active');
         }
-        else{//ration
+        else if (type == me.type.ration) {
             //去除清单基数分类
             $('#cbClassList').hide();
             $('#qd-jsjs .modal-content').css('width', '');
             $('#cbRowDiv').removeClass('row');
             $('#billsBaseSpread').removeClass('col-9');
 
+            let calcItem = calcProgramManage.getSelectionInfo().calcItem;
+            if (calcItem.dispExprUser) {
+                me.inputExpr.val(calcItem.dispExprUser);
+            }
             let bnArr = Object.keys(rationCalcBases);
             let baseArr = [];
-            for (let bn of bnArr){
-                 baseArr.push({base: bn})
+            for (let bn of bnArr) {
+                baseArr.push({base: bn})
             };
             showDatas = baseArr;
         }
+
         me.buildSheet();
         me.showData(showDatas);
         $('#qd-jsjs').modal('show');
-
     },
 
     getInputExpr: function () {
@@ -262,9 +270,16 @@ let calcBaseView = {
                     $('#qd-jsjs').modal('hide');
                 }
             }
-            //ration
-            else{
-
+            else if (me.curType === me.type.ration) {
+                let calcItem = calcProgramManage.getSelectionInfo().calcItem;
+                if (calcItem.dispExprUser != me.inputExpr.val()){
+                    calcItem.dispExprUser = me.inputExpr.val();
+                    calcItem.dispExpr = me.inputExpr.val();
+                    calcProgramManage.refreshDetailSheet();
+                    $('#qd-jsjs').modal('hide');
+                }
+                else
+                    $('#qd-jsjs').modal('hide');
             }
         });
     },

+ 11 - 7
web/building_saas/main/js/views/calc_program_manage.js

@@ -60,14 +60,14 @@ let calcProgramManage = {
 
         me.mainSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onMainEnterCell);
         me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.CellChanged, me.onDetailCellChanged);
-        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EditEnded, me.onEditEnded);
+        me.detailSpread.getSheet(0).bind(GC.Spread.Sheets.Events.EditEnded, me.onDetailEditEnded);
         let mSheet = me.mainSpread.getSheet(0);
         sheetCommonObj.showData(mSheet, me.mainSetting, me.datas);
 
         let dSheet = me.detailSpread.getSheet(0);
+        dSheet.name('calc_detail');
         feeRateObject.setFeeRateCellCol(dSheet,_.findIndex(me.detailSetting.header,{'dataCode':'feeRate'}));
         dSheet.getRange(-1, _.findIndex(me.detailSetting.header, {'dataCode': 'dispExprUser'}), -1, 1).cellType(calcBaseView.getCalcBaseCellType('ration'));
-        dSheet.name('calc_detail');
         sheetCommonObj.showData(dSheet, me.detailSetting, me.datas[0].calcItems);
     },
     onMainEnterCell: function(sender, args) {
@@ -81,21 +81,25 @@ let calcProgramManage = {
         sheetCommonObj.showData(dSheet, me.detailSetting, dData);
         me.detailSpread.resumePaint();
     },
-    onEditEnded: function(sender, args) {
+    onDetailEditEnded: function(sender, args) {
         $.bootstrapLoading.start();
 
         let me = calcProgramManage;
         let editInfo= me.getSelectionInfo();
-        if(me.detailSetting.header[args.col].dataCode == 'feeRate'){
+        if (me.detailSetting.header[args.col].dataCode == 'feeRate') {
             projectObj.project.FeeRate.updateFeeRateFromCalc(args.editingText,editInfo);
-        }else {
-            if(me.detailSetting.header[args.col].dataCode == 'displayFieldName'){
+        }
+        else {
+            if (me.detailSetting.header[args.col].dataCode == 'displayFieldName') {
                 if (editInfo.calcItem.displayFieldName == args.editingText) {
                     $.bootstrapLoading.end();
                     return;
                 }
                 editInfo.calcItem.fieldName = projectObj.project.calcProgram.compiledFeeTypeMaps[args.editingText];
                 editInfo.calcItem.displayFieldName = args.editingText;    // 这句不入库,仅用于切换后再切换回来时界面正确显示
+            }
+            else if (me.detailSetting.header[args.col].dataCode == 'dispExprUser'){  // 除非直接改单元格,弹窗不会走这里
+                alert(editInfo.calcItem.dispExprUser);
             };
 
             let data = {
@@ -142,7 +146,7 @@ let calcProgramManage = {
     },
     refreshDetailSheet:function () {
         var me=this;
-        if(me.mainSpread&&me.detailSpread){
+        if(me.mainSpread && me.detailSpread){
             var mainSheetIndex = me.mainSpread.getActiveSheet().getActiveRowIndex();
             sheetCommonObj.showData(me.detailSpread.getSheet(0), me.detailSetting,me.datas[mainSheetIndex].calcItems);
         }

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

@@ -675,6 +675,7 @@ var feeRateObject={
             projectObj.project.calcProgram.calcAllNodesAndSave();
             calcProgramManage.refreshDetailSheet();
             $("#fee_rate_tree").modal('hide');
+            $.bootstrapLoading.end();
         });
         console.log(calInfo);
     },