fix: rating

This commit is contained in:
zzc
2026-05-26 07:29:52 +08:00
parent da6fb97da4
commit 7ef0e46cc8
3 changed files with 44 additions and 12 deletions

View File

@@ -18,6 +18,14 @@ export const topicItemComment = async (data) => {
}); });
}; };
// 获取评论列表
export const topicItemCommentList = async (topicId, itemId, page = 1) => {
return request({
url: `/api/rating/topic/comment/item/list?topicId=${topicId}&itemId=${itemId}&page=${page}`,
method: "GET",
});
};
// 获取评分项详情 // 获取评分项详情
export const fetchTopicRatingItems = async (itemId) => { export const fetchTopicRatingItems = async (itemId) => {
return request({ return request({

View File

@@ -12,8 +12,9 @@
<view class="sparkle s-2"></view> <view class="sparkle s-2"></view>
<view class="sparkle s-3"></view> <view class="sparkle s-3"></view>
</view> </view>
<text class="title">评分成功</text> <text class="title">{{ type === 'comment' ? '评论成功' : '评分成功' }}</text>
<text class="subtitle">你已将TA评价为{{ actionData?.label || '...' }}</text> <text class="subtitle" v-if="type === 'comment'">{{ actionData?.label || '你的锐评已发布' }}</text>
<text class="subtitle" v-else>你已将TA评价为{{ actionData?.label || '...' }}</text>
</view> </view>
</view> </view>
</template> </template>
@@ -24,10 +25,12 @@ import { ref } from 'vue';
const visible = ref(false); const visible = ref(false);
const showAnim = ref(false); const showAnim = ref(false);
const actionData = ref(null); const actionData = ref(null);
const type = ref('rating');
let timer = null; let timer = null;
const show = (action) => { const show = (action, popupType = 'rating') => {
actionData.value = action; actionData.value = action;
type.value = popupType;
visible.value = true; visible.value = true;
// 留一点时间让DOM渲染然后添加动画类 // 留一点时间让DOM渲染然后添加动画类

View File

@@ -127,9 +127,8 @@ import { getStatusBarHeight } from "@/utils/system";
import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app"; import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
import AttitudePanel from "@/components/AttitudePanel/AttitudePanel.vue"; import AttitudePanel from "@/components/AttitudePanel/AttitudePanel.vue";
import SuccessPopup from "@/components/SuccessPopup/SuccessPopup.vue"; import SuccessPopup from "@/components/SuccessPopup/SuccessPopup.vue";
import { fetchTopicRatingItems } from "@/api/topicItem";
import { FILE_BASE_URL } from "@/utils/constants"; import { FILE_BASE_URL } from "@/utils/constants";
import { topicItemScore } from "@/api/topicItem"; import { fetchTopicRatingItems, topicItemScore, topicItemComment } from "@/api/topicItem";
const statusBarHeight = ref(getStatusBarHeight() || 44); const statusBarHeight = ref(getStatusBarHeight() || 44);
const loading = ref(false); const loading = ref(false);
@@ -181,13 +180,35 @@ const handleActionChange = async (action) => {
} }
}; };
const handleSendComment = (payload) => { const handleSendComment = async (payload) => {
console.log('发送评论:', payload); if (!detailData.value.topicId || !itemId.value) return;
uni.showToast({
title: '发送成功', try {
icon: 'success' uni.showLoading({ title: '发送中...' });
}); await topicItemComment({
// TODO: 调用接口发送评论,然后更新评论列表 topicId: detailData.value.topicId,
itemId: itemId.value,
content: payload.content
});
uni.hideLoading();
// 弹出成功弹窗
if (successPopupRef.value) {
successPopupRef.value.show({
emoji: '💬',
label: '你的锐评已发布'
}, 'comment');
}
// 刷新页面数据以获取最新评论
getDetailData();
} catch (error) {
uni.hideLoading();
uni.showToast({
title: '发送失败',
icon: 'none'
});
}
}; };
const getDetailData = async () => { const getDetailData = async () => {