Files
MBTI_wang/miniprogram/pages/index/camera.wxss
卡若 ce55c48c64 feat: 同步今日小程序与后台迭代版本
集中提交今日 API、管理端、小程序与部署文档调整,确保 Gitea 主分支与本地最新开发版本一致。

Made-with: Cursor
2026-04-20 11:07:55 +08:00

353 lines
5.8 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.

/* pages/index/camera.wxss - 严格一屏tabBar 为 fixedtabbar-pad 只作内边距,不可再叠 100vh 子容器 */
page {
height: 100%;
background-color: #fff;
}
.camera-page-root {
box-sizing: border-box;
position: relative;
height: 100vh;
height: 100dvh;
max-height: 100vh;
max-height: 100dvh;
display: flex;
flex-direction: column;
overflow: hidden;
}
.container {
width: 100%;
flex: 1;
min-height: 0;
box-sizing: border-box;
display: flex;
flex-direction: column;
overflow: hidden;
background-color: #fff;
}
.progress-section {
flex-shrink: 0;
margin: 8rpx 20rpx 0;
padding: 12rpx 20rpx 10rpx;
border-radius: 10rpx;
background: linear-gradient(to right, #fff5f5, #ffe5e8);
}
.progress-info {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6rpx;
}
.step-text {
font-size: 24rpx;
font-weight: 600;
color: #e63946;
}
.photo-count {
font-size: 20rpx;
color: #999;
}
.progress-bars {
display: flex;
gap: 10rpx;
margin-bottom: 8rpx;
}
.progress-bar {
flex: 1;
height: 6rpx;
border-radius: 6rpx;
}
.progress-bar.completed {
background-color: #52c41a;
}
.progress-bar.pending {
background-color: #e5e5e5;
}
.instruction-card {
background: rgba(255, 255, 255, 0.9);
border-radius: 10rpx;
padding: 10rpx 14rpx;
border: 1rpx solid rgba(230, 57, 70, 0.1);
}
.instruction-content {
display: flex;
align-items: center;
gap: 12rpx;
}
.step-number {
width: 36rpx;
height: 36rpx;
flex-shrink: 0;
border-radius: 50%;
background-color: #e63946;
color: #fff;
font-size: 22rpx;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
}
.instruction-text {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 2rpx;
}
.angle-text {
font-size: 24rpx;
font-weight: 600;
color: #c41d2a;
}
.tip-text {
font-size: 20rpx;
color: #666;
line-height: 1.25;
}
.camera-container {
flex: 1;
min-height: 0;
padding: 8rpx 20rpx;
box-sizing: border-box;
display: flex;
align-items: stretch;
justify-content: center;
}
.camera-preview {
width: 100%;
height: 100%;
min-height: 0;
border-radius: 24rpx;
overflow: hidden;
border: 4rpx solid #e5e5e5;
background-color: #000;
position: relative;
}
.camera {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.photos-preview {
width: 100%;
height: 100%;
min-height: 0;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
gap: 12rpx;
}
.photo-item {
position: relative;
flex: 1;
min-width: 0;
height: 100%;
max-height: 100%;
border-radius: 16rpx;
overflow: hidden;
border: 4rpx solid #e5e5e5;
}
.photo-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.photo-label {
position: absolute;
top: 8rpx;
left: 8rpx;
background: rgba(230, 57, 70, 0.9);
color: #fff;
font-size: 20rpx;
font-weight: 600;
padding: 4rpx 12rpx;
border-radius: 12rpx;
}
.button-container {
flex-shrink: 0;
padding: 10rpx 20rpx 8rpx;
display: flex;
justify-content: center;
align-items: center;
}
.capture-actions {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
gap: 12rpx;
}
.capture-actions .capture-button {
width: 100%;
}
.album-button {
width: 100%;
padding: 16rpx;
border-radius: 48rpx;
text-align: center;
background: #fff;
border: 2rpx solid #e63946;
box-sizing: border-box;
}
.album-button:active {
background: #fff5f5;
}
.album-button-text {
font-size: 26rpx;
font-weight: 600;
color: #e63946;
letter-spacing: 1rpx;
}
.capture-button {
width: 100%;
max-width: 100%;
padding: 18rpx;
background: linear-gradient(135deg, #e63946 0%, #ff6b9d 100%);
border-radius: 48rpx;
text-align: center;
box-sizing: border-box;
box-shadow: 0 8rpx 24rpx rgba(230, 57, 70, 0.3);
}
.button-text {
font-size: 28rpx;
font-weight: 700;
color: #fff;
letter-spacing: 1rpx;
}
.action-buttons {
display: flex;
gap: 16rpx;
width: 100%;
}
.action-button {
flex: 1;
padding: 20rpx 20rpx;
border-radius: 48rpx;
text-align: center;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
}
.action-button.secondary {
background: #fff;
border: 2rpx solid #e63946;
}
.action-button.secondary:active {
background: #fff5f5;
transform: scale(0.98);
}
.action-button.primary {
background: linear-gradient(135deg, #e63946 0%, #ff6b9d 100%);
box-shadow: 0 8rpx 24rpx rgba(230, 57, 70, 0.4);
}
.action-button.primary:active {
transform: scale(0.98);
box-shadow: 0 4rpx 16rpx rgba(230, 57, 70, 0.3);
}
.action-button-text {
font-size: 26rpx;
font-weight: 700;
letter-spacing: 1rpx;
}
.action-button.secondary .action-button-text {
color: #e63946;
}
.action-button.primary .action-button-text {
color: #fff;
}
/* 审核模式引导(替代白屏) */
.review-mode-panel {
flex: 1;
min-height: 0;
justify-content: center;
align-items: center;
padding: 32rpx 32rpx;
background: linear-gradient(180deg, #f8fafc 0%, #fff 40%);
}
.review-mode-card {
width: 100%;
max-width: 620rpx;
padding: 48rpx 40rpx;
background: #fff;
border-radius: 24rpx;
box-shadow: 0 8rpx 40rpx rgba(0, 0, 0, 0.06);
border: 1rpx solid rgba(0, 0, 0, 0.04);
display: flex;
flex-direction: column;
align-items: center;
gap: 24rpx;
}
.review-mode-title {
font-size: 34rpx;
font-weight: 700;
color: #1e293b;
}
.review-mode-desc {
font-size: 28rpx;
color: #64748b;
line-height: 1.65;
text-align: center;
}
.review-mode-btn {
margin-top: 16rpx;
padding: 24rpx 56rpx;
border-radius: 999rpx;
background: linear-gradient(135deg, #e63946 0%, #ff6b9d 100%);
color: #fff;
font-size: 30rpx;
font-weight: 600;
}
.review-mode-btn:active {
opacity: 0.9;
}