From f2c5f91f90e228c20cd81a9f2d5950a4edfe317a Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 5 Jun 2026 10:21:44 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20=E5=91=8A=E7=9F=A5=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=20#3414=20=E9=80=89=E6=8B=A9=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=97=A0=E6=95=B0=E6=8D=AE=3D=E6=9C=AA?= =?UTF-8?q?=E6=8E=A5searchAdmins=E6=8E=A5=E5=8F=A3(=E4=B8=93=E9=A1=B9?= =?UTF-8?q?=E9=80=9A=E7=9F=A5mmg+=E5=AD=97=E6=AE=B5=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E5=9D=91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...拉无数据-前端未接searchAdmins接口-管理后台.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 changelogs-v2/2026-06/05_3414_选择员工下拉无数据-前端未接searchAdmins接口-管理后台.md diff --git a/changelogs-v2/2026-06/05_3414_选择员工下拉无数据-前端未接searchAdmins接口-管理后台.md b/changelogs-v2/2026-06/05_3414_选择员工下拉无数据-前端未接searchAdmins接口-管理后台.md new file mode 100644 index 0000000..e8d7ad7 --- /dev/null +++ b/changelogs-v2/2026-06/05_3414_选择员工下拉无数据-前端未接searchAdmins接口-管理后台.md @@ -0,0 +1,85 @@ +# 【前端 BUG·管理后台】自定义推送「选择员工」下拉无数据 = 前端未接 searchAdmins 接口 + +> **关联**: 工单 #3414(内部员工站内信,PR #3424/#3425/#3427) +> **服务**: 前端 hl-ui(后端无改动)| **提报时间**: 2026-06-05 +> +> **存放目录**: `changelogs-v2/2026-06/` +> **影响范围**: 管理后台「通知中心 / 自定义推送」→ 站内信(内部员工) → 指定员工 +> **类型**: 前端接线 bug(mmg 修),**后端已实测正常无需改动** + +--- + +## ⚠️ 关键说明 + +测试环境「自定义推送」页,选「**站内信(内部员工)**」通道 + 「**指定员工**」后,「**选择员工**」下拉显示「**无数据**」。 + +**根因 = 前端把下拉 UI 画了,但没接后端搜索接口。** 后端 `GET /admin/notification/custom-push/admins` 实测 **200、返 20 个员工**,后端没问题。 + +--- + +## 1. 实证(测试服 nginx 访问日志) + +在该页面操作时,浏览器对内部接口的调用**只有一条 `GET /admin/role/all`**(给「按角色」选项用的),对搜员工的 `/admin/notification/custom-push/admins` **零调用**。即「选择员工」远程搜索框没绑后端接口。 + +后端实测对照(Python 直调,均 200 有数据): + +```bash +# 空关键词返前 20 个员工 +GET /admin/notification/custom-push/admins?keyword= -> 200, 20 条 +# 按姓名/用户名模糊 +GET /admin/notification/custom-push/admins?keyword=admin -> 200, 2 条 +``` + +--- + +## 2. 前端修法(mmg) + +### 2.1 「指定员工」选择员工下拉 → 接成远程搜索 + +输入时调用(带当前 admin token): + +``` +GET /admin/notification/custom-push/admins?keyword={输入值} +``` + +响应 `data`:员工数组,每项字段: + +| 字段 | 类型 | 用途 | +|---|---|---| +| `adminId` | string | **option 的 value**(雪花 String,提交时收集成 `adminIds`)| +| `name` | string | **option 的 label**(企微真名,可能为空则用 `username`)| +| `username` | string | 登录名(label 兜底)| +| `roleKey` / `roleName` | string | 角色(可展示副文本)| + +提交推送时(§见 04_3414 §5.2):`{channel:"ADMIN_INAPP", targetType:"ADMIN_SPECIFIC", adminIds:[选中的 adminId...], title, content}`。 + +### 2.2 ⚠️ 字段名和 C 端不一样,别照搬 + +若克隆 C 端「选择用户」组件(`/custom-push/users`),注意字段名**不同**: + +| 角色 | 接口 | 返回字段 | +|---|---|---| +| C 端客人 | `/custom-push/users` | `id` / `realName` / `phone` / `avatarUrl` | +| **内部员工** | `/custom-push/admins` | **`adminId` / `name` / `username`** / roleKey / roleName | + +克隆组件**必须改字段映射**(`id→adminId`、`realName→name`),否则就算接上接口,也会因取不到字段继续「无数据」。 + +### 2.3 「按角色」目标 + +「按角色」当前已接 `/admin/role/all` 加载角色列表(正常)。选角色后提交:`{channel:"ADMIN_INAPP", targetType:"ADMIN_BY_ROLE", roleKeys:[选中的 roleKey...], title, content}`。 + +--- + +## 3. 后端状态(无需改动) + +- `/admin/notification/custom-push/admins`(搜员工):已部署测试服,实测 200 有数据。 +- `/admin/notification/custom-push`(发站内信):已部署,ADMIN_SPECIFIC / ADMIN_BY_ROLE 实测通过。 +- 内部员工站内信分类固定 SYSTEM(后端强制,前端「消息分类」对内部员工可隐藏)。 + +--- + +## 4. 关联 + +- 主功能 changelog:`04_3414_内部员工站内信收件箱-SSE实时推送-管理后台.md`(§5 选内部员工 + §3 SSE) +- 后端负责人:@wx +- 前端对接(本 bug 修复):**mmg**