dingdanquanliucheng/frontend/mini-app/pages/manager/approve-detail/approve-detail.wxss
taiyi 0d0806570a feat: 审批详情页 UI 优化,利润动态颜色和报价明细精简
- 利润卡片根据正负动态切换红/绿色背景,亏损时显示 ↓ 箭头
- 汇总卡片新增总支出行,销售额与支出对比一目了然
- 报价明细精简为销售价→成本→利润小计,删除冗长公式文字
- 退回按钮背景改为浅粉色,视觉区分更明显

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-06 22:24:48 +08:00

208 lines
4.7 KiB
Plaintext

.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 {
border: 1rpx solid transparent;
border-radius: 18rpx;
padding: 24rpx;
text-align: center;
margin-bottom: 20rpx;
}
.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);
}
.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);
}
.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;
}
.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; }
.section-title {
font-size: 26rpx;
color: #64748b;
font-weight: 600;
margin-bottom: 12rpx;
}
.textarea {
min-height: 140rpx;
}
.message {
color: #047857;
padding: 20rpx 24rpx;
}
/* Sticky bottom action bar */
.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 {
background: #fff1f2;
color: #be123c;
border: 2rpx solid #fecdd3;
}
/* 报价明细卡片 */
.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; }
.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; }
.calc-label { color: #374151; }
.calc-value { font-weight: 600; color: #0f172a; }
/* 订单附件 */
.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; }