Pārlūkot izejas kodu

feat: 完成安全态势-安全宣传栏

ai0197 3 nedēļas atpakaļ
vecāks
revīzija
dfba73f6d1

+ 14 - 0
src/views/institute-safety/modules/safety-company-home/apis/index.ts

@@ -59,3 +59,17 @@ export function getWorkshopTodayExceptionStatus(list: string[]) {
     },
   });
 }
+
+export function getPaprogandaData() {
+  return http.request<
+    {
+      id: number;
+      imageUrls: string | null;
+      materialName: string;
+      createdAt: string;
+    }[]
+  >({
+    url: '/safetypublicitybulletinboard/field_external',
+    method: 'get',
+  });
+}

+ 22 - 12
src/views/institute-safety/modules/safety-propaganda/SafetyPropaganda.vue

@@ -5,10 +5,20 @@
       <span class="text">安全宣传栏</span>
     </div>
     <div class="safety-propaganda">
-      <div class="item" v-for="item in data" :key="item.id">
-        <img v-if="item.attachmentUrl" class="propaganda-img" :src="item.attachmentUrl" alt="" />
+      <div
+        class="item"
+        v-for="item in data"
+        :key="item.id"
+        @click="
+          router.push({
+            name: 'safetyPublicityBoardManagementItem',
+            query: { id: item.id, operate: 'safety-publicity-board-view' },
+          })
+        "
+      >
+        <img v-if="item.imageUrls[0]?.url" class="propaganda-img" :src="item.imageUrls[0].url" alt="" />
         <img v-else class="propaganda-img" src="@/assets/images/institute-safety/default-propaganda.jpeg" alt="" />
-        <div class="category-name">{{ item.categoryName }}</div>
+        <div class="category-name">{{ item.materialName }}</div>
         <div class="propaganda-time">{{ item.createdAt }}</div>
       </div>
     </div>
@@ -17,19 +27,18 @@
 
 <script setup lang="ts">
   import { ref, onMounted } from 'vue';
-  import { querySafetyPublicityBoardPage, type safetyCultureFilePageQuery } from '@/api/safety-culture';
-
-  const queryParams: safetyCultureFilePageQuery = {
-    pageNumber: 1,
-    pageSize: 5,
-    queryParam: {},
-  };
+  import { useRouter } from 'vue-router';
+  import { getPaprogandaData } from '../safety-company-home/apis';
 
+  const router = useRouter();
   const data = ref();
 
   onMounted(() => {
-    querySafetyPublicityBoardPage(queryParams).then((res) => {
-      data.value = res.records || [];
+    getPaprogandaData().then((res) => {
+      data.value = res || [];
+      data.value.forEach((item) => {
+        item.imageUrls = JSON.parse(item.imageUrls || '[]');
+      });
     });
   });
 </script>
@@ -51,6 +60,7 @@
     height: 224px;
     background: #f0f2f6;
     border-radius: 8px;
+    cursor: pointer;
   }
   .propaganda-img {
     width: 100%;