fix(account): gate reviews and stale refreshes

This commit is contained in:
2026-05-19 08:16:57 +08:00
parent 341c740ced
commit a8a00d8165
6 changed files with 175 additions and 9 deletions
+20 -1
View File
@@ -196,12 +196,31 @@
</div>
<ReviewsPanel
v-if="reviewAppKey && reviewTags"
v-if="loggedIn && reviewAppKey && reviewTags"
:app-key="reviewAppKey"
:tags="reviewTags"
:logged-in="loggedIn"
@request-login="$emit('request-login', $event)"
/>
<section
v-else-if="reviewAppKey && reviewTags"
class="rounded-2xl border border-slate-200/60 bg-slate-50/50 p-5 dark:border-slate-800/60 dark:bg-slate-800/30"
>
<h2 class="mb-2 flex items-center gap-2 text-base font-semibold">
<i class="fas fa-comments text-slate-400"></i>
应用评价
</h2>
<p class="text-sm text-slate-500 dark:text-slate-400">
登录星火账号后可查看评价并发表评论
</p>
<button
type="button"
class="mt-4 inline-flex items-center rounded-xl bg-slate-800 px-4 py-2 text-sm font-medium text-white transition hover:bg-slate-700 dark:bg-slate-700 dark:hover:bg-slate-600"
@click="emit('request-login', '登录后查看和发表评论。')"
>
登录后查看评价
</button>
</section>
</div>
</div>
</section>
+13 -2
View File
@@ -152,8 +152,19 @@ const ratingText = computed(() => {
return `${summary.value.averageRating.toFixed(1)} / 5 (${summary.value.reviewCount})`;
});
const clearReviewState = () => {
loadGeneration.value += 1;
reviews.value = [];
summary.value = null;
loading.value = false;
error.value = "";
};
const loadReviews = async () => {
if (!props.appKey) return;
if (!props.loggedIn || !props.appKey) {
clearReviewState();
return;
}
const generation = loadGeneration.value + 1;
loadGeneration.value = generation;
const appKey = props.appKey;
@@ -202,5 +213,5 @@ const submit = async () => {
};
onMounted(loadReviews);
watch(() => props.appKey, loadReviews);
watch(() => [props.appKey, props.loggedIn], loadReviews);
</script>