Kaynağa Gözat

书名用各自列表

visuddhinanda 2 yıl önce
ebeveyn
işleme
f5081d23b9
1 değiştirilmiş dosya ile 40 ekleme ve 21 silme
  1. 40 21
      dashboard/src/components/fts/PageNumberList.tsx

+ 40 - 21
dashboard/src/components/fts/PageNumberList.tsx

@@ -34,6 +34,44 @@ const CaseListWidget = ({ keyWord, onSelect }: IWidget) => {
   const [types, setTypes] = useState<IType[]>();
   const [treeData, setTreeData] = useState<DataNode[]>();
 
+  const booksTitle = (type: string): [string[], Map<string, number[]>] => {
+    let bookNameMap = new Map<string, number[]>();
+    bookName.forEach((value) => {
+      let name: string;
+      switch (type) {
+        case "M":
+          name = value.m_title;
+          break;
+        case "P":
+          name = value.p_title;
+          break;
+        case "V":
+          name = value.v_title;
+          break;
+        default:
+          name = value.term;
+          break;
+      }
+
+      if (bookNameMap.has(name)) {
+        const id = bookNameMap.get(name);
+        if (id) {
+          id.push(value.id);
+          bookNameMap.set(name, id);
+        } else {
+          bookNameMap.set(name, [value.id]);
+        }
+      } else {
+        bookNameMap.set(name, [value.id]);
+      }
+    });
+    let bookNameList: string[] = [];
+    bookNameMap.forEach((value, key) => {
+      bookNameList.push(key);
+    });
+    return [bookNameList, bookNameMap];
+  };
+
   useEffect(() => {
     if (typeof keyWord === "undefined") {
       return;
@@ -57,28 +95,9 @@ const CaseListWidget = ({ keyWord, onSelect }: IWidget) => {
             mType.push({ key: key, value: value });
           });
           setTypes(mType);
-          let bookNameMap = new Map<string, number[]>();
-          bookName.forEach((value) => {
-            const name = value.abbr ? value.abbr : value.name;
-            if (bookNameMap.has(name)) {
-              const id = bookNameMap.get(name);
-              if (id) {
-                id.push(value.id);
-                bookNameMap.set(name, id);
-              } else {
-                bookNameMap.set(name, [value.id]);
-              }
-            } else {
-              bookNameMap.set(name, [value.id]);
-            }
-          });
-          let bookNameList: string[] = [];
-          bookNameMap.forEach((value, key) => {
-            bookNameList.push(key);
-          });
+
           const tData = mType.map((item, id1) => {
             let volumes: number[] = [];
-
             json.data
               .filter((value) => value.type === item.key)
               .forEach((value) => {
@@ -95,7 +114,7 @@ const CaseListWidget = ({ keyWord, onSelect }: IWidget) => {
                 }
               })
               .join();
-
+            const [bookNameList, bookNameMap] = booksTitle(item.key);
             return {
               title: (
                 <Space>