From a5abb70a428f59894fc9ee4330f0033d6fe93a8b Mon Sep 17 00:00:00 2001
From: 杨磊 <505174330@qq.com>
Date: 星期四, 24 四月 2025 18:38:13 +0800
Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/wyyDatabase

---
 src/views/achievements/index.vue |  587 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 321 insertions(+), 266 deletions(-)

diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue
index 65119c5..6f655ea 100644
--- a/src/views/achievements/index.vue
+++ b/src/views/achievements/index.vue
@@ -1,247 +1,177 @@
 <template>
   <div class="page">
     <div class="page-header">
-      <p>鐜嬫案鐐庨櫌澹鏈垚鏋�</p>
+      <p>
+        <span>鐜嬫案鐐庨櫌澹鏈垚鏋�</span>
+      </p>
     </div>
-    <div class="page-main">
-      <!-- 鎼滅储妗� -->
-      <ul class="page-input">
-        <li class="input-main">
-          <SearchBox />
-        </li>
-        <li class="input-txt" @click="isDisplay = !isDisplay">
-          楂樼骇妫�绱�
-          <img :src="[isDisplay ? topIcon : bottomIcon]" alt="" />
-        </li>
-      </ul>
-      <!-- 楂樼骇鎼滅储 -->
-      <div v-if="isDisplay" class="page-search">
-        <MyForm
-          class="myfrom"
-          @submit="
+    <div class="page-main-father">
+      <div class="page-main">
+        <!-- 鎼滅储妗� -->
+        <ul class="page-input">
+          <li class="input-main">
+            <SearchBox @search="handleSearch" />
+          </li>
+          <li class="input-txt" @click="isDisplay = !isDisplay">
+            楂樼骇妫�绱�
+            <img :src="[isDisplay ? topIcon : bottomIcon]" alt="" />
+          </li>
+        </ul>
+        <!-- 楂樼骇鎼滅储 -->
+        <div v-if="isDisplay" class="page-search">
+          <MyForm class="myfrom" @submit="
             (data) => {
               CurrentPage = 1;
               onSubmit(data);
             }
-          "
-          @reset="resetForm"
-          :from="from"
-        />
-      </div>
-      <!-- 鎼滅储缁撴灉 -->
-      <div class="page-content">
-        <div class="content-left">
-          <!-- 绫诲瀷 -->
-          <ul>
-            <li class="left-title">
-              <span>{{ category.title }}</span>
-              <p @click="category.isDisplay = !category.isDisplay">
-                <img
-                  :src="[category.isDisplay ? topIcon : bottomIcon]"
-                  alt=""
-                />
-              </p>
-            </li>
-            <li class="left-main" v-if="category.isDisplay">
-              <div
-                class="category-main"
-                v-for="(item, index) in category.list"
-                :key="index"
-              >
-                <el-checkbox
-                  class="el-checkbox"
-                  v-model="item.checked"
-                  :title="item.name"
-                  >{{ item.name }}</el-checkbox
-                >
-                <span class="">{{ item.num }}</span>
-              </div>
-            </li>
-          </ul>
-          <!-- 骞村害 -->
-          <ul>
-            <li class="left-title">
-              <div>
-                <span>{{ annual.title }}</span>
-                <span>
-                  鏃堕棿
-                  <img
-                    class="sort-Icon"
-                    :src="[isDisplay ? sortTop : sortBottom]"
-                    alt=""
-                  />
-                </span>
-                <span
-                  >鏂囩尞閲�
-                  <img
-                    class="sort-Icon"
-                    :src="[isDisplay ? sortBottom : sortTop]"
-                    alt=""
-                  />
-                </span>
-              </div>
-              <p @click="annual.isDisplay = !annual.isDisplay">
-                <img :src="[annual.isDisplay ? topIcon : bottomIcon]" alt="" />
-              </p>
-            </li>
-            <li class="left-main" v-if="annual.isDisplay">
-              <div
-                class="annual-main"
-                :style="{
-                  display: index + 1 > professionIndex ? 'none' : '',
-                }"
-                v-for="(item, index) in annual.list"
-                :key="index"
-              >
-                <el-checkbox
-                  class="el-checkbox"
-                  v-model="item.checked"
-                  :title="item.years"
-                  >{{ item.years }}</el-checkbox
-                >
-                <span class="">{{ item.num }}</span>
-              </div>
-              <p
-                class="annual-footer"
-                v-if="annual.list && annual.list.length > 5"
-                @click="shrinkClick('a', '骞村害')"
-              >
-                {{ activeBox !== "a" ? "鏇村  鈭�" : "鏀惰捣  鈭�" }}
-              </p>
-            </li>
-          </ul>
-          <!-- 鏂囩尞鏉ユ簮 -->
-          <ul>
-            <li class="left-title">
-              <div>
-                <span>{{ sources.title }}</span>
-                <span>
-                  鏂囩尞閲�
-                  <img
-                    class="sort-Icon"
-                    :src="[isDisplay ? sortBottom : sortTop]"
-                    alt=""
-                  />
-                </span>
-              </div>
-              <p @click="sources.isDisplay = !sources.isDisplay">
-                <img :src="[sources.isDisplay ? topIcon : bottomIcon]" alt="" />
-              </p>
-            </li>
-            <li class="left-main" v-if="sources.isDisplay">
-              <div
-                class="sources-main"
-                v-for="(item, index) in sources.list"
-                :key="index"
-                :style="{
-                  display: index + 1 > dynastyIndex ? 'none' : '',
-                }"
-              >
-                <el-checkbox
-                  class="el-checkbox"
-                  :title="item.name"
-                  v-model="item.checked"
-                  >{{ item.name }}</el-checkbox
-                >
-                <span class="">{{ item.num }}</span>
-              </div>
-              <p
-                class="sources-footer"
-                v-if="sources.list && sources.list.length > 5"
-                @click="shrinkClick('b', '鏂囩尞鏉ユ簮')"
-              >
-                {{ activeBox !== "b" ? "鏇村  鈭�" : "鏀惰捣  鈭�" }}
-              </p>
-            </li>
-          </ul>
-          <!-- 瀛︾ -->
-          <ul>
-            <li class="left-title">
-              <span>{{ subject.title }}</span>
-              <p @click="subject.isDisplay = !subject.isDisplay">
-                <img :src="[subject.isDisplay ? topIcon : bottomIcon]" alt="" />
-              </p>
-            </li>
-            <li class="left-main" v-if="subject.isDisplay">
-              <div
-                class="category-main"
-                v-for="(item, index) in subject.list"
-                :key="index"
-              >
-                <el-checkbox
-                  class="el-checkbox"
-                  v-model="item.checked"
-                  :title="item.name"
-                  >{{ item.name }}</el-checkbox
-                >
-                <span class="">{{ item.num }}</span>
-              </div>
-            </li>
-          </ul>
+          " @reset="resetForm" :from="from" />
         </div>
-        <div class="content-right">
-          <!-- title閮ㄥ垎 -->
-          <ul class="right-header">
-            <li v-for="(item, index) in associationList" :key="index">
-              <p>{{ item.type }} : {{ item.content }}</p>
-              <img :src="errorIcon" alt="" />
-            </li>
-          </ul>
-          <!-- 鍏眡x鏉� -->
-          <ul class="right-number">
-            <ul class="number-number">
-              鍏辨壘鍒�<span>{{ resultList.length }}</span
-              >鏉$粨鏋�
+        <!-- 鎼滅储缁撴灉 -->
+        <div class="page-content">
+          <div class="content-left">
+            <!-- 绫诲瀷 -->
+            <ul>
+              <li class="left-title">
+                <span>{{ category.title }}</span>
+                <p @click="category.isDisplay = !category.isDisplay">
+                  <img :src="[category.isDisplay ? topIcon : bottomIcon]" alt="" />
+                </p>
+              </li>
+              <li class="left-main" v-if="category.isDisplay">
+                <div class="category-main" v-for="(item, index) in category.list" :key="index">
+                  <el-checkbox class="el-checkbox" style="display: inline-block; vertical-align: middle;"
+                    v-model="item.checked" :title="item.name">{{ item.name }}</el-checkbox>
+                  <span class="" style="display: inline-block; vertical-align: middle;">{{ item.num }}</span>
+                </div>
+              </li>
             </ul>
-            <ul class="number-time">
-              鍙戣〃鏃堕棿
-              <span><img :src="sortBottom" alt="" /></span>
+            <!-- 骞村害 -->
+            <ul>
+              <li class="left-title">
+                <div>
+                  <span>{{ annual.title }}</span>
+                  <span>
+                    鏃堕棿
+                    <img class="sort-Icon" :src="[isDisplay ? sortTop : sortBottom]" alt="" />
+                  </span>
+                  <span>鏂囩尞閲�
+                    <img class="sort-Icon" :src="[isDisplay ? sortBottom : sortTop]" alt="" />
+                  </span>
+                </div>
+                <p @click="annual.isDisplay = !annual.isDisplay">
+                  <img :src="[annual.isDisplay ? topIcon : bottomIcon]" alt="" />
+                </p>
+              </li>
+              <li class="left-main" v-if="annual.isDisplay">
+                <div class="annual-main" :style="{
+                  display: index + 1 > professionIndex ? 'none' : '',
+                }" v-for="(item, index) in annual.list" :key="index">
+                  <el-checkbox class="el-checkbox" v-model="item.checked" :title="item.years">{{ item.years
+                  }}</el-checkbox>
+                  <span class="">{{ item.num }}</span>
+                </div>
+                <p class="annual-footer" v-if="annual.list && annual.list.length > 5" @click="shrinkClick('a', '骞村害')">
+                  {{ activeBox !== "a" ? "鏇村 鈭�" : "鏀惰捣 鈭�" }}
+                </p>
+              </li>
             </ul>
-          </ul>
-          <!-- 缁撴灉灞曠ず -->
-          <ul
-            class="right-main"
-            v-for="(item, index) in resultList"
-            :key="index"
-          >
-            <li class="main-name">
-              <p>{{ item.name }}</p>
-              <p>
-                <el-button @click="goPage(item)">璇︽儏</el-button>
-                <el-button>AI鏅鸿兘闃呰</el-button>
-              </p>
-            </li>
-            <li class="main-sources">
-              <span>{{ item.type }}</span>
-              <span>{{ item.sources }}</span>
-              <span>{{ item.time }}</span>
-            </li>
-            <li class="main-author">
-              {{ item.author }}
-            </li>
-            <li class="main-title" :title="item.title">
-              <span>鎽樿: </span>{{ item.title }}
-            </li>
-            <li class="main-keyword">
-              <span>鍏抽敭璇嶏細</span>
-              <span
-                class="keyWord"
-                v-for="(citem, cindex) in item.keyword"
-                :key="cindex"
-              >
-                {{ citem.name }}
-              </span>
-            </li>
-          </ul>
-          <!-- 鍒嗛〉 -->
-          <div class="pagination">
-            <el-pagination
-              class="msg-pagination-container"
-              :background="isBackground"
-              layout="prev, pager, next"
-              :total="200"
-            >
-            </el-pagination>
+            <!-- 鏂囩尞鏉ユ簮 -->
+            <ul>
+              <li class="left-title">
+                <div>
+                  <span>{{ sources.title }}</span>
+                  <span>
+                    鏂囩尞閲�
+                    <img class="sort-Icon" :src="[isDisplay ? sortBottom : sortTop]" alt="" />
+                  </span>
+                </div>
+                <p @click="sources.isDisplay = !sources.isDisplay">
+                  <img :src="[sources.isDisplay ? topIcon : bottomIcon]" alt="" />
+                </p>
+              </li>
+              <li class="left-main" v-if="sources.isDisplay">
+                <div class="sources-main" v-for="(item, index) in sources.list" :key="index" :style="{
+                  display: index + 1 > dynastyIndex ? 'none' : '',
+                }">
+                  <el-checkbox class="el-checkbox" :title="item.name" v-model="item.checked">{{ item.name
+                  }}</el-checkbox>
+                  <span class="">{{ item.num }}</span>
+                </div>
+                <p class="sources-footer" v-if="sources.list && sources.list.length > 5"
+                  @click="shrinkClick('b', '鏂囩尞鏉ユ簮')">
+                  {{ activeBox !== "b" ? "鏇村 鈭�" : "鏀惰捣 鈭�" }}
+                </p>
+              </li>
+            </ul>
+            <!-- 瀛︾ -->
+            <ul>
+              <li class="left-title">
+                <span>{{ subject.title }}</span>
+                <p @click="subject.isDisplay = !subject.isDisplay">
+                  <img :src="[subject.isDisplay ? topIcon : bottomIcon]" alt="" />
+                </p>
+              </li>
+              <li class="left-main" v-if="subject.isDisplay">
+                <div class="category-main" v-for="(item, index) in subject.list" :key="index">
+                  <el-checkbox class="el-checkbox" v-model="item.checked" :title="item.name">{{ item.name
+                  }}</el-checkbox>
+                  <span class="">{{ item.num }}</span>
+                </div>
+              </li>
+            </ul>
+          </div>
+          <div class="content-right">
+            <!-- title閮ㄥ垎 -->
+            <ul class="right-header">
+              <li v-for="(item, index) in associationList" :key="index">
+                <p>{{ item.type }} : {{ item.content }}</p>
+                <img :src="errorIcon" alt="" />
+              </li>
+            </ul>
+            <!-- 鍏眡x鏉� -->
+            <ul class="right-number">
+              <ul class="number-number">
+                鍏辨壘鍒�<span>{{ this.total }}</span>鏉$粨鏋�
+              </ul>
+              <ul class="number-time">
+                鍙戣〃鏃堕棿
+                <span><img :src="sortBottom" alt="" /></span>
+              </ul>
+            </ul>
+            <!-- 缁撴灉灞曠ず -->
+            <ul class="right-main" v-for="(item, index) in resultList" :key="index">
+              <li class="main-name">
+                <p>{{ item.name }}</p>
+                <p>
+                  <el-button @click="goPage(item)">璇︽儏</el-button>
+                  <el-button>AI鏅鸿兘闃呰</el-button>
+                </p>
+              </li>
+              <li class="main-sources">
+                <span>{{ item.resourceTypeName }}</span>
+                <span>{{ item.source }}</span>
+                <span>{{ item.year }}</span>
+              </li>
+              <li class="main-author">
+                {{ item.author }}
+              </li>
+              <li class="main-title" :title="item.abstract">
+                <span>鎽樿: </span>
+                <span class="page-main-abstract" v-html="item.abstract"></span>
+              </li>
+              <li class="main-keyword">
+                <span>鍏抽敭璇嶏細</span>
+                <span class="keyWord" v-for="(citem, cindex) in item.keyWords" :key="cindex">
+                  {{ citem }}
+                </span>
+              </li>
+            </ul>
+            <!-- 鍒嗛〉 -->
+            <div class="pagination">
+              <el-pagination @current-change="handleCurrentChange" class="msg-pagination-container"
+                :background="isBackground" layout="prev, pager, next" :total="total">
+              </el-pagination>
+            </div>
           </div>
         </div>
       </div>
@@ -252,6 +182,8 @@
 <script>
 import MyForm from "@/components/form/form.vue";
 import SearchBox from "@/views/home/components/searchBox.vue";
+import MG from "@/assets/js/middleGround/WebMiddleGroundApi.js";
+import moment from "moment";
 /* eslint-disable vue/no-unused-components */
 export default {
   name: "achievements",
@@ -261,6 +193,8 @@
   },
   data() {
     return {
+      subjectAffiliationRefCode: "subjectAffiliation",
+      resourceTypeRefCode: "resourceType",
       errorIcon: require("@/assets/images/achievements/errorIcon.png"),
       topIcon: require("@/assets/images/achievements/top-Icon.png"),
       bottomIcon: require("@/assets/images/achievements/bottom-Icon.png"),
@@ -642,17 +576,27 @@
           ],
         },
       ],
+      total: 0,
+      currentPage: 1,
+      loading: false,
     };
+  },
+  mounted() {
+    this.getSelectContent();
+    this.getLeftCheckbox()
+    this.getSelectData();
+    this.getItemList()
   },
 
   methods: {
-    async onSubmit(val) {},
+    async onSubmit(val) { },
     //閲嶇疆鎼滅储缁撴灉
     resetForm() {
       // this.onSearch("");
     },
     // 椤甸潰璺宠浆
     goPage(key) {
+      console.log(key,"key");
       this.$router.push({ name: "details", params: { key: key } });
     },
     // 鏀惰捣鍜屽睍绀�
@@ -673,6 +617,88 @@
         this.activeBox = this.activeBox === "b" ? null : "b";
       }
     },
+    // 鑾峰彇宸︿晶checkbox鏁版嵁
+    getLeftCheckbox() {
+
+
+    },
+
+    //鑾峰彇涓嬫媺閫夋嫨妗嗙殑鍐呭
+    async getSelectData() {
+      try {
+        // 鍚屾椂鍙戣捣涓や釜寮傛璇锋眰锛屽苟绛夊緟瀹冧滑鐨勭粨鏋�
+        const [subjectListResult, resourceListResult] = await Promise.all([
+          this.getSelectContent(this.subjectAffiliationRefCode),
+          this.getSelectContent(this.resourceTypeRefCode),
+        ]);
+        this.subject.list = subjectListResult.option
+        this.category.list = resourceListResult.option;
+      } catch (error) {
+        console.error("鑾峰彇涓嬫媺妗嗘暟鎹け璐�:", error);
+      }
+    },
+
+    //鑾峰彇閫夋嫨鍐呭
+    getSelectContent(refCode) {
+      let requestData = { refCodes: [refCode] };
+      return MG.store
+        .getProductTypeField(requestData)
+        .then((res) => {
+          const selestList = JSON.parse(res[0].config);
+          this.getLeftCheckbox()
+          return selestList;
+        })
+        .catch((error) => {
+          console.error("鑾峰彇鑽h獕澶辫触:", error);
+          return null;
+        });
+    },
+
+    // 鎼滅储
+    handleSearch(text, type) {
+      console.log(1234);
+      console.log(text, type, "鎼滅储123");
+    },
+
+    // getTtem
+    getItemList() {
+      this.loading = true;
+      MG.resource
+        .getItem({
+          path: "*",
+          queryType: "*",
+          paging: {
+            start: (this.currentPage - 1) * 6,
+            size: 6
+          },
+          fields: {
+            cmsType: ["cmsItem"],
+            resourceType: [],
+            source: [],
+            year: [],
+            abstract: [],
+            keyWords: [],
+          },
+        })
+        .then((res) => {
+          console.log(res, "鍏ㄩ儴鏁版嵁");
+          res.datas.forEach((item) => {
+            item.year = moment(item.year).format("YYYY-MM-DD")
+            item.keyWords = item.keyWords.split(";;")
+            item.resourceTypeName = this.category.list.find((citem) => citem.value == item.resourceType).name
+          })
+          this.resultList = res.datas
+          this.total = res.total;
+          this.loading = false;
+        })
+    },
+
+    // 澶勭悊椤电爜鍙樺寲
+    handleCurrentChange(newPage) {
+      this.currentPage = newPage;
+      this.getItemList(); // 閲嶆柊鑾峰彇鏁版嵁
+    },
+
   },
 };
 </script>
@@ -683,28 +709,49 @@
   height: 100%;
   box-sizing: border-box;
   background-color: #e9e1d4;
-  overflow: auto;
+  position: relative;
+  overflow: hidden;
+  display: flex;
+  flex-direction: column;
 }
 
 .page-header {
-  height: 102px;
+  padding: 8px 0;
+  height: 9.4%;
   width: 100%;
   text-align: left;
-  margin-bottom: 8px;
   border-bottom: 2px solid #937950;
+  background-color: #e9e1d4;
+  position: sticky;
+  top: 0;
+  z-index: 100;
 
   p {
-    padding: 35px 0 34px 0;
+    height: 100%;
     font-family: Alimama DongFangDaKai;
     font-size: 30px;
     text-indent: 1em;
     border-bottom: 1px solid #937950;
+    display: flex;
+    align-items: center;
   }
 }
 
+.page-main-father {
+  flex: 1;
+  width: 100%;
+  height: 100%;
+  min-width: 1292px;
+  overflow: auto;
+  padding-top: 1%;
+  padding-bottom: 2%;
+}
+
 .page-main {
-  width: 1330px;
+  width: 77.3%;
   margin: 0 auto;
+  margin-top: 1%;
+  margin-bottom: 1%;
 }
 
 .page-input {
@@ -788,7 +835,6 @@
 .page-content {
   width: 100%;
   margin-top: 20px;
-  margin-bottom: 20px;
   background-color: #fefbf5;
   border: 1px solid #e4dace;
   display: flex;
@@ -831,13 +877,14 @@
     border-bottom: 1px solid #e4dace;
     padding: 10px;
     display: flex;
-    align-items: center;
     flex-wrap: wrap;
   }
 
   .category-main {
     width: 50%;
     margin-bottom: 10px;
+    display: flex;
+    align-items: center;
 
     span {
       font-family: Source Han Sans;
@@ -885,7 +932,10 @@
   }
 
   .el-checkbox {
+    vertical-align: middle;
+    font-family: "Tahoma";
     width: 70%;
+    vertical-align: middle;
   }
 
   /* 璁剧疆榧犳爣缁忚繃瀵瑰嬀妗嗭紝瀵瑰嬀妗嗚竟妗嗙殑棰滆壊 */
@@ -898,15 +948,12 @@
     border-color: #d1d1d1;
   }
 
-  ::v-deep .el-checkbox .el-checkbox__input.is-checked + .el-checkbox__label {
+  ::v-deep .el-checkbox .el-checkbox__input.is-checked+.el-checkbox__label {
     color: #2c2c2c;
   }
 
   ::v-deep .el-checkbox .el-checkbox__input.is-checked .el-checkbox__inner,
-  ::v-deep
-    .el-checkbox
-    .el-checkbox__input.is-indeterminate
-    .el-checkbox__inner {
+  ::v-deep .el-checkbox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
     border-color: #8f7a5a;
     background-color: #8f7a5a;
   }
@@ -1080,6 +1127,14 @@
         }
       }
 
+      .page-main-abstract {
+      font-family: Source Han Sans !important;
+      font-size: 14px !important;
+      font-weight: 350 !important;
+      line-height: 26px !important;
+      color: #333333 !important;
+    }
+
       .main-keyword {
         span:nth-child(1) {
           font-family: Source Han Sans;
@@ -1114,34 +1169,34 @@
 }
 
 :deep .msg-pagination-container.is-background .el-pager li {
-    /*瀵归〉鏁扮殑鏍峰紡杩涜淇敼*/
-    background-color: transparent;
-    color: #333333;
-    border-radius: 5px;
-    border: 1px solid #CCCCCC;
+  /*瀵归〉鏁扮殑鏍峰紡杩涜淇敼*/
+  background-color: transparent;
+  color: #333333;
+  border-radius: 5px;
+  border: 1px solid #cccccc;
 }
 
 :deep.msg-pagination-container.is-background .btn-next {
-    /*瀵逛笅涓�椤电殑鎸夐挳鏍峰紡杩涜淇敼*/
-    background-color: transparent;
-    color: #333333;
-    border-radius: 5px;
-    border: 1px solid #CCCCCC;
+  /*瀵逛笅涓�椤电殑鎸夐挳鏍峰紡杩涜淇敼*/
+  background-color: transparent;
+  color: #333333;
+  border-radius: 5px;
+  border: 1px solid #cccccc;
 }
 
 :deep.msg-pagination-container.is-background .btn-prev {
-    /*瀵逛笂涓�椤电殑鎸夐挳鏍峰紡杩涜淇敼*/
-    background-color: transparent;
-    color: #333333;
-    border-radius: 5px;
-    border: 1px solid #CCCCCC;
+  /*瀵逛笂涓�椤电殑鎸夐挳鏍峰紡杩涜淇敼*/
+  background-color: transparent;
+  color: #333333;
+  border-radius: 5px;
+  border: 1px solid #cccccc;
 }
 
 :deep.msg-pagination-container.is-background .el-pager li:not(.disabled).active {
-    /*褰撳墠閫変腑椤垫暟鐨勬牱寮忚繘琛屼慨鏀�*/
-    background-color: #937950;
-    color: #FFF;
-    border-radius: 5px;
-    border: 1px solid #CCCCCC;
+  /*褰撳墠閫変腑椤垫暟鐨勬牱寮忚繘琛屼慨鏀�*/
+  background-color: #937950;
+  color: #fff;
+  border-radius: 5px;
+  border: 1px solid #cccccc;
 }
 </style>

--
Gitblit v1.9.1