Browse Source

support array_contains (#469)

Signed-off-by: ryjiang <jiangruiyi@gmail.com>
ryjiang 1 year ago
parent
commit
5516f24ddd

+ 2 - 2
client/src/components/advancedSearch/Filter.tsx

@@ -96,8 +96,8 @@ const Filter = forwardRef((props: FilterProps, ref) => {
 
 
       let newExpr = `${n} ${op} ${value}`;
       let newExpr = `${n} ${op} ${value}`;
 
 
-      // rewrite expression if the op is JSON_CONTAINS
-      if (op === 'JSON_CONTAINS') {
+      // rewrite expression if the op is JSON_CONTAINS/ARRAY_CONTAINS
+      if (op === 'JSON_CONTAINS' || op === 'ARRAY_CONTAINS') {
         newExpr = `${op}(${n}, ${value})`;
         newExpr = `${op}(${n}, ${value})`;
       }
       }
 
 

+ 4 - 0
client/src/components/advancedSearch/utils.ts

@@ -20,6 +20,7 @@ export const formatValue = (value: string, type: string, operator: string) => {
           conditionValue = `[${value}]`;
           conditionValue = `[${value}]`;
           break;
           break;
         case 'JSON_CONTAINS':
         case 'JSON_CONTAINS':
+        case 'ARRAY_CONTAINS':
           conditionValue = `${value}`;
           conditionValue = `${value}`;
           break;
           break;
         default:
         default:
@@ -83,6 +84,9 @@ export const checkValue = (data: any): boolean => {
         operator: data.operator,
         operator: data.operator,
       });
       });
       break;
       break;
+    case DataTypeStringEnum.Array:
+      isLegal = data.value !== '';
+      break;
     default:
     default:
       isLegal = false;
       isLegal = false;
       break;
       break;

+ 4 - 0
client/src/consts/Util.ts

@@ -46,6 +46,10 @@ export const LOGICAL_OPERATORS = [
     value: 'JSON_CONTAINS',
     value: 'JSON_CONTAINS',
     label: 'JSON_CONTAINS',
     label: 'JSON_CONTAINS',
   },
   },
+  {
+    value: 'ARRAY_CONTAINS',
+    label: 'ARRAY_CONTAINS',
+  },
 ];
 ];
 
 
 export enum FILE_MIME_TYPE {
 export enum FILE_MIME_TYPE {