| | |
| | | <template> |
| | | <div class="new_list"> |
| | | <page-head :title="$t('hj6')"></page-head> |
| | | <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;" |
| | | /> |
| | | |
| | | <n-pagination |
| | | :pageNo.sync="pageNum" |
| | | :pageSize="pageSize" |
| | | :total="total" |
| | | ></n-pagination> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import PageHead from "@/components/pageHead.vue"; |
| | | import tabHead from "@/components/tabHead.vue"; |
| | | import NewsItem from "./components/newsItem.vue"; |
| | | import nPagination from "@/components/nPagination.vue"; |
| | | import * as api from "@/axios/api"; |
| | | |
| | | export default { |
| | | name: "newList", |
| | | components: { |
| | | PageHead, |
| | | NewsItem, |
| | | nPagination |
| | | tabHead, |
| | | NewsItem |
| | | }, |
| | | data() { |
| | | return { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | total: 0, |
| | | newsList: [] |
| | | newsList: [], |
| | | lod: 1 // 1 加载更多 2 加载中 3 沒有更多了 |
| | | }; |
| | | }, |
| | | watch: { |
| | | pageNum() { |
| | | this.newsList = []; |
| | | this.getNewsList(); |
| | | } |
| | | }, |
| | | created() { |
| | | this.getNewsList(); |
| | |
| | | }; |
| | | let data = await api.getNewsList(options); |
| | | |
| | | this.newsList = data.data.list; |
| | | 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(); |
| | | } |
| | | } |
| | | }; |
| | |
| | | .new_list { |
| | | font-size: 10vw; |
| | | width: 100%; |
| | | background-color: #fff; |
| | | min-height: 100vh; |
| | | padding-bottom: 0.1em; |
| | | padding-bottom: 1.4rem; |
| | | |
| | | } |
| | | </style> |