2026-05-31 19:04:06 +08:00
|
|
|
.page {
|
|
|
|
|
padding-bottom: 140rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.detail-page {
|
|
|
|
|
padding: 28rpx;
|
|
|
|
|
padding-bottom: 160rpx;
|
|
|
|
|
display: grid;
|
|
|
|
|
gap: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.custom-header {
|
|
|
|
|
padding: 20rpx 4rpx 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.header-title {
|
|
|
|
|
font-size: 44rpx;
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
color: #0f172a;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.overview-card,
|
|
|
|
|
.opinion-card {
|
|
|
|
|
padding: 24rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.overview-head {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
gap: 16rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.overview-left {
|
|
|
|
|
flex: 1;
|
|
|
|
|
min-width: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.order-no {
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #0f172a;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.order-customer {
|
|
|
|
|
margin-top: 6rpx;
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
color: #64748b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.profit-highlight {
|
2026-06-06 22:24:48 +08:00
|
|
|
border: 1rpx solid transparent;
|
2026-05-31 19:04:06 +08:00
|
|
|
border-radius: 18rpx;
|
|
|
|
|
padding: 24rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-06 22:24:48 +08:00
|
|
|
.profit-positive .profit-label,
|
|
|
|
|
.profit-positive .profit-value,
|
|
|
|
|
.profit-positive .profit-rate { color: #059669; }
|
|
|
|
|
.profit-positive {
|
|
|
|
|
background: linear-gradient(135deg, rgba(16, 185, 129, 0.06) 0%, rgba(16, 185, 129, 0.12) 100%);
|
|
|
|
|
border-color: rgba(16, 185, 129, 0.2);
|
2026-05-31 19:04:06 +08:00
|
|
|
}
|
|
|
|
|
|
2026-06-06 22:24:48 +08:00
|
|
|
.profit-negative .profit-label,
|
|
|
|
|
.profit-negative .profit-value,
|
|
|
|
|
.profit-negative .profit-rate { color: #dc2626; }
|
|
|
|
|
.profit-negative {
|
|
|
|
|
background: linear-gradient(135deg, rgba(220, 38, 38, 0.06) 0%, rgba(220, 38, 38, 0.12) 100%);
|
|
|
|
|
border-color: rgba(220, 38, 38, 0.2);
|
2026-05-31 19:04:06 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-grid {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(2, 1fr);
|
|
|
|
|
gap: 14rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-item {
|
|
|
|
|
padding: 18rpx;
|
|
|
|
|
border-radius: 14rpx;
|
|
|
|
|
background: #f8fbff;
|
|
|
|
|
border: 1rpx solid #e5eaf1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-label {
|
|
|
|
|
font-size: 22rpx;
|
|
|
|
|
color: #94a3b8;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-value {
|
|
|
|
|
margin-top: 8rpx;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #0f172a;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.remark-row {
|
|
|
|
|
margin-top: 16rpx;
|
|
|
|
|
padding-top: 16rpx;
|
|
|
|
|
border-top: 1rpx solid #e5eaf1;
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.remark-label {
|
|
|
|
|
color: #94a3b8;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.remark-text {
|
|
|
|
|
color: #475569;
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-06 22:24:48 +08:00
|
|
|
.total-row {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-top: 14rpx;
|
|
|
|
|
padding: 14rpx 18rpx;
|
|
|
|
|
background: #f1f5f9;
|
|
|
|
|
border-radius: 12rpx;
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
}
|
|
|
|
|
.total-label { color: #475569; font-weight: 600; }
|
|
|
|
|
.total-value { font-weight: 700; color: #0f172a; }
|
|
|
|
|
|
2026-05-31 19:04:06 +08:00
|
|
|
.section-title {
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
color: #64748b;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
margin-bottom: 12rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.textarea {
|
|
|
|
|
min-height: 140rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message {
|
|
|
|
|
color: #047857;
|
|
|
|
|
padding: 20rpx 24rpx;
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-01 11:24:20 +08:00
|
|
|
/* Sticky bottom action bar */
|
2026-05-31 19:04:06 +08:00
|
|
|
.action-bar {
|
|
|
|
|
position: fixed;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 16rpx;
|
|
|
|
|
padding: 20rpx 28rpx;
|
|
|
|
|
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
|
|
|
|
|
background: #ffffff;
|
|
|
|
|
border-top: 1rpx solid #e5eaf1;
|
|
|
|
|
box-shadow: 0 -4rpx 16rpx rgba(0, 0, 0, 0.06);
|
|
|
|
|
z-index: 100;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.action-btn {
|
|
|
|
|
flex: 1;
|
|
|
|
|
height: 88rpx;
|
|
|
|
|
line-height: 88rpx;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
border-radius: 18rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pass-btn {
|
|
|
|
|
background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.reject-btn {
|
2026-06-06 22:24:48 +08:00
|
|
|
background: #fff1f2;
|
2026-05-31 19:04:06 +08:00
|
|
|
color: #be123c;
|
|
|
|
|
border: 2rpx solid #fecdd3;
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-01 11:24:20 +08:00
|
|
|
/* 报价明细卡片 */
|
2026-05-31 19:04:06 +08:00
|
|
|
.pricing-card { padding: 24rpx; }
|
|
|
|
|
.pricing-item { margin-bottom: 20rpx; padding-bottom: 16rpx; border-bottom: 1rpx solid #e5eaf1; }
|
|
|
|
|
.pricing-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
|
|
|
|
|
.pricing-item-header { display: flex; align-items: center; gap: 12rpx; margin-bottom: 10rpx; }
|
|
|
|
|
.pricing-product { font-size: 28rpx; font-weight: 700; color: #0f172a; }
|
|
|
|
|
.pricing-type-badge { font-size: 20rpx; background: #eff6ff; color: #1d4ed8; padding: 4rpx 14rpx; border-radius: 999rpx; font-weight: 600; }
|
|
|
|
|
.pricing-dims { font-size: 24rpx; color: #475569; margin-bottom: 10rpx; }
|
|
|
|
|
.pricing-calc { background: #f0f9ff; border-radius: 14rpx; padding: 16rpx; margin: 8rpx 0; }
|
|
|
|
|
.calc-row { display: flex; justify-content: space-between; padding: 6rpx 0; font-size: 24rpx; }
|
|
|
|
|
.calc-row.calc-sub { color: #64748b; font-size: 22rpx; padding-left: 20rpx; }
|
2026-06-06 22:24:48 +08:00
|
|
|
.calc-row.calc-total { border-top: 1rpx solid #bfdbfe; padding-top: 10rpx; margin-top: 6rpx; font-weight: 700; }
|
|
|
|
|
.calc-row.calc-total.positive { color: #059669; border-top-color: #a7f3d0; }
|
|
|
|
|
.calc-row.calc-total.negative { color: #dc2626; border-top-color: #fecdd3; }
|
2026-05-31 19:04:06 +08:00
|
|
|
.calc-label { color: #374151; }
|
|
|
|
|
.calc-value { font-weight: 600; color: #0f172a; }
|
2026-06-04 11:53:03 +08:00
|
|
|
|
2026-06-06 18:43:52 +08:00
|
|
|
/* 利润计算过程卡片 */
|
|
|
|
|
.calc-card { padding: 24rpx; }
|
|
|
|
|
.calc-formula { font-size: 22rpx; color: #6b7280; margin-bottom: 6rpx; }
|
|
|
|
|
.calc-rate-formula { margin-bottom: 16rpx; }
|
|
|
|
|
.calc-steps { background: #f0fdf4; border-radius: 14rpx; padding: 16rpx; }
|
|
|
|
|
.calc-step-row { display: flex; justify-content: space-between; padding: 8rpx 0; font-size: 26rpx; }
|
|
|
|
|
.calc-step-label { color: #374151; }
|
|
|
|
|
.calc-step-value { font-weight: 600; color: #0f172a; }
|
|
|
|
|
.calc-step-minus .calc-step-label { color: #64748b; }
|
|
|
|
|
.calc-step-minus .calc-step-value { color: #64748b; }
|
|
|
|
|
.calc-step-result { border-top: 2rpx solid #bbf7d0; padding-top: 12rpx; margin-top: 8rpx; }
|
|
|
|
|
.calc-step-result .calc-step-label { font-weight: 700; color: #059669; }
|
|
|
|
|
.calc-step-result .calc-step-value { font-weight: 800; color: #059669; font-size: 30rpx; }
|
|
|
|
|
.calc-step-rate { padding-top: 4rpx; }
|
|
|
|
|
.calc-step-rate .calc-step-label { color: #059669; font-weight: 600; }
|
|
|
|
|
.calc-step-rate .calc-step-value { color: #059669; font-weight: 700; }
|
|
|
|
|
.calc-tax-note { font-size: 20rpx; color: #94a3b8; padding: 2rpx 0 2rpx 16rpx; }
|
|
|
|
|
|
|
|
|
|
/* 订单明细卡片 */
|
|
|
|
|
.order-items-card { padding: 24rpx; }
|
|
|
|
|
.order-items-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
|
|
|
|
|
.order-items-table { min-width: 900rpx; }
|
|
|
|
|
.order-items-header { display: flex; background: #f1f5f9; border-radius: 10rpx; padding: 14rpx 0; }
|
|
|
|
|
.order-items-header .oi-col { font-size: 22rpx; font-weight: 700; color: #475569; }
|
|
|
|
|
.order-items-row { display: flex; padding: 14rpx 0; border-bottom: 1rpx solid #f1f5f9; }
|
|
|
|
|
.order-items-row:last-child { border-bottom: none; }
|
|
|
|
|
.oi-col { padding: 0 8rpx; font-size: 24rpx; color: #334155; display: flex; align-items: center; }
|
|
|
|
|
.oi-product { flex: 3; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
|
|
|
.oi-num { flex: 2; text-align: right; justify-content: flex-end; }
|
|
|
|
|
|
2026-06-04 11:53:03 +08:00
|
|
|
/* 订单附件 */
|
|
|
|
|
.attachment-card { padding: 24rpx; }
|
|
|
|
|
.attachment-grid { display: flex; flex-wrap: wrap; gap: 16rpx; }
|
|
|
|
|
.attachment-item {
|
|
|
|
|
display: flex; flex-direction: column; align-items: center; gap: 8rpx;
|
|
|
|
|
padding: 10rpx; border: 1rpx solid #e5e7eb; border-radius: 14rpx; background: #f9fafb;
|
|
|
|
|
}
|
|
|
|
|
.attachment-thumb { width: 140rpx; height: 140rpx; border-radius: 10rpx; }
|
|
|
|
|
.attachment-name { font-size: 20rpx; color: #6b7280; max-width: 140rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|