瀏覽代碼

计量单元复制粘贴调整

MaiXinRong 6 月之前
父節點
當前提交
3f0a6e1899
共有 2 個文件被更改,包括 14 次插入9 次删除
  1. 7 5
      app/public/js/ledger.js
  2. 7 4
      app/public/js/revise.js

+ 7 - 5
app/public/js/ledger.js

@@ -2233,6 +2233,7 @@ $(document).ready(function() {
                     }
                 }
                 const lastOrder = sortData.length > 0 ? sortData[sortData.length - 1].porder + 1 : 1;
+                let filterExprFields = [];
                 for (let iRow = 0; iRow < info.cellRange.rowCount; iRow++) {
                     let bPaste = false;
                     const curRow = info.cellRange.row + iRow;
@@ -2241,23 +2242,24 @@ $(document).ready(function() {
                         const curCol = info.cellRange.col + iCol;
                         const colSetting = info.sheet.zh_setting.cols[curCol];
                         if (!colSetting) continue;
+                        const checkExprInfo = getExprInfo(colSetting.field);
+                        if (checkExprInfo) filterExprFields.push(checkExprInfo.expr);
+                        if (filterExprFields.indexOf(colSetting.field) >= 0) continue;
 
                         posData[colSetting.field] = colSetting.wordWrap ? info.sheet.getText(curRow, curCol) : trimInvalidChar(info.sheet.getText(curRow, curCol));
                         if (colSetting.type === 'Number') {
+                            const exprInfo = getExprInfo(colSetting.field);
                             const num = _.toNumber(posData[colSetting.field]);
                             if (num) {
                                 posData[colSetting.field] = num;
+                                if (exprInfo) posData[exprInfo.expr] = '';
                                 bPaste = true;
                             } else {
                                 try {
+                                    if (exprInfo) posData[exprInfo.expr] = posData[colSetting.field];
                                     posData[colSetting.field] = ZhCalc.mathCalcExpr(transExpr(posData[colSetting.field]));
-                                    const exprInfo = getExprInfo(colSetting.field);
-                                    if (exprInfo) {
-                                        posData[exprInfo.expr] = trimInvalidChar(info.sheet.getText(curRow, curCol));
-                                    }
                                     bPaste = true;
                                 } catch (err) {
-
                                     delete posData[colSetting.field];
                                     toastMessageUniq(hint.expr);
                                 }

+ 7 - 4
app/public/js/revise.js

@@ -1945,6 +1945,7 @@ $(document).ready(() => {
                 settle: {type: 'warning', msg: '计量单元已结算,不可修改台账数据,已过滤'},
             };
             const lastOrder = sortData.length > 0 ? sortData[sortData.length - 1].porder + 1 : 1;
+            let filterExprFields = [];
             for (let iRow = 0; iRow < info.cellRange.rowCount; iRow++) {
                 let bPaste = true;
                 const curRow = info.cellRange.row + iRow;
@@ -1953,6 +1954,9 @@ $(document).ready(() => {
                     const curCol = info.cellRange.col + iCol;
                     const colSetting = info.sheet.zh_setting.cols[curCol];
                     if (!colSetting) continue;
+                    const checkExprInfo = getExprInfo(colSetting.field);
+                    if (checkExprInfo) filterExprFields.push(checkExprInfo.expr);
+                    if (filterExprFields.indexOf(colSetting.field) >= 0) continue;
 
                     posData[colSetting.field] = colSetting.wordWrap ? info.sheet.getText(curRow, curCol) : trimInvalidChar(info.sheet.getText(curRow, curCol));
                     if (posData.id && colSetting.type === 'Number' && sortData[curRow].settle_status === settleStatus.finish) {
@@ -1961,16 +1965,15 @@ $(document).ready(() => {
                         continue;
                     }
                     if (colSetting.type === 'Number') {
+                        const exprInfo = getExprInfo(colSetting.field);
                         const num = _.toNumber(posData[colSetting.field]);
                         if (num) {
                             posData[colSetting.field] = num;
+                            if (exprInfo) posData[exprInfo.expr] = '';
                         } else {
                             try {
+                                if (exprInfo) posData[exprInfo.expr] = posData[colSetting.field];
                                 posData[colSetting.field] = ZhCalc.mathCalcExpr(transExpr(posData[colSetting.field]));
-                                const exprInfo = getExprInfo(colSetting.field);
-                                if (exprInfo) {
-                                    posData[exprInfo.expr] = trimInvalidChar(info.sheet.getText(curRow, curCol));
-                                }
                             } catch (err) {
                                 toastMessageUniq(hint.expr);
                                 bPaste = false;