zouyu
2026-04-22 3ee153c34cd734bdb5845b60e6a207884d3b0838
src/workers/InspectionWorker.worker.js
@@ -177,8 +177,8 @@
            // 如果当前检验项是产品检验项,则执行此方法,找到此检验项的要求值
            let ask = currentSample.insProduct.find((m) => m.id == item.i).ask
              ? currentSample.insProduct
                  .find((m) => m.id == item.i)
                  .ask.split("&")
                .find((m) => m.id == item.i)
                .ask.split("&")
              : null;
            // 获取当前结论的参数,也就是当前检验项的最终值
            let res = Object.values(comValue)[0];
@@ -395,14 +395,14 @@
                          let k = m.split("±");
                          return (
                            eval(res) >=
                              eval(
                                handleFraction(k[0]) - handleFraction(k[1])
                              ) &&
                            eval(
                              handleFraction(k[0]) - handleFraction(k[1])
                            ) &&
                            eval(res) <=
                              eval(
                                Number(handleFraction(k[0])) +
                                  Number(handleFraction(k[1]))
                              )
                            eval(
                              Number(handleFraction(k[0])) +
                              Number(handleFraction(k[1]))
                            )
                          );
                        } else {
                          return handleMoreParam(res, m, "±");
@@ -411,12 +411,12 @@
                        let k = m.split("±");
                        return (
                          eval(res) >=
                            eval(handleFraction(k[0]) - handleFraction(k[1])) &&
                          eval(handleFraction(k[0]) - handleFraction(k[1])) &&
                          eval(res) <=
                            eval(
                              Number(handleFraction(k[0])) +
                                Number(handleFraction(k[1]))
                            )
                          eval(
                            Number(handleFraction(k[0])) +
                            Number(handleFraction(k[1]))
                          )
                        );
                      }
                    } else if (m.includes(">")) {
@@ -506,8 +506,8 @@
            // 如果检验值类型是数字输入框
            let tell = currentSample.insProduct.find((m) => m.id == item.i).tell
              ? currentSample.insProduct
                  .find((m) => m.id == item.i)
                  .tell.split("&")
                .find((m) => m.id == item.i)
                .tell.split("&")
              : null;
            isPoint =
              tell &&
@@ -607,9 +607,8 @@
            // 处理excel函数参数列表
            item.valueList.forEach((a) => {
              valueList.push({
                name: `${comparisonList.find((e) => e.value == a.c).label}${
                  a.r + 1
                }`,
                name: `${comparisonList.find((e) => e.value == a.c).label}${a.r + 1
                  }`,
                value: 0,
              });
            });
@@ -796,7 +795,7 @@
        return (
          item >= eval(handleFraction(k[0]) - handleFraction(k[1])) &&
          item <=
            eval(Number(handleFraction(k[0])) + Number(handleFraction(k[1])))
          eval(Number(handleFraction(k[0])) + Number(handleFraction(k[1])))
        );
      case "~":
        let j = str.split("~");
@@ -1249,6 +1248,21 @@
    console.log("error", error);
  }
}
/**
 * 实现平方根函数 SQRT
 * @param {number} num 要开平方的数字
 * @returns {number} 算术平方根,负数返回 NaN
 */
function SQRT(num) {
  // 实数范围内,负数没有平方根,返回 NaN
  if (num < 0) {
    return NaN;
  }
  // 调用 JS 原生高精度平方根函数
  return Math.sqrt(num);
}
/**
 * 获取包含 ABC 字符的列表
 *
@@ -1269,6 +1283,7 @@
      "INT",
      "IF",
      "LOG",
      "SQRT"
    ];
    // 替换特殊字符
    f = f