浏览代码

表达式相关

MaiXinRong 5 年之前
父节点
当前提交
fb8680f705
共有 3 个文件被更改,包括 22 次插入7 次删除
  1. 8 2
      app/public/js/ledger.js
  2. 8 2
      app/public/js/revise.js
  3. 6 3
      app/public/js/stage.js

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

@@ -492,6 +492,7 @@ $(document).ready(function() {
                 }
                 // 获取更新数据
                 if (col.type === 'Number') {
+                    const exprInfo = getExprInfo(col.field);
                     if (newValue) {
                         const num = _.toNumber(newValue);
                         if (_.isFinite(num)) {
@@ -499,7 +500,6 @@ $(document).ready(function() {
                         } else {
                             try {
                                 data[col.field] = math.evaluate(transExpr(newValue));
-                                const exprInfo = getExprInfo(col.field);
                                 if (exprInfo) {
                                     data[exprInfo.expr] = newValue;
                                 }
@@ -511,6 +511,9 @@ $(document).ready(function() {
                         }
                     } else {
                         data[col.field] = null;
+                        if (exprInfo) {
+                            data[exprInfo.expr] = '';
+                        }
                     }
                 } else {
                     data[col.field] = newValue;
@@ -1647,13 +1650,16 @@ $(document).ready(function() {
                     data.updateData = {id: posData.id};
 
                     if (col.type === 'Number') {
+                        const exprInfo = getExprInfo(col.field);
                         const num = _.toNumber(newText);
                         if (_.isFinite(num)) {
                             data.updateData[col.field] = num;
+                            if (exprInfo) {
+                                data.updateData[exprInfo.expr] = '';
+                            }
                         } else {
                             try {
                                 data.updateData[col.field] = math.evaluate(transExpr(newText));
-                                const exprInfo = getExprInfo(col.field);
                                 if (exprInfo) {
                                     data.updateData[exprInfo.expr] = newText;
                                 }

+ 8 - 2
app/public/js/revise.js

@@ -413,12 +413,15 @@ $(document).ready(() => {
                     }
                     if (col.type === 'Number') {
                         const num = _.toNumber(text);
+                        const exprInfo = getExprInfo(col.field);
                         if (_.isFinite(num)) {
                             data[col.field] = num;
+                            if (exprInfo) {
+                                data[exprInfo.expr] = '';
+                            }
                         } else {
                             try {
                                 data[col.field] = math.evaluate(transExpr(text));
-                                const exprInfo = getExprInfo(col.field);
                                 if (exprInfo) {
                                     data[exprInfo.expr] = newValue;
                                 }
@@ -1302,13 +1305,16 @@ $(document).ready(() => {
                 data.posPostType = 'update';
                 data.postData = {id: posData.id};
                 if (col.type === 'Number') {
+                    const exprInfo = getExprInfo(col.field);
                     const num = _.toNumber(newText);
                     if (_.isFinite(num)) {
                         data.postData[col.field] = num;
+                        if (exprInfo) {
+                            data.postData[exprInfo.expr] = '';
+                        }
                     } else {
                         try {
                             data.postData[col.field] = math.evaluate(transExpr(newText));
-                            const exprInfo = getExprInfo(col.field);
                             if (exprInfo) {
                                 data.postData[exprInfo.expr] = newText;
                             }

+ 6 - 3
app/public/js/stage.js

@@ -634,7 +634,7 @@ $(document).ready(() => {
                     updateData.stage[col.field] = newValue;
                     const exprInfo = getExprInfo(col.field);
                     if (exprInfo) {
-                        updateData.stage[exprInfo.expr] = trimInvalidChar(info.editingText);
+                        updateData.stage[exprInfo.expr] = info.editingText !== newValue+ '' ? trimInvalidChar(info.editingText) : '';
                     }
                 }
 
@@ -1146,13 +1146,16 @@ $(document).ready(() => {
                     data.updateType = 'update';
                     data.updateData = {pid: posData.id, lid: posData.lid};
                     if (col.type === 'Number') {
+                        const exprInfo = getExprInfo(col.field);
                         const num = _.toNumber(newText);
                         if (_.isFinite(num)) {
                             data.updateData[col.field] = num;
+                            if (exprInfo) {
+                                data.updateData[exprInfo.expr] = '';
+                            }
                         } else {
                             try {
                                 data.updateData[col.field] = math.evaluate(transExpr(newText));
-                                const exprInfo = getExprInfo(col.field);
                                 if (exprInfo) {
                                     data.updateData[exprInfo.expr] = newText;
                                 }
@@ -1485,7 +1488,7 @@ $(document).ready(() => {
             const select = posSheet.zh_data ? posSheet.zh_data[row] : null;
             if (!select) return;
 
-            const field = expr.attr('field'), orgValue = expr.attr('org'), newValue = expr.val(), row = expr.attr('row');
+            const field = expr.attr('field'), orgValue = expr.attr('org'), newValue = expr.val();
             if (orgValue === newValue || (!orgValue && newValue == '')) { return; }
 
             const data = {pid: select.id, lid: select.lid};