resultMap修正
This commit is contained in:
@@ -40,6 +40,11 @@
|
||||
<p class="section-desc">查看和分析热门文章的访问统计数据</p>
|
||||
</div>
|
||||
<div class="filter-controls">
|
||||
<el-select v-model="sortOrder" @change="loadHotArticles" placeholder="排序规则" style="width: 150px; margin-right: 10px;">
|
||||
<el-option label="默认排序" value="default" />
|
||||
<el-option label="浏览量排序" value="viewCount" />
|
||||
<el-option label="发布时间排序" value="publishTime" />
|
||||
</el-select>
|
||||
<el-select v-model="hotArticleLimit" @change="loadHotArticles" placeholder="显示数量">
|
||||
<el-option label="前10名" :value="10" />
|
||||
<el-option label="前20名" :value="20" />
|
||||
@@ -381,6 +386,7 @@ const ideologicalRecommends = ref<ResourceRecommendVO[]>([]);
|
||||
// 热门文章列表
|
||||
const hotArticles = ref<ResourceVO[]>([]);
|
||||
const hotArticleLimit = ref<number>(20);
|
||||
const sortOrder = ref<string>('default'); // 排序规则:default-默认, viewCount-浏览量, publishTime-发布时间
|
||||
|
||||
// 添加至TOP的加载状态
|
||||
const addingToTop = ref<Set<string>>(new Set());
|
||||
@@ -473,21 +479,31 @@ async function loadTabData(tab: string) {
|
||||
async function loadHotArticles() {
|
||||
loading.value = true;
|
||||
try {
|
||||
// 获取已发布的文章,按浏览量排序
|
||||
// 构建过滤条件
|
||||
const filter: any = {
|
||||
status: 1 // 只显示已发布的
|
||||
};
|
||||
|
||||
// 根据排序规则设置orderTypes
|
||||
if (sortOrder.value === 'viewCount') {
|
||||
filter.orderTypes = [{ field: 'view_count', order: 'DESC' }];
|
||||
} else if (sortOrder.value === 'publishTime') {
|
||||
filter.orderTypes = [{ field: 'publish_time', order: 'DESC' }];
|
||||
}
|
||||
// default情况下orderTypes为空,使用SQL中的默认排序
|
||||
|
||||
// 获取已发布的文章
|
||||
const result = await resourceApi.getResourcePageOrderByViewCount(
|
||||
{
|
||||
pageNumber: 1,
|
||||
pageSize: hotArticleLimit.value
|
||||
},
|
||||
{
|
||||
status: 1 // 只显示已发布的
|
||||
}
|
||||
filter
|
||||
);
|
||||
|
||||
if (result.success && result.pageDomain?.dataList) {
|
||||
// 按浏览量降序排序
|
||||
hotArticles.value = result.pageDomain.dataList
|
||||
.sort((a, b) => (b.resource?.viewCount || 0) - (a.resource?.viewCount || 0));
|
||||
// 直接使用后端返回的排序结果
|
||||
hotArticles.value = result.pageDomain.dataList;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('加载热门文章失败:', error);
|
||||
@@ -542,7 +558,7 @@ async function searchResources() {
|
||||
const result = await resourceApi.getResourcePageOrderByViewCount(
|
||||
{ pageNumber: 1, pageSize: 50 },
|
||||
{
|
||||
keyword: searchKeyword.value,
|
||||
title: searchKeyword.value,
|
||||
status: 1 // 只显示已发布的
|
||||
}
|
||||
);
|
||||
@@ -1055,6 +1071,11 @@ async function addToIdeologicalRecommends(resourceID?: string) {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.stat-title {
|
||||
min-width: 0; /* 允许flex子元素缩小到内容以下 */
|
||||
overflow: hidden; /* 隐藏溢出内容 */
|
||||
}
|
||||
|
||||
.stat-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
Reference in New Issue
Block a user