From 45f5dc4a06002e482d43e316d4292e391f9d9b60 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 24 Jul 2026 10:28:43 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=BA=A4=E6=8E=A5=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=8A=82=E7=82=B9=E6=97=B6=E9=97=B4=E5=A5=91?= =?UTF-8?q?=E7=BA=A6=20(#5202)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...•行程节点时间-修改接å£-å‰ç«¯å¾…处ç†-管ç†åŽå°.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 changelogs-v2/2026-07/91_5202_调整订å•行程节点时间-修改接å£-å‰ç«¯å¾…处ç†-管ç†åŽå°.md diff --git a/changelogs-v2/2026-07/91_5202_调整订å•行程节点时间-修改接å£-å‰ç«¯å¾…处ç†-管ç†åŽå°.md b/changelogs-v2/2026-07/91_5202_调整订å•行程节点时间-修改接å£-å‰ç«¯å¾…处ç†-管ç†åŽå°.md new file mode 100644 index 0000000..0ddd755 --- /dev/null +++ b/changelogs-v2/2026-07/91_5202_调整订å•行程节点时间-修改接å£-å‰ç«¯å¾…处ç†-管ç†åŽå°.md @@ -0,0 +1,130 @@ +# 调整订å•行程节点时间回显与修改(修改接å£ï¼‰ + +> 日期:2026-07-24 +> å·¥å•:#5202 +> æœåŠ¡ï¼š`hl-order-service-v3` +> å‰ç«¯çжæ€ï¼šå¾…处ç†ï¼ˆ`D:/work2/hl-ui` 本次未修改) + +## 结论 + +产å“è¡Œç¨‹èŠ‚ç‚¹çš„ä¸¤ç±»æ—¶é—´åœ¨ä¸‹å•æ—¶å‡å·²å›ºåŒ–到订å•行程节点: + +- `startTime`ï¼šç²¾ç¡®å¼€å§‹æ—¶é—´ï¼Œæ ¼å¼ `HH:mm`。 +- `timePeriod`:时间说明,值æ¥è‡ª `itinerary_time_period` 字典,例如 `MORNING`。 + +本次补é½â€œè°ƒæ•´è®¢å• → 行程â€ä¸­çš„完整读写契约: + +- å¿«ç…§é€èŠ‚ç‚¹è¿”å›ž `startTime`ã€`timePeriod`。 +- 调整æäº¤å¯åªä¿®æ”¹æ—¶é—´ï¼Œä¸è¦æ±‚åŒæ—¶æ”¹ä»·æˆ–改数é‡ã€‚ +- æ–°å¢žèŠ‚ç‚¹ä¹Ÿå¯æºå¸¦ä¸¤ç±»æ—¶é—´ã€‚ +- 两字段å¯åˆ†åˆ«å­˜åœ¨ï¼Œä¸å¼ºåˆ¶äº’斥。 +- æ—§è®¢å•æˆ–未设置时间的节点返回 `null`。 + +## æ¶‰åŠæŽ¥å£ + +| 方法 | 路径 | å˜åŒ– | +|---|---|---| +| GET | `/v3/admin/order/{orderId}/adjustment/snapshot` | `data.itinerary.days[].nodes[]` è¡¥é½ `timePeriod`,ä¿ç•™å·²æœ‰ `startTime` | +| POST | `/v3/admin/order/{orderId}/adjustment/submit` | `updates.itinerary.days[].nodes[]` æ”¯æŒæäº¤ `startTime`ã€`timePeriod` | + +## å¿«ç…§å‡ºå‚ + +```json +{ + "data": { + "itinerary": { + "days": [ + { + "id": "8001", + "dayNumber": 2, + "nodes": [ + { + "id": "9001", + "title": "呼和诺尔è‰åŽŸæ—…æ¸¸åŒº", + "startTime": "05:05", + "timePeriod": null + }, + { + "id": "9002", + "title": "é¢å°”å¤çº³æ¹¿åœ°æ¼‚æµ", + "startTime": null, + "timePeriod": "EARLY_MORNING" + } + ] + } + ] + } + } +} +``` + +`timePeriod` 返回字典值,展示文字请使用现有 `itinerary_time_period` 字典翻译,ä¸è¦åœ¨é¡µé¢ç¡¬ç¼–ç ä¸­æ–‡ã€‚ + +## æäº¤è¯­ä¹‰ + +节点时间沿用 patch 语义: + +| å…¥å‚çŠ¶æ€ | å«ä¹‰ | +|---|---| +| 字段çœç•¥æˆ–ä¼  `null` | ä¸ä¿®æ”¹è¯¥å­—段 | +| `startTime: "09:05"` | 设置精确开始时间 | +| `timePeriod: "MORNING"` | 设置时间说明 | +| `startTime: ""` | 清空精确开始时间,åŽç«¯è½åº“为 `NULL` | +| `timePeriod: ""` | 清空时间说明,åŽç«¯è½åº“为 `NULL` | + +仅修改时间时的请求示例: + +```json +{ + "updates": { + "itinerary": { + "days": [ + { + "id": "8001", + "dayNumber": 2, + "nodes": [ + { + "id": "9001", + "startTime": "06:30" + }, + { + "id": "9002", + "timePeriod": "AFTERNOON" + } + ] + } + ] + } + } +} +``` + +清空示例: + +```json +{ + "id": "9001", + "startTime": "", + "timePeriod": "" +} +``` + +éžç©º `startTime` 必须是 24 å°æ—¶åˆ¶ `HH:mm`,例如 `09:05`ï¼›`9:05`ã€`24:00` å‡ä¸åˆæ³•。 + +## 管ç†åŽå°å¤„ç†æ¸…å• + +å½“å‰ `FunItemAdjustModal.vue` å·²ä»Žå¿«ç…§è¯»å– `startTime`,但尚未渲染ã€å‚与 diff 或写入æäº¤ä½“ï¼›`timePeriod` 还未映射。需补: + +- 节点è‰ç¨¿ä¸ŽåŸºçº¿åŒæ—¶ä¿å­˜ `startTime`ã€`timePeriod`。 +- 节点行增加精确时间选择器和 `itinerary_time_period` 字典下拉,并回显现有值。 +- `funItemsChanged` 与节点 diff åŒæ—¶æ¯”è¾ƒä¸¤å­—æ®µï¼›åªæœ‰æ—¶é—´å˜åŒ–也è¦ç”ŸæˆèŠ‚ç‚¹ patch。 +- `buildItineraryDays()` 对å˜åŒ–字段按需æäº¤ï¼Œæœªå˜åŒ–字段çœç•¥ã€‚ +- 用户清空åŽï¼Œæäº¤ä½“将该字段从å‰ç«¯ `null` 转为 `""`ï¼›ä¸è¦ç›´æŽ¥ä¼  `null`,å¦åˆ™åŽç«¯æŒ‰â€œä¸ä¿®æ”¹â€å¤„ç†ã€‚ +- ä¿ç•™ä¸¤å­—段å¯åŒæ—¶è®¾ç½®çš„能力,ä¸åœ¨å‰ç«¯å¼ºåˆ¶äº’斥。 + +## 兼容性 + +- 新增出å‚字段兼容旧调用方。 +- `startTime` åŽŸå­—æ®µä¿æŒä¸å˜ã€‚ +- æœªè®¾ç½®æ—¶é—´çš„åŽ†å²æ•°æ®è¿”回 `null`,å‰ç«¯æŒ‰ç©ºæ€å±•示。 +- æœ¬æ¬¡ä¸æ”¹è®¢å•金é¢ã€èŠ‚ç‚¹ä»·æ ¼ã€æ•°é‡ã€é¡ºåºå’Œèµ„æºç»‘定逻辑。