bding 10 сар өмнө
parent
commit
cfaf9724ed

+ 8 - 0
src/api/report.js

@@ -292,4 +292,12 @@ export const apiPublicBannerMark = params=>{
  */
 export const apiPublicBannerList = params=>{
     return get('/public/banner/list',params)
+}
+
+/**
+ * banner历史图列表
+ * @returns 
+ */
+export const bannerHistoryList = params=>{
+    return get('/public/banner_history/list',params)
 }

+ 11 - 1
src/router/index.js

@@ -204,7 +204,17 @@ const routes=[
           isRoot:false,
           hasBack:true
         },
-      }
+      },
+      {
+        path: "surveyHistory",
+        name: "surveyHistory",
+        component: () => import("@/views/report/surveyHistory.vue"),
+        meta: {
+          title: "调研列表",
+          keepAlive:true,
+          isRoot:true
+        },
+      },
     ]
   },
   {

+ 21 - 12
src/views/report/Index.vue

@@ -252,19 +252,26 @@ const bannerDataList =ref([])
 
 /* 点击了banner */
 const bannerClickHandler = async (item) => {
-  let source = sessionStorage.getItem('platformSource')
-  const res = await apiPublicBannerMark({
-    first_source: source == 'xcx' ? 2 : 3, //一级来源 1小程序移动 2小程序pc 3研报官网
-    second_source: 1 ,//二级来源 1首页 2研报详情页
-    id:item.id
-  })
-  if(res.code ==200){
+   if(item.id==9999){
+    console.log(112233);
     router.push({
-      path:'/report/disseminatePage',
-      query: {
-        imgBg:item.jump_url_pc
-      }
+        path:'/report/surveyHistory',
     })
+   }else {
+    let source = sessionStorage.getItem('platformSource')
+    const res = await apiPublicBannerMark({
+      first_source: source == 'xcx' ? 2 : 3, //一级来源 1小程序移动 2小程序pc 3研报官网
+      second_source: 1 ,//二级来源 1首页 2研报详情页
+      id:item.id
+    })
+    if(res.code ==200){
+      router.push({
+        path:'/report/disseminatePage',
+        query: {
+          imgBg:item.jump_url_pc
+        }
+      })
+    }
   }
   // 首页
 }
@@ -272,7 +279,9 @@ const bannerClickHandler = async (item) => {
 
 // banner 获取列表
 const getBannerlist = async () => {
-    const res = await apiPublicBannerList()
+    const res = await apiPublicBannerList({
+      is_homepage:1
+    })
     if(res.code ==200){
         bannerDataList.value = res.data
     }

+ 114 - 0
src/views/report/surveyHistory.vue

@@ -0,0 +1,114 @@
+<script setup>
+import { onMounted, ref } from "vue";
+import { apiPublicBannerList, apiPublicBannerMark, bannerHistoryList } from "@/api/report";
+import { useRouter } from "vue-router";
+const router = useRouter();
+
+const bannerDataList = ref([]);
+// banner 获取列表
+const getBannerlist = async () => {
+  const res = await apiPublicBannerList();
+  if (res.code == 200) {
+    bannerDataList.value = res.data;
+  }
+};
+
+// banner 点击事件
+async function bannerSwiperHandler(item) {
+  let source = sessionStorage.getItem("platformSource");
+  const res = await apiPublicBannerMark({
+    first_source: source == "xcx" ? 2 : 3, //一级来源 1小程序移动 2小程序pc 3研报官网
+    second_source: 1, //二级来源 1首页 2研报详情页
+    id: item.id,
+  });
+  if (res.code == 200) {
+    router.push({
+      path: "/report/disseminatePage",
+      query: {
+        imgBg: item.jump_url_pc,
+      },
+    });
+  }
+}
+
+const finished = ref(false);
+const loading = ref(false);
+const page = ref(1);
+const limit = ref(10);
+const bannerHistoryDataList = ref([]);
+
+// 获取已结束的调研
+async function getSurveyHistoryList() {
+  loading.value = true;
+  const res = await bannerHistoryList({
+    page: page.value,
+    limit: limit.value,
+  });
+  loading.value = false;
+  if (res.code === 200) {
+    let arr = res.data.list || [];
+    bannerHistoryDataList.value = [...bannerHistoryDataList.value, ...arr];
+    if (res.data.paging.is_end) {
+      finished.value = true;
+    }
+  }
+}
+
+//加载更多
+const onLoad = () => {
+  if (loading.value) return;
+  page.value++;
+  getSurveyHistoryList();
+};
+
+onMounted(() => {
+  getBannerlist();
+  getSurveyHistoryList();
+  document.title = "调研列表";
+});
+</script>
+
+<template>
+  <div class="container survey-history-content">
+    <div class="state-content">进行中</div>
+    <div class="activity-content" v-for="item in bannerDataList" :key="item.id" @click="bannerSwiperHandler(item)">
+      <img :src="item.image_url_pc" />
+    </div>
+    <div class="state-content" style="margin-top: 20px">已结束</div>
+    <div class="notice-list" v-infinite-scroll="onLoad" :infinite-scroll-disabled="finished">
+      <div class="activity-content" v-for="item in bannerHistoryDataList" :key="item.id" @click="bannerSwiperHandler(item)">
+        <img :src="item.image_url_pc" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<style lang="scss" scoped>
+.survey-history-content {
+  padding: 30px 35px;
+  .state-content {
+    position: relative;
+    font-size: 16px;
+    font-weight: 500;
+    padding-left: 8px;
+    &::after {
+      content: "";
+      position: absolute;
+      top: 1px;
+      left: 0;
+      width: 3px;
+      height: 18px;
+      background-color: #e3b377;
+    }
+  }
+  .activity-content {
+    margin-top: 20px;
+    width: 100%;
+    cursor: pointer;
+    img {
+      width: 100%;
+      height: auto;
+    }
+  }
+}
+</style>