|
|
@@ -14,6 +14,23 @@ Draft
|
|
|
3. 显示路线详细信息(上车点、下车点、出发时间、车型、价格)
|
|
|
4. 支持按价格、出发时间排序
|
|
|
|
|
|
+## 页面迁移任务 (从mini-demo迁移)
|
|
|
+- [ ] 迁移首页 (mini-demo/pages/home/home) - 路线查询入口页面
|
|
|
+ - [ ] 轮播海报展示(MVP阶段使用固定的一张静态图片,不从API获取轮播图数组)
|
|
|
+ - [ ] 出行方式选择(大巴拼车、商务车、包车)
|
|
|
+ - [ ] 出发地/目的地选择器(省市区三级联动)
|
|
|
+ - [ ] 日期选择
|
|
|
+ - [ ] **注意:MVP阶段不实现热门路线展示**
|
|
|
+- [ ] 迁移活动选择页面 (mini-demo/pages/select-activity/select-activity) - 活动筛选页面
|
|
|
+ - [ ] 去程活动筛选(前往目的地观看活动)
|
|
|
+ - [ ] 返程活动筛选(从出发地观看活动后返回)
|
|
|
+ - [ ] 活动卡片展示(图片、名称、时间、地点、匹配点)
|
|
|
+- [ ] 迁移班次列表页面 (mini-demo/pages/schedule-list/schedule-list) - 路线列表展示
|
|
|
+ - [ ] 路线列表展示(上车点、下车点、出发时间、车型、价格)
|
|
|
+ - [ ] 排序功能(价格、出发时间)
|
|
|
+ - [ ] 筛选功能
|
|
|
+ - [ ] **注意:MVP阶段不实现司机当前位置显示**
|
|
|
+
|
|
|
## Tasks / Subtasks
|
|
|
- [ ] 创建路线实体和活动实体 (AC: 1, 2, 3)
|
|
|
- [ ] 在 `src/server/modules/routes/` 创建 `route.entity.ts`
|
|
|
@@ -28,8 +45,10 @@ Draft
|
|
|
- [ ] 在 `src/server/api/activities/index.ts` 使用 `createCrudRoutes` 创建通用CRUD路由
|
|
|
- [ ] 配置搜索字段:name, description
|
|
|
- [ ] 配置筛选字段:type (去程活动/返程活动)
|
|
|
-- [ ] 实现前端路线查询页面 (AC: 1, 3, 4)
|
|
|
- - [ ] 在 `src/client/home/pages/` 创建 `RouteList.tsx` 页面
|
|
|
+- [ ] 实现前端页面迁移 (从mini-demo迁移) (AC: 1, 2, 3, 4)
|
|
|
+ - [ ] 迁移首页 - 基于 `mini-demo/pages/home/home` 在 `src/client/home/pages/` 创建 `HomePage.tsx`
|
|
|
+ - [ ] 迁移活动选择页面 - 基于 `mini-demo/pages/select-activity/select-activity` 在 `src/client/home/pages/` 创建 `ActivitySelectPage.tsx`
|
|
|
+ - [ ] 迁移班次列表页面 - 基于 `mini-demo/pages/schedule-list/schedule-list` 在 `src/client/home/pages/` 创建 `ScheduleListPage.tsx`
|
|
|
- [ ] 集成查询表单和结果展示
|
|
|
- [ ] 使用React Query调用通用CRUD API
|
|
|
- [ ] 实现前端活动筛选组件 (AC: 2)
|
|
|
@@ -42,6 +61,15 @@ Draft
|
|
|
|
|
|
## Dev Notes
|
|
|
|
|
|
+### MVP限制说明
|
|
|
+根据 [docs/mvp.md](docs/mvp.md),以下功能在MVP阶段暂时不要实现:
|
|
|
+- **没有途径点** - 路线只包含出发地和目的地
|
|
|
+- **没有热门路线** - 首页不展示热门路线推荐
|
|
|
+- **没有司机当前位置** - 班次列表不显示司机实时位置
|
|
|
+- **没有优惠券和积分商城** - 不实现优惠券和积分功能
|
|
|
+- **没有会员等级** - 不实现会员体系
|
|
|
+- **首页焦点图使用固定静态图** - 轮播图组件保留,但数据使用固定的一张静态图片(不从API获取轮播图数组)
|
|
|
+
|
|
|
### 数据模型
|
|
|
- **Route实体**: 包含上车点、下车点、出发时间、车型、价格等字段 [Source: architecture/data-model-schema-changes.md#路线模型]
|
|
|
- **Activity实体**: 包含活动名称、描述、类型(去程/返程)、开始日期、结束日期等字段 [Source: architecture/data-model-schema-changes.md#活动模型]
|
|
|
@@ -57,7 +85,10 @@ Draft
|
|
|
### 文件位置
|
|
|
- **后端实体**: `src/server/modules/routes/route.entity.ts`, `src/server/modules/activities/activity.entity.ts` [Source: architecture/source-tree.md#实际项目结构]
|
|
|
- **API路由**: `src/server/api/routes/index.ts`, `src/server/api/activities/index.ts` [Source: architecture/source-tree.md#实际项目结构]
|
|
|
-- **前端页面**: `src/client/home/pages/RouteList.tsx` [Source: architecture/source-tree.md#实际项目结构]
|
|
|
+- **前端页面**:
|
|
|
+ - `src/client/home/pages/HomePage.tsx` (首页)
|
|
|
+ - `src/client/home/pages/ActivitySelectPage.tsx` (活动选择页面)
|
|
|
+ - `src/client/home/pages/ScheduleListPage.tsx` (班次列表页面) [Source: architecture/source-tree.md#实际项目结构]
|
|
|
- **前端组件**: `src/client/home/components/ActivityFilter.tsx` [Source: architecture/source-tree.md#实际项目结构]
|
|
|
- **共享类型**: `src/share/route.types.ts`, `src/share/activity.types.ts` [Source: architecture/source-tree.md#实际项目结构]
|
|
|
|
|
|
@@ -74,6 +105,31 @@ Draft
|
|
|
- **认证中间件**: 使用 `authMiddleware` 保护路由 [Source: src/server/api/users/index.ts#L17]
|
|
|
- **前端调用**: 使用React Query调用通用CRUD API,支持分页、搜索、排序
|
|
|
|
|
|
+### mini-demo迁移指导
|
|
|
+- **迁移来源**: 所有页面迁移基于 `mini-demo/pages/` 目录下的对应页面 [Source: docs/prd/epic-005-travel-service-core.md#mini-demo页面分析]
|
|
|
+- **技术栈转换**: 将mini-demo原生小程序代码转换为Taro + React技术栈
|
|
|
+- **数据集成**: 将模拟数据替换为真实的后端API调用
|
|
|
+- **组件重构**: 保持原有UI体验,但使用项目标准的shadcn/ui组件库
|
|
|
+
|
|
|
+### mini-demo页面结构分析
|
|
|
+**首页 (home/home)**:
|
|
|
+- 轮播海报展示 [Source: mini-demo/pages/home/home.wxml#L4] - **MVP限制:使用固定的一张静态图片,不从API获取轮播图数组**
|
|
|
+- 出行方式选择(大巴拼车、商务车、包车) [Source: mini-demo/pages/home/home.wxml#L26]
|
|
|
+- 出发地/目的地选择器(省市区三级联动) [Source: mini-demo/pages/home/home.wxml#L37]
|
|
|
+- 日期选择 [Source: mini-demo/pages/home/home.wxml#L66]
|
|
|
+- 热门路线展示 [Source: mini-demo/pages/home/home.wxml#L78] - **MVP限制:不实现**
|
|
|
+
|
|
|
+**活动选择页面 (select-activity/select-activity)**:
|
|
|
+- 去程活动筛选(前往目的地观看活动) [Source: mini-demo/pages/select-activity/select-activity.wxml#L12]
|
|
|
+- 返程活动筛选(从出发地观看活动后返回) [Source: mini-demo/pages/select-activity/select-activity.wxml#L43]
|
|
|
+- 活动卡片展示(图片、名称、时间、地点、匹配点) [Source: mini-demo/pages/select-activity/select-activity.wxml#L22]
|
|
|
+
|
|
|
+**班次列表页面 (schedule-list/schedule-list)**:
|
|
|
+- 路线列表展示(上车点、下车点、出发时间、车型、价格)
|
|
|
+- 排序功能(价格、出发时间)
|
|
|
+- 筛选功能
|
|
|
+- **MVP限制:不显示司机当前位置**
|
|
|
+
|
|
|
### Testing
|
|
|
**测试要求**:
|
|
|
- **单元测试位置**: `__tests__/` 文件夹与源码并列 [Source: architecture/testing-strategy.md#单元测试]
|
|
|
@@ -90,6 +146,9 @@ Draft
|
|
|
## Change Log
|
|
|
| Date | Version | Description | Author |
|
|
|
|------|---------|-------------|--------|
|
|
|
+| 2025-10-15 | 1.4 | 补充MVP文档中标识为暂时不要的页面元素 | Bob (Scrum Master) |
|
|
|
+| 2025-10-15 | 1.3 | 明确迁移来源为mini-demo并添加页面结构分析 | Bob (Scrum Master) |
|
|
|
+| 2025-10-15 | 1.2 | 添加页面迁移任务和具体页面实现 | Bob (Scrum Master) |
|
|
|
| 2025-10-15 | 1.1 | 更新为使用通用CRUD服务 | Bob (Scrum Master) |
|
|
|
| 2025-10-15 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
|
|