This commit is contained in:
lik
2026-06-04 09:14:50 +08:00
parent c121ebdb94
commit 535827b17b
19 changed files with 1648 additions and 251 deletions

View File

@@ -0,0 +1,575 @@
page {
background-color: #FAF6F1;
}
.container {
min-height: 100vh;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
}
/* 状态头部 */
.status-header {
padding: 48rpx 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-radius: 0 0 32rpx 32rpx;
}
.status-main {
display: flex;
flex-direction: column;
gap: 12rpx;
}
.status-text {
font-size: 40rpx;
font-weight: 700;
color: #FFFFFF;
}
.status-desc {
font-size: 26rpx;
color: rgba(255, 255, 255, 0.8);
}
.status-icon-wrap {
opacity: 0.6;
}
/* 详情卡片 */
.detail-card {
background: #FFFFFF;
margin: 24rpx 24rpx 0;
border-radius: 20rpx;
padding: 32rpx;
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.04);
}
.card-title {
display: flex;
align-items: center;
font-size: 32rpx;
font-weight: 600;
color: #1F2937;
margin-bottom: 24rpx;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #F3F4F6;
}
.card-icon {
color: #D4A853;
margin-right: 12rpx;
}
.card-edit-btn {
display: flex;
align-items: center;
gap: 6rpx;
margin-left: auto;
}
/* 信息行 */
.info-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16rpx 0;
}
.info-row + .info-row {
border-top: 1rpx solid #F9FAFB;
}
.info-label {
font-size: 26rpx;
color: #9CA3AF;
flex-shrink: 0;
}
.info-value {
font-size: 26rpx;
color: #374151;
text-align: right;
flex: 1;
margin-left: 24rpx;
word-break: break-all;
}
.info-value.phone {
color: #D4A853;
}
.info-value.fee {
color: #D4A853;
font-weight: 700;
font-size: 30rpx;
}
.info-value.order-id {
font-size: 24rpx;
color: #6B7280;
font-family: monospace;
}
/* 支付状态徽标 */
.payment-badge {
font-size: 24rpx;
font-weight: 600;
padding: 6rpx 16rpx;
border-radius: 8rpx;
}
/* 订单状态小徽标 */
.status-badge-small {
font-size: 24rpx;
font-weight: 600;
padding: 6rpx 16rpx;
border-radius: 8rpx;
}
/* 备注区域 */
.note-section {
margin-bottom: 24rpx;
}
.note-section:last-child {
margin-bottom: 0;
}
.note-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12rpx;
}
.note-label {
font-size: 26rpx;
color: #6B7280;
font-weight: 500;
margin-bottom: 8rpx;
display: block;
}
.note-edit-btn {
display: flex;
align-items: center;
gap: 6rpx;
}
.edit-text {
font-size: 24rpx;
color: #D4A853;
}
.note-content {
font-size: 28rpx;
color: #374151;
line-height: 1.7;
background: #F9FAFB;
padding: 20rpx;
border-radius: 12rpx;
display: block;
}
.note-textarea {
width: 100%;
min-height: 200rpx;
background: #F9FAFB;
border-radius: 12rpx;
padding: 20rpx;
font-size: 28rpx;
color: #1F2937;
box-sizing: border-box;
line-height: 1.7;
}
.input-placeholder {
color: #9CA3AF;
}
.note-actions {
display: flex;
justify-content: flex-end;
gap: 16rpx;
margin-top: 16rpx;
}
.note-btn {
font-size: 26rpx;
padding: 12rpx 32rpx;
border-radius: 12rpx;
border: none;
line-height: 1.5;
}
.note-btn.cancel {
background: #F3F4F6;
color: #6B7280;
}
.note-btn.confirm {
background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%);
color: #FFFFFF;
font-weight: 600;
}
.note-btn::after {
border: none;
}
/* 编辑行 */
.edit-row {
display: flex;
align-items: center;
padding: 16rpx 0;
border-top: 1rpx solid #F9FAFB;
}
.edit-label {
font-size: 26rpx;
color: #9CA3AF;
flex-shrink: 0;
width: 160rpx;
}
.edit-input {
flex: 1;
font-size: 26rpx;
color: #374151;
text-align: right;
margin-left: 24rpx;
height: 56rpx;
line-height: 56rpx;
}
.edit-radio-group {
flex: 1;
display: flex;
justify-content: flex-end;
gap: 24rpx;
margin-left: 24rpx;
}
.edit-radio {
font-size: 26rpx;
color: #6B7280;
padding: 8rpx 24rpx;
border-radius: 8rpx;
border: 1rpx solid #E5E7EB;
background: #FFFFFF;
}
.edit-radio.active {
color: #D4A853;
border-color: #D4A853;
background: #FEF3C7;
}
.edit-actions {
display: flex;
justify-content: flex-end;
gap: 16rpx;
margin-top: 24rpx;
padding-top: 16rpx;
border-top: 1rpx solid #F3F4F6;
}
.edit-btn {
font-size: 26rpx;
padding: 12rpx 32rpx;
border-radius: 12rpx;
border: none;
line-height: 1.5;
}
.edit-btn.cancel {
background: #F3F4F6;
color: #6B7280;
}
.edit-btn.confirm {
background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%);
color: #FFFFFF;
font-weight: 600;
}
.edit-btn::after {
border: none;
}
/* 空备注 */
.empty-note {
display: flex;
align-items: center;
justify-content: space-between;
padding: 24rpx 20rpx;
background: #F9FAFB;
border-radius: 12rpx;
}
.empty-note-text {
font-size: 26rpx;
color: #9CA3AF;
}
.add-note-btn {
display: flex;
align-items: center;
justify-content: center;
width: 56rpx;
height: 56rpx;
background: #FEF3C7;
border-radius: 50%;
}
/* 底部占位 */
.bottom-placeholder {
height: 160rpx;
}
/* 底部操作栏 */
.bottom-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: #FFFFFF;
padding: 20rpx 32rpx;
padding-bottom: calc(20rpx + constant(safe-area-inset-bottom));
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
display: flex;
align-items: center;
justify-content: space-between;
box-shadow: 0 -4rpx 20rpx rgba(0, 0, 0, 0.06);
z-index: 100;
}
.bottom-left {
display: flex;
align-items: center;
gap: 32rpx;
}
.action-icon-btn {
display: flex;
flex-direction: column;
align-items: center;
gap: 4rpx;
}
.action-icon-label {
font-size: 20rpx;
color: #6B7280;
}
.bottom-right {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 16rpx;
flex: 1;
flex-wrap: nowrap;
}
.action-btn {
font-size: 26rpx;
font-weight: 600;
padding: 16rpx 20rpx;
border-radius: 16rpx;
line-height: 1.5;
min-width: 0;
white-space: nowrap;
text-align: center;
}
.cancel-btn {
background: #F3F4F6;
color: #6B7280;
}
.pay-btn {
background: linear-gradient(135deg, #D4A853 0%, #D4A853 100%);
color: #FFFFFF;
}
.confirm-btn {
background: linear-gradient(135deg, #6B8E7B 0%, #6B8E7B 100%);
color: #FFFFFF;
}
.rebook-btn {
background: linear-gradient(135deg, #6B8E7B 0%, #6B8E7B 100%);
color: #FFFFFF;
}
/* 弹窗遮罩 */
.popup-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 200;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s, visibility 0.3s;
}
.popup-mask.show {
opacity: 1;
visibility: visible;
}
/* 弹窗内容 */
.popup-content {
position: fixed;
left: 0;
right: 0;
bottom: 0;
background: #FFFFFF;
border-radius: 24rpx 24rpx 0 0;
z-index: 201;
transform: translateY(100%);
transition: transform 0.3s ease-out;
display: flex;
flex-direction: column;
max-height: 70vh;
}
.popup-content.show {
transform: translateY(0);
}
.popup-header {
display: flex;
align-items: center;
justify-content: center;
padding: 32rpx;
position: relative;
border-bottom: 1rpx solid #F3F4F6;
flex-shrink: 0;
}
.popup-title {
font-size: 32rpx;
font-weight: 600;
color: #1F2937;
}
.popup-close {
position: absolute;
right: 32rpx;
top: 50%;
transform: translateY(-50%);
color: #9CA3AF;
}
.popup-body {
flex: 1;
overflow-y: auto;
padding: 32rpx;
}
.popup-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24rpx;
padding: 24rpx 32rpx;
padding-bottom: calc(24rpx + constant(safe-area-inset-bottom));
padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
border-top: 1rpx solid #F3F4F6;
background: #FFFFFF;
flex-shrink: 0;
}
.popup-cancel-btn {
flex: 1;
background: #F3F4F6;
color: #6B7280;
font-size: 30rpx;
font-weight: 600;
padding: 24rpx 0;
border-radius: 20rpx;
border: none;
line-height: 1.5;
}
.popup-cancel-btn::after {
border: none;
}
.popup-confirm-btn {
flex: 1;
background: linear-gradient(135deg, #EF4444 0%, #EF4444 100%);
color: #FFFFFF;
font-size: 30rpx;
font-weight: 600;
padding: 24rpx 0;
border-radius: 20rpx;
border: none;
line-height: 1.5;
}
.popup-confirm-btn::after {
border: none;
}
/* 取消原因 */
.cancel-tip {
font-size: 28rpx;
color: #6B7280;
line-height: 1.6;
margin-bottom: 24rpx;
}
.cancel-reason-list {
display: flex;
flex-direction: column;
gap: 8rpx;
}
.cancel-reason-item {
display: flex;
align-items: center;
gap: 16rpx;
padding: 20rpx 16rpx;
border-radius: 12rpx;
transition: background 0.2s;
}
.cancel-reason-item.active {
background: #FEF3C7;
}
.reason-radio {
width: 36rpx;
height: 36rpx;
border: 3rpx solid #D1D5DB;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: border-color 0.2s;
}
.cancel-reason-item.active .reason-radio {
border-color: #D4A853;
}
.reason-radio-inner {
width: 20rpx;
height: 20rpx;
background: #D4A853;
border-radius: 50%;
}
.reason-text {
font-size: 28rpx;
color: #374151;
}