From 040daecbc9bf04074c3f7053ea1710f380c03ea1 Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期五, 26 七月 2024 11:40:48 +0800
Subject: [PATCH] 1

---
 src/pages/knowledgeBase/knowledgeBase.vue |  281 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 164 insertions(+), 117 deletions(-)

diff --git a/src/pages/knowledgeBase/knowledgeBase.vue b/src/pages/knowledgeBase/knowledgeBase.vue
index 970b559..111bf5d 100644
--- a/src/pages/knowledgeBase/knowledgeBase.vue
+++ b/src/pages/knowledgeBase/knowledgeBase.vue
@@ -1,7 +1,7 @@
 <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> -->
@@ -15,7 +15,7 @@
         class="advancedSea"
         @click="isAvancedClick"
         style="color: #244a7b; cursor: pointer"
-        >楂樼骇鎼滅储 锕�</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,7 @@
         class="advancedSeaTrue1"
       >
         <h3>楂樼骇鎼滅储</h3>
-        <MyForm @submit="onSubmit" :from="from" />
+        <MyForm @submit="onSubmit" @reset="resetForm" :from="from" />
       </view>
     </view>
     <uni-row
@@ -77,24 +77,24 @@
               :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 class="">{{ item.tagName }}</view>
-              <view class="">{{ 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">
             <view
               class="toggleButton"
-              style="color: #c1d3ea"
+              style="color: #244a7b"
               @click="shrinkClick('a', '鑱屼笟')"
             >
-              {{ activeBox !== "a" ? "鏇村  锕�" : "鏀惰捣  锔�" }}
+              {{ activeBox !== "a" ? "鏇村  鈭�" : "鏀惰捣  鈭�" }}
             </view>
           </view>
         </view>
@@ -115,24 +115,24 @@
               :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 class="">{{ item.dynastyName }}</view>
-              <view class="">{{ 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">
             <view
               class="toggleButton"
-              style="color: #c1d3ea"
+              style="color: #244a7b"
               @click="shrinkClick('b', '鏃舵湡')"
             >
-              {{ activeBox !== "b" ? "鏇村  锕�" : "鏀惰捣  锔�" }}
+              {{ activeBox !== "b" ? "鏇村  鈭�" : "鏀惰捣  鈭�" }}
             </view>
           </view>
         </view>
@@ -160,12 +160,12 @@
               style="padding: 0 20rpx; color: #244a7b"
               @click="handInstitCLick(item, 'c')"
             >
-              <view class="">{{ index + 1 + ". " + item.source }}</view>
+              <view>{{ index + 1 + ". " + item.source }}</view>
             </li>
           </ul>
           <!-- 	<view class="flex flex-center">
 							<view class="toggleButton" style="font-size: 25rpx;color: #C1D3EA;" @click="shrinkClick('b')">
-								{{ activeBox !== 'b' ? '鏇村  锕�' : '鏀惰捣  锔�' }}
+								{{ activeBox !== 'b' ? '鏇村  鈭�' : '鏀惰捣  鈭�' }}
 							</view>
 						</view> -->
         </view>
@@ -182,12 +182,25 @@
         "
       >
         <view class="flex lightTop" style="width: 100%; margin: 0.1rem 0">
-          <view class="" 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%">
+        <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"
@@ -213,7 +226,7 @@
           <el-table-column prop="official" label="瀹樿亴"></el-table-column>
         </el-table>
         <!-- 鍒嗛〉 -->
-        <el-row class="fenye" style="position: absolute; bottom: 0.1rem">
+        <el-row class="fenye">
           <el-pagination
             class="paging flex"
             :current-page="CurrentPage"
@@ -247,14 +260,16 @@
   getPList,
   getHotSearch,
   getPersonList,
+  getInstitutionList
 } from "@/api/index.js";
 export default {
   components: {
     Footer1,
-    MyForm,
+    MyForm
   },
   data() {
     return {
+      hotAciveIndex: "",
       // 楂樼骇鎼滅储鏄剧ず
       isAdvancedSearch: false,
       // 楂樼骇鎼滅储
@@ -264,19 +279,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 +301,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 +323,31 @@
             options: [
               {
                 label: "鏈寚鏄�",
-                value: "UNKNOWN",
+                value: "UNKNOWN"
               },
               {
                 label: "鐢�",
-                value: "MALE",
+                value: "MALE"
               },
               {
                 label: "濂�",
-                value: "WOMAN",
-              },
-            ],
+                value: "WOMAN"
+              }
+            ]
           },
           {
             type: "input",
             label: "鏃舵湡",
             name: "dynasty",
-            value: "",
-          },
-          {
-            type: "input",
-            label: "鏈烘瀯",
-            name: "institution",
-            value: "",
-          },
-        ],
+            value: ""
+          }
+          // {
+          //   type: "select",
+          //   label: "鏈烘瀯",
+          //   name: "institution",
+          //   options: []
+          // }
+        ]
       },
 
       // 鐑棬鎼滅储
@@ -342,7 +357,7 @@
         title: "鑱屼笟",
         index: 0,
         id: 0,
-        list: [],
+        list: []
       },
       // 鐜板湪澶氬皯鏉¤亴涓氭暟鎹�
       professionIndex: 4,
@@ -353,7 +368,7 @@
         title: "鏃舵湡",
         id: "",
         index: "",
-        list: [],
+        list: []
       },
       // 鐜板湪澶氬皯鏉℃椂鏈熸暟鎹�
       dynastyIndex: 4,
@@ -362,7 +377,7 @@
         title: "鏉ユ簮",
         index: 0,
         id: 0,
-        list: [],
+        list: []
       },
       // 琛ㄦ牸鐨勬暟缁�
       tableData: [],
@@ -381,23 +396,63 @@
         nativePlace: "",
         tagId: "",
         official: "",
-        genderType: "",
+        genderType: ""
       },
+      aSearchData: ""
     };
   },
   onLoad(options) {
-    console.log(options.keyword);
-    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() {
-    // 淇敼涓ゆ鐨勯珮搴︿繚鎸佷竴鑷�
-    var box1Height = document.querySelector(".fbox2").offsetHeight;
-    document.querySelector(".fbox3").style.height =
-      box1Height + box1Height / 18 + "px";
-    console.log(box1Height, "box1Height");
     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("");
+    },
     // ExportJsonExcel瀹炰緥
     Ture() {
       //   鍒涘缓ExportJsonExcel瀹炰緥瀵硅薄
@@ -408,9 +463,8 @@
     // 涓嬭浇鎸夐挳
     async exportClick() {
       const dataList = this.tableData;
-      console.log(this.keywords, "keywords");
       let Obj = {
-        keywords: '妤�', //鎼滅储妗嗘绱�
+        keywords: "", //鎼滅储妗嗘绱�
         // keywords: this.keywords, //鎼滅储妗嗘绱�
         name: this.submitData.name, //濮撳悕
         alias: this.submitData.alias, //鍒悕
@@ -423,14 +477,11 @@
         institution: "", //鏈烘瀯
         bookId: null, //鏉ユ簮id
         page: 1,
-        pageSize: 1,
+        pageSize: 1
       };
-      console.log(Obj, "Obj");
       // // 鎼滅储
       await getPDownload(Obj).then((res) => {
-        console.log(res, "exportClick");
         // if (res.success) {
-        //   console.log(res, "鎼滅储鎺ュ彛");
         //   this.tableData = res.list;
         //   // 鎬绘暟閲�
         //   this.total = res.npage.totalCount;
@@ -449,7 +500,7 @@
             鍗掑勾: dataList[i].deathYear,
             绫嶈疮: dataList[i].nativePlace,
             绀句細韬唤: dataList[i].socialDistinction,
-            瀹樿亴: dataList[i].official,
+            瀹樿亴: dataList[i].official
           };
 
           dataTable.push(obj); //   璁剧疆excel姣忓垪鑾峰彇鐨勬暟鎹簮
@@ -475,7 +526,7 @@
             "鍗掑勾",
             "绫嶈疮",
             "绀句細韬唤",
-            "瀹樿亴",
+            "瀹樿亴"
           ],
           //   excel鏂囦欢鍒楀悕
           sheetFilter: [
@@ -489,28 +540,26 @@
             "鍗掑勾",
             "绫嶈疮",
             "绀句細韬唤",
-            "瀹樿亴",
-          ],
+            "瀹樿亴"
+          ]
           // columnWidths: ['10', '10', '20'] //excel鍒楀搴﹁缃�
-        },
+        }
       ];
       this.Ture();
     },
     // 鎺ュ彛
-    async getStatistics() {
+    getStatistics() {
       // 鐑棬鎼滅储
-      await getHotSearch().then((res) => {
-        console.log(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) => {
-        console.log(res, "鎺ュ彛鎴愬姛sdsdfsdsfs");
+      getPDataStatistics().then((res) => {
         let totalCount1 = res.object.occupationStatistic.details.reduce(
           (total, item) => total + item.count,
           0
@@ -522,7 +571,7 @@
         // 鑱屼笟
         this.profession.list = [
           { count: totalCount1, tagName: "鍏ㄩ儴", tagId: 0 },
-          ...res.object.occupationStatistic.details,
+          ...res.object.occupationStatistic.details
         ];
         // 楂樼骇鎼滅储閲岄潰鐨勮亴涓�--------------------------------------------------
         // 鎵惧埌鑱屼笟瀛楁鍦� from 瀵硅薄涓殑绱㈠紩
@@ -534,7 +583,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 灞炴��
@@ -545,17 +594,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 });
-      console.log(item, "鐑棬鎼滅储");
+    hotSearchClick(item, index) {
+      this.onSearch({ text: item.name }, index);
     },
     // 宸︿晶鐨勬満鏋勭粺璁$瓑绛夋寜閽�
     handInstitCLick(item, name) {
@@ -571,16 +624,12 @@
         this.dynasty.index = item.dynastyId;
         this.dynasty.id = item.dynastyId;
         this.CurrentPage = 1;
-        console.log(item);
       } else if (name == "c") {
         this.source.index = item.bookId;
         this.source.id = item.bookId;
         this.CurrentPage = 1;
-        console.log("鏉ユ簮");
       }
       this.onSearch("");
-
-      console.log(item, name);
     },
     isAvancedClick() {
       this.isAdvancedSearch = !this.isAdvancedSearch;
@@ -588,7 +637,6 @@
         var box1Height = document.querySelector(".fbox").offsetHeight;
         // let box2Height= document.querySelector('.fbox1').style.height = box1Height + 'px';
         let box2Height = document.querySelector(".fbox1").offsetHeight;
-        console.log(box1Height, box2Height);
         if (box1Height <= box2Height) {
           document.querySelector(".fbox1").style.height = box1Height + "px";
         }
@@ -596,7 +644,9 @@
     },
     // 楂樼骇鎼滅储
     async onSubmit(val) {
-      console.log(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(
@@ -621,23 +671,27 @@
         institution: val.institution, //鏈烘瀯
         bookId: null, //鏉ユ簮id
         page: this.CurrentPage,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
       // // 鎼滅储
       await getPersonList(Obj).then((res) => {
-        console.log(res);
         if (res.success) {
-          console.log(res, "鎼滅储鎺ュ彛");
           this.tableData = res.list;
           // 鎬绘暟閲�
           this.total = res.npage.totalCount;
         }
       });
-      console.log(val);
     },
     // 鍩虹鎼滅储
-    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: "", //濮撳悕
@@ -651,40 +705,31 @@
         institution: "", //鏈烘瀯
         bookId: this.source.id, //鏉ユ簮id
         page: this.CurrentPage,
-        pageSize: this.pageSize,
+        pageSize: this.pageSize
       };
-      console.log(Obj,"ObjObjObj");
       // // 鎼滅储
       await getPersonList(Obj).then((res) => {
         if (res.success) {
-          console.log(res, "鎼滅储鎺ュ彛");
           this.tableData = res.list;
           // 鎬绘暟閲�
           this.total = res.npage.totalCount;
         }
       });
-      // console.log(val, '澹ぇ澶絾鏄�');
     },
     // 鐑棬鎼滅储
     HotClick(id) {
       this.hot.forEach((item) => {
         if (item.id === id) {
-          console.log(item.id === id);
           item.bgColor = true;
         } else {
-          console.log(item.id === id);
           item.bgColor = false;
         }
       });
     },
     // 灞曞紑鏀剁缉
     shrinkClick(box, name) {
-      console.log(box);
-      console.log(this.dynasty.list);
-
       // this.activeBox = this.activeBox === 'a' ? null : 'a';
       if (name == "鑱屼笟") {
-        console.log("鑱屼笟");
         this.professionIndex =
           this.professionIndex < this.profession.list.length
             ? this.profession.list.length
@@ -692,7 +737,6 @@
         this.dynastyIndex = 4;
         this.activeBox = this.activeBox === "a" ? null : "a";
       } else {
-        console.log("鏃舵湡");
         this.dynastyIndex =
           this.dynastyIndex < this.dynasty.list.length
             ? this.dynasty.list.length
@@ -705,29 +749,28 @@
     CurrentChange(val) {
       if (this.CurrentPage != val) {
         this.CurrentPage = val;
-        console.log("褰撳墠椤�", 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;
-        // console.log('涓婁竴椤�', val);
-        // console.log(this.CurrentPage);
-        this.onSearch("");
+        this.onSearch({ text: this.keywords });
       }
     },
     // 涓嬩竴椤�
     NextClick(val) {
       if (this.CurrentPage != val) {
-        // console.log('涓嬩竴椤�',val);
         this.CurrentPage = val;
-        // console.log(this.CurrentPage);
-        this.onSearch("");
+        this.onSearch({ text: this.keywords });
       }
-    },
-  },
+    }
+  }
 };
 </script>
 
@@ -1228,6 +1271,10 @@
   li {
     font-size: 0.12rem;
     margin: 0 0.1rem;
+    &.active {
+      color: #027edc !important;
+      font-weight: bold;
+    }
   }
 }
 

--
Gitblit v1.9.1