Files
inkreach-official-website/apps/website/docs/superpowers/specs/2026-06-02-nav-mega-menu-design.md
T
yeuimu 6c61a4e871 feat(deploy): production deployment setup and fixes
- Debian-based api image (bookworm-slim), docker/debian mirrors, prisma
  binaryTargets for openssl 3.0
- nginx: admin SPA under /admin, TLS via acme.sh (ZeroSSL) + auto-renewal
  cron, http->https redirect
- prisma: add origin_goods.delisted migration, sync missing schema
  (good_image/tag_font_color/good_tags), fix users.createdAt Timestamptz
- api: CORS wildcard reflection, helmet CORP cross-origin, price
  backfill in persistProductDetail, categoryIcon ancestor fallback,
  mediaByColor per-color gallery in public goods detail
- admin: /admin base path (vite + router)
- import-data.mjs: udt_name casting, serial sequence advance fix
2026-08-26 14:23:09 +08:00

134 lines
3.8 KiB
Markdown
Raw 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.
# Nav Mega Menu Design Spec
## Overview
仿照 HiCustom 首页导航栏的"选品推荐"和"解决方案"两个导航项的下拉菜单设计,为 InkReach 官网添加类似功能。数据当前使用 mock 模拟,后续通过后台 API 获取。
## Data Structures
```typescript
interface RecommendCategory {
id: number;
title: string;
active?: boolean;
items: RecommendItem[];
}
interface RecommendItem {
id: number;
title: string;
image: string;
link: string;
}
interface SolutionColumn {
id: number;
title: string;
links: SolutionLink[];
}
interface SolutionLink {
id: number;
title: string;
link: string;
tag?: 'hot' | 'new';
}
interface NavBanner {
image: string;
link: string;
title: string;
}
```
## Mock Data
### 选品推荐
| 分类 | 内容项 |
|------|--------|
| 热卖推荐 | T恤、卫衣、手机壳、马克杯、帆布画、抱枕 |
| 新品上架 | 棒球帽、双肩包、鼠标垫、宠物围巾、积木拼图、表带 |
| 节日专区 | 圣诞系列、万圣节系列、情人节系列、春节系列 |
每个内容项包含 banner 占位图、标题、链接。
### 解决方案
| 列 | 链接项 |
|----|--------|
| 跨境电商 | Amazon 卖家方案、Temu 卖家方案、eBay 卖家方案、速卖通方案 |
| 独立站 | Shopify 方案、WooCommerce 方案、品牌出海方案 |
| 定制场景 | 礼品定制、宠物定制、二次元周边、婚庆定制、团体定制 |
| 服务支持 | 设计工具、供应链服务、一件代发、售后保障 |
右侧附带广告 banner。
## Component Architecture
```
app/components/
AppHeader.vue
nav/
NavMegaMenu.vue
NavColumnMenu.vue
app/composables/
useNavData.ts
```
### AppHeader.vue (改造)
在现有导航中加入"选品推荐"和"解决方案"两个导航项,hover 时展示对应下拉面板。移动端在抽屉内用手风琴折叠样式展示。
### NavMegaMenu.vue
选品推荐下拉面板。桌面端:左侧分类列表 + 右侧卡片网格(2 列,每卡片含图片和标题)。hover 左侧分类时切换右侧内容。
### NavColumnMenu.vue
解决方案下拉面板。桌面端:多列链接分组 + 可选广告 banner。每列有标题和链接列表,链接可带 HOT/NEW 标签。
### useNavData.ts
导航数据管理 composable。当前返回 mock 数据,后续替换为 API 调用。暴露:
- `recommendCategories: Ref<RecommendCategory[]>`
- `solutionColumns: Ref<SolutionColumn[]>`
- `solutionBanner: Ref<NavBanner | null>`
- `activeRecommendIndex: Ref<number>`
- `setActiveRecommend(index: number): void`
## Interaction Behavior
### Desktop (>= 1024px)
- Hover 导航项展开下拉面板,鼠标离开关闭
- 选品推荐:hover 左侧分类项切换右侧内容区
- 解决方案:纯展示,点击链接跳转
- 下拉面板出现在导航栏下方,有过渡动画
### Mobile (< 1024px)
- 手风琴折叠样式,点击展开/收起
- 选品推荐:展开后显示分类标签切换
- 解决方案:展开后直接显示链接列表
## Visual Design
- 下拉面板:白色背景,圆角 0.5rem,阴影 `0 4px 25px rgba(179, 185, 191, 0.3)`
- 选品推荐面板宽度约 800px
- 解决方案面板宽度自适应列数(约 700px)
- 卡片 hover 时图片轻微放大(scale 1.05
- 链接 hover 时变为主题色(#FF6800
- HOT 标签:红色背景
- NEW 标签:绿色背景
- 面板展开/收起使用 opacity + translateY 过渡动画
## Implementation Tasks
- [ ] 创建 `useNavData.ts` composable(含 mock 数据和类型定义)
- [ ] 创建 `NavMegaMenu.vue` 选品推荐下拉组件
- [ ] 创建 `NavColumnMenu.vue` 解决方案下拉组件
- [ ] 改造 `AppHeader.vue` 集成新导航项
- [ ] 更新 `docs/references/structs.md`