fix: youhua

This commit is contained in:
zzc
2026-06-10 00:45:45 +08:00
parent d325329af4
commit 21bfa3efd8
4 changed files with 28 additions and 36 deletions

View File

@@ -120,8 +120,13 @@ const loadTopicList = async (categoryId, page = 1) => {
try { try {
loading.value = true; loading.value = true;
const res = await fetchTopicList(categoryId, page); const res = await fetchTopicList(categoryId, page);
// 提取真实数据数组 const rawList =
const list = res?.list || []; res?.data?.records ||
res?.data?.list ||
res?.records ||
res?.list ||
(Array.isArray(res?.data) ? res.data : []);
const list = Array.isArray(rawList) ? rawList : [];
// 合并数据 // 合并数据
topicList.value = [...topicList.value, ...list]; topicList.value = [...topicList.value, ...list];
hasMore.value = list.length >= 5; hasMore.value = list.length >= 5;

View File

@@ -118,7 +118,7 @@ const userInfo = computed(() => ({
isVip: userStore.userInfo.isVip || false, isVip: userStore.userInfo.isVip || false,
})); }));
const isLoggedIn = computed(() => !!userStore.userInfo.nickName); const isLoggedIn = computed(() => !!userStore.token || !!userStore.userInfo.nickName);
// User Stats // User Stats
const userStats = ref({ const userStats = ref({
@@ -129,7 +129,15 @@ const userStats = ref({
}); });
const loadUserStats = async () => { const loadUserStats = async () => {
if (!isLoggedIn.value) return; if (!isLoggedIn.value) {
userStats.value = {
participant: 0,
comment: 0,
liked: 0,
label: []
};
return;
}
try { try {
const res = await fetchUserNums(); const res = await fetchUserNums();
const data = res?.data || res || {}; const data = res?.data || res || {};

View File

@@ -271,12 +271,20 @@ const getCommentsData = async (isSwitchTab = false) => {
loading.value = true; loading.value = true;
const orderBy = currentTab.value; const orderBy = currentTab.value;
const res = await topicItemCommentList(detailData.value.topicId, itemId.value, currentPage.value, orderBy); const res = await topicItemCommentList(detailData.value.topicId, itemId.value, currentPage.value, orderBy);
const list = res?.list || []; const rawList =
res?.data?.records ||
res?.data?.list ||
res?.records ||
res?.list ||
(Array.isArray(res?.data) ? res.data : []);
const list = Array.isArray(rawList) ? rawList : [];
const formattedList = list.map(item => ({ const formattedList = list.map(item => ({
id: item.id, id: item.id,
name: item.user?.nickname || '匿名用户', name: item.user?.nickname || '匿名用户',
avatar: item.user?.avatar ? item.user.avatar : 'https://api.dicebear.com/7.x/avataaars/svg?seed=fallback', avatar: item.user?.avatar
? (String(item.user.avatar).startsWith('http') ? item.user.avatar : `${FILE_BASE_URL}${item.user.avatar}`)
: 'https://api.dicebear.com/7.x/avataaars/svg?seed=fallback',
time: formatDate(item.createdAt) || '刚刚', // 如果后端返回了时间字段可以替换 time: formatDate(item.createdAt) || '刚刚', // 如果后端返回了时间字段可以替换
content: item.content, content: item.content,
likes: item.likeCount || 0, likes: item.likeCount || 0,

View File

@@ -317,25 +317,6 @@ onLoad((options) => {
} }
}); });
const mockComments = [
{
id: 1,
name: '史学家阿强',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=c1',
time: '刚刚',
content: '李世民唯一缺点是儿子太抽象。他在位时那种包容力和大局观,放眼整个历史都是炸裂的存在。'
},
{
id: 2,
name: '逻辑帝',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=c2',
time: '2小时前',
content: '秦始皇是开辟者李世民是完善者。一个是0到1的惊天动地一个是1到100的极致巅峰。'
}
];
const comments = ref([...mockComments]);
const handleAction = async (item, action) => { const handleAction = async (item, action) => {
if (!isLoggedIn.value) { if (!isLoggedIn.value) {
openLoginPopup(); openLoginPopup();
@@ -443,11 +424,7 @@ onPullDownRefresh(async () => {
loadItems(currentTopicId.value, currentPage.value) loadItems(currentTopicId.value, currentPage.value)
]); ]);
} }
// 模拟评论刷新(此处未接接口,暂时保留原有模拟刷新逻辑,去掉 mockRatingItems 的重置)
setTimeout(() => {
comments.value = [...mockComments];
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
}, 1000);
}); });
// 上拉加载更多 // 上拉加载更多
@@ -457,12 +434,6 @@ onReachBottom(() => {
currentPage.value += 1; currentPage.value += 1;
loadItems(currentTopicId.value, currentPage.value); loadItems(currentTopicId.value, currentPage.value);
} }
// 原有的评论模拟加载(根据需要决定是否保留)
setTimeout(() => {
const moreComments = mockComments.map(c => ({...c, id: c.id + comments.value.length}));
comments.value.push(...moreComments);
}, 1000);
}); });
</script> </script>