ソースを参照

台账分解、台账修订,复制粘贴调整

MaiXinRong 5 年 前
コミット
e836f7b46b
2 ファイル変更23 行追加3 行削除
  1. 12 2
      app/public/js/ledger.js
  2. 11 1
      app/public/js/revise.js

+ 12 - 2
app/public/js/ledger.js

@@ -599,19 +599,29 @@ $(document).ready(function() {
                 parent: {type: 'warning', msg: '含有子项的清单,不可粘贴数量、单价、金额'},
                 gcl: {type: 'warning', msg: '工程量清单,不可粘贴项目节数量'},
                 posXmj: {type: 'warning', msg: '清单含有计量单元,不可粘贴项目节编号'},
+                sameParent: {type: 'warning', msg: '仅可粘贴同层节点'},
             };
             const datas = [], filterNodes = [];
-            for (let iRow = 0; iRow < info.cellRange.rowCount; iRow++) {
+            let pid, level, filterRow = 0;
+            for (let iRow = 0; iRow < info.cellRange.rowCount + filterRow; iRow++) {
                 const curRow = info.cellRange.row + iRow;
                 const node = tree.nodes[curRow];
                 if (!node) continue;
+                if (!pid) pid = node.ledger_pid;
+                if (!level) level = node.level;
+                if (node.ledger_pid !== pid) {
+                    toastMessageUniq(hint.sameParent);
+                    filterRow+=1;
+                    continue;
+                }
+                if (node.level < level) break;
 
                 let bPaste = false;
                 const data = info.sheet.zh_tree.getNodeKeyData(node);
                 for (let iCol = 0; iCol < info.cellRange.colCount; iCol++) {
                     const curCol = info.cellRange.col + iCol;
                     const colSetting = info.sheet.zh_setting.cols[curCol];
-                    const value = trimInvalidChar(pasteData[iRow][iCol]);
+                    const value = trimInvalidChar(pasteData[iRow-filterRow][iCol]);
                     const lPos = pos.getLedgerPos(node.id);
                     if (node.children && node.children.length > 0 && invalidFields.parent.indexOf(colSetting.field) >= 0) {
                         toastMessageUniq(hint.parent);

+ 11 - 1
app/public/js/revise.js

@@ -451,19 +451,30 @@ $(document).ready(() => {
                 parent: {type: 'warning', msg: '含有子项的清单,不可粘贴数量、单价、金额'},
                 gcl: {type: 'warning', msg: '工程量清单,不可粘贴项目节数量'},
                 posXmj: {type: 'warning', msg: '清单含有计量单元,不可粘贴项目节编号'},
+                sameParent: {type: 'warning', msg: '仅可粘贴同层节点'},
             };
             const datas = [], filterNodes = [];
 
+            let pid, level, filterRow = 0;
             for (let iRow = 0; iRow < info.cellRange.rowCount; iRow ++) {
                 const curRow = info.cellRange.row + iRow;
                 const node = tree.nodes[curRow];
                 if (!node) continue;
+                if (!pid) pid = node.ledger_pid;
+                if (!level) level = node.level;
+                if (node.ledger_pid !== pid) {
+                    toastMessageUniq(hint.sameParent);
+                    filterRow+=1;
+                    continue;
+                }
+                if (node.level < level) break;
 
                 let bPaste = false;
                 const data = info.sheet.zh_tree.getNodeKeyData(node);
                 for (let iCol = 0; iCol < info.cellRange.colCount; iCol++) {
                     const curCol = info.cellRange.col + iCol;
                     const colSetting = info.sheet.zh_setting.cols[curCol];
+                    const value = trimInvalidChar(pasteData[iRow-filterRow][iCol]);
                     if (node.children && node.children.length > 0 && invalidFields.parent.indexOf(colSetting.field) >= 0) {
                         toastMessageUniq(hint.parent);
                         continue;
@@ -491,7 +502,6 @@ $(document).ready(() => {
                         }
                     }
 
-                    const value = trimInvalidChar(pasteData[iRow][iCol]);
                     if (tree.checkNodeUsed(node, pos) && col.field === 'unit_price') {
                         toastMessageUniq (hint.usedUp);
                         continue;