From 3f96c9c6502243b06efd4bb34a189e72e3a5557c Mon Sep 17 00:00:00 2001
From: yearning <10538594+wangweifeng1999@user.noreply.gitee.com>
Date: 星期一, 28 九月 2026 19:24:55 +0800
Subject: [PATCH] 复制项目
---
frontend/src/pages/AttemptReviewPage.css | 392 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 392 insertions(+), 0 deletions(-)
diff --git a/frontend/src/pages/AttemptReviewPage.css b/frontend/src/pages/AttemptReviewPage.css
new file mode 100644
index 0000000..cb70dbc
--- /dev/null
+++ b/frontend/src/pages/AttemptReviewPage.css
@@ -0,0 +1,392 @@
+.attempt-review {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ min-height: 0;
+ height: 100%;
+ max-height: 100%;
+ overflow: hidden;
+ box-sizing: border-box;
+ background: #fff;
+}
+
+.attempt-review__center-right {
+ flex: 1;
+ min-width: 0;
+ min-height: 0;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+}
+
+.attempt-review__center-right-mask {
+ position: absolute;
+ inset: 0;
+ z-index: 3;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(255, 255, 255, 0.72);
+ pointer-events: none;
+}
+
+.attempt-review__center-right-placeholder {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 200px;
+}
+
+.attempt-review__index-detail-row {
+ flex: 1;
+ min-height: 0;
+ display: flex;
+ gap: 12px;
+}
+
+.attempt-review__header {
+ flex-shrink: 0;
+ margin-bottom: 12px;
+}
+
+.attempt-review__split {
+ flex: 1;
+ min-height: 0;
+ display: flex;
+ gap: 12px;
+}
+
+.attempt-review__roster-col {
+ flex: 0 0 200px;
+ width: 200px;
+ min-height: 0;
+ display: flex;
+}
+
+.attempt-review__roster {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ min-height: 0;
+ height: 100%;
+ background: #fff;
+ border: 1px solid #f0f0f0;
+ border-radius: 8px;
+ overflow: hidden;
+}
+
+.attempt-review__roster-form {
+ flex-shrink: 0;
+ padding: 8px 8px 4px;
+ border-bottom: 1px solid #f0f0f0;
+}
+
+.attempt-review__roster-form .attempt-review__roster-field {
+ margin-bottom: 6px;
+}
+
+.attempt-review__roster-form .ant-form-item-row {
+ flex-wrap: nowrap;
+ align-items: center;
+}
+
+.attempt-review__roster-form .ant-form-item-label {
+ padding-bottom: 0;
+ text-align: right;
+}
+
+.attempt-review__roster-form .ant-form-item-label > label {
+ font-size: 12px;
+ height: 22px;
+ justify-content: flex-end;
+}
+
+.attempt-review__roster-form .ant-form-item-control {
+ min-width: 0;
+}
+
+.attempt-review__roster-list {
+ flex: 1;
+ min-height: 0;
+ overflow-y: auto;
+ overscroll-behavior: contain;
+ padding: 4px;
+}
+
+.attempt-review__roster-item {
+ display: block;
+ width: 100%;
+ text-align: left;
+ border: 1px solid transparent;
+ border-radius: 6px;
+ background: #fafafa;
+ padding: 8px 8px;
+ margin-bottom: 4px;
+ cursor: pointer;
+ transition: background 0.15s, border-color 0.15s;
+}
+
+.attempt-review__roster-item:hover {
+ background: #f0f5ff;
+}
+
+.attempt-review__roster-item--active {
+ background: #e6f4ff;
+ border-color: #1677ff;
+}
+
+.attempt-review__roster-name {
+ font-size: 13px;
+ font-weight: 600;
+ color: #262626;
+ margin-bottom: 2px;
+}
+
+.attempt-review__roster-meta {
+ display: flex;
+ justify-content: space-between;
+ gap: 4px;
+ font-size: 11px;
+ color: #8c8c8c;
+}
+
+.attempt-review__roster-subject {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ max-width: 100px;
+}
+
+.attempt-review__roster-hint {
+ text-align: center;
+ font-size: 12px;
+ color: #bfbfbf;
+ padding: 8px 4px;
+}
+
+.attempt-review__index-col {
+ flex: 0 0 280px;
+ width: 280px;
+ min-height: 0;
+ display: flex;
+}
+
+.attempt-review__index-col--collapsed {
+ flex: 0 0 48px;
+ width: 48px;
+}
+
+.attempt-review__index-mobile-wrap {
+ flex-shrink: 0;
+ margin-bottom: 12px;
+}
+
+.attempt-review__detail {
+ flex: 1;
+ min-width: 0;
+ min-height: 0;
+ overflow-y: auto;
+ overflow-x: hidden;
+ overscroll-behavior: contain;
+ background: #fff;
+ border-radius: 8px;
+ border: 1px solid #f0f0f0;
+ padding: 12px 16px;
+ -webkit-overflow-scrolling: touch;
+}
+
+.attempt-review__detail-inner {
+ min-height: min-content;
+ background: #fff;
+}
+
+.attempt-review__question-anchor {
+ scroll-margin-top: 0;
+}
+
+.attempt-review__question-card {
+ margin-bottom: 12px;
+ border: 1px solid #f0f0f0;
+}
+
+.attempt-review__index {
+ background: #fff;
+ border-radius: 8px;
+ border: 1px solid #f0f0f0;
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+ width: 100%;
+ min-height: 0;
+ height: 100%;
+}
+
+.attempt-review__index-toolbar {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ flex-shrink: 0;
+ padding: 8px 8px 4px;
+ border-bottom: 1px solid #f0f0f0;
+}
+
+.attempt-review__index-filter {
+ flex-shrink: 0;
+ padding: 8px 10px 10px;
+ border-bottom: 1px solid #f0f0f0;
+}
+
+.attempt-review__type-radio {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 6px;
+}
+
+.attempt-review__type-radio .ant-radio-button-wrapper {
+ height: auto;
+ line-height: 1.3;
+ padding: 4px 10px;
+ font-size: 12px;
+}
+
+.attempt-review__index-body {
+ flex: 1;
+ min-height: 0;
+ overflow-y: auto;
+ overflow-x: hidden;
+ overscroll-behavior: contain;
+ padding: 8px 12px 16px;
+}
+
+.attempt-review__section {
+ margin-bottom: 16px;
+}
+
+.attempt-review__section-title {
+ background: #f5f5f5;
+ color: #262626;
+ font-size: 13px;
+ font-weight: 600;
+ padding: 8px 10px;
+ margin: 0 0 10px;
+ border-radius: 4px;
+ line-height: 1.4;
+}
+
+.attempt-review__bubble-grid {
+ display: grid;
+ grid-template-columns: repeat(5, 1fr);
+ gap: 10px 8px;
+}
+
+.attempt-review__bubble {
+ width: 100%;
+ aspect-ratio: 1;
+ max-width: 40px;
+ margin: 0 auto;
+ border: 1px solid #e8e8e8;
+ border-radius: 50%;
+ background: #fafafa;
+ color: #8c8c8c;
+ font-size: 12px;
+ cursor: pointer;
+ padding: 0;
+ box-sizing: border-box;
+ transition:
+ border-color 0.15s,
+ background 0.15s,
+ box-shadow 0.15s;
+}
+
+.attempt-review__bubble--unanswered {
+ background: #f5f5f5;
+ color: #bfbfbf;
+ border-color: #ebebeb;
+}
+
+.attempt-review__bubble--correct {
+ background: #f6ffed;
+ color: #52a82a;
+ border-color: #d9f0c8;
+}
+
+.attempt-review__bubble--wrong {
+ background: #fffafa;
+ color: #c75454;
+ border-color: #f0e0e0;
+}
+
+.attempt-review__bubble--active {
+ border: 2px solid #1677ff;
+ box-shadow:
+ 0 0 0 2px rgba(22, 119, 255, 0.28),
+ 0 1px 4px rgba(22, 119, 255, 0.22);
+ color: inherit;
+ z-index: 1;
+}
+
+.attempt-review__bubble--active.attempt-review__bubble--correct {
+ background: #f6ffed;
+ color: #389e0d;
+}
+
+.attempt-review__bubble--active.attempt-review__bubble--wrong {
+ background: #fff1f0;
+ color: #cf1322;
+}
+
+.attempt-review__bubble--active.attempt-review__bubble--unanswered {
+ background: #fff;
+ color: #595959;
+}
+
+.attempt-review__bubble:hover:not(.attempt-review__bubble--active) {
+ border-color: #d9d9d9;
+}
+
+.attempt-review__bubble--active:hover {
+ border-color: #0958d9;
+ box-shadow:
+ 0 0 0 2px rgba(9, 88, 217, 0.35),
+ 0 2px 6px rgba(22, 119, 255, 0.28);
+}
+
+.attempt-review__index--collapsed {
+ width: 44px;
+ min-width: 44px;
+}
+
+.attempt-review__index--collapsed .attempt-review__index-filter,
+.attempt-review__index--collapsed .attempt-review__index-body {
+ display: none;
+}
+
+.attempt-review__index-collapsed-label {
+ writing-mode: vertical-rl;
+ text-orientation: mixed;
+ font-size: 12px;
+ color: #8c8c8c;
+ padding: 12px 0;
+ text-align: center;
+ letter-spacing: 2px;
+ flex: 1;
+}
+
+.attempt-review__index-mobile {
+ max-height: 240px;
+}
+
+.attempt-review__index-mobile .attempt-review__index-body {
+ max-height: 160px;
+}
+
+@media (max-width: 991px) {
+ .attempt-review__split {
+ flex-direction: column;
+ }
+
+ .attempt-review__detail {
+ flex: 1;
+ }
+}
--
Gitblit v1.8.0