Browse Source

change data

nameczz 4 years ago
parent
commit
b8aa448c66

+ 11 - 5
client/src/pages/collections/Collections.tsx

@@ -4,7 +4,7 @@ import { useNavigationHook } from '../../hooks/Navigation';
 import { ALL_ROUTER_TYPES } from '../../router/Types';
 import MilvusGrid from '../../components/grid';
 import CustomToolBar from '../../components/grid/ToolBar';
-import { CollectionCreateParam, CollectionView } from './Types';
+import { CollectionCreateParam, CollectionView, DataTypeEnum } from './Types';
 import { ColDefinitionsType, ToolBarConfig } from '../../components/grid/Types';
 import { usePaginationHook } from '../../hooks/Pagination';
 import icons from '../../components/icons/Icons';
@@ -106,10 +106,16 @@ const Collections = () => {
 
   const handleCreateCollection = async (param: CollectionCreateParam) => {
     const data: CollectionCreateParam = JSON.parse(JSON.stringify(param));
-    data.fields = data.fields.map(v => ({
-      ...v,
-      type_params: [{ key: 'dim', value: v.dimension }],
-    }));
+    const vectorType = [DataTypeEnum.BinaryVector, DataTypeEnum.FloatVector];
+
+    data.fields = data.fields.map(v =>
+      vectorType.includes(v.data_type)
+        ? {
+            ...v,
+            type_params: [{ key: 'dim', value: v.dimension }],
+          }
+        : v
+    );
     await CollectionHttp.createCollection(data);
     handleCloseDialog();
     openSnackBar(successTrans('create', { name: t('collection') }));

+ 10 - 1
client/src/pages/collections/Create.tsx

@@ -130,9 +130,18 @@ const CreateCollection: FC<CollectionCreateProps> = ({ handleCreate }) => {
   ];
 
   const handleCreateCollection = () => {
+    const vectorType = [DataTypeEnum.BinaryVector, DataTypeEnum.FloatVector];
     const param: CollectionCreateParam = {
       ...form,
-      fields,
+      fields: fields.map(v => {
+        return {
+          name: v.name,
+          description: v.description,
+          is_primary_key: v.is_primary_key,
+          data_type: v.data_type,
+          dimension: vectorType.includes(v.data_type) ? v.dimension : undefined,
+        };
+      }),
     };
     handleCreate(param);
   };

+ 9 - 9
client/src/pages/collections/CreateFields.tsx

@@ -155,11 +155,11 @@ const CreateFields: FC<CreateFieldsProps> = ({
         const isValid = checkEmptyValid(value);
         setFieldsValidation(v =>
           v.map(item =>
-            item.id === field.id ? { ...item, name: isValid } : item
+            item.id === field.id! ? { ...item, name: isValid } : item
           )
         );
 
-        changeFields(field.id, 'name', value);
+        changeFields(field.id!, 'name', value);
       },
       validate: (value: any) => {
         if (value === null) return ' ';
@@ -177,7 +177,7 @@ const CreateFields: FC<CreateFieldsProps> = ({
       label: t('description'),
       value: field.description,
       handleChange: (value: string) =>
-        changeFields(field.id, 'description', value),
+        changeFields(field.id!, 'description', value),
       className: classes.descInput,
     });
   };
@@ -191,11 +191,11 @@ const CreateFields: FC<CreateFieldsProps> = ({
           value,
           rule: 'positiveNumber',
         });
-        changeFields(field.id, 'dimension', `${value}`);
+        changeFields(field.id!, 'dimension', `${value}`);
 
         setFieldsValidation(v =>
           v.map(item =>
-            item.id === field.id ? { ...item, dimension: isValid } : item
+            item.id === field.id! ? { ...item, dimension: isValid } : item
           )
         );
       },
@@ -232,7 +232,7 @@ const CreateFields: FC<CreateFieldsProps> = ({
       is_primary_key: false,
       description: '',
       isDefault: false,
-      dimension: 128,
+      dimension: '128',
       id,
     };
     const newValidation = {
@@ -291,7 +291,7 @@ const CreateFields: FC<CreateFieldsProps> = ({
             'vector',
             t('fieldType'),
             field.data_type,
-            (value: DataTypeEnum) => changeFields(field.id, 'data_type', value)
+            (value: DataTypeEnum) => changeFields(field.id!, 'data_type', value)
           )}
 
           {generateFieldName(field)}
@@ -324,7 +324,7 @@ const CreateFields: FC<CreateFieldsProps> = ({
           'all',
           t('fieldType'),
           field.data_type,
-          (value: DataTypeEnum) => changeFields(field.id, 'data_type', value)
+          (value: DataTypeEnum) => changeFields(field.id!, 'data_type', value)
         )}
 
         {generateDesc(field)}
@@ -343,7 +343,7 @@ const CreateFields: FC<CreateFieldsProps> = ({
           'all',
           t('fieldType'),
           field.data_type,
-          (value: DataTypeEnum) => changeFields(field.id, 'data_type', value)
+          (value: DataTypeEnum) => changeFields(field.id!, 'data_type', value)
         )}
         {generateDimension(field)}
 

+ 1 - 1
client/src/pages/collections/Types.ts

@@ -55,7 +55,7 @@ export interface Field {
   description: string;
   dimension?: number | string;
   isDefault?: boolean;
-  id: string;
+  id?: string;
   type_params?: { key: string; value: any }[];
 }