From 3c22ca29a81d63a3b72c9d803973b9b3e24df003 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Tue, 20 Aug 2024 16:00:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=B7=E6=B1=82=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E7=BE=A4=E8=81=8A=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/user.js | 11 ++++++ src/views/Chat.vue | 2 + src/views/Group.vue | 88 ++++++++++++++++++++++++++++++++++++++++++ src/views/UserList.vue | 76 ++++++++++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+) diff --git a/src/api/user.js b/src/api/user.js index c605a7b..308b04c 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -40,6 +40,17 @@ export const getUUIDService = (registerData) => { return request.post('/user/uuid', params) } +export const addGroupRequestService = (Data) => { + const params = new URLSearchParams(); + for (let key in Data) { + params.append(key, Data[key]) + } + return request.post('/im/send_message', params,{ + headers: { + 'token': Data.token, // 将 token 替换为您的令牌值 + } + }) +} export const getFriendReqService = (Data) => { const params = new URLSearchParams(); for (let key in Data) { diff --git a/src/views/Chat.vue b/src/views/Chat.vue index d835a9a..2fa6d01 100644 --- a/src/views/Chat.vue +++ b/src/views/Chat.vue @@ -33,6 +33,7 @@ {{ item.GroupName }} + @@ -199,6 +200,7 @@ export default { this.cur_user_id=0; this.to_user_id=0; this.msg_type=2; + this.hasUnreadMsg["g_"+id]=false; let result={} try { let req={ diff --git a/src/views/Group.vue b/src/views/Group.vue index 42b0920..b17e444 100644 --- a/src/views/Group.vue +++ b/src/views/Group.vue @@ -19,6 +19,8 @@ export default { FriendsTableIsDisplay:false, tableData: [], group_id:0, + GroupRequestIsDisplay : false, + GroupRequestList:[], tokenData: { token: localStorage.getItem("token"), ip: localStorage.getItem("ip"), @@ -251,6 +253,46 @@ export default { console.error(error); } }, + async displayGroupReq(){ + let result ={} + try{ + result =await getGroupReqService(this.tokenData) + if(result.code ===0){ + this.GroupRequestList = result.data; + this.GroupRequestIsDisplay = true; + }else{ + ElMessage.error("获取好友请求列表失败"); + } + }catch(e){ + console.log(e); + } + + }, + async AcceptFriendsOrGroup(index){ + var id = this.GroupRequestList[index].id; + var im_id = this.GroupRequestList[index].im_id; + var name = this.FriendsGRequestList[index].name; + let result ={} + try{ + result =await acceptInviteService({ + token: localStorage.getItem("token"), + id: im_id, + from_user_id: localStorage.getItem("userId"), + to_user_id: id, + msg: "接受加入群组请求", + index: 1, + type: 4, + }); + if(result.code ===0){ + ElMessage.success("接受好友请求成功"); + this.displayFriendReq() + }else{ + ElMessage.error("接受好友请求失败"); + } + }catch(e){ + console.log(e); + } + }, handleMenuSelect(val) { router.push(val); }, @@ -322,6 +364,11 @@ export default { >建群 + + 请求加入群聊请求 + + + + + + + + + + + + + + :row-style="this.tableRowClassName" diff --git a/src/views/UserList.vue b/src/views/UserList.vue index 22a5d5e..c102cee 100644 --- a/src/views/UserList.vue +++ b/src/views/UserList.vue @@ -3,6 +3,7 @@ import axios from "axios"; import { SearchUserService } from "@/api/user.js"; import { getFriendReqService } from "@/api/user.js"; import {acceptInviteService } from "@/api/user.js"; +import { addGroupRequestService } from "@/api/user.js"; import {GetUserInfoService} from "@/api/user.js"; import {DelFGService} from "@/api/user.js"; import router from "@/router/index.js"; @@ -24,6 +25,7 @@ export default { FriendsTableIsDisplay:false, FriendsGList:[], GroupList:[], + groups:[], tokenData: { token: localStorage.getItem("token"), ip: localStorage.getItem("ip"), @@ -66,6 +68,7 @@ export default { } let data = result.data; this.tableData = data; + this.groups= result.group; }, async requestFriend(index) { var id = this.tableData[index].ID; @@ -127,6 +130,32 @@ export default { console.log(e); } }, + async addGroupRequest(index){ + var group_id=this.groups[index].ID; + let result={} + let req={ + token: localStorage.getItem("token"), + from_user_id: localStorage.getItem("userId"), + to_user_id: 0, + group_id: group_id, + msg: "请求加入群组", + type: 5, + } + try{ + + result = await addGroupRequestService(req); + if(result.code ===0){ + ElMessage.success("请求发送成功"); + }else{ + ElMessage.error("操作失败:",result.error); + } + + }catch(e){ + console.log(e); + } + + + }, //接受好友请求 async AcceptFriendsOrGroup(index){ @@ -490,6 +519,53 @@ export default { + +
+ + 群组列表 + + + + + :row-style="this.tableRowClassName" + + + + + + + + + +