Преглед на файлове

feat(util): 计量单位为100m2·10天,转换时应是除以1000而不是除以100。

zhangweicheng преди 4 години
родител
ревизия
7524ebb2b4
променени са 2 файла, в които са добавени 18 реда и са изтрити 5 реда
  1. 1 1
      util/package.json
  2. 17 4
      util/src/math.ts

+ 1 - 1
util/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@sc/util",
-  "version": "1.0.9",
+  "version": "1.0.10",
   "description": "通用的工具包",
   "main": "./dist/index.cjs.js",
   "module": "./dist/index.esm.js",

+ 17 - 4
util/src/math.ts

@@ -38,12 +38,25 @@ export const roundToString = (obj: string | number, decimal: number): string =>
   return value.toFixed(decimal);
 };
 
-// 取单位前的数字,并转换成整数
-export const getNumberFromUnit = (unit: string): number => {
+const getTimesFromStr = (str: string) => {
   const reg = new RegExp('^[0-9]+');
-  if (unit && reg.test(unit)) {
-    const arr: any = unit.match(reg);
+  if (str && reg.test(str)) {
+    const arr: any = str.match(reg);
     return parseInt(arr[0], 10);
   }
   return 1;
 };
+
+// 取单位前的数字,并转换成整数
+export const getNumberFromUnit = (unit: string): number => {
+  if (unit.indexOf('·') !== -1) {
+    // 处理单位为 100m2·10天 的情况
+    const strArr = unit.split('·');
+    let time = 1;
+    for (const s of strArr) {
+      time *= getTimesFromStr(s);
+    }
+    return time;
+  }
+  return getTimesFromStr(unit);
+};