瀏覽代碼

替换人材机粘贴问题

zhangweicheng 7 年之前
父節點
當前提交
a27380347e
共有 1 個文件被更改,包括 17 次插入11 次删除
  1. 17 11
      web/maintain/ration_repository/js/coe.js

+ 17 - 11
web/maintain/ration_repository/js/coe.js

@@ -665,7 +665,7 @@ let gljAdjOprObj = {
     onClipboardPasting: function (sender, info) {
 
     },
-    getValidPasteDatas: function (pasteItems, info) {
+    getValidPasteDatas: function (pasteItems, info) {//2018-12-21  这里的if else 太多了,不好维护
         let me = gljAdjOprObj;
         let rst = [];
         for(let i = 0, len = pasteItems.length; i < len; i++){
@@ -674,20 +674,21 @@ let gljAdjOprObj = {
             //update
             if(row < me.currentGljAdjList.length){
                 let updateObj = me.currentGljAdjList[row];
+                validObj.index = row;//要有下标做为匹配的依据,不然在复制多行并且某个单元格是只读的情况下,这里返回的updateList个数会比选中的行数少,造成更新行和实际不匹配的情况
                 if(typeof pasteItems[i].coeType !== 'undefined' && typeof pasteItems[i].gljCode !== 'undefined'){
                     let gljName = me.getGljName(pasteItems[i].gljCode, me.gljList);
-                    if(pasteItems[i].coeType === '单个工料机' && gljName){
+                    if((updateObj.coeType === '单个工料机'||updateObj.coeType === '替换人材机') && gljName){
                         validObj.coeType = pasteItems[i].coeType;
                         validObj.gljCode = pasteItems[i].gljCode;
                         validObj.gljName = gljName;
                     }
-                    else if(pasteItems[i].coeType !== '单个工料机' && me.setting.comboItems.coeType.indexOf(pasteItems[i].coeType) !== -1){
+                    else if((pasteItems[i].coeType !== '单个工料机'||pasteItems[i].coeType !== '替换人材机') && me.setting.comboItems.coeType.indexOf(pasteItems[i].coeType) !== -1){
                         validObj.coeType = pasteItems[i].coeType;
                     }
                 }
                 else if(typeof pasteItems[i].coeType === 'undefined' && typeof pasteItems[i].gljCode !== 'undefined'){
                     let gljName = me.getGljName(pasteItems[i].gljCode, me.gljList);
-                    if(typeof updateObj.coeType !== 'undefined' && updateObj.coeType === '单个工料机' && gljName){
+                    if(typeof updateObj.coeType !== 'undefined' && (updateObj.coeType === '单个工料机'||updateObj.coeType === '替换人材机') && gljName){
                         validObj.gljCode = pasteItems[i].gljCode;
                         validObj.gljName = gljName;
                     }
@@ -695,13 +696,12 @@ let gljAdjOprObj = {
                 else if(typeof pasteItems[i].coeType !== 'undefined' && typeof pasteItems[i].gljCode === 'undefined'){
                     if(me.setting.comboItems.coeType.indexOf(pasteItems[i].coeType) !== -1){
                         validObj.coeType = pasteItems[i].coeType;
-                        if(validObj.coeType !== '单个工料机' && typeof updateObj.gljCode !== '单个工料机' && updateObj.gljCode.toString().trim().length > 0){
+                        if(validObj.coeType !== '单个工料机' && typeof updateObj.coeType !== '单个工料机' && updateObj.gljCode.toString().trim().length > 0){
                             validObj.gljCode = '';
                             validObj.gljName = '';
                         }
                     }
-                }
-                else {
+                } else {
                     if(typeof pasteItems[i].operator !== 'undefined' && me.setting.comboItems.operator.indexOf(pasteItems[i].operator) !== -1){
                         validObj.operator = pasteItems[i].operator;
                     }
@@ -709,16 +709,21 @@ let gljAdjOprObj = {
                         validObj.amount = pasteItems[i].amount;
                     }
                 }
+                if(typeof pasteItems[i].replaceCode !== 'undefined' && updateObj.coeType === '替换人材机'){
+                    let gljName = me.getGljName(pasteItems[i].replaceCode, me.gljList);
+                    validObj.replaceCode = pasteItems[i].replaceCode;
+                    validObj.replaceName = gljName;
+                }
             }
             else {
                 if(typeof pasteItems[i].coeType !== 'undefined' && typeof pasteItems[i].gljCode !== 'undefined'){
                     let gljName = me.getGljName(pasteItems[i].gljCode, me.gljList);
-                    if(pasteItems[i].coeType === '单个工料机' && gljName){
+                    if((pasteItems[i].coeType === '单个工料机'||pasteItems[i].coeType === '替换人材机') && gljName){
                         validObj.coeType = pasteItems[i].coeType;
                         validObj.gljCode = pasteItems[i].gljCode;
                         validObj.gljName = gljName;
                     }
-                    else if(pasteItems[i].coeType !== '单个工料机' && me.setting.comboItems.coeType.indexOf(pasteItems[i].coeType) !== -1){
+                    else if((pasteItems[i].coeType !== '单个工料机'||pasteItems[i].coeType !== '替换人材机') && me.setting.comboItems.coeType.indexOf(pasteItems[i].coeType) !== -1){
                         validObj.coeType = pasteItems[i].coeType;
                     }
                 }
@@ -747,8 +752,9 @@ let gljAdjOprObj = {
         for(let i = 0, len = validDatas.length; i < len; i++){
             row = i + info.cellRange.row;
             //update
-            if(row < me.currentGljAdjList.length){
-                let updateObj = me.currentGljAdjList[row];
+            if(row < me.currentGljAdjList.length && typeof validDatas[i].index !=='undefined'){
+                let updateObj = me.currentGljAdjList[validDatas[i].index];//这里改成读取下标
+                delete  validDatas[i].index; //清除下标
                 for(let attr in validDatas[i]){
                     updateObj[attr] = validDatas[i][attr];
                 }