From 84286cc92509fe550d801c7c71d5ac3f5f9831a0 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Tue, 11 Aug 2026 18:22:26 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20=E6=B4=BE=E5=8D=95=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E9=9C=80=E6=B1=82=E4=BF=A1=E6=81=AF=E4=B8=A4=E5=A4=84?= =?UTF-8?q?=E5=90=84=E7=BC=BA=E4=B8=80=E5=8D=8A=E2=80=94=E2=80=94=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E5=AD=97=E6=AE=B5=E5=B7=B2=E5=B0=B1=E7=BB=AA=E8=BD=AC?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=EF=BC=88=E5=8E=9F=20#5848=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...¼¹çª—需求信æ¯ä¸¤å¤„å„缺一åŠ-å‰ç«¯ç¼ºé™·-管ç†åŽå°.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 changelogs-v2/2026-08/11_frontend_æ´¾å•弹窗需求信æ¯ä¸¤å¤„å„缺一åŠ-å‰ç«¯ç¼ºé™·-管ç†åŽå°.md diff --git a/changelogs-v2/2026-08/11_frontend_æ´¾å•弹窗需求信æ¯ä¸¤å¤„å„缺一åŠ-å‰ç«¯ç¼ºé™·-管ç†åŽå°.md b/changelogs-v2/2026-08/11_frontend_æ´¾å•弹窗需求信æ¯ä¸¤å¤„å„缺一åŠ-å‰ç«¯ç¼ºé™·-管ç†åŽå°.md new file mode 100644 index 0000000..6a061cb --- /dev/null +++ b/changelogs-v2/2026-08/11_frontend_æ´¾å•弹窗需求信æ¯ä¸¤å¤„å„缺一åŠ-å‰ç«¯ç¼ºé™·-管ç†åŽå°.md @@ -0,0 +1,150 @@ +--- +schema: "hl-changelog/v2" +ticket: "frontend" +title: "æ´¾å•弹窗需求信æ¯å±•示补全:Step1 缺结构化车型语å¥ã€Step2 缺特殊诉求与文字备注(åŽç«¯å­—段已全部就绪)" +consumer: "admin" +change_type: "å‰ç«¯ç¼ºé™·" +author: "wx(GIT)" +backend_status: "not_required" +gateway_status: "not_required" +frontend_status: "pending" +frontend_owner: "mmg" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "原 #5848 åŽç«¯å·¥å•ç»è°ƒç ”判定为纯å‰ç«¯æ¸²æŸ“缺å£ï¼Œå·²å…³å•转本æ¡ã€‚三å—ä¿¡æ¯ï¼ˆç»“æž„åŒ–è½¦åž‹è¯­å¥ / 通用特殊诉求 / 文字备注)åŽç«¯åœ¨ GET /admin/fleet/board/orders/{orderId} åŒä¸€ä»½å“åº”é‡Œå…¨éƒ¨å·²è¿”å›žï¼Œæµ‹è¯•æœ 26-3698 实测有值,无需任何åŽç«¯æ”¹åŠ¨ã€‚" +updated_at: "2026-08-11" +base: "dev-v3" +--- + +# æ´¾å•弹窗需求信æ¯å±•示补全(原 #5848 → 转å‰ç«¯ï¼‰ + +> **页é¢**ï¼šè½¦åŠ¡ç®¡ç† â†’ æ´¾å•çœ‹æ¿ â†’ è®¢å•æ´¾è½¦å¼¹çª— +> **åŽç«¯**:**零改动**。三å—ä¿¡æ¯æ—©å·²åœ¨åŒä¸€ä»½è¯¦æƒ…å“åº”é‡Œè¿”å›žï¼Œåªæ˜¯å‰ç«¯ä¸¤å¤„儿¸²æŸ“了一åŠã€‚ + +--- + +## 一ã€çŽ°çŠ¶ï¼šä¸¤å¤„å„ç¼ºä¸€åŠ + +| ä½ç½® | 现在显示 | 缺什么 | +|------|---------|--------| +| **Step1「订å•详情ã€â†’ 定制师/用车备注**åŒºå— | åªæœ‰æ–‡å­—备注(例:`用车备注 æ¨å­å¢¨6人suv*2`) | **缺结构化车型语å¥** | +| **Step2「排车ã€â†’ 底部「当å‰éœ€æ±‚ã€**åŒºå— | åªæœ‰ç»“构化语å¥ï¼ˆä¾‹ï¼š`当å‰éœ€æ±‚:SUV7座×1 + 商务车7座×1`) | **缺通用特殊诉求 + 文字备注** | + +wx çš„è¦æ±‚:**两处都è¦åŒæ—¶å±•ç¤ºã€Œç»“æž„åŒ–è½¦åž‹è¯­å¥ + 通用特殊诉求 + 文字备注ã€ä¸‰å—完整信æ¯**。车管在 Step2 排车时最需è¦çœ‹åˆ°ã€Œè¦å„¿ç«¥åº§æ¤…ã€ã€Œè¦ä¸­æ–‡å¸æœºã€è¿™ç±»è¯‰æ±‚,现在åªèƒ½çœ‹åˆ°è½¦åž‹æ•°é‡ã€‚ + +--- + +## äºŒã€æ•°æ®æ¥æºï¼šä¸€ä¸ªæŽ¥å£ã€ä¸€ä»½å“应ã€ä¸‰ä¸ªå­—段 + +**ä¸¤å¤„åŒæº**——Step1 å’Œ Step2 用的是**åŒä¸€ä¸ª order 对象**,æ¥è‡ªåŒä¸€æ¬¡è¯·æ±‚: + +``` +GET /admin/fleet/board/orders/{orderId} +Authorization: Bearer +(无请求体) +``` + +å“应 `data` 里三个字段: + +| 字段 | 类型 | 是å¦å¯ç©º | 说明 | +|------|------|---------|------| +| `requirementFleetText` | `String` | **å¯ä¸º null** | åŽç«¯æ‹¼å¥½çš„**结构化车型整å¥**,如 `SUV7座×1 + 商务车7座×1` | +| `specialTags` | `List` | **æ’为数组**(无诉求时 `[]`) | 通用特殊诉求,**值本身就是中文标签** | +| `requirementRemark` | `String` | **å¯ä¸º null** | 文字备注 / 其他诉求 | + +> `requirements` 是 `requirementRemark` çš„**兼容别å**(åŒå€¼ï¼‰ï¼Œæ–°ä»£ç è¯·ç”¨ `requirementRemark`。 + +### 测试环境实测(2026-08-11,26-3698) + +```json +{ + "code": 200, + "message": "æˆåŠŸ", + "data": { + "requirementFleetText": "SUV7座×1 + 商务车7座×1", + "specialTags": ["å«é«˜é€Ÿæ²¹è´¹"], + "requirementRemark": "和法国飞行速度", + "requirements": "和法国飞行速度", + "plannerNote": null + } +} +``` + +--- + +## 三ã€ä¸‰ä¸ªå­—段的使用å£å¾„(é‡è¦ï¼‰ + +### 1. `requirementFleetText` —— **åŽŸæ ·æ¸²æŸ“ï¼Œç¦æ­¢è‡ªè¡Œæ‹¼è£…** + +æ•´å¥ç”±åŽç«¯ç»Ÿä¸€æ‹¼å¥½ï¼Œæ ¼å¼æ˜¯ #5817 定的「车队组æˆå†™æ³•ã€ï¼š**座ä½å†…è” + 加å·è¿žæŽ¥**。 + +``` +SUV7座×1 + 商务车7座×1 +``` + +规则(åŽç«¯å·²å®žçŽ°ï¼Œå‰ç«¯ä¸éœ€è¦å¤åˆ»ï¼‰ï¼š +- ç¼ºåº§ä½æ—¶çœç•¥åº§ä½ï¼š`SUV×2 + 商务车7座×1` +- 车型未知时回退原始值 +- 需求为空或 `fleet` 为空 → 返回 **`null`**(整å—䏿¸²æŸ“) + +âš ï¸ **ç¦æ­¢**用 `vehicleSlots[].requiredVehicleTypeLabel` 或 `requiredVehicles` 自己èšåˆæ‹¼è¿™å¥è¯â€”—那些是**æ´¾å•行的历å²å¿«ç…§**,需求æ¢ç‰ˆåŽæ˜¯**陈旧值**ï¼ˆä¼šæ˜¾ç¤ºæˆæ¢ç‰ˆå‰çš„æ—§è½¦åž‹ï¼‰ã€‚åªæœ‰ `requirementFleetText` 是当å‰ç”Ÿæ•ˆéœ€æ±‚çš„æƒå¨å€¼ã€‚ + +### 2. `specialTags` —— **直接渲染,ä¸è¦æŸ¥å­—典翻译** + +数组里的值**本身就是中文标签**(åŽç«¯å­—å…¸ `vehicle_special_demand` çš„ `dict_value` 与 `dict_label` 有æ„ä¿æŒä¸€è‡´ï¼‰ï¼Œç›´æŽ¥å½“ tag 渲染å³å¯ï¼š + +``` +["儿童安全座椅", "大行æŽç©ºé—´", "ä¸­æ–‡å¸æœº", "è€å¸æœº(5年以上)", "å«é«˜é€Ÿæ²¹è´¹", "é™éŸ³è½¦åž‹", "有WiFi"] +``` + +æ’为数组,`length === 0` æ—¶ä¸æ¸²æŸ“该å—。 + +### 3. `requirementRemark` —— 自由文本 + +å¯èƒ½ä¸º `null`,判 falsy æ—¶ä¸æ¸²æŸ“。 + +--- + +## å››ã€å‰ç«¯è¦åšçš„两件事 + +### 1. Step1「定制师/用车备注ã€åŒºå— —— è¡¥è½¦åž‹è¯­å¥ + +在现有的 `plannerNote` / `requirementRemark` / `specialTags` 之外,增渲染 `order.requirementFleetText`(原样输出)。`null` æ—¶ä¸æ˜¾ç¤ºè¯¥è¡Œã€‚ + +### 2. Step2 底部「当å‰éœ€æ±‚ã€åŒºå— —— 补诉求与备注 + +在现有的 `requirementFleetText` 之åŽï¼Œè¡¥ä¸Šï¼š +- `order.specialTags` → tag åˆ—è¡¨ï¼ˆç©ºæ•°ç»„ä¸æ¸²æŸ“) +- `order.requirementRemark` → 文本(null 䏿¸²æŸ“) + +--- + +## 五ã€ç‰ˆæœ¬ä¸€è‡´æ€§ï¼ˆéªŒæ”¶é¡¹ï¼ŒåŽç«¯å·²ä¿è¯ï¼‰ + +「两处展示的三å—ä¿¡æ¯æ¥è‡ªåŒä¸€ç‰ˆå½“å‰ç”Ÿæ•ˆéœ€æ±‚,ä¸ä¸²ç‰ˆæœ¬ã€è¿™ä¸€æ¡**åŽç«¯å¤©ç„¶æ»¡è¶³**: + +三个字段全部出自**åŒä¸€ä¸ªå½“å‰ç”Ÿæ•ˆéœ€æ±‚对象**(`is_active=1` 且 version æœ€å¤§çš„é‚£ä¸€ç‰ˆï¼‰ï¼Œä¸€æ¬¡å–æ•°ã€ä¸€èµ·ä¸‹å‘。å‰ç«¯åªè¦éƒ½ä»Žè¿™ä»½å“应å–值,就ä¸å¯èƒ½ä¸²ç‰ˆæœ¬ã€‚ + +å之,如果å‰ç«¯ä»Ž `vehicleSlots` 或 `requiredVehicles` 自己èšåˆï¼Œå°±ä¼šè¸©åˆ°æ´¾å•行的陈旧快照——è§ä¸Šæ–‡ç¬¬ä¸‰èŠ‚çš„è­¦å‘Šã€‚ + +--- + +## å…­ã€ç©ºæ€æ±‡æ€» + +| 场景 | åŽç«¯è¿”回 | +|------|---------| +| 无生效需求 / 需求ä¸å¯è¾¾ | `requirementFleetText: null`ã€`specialTags: []`ã€`requirementRemark: null` | +| `fleet` 为空数组或解æžå¤±è´¥ | `requirementFleetText: null` | +| 无特殊诉求 | `specialTags: []`(**䏿˜¯ null**) | +| 无备注 | `requirementRemark: null`(ä¸è½¬ç©ºä¸²ï¼‰ | + +æ•´å—åˆ¤ç©ºè§„åˆ™ï¼šæ•´å¥ `null` → 䏿¸²æŸ“该行;tags `length === 0` → 䏿¸²æŸ“;备注 falsy → 䏿¸²æŸ“。**ä¸è¦å‡ºçŽ°ç©ºç™½åŒºå—æˆ–å­—é¢é‡ `null`。** + +--- + +## 七ã€å…³è” + +- 原åŽç«¯å·¥å• #5848(已关å•,判定为纯å‰ç«¯æ¸²æŸ“缺å£ï¼‰ +- è½¦åž‹è¯­å¥æ ¼å¼å®šä¹‰ï¼š#5817 / `11_5810b_éœ€æ±‚è½¦åž‹è¯­å¥æ”¹è½¦é˜Ÿç»„æˆå†™æ³•-修改接å£-管ç†åŽå°.md` +- 陈旧快照å‘çš„æˆå› ï¼š#5871(æ¢ç‰ˆåŽæ´¾å•行 `required_vehicle_type` ä¸åˆ·æ–°ï¼‰