Просмотр исходного кода

🐛 fix(schedule-list): 修复路线显示文本错误

- 修正去程路线显示格式,将起点区域名称与终点地点名称正确组合
- 修正返程路线显示格式,将起点地点名称与终点区域名称正确组合
- 更新注释以反映正确的显示格式要求
yourname 3 месяцев назад
Родитель
Сommit
8f578fad5a

+ 9 - 8
docs/stories/007.010.schedule-page-display-optimization.story.md

@@ -90,8 +90,8 @@
 
 ### 实现完成情况
 - **已实现的核心功能**:
-  - ✅ 去程路线显示格式:"省份 城市 区县 → 地点名称"(优化起点)
-  - ✅ 返程路线显示格式:"地点名称 → 省份 城市 区县"(优化终点)
+  - ✅ 去程路线显示格式:"搜索起点 省份 城市 区县 → 路线终点地点名称"(优化起点显示为省市区格式
+  - ✅ 返程路线显示格式:"路线起点地点名称 → 搜索起点 省份 城市 区县"(优化终点显示为省市区格式
   - ✅ 无路线数据时显示:"请选择路线 → 请选择路线"
   - ✅ 所有测试通过(11个测试用例)
 
@@ -132,11 +132,11 @@
 
 ### 修改策略
 - **去程路线显示格式** (`routeType === 'departure'`):
-  - 优化起点显示:`{provinceName} {cityName} {districtName} → {startLocation.name}`
-  - 终点保持不变:`{endLocation.name}`
+  - 优化起点显示:`{searchParams.startAreaName} → {endLocation.name}`
+  - 使用搜索起点的省市区名称,显示到路线终点地点名称
 - **返程路线显示格式** (`routeType === 'return'`):
-  - 起点保持不变:`{startLocation.name}`
-  - 优化终点显示:`{endLocation.name} → {provinceName} {cityName} {districtName}`
+  - 优化终点显示:`{startLocation.name} → {searchParams.startAreaName}`
+  - 使用路线起点地点名称,显示到搜索起点的省市区名称
 - **页面加载逻辑**: 在没有有效路线数据时,不显示路线信息或显示"请选择路线"提示
 - **地区信息传递**: 从活动选择页面传递完整的省市区名称,避免重复调用API
 - **数据传递**: 在导航URL中添加 `startAreaName` 和 `endAreaName` 参数
@@ -201,6 +201,7 @@
 | 2025-11-05 | 1.1 | 优化地区信息传递策略,避免重复API调用 | Bob (Scrum Master) |
 | 2025-11-05 | 1.2 | 添加去程和返程路线类型的不同显示逻辑 | Bob (Scrum Master) |
 | 2025-11-05 | 1.3 | ✅ 实现完成 - 所有功能开发完成并通过测试 | Claude Agent |
+| 2025-11-05 | 1.4 | ✅ 修复显示格式 - 去程路线显示搜索起点到路线终点,返程路线显示路线起点到搜索起点 | 手动修复 |
 
 ## Dev Agent Record
 
@@ -214,8 +215,8 @@
 - 验证了所有11个测试用例通过
 
 ### Completion Notes List
-- ✅ 实现了去程路线起点显示优化:"省份 城市 区县 → 地点名称"
-- ✅ 实现了返程路线终点显示优化:"地点名称 → 省份 城市 区县"
+- ✅ 实现了去程路线起点显示优化:"搜索起点 省份 城市 区县 → 路线终点地点名称"
+- ✅ 实现了返程路线终点显示优化:"路线起点地点名称 → 搜索起点 省份 城市 区县"
 - ✅ 实现了无路线数据时显示"请选择路线 → 请选择路线"
 - ✅ 修复了所有测试用例,确保功能完整性
 - ✅ 优化了页面加载逻辑,避免默认选择路线

+ 5 - 5
mini/src/pages/schedule-list/ScheduleListPage.tsx

@@ -209,15 +209,15 @@ const ScheduleListPage: React.FC = () => {
     // 根据路线类型优化显示格式
     if (isDeparture) {
       // 去程路线:优化起点显示为省市区格式
-      // 格式:"省份 城市 区县 → 地点名称"
+      // 格式:"搜索起点 省份 城市 区县 → 路线终点地点名称"
       if (searchParams.startAreaName && searchParams.startAreaName !== '请选择地区') {
-        return `${searchParams.startAreaName} → ${startLocationName}`
+        return `${searchParams.startAreaName} → ${endLocationName}`
       }
     } else {
       // 返程路线:优化终点显示为省市区格式
-      // 格式:"地点名称 → 省份 城市 区县"
-      if (searchParams.endAreaName && searchParams.endAreaName !== '请选择地区') {
-        return `${endLocationName} → ${searchParams.endAreaName}`
+      // 格式:"路线起点地点名称 → 搜索起点 省份 城市 区县"
+      if (searchParams.startAreaName && searchParams.startAreaName !== '请选择地区') {
+        return `${startLocationName} → ${searchParams.startAreaName}`
       }
     }
 

+ 7 - 7
mini/tests/pages/ScheduleListPage.test.tsx

@@ -480,8 +480,8 @@ describe('ScheduleListPage', () => {
       expect(screen.getByText('选择班次')).toBeInTheDocument()
     })
 
-    // 去程路线:应该显示"省份 城市 区县 → 地点名称"格式(只优化起点)
-    expect(screen.getByText('广东省 广州市 市辖区 → 点')).toBeInTheDocument()
+    // 去程路线:应该显示"搜索起点 省份 城市 区县 → 路线终点地点名称"格式
+    expect(screen.getByText('广东省 广州市 市辖区 → 点')).toBeInTheDocument()
   })
 
   test('返程路线应该优化终点显示为省市区格式', async () => {
@@ -491,7 +491,7 @@ describe('ScheduleListPage', () => {
       params: {
         startAreaIds: JSON.stringify([1, 2]),
         endAreaIds: JSON.stringify([3, 4]),
-        endAreaName: encodeURIComponent('广东省 广州市 市辖区'),
+        startAreaName: encodeURIComponent('广东省 广州市 市辖区'),
         date: '2025-10-31',
         vehicleType: 'bus',
         travelMode: 'carpool',
@@ -593,8 +593,8 @@ describe('ScheduleListPage', () => {
       expect(screen.getByText('选择班次')).toBeInTheDocument()
     })
 
-    // 返程路线:应该显示"地点名称 → 省份 城市 区县"格式(只优化终点)
-    expect(screen.getByText('点 → 广东省 广州市 市辖区')).toBeInTheDocument()
+    // 返程路线:应该显示"路线起点地点名称 → 搜索起点 省份 城市 区县"格式
+    expect(screen.getByText('点 → 广东省 广州市 市辖区')).toBeInTheDocument()
   })
 
   test('页面加载时不应该默认选择路线', async () => {
@@ -666,7 +666,7 @@ describe('ScheduleListPage', () => {
     })
 
     // 应该正确显示从路由参数传递的省市区信息
-    // 去程路线:只优化起点显示为省市区格式
-    expect(screen.getByText('北京市 朝阳区 → 点')).toBeInTheDocument()
+    // 去程路线:显示搜索起点省市区到路线终点地点名称
+    expect(screen.getByText('北京市 朝阳区 → 点')).toBeInTheDocument()
   })
 })