From 33fcee66dfbf7fb95f4784e7a290caad2b375845 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 28 Feb 2024 15:09:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(utils):=20=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E8=A7=A3=E6=9E=90=E7=A9=BA=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/utils/src/index.ts | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 637e3867..cbbf6125 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -283,32 +283,36 @@ export const compiledNode = ( return node; }; -export const compiledCond = (op: string, fieldValue: any, value: any, range: number[] = []): boolean => { +export const compiledCond = (op: string, fieldValue: any, inputValue: any, range: number[] = []): boolean => { + if (typeof fieldValue === 'string' && typeof inputValue === 'undefined') { + inputValue = ''; + } + switch (op) { case 'is': - return fieldValue === value; + return fieldValue === inputValue; case 'not': - return fieldValue !== value; + return fieldValue !== inputValue; case '=': - return fieldValue === value; + return fieldValue === inputValue; case '!=': - return fieldValue !== value; + return fieldValue !== inputValue; case '>': - return fieldValue > value; + return fieldValue > inputValue; case '>=': - return fieldValue >= value; + return fieldValue >= inputValue; case '<': - return fieldValue < value; + return fieldValue < inputValue; case '<=': - return fieldValue <= value; + return fieldValue <= inputValue; case 'between': return range.length > 1 && fieldValue >= range[0] && fieldValue <= range[1]; case 'not_between': return range.length < 2 || fieldValue < range[0] || fieldValue > range[1]; case 'include': - return fieldValue?.includes?.(value); + return fieldValue?.includes?.(inputValue); case 'not_include': - return typeof fieldValue === 'undefined' || !fieldValue.includes?.(value); + return typeof fieldValue === 'undefined' || !fieldValue.includes?.(inputValue); default: break; }