From e4278df3b718638bc5511ff34c4c571b0da305a3 Mon Sep 17 00:00:00 2001
From: QYF-GitLab1 <1940665526@qq.com>
Date: 星期五, 26 七月 2024 11:39:56 +0800
Subject: [PATCH] 1

---
 src/pages/academicSchools/index.vue |  290 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 222 insertions(+), 68 deletions(-)

diff --git a/src/pages/academicSchools/index.vue b/src/pages/academicSchools/index.vue
index 85406aa..62ff658 100644
--- a/src/pages/academicSchools/index.vue
+++ b/src/pages/academicSchools/index.vue
@@ -2,7 +2,7 @@
   <view
     style="width: 100%; height: 100%; display: flex; flex-direction: column"
   >
-    <headNav :idIndex="'6'" text="瀛︽湳娴佹淳" />
+    <headNav :idIndex="'6'" text="瀛︽湳鍥捐氨" />
     <!-- 楂樼骇鎼滅储 -->
     <view
       style="
@@ -135,12 +135,21 @@
             <el-button
               size="mini"
               style="background-color: #244a7b; color: #fff"
-              @click="searchFun"
+              @click="
+                () => {
+                  searchKey = '';
+                  formData.page = 1;
+                  searchFun();
+                }
+              "
               >鎼滅储</el-button
             >
             <el-button size="mini" @click="resetForm">閲嶇疆</el-button>
           </div>
         </el-form>
+        <div style="font-size: 14px">
+          娉�:褰撳墠鏁版嵁杈冨锛屽彲鑳戒細鍑虹幇鍗℃鐨勬儏鍐碉紝璇峰敖閲忕簿纭煡璇㈡垨鏌ョ湅鏌愪竴绫绘暟鎹叧绯�
+        </div>
         <div class="fromTable">
           <el-table
             :data="tableData"
@@ -149,49 +158,65 @@
             empty-text="鏆傛棤鎼滅储淇℃伅"
             size="small"
             :border="true"
+            :height="tableData.length > 0 ? '443' : 'auto'"
           >
             <el-table-column
               prop="id"
               label="搴忓彿"
               width="70"
             ></el-table-column>
-            <el-table-column prop="personName" width="120" label="濮撳悕">
+            <el-table-column prop="name" width="150" label="濮撳悕">
               <template slot-scope="scope">
                 <a
                   style="cursor: pointer; color: #027edc"
-                  @click="gotoDetail(scope.row.id)"
-                  >{{ scope.row.personName }}</a
+                  @click="
+                    () => {
+                      currentId = scope.row.id;
+                      getData();
+                      isAdvancedSearch = false;
+                    }
+                  "
+                  >{{ scope.row.name }}</a
                 >
               </template>
             </el-table-column>
-            <el-table-column prop="personAlias" label="鍒悕"></el-table-column>
-            <el-table-column prop="palce" label="娲诲姩鍦�"></el-table-column>
+            <el-table-column prop="alias" label="鍒悕"></el-table-column>
+            <el-table-column prop="place" label="娲诲姩鍦�"></el-table-column>
             <el-table-column
-              prop="birthYear"
+              prop="medicalBranch"
               label="鍖诲鍒嗙"
-              width="120"
+              width="150"
             ></el-table-column>
-            <el-table-column prop="deathYear" label="浣滃搧"></el-table-column>
+            <el-table-column prop="workName" label="浣滃搧"></el-table-column>
             <el-table-column
-              prop="nativePlace"
-              width="120"
+              prop="personLabel"
+              width="150"
               label="浜虹墿鏍囩"
             ></el-table-column>
             <el-table-column
               prop="socialDistinction"
               label="绀句細韬唤"
-              width="120"
+              width="150"
             ></el-table-column>
             <el-table-column
-              prop="official"
-              width="120"
+              prop="period"
+              width="150"
               label="鏃舵湡"
             ></el-table-column>
           </el-table>
-          <div style="text-align: right;padding-top: 20px;">
-            <el-button style="width: 120px;background-color: #244a7b; color: #fff"
-              >纭</el-button
+          <div class="drawerPage">
+            <el-pagination
+              class="paging flex"
+              background
+              @size-change="handleSizeChangeForm"
+              @current-change="handleCurrentChangeForm"
+              :current-page="formData.page"
+              :page-sizes="[10, 20, 60, 100]"
+              :page-size="formData.pageSize"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="formData.total"
             >
+            </el-pagination>
           </div>
         </div>
       </view>
@@ -204,7 +229,7 @@
             }
           "
         ></i>
-        <el-table :data="personList" style="width: 100%">
+        <el-table :data="personList" style="width: 100%" :max-height="600">
           <el-table-column prop="name" label="濮撳悕">
             <template slot-scope="scope">
               <span
@@ -233,7 +258,7 @@
       style="margin-top: 0.1rem; flex: 1; width: 100%; position: relative"
     >
       <div
-        v-if="!loading && relationships.length == 0"
+        v-if="!loading && nodeDatas.length == 0"
         style="
           position: absolute;
           top: 30%;
@@ -282,11 +307,10 @@
         <span @click="closeDom">鍏抽棴</span>
       </div>
       <div class="content">
-        <p>濮撳悕锛歿{ detailData.name }}</p>
-        <p>鍒悕锛歿{ detailData.alias }}</p>
-        <p>绫嶈疮锛歿{ detailData.nativePlace }}</p>
-        <p>鍖诲鍒嗙锛� {{ detailData.medicalBranch }}</p>
-        <p>灏忎紶锛歿{ detailData.biography }}</p>
+        <p>浠h〃浜虹墿锛歿{ detailData.character }}</p>
+        <p>閲嶈鍖诲锛歿{ detailData.skilledDoctor }}</p>
+        <p>浠h〃鎬ц憲浣滐細{{ detailData.works }}</p>
+        <p>瀛︽淳鎬濇兂锛� {{ detailData.thought }}</p>
       </div>
       <div class="btn" @click="spaceTimeArr(detailData.id)">鏌ョ湅鏇村>>></div>
     </div>
@@ -357,7 +381,7 @@
             background
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
-            :current-page="currentPage"
+            :current-page="page"
             :page-sizes="[10, 20, 60, 100]"
             :page-size="pageSize"
             layout="total, sizes, prev, pager, next, jumper"
@@ -383,6 +407,7 @@
   getPersonTag,
   getSocialDistinction,
   getDynastyAll,
+  getAdvancedData,
   getPlaceInfo,
 } from "@/api/index.js";
 import * as echarts from "echarts";
@@ -419,8 +444,8 @@
           name: "娲诲姩鍦�",
         },
         {
-          name: "瀛︽湳娴佹淳",
-        },
+          name: "瀛︽湳鍥捐氨"
+        }
       ],
       // 褰撳墠浜虹墿淇℃伅
       ownInfo: null,
@@ -435,6 +460,10 @@
         personTags: "",
         socialIdentity: "",
         period: "",
+        page: 1,
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
       },
       showPerson: false,
       personList: [],
@@ -479,10 +508,11 @@
   methods: {
     // 鎼滅储鍦板潃
     searchAddress() {
+      this.page = 1;
       this.gridData = [];
       this.getAddressList();
     },
-    //  鍒嗛〉
+    // 鍒嗛〉
     handleSizeChange(val) {
       this.pageSize = val;
       this.getAddressList();
@@ -490,6 +520,15 @@
     handleCurrentChange(val) {
       this.page = val;
       this.getAddressList();
+    },
+
+    handleSizeChangeForm(val) {
+      this.formData.pageSize = val;
+      this.searchFun();
+    },
+    handleCurrentChangeForm(val) {
+      this.formData.page = val;
+      this.searchFun();
     },
     // 琛ㄦ牸閫夋嫨
     handleSelectionChange(val) {
@@ -548,12 +587,6 @@
               index: i,
             };
           });
-          setTimeout(() => {
-            this.multipleTableSelection.forEach((row) => {
-              this.$refs.multipleTable.toggleRowSelection(row);
-            });
-            this.formData.actively = this.multipleTableSelection;
-          }, 2000);
         } else {
           this.gridData = [];
         }
@@ -577,14 +610,129 @@
         name: "",
         actively: [],
         works: "",
-        personTags: "",
-        socialIdentity: "",
-        period: "",
+        personTags: [],
+        socialIdentity: [],
+        period: [],
+        page: 1,
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
       };
+      this.formData.page = 1;
+      this.searchFun();
     },
-
     searchFun() {
-      console.log(this.formData);
+      const palceData = this.formData.actively?.map((item) => {
+        return {
+          ancientName: item.ancientName ?? "",
+          dynastyId: item.dynastyId,
+          currentName: item.currentName,
+        };
+      });
+      let Obj = {
+        keyword: this.formData.name,
+        placeList: [...palceData],
+        literatureName: this.formData.works,
+        personTagIdList: this.formData.personTags,
+        socialDistinctionIdList: this.formData.socialIdentity,
+        dynastyIdList: this.formData.period,
+        page: this.formData.page,
+        pageSize: this.formData.pageSize,
+      };
+      // // 鎼滅储
+      getAdvancedData(Obj).then((res) => {
+        if (res?.success) {
+          this.tableData = res.list.map((item) => {
+            return {
+              id: item.personId,
+              name:
+                item?.NAME?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+              alias:
+                item?.ALIAS?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+              place:
+                item?.NATIVE_PLACE?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+              medicalBranch:
+                item?.MEDICAL_BRANCH?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+              socialDistinction:
+                item?.SOCIAL_IDENTITY?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+              period:
+                item?.PERIOD?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+              workName:
+                item?.REPRESENTATIVE_WORKS?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+              personLabel:
+                item?.PERSON_LABEL?.map((e, i) => {
+                  let data = [];
+                  Object.entries(e).forEach((c) => {
+                    if (c[0]?.indexOf("content") > -1) {
+                      data.push(c[1]);
+                    }
+                  });
+                  return data;
+                }).join() ?? "",
+            };
+          });
+          if (res?.npage) {
+            // 鎬绘暟閲�
+            this.formData.total = res.npage.totalCount;
+          }
+        }
+      });
     },
 
     selectActively() {
@@ -724,6 +872,7 @@
       }
       return arr;
     },
+
     //鏁扮粍鍘婚噸
     deduplicateArray(arr, idKey) {
       // 浣跨敤涓�涓緟鍔╁璞℃潵璺熻釜宸茬粡瑙佽繃鐨処D
@@ -845,7 +994,7 @@
         //       place = [...newArr];
         //     }
         //     if (obj.schoolList?.length) {
-        //       this.categories.push({ name: "瀛︽湳娴佹淳" });
+        //       this.categories.push({ name: "瀛︽湳鍥捐氨" });
         //       let newArr = [];
         //       const data = this.changeLiterature(obj.schoolList, "schoolList");
         //       this.getPersonInfo(
@@ -1075,7 +1224,7 @@
         if (item.placeList && item.placeList.length) {
           this.handleData(item.placeList, { ...item, thisType: 3 });
         }
-        // 瀛︽湳娴佹淳
+        // 瀛︽湳鍥捐氨
         if (item.schoolList && item.schoolList.length) {
           this.handleData(item.schoolList, { ...item, thisType: 4 });
         }
@@ -1243,30 +1392,22 @@
         div.style.display = "block";
         div.style.left = e.offsetX + 50 + "px";
         div.style.top = e.offsetY - 50 + "px";
-        const data = this.infoOfPersons?.find((i) => i.id == id);
+        const data = this.infoOfSchools?.find((i) => i.schoolId == id);
         const obj = {
           id: params.data.id,
-          name:
-            data?.NAME?.map((e, i) => {
-              i += 1;
-              return e["content" + i];
-            }).join("銆�") ?? "",
-          alias:
-            data?.ALIAS?.map((e, i) => {
-              i += 1;
-              return e["content" + i];
-            }).join("銆�") ?? "",
-          nativePlace:
-            data?.NATIVE_PLACE?.map((e, i) => {
-              i += 1;
-              return e["content" + i];
-            }).join("銆�") ?? "",
-          medicalBranch:
-            data?.MEDICAL_BRANCH?.map((e, i) => {
-              i += 1;
-              return e["content" + i];
-            }).join("銆�") ?? "",
-          biography: data?.BIOGRAPHY ?? "",
+          name: data.name[0],
+          character: data.important_people
+            ? data.important_people.map((item) => item.personName).join("銆�")
+            : "",
+          skilledDoctor: data.important_physician
+            ? data.important_physician.map((item) => item.personName).join("銆�")
+            : "",
+          works: data.important_work
+            ? data.important_work.map((item) => item.literatureTitle).join("銆�")
+            : "",
+          thought: data.school_introduction
+            ? data.school_introduction.map((item) => item).join("銆�")
+            : "",
         };
         this.detailData = obj;
       }
@@ -1276,9 +1417,9 @@
       const div = document.getElementById("customDialog");
       div.style.display = "none";
     },
+
     // 鍩虹鎼滅储
     onSearch(val, index) {
-      console.log(val);
       if (index !== undefined) {
         // 鐑棬鎼滅储鍏抽敭瀛楋紝鐩存帴鏌ヨ鏁版嵁
         this.searchKey = "";
@@ -1292,12 +1433,13 @@
         this.searchPerson(val.text);
       }
     },
+
     // 鏍规嵁鍏抽敭瀛楁绱汉鐗�
     searchPerson(key) {
       academicSearch({
         keyword: key,
-        page: this.personPageInfo.page,
-        pageSize: this.personPageInfo.limit,
+        page: 1,
+        pageSize: 999
       }).then((res) => {
         this.personList = res.list.map((item) => {
           return {
@@ -1324,6 +1466,7 @@
         this.showPerson = true;
       });
     },
+
     // 鍏崇郴鍥� 鐐瑰嚮閲岄潰鐨勫厓绱�
     spaceTimeArr(id) {
       // 鍏崇郴鍥剧殑鏁版嵁
@@ -1331,6 +1474,7 @@
         url: "/pages/character/detail?id=" + id,
       });
     },
+
     // 鑾峰彇鏈濅唬echarts鐨勬暟鎹�
     echartsArr() {
       getDataStatistics().then((res) => {
@@ -1344,6 +1488,7 @@
         });
       });
     },
+
     // 鐑棬鎼滅储
     hotSearch() {
       getHotSearch().then((res) => {
@@ -1357,6 +1502,7 @@
         });
       });
     },
+
     isAvancedClick() {
       this.isAdvancedSearch = !this.isAdvancedSearch;
       // this.$nextTick(() => {
@@ -1384,6 +1530,14 @@
   color: #333;
   font-weight: normal;
   font-size: 14px;
+}
+
+.fromTable
+  .drawerPage
+  >>> .el-pagination.is-background
+  .el-pager
+  li:not(.disabled).active {
+  background-color: rgb(36, 74, 123) !important;
 }
 
 .customDrawer >>> .el-drawer__header {
@@ -1486,7 +1640,7 @@
   min-height: 240px;
   display: none;
   position: fixed;
-  z-index: 99999999;
+  z-index: 9999999;
   border-radius: 2px;
   background: #fff;
 }

--
Gitblit v1.9.1