hulai-website/.claude/api-field-mapping.md
Mimingguang ee078b61bc feat: 后台管理系统完整重构 + 前后台数据联通
- 后台全面引入 Naive UI 组件库,统一 UI 规范
- 前台 usePublicApi 切换到 API 调用(GET /api/content/[key])
- 前后台数据源统一(site_content 表)
- 产品线统一管理(tour/camp/course 三套编辑器)
- 产品数据归一化(itinerary/faq/pricing 格式统一)
- 表单提交 API 改写入 submissions 表
- 新增 submissions 标记已读 API
- site-content PUT 支持 upsert
- 修复前台 bug(stories 路由冲突、占位符警告、selector breadcrumb)
- 消除 PageHero 类型警告(useSEO reactive 修复)
- 25 个前台页面全部 HTTP 200,展示效果不变

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:48:02 +08:00

47 行
3.0 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# API 字段映射表Phase 0 产出)
## 数据源分类
### A类site_content 表JSON KV 存储,已有公开 API: GET /api/content/[key]
| key | 前台页面 | 后台编辑 |
|-----|---------|---------|
| products | products/index, products/[id], summer-camp, selector, destinations/[id], blog/[id] | /admin/products/products |
| versions | products/index | /admin/products/products |
| autumn-products | products/autumn, destinations/[id] | /admin/products/autumn-products |
| winter-products | products/winter, destinations/[id] | /admin/products/winter-products |
| winter-camp | winter-camp | /admin/products/winter-camp |
| summer-camp | summer-camp (原嵌套在 products.summerCamp) | /admin/products/summer-camp |
| courses | courses | /admin/content/courses |
| pricing | pricing | /admin/content/pricing |
| selector | selector | /admin/content/selector |
| destinations-detail | destinations/index, destinations/[id] | /admin/content/destinations-detail |
| calendar | calendar | /admin/content/calendar |
| guides | guides | /admin/content/guides |
| navigation | AppHeader, AppFooter, index | /admin/navigation |
| brand | AppFooter, index, about, qualifications, partners, contact, pricing, stories/index | /admin/content/brand |
| contact | AppFooter, index, about, qualifications, partners, contact | /admin/content/contact |
| images | AppHeader, AppFooter, summer-camp, winter-camp | /admin/content/images |
| about | about, qualifications | /admin/content/about |
| partners | partners | /admin/content/partners |
| customize | customize | /admin/content/customize |
| qualifications | (未直接使用,数据在 about 中) | /admin/content/qualifications |
| xiaohongshu-wall | xiaohongshu/index, xiaohongshu/[id] | /admin/content/xiaohongshu-wall |
| youji | youji/index, youji/[id] | /admin/content/youji |
| seo | useSEO() composable | /admin/content/seo |
| product-lines | (后台侧栏) | /admin/products |
### B类DB 表数据(需创建公开 API
| key | DB 表 | 前台页面 | 需要的响应格式 |
|-----|-------|---------|--------------|
| news | articles (type='news') | news | { articles: [{id, title, summary, content, date, category}] } |
| blog | articles (type='blog') | blog/index, blog/[id] | { articles: [{id, title, subtitle, summary, content, date, author, category, coverImage, tags, relatedProducts, seo}] } |
| reviews | reviews | index, reviews | { summary: {...}, items: [{...}] } |
| faq | faqs | index, products/[id], faq | { categories: [{id, name, questions: [{id, question, answer, relatedLinks}]}] } |
| gallery | gallery_items | gallery | { intro: {...}, categories: [...], works: [...] } |
| stories | stories | stories/index, stories/[id] | { stories: [{id, title, subtitle, summary, coverImage, ...}] } |
## 执行策略
1. A类数据usePublicApi 改为调用 GET /api/content/[key]已有API
2. B类数据暂保持从 site_content 读取JSON 数据已 seed,后续可创建 DB 同步机制
3. 产品数据归一化:统一 itinerary 格式、faq 字段名、补全 pricing