1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-06-12 13:19:31 +08:00

fix: 修复文章归档

This commit is contained in:
小莫唐尼
2024-10-17 18:07:15 +08:00
parent 76c00f31f6
commit 32b3bbaa74
2 changed files with 50 additions and 44 deletions
+4 -9
View File
@@ -21,14 +21,14 @@
<tm-skeleton model="listAvatr"></tm-skeleton> <tm-skeleton model="listAvatr"></tm-skeleton>
</view> </view>
<block v-else> <block v-else>
<view class="bg-white pb-24"> <view v-if="!haloConfigs.basicConfig.auditModeEnabled" class="bg-white pb-24">
<view class="banner bg-white ml-24 mr-24 mt-12 round-3" v-if="bannerList.length != 0"> <view class="banner bg-white ml-24 mr-24 mt-12 round-3" v-if="bannerList.length != 0">
<e-swiper :dotPosition="globalAppSettings.banner.dotPosition" :autoplay="true" <e-swiper :dotPosition="globalAppSettings.banner.dotPosition" :autoplay="true"
:useDot="globalAppSettings.banner.useDot" :list="bannerList" :useDot="globalAppSettings.banner.useDot" :list="bannerList"
@on-click="fnOnBannerClick"></e-swiper> @on-click="fnOnBannerClick"></e-swiper>
</view> </view>
</view> </view>
<view class="flex flex-between mt-16 mb-24 pl-24 pr-24"> <view v-if="!haloConfigs.basicConfig.auditModeEnabled" class="flex flex-between mt-16 mb-24 pl-24 pr-24">
<view class="page-item_title text-weight-b ">精品分类</view> <view class="page-item_title text-weight-b ">精品分类</view>
<view class="show-more flex flex-center bg-white round-3" @click="fnToCategoryPage"> <view class="show-more flex flex-center bg-white round-3" @click="fnToCategoryPage">
<text class="iconfont icon-angle-right text-size-s text-grey-darken-1"></text> <text class="iconfont icon-angle-right text-size-s text-grey-darken-1"></text>
@@ -38,7 +38,7 @@
<text class="iconfont icon-angle-right text-size-s "></text> <text class="iconfont icon-angle-right text-size-s "></text>
</view> </view>
</view> </view>
<scroll-view class="category" scroll-x="true"> <scroll-view v-if="!haloConfigs.basicConfig.auditModeEnabled" class="category" scroll-x="true">
<view v-if="categoryList.length == 0" class="cate-empty round-3 mr-5 flex flex-center text-grey"> <view v-if="categoryList.length == 0" class="cate-empty round-3 mr-5 flex flex-center text-grey">
还没有任何分类~ 还没有任何分类~
</view> </view>
@@ -194,9 +194,7 @@ export default {
}, },
// 获取轮播图 // 获取轮播图
fnGetBanner() { fnGetBanner() {
if (this.haloConfigs.basicConfig.auditModeEnabled) {
return;
}
const _this = this; const _this = this;
const _format = function (list) { const _format = function (list) {
return list.map((item, index) => { return list.map((item, index) => {
@@ -245,9 +243,6 @@ export default {
}, },
// 文章列表 // 文章列表
fnGetArticleList() { fnGetArticleList() {
if (this.haloConfigs.basicConfig.auditModeEnabled) {
return;
}
// 设置状态为加载中 // 设置状态为加载中
if (!this.isLoadMore) { if (!this.isLoadMore) {
this.loading = 'loading'; this.loading = 'loading';
+25 -14
View File
@@ -41,7 +41,6 @@
</view> </view>
<block v-if="item.posts.length != 0"> <block v-if="item.posts.length != 0">
<block v-for="(post, postIndex) in item.posts" :key="post.metadata.name"> <block v-for="(post, postIndex) in item.posts" :key="post.metadata.name">
<tm-translate animation-name="fadeUp" :wait="calcAniWait(postIndex)">
<view class="flex post shadow-3 pa-24 mb-24" <view class="flex post shadow-3 pa-24 mb-24"
:class="[globalAppSettings.layout.cardType]" :class="[globalAppSettings.layout.cardType]"
@click="fnToArticleDetail(post)"> @click="fnToArticleDetail(post)">
@@ -62,7 +61,6 @@
</view> </view>
</view> </view>
</view> </view>
</tm-translate>
</block> </block>
</block> </block>
<view v-else class="post-empty text-size-m text-grey-darken-1">该日期下暂无归档文章</view> <view v-else class="post-empty text-size-m text-grey-darken-1">该日期下暂无归档文章</view>
@@ -146,6 +144,7 @@
this.fnResetSetAniWaitIndex(); this.fnResetSetAniWaitIndex();
this.queryParams.page = 0; this.queryParams.page = 0;
this.dataList = this.handleGetShowDataList(this.handleGetPosts(this.cacheDataList)) this.dataList = this.handleGetShowDataList(this.handleGetPosts(this.cacheDataList))
this.fnToTopPage();
}, },
fnGetData() { fnGetData() {
if (this.isLoadMore) { if (this.isLoadMore) {
@@ -154,9 +153,8 @@
}) })
} else { } else {
this.loading = 'loading'; this.loading = 'loading';
this.loadMoreText = "加载中...";
} }
this.loadMoreText = "加载中...";
const paramsStr = qs.stringify(this.queryParams, { const paramsStr = qs.stringify(this.queryParams, {
allowDots: true, allowDots: true,
encodeValuesOnly: true, encodeValuesOnly: true,
@@ -173,7 +171,10 @@
const posts = this.handleGetPosts(data.items) const posts = this.handleGetPosts(data.items)
const showDataList = this.handleGetShowDataList(posts) const showDataList = this.handleGetShowDataList(posts)
if (this.isLoadMore) { if (this.isLoadMore) {
this.cacheDataList = this.cacheDataList.concat(data.items); this.cacheDataList = this.handleUniqueCacheDatalist([...this.cacheDataList, ...
data
.items
]);
this.handleMergeDataList2(showDataList) this.handleMergeDataList2(showDataList)
} else { } else {
this.dataList = [] this.dataList = []
@@ -185,6 +186,7 @@
this.loadMoreText = data.hasNext ? '上拉加载更多' : '呜呜,没有更多数据啦~'; this.loadMoreText = data.hasNext ? '上拉加载更多' : '呜呜,没有更多数据啦~';
uni.hideLoading(); uni.hideLoading();
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
}, },
fail: (err) => { fail: (err) => {
this.loading = 'error'; this.loading = 'error';
@@ -237,11 +239,11 @@
} }
dataListResult.push(postData) dataListResult.push(postData)
}) })
if (this.tab.activeIndex == 1) {
dataListResult.sort((a, b) => { dataListResult.sort((a, b) => {
return Number(b.year) - Number(a.year) return Number(b.sort) - Number(a.sort)
}) })
}
return dataListResult; return dataListResult;
}, },
handleMergeDataList(list1, list2) { handleMergeDataList(list1, list2) {
@@ -270,22 +272,31 @@
return Object.values(merged); return Object.values(merged);
}, },
handleMergeDataList2(list) { handleMergeDataList2(list) {
const tempList = [...list] list.forEach((item, index) => {
this.dataList.forEach((item, index) => {
const find = this.dataList.find(x => x.key == item.key) const find = this.dataList.find(x => x.key == item.key)
if (find) { if (find) {
item.posts.forEach(post => { item.posts.forEach(post => {
if (!find.posts.some(x => x.metadata.name == post.metadata.name)) { if (!find.posts.find(x => x.metadata.name == post.metadata.name)) {
find.posts.push(post) find.posts.push(post)
} }
}) })
tempList.splice(index, 1)
} }
}) })
tempList.forEach(post => { list.forEach(post => {
if (!this.dataList.find(x => x.key === post.key)) {
this.dataList.push(post) this.dataList.push(post)
}
}) })
console.log("this.dataList", this.dataList)
this.dataList.sort((a, b) => {
return Number(b.sort) - Number(a.sort)
})
},
handleUniqueCacheDatalist(dataList) {
const seen = new Set();
return dataList.filter(item => {
return seen.has(item.metadata.name) ? false : seen.add(item.metadata.name);
});
}, },
fnToArticleDetail(article) { fnToArticleDetail(article) {
uni.navigateTo({ uni.navigateTo({