duidui_mini_program/pages/camp_task_objective_questions/index.wxss
2026-03-27 10:41:46 +08:00

1638 lines
30 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.container {
height: 100vh;
width: 100% !important;
display: flex;
flex-direction: column;
position: relative;
background: #F5F7FA;
overflow: hidden;
touch-action: none;
padding: 0;
box-sizing: border-box;
}
/* 材料区域样式优化 */
.material-section {
position: relative;
width: auto;
margin: 10px;
background: #fff;
border-radius: 6px;
border: 1px solid #eee;
will-change: height;
transform: translateZ(0);
-webkit-transform: translateZ(0);
}
/* 拖动手柄样式优化 */
.resize-handle {
position: absolute;
bottom: -12rpx;
left: 0;
right: 0;
height: 24rpx;
display: flex;
justify-content: center;
align-items: center;
background: #fff;
z-index: 10;
touch-action: none;
cursor: ns-resize;
}
/* 拖动时的状态 */
.material-section.resizing {
transition: none !important;
}
.resize-area {
width: 200rpx;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.resize-line {
width: 60rpx;
height: 4rpx;
background: #D8D8D8;
border-radius: 2rpx;
position: relative;
}
/* .resize-dots {
position: absolute;
top: -12rpx;
left: 50%;
transform: translateX(-50%);
width: 32rpx;
height: 32rpx;
background: radial-gradient(circle, #999 3rpx, transparent 3rpx) 0 0 / 8rpx 8rpx;
opacity: 0.5;
} */
.material-title {
padding: 20rpx 30rpx;
font-size: 28rpx;
color: #666;
border-bottom: 1rpx solid #eee;
}
/* 调整材料内容区域 */
.material-swiper {
height: calc(100% - 40rpx);
z-index: 1;
}
/* 内容区域优化 */
.material-content {
height: 100%;
padding: 20rpx 30rpx;
width: 92%;
transform: translateZ(0);
-webkit-overflow-scrolling: touch;
overscroll-behavior: none;
touch-action: pan-y;
}
.material-text {
font-size: 28rpx;
line-height: 1.6;
color: #333;
word-wrap: break-word;
}
/* 富文本中的段落样式 */
.material-text p {
display: inline;
margin: 0;
padding: 0;
}
/* 富文本中的图片样式 */
.material-text img {
display: inline-block !important;
vertical-align: middle !important;
max-height: 40rpx !important;
width: auto !important;
margin: 0 4rpx !important;
}
/* 如果需要某些图片单独成行显示 */
.material-text img.block {
display: block !important;
max-height: none !important;
max-width: 100% !important;
margin: 20rpx 0 !important;
}
/* 修改富文本中图片的样式 */
.material-text rich-text {
width: 100%;
display: inline;
}
/* 富文本图片样式 */
.rich-text-img {
max-width: 100%;
height: auto;
vertical-align: middle;
/* 确保图片与文字垂直对齐 */
display: inline-block;
/* 改为内联块级显示 */
margin: 0 4rpx;
/* 添加少许左右间距 */
}
/* 当图片需要单独占一行时的样式 */
.rich-text-img.block {
display: block;
margin: 20rpx 0;
}
.material-index {
position: absolute;
bottom: 10rpx;
right: 40rpx;
font-size: 24rpx;
color: #999;
}
/* 材料指示点 */
.material-dots {
display: flex;
justify-content: center;
align-items: center;
height: 40rpx;
margin-top: 10rpx;
}
.dot {
width: 12rpx;
height: 12rpx;
border-radius: 50%;
background: #ddd;
margin: 0 8rpx;
}
.dot.active {
background: #007aff;
transform: scale(1.2);
}
.question-container {
background: #fff;
border-radius: 12rpx;
margin: 0 20rpx;
padding: 30rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
width: calc(100% - 40rpx);
box-sizing: border-box;
}
.question-header {
margin-bottom: 20rpx;
/* 减小底部间距 */
}
.question-type {
color: #666;
font-size: 30rpx;
}
/* 当没有材料时的样式 */
.question-content.no-material {
height: calc(100vh - 120rpx);
/* 只减去底部工具栏高度 */
}
/* 当有答案解析时的样式 */
.question-content.has-explanation {
padding-bottom: 15rpx;
padding-top: 15rpx;
}
/* 修改选项列表样式 */
.options-list {
margin-top: 30rpx;
width: 100%;
}
/* 富文本通用样式 */
rich-text {
width: 100%;
display: inline;
}
/* 富文本内容样式覆盖 */
rich-text .p {
display: inline;
/* 改为内联显示 */
margin: 0;
/* 移除默认边距 */
padding: 0;
}
rich-text .img {
display: inline-block;
/* 改为内联块级显示 */
vertical-align: middle;
/* 垂直居中对齐 */
max-height: 32rpx;
/* 限制图片高度与文字行高相近 */
width: auto;
/* 宽度自适应 */
margin: 0 4rpx;
/* 添加少许左右间距 */
}
/* 如果图片需要单独成行显示时的样式 */
rich-text .img.block {
display: block;
max-height: none;
max-width: 100%;
margin: 20rpx 0;
}
rich-text .strong,
rich-text .b {
font-weight: bold;
}
rich-text .em,
rich-text .i {
font-style: italic;
}
rich-text .u {
text-decoration: underline;
}
/* 选项基础样式 */
.option-item {
margin: 20rpx 0;
display: flex;
align-items: center;
padding: 24rpx 30rpx;
background: #fff;
border-radius: 8rpx;
border: 2rpx solid #E5E5E5;
position: relative;
box-sizing: border-box;
width: 100%;
transition: all 0.2s ease;
/* 添加过渡效果 */
}
/* 选中状态样式 */
.option-selected {
background-color: #E3F0FF !important;
border-color: #1A7CFF !important;
}
.option-selected .option-letter,
.option-selected .option-text,
.option-selected .separator {
color: #1A7CFF !important;
}
/* 选项内容样式 */
.option-content {
flex: 1;
display: flex;
align-items: center;
}
.option-letter {
font-size: 32rpx;
color: #333;
font-weight: 500;
min-width: 40rpx;
}
.option-text {
flex: 1;
font-size: 32rpx;
color: #333;
margin-left: 20rpx;
}
.separator {
color: #E5E5E5;
margin: 0 20rpx;
}
/* 添加底部按钮固定样式 */
.footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #fff;
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
z-index: 100;
}
.footer-content {
height: 100rpx;
display: flex;
justify-content: space-between;
/* 左右两侧分布 */
align-items: center;
padding: 0 30rpx;
width: 100%;
box-sizing: border-box;
}
.timer {
font-size: 32rpx;
color: #333;
font-weight: 500;
}
.question-card-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-width: 120rpx;
/* 确保有足够的宽度 */
}
.card-icon {
width: 48rpx;
/* 增大图标尺寸 */
height: 48rpx;
margin-bottom: 8rpx;
}
.card-text {
font-size: 24rpx;
color: #333;
white-space: nowrap;
/* 防止文字换行 */
}
/* 试卷信息 */
.paper-info {
background: #fff;
padding: 30rpx;
border-bottom: 1rpx solid #eee;
}
.paper-title {
font-size: 32rpx;
font-weight: bold;
color: #333;
margin-bottom: 10rpx;
}
.paper-meta {
display: flex;
font-size: 24rpx;
color: #999;
}
.question-count {
margin-right: 20rpx;
}
/* 材料区域样式 */
.material-section {
background: #fff;
height: 400rpx;
position: relative;
padding: 20rpx 0;
}
.material-subtitle {
font-size: 26rpx;
font-weight: bold;
color: #666;
margin-bottom: 10rpx;
}
.material-text {
font-size: 26rpx;
color: #333;
line-height: 1.6;
padding-bottom: 40rpx;
}
.material-image-wrapper {
width: 100%;
margin: 20rpx 0;
}
.material-image {
width: 100%;
border-radius: 8rpx;
}
/* 题目区域样式 */
.question-scroll {
flex: 1;
overflow: hidden;
overflow-y: auto;
background: #ececec;
height: calc(100vh - 120rpx);
/* 调整高度 */
padding-bottom: 160rpx;
}
.question-scroll.no-material {
/* height: calc(100vh - 200rpx - 120rpx); */
}
/* 底部按钮区域 */
.footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #fff;
padding: 20rpx 30rpx;
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
}
.button-container {
display: flex;
justify-content: space-between;
padding: 0;
}
.prev-button,
.next-button,
.submit-button {
width: 45%;
border-radius: 44rpx;
font-size: 32rpx;
}
.prev-button {
background: #f5f5f5;
color: #666;
}
.next-button {
background: #007aff;
color: #fff;
}
.submit-button {
background: #ff6b6b;
color: #fff;
}
.prev-button[disabled],
.next-button[disabled],
.submit-button[disabled] {
opacity: 0.5;
}
/* 适配 iPhone X 等机型 */
@supports (padding-bottom: constant(safe-area-inset-bottom)) {
.footer {
padding-bottom: calc(20rpx + constant(safe-area-inset-bottom));
}
}
@supports (padding-bottom: env(safe-area-inset-bottom)) {
.footer {
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
}
}
/* 底部占位区域,确保可以滚动到底部 */
.bottom-space {
height: 140rpx;
/* 与按钮区域高度相近 */
width: 100%;
}
/* 试题详情:背景层资料 + 前置问题面板(可上下滑动) */
.detail-wrap {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
}
/* 背景层:资料标题固定 + 下方内容可滚动 */
.layer-back {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
z-index: 0;
background: #fff;
display: flex;
flex-direction: column;
}
/* 资料标题固定不随内容滚动;单条「资料」,多条「资料一」「资料二」 */
.material-title-fixed {
flex-shrink: 0;
padding: 24rpx 28rpx 16rpx;
background: #fff;
border-bottom: 1rpx solid #f0f0f0;
}
.material-title-fixed .section-title {
font-size: 32rpx;
font-weight: bold;
color: #333;
display: block;
}
.material-title-fixed .section-title-underline {
width: 48rpx;
height: 6rpx;
background: #e74c3c;
margin-top: 8rpx;
border-radius: 2rpx;
}
/* 多条资料时展示所有 tab资料一、资料二… */
.material-tabs {
width: 100%;
padding: 8rpx 0 12rpx;
}
.material-tabs-scroll {
width: 100%;
white-space: nowrap;
}
.material-tabs-inner {
display: inline-flex;
flex-wrap: nowrap;
gap: 16rpx;
padding: 0 28rpx;
}
.material-tab {
display: inline-flex;
flex-direction: column;
align-items: center;
padding: 12rpx 24rpx 8rpx;
font-size: 28rpx;
color: #666;
flex-shrink: 0;
}
.material-tab.active {
color: #333;
font-weight: 500;
}
.material-tab.active .material-tab-underline {
display: block;
}
.material-tab-underline {
display: none;
width: 48rpx;
height: 6rpx;
background: #e74c3c;
margin-top: 8rpx;
border-radius: 2rpx;
}
.material-scroll-below-title {
flex: 1;
min-height: 0;
width: 100%;
background: #fff;
}
.material-placeholder {
height: 600rpx;
width: 100%;
}
/* 前置层问题面板可上下滑动area 不拦截触摸,仅面板拦截,这样露出的资料区可上下滑动 */
.movable-area {
position: absolute;
left: 0;
top: 0;
right: 0;
z-index: 1;
width: 100%;
pointer-events: none;
}
.movable-panel.question-panel-wrap {
width: 100%;
background: #fff;
border-radius: 24rpx 24rpx 0 0;
box-shadow: 0 -4rpx 24rpx rgba(0,0,0,0.08);
overflow: hidden;
display: flex;
flex-direction: column;
pointer-events: auto;
}
/* 问题面板顶部拖拽条:提示可上下滑动,增大可拖区域 */
.panel-drag-handle {
width: 100%;
height: 56rpx;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
background: #fff;
padding: 12rpx 0;
}
.panel-drag-bar {
width: 80rpx;
height: 8rpx;
background: #d0d0d0;
border-radius: 4rpx;
}
/* 通用滚动区(背景层内) */
.detail-scroll {
width: 100%;
height: 100%;
background: #fff;
}
/* 区块通用 */
.section {
background: #fff;
padding: 0 28rpx 32rpx;
margin-bottom: 8rpx;
}
/* 资料区块 */
.section-material {
padding-top: 24rpx;
}
.material-label-bar {
margin-bottom: 16rpx;
}
.material-label-text {
font-size: 26rpx;
color: #666;
font-weight: 500;
}
/* 区块标题:资料 / 问题,加红色下划线 */
.section-head {
margin-bottom: 20rpx;
}
.section-title {
font-size: 32rpx;
font-weight: bold;
color: #333;
display: block;
}
.section-title-underline {
width: 48rpx;
height: 6rpx;
background: #e74c3c;
margin-top: 8rpx;
border-radius: 2rpx;
}
/* 资料内容:左右滑动切换材料一/二/三;给足高度以便资料展示全,超出部分由外层 scroll-view 滚动 */
.material-content-swiper {
min-height: 800rpx;
width: 100%;
}
.content-swiper-item {
width: 100%;
min-height: 800rpx;
}
.material-body {
padding: 8rpx 0 40rpx;
min-height: 760rpx;
}
.material-rich {
font-size: 28rpx;
color: #333;
line-height: 1.7;
}
/* 问题区块:占满面板剩余空间,题目内容可滚动展示全 */
.section-question {
padding-top: 16rpx;
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
}
.question-content-swiper {
flex: 1;
min-height: 60vh;
width: 100%;
height: 0;
}
.question-body {
padding: 8rpx 0 24rpx;
height: 100%;
min-height: 280rpx;
box-sizing: border-box;
}
.detail-bottom-space {
height: 120rpx;
width: 100%;
}
/* 题目滑动容器(保留兼容) */
.question-swiper {
flex: 1;
height: calc(100vh - 120rpx);
/* 减去底部工具栏高度 */
z-index: 1;
padding-top: 10rpx;
width: 100%;
}
/* 确保题目页垂直布局占满剩余空间,避免被遮挡 */
.question-page {
display: flex;
flex-direction: column;
min-height: calc(100vh - 120rpx);
}
/* 题目滚动容器占满剩余空间 */
.question-content {
flex: 1;
}
/* 底部工具栏:固定盖在问题面板上的另一层,不占布局空间,无明显分割线 */
.toolbar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 120rpx;
background: rgba(255, 255, 255, 0.98);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 40rpx;
z-index: 100;
}
.timer-container {
display: flex;
align-items: center;
gap: 16rpx;
/* 增加间距 */
}
.pause-icon {
width: 40rpx;
/* 增加图标大小 */
height: 40rpx;
}
.timer {
font-size: 32rpx;
/* 增加字体大小 */
color: #333;
font-weight: 500;
/* 加粗 */
}
.question-card-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-width: 120rpx;
/* 确保有足够的宽度 */
}
.card-icon {
width: 48rpx;
/* 增大图标尺寸 */
height: 48rpx;
margin-bottom: 8rpx;
}
.card-text {
font-size: 24rpx;
color: #333;
white-space: nowrap;
/* 防止文字换行 */
}
/* 答题卡弹窗样式优化 */
.question-card-popup {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 1000;
visibility: hidden;
}
.question-card-popup.show {
visibility: visible;
}
.popup-mask {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
}
.popup-content {
position: absolute;
left: 0;
right: 0;
bottom: 0;
background: #fff;
border-radius: 24rpx 24rpx 0 0;
transform: translateY(100%);
transition: transform 0.3s ease-out;
}
.question-card-popup.show .popup-content {
transform: translateY(0);
}
.popup-header {
padding: 32rpx;
border-bottom: 1rpx solid #eee;
display: flex;
justify-content: space-between;
align-items: center;
}
.popup-header text {
font-size: 32rpx;
font-weight: 500;
color: #333;
}
.close-btn {
padding: 8rpx;
font-size: 40rpx;
color: #999;
line-height: 1;
}
.question-status {
padding: 24rpx 32rpx;
border-bottom: 1rpx solid #eee;
display: flex;
flex-direction: row;
align-items: center;
}
.status-item {
display: flex;
align-items: center;
margin-right: 40rpx;
}
.status-item text {
font-size: 28rpx;
color: #666;
}
.status-dot {
width: 24rpx;
height: 24rpx;
border-radius: 50%;
background: #eee;
margin-right: 12rpx;
}
.status-dot.answered {
background: #1A7CFF;
}
.numbers-grid {
flex: 1;
overflow-y: auto;
padding: 20rpx 32rpx;
-webkit-overflow-scrolling: touch;
width: 100%;
box-sizing: border-box;
/* 确保padding计入宽度 */
}
.grid-container {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 12rpx;
padding: 24rpx;
justify-items: center;
}
.number-item {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
/* 圆形 */
background: #F5F5F5;
/* 未答题背景色 */
display: flex;
align-items: center;
justify-content: center;
margin: 12rpx;
transition: all 0.3s ease;
}
.number-item text {
font-size: 28rpx;
color: #666;
/* 未答题文字颜色 */
}
/* 已答题状态 */
.number-item.answered {
background: #E3F0FF;
border: 2rpx solid #1A7CFF;
}
.number-item.answered text {
color: #1A7CFF;
font-weight: 500;
}
/* 当前题目状态 */
.number-item.current {
background: #1A7CFF;
border: 2rpx solid #1A7CFF;
}
.number-item.current text {
color: #FFFFFF;
font-weight: 500;
}
.submit-btn {
margin: 32rpx;
margin-top: 16rpx;
height: 88rpx;
background: #1A7CFF;
color: #fff;
border-radius: 44rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
font-weight: 500;
}
.submit-btn:active {
opacity: 0.8;
}
/* 自定义加载动画样式 */
.loading-container {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #fff;
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
}
.loading-content {
display: flex;
flex-direction: column;
align-items: center;
gap: 20rpx;
}
.loading-spinner {
width: 80rpx;
height: 80rpx;
position: relative;
}
.spinner-circle {
width: 100%;
height: 100%;
border: 6rpx solid #f3f3f3;
border-top: 6rpx solid #1A7CFF;
border-radius: 50%;
animation: spin 1s linear infinite;
}
.loading-text {
font-size: 28rpx;
color: #666;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/* 拖动时的状态 */
.resizing .material-section {
transition: none !important;
}
/* 添加 mp-html 相关样式 */
.mp-html {
font-size: 28rpx;
line-height: 1.6;
color: #333;
}
/* 暂停遮罩层样式已移至组件 /components/pause-mask/index.wxss */
.pause-title {
font-size: 40rpx;
font-weight: bold;
color: #333;
margin-bottom: 20rpx;
}
.pause-time {
font-size: 60rpx;
color: #1A7CFF;
margin-bottom: 40rpx;
font-family: monospace;
}
.pause-tip {
font-size: 28rpx;
color: #666;
}
/* 状态指示点样式 */
.question-status {
padding: 24rpx 32rpx;
display: flex;
gap: 40rpx;
}
.status-item {
display: flex;
align-items: center;
gap: 12rpx;
}
.status-dot {
width: 24rpx;
height: 24rpx;
border-radius: 50%;
background: #F5F5F5;
/* 未答题 */
}
.status-dot.answered {
background: #E3F0FF;
border: 2rpx solid #1A7CFF;
}
.status-dot.current {
background: #1A7CFF;
}
.status-item text {
font-size: 28rpx;
color: #666;
}
/* 答案解析样式 */
.explanation-section {
margin: 30rpx 20rpx;
padding: 20rpx;
background: #f8f8f8;
border-radius: 8rpx;
border-left: 6rpx solid #3f7ee8;
}
.explanation-title {
font-size: 28rpx;
color: #333;
font-weight: bold;
margin-bottom: 16rpx;
}
.explanation-content {
font-size: 26rpx;
color: #666;
line-height: 1.6;
}
/* 用户选择的选项样式 */
.option-item.user-selected {
background: #FFF3F3;
border: 2rpx solid #FF4D4F;
}
.option-item.user-selected .option-letter,
.option-item.user-selected .option-text,
.option-item.user-selected .separator {
color: #FF4D4F;
}
/* 答案解析样式优化 */
/* .answer-analysis {
margin-top: 30rpx;
margin-bottom: 20rpx;
background: #FFFFFF;
border-radius: 12rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
}
.analysis-header {
padding: 24rpx;
border-bottom: 1rpx solid #F0F0F0;
display: flex;
justify-content: space-between;
align-items: center;
}
.analysis-title {
font-size: 30rpx;
font-weight: 500;
color: #333333;
}
.correct-answer {
font-size: 28rpx;
color: #52C41A;
}
.analysis-content {
padding: 24rpx;
font-size: 28rpx;
color: #666666;
line-height: 1.6;
} */
/* 底部留白区域 */
.bottom-spacing {
display: none;
}
/* 移除蒙板相关样式 */
.mask {
display: none;
}
/* 移除选项点击相关样式 */
.option-item {
pointer-events: auto;
/* 恢复点击事件 */
}
/* 移除选中状态相关样式 */
.option-item.selected {
background: none;
}
/* 滚动优化 */
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}
/* 修改为具体的选择器 */
.material-section,
.material-content,
.material-title,
.material-text,
.resize-handle,
.resize-line,
.resize-dots {
user-select: none;
-webkit-user-select: none;
}
.material-section-wrapper {
margin: 24rpx 20rpx 0 20rpx;
border-radius: 12rpx 12rpx 0 0;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
overflow: hidden;
background: #fff;
position: relative;
will-change: height;
transform: translateZ(0);
-webkit-transform: translateZ(0);
}
/* 拖动时移除过渡效果 */
.material-section-wrapper.resizing {
transition: none !important;
}
/* 非拖动状态添加平滑过渡 */
.material-section-wrapper:not(.resizing) {
transition: height 0.3s ease-out;
}
.resize-handle-out {
height: 44rpx;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
margin: 0 20rpx;
border-radius: 0 0 12rpx 12rpx;
position: relative;
z-index: 100;
touch-action: none;
will-change: transform;
transform: translateZ(0);
-webkit-transform: translateZ(0);
}
.resize-line {
width: 60rpx;
height: 6rpx;
background: #1A7CFF;
border-radius: 3rpx;
position: relative;
}
/* 拖动时的视觉反馈 */
.resize-handle-out.resizing .resize-line {
background: #0052cc;
transform: scaleY(1.5);
}
.material-section-margin {
margin: 24rpx 20rpx 24rpx 20rpx;
}
/* 新增:材料内容底部内边距 */
.material-content-bottom-padding {
padding-bottom: 32rpx;
}
/* 新增:外部拖动手柄样式 */
.camp-resize-handle-out {
width: 100%;
height: 48rpx;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
z-index: 100;
cursor: ns-resize;
position: relative;
touch-action: none;
}
.camp-resize-handle {
width: 120rpx;
height: 16rpx;
background: #e0e0e0;
border-radius: 8rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.08);
margin: 0 auto;
}
.resize-line {
width: 60rpx;
height: 6rpx;
background: #bbb;
border-radius: 3rpx;
}
.custom-modal-mask {
position: fixed;
left: 0; right: 0; top: 0; bottom: 0;
background: rgba(0,0,0,0.4);
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
}
.custom-modal {
background: #fff;
border-radius: 16rpx;
width: 540rpx;
padding: 40rpx 32rpx 32rpx 32rpx;
box-shadow: 0 8rpx 32rpx rgba(0,0,0,0.12);
display: flex;
flex-direction: column;
align-items: center;
}
.custom-modal-title {
font-size: 32rpx;
font-weight: bold;
margin-bottom: 24rpx;
color: #333;
}
.custom-modal-content {
font-size: 28rpx;
color: #666;
margin-bottom: 32rpx;
text-align: center;
}
.custom-modal-actions {
display: flex;
width: 100%;
justify-content: space-between;
gap: 32rpx;
}
.custom-modal-btn {
flex: 1;
/* height: 80rpx; */
border-radius: 8rpx;
font-size: 28rpx;
border: none;
}
.custom-modal-btn.cancel {
background: #f5f5f5;
color: #666;
}
.custom-modal-btn.confirm {
background: #1A7CFF;
color: #fff;
}
/* ========== 结果模式样式 ========== */
.result-overview {
min-height: 100vh;
background: #F5F7FA;
position: relative;
}
/* 确保加载状态在预览页面中正确显示 */
.result-overview .loading-container {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(245, 247, 250, 0.9);
}
/* 成绩展示区域 */
.score-section {
display: flex;
flex-direction: column;
align-items: center;
padding: 40rpx 0;
background: #fff;
border-radius: 12rpx;
margin: 20rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
}
.score-main {
font-size: 48rpx;
font-weight: bold;
color: #333;
margin-bottom: 10rpx;
}
.score-desc {
font-size: 28rpx;
color: #666;
}
.qualified {
color: #4CAF50;
}
.unqualified {
color: #FF5722;
}
/* 统计区域 */
.stats-section {
background: #FFFFFF;
border-radius: 16rpx;
padding: 30rpx;
display: flex;
justify-content: space-around;
align-items: center;
margin: 20rpx;
}
.stats-item {
display: flex;
flex-direction: column;
align-items: center;
}
.stats-value {
font-size: 36rpx;
color: #333333;
font-weight: 500;
margin-bottom: 8rpx;
}
.stats-label {
font-size: 24rpx;
color: #999999;
}
.stats-divider {
width: 2rpx;
height: 60rpx;
background: #EEEEEE;
}
/* 题目列表区域 */
.questions-list {
background: #FFFFFF;
border-radius: 16rpx;
padding: 30rpx;
margin: 20rpx;
}
.list-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30rpx;
}
.header-title {
font-size: 32rpx;
color: #333333;
font-weight: 500;
}
.question-items {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 20rpx;
}
.question-item {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
box-sizing: border-box;
}
/* 修改图例样式 */
.status-legend {
display: flex;
align-items: center;
gap: 20rpx;
}
.legend-item {
display: flex;
align-items: center;
gap: 8rpx;
}
.legend-circle {
width: 32rpx;
height: 32rpx;
border-radius: 50%;
border: 2rpx solid transparent;
position: relative;
}
/* 正确图例 */
.legend-circle.correct {
border: 2rpx solid #52C41A;
background: #fff;
}
/* 错误图例 */
.legend-circle.wrong {
border: 2rpx solid #FF4D4F;
background: #fff;
}
/* 未答图例 */
.legend-circle.unanswered {
border: 2rpx solid #D9D9D9;
background: #fff;
}
.legend-item text {
font-size: 24rpx;
color: #666666;
}
/* 题号空心圆+圆弧 */
.circle-index {
position: relative;
width: 72rpx;
height: 72rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
}
.circle-bg {
position: absolute;
width: 72rpx;
height: 72rpx;
border-radius: 50%;
border: 2rpx solid #D9D9D9;
background: #fff;
z-index: 1;
}
.circle-arc {
position: absolute;
width: 72rpx;
height: 72rpx;
border-radius: 50%;
border: 4rpx solid #D9D9D9;
z-index: 2;
}
/* 正确答案的边框样式 - 完整的绿色圆 */
.arc-correct {
border-color: #52C41A !important;
}
/* 错误答案的边框样式 - 完整的红色圆 */
.arc-wrong {
border-color: #FF4D4F !important;
}
/* 未答题的边框样式 - 完整的灰色圆 */
.arc-unanswered {
border-color: #D9D9D9 !important;
}
.circle-text {
position: relative;
z-index: 3;
font-size: 28rpx;
color: #333;
font-weight: 500;
text-align: center;
width: 100%;
line-height: 72rpx;
}
/* 底部按钮组 */
.bottom-btns {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 20rpx 30rpx;
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
background: #fff;
box-shadow: 0 -2rpx 10rpx rgba(0, 0, 0, 0.05);
display: flex;
justify-content: space-between;
gap: 20rpx;
z-index: 100;
}
.btn-outline, .btn-blue {
flex: 1;
text-align: center;
border-radius: 44rpx;
font-size: 32rpx;
font-weight: 500;
}
.btn-outline {
background: #fff;
color: #333;
border: 2rpx solid #ddd;
}
.btn-blue {
background: #007AFF;
color: #fff;
}
/* Add padding to the bottom of the content to prevent overlap with fixed buttons */
.result-overview {
padding-bottom: calc(128rpx + env(safe-area-inset-bottom));
width: 100%;
}