Files
Neo-ZQYY/docs/h5_ui/pages/board-finance-style-map.md
2026-03-15 10:15:02 +08:00

403 lines
26 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 |