You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
2.9 KiB

4 years ago
<template>
<view class="newsList" ref="container">
<view class="list" v-for="(item, articleListIndex) in articleList" :key="articleListIndex">
<view @click="goNewsDetail(item)" class="item acea-row row-between-wrapper">
<view class="text acea-row row-column-between">
<view class="name line2">{{ item.title }}</view>
<view>{{ item.addTime }}</view>
</view>
<view class="pictrue">
<image :src="item.imageInput" />
</view>
</view>
</view>
<!--暂无新闻-->
<view class="noCommodity" v-if="articleList.length === 0 && page > 1">
<view class="noPictrue">
<image :src="`${$VUE_APP_RESOURCES_URL}/images/noNews.png`" class="image" />
</view>
</view>
<!--</Tab>-->
<!--</Tabs>-->
</view>
</template>
<script>
import { getArticleList } from "@/api/public";
export default {
name: "NewsList",
components: {},
props: {},
data: function() {
return {
page: 1,
limit: 20,
loadTitle: "",
loading: false,
loadend: false,
imgUrls: [],
navLsit: [],
articleList: [],
active: 0,
cid: 0,
swiperNew: {
pagination: {
el: ".swiper-pagination",
clickable: true
},
autoplay: {
disableOnInteraction: false,
delay: 2000
},
loop: true,
speed: 1000,
observer: true,
observeParents: true
}
};
},
mounted: function() {
// this.articleBanner();
//this.articleCategory();
this.getArticleLists();
// this.$scroll(this.$refs.container, () => {
// !this.loading && this.getArticleLists();
// });
},
onReachBottom() {
!this.loading && this.getArticleLists();
},
methods: {
goNewsDetail(item) {
this.$yrouter.push({
path: "/pages/shop/news/NewsDetail/index",
query: { id: item.id }
});
},
getArticleLists: function() {
let that = this;
if (that.loading) return; //阻止下次请求(false可以进行请求);
if (that.loadend) return; //阻止结束当前请求(false可以进行请求);
that.loading = true;
let q = {
page: that.page,
limit: that.limit
};
getArticleList(q).then(res => {
that.loading = false;
//apply();js将一个数组插入另一个数组;
that.articleList.push.apply(that.articleList, res.data);
that.loadend = res.data.length < that.limit; //判断所有数据是否加载完成;
that.page = that.page + 1;
});
},
onClick: function(name) {
if (name === 0) this.articleHotList();
else {
this.cid = this.navLsit[name].id;
this.articleList = [];
this.page = 1;
this.loadend = false;
this.loading = false;
this.getArticleLists(name);
}
}
}
};
</script>