From 6d6515c06d87b4b697ea29514a7e87730671bd91 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 23 Apr 2026 01:36:45 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(im):=20=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E5=88=B0=20system/user=20-=20/api/im/user=EF=BC=9A=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=20getSelfInfo/getUserListByName=EF=BC=8C=E6=94=B9?= =?UTF-8?q?=E7=94=A8=20/system/user/get-simple=E3=80=81/system/user/list-b?= =?UTF-8?q?y-nickname=20-=20AddFriendDialog=EF=BC=9A=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E4=B8=BA=20getSimpleUserListByNickname=EF=BC=8C=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E5=B7=B2=E5=BA=9F=E5=BC=83=E7=9A=84=20userName=20?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/im/user/index.ts | 39 ++++ .../friend/components/AddFriendDialog.vue | 211 ++++++++++++++++++ 2 files changed, 250 insertions(+) create mode 100644 src/api/im/user/index.ts create mode 100644 src/views/im/home/pages/friend/components/AddFriendDialog.vue diff --git a/src/api/im/user/index.ts b/src/api/im/user/index.ts new file mode 100644 index 000000000..b9a92a0da --- /dev/null +++ b/src/api/im/user/index.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +/** + * IM 用户查询 API + * + * 已迁移到 system 模块: + * - 点头像弹名片:`GET /system/user/get-simple` + * - 按昵称搜索(加好友):`GET /system/user/list-by-nickname` + * 登录用户信息统一使用 `/system/user/profile/get` + */ + +/** IM 用户精简信息(对齐后端 UserSimpleRespVO) */ +export interface ImUserSimpleRespVO { + id: number + nickname: string + avatar?: string + /** 0=未知 1=男 2=女 */ + sex?: number + deptId?: number + deptName?: string + /** 是否在线(后端暂不支持,前端占位;后续由 WebSocket session 计算) */ + online?: boolean +} + +/** 按用户编号查询用户精简信息(点头像弹名片) */ +export const getSimpleUser = (id: number | string) => { + return request.get({ + url: '/system/user/get-simple', + params: { id } + }) +} + +/** 按昵称模糊搜索用户(加好友) */ +export const getSimpleUserListByNickname = (nickname: string) => { + return request.get({ + url: '/system/user/list-by-nickname', + params: { nickname } + }) +} diff --git a/src/views/im/home/pages/friend/components/AddFriendDialog.vue b/src/views/im/home/pages/friend/components/AddFriendDialog.vue new file mode 100644 index 000000000..d8451ac0f --- /dev/null +++ b/src/views/im/home/pages/friend/components/AddFriendDialog.vue @@ -0,0 +1,211 @@ + + + + +