|
@@ -278,7 +278,7 @@
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
|
|
|
|
|
<el-tab-pane label="作品" name="works">
|
|
<el-tab-pane label="作品" name="works">
|
|
|
- <el-table :data="detailWorks" v-loading="detailLoading" stripe>
|
|
|
|
|
|
|
+ <el-table :data="pagedDetailWorks" v-loading="detailLoading" stripe>
|
|
|
<el-table-column label="标题" min-width="260">
|
|
<el-table-column label="标题" min-width="260">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<div class="work-title-cell">
|
|
<div class="work-title-cell">
|
|
@@ -317,6 +317,19 @@
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="pagination-wrapper"
|
|
|
|
|
+ v-if="detailWorksTotal > detailWorksPageSize"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-pagination
|
|
|
|
|
+ v-model:current-page="detailWorksPage"
|
|
|
|
|
+ :page-size="detailWorksPageSize"
|
|
|
|
|
+ :total="detailWorksTotal"
|
|
|
|
|
+ layout="total, prev, pager, next"
|
|
|
|
|
+ small
|
|
|
|
|
+ @current-change="handleDetailWorksPageChange"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
</el-tabs>
|
|
|
</div>
|
|
</div>
|
|
@@ -510,6 +523,22 @@ const detailWorks = ref<Array<{
|
|
|
likesCount: number;
|
|
likesCount: number;
|
|
|
}>>([]);
|
|
}>>([]);
|
|
|
|
|
|
|
|
|
|
+// 账号详情 - 作品列表分页
|
|
|
|
|
+const detailWorksPage = ref(1);
|
|
|
|
|
+const detailWorksPageSize = ref(15);
|
|
|
|
|
+
|
|
|
|
|
+const pagedDetailWorks = computed(() => {
|
|
|
|
|
+ const start = (detailWorksPage.value - 1) * detailWorksPageSize.value;
|
|
|
|
|
+ const end = start + detailWorksPageSize.value;
|
|
|
|
|
+ return detailWorks.value.slice(start, end);
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
|
|
+const detailWorksTotal = computed(() => detailWorks.value.length);
|
|
|
|
|
+
|
|
|
|
|
+function handleDetailWorksPageChange(page: number) {
|
|
|
|
|
+ detailWorksPage.value = page;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function getPlatformName(platform: PlatformType) {
|
|
function getPlatformName(platform: PlatformType) {
|
|
|
return PLATFORMS[platform]?.name || platform;
|
|
return PLATFORMS[platform]?.name || platform;
|
|
|
}
|
|
}
|
|
@@ -572,9 +601,10 @@ function handleQuery() {
|
|
|
async function loadGroups() {
|
|
async function loadGroups() {
|
|
|
try {
|
|
try {
|
|
|
const res = await request.get('/api/accounts/groups');
|
|
const res = await request.get('/api/accounts/groups');
|
|
|
- if ((res as any).success && (res as any).data) {
|
|
|
|
|
- accountGroups.value = (res as any).data || [];
|
|
|
|
|
- } else if ((res as any).data?.success) {
|
|
|
|
|
|
|
+ // 新接口:request 已经解包,res 就是分组数组
|
|
|
|
|
+ if (Array.isArray(res)) {
|
|
|
|
|
+ accountGroups.value = res as AccountGroup[];
|
|
|
|
|
+ } else if ((res as any)?.data?.data) {
|
|
|
// 兼容旧返回格式 { data: { success, data } }
|
|
// 兼容旧返回格式 { data: { success, data } }
|
|
|
accountGroups.value = (res as any).data.data || [];
|
|
accountGroups.value = (res as any).data.data || [];
|
|
|
}
|
|
}
|
|
@@ -734,6 +764,8 @@ async function loadAccountDetailData() {
|
|
|
|
|
|
|
|
detailDailyData.value = Array.isArray(data.dailyData) ? data.dailyData : [];
|
|
detailDailyData.value = Array.isArray(data.dailyData) ? data.dailyData : [];
|
|
|
detailWorks.value = Array.isArray(data.works) ? data.works : [];
|
|
detailWorks.value = Array.isArray(data.works) ? data.works : [];
|
|
|
|
|
+ // 重新加载详情数据时,重置作品分页
|
|
|
|
|
+ detailWorksPage.value = 1;
|
|
|
}
|
|
}
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
console.error('加载账号详情失败:', error);
|
|
console.error('加载账号详情失败:', error);
|
|
@@ -1042,6 +1074,12 @@ onMounted(() => {
|
|
|
color: $text-primary;
|
|
color: $text-primary;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ .pagination-wrapper {
|
|
|
|
|
+ padding-top: 12px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-end;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@media (max-width: 1400px) {
|
|
@media (max-width: 1400px) {
|