From 9d43688f11d630734cb67b75399df26d308ad25e Mon Sep 17 00:00:00 2001
From: zhongshujie <2862698242@qq.com>
Date: 星期一, 28 四月 2025 21:20:17 +0800
Subject: [PATCH] ai智能阅读

---
 src/views/achievements/index.vue |   88 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 74 insertions(+), 14 deletions(-)

diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue
index 37c181e..9658632 100644
--- a/src/views/achievements/index.vue
+++ b/src/views/achievements/index.vue
@@ -105,7 +105,7 @@
               </li>
             </ul>
             <!-- 瀛︾ -->
-            <ul>
+            <!-- <ul>
               <li class="left-title">
                 <span>{{ subject.title }}</span>
                 <p @click="subject.isDisplay = !subject.isDisplay">
@@ -119,7 +119,7 @@
                   <span class="">{{ item.num }}</span>
                 </div>
               </li>
-            </ul>
+            </ul> -->
           </div>
           <div class="content-right" v-loading="loading" element-loading-text="妫�绱㈢粨鏋滃姞杞戒腑"
             element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0)">
@@ -146,7 +146,7 @@
                 <p>{{ item.name }}</p>
                 <p>
                   <el-button @click="goPage(item.id)">璇︽儏</el-button>
-                  <el-button>AI鏅鸿兘闃呰</el-button>
+                  <el-button @click="openAiReading(item.AIReading, item.name)">AI鏅鸿兘闃呰</el-button>
                 </p>
               </li>
               <li class="main-sources">
@@ -182,6 +182,14 @@
                 :background="isBackground" layout="prev, pager, next" :total="total" :page-size="10">
               </el-pagination>
             </div>
+            <el-dialog v-model="dialogVisible" :title="aIName" width="60vw" top="3vh" bottom="2vh"
+              :visible.sync="dialogVisible" class="custom-dialog">
+              <div class="AIReadingBox" element-loading-spinner="el-icon-loading"
+                element-loading-background="rgba(0, 0, 0, 0)">
+                <div class="richTextInitBox" v-if="AIReading" v-html="AIReading"></div>
+                <div class="richTextInitError" v-else>缃戠粶绻佸繖锛岃绋嶅悗鍐嶈瘯銆�</div>
+              </div>
+            </el-dialog>
             <el-empty v-if="!loading && !resultList.length"></el-empty>
           </div>
         </div>
@@ -204,6 +212,9 @@
   },
   data() {
     return {
+      dialogVisible: false,
+      aIName: "",
+      AIReading: "",
       relatedList: [],
       // 杈撳叆妗嗙殑鍐呭
       inputValue: "",
@@ -259,7 +270,7 @@
           {
             type: "input",
             label: "鏍囥��棰�",
-            name: "title",
+            name: "Name",
             value: "",
           },
           {
@@ -462,7 +473,7 @@
         author: "浣滆��",
         keyword: "鍏抽敭璇�",
         source: "鏉ユ簮",
-        title: "鏍囬",
+        Name: "鏍囬",
         year: "骞翠唤",
       },
     };
@@ -506,16 +517,23 @@
     },
 
     async onSubmit(val) {
+      console.log(val, "val");
+      console.log(this.associationList, "associationList");
+
       for (let key in val) {
         if (val[key] != "") {
-          this.associationList.push({
-            type: this.labelList[key],
-            content: val[key],
-            value: key,
-          });
+          const hasKey = this.associationList.find((item) => item.value == key);
+          if (!hasKey) {
+            this.associationList.push({
+              type: this.labelList[key],
+              content: val[key],
+              value: key,
+            });
+          } else {
+            hasKey.content = val[key]
+          }
         }
       }
-      console.log(this.associationList, "this.associationList");
       this.getItemList();
     },
     //閲嶇疆鎼滅储缁撴灉
@@ -594,6 +612,7 @@
 
     // 鎼滅储
     handleSearch(isText) {
+      console.log(isText, "isText");
       this.associationList = [];
       console.log(isText, "isText");
       if (isText.text != "") {
@@ -706,18 +725,19 @@
           this.resultList = res.datas;
           this.total = res.total;
           this.loading = false;
-        }).catch((error) => {
+        })
+        .catch((error) => {
           // 鎵撳嵃閿欒淇℃伅
           console.error("鑾峰彇鏁版嵁澶辫触:", error);
         });
 
       // 婊氬姩鍒伴〉闈㈤《閮�
       this.$nextTick(() => {
-        const pageMain = document.querySelector('.page-main-father');
+        const pageMain = document.querySelector(".page-main-father");
         if (pageMain) {
           pageMain.scrollTo({
             top: 0,
-            behavior: 'smooth'
+            behavior: "smooth",
           });
         }
       });
@@ -756,6 +776,12 @@
         default:
           return 'other-color';
       }
+    },
+
+    openAiReading(text, name) {
+        this.AIReading = text;
+        this.aIName = name;
+        this.dialogVisible = true;
     }
   },
 };
@@ -1179,18 +1205,23 @@
       .journal-color {
         background-color: #87a8b9;
       }
+
       .books-color {
         background-color: #C48787;
       }
+
       .video-color {
         background-color: #6F8F5A;
       }
+
       .audio-color {
         background-color: #937950;
       }
+
       .newspaper-color {
         background-color: #8D77B3;
       }
+
       .other-color {
         background-color: #009F9F;
       }
@@ -1293,6 +1324,23 @@
   }
 }
 
+.AIReadingBox {
+  height: 85vh;
+  min-height: 600px;
+  padding: 20px 10px;
+}
+
+.richTextInitBox {
+  height: 100%;
+  overflow: auto;
+}
+.richTextInitError{
+    height: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
 .pagination {
   display: flex;
   justify-content: center;
@@ -1338,6 +1386,18 @@
 :deep.el-pagination.is-background .el-pager li:not(.disabled):hover {
   color: #937950
 }
+
+:deep.el-button--primary {
+  background-color: #937950;
+  color: #937950;
+  border: 1px solid #937950;
+  cursor: pointer;
+
+  &:hover {
+    background-color: #937950;
+    color: #fffdf8;
+  }
+}
 </style>
 
 <style>

--
Gitblit v1.9.1