Browse Source

依据单位控制小数位数方案

TonyKang 7 years ago
parent
commit
e22eb398d0
2 changed files with 40 additions and 2 deletions
  1. 37 1
      public/stringUtil.js
  2. 3 1
      test/unit/reports/test_rpt_test_template.js

+ 37 - 1
public/stringUtil.js

@@ -227,5 +227,41 @@ module.exports = {
     },
     getPinYinCamelChars: function(value) {
         return pinyin.getCamelChars(value);
+    },
+    formatNumber: function(formatStr, val) {
+        let rst = val;
+        if (formatStr) {
+            if (!(isNaN(parseFloat(val)))) {
+                function comdify(numStr){
+                    let re = /\d{1,3}(?=(\d{3})+$)/g;
+                    return numStr.replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,"$&,")+s2;});
+                }
+                let dotIdx = formatStr.indexOf(".");
+                if (dotIdx >= 0) {
+                    let tmpStr = parseFloat(val).toFixed(formatStr.length - dotIdx - 1);
+                    let digStr = formatStr.substr(dotIdx + 1, formatStr.length - dotIdx);
+                    for (let sIdx = digStr.length - 1; sIdx >= 0; sIdx--) {
+                        if (digStr[sIdx] === '#') {
+                            if (tmpStr.length > 0 && tmpStr[tmpStr.length - 1] === '0') {
+                                tmpStr = tmpStr.substr(0, tmpStr.length - 1);
+                            } else {
+                                break;
+                            }
+                        } else {
+                            break;
+                        }
+                    }
+                    if (tmpStr[tmpStr.length - 1] === '.') tmpStr = tmpStr.substr(0, tmpStr.length - 1);
+                    rst = tmpStr;
+                } else {
+                    rst = parseFloat(val).toFixed(0);
+                }
+                let commaIdx = formatStr.indexOf(",");
+                if (commaIdx >= 0) {
+                    rst = comdify(val.toString());
+                }
+            }
+        }
+        return rst;
     }
-};
+}

+ 3 - 1
test/unit/reports/test_rpt_test_template.js

@@ -26,7 +26,9 @@ cfgCacheUtil.setupDftCache();
 let fsUtil = require("../../../public/fsUtil");
 
 let demoPrjId = - 1;
-let demoRptId = 279, pagesize = "A4";
+// let demoRptId = 279;
+let demoRptId = 275; //测试模板-流水式
+let pagesize = "A4";
 //288: 11-2表(新)
 //279: 04