From d4713ad3e4389db30b74f47023242c64878167a6 Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Sun, 28 Apr 2024 01:36:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=81=8A=E5=A4=A9=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/passport/login/index.ts | 1 + src/api/system/chatConversation/index.ts | 106 +++++++ .../system/chatConversation/model/index.ts | 37 +++ src/api/system/chatMessage/index.ts | 106 +++++++ src/api/system/chatMessage/model/index.ts | 47 +++ src/utils/common.ts | 11 + src/views/shop/order/components/search.vue | 30 +- src/views/shop/order/index.vue | 172 ++++++++++- .../components/chatConversationEdit.vue | 230 ++++++++++++++ .../chatConversation/components/search.vue | 42 +++ src/views/system/chatConversation/index.vue | 263 ++++++++++++++++ .../components/chatMessageEdit.vue | 259 ++++++++++++++++ .../system/chatMessage/components/search.vue | 42 +++ src/views/system/chatMessage/index.vue | 287 ++++++++++++++++++ 14 files changed, 1611 insertions(+), 22 deletions(-) create mode 100644 src/api/system/chatConversation/index.ts create mode 100644 src/api/system/chatConversation/model/index.ts create mode 100644 src/api/system/chatMessage/index.ts create mode 100644 src/api/system/chatMessage/model/index.ts create mode 100644 src/views/system/chatConversation/components/chatConversationEdit.vue create mode 100644 src/views/system/chatConversation/components/search.vue create mode 100644 src/views/system/chatConversation/index.vue create mode 100644 src/views/system/chatMessage/components/chatMessageEdit.vue create mode 100644 src/views/system/chatMessage/components/search.vue create mode 100644 src/views/system/chatMessage/index.vue diff --git a/src/api/passport/login/index.ts b/src/api/passport/login/index.ts index 790ebf1..8dfb744 100644 --- a/src/api/passport/login/index.ts +++ b/src/api/passport/login/index.ts @@ -23,6 +23,7 @@ export async function login(data: LoginParam) { if (res.data.data?.user) { const user = res.data.data?.user; localStorage.setItem('TenantId', String(user.tenantId)); + localStorage.setItem('UserId', String(user.userId)); } return res.data.message; diff --git a/src/api/system/chatConversation/index.ts b/src/api/system/chatConversation/index.ts new file mode 100644 index 0000000..4c84dc4 --- /dev/null +++ b/src/api/system/chatConversation/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { ChatConversation, ChatConversationParam } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询聊天消息表 + */ +export async function pageChatConversation(params: ChatConversationParam) { + const res = await request.get>>( + MODULES_API_URL + '/shop/chat-conversation/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询聊天消息表列表 + */ +export async function listChatConversation(params?: ChatConversationParam) { + const res = await request.get>( + MODULES_API_URL + '/shop/chat-conversation', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加聊天消息表 + */ +export async function addChatConversation(data: ChatConversation) { + const res = await request.post>( + MODULES_API_URL + '/shop/chat-conversation', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改聊天消息表 + */ +export async function updateChatConversation(data: ChatConversation) { + const res = await request.put>( + MODULES_API_URL + '/shop/chat-conversation', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除聊天消息表 + */ +export async function removeChatConversation(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/chat-conversation/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除聊天消息表 + */ +export async function removeBatchChatConversation(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/chat-conversation/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询聊天消息表 + */ +export async function getChatConversation(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/chat-conversation/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/chatConversation/model/index.ts b/src/api/system/chatConversation/model/index.ts new file mode 100644 index 0000000..110806d --- /dev/null +++ b/src/api/system/chatConversation/model/index.ts @@ -0,0 +1,37 @@ +import type { PageParam } from '@/api'; + +/** + * 聊天消息表 + */ +export interface ChatConversation { + // 自增ID + id?: number; + // 用户ID + userId?: number; + // 好友ID + friendId?: number; + // 消息类型 + type?: number; + // 消息内容 + content?: string; + // 未读消息 + unRead?: number; + // 状态, 0未读, 1已读 + status?: number; + // 是否删除, 0否, 1是 + deleted?: number; + // 租户id + tenantId?: number; + // 注册时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 聊天消息表搜索条件 + */ +export interface ChatConversationParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/api/system/chatMessage/index.ts b/src/api/system/chatMessage/index.ts new file mode 100644 index 0000000..2bbd109 --- /dev/null +++ b/src/api/system/chatMessage/index.ts @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { ChatMessage, ChatMessageParam } from './model'; +import { SERVER_API_URL } from '@/config/setting'; + +/** + * 分页查询聊天消息表 + */ +export async function pageChatMessage(params: ChatMessageParam) { + const res = await request.get>>( + SERVER_API_URL + '/system/chat-message/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询聊天消息表列表 + */ +export async function listChatMessage(params?: ChatMessageParam) { + const res = await request.get>( + SERVER_API_URL + '/system/chat-message', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加聊天消息表 + */ +export async function addChatMessage(data: ChatMessage) { + const res = await request.post>( + SERVER_API_URL + '/system/chat-message', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改聊天消息表 + */ +export async function updateChatMessage(data: ChatMessage) { + const res = await request.put>( + SERVER_API_URL + '/system/chat-message', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除聊天消息表 + */ +export async function removeChatMessage(id?: number) { + const res = await request.delete>( + SERVER_API_URL + '/system/chat-message/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除聊天消息表 + */ +export async function removeBatchChatMessage(data: (number | undefined)[]) { + const res = await request.delete>( + SERVER_API_URL + '/system/chat-message/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询聊天消息表 + */ +export async function getChatMessage(id: number) { + const res = await request.get>( + SERVER_API_URL + '/system/chat-message/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/system/chatMessage/model/index.ts b/src/api/system/chatMessage/model/index.ts new file mode 100644 index 0000000..0ef3626 --- /dev/null +++ b/src/api/system/chatMessage/model/index.ts @@ -0,0 +1,47 @@ +import type { PageParam } from '@/api'; + +/** + * 聊天消息表 + */ +export interface ChatMessage { + // 自增ID + id?: number; + // 发送人ID + formUserId?: number; + // 接收人ID + toUserId?: number; + // 消息类型 + type?: string; + // 消息内容 + content?: string; + // 屏蔽接收方 + sideTo?: number; + // 屏蔽发送方 + sideFrom?: number; + // 是否撤回 + withdraw?: number; + // 文件信息 + fileInfo?: string; + toUserName?: string; + formUserName?: string; + // 存在联系方式 + hasContact?: number; + // 状态, 0未读, 1已读 + status?: number; + // 是否删除, 0否, 1是 + deleted?: number; + // 租户id + tenantId?: number; + // 注册时间 + createTime?: string; + // 修改时间 + updateTime?: string; +} + +/** + * 聊天消息表搜索条件 + */ +export interface ChatMessageParam extends PageParam { + id?: number; + keywords?: string; +} diff --git a/src/utils/common.ts b/src/utils/common.ts index 417718e..c42daf8 100644 --- a/src/utils/common.ts +++ b/src/utils/common.ts @@ -320,3 +320,14 @@ export const decrypt = (encrypt) => { const bytes = CryptoJS.AES.decrypt(encrypt, APP_SECRET); return bytes.toString(CryptoJS.enc.Utf8); }; + +// 获取当前登录用户ID +export const getUserId = () => { + let userId = 0; + const uid = Number(localStorage.getItem('UserId')); + if (uid) { + userId = uid; + return userId; + } + return userId; +}; diff --git a/src/views/shop/order/components/search.vue b/src/views/shop/order/components/search.vue index 82fea9d..f56585d 100644 --- a/src/views/shop/order/components/search.vue +++ b/src/views/shop/order/components/search.vue @@ -1,19 +1,20 @@ - + diff --git a/src/views/system/chatConversation/components/chatConversationEdit.vue b/src/views/system/chatConversation/components/chatConversationEdit.vue new file mode 100644 index 0000000..c894024 --- /dev/null +++ b/src/views/system/chatConversation/components/chatConversationEdit.vue @@ -0,0 +1,230 @@ + + + + diff --git a/src/views/system/chatConversation/components/search.vue b/src/views/system/chatConversation/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/system/chatConversation/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/system/chatConversation/index.vue b/src/views/system/chatConversation/index.vue new file mode 100644 index 0000000..7e40e50 --- /dev/null +++ b/src/views/system/chatConversation/index.vue @@ -0,0 +1,263 @@ + + + + + + + diff --git a/src/views/system/chatMessage/components/chatMessageEdit.vue b/src/views/system/chatMessage/components/chatMessageEdit.vue new file mode 100644 index 0000000..efd5289 --- /dev/null +++ b/src/views/system/chatMessage/components/chatMessageEdit.vue @@ -0,0 +1,259 @@ + + + + diff --git a/src/views/system/chatMessage/components/search.vue b/src/views/system/chatMessage/components/search.vue new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/views/system/chatMessage/components/search.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/system/chatMessage/index.vue b/src/views/system/chatMessage/index.vue new file mode 100644 index 0000000..8b4688d --- /dev/null +++ b/src/views/system/chatMessage/index.vue @@ -0,0 +1,287 @@ + + + + + + +