diff --git a/src/api/im/face/index.ts b/src/api/im/face/index.ts new file mode 100644 index 000000000..eba55fdbb --- /dev/null +++ b/src/api/im/face/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +// TODO @AI:分拆下文件! +/** 用户端表情包项(精简版) */ +export interface ImFacePackUserItemVO { + id: number + url: string + name?: string + width: number + height: number +} + +/** 用户端表情包 + 嵌套 items */ +export interface ImFacePackUserVO { + id: number + name: string + iconUrl?: string + items: ImFacePackUserItemVO[] +} + +/** 个人表情 */ +export interface ImFaceUserItemVO { + id: number + url: string + name?: string + width: number + height: number +} + +/** 添加个人表情请求 */ +export interface ImFaceUserItemSaveReqVO { + url: string + name?: string + width: number + height: number + /** 来源消息编号(从消息「添加到表情」时传,自己上传不传) */ + sourceMessageId?: number +} + +// ==================== 系统表情包 ==================== + +/** 拉取所有启用的系统表情包(含表情列表) */ +export const getFacePackList = () => { + return request.get({ url: '/im/face-pack/list' }) +} + +// ==================== 个人表情 ==================== + +/** 获取我的个人表情列表 */ +export const getMyFaceUserItemList = () => { + return request.get({ url: '/im/face-user-item/list' }) +} + +/** 添加个人表情;服务端对同 URL 幂等(直接返回旧 id) */ +export const createFaceUserItem = (data: ImFaceUserItemSaveReqVO) => { + return request.post({ url: '/im/face-user-item/create', data }) +} + +/** 删除个人表情 */ +export const deleteFaceUserItem = (id: number) => { + return request.delete({ url: '/im/face-user-item/delete?id=' + id }) +} + +/** 批量删除个人表情 */ +export const deleteFaceUserItemList = (ids: number[]) => { + return request.delete({ + url: '/im/face-user-item/delete-list', + params: { ids: ids.join(',') } + }) +} diff --git a/src/api/im/manager/face/item.ts b/src/api/im/manager/face/item.ts new file mode 100644 index 000000000..0ca5f2a0c --- /dev/null +++ b/src/api/im/manager/face/item.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// TODO @AI:face/item/index.ts +export interface ImManagerFacePackItemVO { + id: number + packId: number + url: string + name?: string + width: number + height: number + sort: number + status: number + createTime?: Date +} + +/** 获得表情分页 */ +export const getManagerFacePackItemPage = (params: PageParam) => { + return request.get({ url: '/im/manager/face-pack-item/page', params }) +} + +/** 获得表情详情 */ +export const getManagerFacePackItem = (id: number) => { + return request.get({ url: '/im/manager/face-pack-item/get?id=' + id }) +} + +/** 新增表情 */ +export const createManagerFacePackItem = (data: ImManagerFacePackItemVO) => { + return request.post({ url: '/im/manager/face-pack-item/create', data }) +} + +/** 修改表情 */ +export const updateManagerFacePackItem = (data: ImManagerFacePackItemVO) => { + return request.put({ url: '/im/manager/face-pack-item/update', data }) +} + +/** 删除表情 */ +export const deleteManagerFacePackItem = (id: number) => { + return request.delete({ url: '/im/manager/face-pack-item/delete?id=' + id }) +} + +/** 批量删除表情 */ +export const deleteManagerFacePackItemList = (ids: number[]) => { + return request.delete({ + url: '/im/manager/face-pack-item/delete-list', + params: { ids: ids.join(',') } + }) +} diff --git a/src/api/im/manager/face/pack.ts b/src/api/im/manager/face/pack.ts new file mode 100644 index 000000000..a240027c0 --- /dev/null +++ b/src/api/im/manager/face/pack.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +// TODO @AI:face/pack/index.ts +export interface ImManagerFacePackVO { + id: number + name: string + iconUrl?: string + sort: number + status: number + createTime?: Date +} + +/** 获得表情包分页 */ +export const getManagerFacePackPage = (params: PageParam) => { + return request.get({ url: '/im/manager/face-pack/page', params }) +} + +/** 获得表情包详情 */ +export const getManagerFacePack = (id: number) => { + return request.get({ url: '/im/manager/face-pack/get?id=' + id }) +} + +/** 新增表情包 */ +export const createManagerFacePack = (data: ImManagerFacePackVO) => { + return request.post({ url: '/im/manager/face-pack/create', data }) +} + +/** 修改表情包 */ +export const updateManagerFacePack = (data: ImManagerFacePackVO) => { + return request.put({ url: '/im/manager/face-pack/update', data }) +} + +/** 删除表情包 */ +export const deleteManagerFacePack = (id: number) => { + return request.delete({ url: '/im/manager/face-pack/delete?id=' + id }) +} + +/** 批量删除表情包 */ +export const deleteManagerFacePackList = (ids: number[]) => { + return request.delete({ + url: '/im/manager/face-pack/delete-list', + params: { ids: ids.join(',') } + }) +} diff --git a/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue b/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue index 93ac70c10..4943129b6 100644 --- a/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue +++ b/src/views/im/home/pages/conversation/components/input/EmojiPicker.vue @@ -1,10 +1,9 @@