From e00361c6bcbb1a56f6dcda22b91bdfcb2736e263 Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期五, 26 七月 2024 15:56:27 +0800
Subject: [PATCH] 1

---
 src/pages/knowledgeBase/knowledgeBase.vue |  299 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 197 insertions(+), 102 deletions(-)

diff --git a/src/pages/knowledgeBase/knowledgeBase.vue b/src/pages/knowledgeBase/knowledgeBase.vue
index 74eb53c..3371c48 100644
--- a/src/pages/knowledgeBase/knowledgeBase.vue
+++ b/src/pages/knowledgeBase/knowledgeBase.vue
@@ -1,13 +1,13 @@
 <template>
   <view>
     <!-- 椤堕儴 -->
-    <headNav idIndex="0" text="涓浗鍖诲浜虹墿鐭ヨ瘑搴�" />
+    <headNav idIndex="0" text="涓浗鍘嗕唬鍖诲浜虹墿鐭ヨ瘑搴�" />
     <!-- 鎼滅储 -->
     <view class="flex flex-center Search">
       <!-- <luanqing-search class="search_bar" @onSearch="onSearch"></luanqing-search> -->
       <advancedSearch
         @onSearch="onSearch"
-        placehold="杈撳叆濮撳悕/鍒悕/鏈濅唬/浼犱富鑱屼笟鎼滅储"
+        placehold="杈撳叆濮撳悕/鍒悕/鏃舵湡/浼犱富鑱屼笟鎼滅储"
         :isAvancedTrue="false"
         :keyword="keywords"
       />
@@ -15,7 +15,7 @@
         class="advancedSea"
         @click="isAvancedClick"
         style="color: #244a7b; cursor: pointer"
-        >楂樼骇鎼滅储 {{isAdvancedSearch ? "鈭�" : "鈭�"}}</view
+        >楂樼骇鎼滅储 {{ isAdvancedSearch ? "鈭�" : "鈭�" }}</view
       >
     </view>
     <!-- 鐑棬鎼滅储 -->
@@ -26,11 +26,11 @@
       鐑棬鎼滅储锛�
       <ul class="flex" style="margin-right: 10rpx">
         <li
-          v-for="item in hot"
-          @click="hotSearchClick(item)"
+          v-for="(item, index) in hot"
+          @click="hotSearchClick(item, index)"
           :key="item.id"
-          class="cursor"
-          style="color: #5879a4"
+          :class="{ cursor: true, active: hotAciveIndex === index }"
+          style="color: #244a7b"
         >
           {{ item.name }}
         </li>
@@ -47,7 +47,16 @@
         class="advancedSeaTrue1"
       >
         <h3>楂樼骇鎼滅储</h3>
-        <MyForm @submit="onSubmit" @reset="resetForm" :from="from" />
+        <MyForm
+          @submit="
+            (data) => {
+              CurrentPage = 1;
+              onSubmit(data);
+            }
+          "
+          @reset="resetForm"
+          :from="from"
+        />
       </view>
     </view>
     <uni-row
@@ -77,15 +86,15 @@
               :style="{
                 background: profession.index === item.tagId ? '#d6e3f4' : '',
                 borderRadius: profession.index === item.tagId ? '60rpx' : '',
-                display: index + 1 > professionIndex ? 'none' : 'flex',
+                display: index + 1 > professionIndex ? 'none' : 'flex'
               }"
               v-for="(item, index) in profession.list"
               :key="index"
               style="padding: 0 20rpx; line-height: 0.3rem; height: 0.3rem"
               @click="handInstitCLick(item, 'a')"
             >
-              <view >{{ item.tagName }}</view>
-              <view >{{ item.count }}</view>
+              <view>{{ item.tagName }}</view>
+              <view>{{ item.count }}</view>
             </li>
           </ul>
           <view v-if="profession.list.length - 1 > 3" class="flex flex-center">
@@ -115,15 +124,15 @@
               :style="{
                 background: dynasty.index === item.dynastyId ? '#d6e3f4' : '',
                 borderRadius: dynasty.index === item.dynastyId ? '60rpx' : '',
-                display: index + 1 > dynastyIndex ? 'none' : 'flex',
+                display: index + 1 > dynastyIndex ? 'none' : 'flex'
               }"
               v-for="(item, index) in dynasty.list"
               :key="index"
               style="padding: 0 20rpx"
               @click="handInstitCLick(item, 'b')"
             >
-              <view >{{ item.dynastyName }}</view>
-              <view >{{ item.count }}</view>
+              <view>{{ item.dynastyName }}</view>
+              <view>{{ item.count }}</view>
             </li>
           </ul>
           <view v-if="dynasty.list.length - 1 > 3" class="flex flex-center">
@@ -160,7 +169,7 @@
               style="padding: 0 20rpx; color: #244a7b"
               @click="handInstitCLick(item, 'c')"
             >
-              <view >{{ index + 1 + ". " + item.source }}</view>
+              <view>{{ index + 1 + ". " + item.source }}</view>
             </li>
           </ul>
           <!-- 	<view class="flex flex-center">
@@ -182,19 +191,32 @@
         "
       >
         <view class="flex lightTop" style="width: 100%; margin: 0.1rem 0">
-          <view  style="color: #2c2c2c">鍏眥{ total }}鏉�</view>
+          <view style="color: #2c2c2c">鍏眥{ total }}鏉�</view>
           <el-button size="small" @click="exportClick">涓嬭浇</el-button>
         </view>
-        <el-table :data="tableData" class="lightBo" style="width: 100%" empty-text="鏆傛棤鎼滅储淇℃伅">
+        <el-table
+          :data="tableData"
+          class="lightBo"
+          style="width: 100%"
+          empty-text="鏆傛棤鎼滅储淇℃伅"
+        >
           <el-table-column prop="id" label="搴忓彿" width="110"></el-table-column>
-          <el-table-column prop="personName" label="濮撳悕"></el-table-column>
+          <el-table-column prop="personName" label="濮撳悕">
+            <template slot-scope="scope">
+              <a
+                style="cursor: pointer; color: #027edc"
+                @click="gotoDetail(scope.row.id)"
+                >{{ scope.row.personName }}</a
+              >
+            </template>
+          </el-table-column>
           <el-table-column prop="personAlias" label="鍒悕"></el-table-column>
           <el-table-column
             prop="gender"
             label="鎬у埆"
             width="70"
           ></el-table-column>
-          <el-table-column prop="period" label="鏃朵唬"></el-table-column>
+          <el-table-column prop="period" label="鏃舵湡"></el-table-column>
           <el-table-column
             prop="birthYear"
             label="鐢熷勾"
@@ -247,14 +269,16 @@
   getPList,
   getHotSearch,
   getPersonList,
+  getInstitutionList
 } from "@/api/index.js";
 export default {
   components: {
     Footer1,
-    MyForm,
+    MyForm
   },
   data() {
     return {
+      hotAciveIndex: "",
       // 楂樼骇鎼滅储鏄剧ず
       isAdvancedSearch: false,
       // 楂樼骇鎼滅储
@@ -264,19 +288,19 @@
             type: "input",
             label: "濮撳悕",
             name: "name",
-            value: "",
+            value: ""
           },
           {
             type: "input",
             label: "鍒悕",
             name: "alias",
-            value: "",
+            value: ""
           },
           {
             type: "input",
             label: "绫嶈疮",
             name: "nativePlace",
-            value: "",
+            value: ""
           },
           {
             type: "select",
@@ -286,20 +310,20 @@
             options: [
               {
                 label: "鍖诲",
-                value: "1",
+                value: "1"
               },
               {
                 label: "涓栧",
-                value: "2",
-              },
-            ],
+                value: "2"
+              }
+            ]
           },
-          {
-            type: "input",
-            label: "鑱屽畼",
-            name: "official",
-            value: "",
-          },
+          // {
+          //   type: "input",
+          //   label: "鑱屽畼",
+          //   name: "official",
+          //   value: ""
+          // },
           {
             type: "select",
             label: "鎬у埆",
@@ -308,31 +332,31 @@
             options: [
               {
                 label: "鏈寚鏄�",
-                value: "UNKNOWN",
+                value: "UNKNOWN"
               },
               {
                 label: "鐢�",
-                value: "MALE",
+                value: "MALE"
               },
               {
                 label: "濂�",
-                value: "WOMAN",
-              },
-            ],
+                value: "WOMAN"
+              }
+            ]
           },
           {
             type: "input",
-            label: "鏃堕棿",
+            label: "鏃舵湡",
             name: "dynasty",
-            value: "",
-          },
-          {
-            type: "input",
-            label: "鏈烘瀯",
-            name: "institution",
-            value: "",
-          },
-        ],
+            value: ""
+          }
+          // {
+          //   type: "select",
+          //   label: "鏈烘瀯",
+          //   name: "institution",
+          //   options: []
+          // }
+        ]
       },
 
       // 鐑棬鎼滅储
@@ -342,7 +366,7 @@
         title: "鑱屼笟",
         index: 0,
         id: 0,
-        list: [],
+        list: []
       },
       // 鐜板湪澶氬皯鏉¤亴涓氭暟鎹�
       professionIndex: 4,
@@ -350,10 +374,10 @@
       activeBox: null,
       // 鏃舵湡
       dynasty: {
-        title: "鏃朵唬",
+        title: "鏃舵湡",
         id: "",
         index: "",
-        list: [],
+        list: []
       },
       // 鐜板湪澶氬皯鏉℃椂鏈熸暟鎹�
       dynastyIndex: 4,
@@ -362,12 +386,12 @@
         title: "鏉ユ簮",
         index: 0,
         id: 0,
-        list: [],
+        list: []
       },
       // 琛ㄦ牸鐨勬暟缁�
       tableData: [],
       // 鍒嗛〉鐨勬�绘暟
-      total: 100,
+      total: 0,
       // 褰撳墠椤�
       CurrentPage: 1,
       // 涓�椤垫樉绀哄灏戞潯鏁版嵁
@@ -381,17 +405,59 @@
         nativePlace: "",
         tagId: "",
         official: "",
-        genderType: "",
+        genderType: ""
       },
+      aSearchData: ""
     };
   },
   onLoad(options) {
-    this.onSearch({ text: options.keyword });
+    if (options.isAdvancedSearch && options.isAdvancedSearch == "1") {
+      this.isAdvancedSearch = true;
+    }
+    if (options.official) {
+      if (options.official) {
+        this.from.from[
+          this.from.from.findIndex((item) => item.name == "official")
+        ].value = options.official;
+      }
+
+      const result = this.from.from.reduce((obj, item) => {
+        obj[item.name] = item.value;
+        return obj;
+      }, {});
+      // 鎻愪氦閫昏緫
+      this.onSubmit(result);
+    } else {
+      if (options.dynasty) {
+        this.dynasty.index = Number(options.dynasty);
+        this.dynasty.id = Number(options.dynasty);
+      }
+      this.onSearch({ text: options.keyword });
+    }
   },
   mounted() {
     this.getStatistics();
+    this.institutionList();
   },
   methods: {
+    institutionList() {
+      getInstitutionList().then((res) => {
+        this.$set(
+          this.from.from[
+            this.from.from.findIndex((item) => item.name == "institution")
+          ],
+          "options",
+          res.list.map((item) => {
+            return {
+              label: item.name,
+              value: item.id
+            };
+          })
+        );
+
+        console.log(this.from.from);
+      });
+    },
     //閲嶇疆鎼滅储缁撴灉
     resetForm() {
       this.onSearch("");
@@ -420,7 +486,7 @@
         institution: "", //鏈烘瀯
         bookId: null, //鏉ユ簮id
         page: 1,
-        pageSize: 1,
+        pageSize: 1
       };
       // // 鎼滅储
       await getPDownload(Obj).then((res) => {
@@ -443,7 +509,7 @@
             鍗掑勾: dataList[i].deathYear,
             绫嶈疮: dataList[i].nativePlace,
             绀句細韬唤: dataList[i].socialDistinction,
-            瀹樿亴: dataList[i].official,
+            瀹樿亴: dataList[i].official
           };
 
           dataTable.push(obj); //   璁剧疆excel姣忓垪鑾峰彇鐨勬暟鎹簮
@@ -469,7 +535,7 @@
             "鍗掑勾",
             "绫嶈疮",
             "绀句細韬唤",
-            "瀹樿亴",
+            "瀹樿亴"
           ],
           //   excel鏂囦欢鍒楀悕
           sheetFilter: [
@@ -483,26 +549,26 @@
             "鍗掑勾",
             "绫嶈疮",
             "绀句細韬唤",
-            "瀹樿亴",
-          ],
+            "瀹樿亴"
+          ]
           // columnWidths: ['10', '10', '20'] //excel鍒楀搴﹁缃�
-        },
+        }
       ];
       this.Ture();
     },
     // 鎺ュ彛
-    async getStatistics() {
+    getStatistics() {
       // 鐑棬鎼滅储
-      await getHotSearch().then((res) => {
+      getHotSearch().then((res) => {
         this.hot = Object.keys(res.object).map((key) => {
           return {
             id: parseInt(key),
-            name: res.object[key],
+            name: res.object[key]
           };
         });
       });
       // 鍙充晶鑱屼笟銆佹椂鏈熴�佹潵婧愮殑鏁版嵁
-      await getPDataStatistics().then((res) => {
+      getPDataStatistics().then((res) => {
         let totalCount1 = res.object.occupationStatistic.details.reduce(
           (total, item) => total + item.count,
           0
@@ -514,7 +580,7 @@
         // 鑱屼笟
         this.profession.list = [
           { count: totalCount1, tagName: "鍏ㄩ儴", tagId: 0 },
-          ...res.object.occupationStatistic.details,
+          ...res.object.occupationStatistic.details
         ];
         // 楂樼骇鎼滅储閲岄潰鐨勮亴涓�--------------------------------------------------
         // 鎵惧埌鑱屼笟瀛楁鍦� from 瀵硅薄涓殑绱㈠紩
@@ -526,7 +592,7 @@
           // 灏� profession.list 杞崲涓� options 鏍煎紡
           const options = this.profession.list.map((item) => ({
             label: item.tagName,
-            value: item.tagId.toString(), // 灏� id 杞崲涓哄瓧绗︿覆锛岀‘淇濅笌 value 绫诲瀷涓�鑷�
+            value: item.tagId.toString() // 灏� id 杞崲涓哄瓧绗︿覆锛岀‘淇濅笌 value 绫诲瀷涓�鑷�
           }));
 
           // 鏇存柊鑱屼笟瀛楁鐨� options 灞炴��
@@ -537,16 +603,21 @@
         // 鏃舵湡
         this.dynasty.list = [
           { count: totalCount2, dynastyName: "鍏ㄩ儴", dynastyId: "" },
-          ...res.object.dynastyStatistic.details,
+          ...res.object.dynastyStatistic.details
         ];
         // 鏉ユ簮
         this.source.list = res.object.sourceStatistic.details;
         this.source.index = this.source.list[0].bookId;
       });
     },
+    gotoDetail(id) {
+      uni.navigateTo({
+        url: "/pages/character/detail?id=" + id
+      });
+    },
     // 鐑棬鎼滅储
-    hotSearchClick(item) {
-      this.onSearch({ text: item.name });
+    hotSearchClick(item, index) {
+      this.onSearch({ text: item.name }, index);
     },
     // 宸︿晶鐨勬満鏋勭粺璁$瓑绛夋寜閽�
     handInstitCLick(item, name) {
@@ -568,7 +639,6 @@
         this.CurrentPage = 1;
       }
       this.onSearch("");
-
     },
     isAvancedClick() {
       this.isAdvancedSearch = !this.isAdvancedSearch;
@@ -580,9 +650,16 @@
           document.querySelector(".fbox1").style.height = box1Height + "px";
         }
       });
+      if (this.isAdvancedSearch) {
+        this.keywords = "";
+        this.CurrentPage = 1;
+      }
     },
     // 楂樼骇鎼滅储
     async onSubmit(val) {
+      this.keywords = "";
+      this.hotAciveIndex = "";
+      this.aSearchData = val;
       this.profession.index = Number(val.tagId);
       this.profession.id = Number(val.tagId);
       const currentDynasty = this.dynasty.list.find(
@@ -593,7 +670,7 @@
         this.dynasty.id = currentDynasty.dynastyId;
       }
       this.submitData = val;
-      this.CurrentPage = 1;
+
       let Obj = {
         keywords: "", //鎼滅储妗嗘绱�
         name: val.name, //濮撳悕
@@ -605,9 +682,8 @@
         dynasty: val.dynasty, //鏈濅唬id
         dynastyId: this.dynasty.id, //鏈濅唬id
         institution: val.institution, //鏈烘瀯
-        bookId: null, //鏉ユ簮id
         page: this.CurrentPage,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
       // // 鎼滅储
       await getPersonList(Obj).then((res) => {
@@ -619,8 +695,15 @@
       });
     },
     // 鍩虹鎼滅储
-    async onSearch(val) {
+    async onSearch(val, index) {
       this.keywords = val.text;
+      this.aSearchData = "";
+      if (index !== undefined) {
+        this.keywords = "";
+        this.hotAciveIndex = index;
+      } else {
+        this.hotAciveIndex = "";
+      }
       let Obj = {
         keywords: val.text, //鎼滅储妗嗘绱�
         name: "", //濮撳悕
@@ -634,7 +717,7 @@
         institution: "", //鏈烘瀯
         bookId: this.source.id, //鏉ユ簮id
         page: this.CurrentPage,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
       // // 鎼滅储
       await getPersonList(Obj).then((res) => {
@@ -657,7 +740,6 @@
     },
     // 灞曞紑鏀剁缉
     shrinkClick(box, name) {
-
       // this.activeBox = this.activeBox === 'a' ? null : 'a';
       if (name == "鑱屼笟") {
         this.professionIndex =
@@ -679,24 +761,36 @@
     CurrentChange(val) {
       if (this.CurrentPage != val) {
         this.CurrentPage = val;
-        this.onSearch("");
+        if (this.isAdvancedSearch) {
+          this.onSubmit(this.aSearchData);
+        } else {
+          this.onSearch({ text: this.keywords });
+        }
       }
     },
     // 涓婁竴椤�
     PrevClick(val) {
       if (this.CurrentPage != val) {
         this.CurrentPage = val;
-        this.onSearch("");
+        if (this.isAdvancedSearch) {
+          this.onSubmit(this.aSearchData);
+        } else {
+          this.onSearch({ text: this.keywords });
+        }
       }
     },
     // 涓嬩竴椤�
     NextClick(val) {
       if (this.CurrentPage != val) {
         this.CurrentPage = val;
-        this.onSearch("");
+        if (this.isAdvancedSearch) {
+          this.onSubmit(this.aSearchData);
+        } else {
+          this.onSearch({ text: this.keywords });
+        }
       }
-    },
-  },
+    }
+  }
 };
 </script>
 
@@ -787,29 +881,26 @@
 
   .lightBo {
     font-size: 0.14rem !important;
-
-    .is-leaf {
-      background-color: #c1d3ea !important;
-      color: #2c2c2c !important;
-      font-weight: 400;
-
-      .cell {
-        height: 0.3rem !important;
-        line-height: 0.3rem !important;
-      }
-    }
   }
 
-  .el-table__body-wrapper {
-    .el-table__row {
-      height: 0.46rem !important;
-      line-height: 0.46rem !important;
+  .lightBo .is-leaf {
+    background-color: #c1d3ea !important;
+    color: #2c2c2c !important;
+    font-weight: 400;
+  }
 
-      .cell {
-        height: 0.3rem !important;
-        line-height: 0.3rem !important;
-      }
-    }
+  .lightBo .is-leaf .cell {
+    height: 0.3rem !important;
+    line-height: 0.3rem !important;
+  }
+
+  .el-table__body-wrapper .el-table__row {
+    height: 0.46rem !important;
+    line-height: 0.46rem !important;
+  }
+  .el-table__body-wrapper .el-table__row .cell {
+    height: 0.3rem !important;
+    line-height: 0.3rem !important;
   }
 }
 
@@ -1197,6 +1288,10 @@
   li {
     font-size: 0.12rem;
     margin: 0 0.1rem;
+    &.active {
+      color: #027edc !important;
+      font-weight: bold;
+    }
   }
 }
 

--
Gitblit v1.9.1