26 KiB
26 KiB
board-finance.html 完整样式清单
换算公式:rpx = CSS_px × 1.8204(四舍五入到整数)
一、Inline Style 定义
1. Tailwind Config 自定义颜色
| Token | 值 |
|---|---|
| primary | #0052d9 |
| primary-light | #ecf2fe |
| success | #00a870 |
| warning | #ed7b2f |
| error | #e34d59 |
| gray-1 | #f3f3f3 |
| gray-2 | #eeeeee |
| gray-3 | #e7e7e7 |
| gray-4 | #dcdcdc |
| gray-5 | #c5c5c5 |
| gray-6 | #a6a6a6 |
| gray-7 | #8b8b8b |
| gray-8 | #777777 |
| gray-9 | #5e5e5e |
| gray-10 | #4b4b4b |
| gray-11 | #393939 |
| gray-12 | #2c2c2c |
| gray-13 | #242424 |
| fontFamily.sans | 'Noto Sans SC', sans-serif |
2. <style> 中所有选择器及属性
| 选择器 | 属性 | H5 值(px) | 正确 rpx (×1.8204) |
|---|---|---|---|
body |
padding-bottom | 280px | 510rpx |
.safe-area-top |
padding-top | env(safe-area-inset-top, 44px) | 80rpx (fallback) |
.tab-active::after |
width | 24px | 44rpx |
.tab-active::after |
height | 3px | 5rpx |
.tab-active::after |
border-radius | 2px | 4rpx |
.filter-overlay |
z-index | 1000 | — |
.filter-dropdown |
border-radius | 0 0 16px 16px | 0 0 29rpx 29rpx |
.filter-dropdown |
z-index | 1001 | — |
.filter-dropdown |
max-height | 60vh | — |
.summary-header |
padding | 14px 16px | 25rpx 29rpx |
.summary-content |
padding | 16px | 29rpx |
.compare-toggle |
width | 44px | 80rpx |
.compare-toggle |
height | 24px | 44rpx |
.compare-toggle |
border-radius | 12px | 22rpx |
.compare-toggle::after |
width | 20px | 36rpx |
.compare-toggle::after |
height | 20px | 36rpx |
.compare-toggle::after |
top | 2px | 4rpx |
.compare-toggle::after |
left | 2px | 4rpx |
.compare-toggle.active::after |
left | 22px | 40rpx |
.compare-data |
font-size | 12px | 22rpx |
.compare-data |
margin-top | 2px | 4rpx |
.compare-data.show |
gap | 2px | 4rpx |
.tip-overlay |
z-index | 1999 | — |
.tip-toast |
bottom | 100px | 182rpx |
.tip-toast |
left | 16px | 29rpx |
.tip-toast |
right | 16px | 29rpx |
.tip-toast |
border-radius | 12px | 22rpx |
.tip-toast |
padding | 16px | 29rpx |
.tip-toast |
z-index | 2000 | — |
.tip-toast-content |
font-size | 13px | 24rpx |
.tip-toast-content |
line-height | 1.6 | — |
.help-icon |
width | 16px | 29rpx |
.help-icon |
height | 16px | 29rpx |
.help-icon |
font-size | 10px | 18rpx |
.help-icon |
margin-left | 4px | 7rpx |
.card-section-title |
font-size | 13px | 24rpx |
.card-section-title |
margin-bottom | 12px | 22rpx |
.flow-item |
padding | 10px 0 | 18rpx 0 |
.flow-dot |
width | 8px | 15rpx |
.flow-dot |
height | 8px | 15rpx |
.flow-dot |
margin-right | 12px | 22rpx |
.flow-line |
width | 2px | 4rpx |
.flow-line |
height | 16px | 29rpx |
.flow-line |
margin-left | 3px | 5rpx |
.flow-line |
margin-top | -10px | -18rpx |
.flow-line |
margin-bottom | -10px | -18rpx |
.gift-row |
padding | 14px 16px | 25rpx 29rpx |
.gift-row |
border-radius | 12px | 22rpx |
.gift-row |
margin-bottom | 10px | 18rpx |
.gift-tag |
padding | 3px 8px | 5rpx 15rpx |
.gift-tag |
border-radius | 4px | 7rpx |
.gift-tag |
font-size | 11px | 20rpx |
.gift-tag |
margin-left | 6px | 11rpx |
.filter-toc-btn |
width | 40px | 73rpx |
.filter-toc-btn |
height | 40px | 73rpx |
.filter-toc-btn |
border-radius | 8px | 15rpx |
.filter-toc-btn svg |
width | 20px | 36rpx |
.filter-toc-btn svg |
height | 20px | 36rpx |
.toc-dropdown |
top | 108px | 197rpx |
.toc-dropdown |
left | 16px | 29rpx |
.toc-dropdown |
right | 16px | 29rpx |
.toc-dropdown |
border-radius | 16px | 29rpx |
.toc-dropdown |
max-height | 60vh | — |
.toc-dropdown |
z-index | 1001 | — |
.toc-dropdown-header |
padding | 14px 16px | 25rpx 29rpx |
.toc-dropdown-header h4 |
font-size | 14px | 25rpx |
.toc-dropdown-list |
padding | 8px 0 | 15rpx 0 |
.toc-item |
gap | 12px | 22rpx |
.toc-item |
padding | 12px 16px | 22rpx 29rpx |
.toc-item-emoji |
font-size | 18px | 33rpx |
.toc-item-text |
font-size | 14px | 25rpx |
.toc-overlay |
z-index | 1000 | — |
.card-header |
gap | 10px | 18rpx |
.card-header |
margin | -16px -16px 16px -16px | -29rpx -29rpx 29rpx -29rpx |
.card-header |
padding | 12px 16px | 22rpx 29rpx |
.card-header-emoji |
font-size | 18px | 33rpx |
.card-header-title |
font-size | 14px | 25rpx |
.card-header-title |
margin-bottom | 2px | 4rpx |
.card-header-desc |
font-size | 11px | 20rpx |
.card-section |
margin-bottom | 42px | 76rpx |
.card-section |
padding-bottom | 28px | 51rpx |
.card-section |
border-radius | 8px | 15rpx |
.card-section::after |
height | 14px | 25rpx |
.card-section::after |
background-size | 16px 14px | 29rpx 25rpx |
.sticky-section-header |
top | 58px | 106rpx |
.sticky-section-header |
left | 70px | 127rpx |
.sticky-section-header |
right | 22px | 40rpx |
.sticky-section-header |
height | 40px | 73rpx |
.sticky-section-header |
z-index | 15 | — |
.sticky-section-header |
padding | 0 12px | 0 22rpx |
.sticky-section-header |
gap | 8px | 15rpx |
.sticky-section-header |
border-radius | 0 6px 6px 0 | 0 11rpx 11rpx 0 |
.sticky-section-emoji |
font-size | 18px | 33rpx |
.sticky-section-content |
gap | 8px | 15rpx |
.sticky-section-title |
font-size | 14px | 25rpx |
.sticky-section-desc |
font-size | 11px | 20rpx |
.sticky-section-filters |
gap | 8px | 15rpx |
.sticky-filter-tag |
font-size | 11px | 20rpx |
.sticky-filter-tag |
padding | 4px 8px | 7rpx 15rpx |
.sticky-filter-tag |
border-radius | 6px | 11rpx |
.ai-insight-section |
margin | 16px -16px -16px -16px | 29rpx -29rpx -29rpx -29rpx |
.ai-insight-section |
padding | 16px | 29rpx |
.ai-insight-icon |
width | 24px | 44rpx |
.ai-insight-icon |
height | 24px | 44rpx |
.ai-insight-icon |
border-radius | 8px | 15rpx |
.ai-insight-icon |
font-size | 14px | 25rpx |
.ai-insight-header |
gap | 8px | 15rpx |
.ai-insight-header |
margin-bottom | 12px | 22rpx |
.ai-insight-title |
font-size | 13px | 24rpx |
二、Body 区域 Tailwind Class 映射
1. 顶部 Tab 导航(.safe-area-top 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 导航容器 | bg-white sticky top-0 z-20 shadow-sm |
— | — |
| Tab 行 | flex border-b border-gray-2 |
— | — |
| 单个 Tab | flex-1 py-3 text-center text-sm font-medium |
py: 12px, font: 14px/20px | py: 22rpx, font: 26rpx/36rpx |
| 激活 Tab | 同上 + .tab-active(CSS 定义) |
— | — |
| 非激活 Tab | 同上 + text-gray-7 |
color: #8b8b8b | — |
2. 筛选栏(#filterBar 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 筛选栏容器 | bg-gray-1 sticky top-[44px] z-10 px-4 py-2 border-b border-gray-2 |
px: 16px, py: 8px, top: 44px | px: 29rpx, py: 14rpx, top: 80rpx |
| 内部白色容器 | bg-white rounded-lg p-1.5 flex gap-2 border border-gray-200 |
p: 6px, gap: 8px, radius: 8px | p: 11rpx, gap: 14rpx, radius: 14rpx |
| 目录按钮 | .filter-toc-btn(CSS 定义) |
40×40px, radius: 8px | 73×73rpx, radius: 15rpx |
| 时间筛选按钮 | flex-1 px-3 py-2 bg-gray-100 rounded text-sm text-gray-700 flex items-center justify-center gap-1 border border-gray-200 |
px: 12px, py: 8px, font: 14px, gap: 4px, radius: 4px | px: 22rpx, py: 14rpx, font: 26rpx, gap: 7rpx, radius: 7rpx |
| 区域筛选按钮 | flex-1 px-3 py-2 bg-gray-50 rounded text-sm text-gray-700 flex items-center justify-center gap-1 border border-gray-200 |
同上 | 同上 |
| 下拉箭头 SVG | w-4 h-4 text-gray-500 / text-gray-5 |
16×16px | 29×29rpx |
| 环比开关容器 | flex items-center gap-2 px-2 |
gap: 8px, px: 8px | gap: 14rpx, px: 14rpx |
| 环比文字 | text-xs text-gray-7 |
font: 12px/16px | font: 22rpx/29rpx |
| 环比开关 | .compare-toggle(CSS 定义) |
44×24px | 80×44rpx |
3. 经营一览(#section-overview 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 板块容器 | summary-gradient mx-4 mt-4 mb-8 rounded-lg text-white overflow-hidden |
mx: 16px, mt: 16px, mb: 32px, radius: 8px | mx: 29rpx, mt: 29rpx, mb: 58rpx, radius: 14rpx |
| 板块头 | .summary-header flex items-start gap-3 |
gap: 12px; padding: 14px 16px (CSS) | gap: 22rpx; padding: 25rpx 29rpx |
| 板块头 emoji | text-xl |
20px/28px | 36rpx/51rpx |
| 板块头标题 | text-base font-semibold text-white |
16px/24px | 29rpx/44rpx |
| 板块头副标题 | text-xs text-white/50 mt-0.5 |
12px/16px, mt: 2px | 22rpx/29rpx, mt: 4rpx |
| 板块正文 | .summary-content |
padding: 16px (CSS) | padding: 29rpx |
| 小节标签 | text-xs text-white/70 font-medium |
12px/16px | 22rpx/29rpx |
| 小节副标签 | text-xs text-white/40 |
12px/16px | 22rpx/29rpx |
| 收入概览 grid | grid grid-cols-3 gap-3 mb-3 |
gap: 12px, mb: 12px | gap: 22rpx, mb: 22rpx |
| 指标标签 | text-white/60 text-xs |
12px/16px | 22rpx/29rpx |
| 指标标签行 | flex items-center justify-center mb-1 |
mb: 4px | mb: 7rpx |
| 大数字 | text-xl font-bold text-white |
20px/28px | 36rpx/51rpx |
| 红色大数字 | text-xl font-bold text-red-500/85 |
20px/28px | 36rpx/51rpx |
| 灰色大数字 | text-xl font-bold text-gray-300 |
20px/28px | 36rpx/51rpx |
| 成交收入行 | bg-white/10 rounded-xl px-4 py-3 flex justify-between items-center |
px: 16px, py: 12px, radius: 12px | px: 29rpx, py: 22rpx, radius: 22rpx |
| 成交收入标签 | text-white/70 text-sm |
14px/20px | 26rpx/36rpx |
| 成交收入数字 | text-xl font-bold text-gray-100 |
20px/28px | 36rpx/51rpx |
| 分隔线 | border-t border-white/10 my-4 |
my: 16px | my: 29rpx |
| 现金流水 grid | grid grid-cols-2 gap-3 |
gap: 12px | gap: 22rpx |
| 现金流水卡片 | bg-white/5 rounded-xl p-3 text-center |
p: 12px, radius: 12px | p: 22rpx, radius: 22rpx |
| 现金流水数字 | text-lg font-bold text-gray-100 |
18px/28px | 33rpx/51rpx |
| 对比数据 SVG | w-3 h-3 |
12×12px | 22×22rpx |
4. 预收资产(#section-recharge 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 板块容器 | bg-white rounded-lg p-4 border border-gray-200 card-section |
p: 16px, radius: 8px (CSS card-section) | p: 29rpx, radius: 15rpx |
| 板块头 | .card-header(CSS 定义) |
gap: 10px, p: 12px 16px | gap: 18rpx, p: 22rpx 29rpx |
| 板块头 emoji | .card-header-emoji |
font: 18px | font: 33rpx |
| 板块头标题 | .card-header-title |
font: 14px, mb: 2px | font: 25rpx, mb: 4rpx |
| 板块头描述 | .card-header-desc |
font: 11px | font: 20rpx |
| 小节标题 | .card-section-title |
font: 13px, mb: 12px | font: 24rpx, mb: 22rpx |
| 表格容器 | border border-gray-200 rounded-lg overflow-hidden |
radius: 8px | radius: 14rpx |
| 储值卡充值行 | bg-gray-50 px-4 py-3 flex justify-between items-center border-b border-gray-100 |
px: 16px, py: 12px | px: 29rpx, py: 22rpx |
| 储值卡标签 | text-sm text-gray-700 font-medium |
14px/20px | 26rpx/36rpx |
| 储值卡大数字 | text-lg font-bold text-gray-900 |
18px/28px | 33rpx/51rpx |
| 三列 grid | bg-white px-4 py-3 grid grid-cols-3 gap-3 border-b border-gray-100 |
px: 16px, py: 12px, gap: 12px | px: 29rpx, py: 22rpx, gap: 22rpx |
| 三列小标签 | text-xs text-gray-500 |
12px/16px | 22rpx/29rpx |
| 三列小标签行 | flex items-center justify-center gap-0.5 mb-1 |
gap: 2px, mb: 4px | gap: 4rpx, mb: 7rpx |
| 三列数值 | text-sm font-medium text-gray-700 |
14px/20px | 26rpx/36rpx |
| 小帮助图标 | .help-icon .help-icon-dark text-[9px] |
9px (font) | 16rpx |
| 储值卡余额行 | bg-gray-100 px-4 py-3 flex justify-between items-center |
px: 16px, py: 12px | px: 29rpx, py: 22rpx |
| 赠送卡表头 | grid grid-cols-4 gap-1 px-4 py-2 bg-gray-100 text-sm text-gray-800 font-medium |
gap: 4px, px: 16px, py: 8px, font: 14px | gap: 7rpx, px: 29rpx, py: 14rpx, font: 26rpx |
| 赠送卡数据行 | grid grid-cols-4 gap-1 px-4 py-3 border-b border-gray-100 items-center |
gap: 4px, px: 16px, py: 12px | gap: 7rpx, px: 29rpx, py: 22rpx |
| 赠送卡行标题 | text-sm text-gray-700 font-medium |
14px/20px | 26rpx/36rpx |
| 赠送卡行金额 | text-[13px] text-gray-800 font-semibold |
13px | 24rpx |
| 赠送卡子列数值 | text-sm text-gray-500 |
14px/20px | 26rpx/36rpx |
| 赠送卡余额行 | grid grid-cols-4 gap-1 px-4 py-3 bg-gray-50 items-center |
同上 | 同上 |
| 赠送卡余额金额 | text-[13px] font-bold text-gray-900 |
13px | 24rpx |
| 全类别合计容器 | bg-gray-100 rounded-lg px-4 py-3 flex justify-between items-center border border-gray-200 |
px: 16px, py: 12px, radius: 8px | px: 29rpx, py: 22rpx, radius: 14rpx |
| 全类别合计标签 | text-sm text-gray-700 font-medium |
14px/20px | 26rpx/36rpx |
| 全类别合计副标签 | text-[10px] text-gray-400 |
10px | 18rpx |
| 全类别合计数字 | text-xl font-bold text-gray-900 |
20px/28px | 36rpx/51rpx |
| 对比数据(11px) | compare-data compare-up text-[11px] |
11px | 20rpx |
| 对比数据(10px) | compare-data compare-up text-[10px] |
10px | 18rpx |
| 对比 SVG 小 | w-2.5 h-2.5 |
10×10px | 18×18rpx |
| 对比 SVG 极小 | w-2 h-2 |
8×8px | 15×15rpx |
5. 应计收入(#section-revenue 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 板块容器 | bg-white rounded-lg p-4 border border-gray-200 card-section |
p: 16px, radius: 8px | p: 29rpx, radius: 15rpx |
| 板块头 | .card-header(同上) |
— | — |
| 收入结构标题行 | flex items-center gap-2 mb-3 |
gap: 8px, mb: 12px | gap: 14rpx, mb: 22rpx |
| 收入结构标题 | text-sm font-semibold text-gray-700 |
14px/20px | 26rpx/36rpx |
| 收入结构副标题 | text-xs text-gray-400 |
12px/16px | 22rpx/29rpx |
| 收入结构容器 | mb-5 |
mb: 20px | mb: 36rpx |
| 表格容器 | border border-gray-200 rounded-lg overflow-hidden |
radius: 8px | radius: 14rpx |
| 表头 | grid grid-cols-4 gap-1 px-4 py-2 bg-gray-100 text-xs text-gray-600 |
gap: 4px, px: 16px, py: 8px, font: 12px | gap: 7rpx, px: 29rpx, py: 14rpx, font: 22rpx |
| 表体行(主项) | grid grid-cols-4 gap-1 px-4 py-3 |
gap: 4px, px: 16px, py: 12px | gap: 7rpx, px: 29rpx, py: 22rpx |
| 表体行(子项) | grid grid-cols-4 gap-1 px-4 py-2 text-sm bg-white/50 |
gap: 4px, px: 16px, py: 8px, font: 14px | gap: 7rpx, px: 29rpx, py: 14rpx, font: 26rpx |
| 主项名称 | text-sm text-gray-11 font-semibold |
14px/20px | 26rpx/36rpx |
| 主项数值 | text-base text-gray-10 |
16px/24px | 29rpx/44rpx |
| 主项入账数值 | text-base text-gray-11 font-semibold |
16px/24px | 29rpx/44rpx |
| 子项名称 | text-gray-7 pl-4 |
pl: 16px | pl: 29rpx |
| 子项数值 | text-right text-gray-7 |
— | — |
| 红色优惠数值 | text-right text-base text-red-500/85 |
16px/24px | 29rpx/44rpx |
| 子项红色数值 | text-right text-red-500/85 |
— | — |
| 助教子标签 | text-xs text-gray-6 |
12px/16px | 22rpx/29rpx |
| 对比数据(12px) | compare-data compare-up text-[12px] justify-end |
12px | 22rpx |
| 收入确认标题行 | flex items-center gap-2 mb-3 |
gap: 8px, mb: 12px | gap: 14rpx, mb: 22rpx |
| 收入确认标题 | text-sm font-semibold text-gray-700 |
14px/20px | 26rpx/36rpx |
| 收入确认副标题 | text-xs text-gray-400 |
12px/16px | 22rpx/29rpx |
| 项目正价标题栏 | bg-gray-50 px-4 py-2.5 |
px: 16px, py: 10px | px: 29rpx, py: 18rpx |
| 项目正价标题 | text-sm text-gray-700 font-semibold |
14px/20px | 26rpx/36rpx |
| 项目正价副标题 | text-xs text-gray-500 |
12px/16px | 22rpx/29rpx |
| 竖线缩进区 | bg-white px-4 py-3 border-l-2 border-gray-300 ml-4 mr-4 my-2 |
px: 16px, py: 12px, ml/mr: 16px, my: 8px, border-l: 2px | px: 29rpx, py: 22rpx, ml/mr: 29rpx, my: 14rpx, border-l: 4rpx |
| 缩进区间距 | space-y-2 |
gap: 8px | gap: 14rpx |
| 缩进区项目名 | text-sm text-gray-600 |
14px/20px | 26rpx/36rpx |
| 缩进区数值 | text-sm font-medium text-gray-700 |
14px/20px | 26rpx/36rpx |
| 缩进区红色数值 | text-sm font-medium text-red-500/85 |
14px/20px | 26rpx/36rpx |
| 发生额汇总栏 | bg-gray-100 px-4 py-3 |
px: 16px, py: 12px | px: 29rpx, py: 22rpx |
| 发生额汇总标题 | text-sm text-gray-700 font-semibold |
14px/20px | 26rpx/36rpx |
| 发生额汇总数字 | text-lg font-semibold text-gray-900 |
18px/28px | 33rpx/51rpx |
| 成交收入汇总数字 | text-lg font-bold text-gray-900 |
18px/28px | 33rpx/51rpx |
| 成交收入说明 | text-xs text-gray-500 leading-relaxed |
12px/16px | 22rpx/29rpx |
| 优惠子项副标签 | text-xs text-gray-400 mt-0.5 |
12px/16px, mt: 2px | 22rpx/29rpx, mt: 4rpx |
| 灰色占位 | text-sm font-medium text-gray-400 |
14px/20px | 26rpx/36rpx |
| 收款渠道标签 | text-xs text-gray-500 mb-2 |
12px/16px, mb: 8px | 22rpx/29rpx, mb: 14rpx |
| 竖线缩进区(底部) | bg-white px-4 py-3 border-l-2 border-gray-300 ml-4 mr-4 mb-3 |
mb: 12px | mb: 22rpx |
| 对比数据(11px) | compare-data compare-up text-[11px] |
11px | 20rpx |
6. 现金流入(#section-cashflow 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 板块容器 | bg-white rounded-lg p-4 border border-gray-200 card-section |
p: 16px, radius: 8px | p: 29rpx, radius: 15rpx |
| 板块头 | .card-header(同上) |
— | — |
| 分类标签 | text-xs text-gray-500 font-medium px-1 |
12px/16px, px: 4px | 22rpx/29rpx, px: 7rpx |
| 分类标签(mt) | text-xs text-gray-500 font-medium px-1 mt-3 |
mt: 12px | mt: 22rpx |
| 流水项容器 | flex justify-between items-center border-b border-gray-100 px-2 py-2 |
px: 8px, py: 8px | px: 14rpx, py: 14rpx |
| 流水项名称 | text-sm text-gray-700 font-medium |
14px/20px | 26rpx/36rpx |
| 流水项副标签 | text-xs text-gray-400 mt-0.5 |
12px/16px, mt: 2px | 22rpx/29rpx, mt: 4rpx |
| 流水项数值 | text-base font-semibold text-gray-900 |
16px/24px | 29rpx/44rpx |
| 合计容器 | flex justify-between items-center bg-gray-100 rounded-lg px-4 py-3 mt-2 border-t border-gray-200 |
px: 16px, py: 12px, mt: 8px, radius: 8px | px: 29rpx, py: 22rpx, mt: 14rpx, radius: 14rpx |
| 合计标签 | text-sm text-gray-700 font-semibold |
14px/20px | 26rpx/36rpx |
| 合计数字 | text-lg font-bold text-gray-900 |
18px/28px | 33rpx/51rpx |
7. 现金流出(#section-expense 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 板块容器 | bg-white rounded-lg p-4 border border-gray-200 card-section |
p: 16px, radius: 8px | p: 29rpx, radius: 15rpx |
| 板块头 | .card-header(同上) |
— | — |
| 分类标题 | text-sm font-medium text-gray-700 mb-2 |
14px/20px, mb: 8px | 26rpx/36rpx, mb: 14rpx |
| 分类标题(mb-1) | text-sm font-medium text-gray-700 mb-1 |
mb: 4px | mb: 7rpx |
| 分类副标题 | text-xs text-gray-400 mb-2 |
12px/16px, mb: 8px | 22rpx/29rpx, mb: 14rpx |
| 进货 3列 grid | grid grid-cols-3 gap-2 mb-4 |
gap: 8px, mb: 16px | gap: 14rpx, mb: 29rpx |
| 固定支出 2列 grid | grid grid-cols-2 gap-2 mb-4 |
gap: 8px, mb: 16px | gap: 14rpx, mb: 29rpx |
| 支出卡片 | bg-gray-50 border border-gray-200 rounded-lg px-3 py-3 text-center |
px: 12px, py: 12px, radius: 8px | px: 22rpx, py: 22rpx, radius: 14rpx |
| 支出卡片标签 | text-xs text-gray-500 mb-1 |
12px/16px, mb: 4px | 22rpx/29rpx, mb: 7rpx |
| 支出卡片数值 | text-base font-semibold text-gray-900 |
16px/24px | 29rpx/44rpx |
| 支出合计容器 | bg-gray-100 rounded-lg px-4 py-3 flex justify-between items-center border-t border-gray-200 |
px: 16px, py: 12px, radius: 8px | px: 29rpx, py: 22rpx, radius: 14rpx |
| 支出合计标签 | text-sm font-semibold text-gray-700 |
14px/20px | 26rpx/36rpx |
| 支出合计数字 | text-lg font-bold text-gray-900 |
18px/28px | 33rpx/51rpx |
8. 助教分析(#section-coach 区域)
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 板块容器 | bg-white rounded-lg p-4 border border-gray-200 card-section |
p: 16px, radius: 8px | p: 29rpx, radius: 15rpx |
| 板块头 | .card-header(同上) |
— | — |
| 小节标题 | .card-section-title |
font: 13px, mb: 12px | font: 24rpx, mb: 22rpx |
| 小节标题内 span | text-xs text-gray-500 font-normal |
12px/16px | 22rpx/29rpx |
| 表格容器 | border border-gray-200 rounded-lg overflow-hidden |
radius: 8px | radius: 14rpx |
| 表头 | grid grid-cols-4 gap-1 px-4 py-2 bg-gray-100 text-xs text-gray-600 |
gap: 4px, px: 16px, py: 8px, font: 12px | gap: 7rpx, px: 29rpx, py: 14rpx, font: 22rpx |
| 合计行(基础课) | grid grid-cols-4 gap-1 px-4 py-2 bg-gray-50 border-b border-gray-200 |
gap: 4px, px: 16px, py: 8px | gap: 7rpx, px: 29rpx, py: 14rpx |
| 合计行标签 | text-sm text-gray-700 font-semibold |
14px/20px | 26rpx/36rpx |
| 合计行数值 | text-sm text-gray-900 font-semibold |
14px/20px | 26rpx/36rpx |
| 合计行小时均 | text-sm text-gray-700 |
14px/20px | 26rpx/36rpx |
| 明细行 | grid grid-cols-4 gap-1 px-4 py-2.5 |
gap: 4px, px: 16px, py: 10px | gap: 7rpx, px: 29rpx, py: 18rpx |
| 明细行级别 | text-sm text-gray-9 |
14px/20px | 26rpx/36rpx |
| 明细行数值 | text-base text-gray-9 |
16px/24px | 29rpx/44rpx |
| 明细行小时均 | text-sm text-gray-7 |
14px/20px | 26rpx/36rpx |
| 激励课合计行 | grid grid-cols-4 gap-1 px-4 py-3 |
gap: 4px, px: 16px, py: 12px | gap: 7rpx, px: 29rpx, py: 22rpx |
| 激励课合计标签 | text-sm text-gray-11 font-semibold |
14px/20px | 26rpx/36rpx |
| 激励课合计数值 | text-base text-gray-11 font-semibold |
16px/24px | 29rpx/44rpx |
| 激励课分成数值 | text-base text-gray-900 font-semibold |
16px/24px | 29rpx/44rpx |
| 激励课小时均 | text-base text-gray-9 |
16px/24px | 29rpx/44rpx |
| 对比持平文字 | compare-data text-[12px] text-gray-5 justify-end |
12px | 22rpx |
9. 目录面板(#tocDropdown 区域)
| 元素描述 | Tailwind class / CSS 选择器 | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 遮罩 | .toc-overlay |
z-index: 1000 | — |
| 面板容器 | .toc-dropdown |
top: 108px, left/right: 16px, radius: 16px, max-height: 60vh, z-index: 1001 | top: 197rpx, left/right: 29rpx, radius: 29rpx |
| 面板头 | .toc-dropdown-header |
padding: 14px 16px | padding: 25rpx 29rpx |
| 面板头标题 | .toc-dropdown-header h4 |
font: 14px | font: 25rpx |
| 列表容器 | .toc-dropdown-list |
padding: 8px 0 | padding: 15rpx 0 |
| 列表项 | .toc-item |
gap: 12px, padding: 12px 16px | gap: 22rpx, padding: 22rpx 29rpx |
| 列表项 emoji | .toc-item-emoji |
font: 18px | font: 33rpx |
| 列表项文字 | .toc-item-text |
font: 14px | font: 25rpx |
10. 提示弹窗(.tip-toast 区域)
| 元素描述 | Tailwind class / CSS 选择器 | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 遮罩 | .tip-overlay |
z-index: 1999 | — |
| 弹窗容器 | .tip-toast |
bottom: 100px, left/right: 16px, radius: 12px, padding: 16px, z-index: 2000 | bottom: 182rpx, left/right: 29rpx, radius: 22rpx, padding: 29rpx |
| 弹窗标题行 | flex justify-between items-start mb-2 |
mb: 8px | mb: 14rpx |
| 弹窗标题 | text-sm text-primary font-medium |
14px/20px | 26rpx/36rpx |
| 关闭按钮 SVG | w-5 h-5 |
20×20px | 36×36rpx |
| 弹窗内容 | .tip-toast-content |
font: 13px, line-height: 1.6 | font: 24rpx |
| 帮助图标(白底) | .help-icon |
16×16px, font: 10px, ml: 4px | 29×29rpx, font: 18rpx, ml: 7rpx |
| 帮助图标(暗底) | .help-icon .help-icon-dark |
同上 | 同上 |
三、AI 洞察区域(.ai-insight-section)
| 元素描述 | Tailwind class / CSS 选择器 | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 容器 | .ai-insight-section |
margin: 16px -16px -16px -16px, padding: 16px | margin: 29rpx -29rpx -29rpx -29rpx, padding: 29rpx |
| 头部 | .ai-insight-header |
gap: 8px, mb: 12px | gap: 15rpx, mb: 22rpx |
| 图标 | .ai-insight-icon |
24×24px, radius: 8px, font: 14px | 44×44rpx, radius: 15rpx, font: 25rpx |
| 标题 | .ai-insight-title |
font: 13px | font: 24rpx |
| 内容行 | space-y-2 text-sm text-white/85 |
gap: 8px, font: 14px/20px | gap: 14rpx, font: 26rpx/36rpx |
| 内容标签 | text-white/50 |
— | — |
四、筛选弹窗区域
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| 弹窗遮罩 | .filter-overlay |
z-index: 1000 | — |
| 弹窗容器 | .filter-dropdown |
radius: 0 0 16px 16px, z-index: 1001, max-height: 60vh | radius: 0 0 29rpx 29rpx |
| 弹窗内容 | p-4 space-y-2 |
p: 16px, gap: 8px | p: 29rpx, gap: 14rpx |
| 选项行 | px-4 py-3 text-sm text-gray-10 hover:bg-primary/5 rounded-lg cursor-pointer flex items-center justify-between |
px: 16px, py: 12px, font: 14px, radius: 8px | px: 29rpx, py: 22rpx, font: 26rpx, radius: 14rpx |
| 子区域选项 | 同上 + text-gray-7 pl-8 |
pl: 32px | pl: 58rpx |
| 分组标题选项 | 同上 + font-medium |
— | — |
五、页面级容器
| 元素描述 | Tailwind class | CSS 值(px) | 正确 rpx |
|---|---|---|---|
| body | bg-gray-1 min-h-screen |
bg: #f3f3f3 | — |
| 指标内容容器 | p-4 space-y-4 |
p: 16px, gap: 16px | p: 29rpx, gap: 29rpx |