Browse Source

fix export issue #195

Signed-off-by: shanghaikid <jiangruiyi@gmail.com>
shanghaikid 2 years ago
parent
commit
4d288c3f83
2 changed files with 15 additions and 26 deletions
  1. 2 2
      client/package.json
  2. 13 24
      client/src/pages/query/Query.tsx

+ 2 - 2
client/package.json

@@ -51,8 +51,8 @@
     "@vitest/coverage-c8": "^0.25.0",
     "jsdom": "^20.0.2",
     "prettier": "2.3.2",
-    "vitest": "^0.24.5",
-    "typescript": "^4.1.2"
+    "typescript": "^4.1.2",
+    "vitest": "^0.24.5"
   },
   "homepage": "./",
   "scripts": {

+ 13 - 24
client/src/pages/query/Query.tsx

@@ -1,14 +1,7 @@
-import {
-  FC,
-  useEffect,
-  useState,
-  useRef,
-  useMemo,
-  useContext,
-  useCallback,
-} from 'react';
+import { FC, useEffect, useState, useRef, useMemo, useContext } from 'react';
 import { TextField } from '@material-ui/core';
 import { useTranslation } from 'react-i18next';
+import { Parser } from '@json2csv/plainjs';
 import { rootContext } from '../../context/Root';
 import EmptyCard from '../../components/cards/EmptyCard';
 import icons from '../../components/icons/Icons';
@@ -53,9 +46,6 @@ const Query: FC<{
 
   const classes = getQueryStyles();
 
-  // const { timeTravel, setTimeTravel, timeTravelInfo, handleDateTimeChange } =
-  //   useTimeTravelHook();
-
   // Format result list
   const queryResultMemo = useMemo(
     () =>
@@ -93,14 +83,6 @@ const Query: FC<{
     [queryResult, classes.vectorTableCell, classes.copyBtn, copyTrans.label]
   );
 
-  const csvDataMemo = useMemo(() => {
-    const headers: string[] = fields?.map(i => i.name);
-    if (headers?.length && queryResult?.length) {
-      return generateCsvData(headers, queryResult);
-    }
-    return '';
-  }, [fields, queryResult]);
-
   const {
     pageSize,
     handlePageSize,
@@ -216,10 +198,17 @@ const Query: FC<{
     {
       type: 'iconBtn',
       onClick: () => {
-        const csvData = new Blob([csvDataMemo.toString()], {
-          type: 'text/csv;charset=utf-8',
-        });
-        saveAs(csvData, 'milvus_query_result.csv');
+        try {
+          const opts = {};
+          const parser = new Parser(opts);
+          const csv = parser.parse(queryResult);
+          const csvData = new Blob([csv], {
+            type: 'text/csv;charset=utf-8',
+          });
+          saveAs(csvData, 'milvus_query_result.csv');
+        } catch (err) {
+          console.error(err);
+        }
       },
       label: '',
       icon: 'download',