Browse Source

bug fixed

zhangweicheng 6 years ago
parent
commit
1118be814c

+ 3 - 2
web/building_saas/main/js/controllers/project_controller.js

@@ -11,7 +11,8 @@ ProjectController = {
             TREE_SHEET_HELPER.refreshTreeNodeData(sc.setting, sc.sheet, [newNode], false);
             sc.setTreeSelected(newNode);
             sc.sheet.setSelection(newNode.serialNo(), sels[0].col, 1, 1);
-            sc.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
+            //不显示到中间
+            //sc.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
             cbTools.refreshFormulaNodes();
         });
     },
@@ -44,7 +45,7 @@ ProjectController = {
         TREE_SHEET_HELPER.massOperationSheet(sc.sheet, function () {
             sc.sheet.addRows(newNode.serialNo(), 1);
             TREE_SHEET_HELPER.refreshTreeNodeData(sc.setting, sc.sheet, [newNode], false);
-            sc.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
+           // sc.sheet.showRow(newNode.serialNo(), GC.Spread.Sheets.VerticalPosition.center);
             cbTools.refreshFormulaNodes();
         });
     },

+ 5 - 2
web/building_saas/main/js/models/ration.js

@@ -618,7 +618,7 @@ var Ration = {
                         //如果添加规则中,添加内容为定额子目,则更新相关清单
                         updateBillsOprRation();
                         if(callback){
-                            callback();
+                            callback(newNode);
                         }
                         $.bootstrapLoading.end();
                     });
@@ -627,7 +627,7 @@ var Ration = {
             }
             else return null;
         };
-        ration.prototype.addNewRationFast = function (rationType) {
+        ration.prototype.addNewRationFast = function (rationType,callback) {
             let me = this;
             let project = projectObj.project, sheetController = projectObj.mainController;
             let engineering = projectInfoObj.projectInfo.property.engineering;
@@ -683,6 +683,9 @@ var Ration = {
                     newNode.data = newSource;
                 })
                 ProjectController.syncDisplayNewNode(sheetController, newNode);
+                if(callback){
+                    callback(newNode);
+                }
                 $.bootstrapLoading.end();
                 return newNode;
             }

+ 63 - 67
web/building_saas/main/js/models/ration_glj.js

@@ -1,17 +1,17 @@
 /**
  * Created by Mai on 2017/4/1.
  */
-var ration_glj = {
+let ration_glj = {
     createNew: function (project) {
         // 用户定义private方法
-        var tools = {};
+        let tools = {};
 
         // 所有通过this访问的属性,都不应在此单元外部进行写入操作
-        var ration_glj = function (proj) {
+        let ration_glj = function (proj) {
             this.gljTree = cacheTree.createNew(this);
             // this.project = proj;
             this.datas = [];
-            var sourceType = ModuleNames.ration_glj;
+            let sourceType = ModuleNames.ration_glj;
             this.getSourceType = function () {
                 return sourceType;
             }
@@ -65,9 +65,8 @@ var ration_glj = {
             let result = [];
             let clone = function (obj) {
                 if (obj === null) return null;
-
-                var o = Object.prototype.toString.apply(obj) === "[object Array]" ? [] : {};
-                for (var i in obj) {
+                let o = Object.prototype.toString.apply(obj) === "[object Array]" ? [] : {};
+                for (let i in obj) {
                     o[i] = (obj[i] instanceof Date) ? new Date(obj[i].getTime()) : (typeof obj[i] === "object" ? clone(obj[i]) : obj[i]);
                 }
                 return o;
@@ -132,7 +131,7 @@ var ration_glj = {
 
         // 提交数据后返回数据处理
         ration_glj.prototype.doAfterUpdate = function (err, data) {
-            var me = this;
+            let me = this;
             if (!err) {
                 if (data.updateTpye == 'ut_update') {
                     me.refreshAfterUpdate(data);
@@ -230,8 +229,8 @@ var ration_glj = {
         };
 
         ration_glj.prototype.refreshAfterUpdate = function (data) {
-            var me = this;
-            var rationID=null;
+            let me = this;
+            let rationID=null;
             if (data.quantityRefresh) {
                 data.glj_result.forEach(function (item) {
                    rationID = me.refreshEachItme(item.doc, item.query);
@@ -243,8 +242,8 @@ var ration_glj = {
             this.reCalcWhenGLJChange({rationID:rationID});
         };
         ration_glj.prototype.refreshEachItme = function (doc, query) {
-            var glj_list = projectObj.project.ration_glj.datas;
-            var glj_index = _.findIndex(glj_list, (glj) => {
+            let glj_list = projectObj.project.ration_glj.datas;
+            let glj_index = _.findIndex(glj_list, (glj) => {
                 return glj.ID == query.ID;
             })
             /*var sheet_index= _.findIndex(gljOprObj.sheetData,(sd)=>{
@@ -256,15 +255,15 @@ var ration_glj = {
             return glj_list[glj_index].rationID;
         };
         ration_glj.prototype.refreshAfterDelete = function (data) {
-            var me = projectObj.project.ration_glj;
-            var glj_list = me.datas;
-            var oldData = _.remove(glj_list, data.query);
+            let me = projectObj.project.ration_glj;
+            let glj_list = me.datas;
+            let oldData = _.remove(glj_list, data.query);
             _.remove(gljOprObj.sheetData, data.query);
             gljOprObj.showRationGLJSheetData();
             projectObj.project.projectGLJ.loadData();
-            var rationNode = null;
-            var next = null;
-            var selected = projectObj.project.mainTree.selected;
+            let rationNode = null;
+            let next = null;
+            let selected = projectObj.project.mainTree.selected;
             if (selected.sourceType == ModuleNames.ration) { //如果选中的是定额,说明是右键删除工料机操作,如果选中的是定额工料机,则说明是在造价书主界面中点击了删除按钮
                 rationNode = selected;
             } else if (selected.sourceType == ModuleNames.ration_glj) {
@@ -311,8 +310,8 @@ var ration_glj = {
             this.project.endUpdate();
         };
         ration_glj.prototype.addRationGLJ = function (newRation, data) {
-            var souceTypeList = [];
-            var criteriaDataList = [];
+            let souceTypeList = [];
+            let criteriaDataList = [];
             if (data.hasOwnProperty('rationGljList') && data.rationGljList.length > 0) {
                 let criteria = {};
                 criteria.ration_glj_list = [];
@@ -322,8 +321,8 @@ var ration_glj = {
                     newGLJ.projectID = parseInt(newRation.projectID);
                     newGLJ.GLJID = temdata.gljId;
                     newGLJ.rationID = newRation.ID;
-                    newGLJ.billsItemID = newRation.billsItemID,
-                        newGLJ.rationItemQuantity = temdata.consumeAmt;
+                    newGLJ.billsItemID = newRation.billsItemID;
+                    newGLJ.rationItemQuantity = temdata.consumeAmt;
                     newGLJ.quantity = temdata.consumeAmt;
                     newGLJ.glj_repository_id = data.rationRepId;
                     criteria.ration_glj_list.push(newGLJ);
@@ -332,8 +331,8 @@ var ration_glj = {
                 souceTypeList.push(this.getSourceType());
                 criteriaDataList.push(criteria);
             }
-            var ration_coe = projectObj.project.ration_coe;
-            var rationCoeData = ration_coe.getRationCoedata(newRation, data);
+            let ration_coe = projectObj.project.ration_coe;
+            let rationCoeData = ration_coe.getRationCoedata(newRation, data);
             souceTypeList.push(ration_coe.getSourceType());
             criteriaDataList.push(rationCoeData);
             project.pushNow('addRationGLJAndRationCoe', souceTypeList, criteriaDataList);
@@ -341,7 +340,7 @@ var ration_glj = {
         };
 
         ration_glj.prototype.getDeleteDataByRation = function (rationData) {
-            var updateData = [];
+            let updateData = [];
             updateData.push({
                 'deleteType': 'RATION',
                 'updateType': 'ut_delete',
@@ -350,10 +349,10 @@ var ration_glj = {
             return updateData;
         };
         ration_glj.prototype.getDeleteDataByBills = function (datas) {
-            var updateData = [];
+            let updateData = [];
             datas.forEach(function (deleteData) {
                 if (deleteData.type == 'delete') {
-                    var billData = deleteData.data;
+                    let billData = deleteData.data;
                     updateData.push({
                         'deleteType': 'BILL',
                         'updateType': 'ut_delete',
@@ -364,22 +363,22 @@ var ration_glj = {
             return updateData;
         };
         ration_glj.prototype.deleteByRation = function (ration) {
-            var glj_list = projectObj.project.ration_glj.datas;
+            let glj_list = projectObj.project.ration_glj.datas;
             _.remove(glj_list,{'rationID':ration.ID});
         };
         ration_glj.prototype.deleteByBills = function (deleteData) {
-            var rationList = projectObj.project.Ration.datas;
-            var deleteRationList = [];
-            for (var i = 0; i < deleteData.length; i++) {
+            let rationList = projectObj.project.Ration.datas;
+            let deleteRationList = [];
+            for (let i = 0; i < deleteData.length; i++) {
                 if (deleteData[i].type == 'delete') {
-                    var billID = deleteData[i].data.ID;
-                    var raList = _.filter(rationList, (ration) => {
+                    let billID = deleteData[i].data.ID;
+                    let raList = _.filter(rationList, (ration) => {
                         return ration.billsItemID == billID;
                     });
                     deleteRationList = deleteRationList.concat(raList);
                 }
             }
-            for (var i = 0; i < deleteRationList.length; i++) {
+            for (let i = 0; i < deleteRationList.length; i++) {
                 this.deleteByRation(deleteRationList[i]);
                 projectObj.project.ration_coe.deleteByRation(deleteRationList[i]);
                 projectObj.project.quantity_detail.deleteByRation(deleteRationList[i]);
@@ -389,7 +388,7 @@ var ration_glj = {
         }
 
         ration_glj.prototype.updataOrdelete = function (row) {
-            var updateData = null;
+            let updateData = null;
             if (row.rationItemQuantity == 0) {
                 updateData = this.getUpdateData('ut_delete', {
                     'ID': row.ID,
@@ -402,8 +401,8 @@ var ration_glj = {
             }
         };
         ration_glj.prototype.getUpdateData = function (type, query, doc, callfunction) {
-            var updateData = [];
-            var newobj = {
+            let updateData = [];
+            let newobj = {
                 'updateType': type,
                 'query': query,
             }
@@ -440,8 +439,8 @@ var ration_glj = {
                 if (updateField == 'customQuantity') {
                     me.refreshAfterQuantityUpdate(data, node);
                 } else {
-                    var doc = data.doc;
-                    for (var key in doc) {
+                    let doc = data.doc;
+                    for (let key in doc) {
                         recode[key] = doc[key];
                     }
                     me.refreshRationAfterEdit(data,recode.rationID, node);//更新名称和定额调整状态
@@ -468,11 +467,8 @@ var ration_glj = {
                 $.bootstrapLoading.end();
             });
         };
-
-
-
         ration_glj.prototype.refreshAfterQuantityUpdate = function (data, node) {
-            var me = this;
+            let me = this;
             data.glj_result.forEach(function (item) {
                 me.refreshEachItme(item.doc, item.query);
             });
@@ -523,7 +519,7 @@ var ration_glj = {
             children = project.Ration.getBillsSortRation(billsItemID);
             serialNo == 0 ? serialNo = children.length : "";
             for (let con_key of GLJSelection) {
-                var glj = _.find(allGLJ, function (item) {
+                let glj = _.find(allGLJ, function (item) {
                     let i_key = gljOprObj.getIndex(item, gljLibKeyArray);
                     return i_key == con_key;
                 });
@@ -595,15 +591,15 @@ var ration_glj = {
 
         };
         ration_glj.prototype.addGLJByLib = function (GLJSelection, ration, callback) {
-            var gljList = [];
-            var allGLJ = gljOprObj.AllRecode;
+            let gljList = [];
+            let allGLJ = gljOprObj.AllRecode;
             GLJSelection.sort();
             _.forEach(GLJSelection, function (g) {
-                var glj = _.find(allGLJ, function (item) {
-                    var i_key = gljOprObj.getIndex(item, gljLibKeyArray);
+                let glj = _.find(allGLJ, function (item) {
+                    let i_key = gljOprObj.getIndex(item, gljLibKeyArray);
                     return i_key == g;
                 });
-                var ration_glj = {
+                let ration_glj = {
                     projectID: ration.projectID,
                     GLJID: glj.ID,
                     rationID: ration.ID,
@@ -664,16 +660,16 @@ var ration_glj = {
             CommonAjax.post("/rationGlj/replaceGLJ", recode, function (result) {
                 if (result) {
                     //result.adjustState;
-                    var glj_list = me.datas;
-                    var data = result.data;
-                    var list_index = _.findIndex(glj_list, {'ID': data.ID});
+                    let glj_list = me.datas;
+                    let data = result.data;
+                    let list_index = _.findIndex(glj_list, {'ID': data.ID});
                     let rationNode = projectObj.project.mainTree.findNode(data.rationID);
-                    var nodes =  [rationNode];
+                    let nodes =  [rationNode];
                     glj_list[list_index] = data;
                     project.projectGLJ.loadData(function () {//加载完项目工料机再计算
                         gljOprObj.refreshView();
                         if (project.ration_glj.needShowToTree(data)) {//当替换的是主材或设备时,刷新对应的树节点
-                            var node = project.ration_glj.findGLJNodeByID(data.ID);
+                            let node = project.ration_glj.findGLJNodeByID(data.ID);
                             if (node) {
                                 project.ration_glj.transferToNodeData(data);
                                 node.source = data;
@@ -696,9 +692,9 @@ var ration_glj = {
         };
 
         ration_glj.prototype.replaceGLJ = function (selectCode, oldData, callback) {
-            var allGLJ = gljOprObj.AllRecode;
-            var glj = _.find(allGLJ, function (item) {
-                var i_key = gljOprObj.getIndex(item, gljLibKeyArray);
+            let allGLJ = gljOprObj.AllRecode;
+            let glj = _.find(allGLJ, function (item) {
+                let i_key = gljOprObj.getIndex(item, gljLibKeyArray);
                 return i_key == selectCode;
             });
             if (selectCode == gljOprObj.getIndex(oldData, gljKeyArray)) {
@@ -809,7 +805,7 @@ var ration_glj = {
         };
 
         ration_glj.prototype.getMainAndEquGLJ = function (rationID) {
-            var gljList = _.filter(this.datas, function (n) {
+            let gljList = _.filter(this.datas, function (n) {
                 return n.rationID == rationID && (n.type == gljType.MAIN_MATERIAL || n.type == gljType.EQUIPMENT)
             });
             gljList = sortRationGLJ(gljList);
@@ -821,19 +817,19 @@ var ration_glj = {
         };
         ration_glj.prototype.combineRationAndGLJ = function (ration) {
             if (ration) {
-                var projectGLJData = projectObj.project.projectGLJ.datas;
-                var projectGljs = projectGLJData.gljList;
-                var mixRatioMap = projectGLJData.mixRatioMap;
-                var glj = _.find(projectGljs, {'id': ration.projectGLJID});
+                let projectGLJData = projectObj.project.projectGLJ.datas;
+                let projectGljs = projectGLJData.gljList;
+                let mixRatioMap = projectGLJData.mixRatioMap;
+                let glj = _.find(projectGljs, {'id': ration.projectGLJID});
                 if (glj) {
                     if(projectObj.project.projectGLJ.isEstimateType(glj.type)){
                         ration.isEstimate = glj.is_evaluate;
                     }
                     ration = gljOprObj.setGLJPrice(ration,glj);
                     ration.isAdd = glj.unit_price.is_add;
-                    var connect_index = gljOprObj.getIndex(glj, gljKeyArray);
+                    let connect_index = gljOprObj.getIndex(glj, gljKeyArray);
                     if (mixRatioMap.hasOwnProperty(connect_index)) {
-                        var mixRatios = gljOprObj.getMixRationShowDatas(mixRatioMap[connect_index], projectGljs);
+                        let mixRatios = gljOprObj.getMixRationShowDatas(mixRatioMap[connect_index], projectGljs);
                         ration.subList = mixRatios;
                     }
                 }
@@ -843,8 +839,8 @@ var ration_glj = {
         ration_glj.prototype.updateFromMainSpread = function (value, node, fieldName) {
             if (node.data[fieldName] !== value) {
                 if (fieldName == "marketUnitFee") {
-                    var decimal = getDecimal("glj.unitPrice");
-                    var newval = number_util.checkNumberValue(value, decimal);
+                    let decimal = getDecimal("glj.unitPrice");
+                    let newval = number_util.checkNumberValue(value, decimal);
                     if (newval) {
                         fieldName = "marketPrice";
                         projectObj.project.projectGLJ.updatePriceFromRG(node.data, fieldName, newval);
@@ -856,7 +852,7 @@ var ration_glj = {
                         if(value==null){
                             value="";
                         }else {
-                            var decimal = getDecimal("glj.quantity");
+                            let decimal = getDecimal("glj.quantity");
                             value = number_util.checkNumberValue(value, decimal);
                             fieldName="customQuantity";//填入自定义消耗
                         }

+ 14 - 39
web/building_saas/main/js/views/glj_view.js

@@ -287,7 +287,6 @@ var gljOprObj = {
         if (args.row < detailList.length) {
             projectObj.project.quantity_detail.updateQuantityDetail(args, me.detailSetting.header[args.col].dataCode, detailList[args.row], selected,callback);
         }
-
     },
     onEditGLJSheet: function (args) {
         var me = gljOprObj;
@@ -377,7 +376,8 @@ var gljOprObj = {
         }
     },
     onCellDoubleClick:function (sender, args) {
-        var me = gljOprObj;
+        // 含组成物的材料市场价改为只读,改为双击无反应不提示
+      /*  var me = gljOprObj;
         var header = me.setting.header;
         if (args.row >= me.sheetData.length) {
             return;
@@ -394,7 +394,7 @@ var gljOprObj = {
                     alert("当前工料机的定额价由组成物计算得出,不可直接修改。");
                 }
             }
-        }
+        }*/
     },
     onClipboardChanged: function (sender, info) {
         let cDatas = sheetCommonObj.getTableData(info.sheet, null);
@@ -487,7 +487,6 @@ var gljOprObj = {
 
             }
         }
-
     },
     showDataIfRationSelect: function (node,selectedNodeId) {
         var isShow = false;
@@ -507,28 +506,19 @@ var gljOprObj = {
             }
             if (node.sourceType == "ration") {
                 if(node.data.type==rationType.gljRation){
-                    if($('#linkGLJ').hasClass('active')){
-                        this.showMixRatio(node);
-                    }
+                    if($('#linkGLJ').hasClass('active'))  this.showMixRatio(node);
                 }else {
-                    if($('#linkGLJ').hasClass('active')){
-                        this.showRationGLJData(node);
-                    }
-                    if($('#linkAZZJF').hasClass('active')){
-                        installationFeeObj.showRationInstallationData(node);
-                    }
+                    if($('#linkGLJ').hasClass('active')) this.showRationGLJData(node);
+                    if($('#linkAZZJF').hasClass('active')) installationFeeObj.showRationInstallationData(node);
                 }
                 isShow = true;
             }
             if(node.sourceType == ModuleNames.ration_glj){
-                if($('#linkGLJ').hasClass('active')) {
-                    this.showMixRatio(node);
-                }
+                if($('#linkGLJ').hasClass('active')) this.showMixRatio(node);
                 isShow = true;
             }
-            if($('#linkGCLMX').hasClass('active')){
-                this.showQuantityDetailData(node);
-            }
+            if($('#linkGCLMX').hasClass('active')) this.showQuantityDetailData(node);
+
         } else {
             this.selectedNodeId = null;
         }
@@ -613,12 +603,12 @@ var gljOprObj = {
                 let specs = priceMap[connectKey].specs;
                 if(code){
                     let displayText = code +" "+name +" "+specs;
-                   let preCode = code.split("-")[0];
-                   if(codeMap[preCode]) {
-                       codeMap[preCode].push({text:displayText,value:connectKey});
-                   }else {
+                    let preCode = code.split("-")[0];
+                    if(codeMap[preCode]) {
+                        codeMap[preCode].push({text:displayText,value:connectKey});
+                    }else {
                        codeMap[preCode]=[{text:displayText ,value:connectKey}];
-                   }
+                    }
                 }
             }
         }
@@ -938,7 +928,6 @@ var gljOprObj = {
             if (value != null) {
                 projectObj.project.projectGLJ.updatePropertyFromMainSpread(node, fieldName, value,editingText);
                 return;
-                //update
             }
         }
         if (newval && updatePrice == true) {
@@ -1049,7 +1038,6 @@ var gljOprObj = {
         me.gljLibSheetData = _.filter(me.gljLibSheetData, function (data) {
             return filterTypes.includes(data.gljType);
         });
-        //me.gljLibSheetData = _.filter(me.gljLibSheetData, {'gljType': selected.type});
     },
     getComboData: function (gljDistType) {
         let me = this;
@@ -1153,7 +1141,6 @@ var gljOprObj = {
         } else {
             $("#glj_tree_div").modal('hide');
         }
-
     },
     doReplaceGLJ: function () {
         var me = this;
@@ -1253,9 +1240,7 @@ var gljOprObj = {
     refreshView: function () {
         let node = projectObj.project.mainTree.selected;
         this.showDataIfRationSelect(node,"111111");
-        //this.showRationGLJData();
     },
-    //
     refreshTreeNode: function (obj) {
         if (!obj) {
             return;
@@ -1294,7 +1279,6 @@ var gljOprObj = {
 
         function TreeNodeCellType() {
         }
-
         function drowRect(ctx, x, y, w, h) {
             ctx.save();
             ctx.strokeStyle = "gray";
@@ -1312,7 +1296,6 @@ var gljOprObj = {
             ctx.stroke();
             ctx.restore();
         }
-
         function drowSymbol(ctx, x, y, w, h, collapsed) {
             ctx.save();
             ctx.strokeStyle = "#000000";
@@ -1328,7 +1311,6 @@ var gljOprObj = {
             ctx.stroke();
             ctx.restore();
         }
-
         function drowSubItem(ctx, x, y, w, h, offset, nextItem) {
             offset += 6;
             ctx.save();
@@ -1349,7 +1331,6 @@ var gljOprObj = {
         }
 
         TreeNodeCellType.prototype =  comboboxOptions?sheetCommonObj.getDynamicCombo():new ns.CellTypes.Text();
-
         TreeNodeCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
             if (style.backColor) {//先画背景色
                 ctx.save();
@@ -1391,7 +1372,6 @@ var gljOprObj = {
             }else {
                 return GC.Spread.Sheets.CellTypes.ComboBox.prototype.getHitInfo.apply(this, arguments);
             }
-
         };
         TreeNodeCellType.prototype.processMouseDown = function (hitinfo) {
             var recode = data[hitinfo.row];
@@ -1480,7 +1460,6 @@ $(function () {
                 gljClass = item.gljClass;
             }
         }
-
         //替换,焦点定位至当前选中人材机
         if($('#actionType').val() =='m_replace' || $('#actionType').val() == 'replace'){
             gljOprObj.locateZTree(gljClass);
@@ -1552,7 +1531,6 @@ $(function () {
             /*1 检查是否有组成物
              * 2 如果有,则检查组成物中是否有新增的记录,如果有,查看是否已经保存了,没有的话,要先添加组成物到补充工料机库
              * 3 保存
-
              * */
             var newItem = {
                 code: glj.code,
@@ -1593,7 +1571,6 @@ $(function () {
         $('#selected_class').val("");
     })
 
-
     $("#subSpread").focusout(function(e){//当本身或子元素失去焦点时这个事件都会发生,而且不好判断点击的是哪里。
         if(gljOprObj.rationGljEditObj){
             gljOprObj.cancelUpdate = false;
@@ -1605,8 +1582,6 @@ $(function () {
             },200)
         }
     });
-
-
     function getcmpUpdateData(items) {
         var data = {
             "updateItems": [],

+ 10 - 128
web/building_saas/main/js/views/project_view.js

@@ -45,14 +45,6 @@ var projectObj = {
             pageCCOprObj.mainActiveCell = projectObj.mainSpread.getActiveSheet().getSelections()[0];//mainSpread焦点单元格
             pageCCOprObj.setCacheAndShow(node);
         }
-        // for test interface.  CSLAAAAA
-        // projectObj.testDisplay('前四项累计值排除当前选中项' + projectObj.project.calcProgram.getBeforeTaxTotalFee([node]));
-
-        // 基数
-        // node.data.isSubcontract = true;
-        // node.data.gljList = project.ration_glj.getGljArrByRation(node.data);
-        // let bname = '甲供定额基价材料费';
-        // projectObj.testDisplay(bname, rationCalcBases[bname](node));
     },
     refreshBaseActn: function (tree) {
         let setButtonValid = function (valid, btn) {
@@ -366,14 +358,6 @@ var projectObj = {
                         me.mainController.refreshTreeNode([node], false);
                     },['确定','取消']);
                     return;
-                   /*if (confirm('已存在该编码的清单,是否继续?')) {
-                       // formatCode = project.Bills.newFormatCode(stdMatchCode, node.data.code);
-                        searchStdBillsAndUpdate(stdMatchCode, value);
-                        return;
-                    }else {
-                       this.mainController.refreshTreeNode([node], false);
-                       return;
-                   }*/
                 }
             }
         }
@@ -556,7 +540,6 @@ var projectObj = {
             if (isDef(node.data.prefix) && node.data.prefix !== rationPrefix.none){
                  value = value.replace(new RegExp(node.data.prefix), '');
             };
-            // value = value.replace(new RegExp(rationPrefix.replace), '');
             info.sheet.setValue(info.row, info.col, value);
         }
         if(node&&fieldName =='quantity'&&(node.data.quantityEXP !==null||node.data.quantityEXP !==undefined)){
@@ -1208,7 +1191,7 @@ var projectObj = {
                         return !project.Ration.canAdd(project.mainTree.selected);
                     },
                     callback: function (key, opt) {
-                        project.Ration.addNewRation(null,rationType.ration,null,true);
+                        project.Ration.addNewRation(null,rationType.ration,projectObj.selectColAndFocus,true);
                        // ProjectController.addRation(project, controller, rationType.ration);
                     }/*,
                     visible: function(key, opt){
@@ -1386,28 +1369,9 @@ var projectObj = {
     },
     // 计算node及node的所有父项
     converseCalculateBills: function (node) {
-/*        if (node) {
-            let calc = new BillsCalcHelper(this.project);
-            calc.calcNode(node, true);
-            let cur = node, nodes = [];
-            while (cur) {
-                nodes.push(cur);
-                cur = cur.parent;
-            }
-            this.mainController.refreshTreeNode(nodes, false);
-            this.project.Bills.updateNodes(nodes, true);
-            calc = null;
-        }*/
         projectObj.project.calcProgram.calcAndSave(node);
 },
-    // 计算全部清单
-/*    calculateAll: function () {
-        let calc = new BillsCalcHelper(this.project);
-        calc.calcAll();
-        this.mainController.showTreeData();
-        this.project.Bills.updateAll();
-        calc = null;
-    }*/
+
     // 获取上次退出时的焦点位置
     loadFocusLocation: function() {
         const projectId = scUrlUtil.GetQueryString('project');
@@ -1508,84 +1472,6 @@ var projectObj = {
             }, 200);
         };
     },
-    /*amountAreaNumber: function(e, info) {
-        if (info.newSelections === undefined || info.newSelections.length <= 0) {
-            return false;
-        }
-        const selectedArea = info.newSelections[0];
-        const sheet = info.sheet;
-        if (selectedArea.colCount <= 1 && selectedArea.rowCount <= 1) {
-            return false;
-        }
-        // 获取鼠标位置
-        let x = window.event.clientX;
-        let y = window.event.clientY;
-
-        // 匹配数字或小数
-        const regular = /^([0-9]+[.]{1}[0-9]+)$|^([1-9]{1}\d*)$/;
-        // 小数点最高位数
-        let max = 0;
-        let total = 0;
-        let counter = 0;
-        for (let col = selectedArea.col; col < (selectedArea.colCount + selectedArea.col); col++) {
-            for (let row = selectedArea.row; row < (selectedArea.rowCount + selectedArea.row); row++) {
-                const value = sheet.getCell(row, col).text();
-                if (!regular.test(value)) {
-                    continue;
-                }
-                counter++;
-                // 获取当前数据小数位数
-                let pointPosition = value.toString().indexOf(".");
-                pointPosition = pointPosition < 0 ? pointPosition : pointPosition + 1;
-                const current = pointPosition > 0 ? value.toString().substring(pointPosition, value.toString().length).length : 0;
-                max = current > max ? current : max;
-                total += parseFloat(value);
-            }
-        }
-        // 如果不为0则悬浮显示
-        if (total > 0 && counter > 1) {
-            const div = $('<div id="total-tips"><p>合计: <input type="text" id="total" readonly="readonly" style="border: none;"/></p><p><a href="javascript:void(0);">复制</a></p></div>');
-            div.css({
-                position: "absolute",
-                border: "1px #C0C0C0 solid",
-                background: "#fff",
-                boxShadow: "1px 2px 5px rgba(0,0,0,0.4)",
-            });
-            div.children("p").css({
-                textAlign: "center",
-                padding: 8,
-                marginBottom: 2,
-            });
-            div.children("p").first().css({
-                borderBottom: "1px #C0C0C0 solid"
-            });
-            const totalString = total.toFixed(max);
-            // input长度
-            const inputWidth = totalString.length * 8;
-            // 计算是否会超出显示范围
-            const baseWidth = 48;
-            const baseHeight = 81;
-            const canvasWidth = $("#billsSpreadvp_vp").width();
-            const canvasHeight = $("#billsSpreadvp_vp").height();
-            x = x + baseWidth + inputWidth > canvasWidth ? x - baseWidth - inputWidth : x;
-            y = y + baseHeight > canvasHeight ? y - baseHeight : y;
-            //test
-            let testT = sheet.getParent().hitTest(x, y);
-            console.log(sheet.getCellRect(0, 0));
-            //test
-            div.css({
-                left: x,
-                top: y,
-            });
-
-            div.children().children("#total").width(inputWidth).val(totalString);
-            $("body").append(div);
-            // 用于判断是否要关闭窗体
-            setTimeout(function() {
-                isTotalShowing = true;
-            }, 200);
-        };
- },*/
 
     onButtonClick: function (e, info) {
         let colSetting = projectObj.mainController.setting.cols[info.col];
@@ -1744,12 +1630,6 @@ var projectObj = {
             'ruleText'
         ];
         style.font = 'bold 0.9rem Arial';
-        /*if(stringFields.indexOf(colSetting.data.field) > 0){
-            style.font = 'bold 0.9rem Arial';
-        }
-        else {
-            style.font = 'bold 13px Arial';
-        }*/
         return style;
     },
    //设置节点style
@@ -1884,6 +1764,13 @@ var projectObj = {
         }
         return new CommonTotalFeeCellType();
     },
+    selectColAndFocus :function (newNode,field = 'code') {//选中单元格并设置焦点
+        if(newNode){
+            projectObj.mainController.sheet.setSelection(newNode.serialNo(), colSettingObj.getColByField(field), 1, 1);  //
+            projectObj.mainSpread.focus();
+        }
+    }
+
 
 };
 
@@ -1948,7 +1835,7 @@ $('#downLevel').click(function () {
 $('#insertRation').click(function () {
     // projectObj.project.Ration.addNewRation(null,rationType.ration);
     // 连续点工具栏的插入定额按钮,显示树结构画线有问题。
-    projectObj.project.Ration.addNewRationFast(rationType.ration);
+    projectObj.project.Ration.addNewRationFast(rationType.ration,projectObj.selectColAndFocus);
 });
 $('#upMove').click(function () {
     var controller = projectObj.mainController, project = projectObj.project;
@@ -2374,11 +2261,6 @@ function changeMapToArray(map) {
 $('#deleteY').click(function () { //正常删除,级联删除子项
     let project = projectObj.project;
     project.Bills.deleteSelectedNodes();
-    /*if(isSingleSelect()){
-        project.Bills.deleteSelectedNode();//这个方法不用了,会出现异步删除干净的问题
-    }else {
-        project.Bills.deleteSelectedNodes();
-    }*/
 });
 
 $('#deleteN').click(function () {//不删除子项