Explorar o código

feature(遵义人民):添加首页查询及列表路由跳转;添加通知公告附件下载功能

yanglingling hai 11 meses
pai
achega
3c1ae093de
Modificáronse 2 ficheiros con 59 adicións e 43 borrados
  1. 41 43
      src/views/Home.vue
  2. 18 0
      src/views/News/RightContent.vue

+ 41 - 43
src/views/Home.vue

@@ -44,6 +44,7 @@
               <div slot="header"
                    class="header">
                 <h4>通知公告</h4>
+                <el-link @click="toRouter('/news')" type="primary" style="float: right">查看更多>>></el-link>
               </div>
               <div class="link-list">
                 <ul>
@@ -52,7 +53,7 @@
                     <div>
                       {{ item.noticeTitle }}
                     </div>
-                    <span>{{ item.noticeTime.split(' ')[0] }}</span>
+                    <span>{{ parseTime(item.noticeTime, "{y}-{m}-{d}") }}</span>
                   </li>
                 </ul>
               </div>
@@ -63,15 +64,16 @@
               <div slot="header"
                    class="header">
                 <h4>新闻动态</h4>
+                <el-link @click="toRouter('/news')" type="primary" style="float: right">查看更多>>></el-link>
               </div>
               <div class="link-list">
                 <ul>
-                  <li v-for="item in noticeList"
+                  <li v-for="item in newsInfoList"
                       :key="item.id">
                     <div>
-                      {{ item.noticeTitle }}
+                      {{ item.newsTitle }}
                     </div>
-                    <span>{{ item.noticeTime.split(' ')[0] }}</span>
+                    <span>{{ parseTime(item.createdTime, "{y}-{m}-{d}") }}</span>
                   </li>
                 </ul>
               </div>
@@ -90,7 +92,7 @@
                     <div>
                       {{ item.noticeTitle }}
                     </div>
-                    <span>{{ item.noticeTime.split(' ')[0] }}</span>
+                    <span>{{ parseTime(item.noticeTime, "{y}-{m}-{d}") }}</span>
                   </li>
                 </ul>
               </div>
@@ -129,15 +131,16 @@
               <div slot="header"
                    class="header">
                 <h4>规章制度</h4>
+                <el-link @click="toRouter('/introduce')" type="primary" style="float: right">查看更多>>></el-link>
               </div>
               <div class="link-list">
                 <ul>
                   <li v-for="item in institutionList"
                       :key="item.id">
                     <div>
-                      {{ item.title }}
+                      {{ item.docName }}
                     </div>
-                    <span>{{ item.time }}</span>
+                    <span>{{ parseTime(item.createdTime, "{y}-{m}-{d}") }}</span>
                   </li>
                 </ul>
               </div>
@@ -148,15 +151,16 @@
               <div slot="header"
                    class="header">
                 <h4>下载专区</h4>
+                <el-link @click="toRouter('/case')" type="primary" style="float: right">查看更多>>></el-link>
               </div>
               <div class="link-list">
                 <ul>
                   <li v-for="item in downloadList"
                       :key="item.id">
                     <div>
-                      {{ item.title }}
+                      {{ item.docName }}
                     </div>
-                    <span>{{ item.time }}</span>
+                    <span>{{ parseTime(item.createdTime, "{y}-{m}-{d}") }}</span>
                   </li>
                 </ul>
               </div>
@@ -175,11 +179,15 @@
     </div>
   </div>
 </template>
- 
+
 <script>
 import { swiper, swiperSlide } from "vue-awesome-swiper";
-import { getNoticeList } from "@/api/login";
+import { getNoticeList, getNewsInformationList } from "@/api/news";
 import to from "await-to-js";
+import {
+  getEntityByClassName,
+} from "@/api/document";
+import { parseTime } from "@/utils/ruoyi";
 export default {
   name: "HelloWorld",
   components: {
@@ -226,6 +234,7 @@ export default {
         },
       },
       noticeList: [],
+      newsInfoList: [],
       institutionList: [],
       downloadList: []
     };
@@ -239,51 +248,40 @@ export default {
   },
   mounted() {
     this.getNotice();
+    this.getNewsInfoList(); // 新闻动态
     this.getInstitutionList()
     this.getDownloadList()
   },
   methods: {
+    parseTime,
     async getNotice() {
       const [err, res] = await to(getNoticeList());
       if (err) return;
       this.noticeList = res.data.list || [];
     },
-    getInstitutionList() {
-      this.institutionList = [
-        {
-          title: "科研实验室管理工作例会制度",
-          time: "2024-06-03",
-        },
-        {
-          title: "《关于建立校级教学平台与校级教学平台建设方案》",
-          time: "2024-05-01",
-        },
-        {
-          title: "《关于建立校级教学平台与校级教学平台建设方案》",
-          time: "2024-05-01",
-        }
-      ]
+    async getNewsInfoList() {
+      const [err, res] = await to(getNewsInformationList());
+      if (err) return;
+      this.newsInfoList = res.data.list || [];
     },
-    getDownloadList() {
-      this.downloadList = [
-        {
-          title: "入室登记表-学生版",
-          time: "2024-11-15",
-        },
-        {
-          title: "实验管理中心细胞室使用申请表",
-          time: "2024-06-03",
-        },
-        {
-          title: "实验管理中心仪器设备使用申请表",
-          time: "2024-02-22",
-        }
-      ]
+    async getInstitutionList() {
+      const [err, res] = await to(getEntityByClassName({ docClassName: '规章制度' }));
+      if (err) return;
+      this.institutionList = res.data.list || [];
+    },
+    async getDownloadList() {
+      const [err, res] = await to(getEntityByClassName({ noPage: true }));
+      if (err) return;
+      this.downloadList = res.data.list || [];
+    },
+    // 路由跳转
+    toRouter(router) {
+      this.$router.push({ path: router });
     }
   },
 };
 </script>
- 
+
 <style lang="scss" scoped>
 .slide-one {
   height: 320px;
@@ -435,4 +433,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 18 - 0
src/views/News/RightContent.vue

@@ -95,6 +95,17 @@
       <el-divider class="mt6"></el-divider>
       <div class="text"
            v-html="notice.noticeContent"></div>
+      <div slot="footer" class="card-footer">
+        附件【
+        <el-link type="primary"
+                 class="mr5"
+                 target="_blank"
+                 v-for="item in notice.sysNoticeFile"
+                 :key="item.id"
+                 :href="item.fileUrl">{{item.fileName}}
+        </el-link>
+        】
+      </div>
     </div>
   </el-card>
 </template>
@@ -255,6 +266,13 @@ export default {
         margin: 8px;
       }
     }
+    .text {
+      height: 250px + 50px;
+    }
+    .card-footer {
+      text-align: left; /* 根据需要调整对齐方式 */
+      padding: 10px; /* 根据需要调整内边距 */
+    }
   }
   .link-list {
     display: flex;