zhongzewei 7 سال پیش
والد
کامیت
7c8ce05611

+ 3 - 0
web/maintain/ration_repository/js/ration.js

@@ -84,6 +84,9 @@ var rationOprObj = {
                 });
                 rationAssistOprObj.getAssItems(cacheSection[args.row]);
             }
+            else {
+                rationGLJOprObj.currentRationItem = null;
+            }
         };
         me.workBook.focus(true);
     },

+ 68 - 49
web/maintain/ration_repository/js/ration_glj.js

@@ -6,6 +6,7 @@ var rationGLJOprObj = {
     currentRationItem: null,
     distTypeTree: null,
     activeCell: null,
+    tempCacheArr: [],//被更新的工料机,若更新的工料机不存在,则恢复
     cache: {},
     setting: {
         header:[
@@ -173,6 +174,7 @@ var rationGLJOprObj = {
     },
     onClipboardPasted: function(e, info) {
         var me = rationGLJOprObj, repId = storageUtil.getSessionCache("RationGrp","repositoryID");
+        me.tempCacheArr = [];
         if (repId) {
             let gljLibId = storageUtil.getSessionCache("gljLib", "repositoryID_" + repId);
             if(gljLibId){
@@ -183,6 +185,7 @@ var rationGLJOprObj = {
                     for (var i = 0; i < tmpCodes.length; i++) {
                         let rowIdx = info.cellRange.row + i;
                         if(rowIdx < cacheArr.length){//更新
+                            me.tempCacheArr.push(cacheArr[rowIdx]);
                             cacheArr.splice(rowIdx--, 1);
                         }
                         codes.push(tmpCodes[i].code);
@@ -220,67 +223,74 @@ var rationGLJOprObj = {
     },
     onCellEditEnd: function(sender, args){
         var me = rationGLJOprObj;
-        var cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
-        if (args.col != 0) {
-            if (args.row < cacheArr.length) {
-                var editGlj = cacheArr[args.row];
-                if (editGlj["consumeAmt"] != args.editingText) {
-                    let parseNum = parseFloat(args.editingText);
-                    if(isNaN(parseFloat(args.editingText))){
-                        $('#alertModalBtn').click();
-                        $('#alertText').text("定额消耗只能输入数值!");
-                        args.sheet.options.isProtected = true;
-                        $('#alertModalCls').click(function () {
-                            args.sheet.options.isProtected = false;
-                            args.sheet.setValue(args.row, args.col, editGlj['consumeAmt']);
-                        });
-                        $('#alertModalCof').click(function () {
-                            args.sheet.options.isProtected = false;
-                            args.sheet.setValue(args.row, args.col, editGlj['consumeAmt']);
-                        })
-                    }
-                    else{
-                        args.sheet.setValue(args.row, args.col, parseNum);
-                        let roundNum = me.round(parseNum, 3);
-                        editGlj["consumeAmt"] = roundNum;
-                        me.updateRationItem();
+        if(me.currentRationItem) {
+            var cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID];
+            me.tempCacheArr = [];
+            if (args.col != 0) {
+                if (args.row < cacheArr.length) {
+                    var editGlj = cacheArr[args.row];
+                    if (editGlj["consumeAmt"] != args.editingText) {
+                        let parseNum = parseFloat(args.editingText);
+                        if (isNaN(parseFloat(args.editingText))) {
+                            $('#alertModalBtn').click();
+                            $('#alertText').text("定额消耗只能输入数值!");
+                            args.sheet.options.isProtected = true;
+                            $('#alertModalCls').click(function () {
+                                args.sheet.options.isProtected = false;
+                                args.sheet.setValue(args.row, args.col, editGlj['consumeAmt']);
+                            });
+                            $('#alertModalCof').click(function () {
+                                args.sheet.options.isProtected = false;
+                                args.sheet.setValue(args.row, args.col, editGlj['consumeAmt']);
+                            })
+                        }
+                        else {
+                            args.sheet.setValue(args.row, args.col, parseNum);
+                            let roundNum = me.round(parseNum, 3);
+                            editGlj["consumeAmt"] = roundNum;
+                            me.updateRationItem();
+                        }
                     }
                 }
-            }
-        } else {
-            if(args.editingText && args.editingText.toString().trim().length !== 0){
-                let isExist = false;
-                for(let i = 0, len = cacheArr.length; i < len; i++){
-                    if(cacheArr[i].code === args.editingText && i !== args.row){
-                        isExist = true;
-                        break;
+            } else {
+                if (args.editingText && args.editingText.toString().trim().length !== 0) {
+                    let isExist = false;
+                    for (let i = 0, len = cacheArr.length; i < len; i++) {
+                        if (cacheArr[i].code === args.editingText && i !== args.row) {
+                            isExist = true;
+                            break;
+                        }
                     }
-                }
-                if(isExist){
-                    alert("该工料机已存在!");
-                    args.sheet.setValue(args.row, args.col, typeof cacheArr[args.row] !== 'undefined' ? cacheArr[args.row].code + '' : '');
-                }
-                else{
-                    if(args.row < cacheArr.length && args.editingText !== cacheArr[args.row].code){//更新
-                        cacheArr.splice(args.row, 1);
-                        let rationRepId = storageUtil.getSessionCache("RationGrp","repositoryID");
-                        let gljLibID = storageUtil.getSessionCache("gljLib", "repositoryID_" + rationRepId);
-                        let codes = [];
-                        codes.push(args.editingText.toString().trim());
-                        me.addGljItems(codes, gljLibID, args);
+                    if (isExist) {
+                        alert("该工料机已存在!");
+                        args.sheet.setValue(args.row, args.col, typeof cacheArr[args.row] !== 'undefined' ? cacheArr[args.row].code + '' : '');
                     }
-                    else if(args.row >= cacheArr.length){//新增
-                            let rationRepId = storageUtil.getSessionCache("RationGrp","repositoryID");
+                    else {
+                        if (args.row < cacheArr.length && args.editingText !== cacheArr[args.row].code) {//更新
+                            me.tempCacheArr.push(cacheArr[args.row]);
+                            cacheArr.splice(args.row, 1);
+                            let rationRepId = storageUtil.getSessionCache("RationGrp", "repositoryID");
+                            let gljLibID = storageUtil.getSessionCache("gljLib", "repositoryID_" + rationRepId);
+                            let codes = [];
+                            codes.push(args.editingText.toString().trim());
+                            me.addGljItems(codes, gljLibID, args);
+                        }
+                        else if (args.row >= cacheArr.length) {//新增
+                            let rationRepId = storageUtil.getSessionCache("RationGrp", "repositoryID");
                             let gljLibID = storageUtil.getSessionCache("gljLib", "repositoryID_" + rationRepId);
                             if (gljLibID) {
                                 var codes = [];
                                 codes.push(args.editingText.toString().trim());
                                 me.addGljItems(codes, gljLibID, args);
                             }
+                        }
                     }
                 }
             }
         }
+        else {
+            args.sheet.setValue(args.row, args.col, '');
+        }
     },
     onContextmenuOpr: function () {
         let me = rationGLJOprObj;
@@ -338,6 +348,7 @@ var rationGLJOprObj = {
                 //sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
                 if (result) {
                     if(result.data.length > 0){
+                        console.log(`enter1`);
                         //sheetCommonObj.cleanSheet(me.sheet, me.setting, -1);
                         sheetCommonObj.cleanData(me.sheet, me.setting, -1);
                         var rstArr = [], dummyR = {gljId: 0, consumeAmt:0}, newAddArr = [];
@@ -373,18 +384,25 @@ var rationGLJOprObj = {
                         }
                     }
                     else{
+                        let cacheArr = me.cache["_GLJ_" + me.currentRationItem.ID]?  me.cache["_GLJ_" + me.currentRationItem.ID] : [];
+                        me.cache["_GLJ_" + me.currentRationItem.ID] = cacheArr.concat(me.tempCacheArr);
+                        //更新的工料机不存在
+                        me.cache["_GLJ_" + me.currentRationItem.ID].sort(function(a, b) {
+                            var rst = 0;
+                            if (a.code > b.code) rst = 1
+                            else if (a.code < b.code) rst = -1;
+                            return rst;
+                        });
                         $('#alertModalBtn').click();
                         $('#alertText').text("工料机"+ codes + "不存在,请查找你所需要的工料机,或新增工料机");
                         me.sheet.options.isProtected = true;
                         $('#alertModalCls').click(function () {
                             sheetCommonObj.lockCells(me.sheet, me.setting);
                             me.showGljItems(me.currentRationItem.ID);
-                            me.sheet.setValue(args.row, args.col, '');
                         });
                         $('#alertModalCof').click(function () {
                             sheetCommonObj.lockCells(me.sheet, me.setting);
                             me.showGljItems(me.currentRationItem.ID);
-                           me.sheet.setValue(args.row, args.col, '');
                         })
                     }
                 }
@@ -545,6 +563,7 @@ var rationGLJOprObj = {
     showGljItems: function(rationID) {
         var me = this;
         if (me.cache["_GLJ_" + rationID]) {
+            sheetCommonObj.cleanData(me.sheet, me.setting, -1);
             sheetCommonObj.showData(me.sheet, me.setting, me.cache["_GLJ_" + rationID], me.distTypeTree);
             //lock
             me.sheet.suspendPaint();

+ 3 - 1
web/maintain/ration_repository/js/section_tree.js

@@ -54,7 +54,7 @@ var zTreeOprObj = {
                     zTreeHelper.createTree(result.data, setting, "rationChapterTree", me);
                     //初始化,初始节点点击
                     let rootNode = me.treeObj.getNodes()[0];
-                    if(rootNode && rootNode.isParent && rootNode.isFirstNode){
+                    if(rootNode && rootNode.isFirstNode){
                         me.treeObj.selectNode(rootNode);
                         me.onClick(null, 'rationChapterTree', rootNode);
                     }
@@ -351,6 +351,7 @@ var zTreeOprObj = {
         var sectionID = treeNode.ID;
         if (!(treeNode.items) || treeNode.items.length == 0) {
             jobContentOprObj.setRadiosDisabled(false, jobContentOprObj.radios);
+            rationOprObj.workBook.getSheet(0).clearSelection();
             rationOprObj.getRationItems(sectionID);
         } else {
             jobContentOprObj.setRadiosDisabled(true, jobContentOprObj.radios);
@@ -360,6 +361,7 @@ var zTreeOprObj = {
         }
         sheetCommonObj.cleanSheet(rationGLJOprObj.sheet, rationGLJOprObj.setting, -1);
         sheetCommonObj.shieldAllCells(rationGLJOprObj.sheet);
+        rationGLJOprObj.sheet.getParent().focus(false);
     }
 };
 //定额章节节点说明、计算规则