fix: 修复UI样式和轮询逻辑问题

- 修复ActionButton禁用状态颜色错误
- 调整CompetitionLayout布局和z-index层级
- 修正analysis页面评委评分显示位置
- 优化QuestionRenderer字体大小和间距
- 改进cover页面卡片翻转动画效果
- 修复results-detail页面轮询逻辑和时间同步
This commit is contained in:
2026-04-02 15:14:50 +08:00
parent 9bc58c6270
commit a76263375a
7 changed files with 36 additions and 39 deletions

View File

@ -168,7 +168,7 @@ onBeforeUnmount(() => {
<!-- Content -->
<div class="w-full flex flex-col flex-1 overflow-hidden">
<div class="mb-2 text-xl text-red-600 font-bold">
备注评委正在评分中请等待
备注评委正在评分中请等待...
</div>
<div v-if="teams && teams.length > 0" class="grid grid-cols-4 h-full gap-6 pb-8">
@ -180,12 +180,12 @@ onBeforeUnmount(() => {
class="mb-3 flex items-center gap-2 rounded-full from-sky-300 to-cyan-200 bg-gradient-to-r px-4 py-2 shadow-sm"
>
<span class="text-lg text-white font-bold drop-shadow">{{ team.TeamName }}</span>
<span class="rounded-full bg-green-100/90 px-5 py-2 text-sm">
评委评分 <span class="text-lg text-orange-600 font-bold">{{ team.ResultPotins }}</span>
</span>
<span class="rounded-full bg-orange-100/60 px-5 py-2 text-sm">
AI评分 <span class="text-md text-orange-600 font-bold">{{ team.Points }}</span>
</span>
<span class="rounded-full bg-green-100/60 px-5 py-2 text-sm">
评委评分 <span class="text-md text-green-600 font-bold">{{ team.ResultPotins }}</span>
</span>
</div>
<!-- Answer Image Area -->

View File

@ -288,7 +288,7 @@ onMounted(async () => {
// [过冲状态]
// 飞到眼前一点点 (Z=50px)
// 角度稍微回弹 (rotateY -15deg)
transform: translate3d(0, -20px, 50px) rotateY(-15deg) rotateX(-10deg) scale(1.05);
transform: translate3d(0, -20px, 50px) rotateY(-15deg) rotateX(-10deg) scale(1.2);
}
100% {
@ -328,8 +328,8 @@ onMounted(async () => {
// [翻转状态]
// rotateY(180deg): 绕Y轴旋转180度实现翻面
// scale(1.05): 翻转同时放大1.05倍,产生"向观众逼近"的视觉冲击力
transform: rotateY(180deg) scale(1.06);
box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.3); // [动态阴影] 翻转浮起时阴影更深、更扩散
transform: rotateY(180deg) scale(1.08);
box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.3); // [动态阴影] 翻转浮起时阴影更深、更扩散
}
}
@ -344,7 +344,7 @@ onMounted(async () => {
border-radius: 20px;
overflow: hidden;
// border: 1px solid rgba(255, 255, 255, 0.5); // 增加微妙的边框
// border: 1px solid rgba(231, 215, 144, 0.5); // 增加微妙的边框
}
// 正面(实际是卡背图案)
@ -367,7 +367,7 @@ onMounted(async () => {
// 背面(实际是内容面)
.flip-card-back {
// background-color: #fff;
transform: rotateY(180deg);
transform: rotateY(200deg);
// border: 4px solid #fff;
.card-content-design {
@ -409,7 +409,7 @@ onMounted(async () => {
// animation-delay: 0.2s; 确保卡片翻转到一半(正对屏幕)时才开始闪光,
// 模拟光线随着角度变化掠过卡片表面的物理效果
animation: shine-sweep 3s ease-out forwards;
animation-delay: 0.2s;
animation-delay: 1s;
}
}
@ -455,14 +455,14 @@ onMounted(async () => {
10% {
// 刚进入时瞬间变亮
opacity: 0.8;
opacity: 0.8; // 0.8 是一个半透明值,模拟光束的透明度,值越大越透明
}
100% {
// 扫出视野
top: 50%;
left: 150%;
opacity: 0;
opacity: 0.6;
}
}

View File

@ -185,7 +185,7 @@ watch(
>
<!-- 上方词组 -->
<div class="flex flex-wrap justify-center gap-4">
<div v-for="(word, index) in associationWords" :key="`word-${index}`" class="association-word text-bold">
<div v-for="(word, index) in associationWords" :key="`word-${index}`" class="association-word text-bold text-center text-3xl">
{{ word }}
</div>
</div>
@ -215,9 +215,9 @@ watch(
</div>
</div>
<!-- 模板: 诗词常识 -->
<!-- 模板: 加时赛诗词常识 -->
<div v-else-if="template === QuestionCategoryEnum.PoetryCommonKnowledge" class="w-full flex flex-col items-center">
<div class="mb-1 p-16 text-3xl text-gray-800 font-bold leading-relaxed line-height-20">
<div class="line-height mb-1 p-16 text-3xl text-gray-800 font-bold leading-relaxed">
<div class="rich-content" v-html="content" />
</div>
</div>
@ -445,8 +445,7 @@ watch(
:deep(p),
:deep(span),
:deep(div) {
font-size: 2.2rem;
/* text-5xl */
font-size: 2rem;
}
}
@ -494,15 +493,14 @@ watch(
.association-word {
background: url('@/assets/imgs/user/dui-kuang.png') no-repeat center;
background-size: 100% 100%;
min-width: 160px;
min-width: 170px;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
font-size: 32px;
font-weight: bold;
color: white;
padding: 0 20px;
letter-spacing: 0.2em;
}
.association-char {

View File

@ -157,13 +157,13 @@ function rowClassName(row: TeamData) {
<template>
<CompetitionLayout :show-back="false" :show-next="false" :show-title="false">
<div class="leaderboard-container h-100%">
<div class="leaderboard-header">
<div class="leaderboard-header !z-index-99">
<NImage :src="title" alt="logo" preview-disabled class="mt--42px" object-fit="contain" />
<!-- <p class="mt--16px text-center text-18px text-#6b778d">
"勤学如春起之苗,不见其增,日有所长"
</p> -->
<ActionButton
v-if="hasExtraTimeBtn" class="z-index-99 position-absolute right-20px top-20px" type="text"
v-if="hasExtraTimeBtn" class="!z-index-100 position-absolute right-20px top-20px" type="text"
text="加时赛" @click="handleAddTime"
/>
</div>