From d4db394b58e31902f950542e0c0faef693f6d889 Mon Sep 17 00:00:00 2001 From: Wxp Date: Tue, 12 Aug 2025 18:22:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E4=B8=AA=E4=BA=BA=E4=B8=AD?= =?UTF-8?q?=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/icon/finish.png | Bin 0 -> 2220 bytes public/images/icon/learning.png | Bin 0 -> 7450 bytes src/components/ExamDetail.vue | 3836 +++++++++++++++++++++++++++++++ src/views/Profile.vue | 513 ++--- 4 files changed, 4026 insertions(+), 323 deletions(-) create mode 100644 public/images/icon/finish.png create mode 100644 public/images/icon/learning.png create mode 100644 src/components/ExamDetail.vue diff --git a/public/images/icon/finish.png b/public/images/icon/finish.png new file mode 100644 index 0000000000000000000000000000000000000000..4601285f138c214ab06c2b42084b45a46efdf767 GIT binary patch literal 2220 zcmV;d2vhfoP)Re~K7G2w3>t%8`1j8wFTx}d!lg@>!n0@3!spMQ!_S{T z|IO_lGi3x4LLkHS>(|5c=g((Kzq@|+8G(cl_wU~i@87@gBhn?$q!H+S`t+&u3^QrQ zOZwV-@!~~^NS8g6MxgiZ-Mg98->$DEBhdT$^=pYpmpv6DFe+{Ix~=7?OvPyEk?b-? zLzPa8Q5b=a5Th^)Bcww|h!L8MQBY;5gorVQ*|TSdRjXEoojZ4iBS(&elP6CmIC}JG z*u8sqSi5#@m^*iFh%t^r|A(SOjP3g}Yu2nvy2Kbmuh$EI>(9_?MuatM)`SBG4utL7 zw}%xgR{Wm$7-N_-XHHnQY+2Z{WlJKnVZ(+b|8I3{D(YRgZe2Kj{CHTuetqlacI?;@ z4jnp_jMJdXwr<@TPMkOq7A#mWNUU*QuW`vtK^DJbvO^}@dnT*!6?qVX7irruUgz-P z!=VXIojMi3#1<-AlIRSFWv^VhvP5!lw((fHbZH{=?c2BHIbDCXCIkW?LfWA^9a*$! zQNZ{%q;N6U6m$g>;+Y4_N0{xC9&g*WZ6OcKpEC33&kuX|?)@V_l~>1}J$w4PdW4EG zCb!J$gBW92zI=HhwRrL3z`M+wH!ojBrQbJi z-V7HnUTg$6yn`A^`z0n?y?S*hLRx;wk|l-t%8+3&{nmcJ`xhF~+cK*RDTc z%n5AVxbcrXURPclG$urhF<`ci7AY_>F%fRvx)mNgco4pS|6U~WJB^26Z865*X`}Qq zK0Y4KpFiIi45MFv5NYAUg~c3hMV%W;2Yxc0~ZCam?hF-sZofKyP0>?T?z1D{hAA)*P zBT=DPK(H!J{2(wFeDV-4U%m`HD|N6mIR z0@gGjL^!dEg4(q6s0w4PTpKhdMAb%hPRDQDxDm1tAtOoEdaB6PnJltz-@Xm>hll?v2@3xCYu;n%Zp4oh9kWI_J7a4%S zQ!F8FU^wCcJ0|x+`Y-TwKjfmY2eYZShbvF(IN3PyU?ZJZw1Fz)tmsiNjYSR*v zhc>fvZQolF0{hDph%qKt-7)_ESyV>H9JUnYO+^|n<_MjIm$k=r3yMu-ne3o^WRP!J zKn`Q@=+UEufMP6pDa2t#$jhbjO`nYkVL$|CO&iXaLk2E0pFUN;Eng1CtmT8+WXW87 zU0s#S*K6`kGEa2&?AhRHi^|L7WvA+QV?r1>+o8N0Y@)dBmFQZXP0A0W467HImg&H% zV~hcT>$GdF=Yg_ioKsi=#ACceHV;9oc&lugVZ1jcgvPl{k+Jp7?h%p8phjp81UP0gVsh__3WYTRJU50_%O!dkWE2L%Z z(0tr;;lhP*?%cWL6qhc%W-60?I^y>K?#Lrc;;ekr_n{Gj0wx|YxI33QJ}em<8w+5< zcm$JWFvu!1EFhPuap5SFa{PWIpiA%6mr~#5!~4Ovu8d+fk57 zp)RpkzTGrGebP^zh{i+Zfe`Z5m6mDq94aB&C^Cv=S#(*T`M32(0A%QAKny{C8L_JB z*%6}ZNX-B_JGG7wGhm{tc2Pjw5u)m74O?ym>k|NXgc!kznJ$$ax^;w@uF)T{cAdGn zqv;4SViPkR>iBjgJ@M=aF9LT&O4PE%w2=N_md#0X8!RH$NW>AuIml=DH3%d{B( uA%ph+2LJ&7|1YU z3)FR2Ri5AP{{tjJ2zMfcP@pMt5!*qz79E93xJUvL0?AL64)Fpa0m-GdQn1RUlxsyQ zLLwkHA)y07hCn;0qEKI(SK;;?}LLkTIdG}iT-`|%%W4OnfYtH$;@0@Gx zbM`rBpYwf(a^ToK`}z4-DJ0W)UY4MYmYi~UZ<^2crL9OBhZ-0jX8b}n8! z=Y-u(e}sJ6xnM_5*sT}D?(Dl>fA`?q{7SCb`)GE%r*oa$75`nyt|NPUKo0VZ*ifhj z#)!Hd1Y;>Ind0G)Q$t99W`vBD4^7mF&9zYp>smAG%U1|R9rH58F#8A)uJzW;q`age z%odusRxP+gTrb}BsWVnXI9n>|9=Dv}vFclEv4X9MVeJ7gB}jtJjRJms8U|4VJB`k<*tWux3ce7+U~h z>Q@*HRc3uSCZxvo%K=)eAvwAM5~xZDy{0mgSzq2M9K*No(UfQz;+r*kL2xm=B!_kn ziiEbTvh2Y{M$ZKxv5BUZbm{C&A|_|u>?5U#2TgGVYQx)X9}81U$=b)b8$mql2@BVEO3%-8s5Z;doUlF7&3d4t1H6fzf@%Q>nX~jIu~wV? zfyxyN$92@htQTFi6e<;OJ`&@u4KJt7usDF4xjt#SfsBJb>NJtoG6DCo)VE$zlLKU! zEe3Y59^z0A@BMi8_IRg20Fc>eq_K%{iwzWE>f{Jx?B=D7_2SbvCTR~7Z59)^2A**3 zWjr9mo~Ub>h+AWNL~ofnz+i^g4gWPy15{ z#Jmi-Mrs?3UW&k4gO?K0*Jc7YH5(}F{sGrDvN^z;QNL;dOmPv52RiF!z0R-GQ3dRit-=9Mxrydd~$naIV$c);k^oMeq@ zVr(Pekm?pQp>}eU1d26^>d~ob3`okHMT59pI3P#~HUrE$H6fmip?GtP0M;Ckl$k*w zKI=&V#~8`vX8+NyB5TFfGzJ}Infb~=Sc~N708^(X#FH=-Z*CF5HYY7*jdANijB#1D zB;_VC^2txHW=iUr7+w%mFcfG3tqly0aPxSU3frCpzR>IciRy~q#(*CZm zrr4OQ*P2#Tc~hsABe8ycj>sLw2rRYt%z--0*B%B4btRePamxh(7ZDEtwbK`562q;-^E8?Gw#V#$@*R^?@17h!ta8|1 z7McYJmn6#p)Sx|0Dk#*NMiY}4AZHjYkA@o)(63cfjI21mW8h-e6q^&A8^K-c@>VNu zUF9YO6DM3=fdVAz8ZsFJ_3<}$4HGEgoOn`l&IQR2KAu$2-q?|!OMdN7lY2cBd=7BW z(LO)@(&XYlPwsM`LBh2hZ~vkK1iHdbGZ81Y7vZx12An=RD6_Q{P&MoR6=2rm%B=;8 zNuKnI4)9_%;dt?Bo|=%3tzj$7wEC`!Hv%+ zzTkCm`1AGH%l~(B*;kYMo?+K?Tg$`+lX0-Vk#3%6HDi6beI_nof&LiQKI*iM&a|90 z;O2(4CFg=zf^-vMqvQ+%k}=jo2@|}HeXUm}g+^`>k?*kt z8b%?Ij%on)xNC89UHx*kCSUpMlzPbP2wugNWLn>_N#;IkqA zu@@x%{PM=LG7^O7iF@@#_7tv2)_z(YX@}AcxcfKc2 z;3FW=TK_gKkZ*iB`QGmz81An3OaA3!laK$eC-S0jHMTx0z8 zPgv>?9bTX3%>MN}4nDRx+blMd=|Mer+#zf<+K>gA6lqd64T0W;#5Ew4j5S#Ld3E3I z-pOO0l02SQ<0+@b^5yE?Xv5JyVgx#%>RijX2B$Bki2T;vFh1)|$@AXH8r&~j%`5$r zf0F#8yCz5eZE`O5$e&I=^xu`Jk3Ktj{<{*-;ftS5&b=u4Nj_>`&Bw;Q$Gt|^ zpugwfN6uAOBv)eff0uld_?y#@SWf#E`BicnaXjp$$JUVGMz=`b^u^@$f0exX|1b6? z{IoX`pLQ>b7_aS#A{^g

W| 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 literal 0 HcmV?d00001 diff --git a/src/components/ExamDetail.vue b/src/components/ExamDetail.vue new file mode 100644 index 0000000..f948249 --- /dev/null +++ b/src/components/ExamDetail.vue @@ -0,0 +1,3836 @@ + + + \ No newline at end of file diff --git a/src/views/Profile.vue b/src/views/Profile.vue index 391d604..36574f7 100644 --- a/src/views/Profile.vue +++ b/src/views/Profile.vue @@ -111,6 +111,11 @@

+
+ {{ getStatusText(course.status) }} +
{{ getStatusText(course.status) }}
@@ -359,7 +364,7 @@
- {{ exam.score }}分 + {{ exam.score }}
@@ -385,9 +390,6 @@
@@ -422,69 +427,64 @@
-
-
- +
+
+ +
{{ practice.title }}
+ +
- {{ practice.score }}分 + {{ practice.score }}
- -

{{ practice.title }}

- - -
-
+ +
+
练习日期: {{ practice.practiceDate }}
-
+
练习时间: {{ practice.duration }}分钟
-
+
题库数量: {{ practice.questionCount }}
- - - +
-
- 答对 - {{ practice.correctCount }}题 +
+ 答对 + {{ practice.correctCount || 0 }}
-
- 答错 - {{ practice.wrongCount }}题 + +
+
+ 答错 + {{ practice.wrongCount || 0 }}
- - -
-
练习简介
-
- 练习涵盖C++基础语法、面向对象编程、数据结构等核心内容,旨在全面评估学生对C++编程语言的掌握程度和实际应用能力。 -
+
+ {{ practice.description || '该练习包含' + practice.questionCount + '道题目,涵盖了相关知识点。' }}
- -
@@ -909,184 +909,8 @@ -
-
- -
- -
- - -
- -
-
-

{{ currentExamDetail.title }}

-
- - -
-
- -
- {{ String(index + 1).padStart(2, '0') }} - {{ question.title }} - +59 -
- - -
- {{ question.content }} -
- - -
-
-
- -
-
- {{ option.text }} -
- -
-
-
-
- - - - - -
-
答案解析:
-
- 这道题考查的是危险化学品安全管理的相关知识点,根据相关法规要求,危险化学品生产企业应当提供完整的安全技术说明书和应急处理措施。 -
-
-
-
- - -
- -
-
- - -
- -
-
-
-
{{ currentExamDetail.score }}
-
-
-
得分
-
- - -
-
- {{ currentDetailType === 'exam' ? '交卷时间:' : '练习时间:' }} - {{ currentDetailType === 'exam' ? (currentExamDetail as any).examDate : - (currentExamDetail as any).practiceDate }} -
-
- {{ currentDetailType === 'exam' ? '考试时长:' : '练习时长:' }} - {{ currentExamDetail.duration }}分钟 -
-
- {{ currentDetailType === 'exam' ? '考试题量:' : '练习题量:' }} - {{ currentExamDetail.totalQuestions }}题 -
-
- - -
-
-
-
{{ currentExamDetail.correctCount }}
-
答对题数
-
-
-
{{ currentExamDetail.wrongCount }}
-
答错题数
-
-
-
{{ currentExamDetail.totalQuestions - currentExamDetail.correctCount - - currentExamDetail.wrongCount }}
-
答对题数
-
-
-
- - -
-
答题卡
-
- -
-
单选 (10)
-
-
- {{ String(i).padStart(2, '0') }} -
-
-
- - -
-
多选 (10)
-
-
- {{ String(i).padStart(2, '0') }} -
-
-
-
- - -
-
- - 答对 -
-
- - 答错 -
-
- - -
-
-
-
-
-
-
+ @@ -1097,6 +921,7 @@ import { useMessage, NModal, NUpload, NInput, NForm, NFormItem, NButton } from ' import { useI18n } from 'vue-i18n' import { useUserStore } from '@/stores/user' import SafeAvatar from '@/components/common/SafeAvatar.vue' +import ExamDetail from '../components/ExamDetail.vue'; const { t, locale } = useI18n() @@ -2438,7 +2263,9 @@ const getFileIcon = () => { } } -// 已移除未使用的新建文件夹函数,避免构建时报未使用错误 +const createNewFolder = () => { + message.info('新建文件夹功能开发中...') +} const renameFile = (fileId: number) => { message.info(`重命名文件 ${fileId}`) @@ -2664,10 +2491,10 @@ onMounted(() => { /* 主要内容区域 */ .profile-content { - width: 80vw; + /* width: 80vw; */ /* 调整为80vw */ - min-height: calc(100vh - 6.4vh); - margin: 2.08vh auto 0 auto; + min-height: 1415px; + margin: 3vh auto 0 auto; /* 距离顶部40px转换为vh */ position: relative; background: #f6f6f6; @@ -2677,15 +2504,14 @@ onMounted(() => { .block_14 { position: relative; width: 13.4vw; - /* 20vw缩小33% = 20vw * 0.67 = 13.4vw */ - min-height: calc(100vh - 6.4vh); + height: auto; background: #ffffff; /* 改为白色背景 */ - border-right: 0.05vw solid rgba(232, 232, 232, 1); flex-shrink: 0; display: flex; flex-direction: column; align-items: center; + margin-bottom: 30px; /* 内容居中 */ } @@ -2740,12 +2566,12 @@ onMounted(() => { /* 分割线 */ .menu-divider { - width: 10vw; + width: 11vw; /* 与菜单项宽度一致 */ height: 0.05vh; /* 1px转换为vh */ background: #E6E6E6; - margin: 1.5vh 0; + margin: 0; /* 上下间距 */ } @@ -2758,20 +2584,20 @@ onMounted(() => { .image-text_24, .image-text_25, .image-text_26 { - width: 10vw; + width: 11vw; /* 进一步缩小菜单项宽度,适应新的导航栏宽度 */ height: auto; /* 自适应高度 */ min-height: 3vh; /* 设置最小高度,让盒子更大 */ - margin: 1.5vh 0; + margin: 1.5vh; /* 减小间距:从2.34vh减少到1.5vh */ display: flex; align-items: center; - justify-content: center; + justify-content: left; /* 菜单项内容居中 */ cursor: pointer; - padding: 1.2vh 0.5vw; + padding: 1.5vh 0 1.5vh 1.8vw; /* 增加上下内边距,让盒子更高 */ border-radius: 0.31vw; /* 6px转换为vw */ @@ -2830,7 +2656,7 @@ onMounted(() => { .text-group_24, .text-group_25, .text-group_26 { - font-size: 1.04vw; + font-size: 16px; /* 20px转换为vw */ color: rgba(102, 102, 102, 1); /* 默认灰色 */ @@ -2869,15 +2695,15 @@ onMounted(() => { /* 右侧课程列表区域 */ .group_5 { - width: 60vw; + width: 65vw; /* 保持60vw宽度 */ min-height: calc(100vh - 6.4vh); - padding: 2.08vh 2.08vw; + padding: 2.08vh 1.9vw; /* 40px转换为vh和vw */ background: rgba(255, 255, 255, 1); overflow-y: auto; margin-left: 1.56vw; - /* 30px转换为vw:30/1920*100 = 1.56vw */ + margin-bottom: 30px; } /* 课程筛选标签 */ @@ -2886,7 +2712,7 @@ onMounted(() => { height: 2.08vh; /* 40px转换为vh */ align-items: center; - margin-bottom: 1.67vh; + margin: 10px 0 20px 0; /* 32px转换为vh */ gap: 2.81vw; /* 54px转换为vw:54/1920*100 = 2.81vw */ @@ -2968,36 +2794,45 @@ onMounted(() => { /* 课程缩略图区域 */ .block_4 { - width: 10.42vw; - /* 200px转换为vw */ margin-right: 1.04vw; - /* 20px转换为vw */ } .box_3 { - width: 10.42vw; + width: 202px; /* 200px转换为vw */ - height: 15.63vh; + height: 156px; /* 大幅增加高度到300px转换为vh,让图片展示到外部盒子高度 */ position: relative; - border-radius: 0.42vw; + border-radius: 5px; /* 8px转换为vw */ overflow: hidden; } .thumbnail_4 { width: 100%; - height: 100%; + height: 156px; object-fit: cover; } /* 状态标签 */ +.status-image-container { + position: absolute; + top: 0; + left: 0; + z-index: 10; +} + +.status-image { + width: 66px; + height: 22px; +} + .status-text { position: absolute; top: 26vh; /* 12px转换为vh */ - left: 0.63vw; - /* 12px转换为vw */ + right: 0.63vw; + /* 调整到右侧 */ padding: 0.21vh 0.63vw; /* 4px 12px转换 */ border-radius: 0.21vw; @@ -3033,11 +2868,11 @@ onMounted(() => { } .text_16 { - font-size: 0.94vw; + font-size: 18px; /* 18px转换为vw */ - color: rgba(51, 51, 51, 1); + color: #000000; font-family: 'Microsoft YaHei', Arial, sans-serif; - font-weight: 500; + font-weight: 600; flex: 1; } @@ -3050,16 +2885,16 @@ onMounted(() => { .text_17 { font-size: 0.73vw; /* 14px转换为vw */ - color: rgba(250, 173, 20, 1); + color: #999999; font-family: 'Microsoft YaHei', Arial, sans-serif; font-weight: normal; } /* 讲师信息 */ .text_18 { - font-size: 0.73vw; + font-size: 14px; /* 14px转换为vw */ - color: rgba(102, 102, 102, 1); + color: #999; font-family: 'Microsoft YaHei', Arial, sans-serif; font-weight: normal; margin-bottom: 0.42vh; @@ -3068,13 +2903,14 @@ onMounted(() => { /* 课程描述 */ .text_19 { - font-size: 0.73vw; + font-size: 14px; /* 14px转换为vw */ - color: rgba(102, 102, 102, 1); + color: #999; font-family: 'Microsoft YaHei', Arial, sans-serif; font-weight: normal; line-height: 1.5; - margin-bottom: 0.83vh; + margin-top: 5px; + margin-bottom: 22px; /* 16px转换为vh */ display: -webkit-box; -webkit-line-clamp: 2; @@ -3085,7 +2921,7 @@ onMounted(() => { /* 课程统计信息 */ .group_7 { align-items: center; - gap: 1.04vw; + gap: 5px; /* 20px转换为vw */ } @@ -3100,19 +2936,20 @@ onMounted(() => { .text_20, .text_21, .text_22 { - font-size: 0.73vw; + font-size: 14px; /* 14px转换为vw */ - color: rgba(102, 102, 102, 1); + color: #999; font-family: 'Microsoft YaHei', Arial, sans-serif; font-weight: normal; + margin-right: 10px; } /* 操作按钮 */ .text-wrapper_2 { - background: rgba(2, 134, 206, 1); - border-radius: 0.31vw; + background: #0288D1; + border-radius: 5px; /* 6px转换为vw */ - padding: 0.42vh 0.83vw; + padding: 6px 22px; /* 8px 16px转换 */ cursor: pointer; transition: background-color 0.3s ease; @@ -3124,9 +2961,9 @@ onMounted(() => { } .text_23 { - font-size: 0.73vw; + font-size: 14px; /* 14px转换为vw */ - color: rgba(255, 255, 255, 1); + color: white; font-family: 'Microsoft YaHei', Arial, sans-serif; font-weight: normal; text-align: center; @@ -3151,16 +2988,15 @@ onMounted(() => { } .pagination-item { - min-width: 2.08vw; - /* 40px转换为vw */ - height: 2.08vh; - /* 40px转换为vh */ + min-width: 38px; + height: 38px; + background: white; display: flex; align-items: center; justify-content: center; font-size: 0.73vw; /* 14px转换为vw */ - color: rgba(102, 102, 102, 1); + color: #666666; font-family: 'Microsoft YaHei', Arial, sans-serif; cursor: pointer; border-radius: 0.21vw; @@ -3168,7 +3004,6 @@ onMounted(() => { transition: all 0.3s ease; padding: 0.52vh 0.83vw; /* 10px 16px转换 */ - background: rgba(255, 255, 255, 1); border: 0.05vw solid rgba(232, 232, 232, 1); } @@ -3178,16 +3013,15 @@ onMounted(() => { } .pagination-item.active { - background: rgba(2, 134, 206, 1); + background: #0088D1; color: rgba(255, 255, 255, 1); - border-color: rgba(2, 134, 206, 1); + border-color: #0088D1; } .pagination-item.disabled { color: rgba(204, 204, 204, 1); cursor: not-allowed; border-color: rgba(232, 232, 232, 1); - background: rgba(248, 248, 248, 1); } .pagination-item.disabled:hover { @@ -3198,7 +3032,7 @@ onMounted(() => { .nav-button { min-width: 3.65vw; - /* 70px转换为vw,导航按钮稍宽一些 */ + border: none; } .page-number { @@ -3751,8 +3585,7 @@ onMounted(() => { .exam-card { background: #ffffff; - border: 1px solid #e8e8e8; - border-radius: 8px; + border: 1.5px solid #D8D8D8; padding: 20px; position: relative; min-height: 280px; @@ -3768,30 +3601,36 @@ onMounted(() => { .exam-title { font-size: 16px; - font-weight: 600; color: #333; - margin-bottom: 16px; + margin-bottom: 10px; line-height: 1.4; + border-bottom: 1.5px solid #E6E6E6; + padding-bottom: 10px; } .exam-score-badge { position: absolute; - top: 15px; - right: 15px; - background: #fff2e8; - border: 1px solid #ffb366; + top: 11px; + right: 18px; + background: white; + border: 1px solid #FF6F0F; border-radius: 4px; - padding: 4px 8px; + padding: 0 11px; } .score-text { - font-size: 14px; + font-size: 20px; font-weight: bold; - color: #ff8c00; + color: #FF6F0F; +} + +.score-text span { + margin-left: 2px; + font-size: 10px; } .exam-details { - margin-bottom: 16px; + margin-bottom: 5px; } .exam-meta-item { @@ -3801,25 +3640,25 @@ onMounted(() => { } .meta-label { - color: #666; + color: #999; min-width: 70px; } .meta-value { - color: #333; + color: #999; font-weight: 500; } .exam-description { - font-size: 13px; - color: #666; - line-height: 1.5; + padding: 8px 10px; + font-size: 12px; + color: #497087; margin-bottom: auto; flex: 1; overflow: hidden; - display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; + background-color: #F5F8FB; } .exam-footer { @@ -3828,7 +3667,6 @@ onMounted(() => { align-items: center; margin-top: auto; padding-top: 16px; - border-top: 1px solid #f0f0f0; flex-shrink: 0; } @@ -3838,17 +3676,17 @@ onMounted(() => { } .exam-status-text { - font-size: 14px; - color: #666; + font-size: 12px; + color: #999; } .exam-action-right { display: flex; + gap: 10px; } .action-btn { padding: 6px 16px; - border-radius: 4px; font-size: 14px; font-weight: 500; cursor: pointer; @@ -3858,9 +3696,9 @@ onMounted(() => { } .upcoming-btn { - background: #f5f5f5; - color: #999; - border: 1px solid #e8e8e8; + background: #F5F8FB; + color: #999999; + border: none; } .upcoming-btn:hover { @@ -3868,7 +3706,7 @@ onMounted(() => { } .ongoing-btn { - background: #1890ff; + background: #0288D1; color: white; } @@ -3877,12 +3715,12 @@ onMounted(() => { } .finished-btn { - background: #52c41a; + background: #0288D1; color: white; } .finished-btn:hover { - background: #73d13d; + background: #01579B; } .files-container { @@ -3907,8 +3745,8 @@ onMounted(() => { } .files-icon { - width: 15px; - height: 15px; + width: 15px; + height: 15px; } .course-name { @@ -4095,9 +3933,9 @@ onMounted(() => { .text_12, .text_13, .text_14 { - font-size: 2.5vw; + font-size: 2.16px; /* 手机端调整字体大小 */ - padding: 0.8vh 0; + padding: 10px 0; /* 保持无左右内边距 */ } @@ -4365,7 +4203,7 @@ onMounted(() => { .text_16 { font-size: 0.83vw; - /* 16px转换为vw */ + } .text_19 { @@ -4537,24 +4375,28 @@ onMounted(() => { /* 考试详情页面样式 */ .exam-detail-overlay { position: fixed; - top: 0; + top: 60px; + /* 留出导航栏的空间 */ left: 0; width: 100%; - height: 100%; + height: calc(100% - 60px); + /* 减去导航栏的高度 */ background: #f5f5f5; - z-index: 1000; + z-index: 999; + /* 降低z-index,确保导航栏可见 */ overflow-y: auto; } .exam-detail-container { - max-width: 1200px; margin: 0 auto; background: #f5f5f5; min-height: 100vh; } .exam-detail-header { - padding: 16px 24px; + margin: auto; + width: 1420px; + padding: 24px 0; background: #f5f5f5; } @@ -4609,9 +4451,11 @@ onMounted(() => { } .exam-detail-content { + margin: auto; + max-width: 1420px; display: flex; gap: 24px; - padding: 24px; + padding: 0; background: #f5f5f5; } @@ -4944,12 +4788,28 @@ onMounted(() => { } .stat-label { - color: #666; + font-size: 10px; + color: #497087; } .stat-value { + margin-left: 20px; color: #333; font-weight: 500; + font-size: 18px; +} + +.stat-value span { + margin-left: 2px; + font-size: 10px; +} + +.stat-value.correct { + color: #3F76ED; +} + +.stat-value.wrong { + color: #FE2E2F; } .answer-stats { @@ -5179,7 +5039,7 @@ onMounted(() => { width: 100%; } -.practice-grid { +.exam-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; @@ -5213,16 +5073,16 @@ onMounted(() => { .practice-score-badge { position: absolute; - top: 15px; - right: 15px; - background: #fff2e8; - border: 1px solid #ffb366; + top: 11px; + right: 18px; + background: white; + border: 1px solid #FF6F0F; border-radius: 4px; - padding: 4px 8px; + padding: 0 11px; } .practice-details { - margin-bottom: 16px; + margin-bottom: 10px; } .practice-meta-item { @@ -5246,12 +5106,19 @@ onMounted(() => { .practice-stats { display: flex; gap: 16px; - margin-bottom: 16px; - padding: 12px; - background: #f8f9fa; - border-radius: 6px; + height: 54px; + background: #F5F8FB; + align-items: center; + justify-content: space-evenly; } +.divider { + width: 1px; + height: 20px; + background: #EBEBEB; +} + + .stats-item { display: flex; flex-direction: column;