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/assets/js/middleGround/api/resource.js |    1 
 src/views/achievements/index.vue           |   60 ++++++++++++++++++--
 src/App.vue                                |   92 ++++++++++++++++++++++++++++++
 3 files changed, 145 insertions(+), 8 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index 7499d03..16b979a 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -14,9 +14,10 @@
 };
 </script>
 
-<style>
+<style lang="less">
 @import "~@/assets/css/base.css";
 @import "~@/assets/css/common.css";
+
 #app {
   width: 100%;
   height: 100%;
@@ -26,4 +27,93 @@
   -moz-osx-font-smoothing: grayscale;
   font-size: auto !important;
 }
+
+
+.richTextInitBox {
+  html,
+  body,
+  div,
+  applet,
+  object,
+  iframe,
+  h1,
+  h2,
+  h3,
+  h4,
+  h5,
+  h6,
+  p,
+  blockquote,
+  pre,
+  a,
+  abbr,
+  acronym,
+  address,
+  big,
+  cite,
+  code,
+  del,
+  dfn,
+  em,
+  img,
+  ins,
+  kbd,
+  q,
+  s,
+  samp,
+  small,
+  strike,
+  sub,
+  sup,
+  tt,
+  var,
+  b,
+  u,
+  i,
+  center,
+  dl,
+  dt,
+  dd,
+  ol,
+  ul,
+  li,
+  fieldset,
+  form,
+  label,
+  legend,
+  table,
+  caption,
+  tbody,
+  tfoot,
+  thead,
+  tr,
+  th,
+  td,
+  article,
+  aside,
+  canvas,
+  details,
+  embed,
+  figure,
+  figcaption,
+  footer,
+  header,
+  menu,
+  nav,
+  output,
+  ruby,
+  section,
+  summary,
+  time,
+  mark,
+  audio,
+  video,
+  input {
+    margin: revert;
+    padding: revert;
+    border: revert;
+    font-weight: revert;
+    vertical-align: revert;
+  }
+}
 </style>
diff --git a/src/assets/js/middleGround/api/resource.js b/src/assets/js/middleGround/api/resource.js
index 78e69fb..eeca636 100644
--- a/src/assets/js/middleGround/api/resource.js
+++ b/src/assets/js/middleGround/api/resource.js
@@ -90,7 +90,6 @@
       if (resp.length > 0) {
         const data = resp[0];
         console.log(data,'datas');
-        debugger
         const datas = handleQueryResourceListData({
           datas: data.datas,
           fields,
diff --git a/src/views/achievements/index.vue b/src/views/achievements/index.vue
index 1c19aa8..9658632 100644
--- a/src/views/achievements/index.vue
+++ b/src/views/achievements/index.vue
@@ -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">
@@ -160,10 +160,7 @@
               </li>
               <li class="main-title" :title="item.cleanAbstract" v-if="item.abstract">
                 <span>鎽樿: </span>
-                <span
-                  class="page-main-abstract"
-                  v-html="item.cleanAbstract"
-                ></span>
+                <span class="page-main-abstract" v-html="item.cleanAbstract"></span>
               </li>
               <li class="main-keyword" v-if="item.keyWords && item.keyWords.length > 0">
                 <span>鍏抽敭璇嶏細</span>
@@ -185,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>
@@ -207,6 +212,9 @@
   },
   data() {
     return {
+      dialogVisible: false,
+      aIName: "",
+      AIReading: "",
       relatedList: [],
       // 杈撳叆妗嗙殑鍐呭
       inputValue: "",
@@ -521,7 +529,7 @@
               content: val[key],
               value: key,
             });
-          }else {
+          } else {
             hasKey.content = val[key]
           }
         }
@@ -768,6 +776,12 @@
         default:
           return 'other-color';
       }
+    },
+
+    openAiReading(text, name) {
+        this.AIReading = text;
+        this.aIName = name;
+        this.dialogVisible = true;
     }
   },
 };
@@ -1191,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;
       }
@@ -1305,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;
@@ -1350,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