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.
108 lines
2.9 KiB
108 lines
2.9 KiB
<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>
|
|
|