Browse Source

工料机库复制粘贴从一次最多只允许粘贴十条,改成不做限制

zhongzewei 8 years ago
parent
commit
d7548c11a1

+ 1 - 0
public/web/sheet/sheet_common.js

@@ -36,6 +36,7 @@ var sheetCommonObj = {
         spreadBook.options.showHorizontalScrollbar = false;
         spreadBook.options.scrollbarMaxAlign = true;
         spreadBook.options.allowCopyPasteExcelStyle = false;
+        spreadBook.options.allowExtendPasteRange = true;
         var spreadNS = GC.Spread.Sheets;
         var sheet = spreadBook.getSheet(0);
         sheet.suspendPaint();

+ 86 - 81
web/maintain/std_glj_lib/js/glj.js

@@ -683,115 +683,120 @@ repositoryGljObj = {
         if (me.gljCurTypeId < 0 ) {
             args.cancel = true;
         }
+        let maxCol = args.cellRange.col + args.cellRange.colCount - 1;
+        //复制的列数超过正确的列数,不可复制
+        if(maxCol >= me.setting.header.length){
+            args.cancel = true;
+        }
     },
     onClipboardPasted: function(e, info) {
-        var me = repositoryGljObj;
-        var updateArr = [], addArr = [];
-        var items = sheetCommonObj.analyzePasteData(me.setting, info);
-        let beginRow = info.cellRange.row, endRow = info.cellRange.row + info.cellRange.rowCount - 1,
-            maxRow = me.currentCache.length - 1,
-            updateBasePrcArr = [] ,
-            updateCount, resumeArr = [];
-        if(endRow <= maxRow){
-            //updateItems = items;
-            for(let i = 0; i < items.length; i++){
-                let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
-                if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
-                    updateArr.push(updateObj.updateGlj);
-                    if(typeof updateObj.updateBasePrc !== 'undefined'){
-                        updateBasePrcArr.push(updateObj.updateBasePrc);
+        let me = repositoryGljObj;
+            let updateArr = [], addArr = [];
+            let items = sheetCommonObj.analyzePasteData(me.setting, info);
+            let beginRow = info.cellRange.row, endRow = info.cellRange.row + info.cellRange.rowCount - 1,
+                maxRow = me.currentCache.length - 1,
+                updateBasePrcArr = [] ,
+                updateCount, resumeArr = [];
+            if(endRow <= maxRow){
+                //updateItems = items;
+                for(let i = 0; i < items.length; i++){
+                    let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
+                    if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
+                        updateArr.push(updateObj.updateGlj);
+                        if(typeof updateObj.updateBasePrc !== 'undefined'){
+                            updateBasePrcArr.push(updateObj.updateBasePrc);
+                        }
                     }
-                }
-                else{
-                    resumeArr.push(info.cellRange.row + i);
-                }
-            }
-        }
-        else if(beginRow <= maxRow && endRow > maxRow){
-            updateCount = maxRow - beginRow + 1;
-            for(let i = 0; i < updateCount; i++){
-                let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
-                if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
-                    updateArr.push(updateObj.updateGlj);
-                    if(typeof updateObj.updateBasePrc !== 'undefined'){
-                        updateBasePrcArr.push(updateObj.updateBasePrc);
+                    else{
+                        resumeArr.push(info.cellRange.row + i);
                     }
                 }
-                else{
-                    resumeArr.push(info.cellRange.row + i);
-                }
             }
-            if(info.cellRange.colCount === me.setting.header.length){
-                for(let i = updateCount ; i < items.length; i++){
-                    if(me.isValidObj(items[i])){
-                        items[i].component = [];
-                        //类型为混凝土、砂浆、配合比、机械时,基价只能组成物计算
-                        if(me.allowComponent.indexOf(items[i].gljType) !== -1){
-                            items[i].basePrice = 0;
+            else if(beginRow <= maxRow && endRow > maxRow){
+                updateCount = maxRow - beginRow + 1;
+                for(let i = 0; i < updateCount; i++){
+                    let updateObj = me.validUpdateObj(items[i], info.cellRange.row + i);
+                    if(updateObj && typeof updateObj.updateGlj !== 'undefined'){
+                        updateArr.push(updateObj.updateGlj);
+                        if(typeof updateObj.updateBasePrc !== 'undefined'){
+                            updateBasePrcArr.push(updateObj.updateBasePrc);
                         }
-                        addArr.push(items[i]);
                     }
                     else{
                         resumeArr.push(info.cellRange.row + i);
                     }
                 }
-            }
-            else{
-                for(let i = updateCount ; i < items.length; i++){
-                    resumeArr.push(info.cellRange.row + i);
-                }
-            }
-        }
-        else{
-            if(info.cellRange.colCount === me.setting.header.length){
-                for(let i = 0; i < items.length; i++){
-                    if(me.isValidObj(items[i])){
-                        items[i].component = [];
-                        if(me.allowComponent.indexOf(items[i].gljType) !== -1){
-                            items[i].basePrice = 0;
+                if(info.cellRange.colCount === me.setting.header.length){
+                    for(let i = updateCount ; i < items.length; i++){
+                        if(me.isValidObj(items[i])){
+                            items[i].component = [];
+                            //类型为混凝土、砂浆、配合比、机械时,基价只能组成物计算
+                            if(me.allowComponent.indexOf(items[i].gljType) !== -1){
+                                items[i].basePrice = 0;
+                            }
+                            addArr.push(items[i]);
+                        }
+                        else{
+                            resumeArr.push(info.cellRange.row + i);
                         }
-                        addArr.push(items[i]);
                     }
-                    else{
+                }
+                else{
+                    for(let i = updateCount ; i < items.length; i++){
                         resumeArr.push(info.cellRange.row + i);
                     }
                 }
             }
             else{
-                for(let i = 0; i < items.length; i++){
-                    resumeArr.push(info.cellRange.row + i);
-                }
-            }
-        }
-        //repaint
-        if(resumeArr.length > 0){
-            info.sheet.suspendPaint();
-            for(let i = 0; i < resumeArr.length ; i++){
-                if(resumeArr[i] < me.currentCache.length){
-                    for(let col = 0; col < me.setting.header.length; col++){
-                        if(me.setting.header[col].dataCode === 'gljType'){
-                            let gljType = me.currentCache[resumeArr[i]][me.setting.header[col].dataCode];
-                            info.sheet.setValue(resumeArr[i], col, me.distTypeTree.distTypes["gljType" + gljType].data.fullName);
+                if(info.cellRange.colCount === me.setting.header.length){
+                    for(let i = 0; i < items.length; i++){
+                        if(me.isValidObj(items[i])){
+                            items[i].component = [];
+                            if(me.allowComponent.indexOf(items[i].gljType) !== -1){
+                                items[i].basePrice = 0;
+                            }
+                            addArr.push(items[i]);
                         }
                         else{
-                            info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
+                            resumeArr.push(info.cellRange.row + i);
                         }
                     }
                 }
                 else{
-                    for(let col = 0; col < me.setting.header.length; col++){
-                        info.sheet.setValue(resumeArr[i], col, '');
+                    for(let i = 0; i < items.length; i++){
+                        resumeArr.push(info.cellRange.row + i);
                     }
                 }
             }
-            info.sheet.resumePaint();
-        }
-        if (updateArr.length > 0 || addArr.length > 0) {
-            me.mixUpdateRequest(updateArr, addArr, []);
-        }
-        if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
-            me.updateRationBasePrcRq(updateBasePrcArr);
-        }
+            //repaint
+            if(resumeArr.length > 0){
+                info.sheet.suspendPaint();
+                for(let i = 0; i < resumeArr.length ; i++){
+                    if(resumeArr[i] < me.currentCache.length){
+                        for(let col = 0; col < me.setting.header.length; col++){
+                            if(me.setting.header[col].dataCode === 'gljType'){
+                                let gljType = me.currentCache[resumeArr[i]][me.setting.header[col].dataCode];
+                                info.sheet.setValue(resumeArr[i], col, me.distTypeTree.distTypes["gljType" + gljType].data.fullName);
+                            }
+                            else{
+                                info.sheet.setValue(resumeArr[i], col, me.currentCache[resumeArr[i]][me.setting.header[col].dataCode]);
+                            }
+                        }
+                    }
+                    else{
+                        for(let col = 0; col < me.setting.header.length; col++){
+                            info.sheet.setValue(resumeArr[i], col, '');
+                        }
+                    }
+                }
+                info.sheet.resumePaint();
+            }
+            if (updateArr.length > 0 || addArr.length > 0) {
+                me.mixUpdateRequest(updateArr, addArr, []);
+            }
+            if(updateBasePrcArr.length > 0 && me.rationLibs.length > 0){
+                me.updateRationBasePrcRq(updateBasePrcArr);
+            }
     },
     updateRationBasePrcRq: function (basePrcArr) {
         $.ajax({

+ 6 - 1
web/maintain/std_glj_lib/js/gljComponent.js

@@ -250,7 +250,12 @@ let gljComponentOprObj = {
         }
     },
     onClipboardPasting: function (sender, info) {
-
+        let me = gljComponentOprObj;
+        let maxCol = info.cellRange.col + info.cellRange.colCount - 1;
+        //复制的列数超过正确的列数,不可复制
+        if(maxCol >= me.setting.header.length){
+            args.cancel = true;
+        }
     },
     onClipboardPasted: function (sender, info) {
         let me = gljComponentOprObj, that = repositoryGljObj, updateArr = [] ,materialComponent = [202, 203, 204], machineComponent = [302, 303],