2
PC-20250623MANY\Administrator
2025-09-15 0f6b38dfdfe93a1d630d984417af2fbb03c7e0ff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<template>
  <div class="new_list">
    <!-- <tab-head :title="$t('hj6')"></tab-head> -->
 
    <news-item v-for="item in newsList" :key="item.id" :item="item"></news-item>
 
    <div class="more-news" @click="getMore" v-if="newsList.length > 0">
      <span v-if="lod == 1">{{ $t("加载更多") }}</span>
      <span v-else-if="lod == 2">{{ $t("加载中") }}</span>
      <span v-else-if="lod == 3">{{ $t("沒有更多了") }}</span>
    </div>
 
    <van-skeleton
      :row="10"
      v-if="newsList.length == 0"
      style="margin-top: 1em;"
    />
  </div>
</template>
 
<script>
import tabHead from "@/components/tabHead.vue";
import NewsItem from "./components/newsItem.vue";
import * as api from "@/axios/api";
 
export default {
  name: "newList",
  components: {
    tabHead,
    NewsItem
  },
  data() {
    return {
      pageNum: 1,
      pageSize: 10,
      total: 0,
      newsList: [],
      lod: 1 // 1 加载更多 2 加载中 3 沒有更多了
    };
  },
  created() {
    this.getNewsList();
  },
  methods: {
    // 获取新闻列表
    async getNewsList() {
      let options = {
        pageNum: this.pageNum,
        pageSize: this.pageSize,
        type: 1
      };
      let data = await api.getNewsList(options);
 
      this.newsList = [...this.newsList, ...data.data.list];
      this.total = data.data.total;
      this.lod = 1;
      if (this.total <= this.newsList.length) this.lod = 3;
    },
    // 加载更多
    getMore() {
      if (this.lod == 3) return;
      this.lod = 2;
      this.pageNum++;
      this.getNewsList();
    }
  }
};
</script>
 
<style lang="less" scoped>
.new_list {
  font-size: 10vw;
  width: 100%;
  min-height: 100vh;
  padding-bottom: 1.4rem;
 
}
</style>