| | |
| | | /* pages/registration/registration.wxss */ |
| | | |
| | | /* 容器样式 */ |
| | | /* --- 全局和容器 --- */ |
| | | .container { |
| | | min-height: 100vh; |
| | | background: #f8f9fa; |
| | | padding-bottom: 140rpx; |
| | | padding: 20rpx; |
| | | padding-bottom: 180rpx; /* 为底部按钮留出空间 */ |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | /* 加载状态样式 */ |
| | | /* --- 加载状态 --- */ |
| | | .loading-wrapper { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | padding: 120rpx 0; |
| | | justify-content: center; |
| | | padding-top: 200rpx; |
| | | } |
| | | |
| | | .loading-text { |
| | | margin-top: 20rpx; |
| | | font-size: 28rpx; |
| | | color: #999999; |
| | | color: #999; |
| | | } |
| | | |
| | | /* 表单容器样式 */ |
| | | /* --- 表单容器和卡片 --- */ |
| | | .form-container { |
| | | padding: 0 30rpx; |
| | | width: 100%; |
| | | } |
| | | |
| | | /* 活动信息样式 */ |
| | | .activity-info { |
| | | .card { |
| | | background: #ffffff; |
| | | padding: 30rpx; |
| | | border-radius: 16rpx; |
| | | margin-bottom: 20rpx; |
| | | border-radius: 12rpx; |
| | | box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1); |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .activity-title { |
| | | display: block; |
| | | .card-title { |
| | | font-size: 32rpx; |
| | | font-weight: bold; |
| | | color: #333333; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | |
| | | .activity-desc { |
| | | display: block; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | line-height: 1.6; |
| | | } |
| | | |
| | | /* 表单区域样式 */ |
| | | .form-section { |
| | | background: #ffffff; |
| | | margin-bottom: 20rpx; |
| | | border-radius: 12rpx; |
| | | overflow: hidden; |
| | | box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .section-title { |
| | | padding: 30rpx; |
| | | font-size: 30rpx; |
| | | font-weight: bold; |
| | | color: #333333; |
| | | background: #f8f9fa; |
| | | border-bottom: 1rpx solid #e9ecef; |
| | | } |
| | | |
| | | /* 表单项样式 */ |
| | | .form-item { |
| | | color: #333; |
| | | padding: 30rpx; |
| | | border-bottom: 1rpx solid #f0f0f0; |
| | | position: relative; |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 20rpx; |
| | | } |
| | | |
| | | .form-item:last-child { |
| | | /* --- 表单项 --- */ |
| | | .form-item { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 30rpx; |
| | | margin: 0 30rpx; |
| | | border-bottom: 1rpx solid #f0f0f0; |
| | | position: relative; |
| | | } |
| | | .card .form-item:last-child { |
| | | border-bottom: none; |
| | | } |
| | | |
| | | .form-item.error { |
| | | border-left: 6rpx solid #ff4757; |
| | | } |
| | | |
| | | /* 垂直布局的表单项 (如简介) */ |
| | | .form-item.vertical-layout { |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | } |
| | | |
| | | .form-item.vertical-layout .label { |
| | | margin-bottom: 16rpx; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | .form-item.vertical-layout .input-wrapper { |
| | | width: 100%; |
| | | } |
| | | |
| | | .label { |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | font-weight: 500; |
| | | min-width: 120rpx; |
| | | color: #333; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .label.required::after { |
| | | content: '*'; |
| | | color: #ff4757; |
| | |
| | | .input-wrapper { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .label-row { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin-bottom: 16rpx; |
| | | justify-content: flex-end; |
| | | min-width: 0; |
| | | } |
| | | |
| | | /* 输入框样式 */ |
| | | .input, |
| | | .textarea { |
| | | /* --- 输入控件 --- */ |
| | | .input, .picker, .textarea { |
| | | width: 100%; |
| | | height: 80rpx; |
| | | padding: 20rpx; |
| | | border: 2rpx solid #e9ecef; |
| | | border-radius: 8rpx; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | background: #ffffff; |
| | | box-sizing: border-box; |
| | | line-height: 1.4; |
| | | display: flex; |
| | | align-items: center; |
| | | color: #333; |
| | | text-align: right; |
| | | border: none; |
| | | background-color: transparent; |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | |
| | | .input:focus, |
| | | .textarea:focus { |
| | | border-color: #1976d2; |
| | | outline: none; |
| | | } |
| | | |
| | | .textarea { |
| | | height: auto; |
| | | min-height: 120rpx; |
| | | resize: none; |
| | | align-items: flex-start; |
| | | padding-top: 20rpx; |
| | | } |
| | | |
| | | /* 选择器样式 */ |
| | | .picker { |
| | | width: 100%; |
| | | } |
| | | |
| | | .picker-text { |
| | | width: 100%; |
| | | height: 80rpx; |
| | | text-align: left; |
| | | background-color: #f8f9fa; |
| | | padding: 20rpx; |
| | | border: 2rpx solid #e9ecef; |
| | | border-radius: 8rpx; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | background: #ffffff; |
| | | box-sizing: border-box; |
| | | line-height: 1.4; |
| | | display: flex; |
| | | align-items: center; |
| | | min-height: 150rpx; |
| | | margin-top: 10rpx; |
| | | } |
| | | |
| | | .placeholder-class { |
| | | color: #999; |
| | | font-size: 28rpx; |
| | | } |
| | | .picker-text.placeholder { |
| | | color: #999999; |
| | | color: #999; |
| | | } |
| | | |
| | | /* 手机号授权样式 */ |
| | | /* --- 特定控件样式 --- */ |
| | | /* 手机号 */ |
| | | .phone-container { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 16rpx; |
| | | justify-content: flex-end; |
| | | width: 100%; |
| | | } |
| | | |
| | | .phone-display { |
| | | flex: 1; |
| | | height: 80rpx; |
| | | padding: 20rpx; |
| | | border: 2rpx solid #e9ecef; |
| | | border-radius: 8rpx; |
| | | color: #333; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | background: #f8f9fa; |
| | | box-sizing: border-box; |
| | | line-height: 1.4; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .phone-display.placeholder { |
| | | color: #999999; |
| | | color: #999; |
| | | } |
| | | .phone-auth-btn, .phone-change-btn { |
| | | color: #1976d2; |
| | | font-size: 28rpx; |
| | | background-color: transparent; |
| | | border: none; |
| | | padding: 0; |
| | | margin: 0 0 0 20rpx; |
| | | line-height: 1; |
| | | } |
| | | .phone-auth-btn::after, .phone-change-btn::after { |
| | | display: none; |
| | | } |
| | | |
| | | .phone-auth-btn, |
| | | .phone-change-btn { |
| | | padding: 0 24rpx; |
| | | height: 80rpx; |
| | | border-radius: 8rpx; |
| | | font-size: 24rpx; |
| | | font-weight: 500; |
| | | border: none; |
| | | /* 头像 */ |
| | | .avatar-wrapper { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | white-space: nowrap; |
| | | flex-shrink: 0; |
| | | } |
| | | .avatar-image { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border-radius: 50%; |
| | | margin-left: 20rpx; |
| | | } |
| | | .arrow-icon { |
| | | width: 16rpx; |
| | | height: 28rpx; |
| | | margin-left: 10rpx; |
| | | } |
| | | |
| | | .phone-auth-btn { |
| | | background: #1976d2; |
| | | color: #ffffff; |
| | | /* 附件 */ |
| | | .attachment-upload-area { |
| | | padding: 30rpx; |
| | | } |
| | | |
| | | .phone-auth-btn:active { |
| | | background: #1565c0; |
| | | } |
| | | |
| | | .phone-change-btn { |
| | | background: #f5f5f5; |
| | | color: #666666; |
| | | border: 2rpx solid #e0e0e0; |
| | | } |
| | | |
| | | .phone-change-btn:active { |
| | | background: #eeeeee; |
| | | } |
| | | |
| | | /* 错误提示样式 */ |
| | | .error-text { |
| | | display: block; |
| | | margin-top: 8rpx; |
| | | font-size: 22rpx; |
| | | color: #ff4757; |
| | | line-height: 1.4; |
| | | } |
| | | |
| | | /* 文件上传样式 */ |
| | | .upload-section { |
| | | margin-top: 16rpx; |
| | | } |
| | | |
| | | .upload-btn { |
| | | border: 2rpx dashed #d0d7de; |
| | | border-radius: 12rpx; |
| | | background: #fafbfc; |
| | | padding: 40rpx; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | width: 200rpx; |
| | | height: 200rpx; |
| | | border: 2rpx dashed #d0d7de; |
| | | border-radius: 12rpx; |
| | | background: #f8f9fa; |
| | | color: #666666; |
| | | transition: all 0.3s ease; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | |
| | | .upload-btn:active { |
| | | background: #e9ecef; |
| | | border-color: #1976d2; |
| | | } |
| | | |
| | | .upload-btn.file-upload { |
| | | width: 100%; |
| | | height: 120rpx; |
| | | flex-direction: row; |
| | | } |
| | | |
| | | .upload-icon { |
| | | font-size: 48rpx; |
| | | margin-bottom: 12rpx; |
| | | margin-bottom: 10rpx; |
| | | } |
| | | |
| | | .file-upload .upload-icon { |
| | | margin-bottom: 0; |
| | | margin-right: 16rpx; |
| | | } |
| | | |
| | | .upload-text { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | font-size: 28rpx; |
| | | color: #333; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | /* 已上传文件样式 */ |
| | | .uploaded-file { |
| | | position: relative; |
| | | width: 200rpx; |
| | | height: 200rpx; |
| | | border-radius: 12rpx; |
| | | overflow: hidden; |
| | | .upload-hint { |
| | | font-size: 22rpx; |
| | | color: #999; |
| | | margin-top: 8rpx; |
| | | } |
| | | |
| | | .uploaded-image { |
| | | width: 100%; |
| | | height: 100%; |
| | | .attachment-list { |
| | | margin-top: 20rpx; |
| | | } |
| | | |
| | | .uploaded-file-info { |
| | | .attachment-item { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 20rpx; |
| | | background: #f8f9fa; |
| | | border-radius: 8rpx; |
| | | border: 2rpx solid #e9ecef; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | |
| | | .file-name { |
| | | font-size: 26rpx; |
| | | color: #333333; |
| | | } |
| | | |
| | | .delete-btn { |
| | | position: absolute; |
| | | top: 8rpx; |
| | | right: 8rpx; |
| | | width: 40rpx; |
| | | height: 40rpx; |
| | | background: rgba(0, 0, 0, 0.7); |
| | | color: #ffffff; |
| | | border-radius: 50%; |
| | | .attachment-info { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 24rpx; |
| | | font-weight: bold; |
| | | min-width: 0; |
| | | } |
| | | |
| | | .uploaded-file-info .delete-btn { |
| | | position: static; |
| | | background: #ff4757; |
| | | color: #ffffff; |
| | | padding: 8rpx 16rpx; |
| | | border-radius: 6rpx; |
| | | .attachment-icon { |
| | | font-size: 32rpx; |
| | | margin-right: 16rpx; |
| | | } |
| | | .attachment-details { |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | .attachment-name { |
| | | font-size: 26rpx; |
| | | color: #333; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | } |
| | | .attachment-size { |
| | | font-size: 22rpx; |
| | | color: #999; |
| | | } |
| | | .attachment-actions .delete-btn { |
| | | color: #ff4757; |
| | | font-size: 28rpx; |
| | | padding: 10rpx; |
| | | margin-left: 20rpx; |
| | | } |
| | | |
| | | /* 团队成员样式 */ |
| | | /* --- 错误提示 --- */ |
| | | .error-text { |
| | | position: absolute; |
| | | bottom: 0; |
| | | left: 30rpx; |
| | | font-size: 22rpx; |
| | | color: #ff4757; |
| | | } |
| | | .form-item.error { |
| | | padding-bottom: 30rpx; /* 为错误信息留出空间 */ |
| | | } |
| | | |
| | | |
| | | /* 底部操作栏样式 */ |
| | | /* --- 底部操作栏 --- */ |
| | | .bottom-actions { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | background: #ffffff; |
| | | border-top: 1rpx solid #f0f0f0; |
| | | padding: 20rpx 30rpx; |
| | | display: flex; |
| | | box-shadow: 0 -4rpx 16rpx rgba(0, 0, 0, 0.1); |
| | | padding-bottom: calc(20rpx + constant(safe-area-inset-bottom)); |
| | | padding-bottom: calc(20rpx + env(safe-area-inset-bottom)); |
| | | border-top: 1rpx solid #f0f0f0; |
| | | z-index: 100; |
| | | } |
| | | |
| | | .submit-btn { |
| | | flex: 1; |
| | | padding: 24rpx 0; |
| | | background: linear-gradient(90deg, #1976d2, #42a5f5); |
| | | width: 100%; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | background: #1976d2; |
| | | color: #ffffff; |
| | | border-radius: 12rpx; |
| | | font-size: 32rpx; |
| | | font-weight: bold; |
| | | text-align: center; |
| | | box-shadow: 0 4rpx 12rpx rgba(25, 118, 210, 0.3); |
| | | } |
| | | |
| | | .submit-btn.disabled { |
| | | background: #cccccc; |
| | | box-shadow: none; |
| | | color: #999999; |
| | | color: #999; |
| | | } |
| | | |
| | | /* 弹窗样式 */ |
| | | .modal-overlay { |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | background: rgba(0, 0, 0, 0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | z-index: 1000; |
| | | padding: 40rpx; |
| | | } |
| | | |
| | | .modal-content { |
| | | background: #ffffff; |
| | | border-radius: 16rpx; |
| | | width: 100%; |
| | | max-width: 600rpx; |
| | | max-height: 80vh; |
| | | overflow: hidden; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .modal-header { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 30rpx; |
| | | border-bottom: 1rpx solid #f0f0f0; |
| | | } |
| | | |
| | | .modal-title { |
| | | font-size: 32rpx; |
| | | font-weight: bold; |
| | | color: #333333; |
| | | } |
| | | |
| | | .modal-close { |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 32rpx; |
| | | color: #666666; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .modal-body { |
| | | flex: 1; |
| | | padding: 30rpx; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .modal-body .form-item { |
| | | padding: 0; |
| | | margin-bottom: 30rpx; |
| | | border-bottom: none; |
| | | } |
| | | |
| | | .modal-body .form-item:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .modal-footer { |
| | | display: flex; |
| | | gap: 20rpx; |
| | | padding: 30rpx; |
| | | border-top: 1rpx solid #f0f0f0; |
| | | } |
| | | |
| | | .cancel-btn, |
| | | .confirm-btn { |
| | | flex: 1; |
| | | padding: 24rpx 0; |
| | | border-radius: 12rpx; |
| | | font-size: 28rpx; |
| | | font-weight: bold; |
| | | text-align: center; |
| | | } |
| | | |
| | | .cancel-btn { |
| | | background: #f8f9fa; |
| | | color: #666666; |
| | | border: 2rpx solid #e9ecef; |
| | | } |
| | | |
| | | .confirm-btn { |
| | | background: linear-gradient(90deg, #1976d2, #42a5f5); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | /* 响应式适配 */ |
| | | @media screen and (max-width: 375px) { |
| | | .form-container { |
| | | padding: 0 20rpx; |
| | | } |
| | | |
| | | .form-item { |
| | | padding: 24rpx; |
| | | } |
| | | |
| | | .section-title { |
| | | padding: 24rpx; |
| | | font-size: 28rpx; |
| | | } |
| | | |
| | | .bottom-actions { |
| | | padding: 16rpx 20rpx; |
| | | } |
| | | |
| | | .submit-btn, |
| | | .draft-btn { |
| | | padding: 20rpx 24rpx; |
| | | font-size: 26rpx; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 414px) { |
| | | .upload-btn { |
| | | width: 240rpx; |
| | | height: 240rpx; |
| | | } |
| | | |
| | | .uploaded-file { |
| | | width: 240rpx; |
| | | height: 240rpx; |
| | | } |
| | | } |
| | | |
| | | /* 头像上传样式 */ |
| | | .avatar-upload-container { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | gap: 20rpx; |
| | | } |
| | | |
| | | .avatar-upload-btn { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | width: 200rpx; |
| | | height: 200rpx; |
| | | border: 2rpx dashed #d0d7de; |
| | | border-radius: 50%; |
| | | background: #f8f9fa; |
| | | position: relative; |
| | | transition: all 0.3s ease; |
| | | } |
| | | |
| | | .avatar-upload-btn:active { |
| | | transform: scale(0.95); |
| | | background: #e9ecef; |
| | | border-color: #1976d2; |
| | | } |
| | | |
| | | .avatar-upload-btn.uploading { |
| | | border-color: #1976d2; |
| | | background: #f0f8ff; |
| | | } |
| | | |
| | | .upload-icon { |
| | | font-family: "icon"; |
| | | font-size: 60rpx; |
| | | color: #999999; |
| | | margin-bottom: 8rpx; |
| | | transition: color 0.3s ease; |
| | | } |
| | | |
| | | .avatar-upload-btn:active .upload-icon { |
| | | color: #1976d2; |
| | | } |
| | | |
| | | .upload-text { |
| | | font-size: 22rpx; |
| | | color: #666666; |
| | | text-align: center; |
| | | transition: color 0.3s ease; |
| | | } |
| | | |
| | | .avatar-upload-btn:active .upload-text { |
| | | color: #1976d2; |
| | | } |
| | | |
| | | .avatar-preview { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | gap: 16rpx; |
| | | } |
| | | |
| | | .avatar-image { |
| | | width: 200rpx; |
| | | height: 200rpx; |
| | | border-radius: 50%; |
| | | border: 2rpx solid #e9ecef; |
| | | box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); |
| | | transition: transform 0.3s ease; |
| | | } |
| | | |
| | | .avatar-image:active { |
| | | transform: scale(0.95); |
| | | } |
| | | |
| | | .avatar-actions { |
| | | display: flex; |
| | | gap: 20rpx; |
| | | } |
| | | |
| | | .action-btn { |
| | | padding: 12rpx 24rpx; |
| | | font-size: 24rpx; |
| | | border-radius: 12rpx; |
| | | border: 1rpx solid #1976d2; |
| | | color: #1976d2; |
| | | background: #ffffff; |
| | | text-align: center; |
| | | transition: all 0.3s ease; |
| | | box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05); |
| | | } |
| | | |
| | | .action-btn:active { |
| | | transform: translateY(2rpx); |
| | | background: #f0f8ff; |
| | | box-shadow: 0 1rpx 4rpx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .action-btn.delete { |
| | | border-color: #ff4757; |
| | | color: #ff4757; |
| | | } |
| | | |
| | | .action-btn.delete:active { |
| | | background: #fff5f5; |
| | | } |
| | | |
| | | .upload-progress { |
| | | width: 100%; |
| | | max-width: 300rpx; |
| | | } |
| | | |
| | | .progress-text { |
| | | display: block; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | text-align: center; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | |
| | | .progress-bar { |
| | | width: 100%; |
| | | height: 8rpx; |
| | | background: #e9ecef; |
| | | border-radius: 4rpx; |
| | | overflow: hidden; |
| | | box-shadow: inset 0 1rpx 2rpx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .progress-fill { |
| | | height: 100%; |
| | | background: linear-gradient(90deg, #1976d2, #42a5f5); |
| | | border-radius: 4rpx; |
| | | transition: width 0.3s ease; |
| | | } |
| | | |
| | | /* 上传状态指示器 */ |
| | | .avatar-uploading-indicator { |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | border: 4rpx solid #f0f0f0; |
| | | border-top: 4rpx solid #1976d2; |
| | | border-radius: 50%; |
| | | animation: spin 1s linear infinite; |
| | | } |
| | | |
| | | @keyframes spin { |
| | | 0% { transform: translate(-50%, -50%) rotate(0deg); } |
| | | 100% { transform: translate(-50%, -50%) rotate(360deg); } |
| | | } |
| | | |
| | | /* 头像上传提示文字 */ |
| | | .avatar-upload-hint { |
| | | font-size: 22rpx; |
| | | color: #999999; |
| | | text-align: center; |
| | | margin-top: 10rpx; |
| | | line-height: 1.4; |
| | | } |
| | | |
| | | /* 错误状态样式 */ |
| | | .avatar-upload-container.error .avatar-upload-btn { |
| | | border-color: #ff4757; |
| | | background: #fff5f5; |
| | | } |
| | | |
| | | .avatar-upload-container.error .upload-icon { |
| | | color: #ff4757; |
| | | } |
| | | |
| | | /* 附件上传样式 */ |
| | | .attachment-upload-area { |
| | | margin-top: 20rpx; |
| | | } |
| | | |
| | | .upload-btn { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 40rpx 20rpx; |
| | | border: 2rpx dashed #d0d7de; |
| | | border-radius: 12rpx; |
| | | background: #fafbfc; |
| | | transition: all 0.3s ease; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | |
| | | .upload-btn:active { |
| | | background: #f1f3f4; |
| | | border-color: #1976d2; |
| | | } |
| | | |
| | | .upload-icon { |
| | | font-size: 48rpx; |
| | | margin-bottom: 10rpx; |
| | | } |
| | | |
| | | .upload-text { |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | font-weight: 500; |
| | | margin-bottom: 8rpx; |
| | | } |
| | | |
| | | .upload-hint { |
| | | font-size: 22rpx; |
| | | color: #666666; |
| | | text-align: center; |
| | | line-height: 1.4; |
| | | } |
| | | |
| | | /* 附件列表样式 */ |
| | | .attachment-list { |
| | | margin-top: 20rpx; |
| | | } |
| | | |
| | | .attachment-item { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 20rpx; |
| | | background: #ffffff; |
| | | border-radius: 12rpx; |
| | | margin-bottom: 12rpx; |
| | | box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05); |
| | | transition: all 0.3s ease; |
| | | } |
| | | |
| | | .attachment-item.uploading { |
| | | background: #f8f9fa; |
| | | border: 1rpx solid #e9ecef; |
| | | } |
| | | |
| | | .attachment-info { |
| | | display: flex; |
| | | align-items: center; |
| | | flex: 1; |
| | | } |
| | | |
| | | .attachment-icon { |
| | | font-size: 32rpx; |
| | | margin-right: 16rpx; |
| | | width: 40rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .attachment-details { |
| | | flex: 1; |
| | | } |
| | | |
| | | .attachment-name { |
| | | display: block; |
| | | font-size: 26rpx; |
| | | color: #333333; |
| | | font-weight: 500; |
| | | margin-bottom: 4rpx; |
| | | word-break: break-all; |
| | | } |
| | | |
| | | .attachment-size { |
| | | display: block; |
| | | font-size: 22rpx; |
| | | color: #666666; |
| | | } |
| | | |
| | | .upload-progress { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 8rpx; |
| | | } |
| | | |
| | | .progress-bar { |
| | | flex: 1; |
| | | height: 6rpx; |
| | | background: #e9ecef; |
| | | border-radius: 3rpx; |
| | | overflow: hidden; |
| | | margin-right: 12rpx; |
| | | } |
| | | |
| | | .progress-bar .progress-fill { |
| | | height: 100%; |
| | | background: linear-gradient(90deg, #1976d2, #42a5f5); |
| | | border-radius: 3rpx; |
| | | transition: width 0.3s ease; |
| | | } |
| | | |
| | | .progress-text { |
| | | font-size: 20rpx; |
| | | color: #666666; |
| | | min-width: 60rpx; |
| | | text-align: right; |
| | | } |
| | | |
| | | .upload-status { |
| | | display: block; |
| | | font-size: 22rpx; |
| | | margin-top: 4rpx; |
| | | } |
| | | |
| | | .upload-status.success { |
| | | color: #28a745; |
| | | } |
| | | |
| | | .upload-status.error { |
| | | color: #dc3545; |
| | | } |
| | | |
| | | .attachment-actions { |
| | | margin-left: 16rpx; |
| | | } |
| | | |
| | | .attachment-actions .action-btn { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | padding: 8rpx 16rpx; |
| | | border-radius: 6rpx; |
| | | background: #f8f9fa; |
| | | transition: all 0.3s ease; |
| | | } |
| | | |
| | | .attachment-actions .action-btn.preview { |
| | | color: #1976d2; |
| | | background: #f3f8ff; |
| | | margin-right: 8rpx; |
| | | } |
| | | |
| | | .attachment-actions .action-btn.delete { |
| | | color: #dc3545; |
| | | background: #fff5f5; |
| | | } |
| | | |
| | | .attachment-actions .action-btn:active { |
| | | opacity: 0.7; |
| | | } |
| | | |
| | | .attachment-count { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | text-align: center; |
| | | margin-top: 16rpx; |
| | | padding: 12rpx; |
| | | background: #f8f9fa; |
| | | border-radius: 8rpx; |
| | | .submit-btn::after { |
| | | display: none; |
| | | } |