Files
backend/docs/09-UI设计方案.md
34047007@qq.com a6cd99a4ca
CI / backend (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
feat: initial commit - oncology literature search platform
OncoLit: a multi-tenant oncology literature search, feed, and
collaboration platform. Built with FastAPI + Vue 3 + PostgreSQL.
Includes PubMed pipeline, drug approvals, AI summaries, and
systematic review tools.
2026-07-27 07:59:18 +08:00

48 KiB
Raw Permalink Blame History

UI 设计方案

零、两种布局模式

系统有两种完全不同的布局,对应两种用户状态:

未登录(Public Layout 已登录(App Layout
目标 展示价值 → 引导注册 个性化推送 → 深度使用
Header 透明/半透明,导航链接 固定深色,面包屑 + 头像
侧边栏 有(菜单导航)
内容 公开推荐、热榜、Marketing 页 个人 Feed、收藏、团队
Footer 有(About/Pricing/联系方式) 无(空间留给内容)
参考 deerlit.com / arxivdaily.com Notion / Linear 的 App 内体验
未登录用户看到的:                    登录后看到的:

┌──────────────────────┐            ┌────┬─────────────────────┐
│  Header (透明)        │            │    │  Header (深色固定)   │
│  首页 | 每日精选 | 搜索 │            │ 侧 │                     │
├──────────────────────┤            │    ├─────────────────────┤
│                      │            │ 边 │                     │
│   🎯 Hero Section    │            │    │   个性化 Feed        │
│   "全球肿瘤学进展"    │            │ 栏 │   收藏 / 团队 / 设置  │
│                      │            │    │                     │
├──────────────────────┤            │    │                     │
│   📰 今日精选文献     │            │    │                     │
│   卡片瀑布流          │            └────┴─────────────────────┘
│                      │
│   🔥 本周热榜         │
│                      │
├──────────────────────┤
│   Footer             │
│   定价 | 关于 | 联系  │
└──────────────────────┘

零-B:未登录公开页面设计(Public Layout

B.1 首页(Landing Page

┌──────────────────────────────────────────────────────────────┐
│  Header: [🔬 肿瘤科文献中心]     [每日精选] [搜索] [登录] [注册] │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│         ┌─────────────────────────────────────┐              │
│         │                                      │              │
│         │  全球肿瘤学进展,每日自动推送          │              │
│         │                                      │              │
│         │  覆盖 NEJM/Lancet/JAMA/JCO 等         │              │
│         │  100+ 肿瘤学期刊 · 每日精选 60+ 篇     │              │
│         │                                      │              │
│         │   [  免费注册  ]   [  浏览今日精选  ]  │              │
│         │                                      │              │
│         └─────────────────────────────────────┘              │
│                                                               │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│  📰 今日肿瘤学精选 (2025-07-04)                                │
│                                                               │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐        │
│  │ 文献卡片  │ │ 文献卡片  │ │ 文献卡片  │ │ 文献卡片  │        │
│  │          │ │          │ │          │ │          │        │
│  │ NSCLC    │ │ 乳腺癌   │ │ 结直肠癌 │ │ 免疫治疗 │        │
│  │ NEJM     │ │ Lancet   │ │ JCO      │ │ JAMA Onc │        │
│  │ 3期 OS   │ │ HER2+    │ │ MSI-H    │ │ PD-L1    │        │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘        │
│  ... (2行 × 4列 = 8篇卡片)                                    │
│                                                               │
│  [  查看全部今日文献 →  ]                                     │
│                                                               │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│  🔥 本周热榜                                                   │
│                                                               │
│  1. Osimertinib联合化疗 FLAURA2 OS [NEJM]   🔥 2,341 阅读     │
│  2. CAR-T 实体瘤新突破 [Nature Medicine]      🔥 1,892 阅读     │
│  3. ctDNA MRD 指导结肠癌辅助化疗 [JCO]        🔥 1,567 阅读     │
│  ...                                                          │
│                                                               │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│  🎯 按癌种浏览                                                 │
│                                                               │
│  [肺癌] [乳腺癌] [结直肠癌] [胃癌] [肝癌] [食管癌]              │
│  [胰腺癌] [前列腺癌] [妇科肿瘤] [头颈癌] [血液肿瘤]             │
│  [黑色素瘤] [脑肿瘤] [肉瘤] [儿童肿瘤]                         │
│                                                               │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│  💬 用户怎么说                                                 │
│  "每天早上查房前5分钟,看完全世界最重要的肿瘤学进展"              │
│  —— 王主任,北京协和医院肿瘤内科                                │
│                                                               │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│  📊 数据一览                                                   │
│  累计收录 638 万篇  |  覆盖 127 本肿瘤学期刊  |  日均更新 62 篇  │
│                                                               │
├──────────────────────────────────────────────────────────────┤
│  Footer                                                        │
│  © 2025 肿瘤科文献中心  |  关于我们  |  定价  |  帮助  |  联系  │
└──────────────────────────────────────────────────────────────┘
组件 用途
自定义 Hero Section 价值主张 + CTA 按钮
n-grid (cols=4, x-gap=16) 文献卡片瀑布流
n-card (hoverable) 每篇推荐文献
n-tag 癌种/期刊标签
n-button (type=primary, size=large) 注册 CTA
n-button (type=default, ghost) "浏览今日精选"(不强制注册)
n-list + n-thing 热榜排行
n-statistic 底部数据展示

B.2 每日精选页(公开全文浏览)

┌──────────────────────────────────────────────────────────────┐
│  ← 首页    📰 今日肿瘤学精选    2025-07-04    [🔍 搜索...]    │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│  快捷过滤:[全部] [NSCLC] [乳腺癌] [免疫治疗] [3期] [NEJM]     │
│                                                               │
│  ┌───────────────────────────────────────────────────────┐   │
│  │ 文献卡片 1                                              │   │
│  │ Osimertinib联合化疗对比单药一线治疗EGFR突变NSCLC        │   │
│  │ Ramalingam SS | NEJM | 2025-07-03                      │   │
│  │ [NSCLC] [EGFR] [奥希替尼] [3期] [OS]                    │   │
│  │                                                        │   │
│  │ 🔬 奥希替尼联合化疗对比单药,中位OS延长6.3个月           │   │
│  │                                                        │   │
│  │ [📄 查看摘要] [🔗 PubMed] [⭐ 登录后收藏]                │   │
│  └───────────────────────────────────────────────────────┘   │
│  ...                                                          │
│                                                               │
│  [  加载更多...  ]                                            │
│                                                               │
│  ┌───────────────────────────────────────────────────────┐   │
│  │ 🔒 注册后你可以:                                        │   │
│  │  ✅ 设置关注领域,精准推送                                │   │
│  │  ✅ 收藏文献 + 笔记 + 导出                               │   │
│  │  ✅ 每日 7:00 微信/邮件推送                              │   │
│  │  ✅ 科室团队共享 + Journal Club                          │   │
│  │                                                        │   │
│  │  [  免费注册 (30秒)  ]                                  │   │
│  └───────────────────────────────────────────────────────┘   │
│                                                               │
└──────────────────────────────────────────────────────────────┘

设计要点

  • 公开页可以浏览全部每日精选文献(无需登录)
  • 查看摘要点展开,不跳页
  • 收藏/导出/笔记等操作显示"登录后可用" → 自然转化
  • 每滚动一屏后插入一个轻量的 CTA 提醒条
  • 不给 PDF 全文链接(仅登录用户可用),防止被爬

B.3 文献详情(公开版)

公开版文献详情:
  ✅ 标题 + 作者 + 期刊 + 日期 + DOI/PMID
  ✅ 中英文摘要全文
  ✅ AI 一句话总结
  ✅ 全部标签(点击可搜索同类文献)
  ✅ PubMed 原始链接
  ❌ PDF 全文(仅登录)
  ❌ 收藏/笔记/导出(仅登录)
  ❌ AI 详细解读(仅登录)
  ❌ 分享到科室(仅登录)

底部固定条:
  ┌─────────────────────────────────────────────┐
  │ 🔒 注册后查看PDF全文、收藏、导出、AI解读     │
  │                         [  免费注册  ]       │
  └─────────────────────────────────────────────┘

B.4 定价页

┌──────────────────────────────────────────────────────────────┐
│ 📊 定价方案                                                    │
│                                                               │
│ ┌──────────┬──────────┬──────────┬──────────┬──────────────┐ │
│ │  Free    │  Pro     │  Team    │  Business │  Enterprise  │ │
│ │  免费     │  ¥35/月   │  ¥70/人/月│  ¥140/人/月│  定制        │ │
│ ├──────────┼──────────┼──────────┼──────────┼──────────────┤ │
│ │ 500MB    │ 10GB     │ 无限     │ 无限     │ 无限           │ │
│ │ 1000篇   │ 10000篇  │ 无限     │ 无限     │ 无限           │ │
│ │ 基础导入 │ 高级导入 │ ✅       │ ✅       │ ✅             │ │
│ │ 1人      │ 1人      │ 团队协作 │ RBAC     │ 专属实例       │ │
│ │ ❌       │ ❌       │ ❌       │ SSO      │ 私有部署       │ │
│ │ ❌       │ ❌       │ ❌       │ 审批流   │ SLA            │ │
│ ├──────────┼──────────┼──────────┼──────────┼──────────────┤ │
│ │[开始使用]│[订阅]    │[订阅]    │[订阅]    │[联系销售]     │ │
│ └──────────┴──────────┴──────────┴──────────┴──────────────┘ │
└──────────────────────────────────────────────────────────────┘

B.5 关于页 + 帮助中心

  • 产品介绍、团队背景
  • FAQ(怎么设置关注领域?和 Zotero 比有什么优势?)
  • 数据来源说明(PubMed FTP、MeSH
  • 联系方式

B.6 SEO 优化

每个公开文献详情页都是独立的 SEO 入口

/scilit/literature/39701234
  → 标题: "Osimertinib联合化疗对比单药一线治疗EGFR突变NSCLC: FLAURA2 OS结果"
  → meta description: AI 一句话总结
  → 结构化数据: Schema.org/ScholarlyArticle
  → Google Scholar / 百度学术 可索引
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ScholarlyArticle",
  "headline": "Osimertinib with or without Chemotherapy...",
  "author": [{ "name": "Ramalingam SS" }],
  "datePublished": "2025-07-03",
  "publisher": "New England Journal of Medicine"
}
</script>

用户转化漏斗

访问首页
  │
  ├─→ 浏览今日精选 (无需登录)
  │     │
  │     ├─→ 点进文献详情 → 看摘要/AI总结
  │     │     │
  │     │     ├─→ 点"收藏" → 🔒 提示注册
  │     │     ├─→ 点"导出" → 🔒 提示注册
  │     │     └─→ 点"AI解读" → 🔒 提示注册
  │     │
  │     └─→ 自然流失
  │
  └─→ 点"免费注册"
        │
        └─→ 注册 → 设置关注领域 → 第二天收到推送 → 留存

关键转化点

  1. 首页 → 浏览精选:零摩擦,不用注册
  2. 想收藏/导出 → 弹注册提示("30秒注册,永久保存你的文献")
  3. 注册后引导 → 设置关注领域 → 立即展示"按你的偏好,明天早上会推送约 8 篇必读"
  4. 第二天邮件/微信推送 → 召回

一、整体布局框架(已登录 App Layout)

┌──────────────────────────────────────────────────────────┐
│  Header (固定顶部)  h=48px                                │
│  [🔬 肿瘤科文献中心]                    [🔔] [👤 王主任]  │
├──────────┬───────────────────────────────────────────────┤
│ Sidebar  │  主内容区                                      │
│ w=200px  │                                               │
│ 📅 今日  │  ┌──────────────────────────────────────────┐ │
│   速览   │  │ 🔥 必读 (8篇)                             │ │
│          │  │ ┌──────────────────────────────────────┐ │ │
│ 🔍 搜索  │  │ │ Osimertinib联合化疗OS结果            │ │ │
│          │  │ │ [NEJM] [NSCLC] [EGFR] [3期]        │ │ │
│ 📁 收藏  │  │ └──────────────────────────────────────┘ │ │
│          │  │ ...                                       │ │
│ 👥 团队  │  └──────────────────────────────────────────┘ │
│          │                                               │
│ ⚙️ 设置  │                                               │
└──────────┴───────────────────────────────────────────────┘

Naive UI 组件选型

区域 组件 说明
整体布局 n-layout + n-layout-sider + n-layout-content 经典左右分栏
顶栏 自定义 Headern-breadcrumb + n-avatar + n-badge 固定吸顶
侧边栏 n-menu (vertical, collapsed on mobile) icon + label,支持折叠
主内容 n-card + n-space 组合 内容容器

关键设计决策

暗色/亮色切换Naive UI 内置 n-config-provider + darkTheme,一行代码切换。

移动端适配MVP 先不做移动端。n-layout-sider 在小屏自动隐藏 + 汉堡菜单。


二、核心页面设计

2.1 登录/注册页(简洁型)

┌─────────────────────────────────────────────────┐
│                                                  │
│            🔬 肿瘤科文献中心                       │
│        全球肿瘤学进展,每日自动推送                 │
│                                                  │
│     ┌─────────────────────────────┐             │
│     │  邮箱    [_______________]  │             │
│     │  密码    [_______________]  │             │
│     │  记住我  [✓]                │             │
│     │                             │             │
│     │  [  登  录  ]               │             │
│     │  没有账号?马上注册           │             │
│     └─────────────────────────────┘             │
└─────────────────────────────────────────────────┘
组件 用途
n-card + n-form + n-form-item 登录表单
n-input (type=email/password) 输入框
n-button (type=primary, size=large, block) 登录按钮
n-checkbox "记住我"

设计要点:注册后直接进入领域设置引导页,不跳转多余页面。


2.2 文献速览 — 核心产品页面

┌──────────────────────────────────────────────────────────────┐
│ 📅 文献速览     2025年7月4日    🔴8 🟡22 ⚪32    [🔍 搜索]  │
├──────────────────────────────────────────────────────────────┤
│ ┌─ 🔥 必读 (8篇) ────────────────────────────────────┐     │
│ │                                                     │     │
│ │ ┌───────────────────────────────────────────────┐  │     │
│ │ │ ⭐ Osimertinib + Chemotherapy Final OS        │  │     │
│ │ │ Ramalingam SS, et al. | NEJM | 2025-07-03    │  │     │
│ │ │ [NSCLC] [EGFR] [3期] [OS获益]                 │  │     │
│ │ │ 奥希替尼联合化疗对比单药一线治疗EGFR突变NSCLC  │  │     │
│ │ │ 中位OS延长6.3个月                             │  │     │
│ │ │                              [⭐收藏] [✕不感兴趣]│  │     │
│ │ └───────────────────────────────────────────────┘  │     │
│ │ ... (共8篇)                                        │     │
│ └─────────────────────────────────────────────────────┘     │
│                                                               │
│ ┌─ 🟡 推荐 (22篇) ──────────────────────────────────┐     │
│ │   (默认折叠)                                        │     │
│ └─────────────────────────────────────────────────────┘     │
│ ┌─ ⚪ 相关 (32篇) ──────────────────────────────────┐     │
│ │   (默认折叠)                                        │     │
│ └─────────────────────────────────────────────────────┘     │
└──────────────────────────────────────────────────────────────┘
组件 用途
n-collapse 三级折叠:必读(展开) / 推荐(折叠) / 相关(折叠)
n-card (size=small, hoverable) 每篇文献卡片
n-tag 多色 标签:癌种(蓝) / 靶点(绿) / 研究类型(橙) / 期刊(红)
n-skeleton 加载骨架屏
n-empty 新用户未设置领域时的引导空白页
n-pagination 或 IntersectionObserver Feed 翻页/无限滚动
n-back-top 回到顶部

设计要点

  • 每条文献 5 行信息:标题 + 作者/期刊/日期 + 标签行 + AI 一句话 + 操作按钮
  • hover 浮起,click 进入详情(n-drawer 侧出,不跳页)
  • 空状态:新用户 → "去设置关注领域 →" 引导卡片
  • 右上角统计徽章 "🔴8 🟡22 32"

2.3 文献详情(侧出抽屉更合适)

┌──────────────────────────────────────┐
│  ✕                                   │
│                                       │
│  Osimertinib with or without         │
│  Chemotherapy in EGFR-Mutated        │
│  Advanced NSCLC: FLAURA2 OS Results  │
│                                       │
│  Ramalingam SS, et al.               │
│  NEJM, 2025 Jul 3;393(1):12-25       │
│  PMID: 39701234  DOI: 10.1056/...    │
│                                       │
│  [NSCLC] [EGFR] [奥希替尼] [3期]     │
│                                       │
│  ┌─ 🔬 AI 一句话总结 ────────────┐   │
│  │ 奥希替尼联合化疗对比单药一线   │   │
│  │ 治疗EGFR突变NSCLC,中位OS延长  │   │
│  │ 6.3个月(HR 0.73)AE可控      │   │
│  └───────────────────────────────┘   │
│                                       │
│  ┌ 摘要 │ 我的笔记 │ AI 解读 ┐       │
│  │                             │       │
│  │ Background: EGFR-TKI is...  │       │
│  │ Methods: ...                │       │
│  │ Results: ...                │       │
│  │ Conclusion: ...             │       │
│  │                             │       │
│  └─────────────────────────────┘       │
│                                       │
│  [📥导出] [⭐收藏] [📤分享] [🔗复制]   │
└──────────────────────────────────────┘
组件 用途
n-drawer (width=680px) 原地不跳页的侧出详情
n-tabs 摘要 / 笔记 / AI 解读
n-tag (round, clickable) 标签行,点击跳搜索
n-alert (type=info) AI 一句话总结高亮卡片
n-button-group + n-dropdown 导出下拉
n-popconfirm 删除操作确认

选择 n-drawer 而不是路由跳转的原因:用户看文献是扫描式浏览——打开→看两眼→关闭→下一个。抽屉不打断 Feed 流。


2.4 关注领域设置(转化关键页)

┌──────────────────────────────────────────────────────────────┐
│ ⚙️ 设置关注领域                                               │
│                                                               │
│ 设置你关注的研究方向,每天早上 7:00 自动推送最新文献              │
│                                                               │
│ ┌────────┬─────────────────────────────────────────────────┐ │
│ │        │                                                  │ │
│ │ 癌种   │ ☑ 肺癌                                          │ │
│ │        │   ☑ 非小细胞肺癌                                 │ │
│ │ 靶点   │     ☑ 肺腺癌                                    │ │
│ │        │     ☐ 肺鳞癌                                    │ │
│ │ 治疗   │   ☐ 小细胞肺癌                                  │ │
│ │        │                                                  │ │
│ │ 文献类型│ ☐ 乳腺癌                                        │ │
│ │        │ ☐ 结直肠癌                                      │ │
│ │ 期刊   │ ☑ 胃癌                                          │ │
│ │        │ ☐ 肝癌                               [展开全部]  │ │
│ │        │                                                  │ │
│ └────────┴─────────────────────────────────────────────────┘ │
│                                                               │
│ ┌─────────────────────────────────────┐                      │
│ │ 📊 实时预览                         │                      │
│ │ 按当前设置,近7天可匹配 187 篇文献    │                      │
│ │ 日均 27 篇 | 其中必读约 5-8 篇      │                      │
│ │ [  保存设置  ]                       │                      │
│ └─────────────────────────────────────┘                      │
└──────────────────────────────────────────────────────────────┘
组件 用途
n-anchor (左侧粘性导航) 锚点跳转:癌种/靶点/治疗/文献类型/期刊
n-tree (checkable, cascade) 层级标签多选树
n-card + n-statistic 右侧实时预览面板
n-button (type=primary) 保存

设计要点

  • 这是新用户注册后的第一步(引导流程),也是老用户最常用的设置页
  • 左侧树形标签选择,右侧实时预览匹配数 → 用户边选边看到效果
  • 必填项用 n-badge 标注
  • 首次使用显示引导提示(n-popover

2.5 高级搜索页

┌──────────────────────────────────────────────────────────────┐
│ 🔍 [_______________________________]  [搜索]                  │
│    [中文→MeSH自动翻译 ▼]                                      │
├──────────────────────────────────────────────────────────────┤
│ 左侧筛选面板 (w=240px)               │ 右侧结果列表           │
│                                      │                        │
│ ┌─ 🎯 癌种 ──────────┐              │ 共 1,247 条结果        │
│ │ ☑ 肺癌              │              │                        │
│ │ ☑ NSCLC             │              │ ┌──────────────┐     │
│ │ ☐ SCLC              │              │ │ 文献卡片...   │     │
│ └─────────────────────┘              │ └──────────────┘     │
│ ┌─ 🧬 靶点 ──────────┐              │ ┌──────────────┐     │
│ │ ☑ EGFR              │              │ │ 文献卡片...   │     │
│ │ ☐ ALK               │              │ └──────────────┘     │
│ └─────────────────────┘              │ ...                   │
│ ┌─ 📅 年份 ──────────┐              │                        │
│ │ 2020 ─────●── 2025  │              │ < 1 2 3 ... 25 >     │
│ └─────────────────────┘              │                        │
│ ┌─ 📰 期刊等级 ──────┐              │                        │
│ │ ☑ 🔴 四大            │              │                        │
│ │ ☑ 🟠 肿瘤顶刊        │              │                        │
│ │ ☐ 🟡 专科            │              │                        │
│ └─────────────────────┘              │                        │
│                                      │                        │
│ [  重置筛选  ]                       │                        │
└──────────────────────────────────────────────────────────────┘
组件 用途
n-input + n-auto-complete 搜索输入 + 关键词建议
n-input-number + n-slider (双端) 年份范围
n-checkbox-group 多选过滤器
n-tree (checkable) 癌种标签过滤树
n-pagination 分页
n-empty 空结果
n-skeleton 搜索加载

2.6 科室团队管理页(企业版)

┌──────────────────────────────────────────────────────────────┐
│ 👥 科室团队                         [+ 邀请成员]              │
├──────────────────────────────────────────────────────────────┤
│                                                               │
│ 科室成员 (12人)                                               │
│ ┌────┬──────────┬──────────┬────────┬──────────────────────┐ │
│ │    │ 姓名     │ 角色     │ 亚专业 │ 本周阅读             │ │
│ ├────┼──────────┼──────────┼────────┼──────────────────────┤ │
│ │ 👨 │ 王志强   │ Owner    │ 肺癌   │ ████████ 42篇        │ │
│ │ 👩 │ 李主任   │ Admin    │ 乳腺癌 │ ██████ 31篇          │ │
│ │ 👨 │ 张医生   │ Editor   │ 肺癌   │ ████ 22篇            │ │
│ │ 👩 │ 刘住院   │ Viewer   │ 胃癌   │ ███ 15篇             │ │
│ └────┴──────────┴──────────┴────────┴──────────────────────┘ │
│                                                               │
│ 📁 科室共享文件夹                                              │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 📁 MDT讨论文献 (6篇)     📁 科室晨会文献 (3篇)            │ │
│ │ 📁 2025-07 JC 准备 (2篇)  [+ 新建文件夹]                  │ │
│ └──────────────────────────────────────────────────────────┘ │
│                                                               │
│ 📋 成员动态                                                   │
│ 2025-07-04 10:30  张医生 保存了 文献标题...                   │
│ 2025-07-04 09:15  李主任 分享了 文献标题... 到 MDT讨论文献    │
│ 2025-07-03 16:00  王志强 创建了共享文件夹 JC准备              │
└──────────────────────────────────────────────────────────────┘
组件 用途
n-data-table + n-avatar 成员表格
n-select (内嵌表格) 行内角色切换下拉
n-card + n-grid 共享文件夹卡片网格
n-timeline 成员活动时间线
n-modal 邀请成员弹窗(填邮箱 + 选角色)
n-popconfirm 移除成员确认

2.7 个人收藏页

┌──────────────────────────────────────────────────────────────┐
│ 📁 我的收藏             [+ 新建文件夹]    [≡ 最近] [★ 星标]  │
├──────────┬───────────────────────────────────────────────────┤
│          │                                                    │
│ 📁 全部  │ ┌──────────────────────────────────────────┐     │
│    (42)  │ │ 文献卡片 1                                 │     │
│          │ │ ...                                        │     │
│ 📁 EGFR  │ │                                            │     │
│   耐药   │ │ 文献卡片 N                                 │     │
│    (8)   │ │                                            │     │
│          │ └──────────────────────────────────────────┘     │
│ 📁 准备  │                                                    │
│   汇报   │  3 篇已选中    [移动到文件夹 ▼]  [导出 ▼] [删除]  │
│    (5)   │                                                    │
│          │                                                    │
│ 📁 MDT   │                                                    │
│   讨论   │                                                    │
│    (6)   │                                                    │
└──────────┴───────────────────────────────────────────────────┘
组件 用途
n-tree (左侧) 文件夹树,支持拖拽文献进去
n-checkbox + n-card 每篇文献可选、批量操作
n-dropdown "移动到文件夹"下拉
n-modal 新建文件夹
n-batch 操作栏(fixed bottom 选中 N 篇后的批量工具栏

三、关键页面清单与优先级

页面 路由 优先级 预计组件数
登录/注册 /auth/login, /auth/register P0 1 个页面
每日速览 /feed P0 1 个页面(最复杂)
文献详情 /literature/:id 或 drawer P0 Drawer 组件
领域设置 /settings/interests P0 1 个页面
高级搜索 /search P1 1 个页面
个人收藏 /library P1 1 个页面
期刊浏览 /journals P1 1 个页面
个人中心 /settings/profile P1 1 个页面
科室团队 /team P2 1 个页面
Journal Club /team/journal-club P3 1 个页面
MDT 协作 /team/mdt P3 1 个页面
新药日历 /drug-approvals P3 1 个页面
指南更新 /guidelines P3 1 个页面
平台管理后台 /admin/* P2 5-8 个页面

三-A、移动端自适应策略

决策:一套响应式代码,不做独立移动端 App

理由:移动端 90% 的行为是"扫一眼 Feed → 点开详情 → 收藏/跳过",不需要原生能力。复杂操作(标签树配置、团队管理、批量导出)用户自然在桌面端完成。和 arxivdaily / deerlit 一样,一套 Web 自适应。

两端的布局差异

PC 端 (≥768px)                    移动端 (<768px)

┌───┬──────────────┐              ┌──────────────────┐
│   │              │              │  🔬 肿瘤科  汉堡 ≡ │
│侧 │  Feed 列表   │              ├──────────────────┤
│边 │              │              │                  │
│栏 │              │              │  🔥 必读 (8篇)   │
│   │              │              │  ┌──────────┐    │
│   │              │              │  │ 文献卡片  │    │
│   │              │              │  │ (全宽)   │    │
│   │              │              │  └──────────┘    │
│   │              │              │  ...             │
└───┴──────────────┘              ├──────────────────┤
                                  │ 🏠 🔍 📁 👤     │
                                  │ 速览 搜索 收藏 我│
                                  └──────────────────┘

核心组件响应式行为

组件 PC 端 移动端 (<768px)
整体布局 Sidebar + Content 双栏 顶部 Header + 内容 + 底部 TabBar
导航 n-layout-sider,可折叠 Sidebar 隐藏,底部四Tab 切换
文献卡片 n-grid 双列或单列 全宽单列,信息更紧凑
文献详情 n-drawer (width=680px) n-drawer 全屏 或 router.push 跳页
标签筛选 n-tree 多选树 n-select 下拉 + 横向滑动 n-tag
领域设置 左侧标签树 + 右侧预览 全宽堆叠,树改为 n-collapse 逐级展开
搜索结果 左筛选面板 + 右列表 筛选放在顶部 n-popover,下方结果
团队表格 n-data-table 完整表格 卡片列表 替代表格(头像+名称+角色线)
定价页 四列 n-grid 单列堆叠,上下滚动比较
首页 Hero 大标题 + 背景图 紧凑标题 + 卡片直接露在第一屏

实现方式

// composables/useIsMobile.ts
import { useBreakpoint } from 'vooks'

export function useIsMobile() {
  const breakpoint = useBreakpoint()
  return computed(() => breakpoint.value === 'xs')  // <768px
}
<!-- 响应式网格 -->
<n-grid :cols="4" :x-gap="16" :responsive="{
  '0':    { cols: 1 },   // 手机
  '768':  { cols: 2 },   // 平板
  '1200': { cols: 4 }    // PC
}">
  <n-grid-item v-for="item in literature" :key="item.id">
    <LiteratureCard :item="item" />
  </n-grid-item>
</n-grid>

<!-- 侧边栏移动端隐藏 -->
<n-layout-sider
  v-if="!isMobile"
  collapse-mode="transform"
  :width="200"
  :collapsed-width="64"
  :native-scrollbar="false"
>
  <SideMenu />
</n-layout-sider>

<!-- 底部 TabBar仅移动端 -->
<MobileTabBar v-if="isMobile" />

移动端特有的 UI 微调

微调 说明
点击区域 所有可点击元素最小 44×44px(iOS HIG
卡片间距 移动端卡片间 margin 缩小到 8pxPC 端 16px
标签行 移动端超出 2 行时折叠为 "... +3" 展开
滑动操作 卡片支持左滑:收藏 / 不感兴趣(仿邮件 App)
下拉刷新 Feed 列表顶部下拉刷新当日数据
无限滚动 用 IntersectionObserver 代替 n-pagination,更自然的移动端浏览
搜索框 移动端粘在顶部、输入时全宽展开

不做的

方案 决定 原因
iOS/Android 原生 App 场景不需要原生能力,Web 足够,成本 10x
PWA ⏸️ P2 加 manifest.json + SW 就能装到桌面,但不急
微信小程序 ⏸️ P3 不能跳 PubMed 外链,不适合文献阅读。但可作为引流渠道
微信服务号推送 P1 每日文献推送的微信版。不是移动端应用,是消息渠道
独立移动端 UI 库 Naive UI 一套即可,不要维护两套组件库

四、Naive UI 主题定制

// src/theme.ts
import { GlobalThemeOverrides } from 'naive-ui'

export const themeOverrides: GlobalThemeOverrides = {
  common: {
    primaryColor: '#1a5276',         // 肿瘤科深蓝
    primaryColorHover: '#2471a3',
    primaryColorPressed: '#154360',
    primaryColorSuppl: '#2e86c1',
    borderRadius: '6px',
  },
  Card: {
    borderRadius: '8px',
    paddingMedium: '16px',
  },
  Tag: {
    borderRadius: '4px',
  },
  Layout: {
    siderColor: '#fafbfc',
  },
}

// 暗色模式直接换 Naive UI 内置 darkTheme,不改色值

五、前端项目结构

frontend/src/
├── App.vue
├── main.ts
├── theme.ts                          # Naive UI 主题覆盖
├── router/
│   └── index.ts                      # Vue Router + 路由守卫
├── stores/                           # Pinia
│   ├── auth.ts                       # 认证状态
│   ├── feed.ts                       # Feed 列表 + 筛选条件
│   ├── literature.ts                 # 当前文献 + 搜索
│   └── ui.ts                         # 侧边栏/主题/多标签
├── api/                              # Axios 封装
│   ├── client.ts                     # Axios 实例 + JWT 刷新拦截器
│   ├── auth.ts
│   ├── literature.ts
│   ├── notes.ts
│   ├── team.ts
│   └── subscriptions.ts
├── views/                            # 页面(对应路由)
│   ├── auth/
│   │   └── LoginView.vue
│   ├── feed/
│   │   └── FeedView.vue              # ⭐ 核心页面
│   ├── search/
│   │   └── SearchView.vue
│   ├── library/
│   │   └── LibraryView.vue
│   ├── team/
│   │   └── TeamView.vue
│   └── admin/
│       ├── TenantView.vue
│       └── DashboardView.vue
├── components/                       # 可复用组件
│   ├── literature/
│   │   ├── LiteratureCard.vue        # 文献卡片(Feed/Search/Library 共用)
│   │   ├── LiteratureDetail.vue      # 文献详情 Drawer
│   │   ├── TagBadge.vue              # 单标签 Badge
│   │   └── LiteratureExport.vue      # 导出按钮+下拉
│   ├── feed/
│   │   └── FeedSection.vue           # 一个折叠区(必读/推荐/相关)
│   ├── search/
│   │   └── FilterPanel.vue           # 左侧筛选面板
│   ├── team/
│   │   ├── MemberTable.vue
│   │   └── SharedFolderCard.vue
│   └── common/
│       ├── AiSummary.vue             # AI 总结组件(复用)
│       └── EmptyState.vue            # 空状态引导组件
└── composables/                      # 组合式函数
    ├── useFeed.ts                    # Feed 数据获取+无限滚动
    ├── useSearch.ts                  # 搜索+筛选逻辑
    └── usePermission.ts             # 前端权限检查

六、前端开发阶段

阶段 内容 产出
P1 (2天) Vue项目初始化、Naive UI 配置、主题、路由、Auth Store、登录/注册页、布局框架 前后端联通,能登录,有侧边栏+顶栏的空壳
P1 (1天) FeedView 页面 + LiteratureCard + FeedSection + LiteratureDetail Drawer 核心页可交互
P1 (1天) 领域设置页(标签树多选)+ 搜索页基础版 + 收藏页 三大核心流程跑通
P2 (2天) 高级搜索+筛选面板 + 引用导出 + 期刊浏览 + 个人中心 丰富功能
P2 (2天) 团队空间(成员表/共享文件夹/邀请/动态) 企业版前端完成
P3 (2天) AI 组件 + 新药日历 + JC + MDT 增强功能
P3 (1天) 管理后台(租户/用户/订阅/管道看板) 平台端完成