Ver código fonte

📝 docs(stories): update story with completed area picker implementation

- mark all area picker optimization tasks as completed
- add detailed completion notes for the province-city-district selector implementation
- update file list with new AreaPicker component and related test files
- document API route changes supporting area ID query parameters
- reflect home page layout update to compact design with swap functionality
yourname 3 meses atrás
pai
commit
307b3e59e5
1 arquivos alterados com 41 adições e 32 exclusões
  1. 41 32
      docs/stories/005.002.story.md

+ 41 - 32
docs/stories/005.002.story.md

@@ -74,34 +74,34 @@ Ready for Review
     - [x] 首页查询 → 活动选择 → 班次列表完整流程
     - [x] 省市区三级联动功能测试
     - [x] 路线类型动态判断逻辑测试
-- [ ] 优化首页出发地目的地选择器布局 (UI/UX优化)
-  - [ ] 创建弹出层选择器组件 `AreaPicker.tsx`
-    - [ ] 组件位置:`mini/src/components/AreaPicker.tsx`
-    - [ ] 功能:省市区三级联动选择器,模仿mini-demo的 `picker mode="multiSelector"` 交互
-    - [ ] 集成现有省市区API:`/api/v1/areas/provinces`, `/api/v1/areas/cities`, `/api/v1/areas/districts`
-    - [ ] 支持弹出层显示/隐藏控制
-    - [ ] 支持省市区数据动态加载(省份 → 城市 → 区县)
-    - [ ] 支持选择确认和取消操作
-    - [ ] 显示已选择的省市区文本
-  - [ ] 更新首页布局和交互逻辑
-    - [ ] 移除现有的平铺 `AreaCascader` 和 `LocationSearch` 组件
-    - [ ] 添加出发地/目的地选择按钮,点击触发弹出层
-    - [ ] 布局优化:从当前的多行平铺改为一行紧凑布局(出发地 + 交换按钮 + 目的地)
-    - [ ] 显示已选择的省市区文本(如"北京市朝阳区")
-    - [ ] 添加交换出发地和目的地功能
-  - [ ] 简化首页查询逻辑
-    - [ ] 修改 `SearchParams` 接口:移除 `startLocation`/`endLocation`,添加 `startAreaIds`/`endAreaIds`
-    - [ ] 更新查询验证:只需验证省市区选择,不需要精确地点
-    - [ ] 修改导航参数:传递省市区ID数组而不是地点ID
-    - [ ] 更新活动选择页面:接收省市区参数,直接根据省市区查询活动,无需精确地点选择
-  - [ ] 更新相关页面和组件
-    - [ ] 更新 `ActivitySelectPage.tsx`:接收省市区参数,直接根据省市区查询活动,无需精确地点选择
-    - [ ] 更新 `ScheduleListPage.tsx`:适配新的查询参数格式
-    - [ ] 更新API调用:修改查询参数格式
-  - [ ] 编写组件单元测试和集成测试
-    - [ ] `AreaPicker` 组件单元测试:测试弹出层交互、数据加载、选择确认
-    - [ ] 首页集成测试:测试完整的省市区选择流程
-    - [ ] 更新E2E测试:验证新的交互流程
+- [x] 优化首页出发地目的地选择器布局 (UI/UX优化)
+  - [x] 创建弹出层选择器组件 `AreaPicker.tsx`
+    - [x] 组件位置:`mini/src/components/AreaPicker.tsx`
+    - [x] 功能:省市区三级联动选择器,模仿mini-demo的 `picker mode="multiSelector"` 交互
+    - [x] 集成现有省市区API:`/api/v1/areas/provinces`, `/api/v1/areas/cities`, `/api/v1/areas/districts`
+    - [x] 支持弹出层显示/隐藏控制
+    - [x] 支持省市区数据动态加载(省份 → 城市 → 区县)
+    - [x] 支持选择确认和取消操作
+    - [x] 显示已选择的省市区文本
+  - [x] 更新首页布局和交互逻辑
+    - [x] 移除现有的平铺 `AreaCascader` 和 `LocationSearch` 组件
+    - [x] 添加出发地/目的地选择按钮,点击触发弹出层
+    - [x] 布局优化:从当前的多行平铺改为一行紧凑布局(出发地 + 交换按钮 + 目的地)
+    - [x] 显示已选择的省市区文本(如"北京市朝阳区")
+    - [x] 添加交换出发地和目的地功能
+  - [x] 简化首页查询逻辑
+    - [x] 修改 `SearchParams` 接口:移除 `startLocation`/`endLocation`,添加 `startAreaIds`/`endAreaIds`
+    - [x] 更新查询验证:只需验证省市区选择,不需要精确地点
+    - [x] 修改导航参数:传递省市区ID数组而不是地点ID
+    - [x] 更新活动选择页面:接收省市区参数,直接根据省市区查询活动,无需精确地点选择
+  - [x] 更新相关页面和组件
+    - [x] 更新 `ActivitySelectPage.tsx`:接收省市区参数,直接根据省市区查询活动,无需精确地点选择
+    - [x] 更新 `ScheduleListPage.tsx`:适配新的查询参数格式
+    - [x] 更新API调用:修改查询参数格式
+  - [x] 编写组件单元测试和集成测试
+    - [x] `AreaPicker` 组件单元测试:测试弹出层交互、数据加载、选择确认
+    - [x] 首页集成测试:测试完整的省市区选择流程
+    - [x] 更新E2E测试:验证新的交互流程
 
 - [ ] 优化活动选择页面用户体验 (UI/UX优化)
   - [ ] 移除活动选择页面的地点选择区域
@@ -410,7 +410,13 @@ James (Developer Agent)
 - ✅ 迁移班次列表页面:显示路线详细信息,支持日期选择和排序
 - ✅ 编写完整的测试套件:包含组件单元测试、页面集成测试和E2E流程测试
 - ✅ 遵循MVP限制:使用固定轮播图,不实现热门路线和司机位置显示
-- ⚠️ **优化发现**:活动选择页面无需重新选择地点,应直接使用首页传递的省市区参数查询活动
+- ✅ **省市区选择器优化完成**:
+  - ✅ 创建弹出层选择器组件 `AreaPicker.tsx`,支持省市区三级联动
+  - ✅ 更新首页布局为紧凑布局(出发地 + 交换按钮 + 目的地)
+  - ✅ 实现省市区数据动态加载和选择确认功能
+  - ✅ 简化查询逻辑,使用省市区ID数组替代精确地点选择
+  - ✅ 更新活动选择页面和班次列表页面适配新的查询参数格式
+  - ✅ 后端API已支持省市区ID查询参数
 - ⚠️ **待优化**:移除活动选择页面的地点选择区域,简化用户操作流程
 
 ### File List
@@ -418,17 +424,20 @@ James (Developer Agent)
 - `src/server/api/locations/index.ts` - 地点API路由
 - `src/server/api.ts` - 主API配置(添加用户端路由注册)
 - `src/server/utils/jwt.util.ts` - 修复jsonwebtoken导入
+- `src/server/api/routes/index.ts` - 路线API路由(支持省市区ID查询)
 - `mini/src/api.ts` - 更新API客户端,添加省市区、地点和路线客户端
 - `mini/src/components/AreaCascader.tsx` - 省市区三级联动组件
 - `mini/src/components/LocationSearch.tsx` - 地点搜索组件
 - `mini/src/components/RouteFilter.tsx` - 路线筛选组件
-- `mini/src/pages/home/index.tsx` - 首页
-- `mini/src/pages/select-activity/ActivitySelectPage.tsx` - 活动选择页面
-- `mini/src/pages/schedule-list/ScheduleListPage.tsx` - 班次列表页面
+- `mini/src/components/AreaPicker.tsx` - 弹出层省市区选择器组件
+- `mini/src/pages/home/index.tsx` - 首页(已更新为紧凑布局)
+- `mini/src/pages/select-activity/ActivitySelectPage.tsx` - 活动选择页面(支持省市区参数)
+- `mini/src/pages/schedule-list/ScheduleListPage.tsx` - 班次列表页面(支持省市区参数)
 - `mini/src/app.config.ts` - 更新路由配置
 - `mini/tests/components/AreaCascader.test.tsx` - 省市区组件单元测试
 - `mini/tests/components/LocationSearch.test.tsx` - 地点搜索组件单元测试
 - `mini/tests/components/RouteFilter.test.tsx` - 路线筛选组件单元测试
+- `mini/tests/components/AreaPicker.test.tsx` - 弹出层省市区选择器单元测试
 - `mini/tests/pages/HomePage.test.tsx` - 首页集成测试
 - `mini/tests/pages/ActivitySelectPage.test.tsx` - 活动选择页面集成测试
 - `mini/tests/pages/ScheduleListPage.test.tsx` - 班次列表页面集成测试