From 63c836da044e12db46b727ae58ebfa8bd6b30a6f Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Tue, 1 Jul 2025 17:38:02 +0800 Subject: [PATCH] refactor: chat user api --- ui/src/api/system/workspace.ts | 116 ++++++++++++++++++ ui/src/api/workspace/chat-user.ts | 105 ++++++++++++++++ ui/src/api/workspace/user-group.ts | 86 +++++++++++++ ui/src/api/workspace/workspace.ts | 36 +----- ui/src/utils/dynamics-api/permission-api.ts | 25 ++-- .../component/SetUserGroupsDialog.vue | 3 +- .../chat-user/component/UserDrawer.vue | 5 +- .../chat-user/component/UserPwdDialog.vue | 3 +- .../system-chat-user/chat-user/index.vue | 67 +++++----- .../group/component/CreateGroupUserDialog.vue | 5 +- .../component/CreateOrUpdateGroupDialog.vue | 3 +- ui/src/views/system-chat-user/group/index.vue | 9 +- .../system/role/component/AddMemberDrawer.vue | 2 +- .../component/CreateOrUpdateRoleDialog.vue | 3 +- .../workspace/component/AddMemberDrawer.vue | 5 +- .../CreateOrUpdateWorkspaceDialog.vue | 3 +- .../system/workspace/component/Member.vue | 5 +- ui/src/views/system/workspace/index.vue | 7 +- 18 files changed, 390 insertions(+), 98 deletions(-) create mode 100644 ui/src/api/system/workspace.ts create mode 100644 ui/src/api/workspace/chat-user.ts create mode 100644 ui/src/api/workspace/user-group.ts diff --git a/ui/src/api/system/workspace.ts b/ui/src/api/system/workspace.ts new file mode 100644 index 000000000..3508a97bc --- /dev/null +++ b/ui/src/api/system/workspace.ts @@ -0,0 +1,116 @@ +import { Result } from '@/request/Result' +import type { Ref } from 'vue' +import { get, post, del } from '@/request/index' +import type { WorkspaceItem, CreateWorkspaceMemberParamsItem, WorkspaceMemberItem } from '@/api/type/workspace' +import type { pageRequest, PageList } from '@/api/type/common' + +const prefix = '/system/workspace' + +/** + * 获取首页的工作空间下拉列表 + */ +const getWorkspaceListByUser: (loading?: Ref) => Promise> = (loading) => { + return get('/workspace/by_user', undefined, loading) +} + +/** + * 获取添加成员时的工作空间下拉列表 + */ +const getWorkspaceList: (loading?: Ref) => Promise[]>> = (loading) => { + return get('/workspace/current_user', undefined, loading) +} + +/** + * 获取工作空间列表 + */ +const getSystemWorkspaceList: (loading?: Ref) => Promise> = (loading) => { + return get(`${prefix}`, undefined, loading) +} + +/** + * 新建或更新工作空间 + */ +const CreateOrUpdateWorkspace: ( + data: WorkspaceItem, + loading?: Ref, +) => Promise> = (data, loading) => { + return post(`${prefix}`, data, undefined, loading) +} + +/** + * 删除工作空间前的校验 + */ +const deleteWorkspaceCheck: (workspace_id: string, loading?: Ref) => Promise> = ( + workspace_id, + loading, +) => { + return get(`${prefix}/${workspace_id}/check`, undefined, loading) +} + +/** + * 删除工作空间 + */ +const deleteWorkspace: (workspace_id: string, loading?: Ref) => Promise> = ( + workspace_id, + loading, +) => { + return del(`${prefix}/${workspace_id}`, undefined, {}, loading) +} + +/** + * 获取工作空间成员列表 + */ +const getWorkspaceMemberList: ( + workspace_id: string, + page: pageRequest, + param: any, + loading?: Ref, +) => Promise>> = (workspace_id, page, param, loading) => { + return get( + `${prefix}/${workspace_id}/user_list/${page.current_page}/${page.page_size}`, + param, + loading, + ) +} + +/** + * 新建工作空间成员 + */ +const CreateWorkspaceMember: ( + workspace_id: string, + data: CreateWorkspaceMemberParamsItem[], + loading?: Ref, +) => Promise> = (workspace_id, data, loading) => { + return post(`${prefix}/${workspace_id}/add_member`, data, undefined, loading) +} + +/** + * 删除工作空间成员 + */ +const deleteWorkspaceMember: (workspace_id: string, user_relation_id: string, loading?: Ref) => Promise> = ( + workspace_id, + user_relation_id, + loading, +) => { + return post(`${prefix}/${workspace_id}/remove_member/${user_relation_id}`, undefined, {}, loading) +} + +/** + * 获取添加成员时的角色下拉列表 + */ +const getWorkspaceRoleList: (loading?: Ref) => Promise[]>> = (loading) => { + return get('/role_list/current_user', undefined, loading) +} + +export default { + getWorkspaceList, + getSystemWorkspaceList, + CreateOrUpdateWorkspace, + deleteWorkspace, + getWorkspaceMemberList, + CreateWorkspaceMember, + deleteWorkspaceMember, + getWorkspaceRoleList, + getWorkspaceListByUser, + deleteWorkspaceCheck +} diff --git a/ui/src/api/workspace/chat-user.ts b/ui/src/api/workspace/chat-user.ts new file mode 100644 index 000000000..1ca2ec66b --- /dev/null +++ b/ui/src/api/workspace/chat-user.ts @@ -0,0 +1,105 @@ +import {Result} from '@/request/Result' +import {get, put, post, del} from '@/request/index' +import type {pageRequest, PageList} from '@/api/type/common' +import type {ChatUserItem} from '@/api/type/systemChatUser' +import type {Ref} from 'vue' + +const prefix = '/workspace/chat_user' + + +/** + * 用户列表 + */ +const getChatUserList: (loading?: Ref) => Promise> = (loading) => { + return get(`${prefix}/list`, undefined, loading) +} + +/** + * 用户分页列表 + * @query 参数 + username_or_nickname: string + */ +const getUserManage: ( + page: pageRequest, + params?: any, + loading?: Ref, +) => Promise>> = (page, params, loading) => { + return get( + `${prefix}/user_manage/${page.current_page}/${page.page_size}`, + params ? params : undefined, + loading, + ) +} + +/** + * 删除用户 + * @param 参数 user_id, + */ +const delUserManage: (user_id: string, loading?: Ref) => Promise> = ( + user_id, + loading, +) => { + return del(`${prefix}/${user_id}`, undefined, {}, loading) +} + +/** + * 创建用户 + */ +const postUserManage: (data: any, loading?: Ref) => Promise> = ( + data, + loading, +) => { + return post(`${prefix}`, data, undefined, loading) +} + +/** + * 编辑用户 + */ +const putUserManage: ( + user_id: string, + data: any, + loading?: Ref, +) => Promise> = (user_id, data, loading) => { + return put(`${prefix}/${user_id}`, data, undefined, loading) +} + +/** + * 修改用户密码 + */ +const putUserManagePassword: ( + user_id: string, + data: any, + loading?: Ref +) => Promise> = (user_id, data, loading) => { + return put(`${prefix}/${user_id}/re_password`, data, undefined, loading) +} + +/** + * 设置用户组 + */ +const batchAddGroup: (data: any, loading?: Ref) => Promise> = ( + data, + loading, +) => { + return post(`${prefix}/batch_add_group`, data, undefined, loading) +} + +/** + * 批量删除 + */ +const batchDelete: (data: string[], loading?: Ref) => Promise> = ( + data, + loading, +) => { + return post(`${prefix}/batch_delete`, data, undefined, loading) +} +export default { + getUserManage, + putUserManage, + delUserManage, + postUserManage, + putUserManagePassword, + getChatUserList, + batchAddGroup, + batchDelete, +} diff --git a/ui/src/api/workspace/user-group.ts b/ui/src/api/workspace/user-group.ts new file mode 100644 index 000000000..8a7dcf649 --- /dev/null +++ b/ui/src/api/workspace/user-group.ts @@ -0,0 +1,86 @@ +import {Result} from '@/request/Result' +import {get, post, del} from '@/request/index' +import type {Ref} from 'vue' +import type {ChatUserGroupUserItem,} from '@/api/type/systemChatUser' +import type {pageRequest, PageList, ListItem} from '@/api/type/common' + +const prefix = '/workspace/group' + +/** + * 获取用户组列表 + */ +const getUserGroup: (loading?: Ref) => Promise> = () => { + return get(`${prefix}`) +} + +/** + * 创建用户组 + * @param 参数 + * { + "id": "string", + "name": "string" + } + */ +const postUserGroup: (data: ListItem, loading?: Ref) => Promise> = ( + data, + loading, +) => { + return post(`${prefix}`, data, undefined, loading) +} + +/** + * 删除用户组 + * @param 参数 user_group_id + */ +const delUserGroup: (user_group_id: string, loading?: Ref) => Promise> = ( + user_group_id, + loading, +) => { + return del(`${prefix}/${user_group_id}`, undefined, {}, loading) +} + +/** + * 给用户组添加用户 + */ +const postAddMember: ( + user_group_id: string, + body: any, + loading?: Ref, +) => Promise> = (user_group_id, body, loading) => { + return post(`${prefix}/${user_group_id}/add_member`, body, {}, loading) +} + +/** + * 从用户组删除用户 + */ +const postRemoveMember: ( + user_group_id: string, + body: any, + loading?: Ref, +) => Promise> = (user_group_id, body, loading) => { + return post(`${prefix}/${user_group_id}/remove_member`, body, {}, loading) +} + +/** + * 获取用户组的成员列表 + */ +const getUserListByGroup: ( + user_group_id: string, + page: pageRequest, + params ?: any, + loading?: Ref, +) => Promise>> = (user_group_id, page, params, loading) => { + return get( + `${prefix}/${user_group_id}/user_list/${page.current_page}/${page.page_size}`, + params ? params : undefined, + loading, + ) +} +export default { + getUserGroup, + postUserGroup, + delUserGroup, + postAddMember, + postRemoveMember, + getUserListByGroup +} diff --git a/ui/src/api/workspace/workspace.ts b/ui/src/api/workspace/workspace.ts index ea0fd3a9a..672360f3a 100644 --- a/ui/src/api/workspace/workspace.ts +++ b/ui/src/api/workspace/workspace.ts @@ -4,7 +4,7 @@ import { get, post, del } from '@/request/index' import type { WorkspaceItem, CreateWorkspaceMemberParamsItem, WorkspaceMemberItem } from '@/api/type/workspace' import type { pageRequest, PageList } from '@/api/type/common' -const prefix = '/system/workspace' +const prefix = '/workspace' /** * 获取首页的工作空间下拉列表 @@ -27,35 +27,6 @@ const getSystemWorkspaceList: (loading?: Ref) => Promise, -) => Promise> = (data, loading) => { - return post(`${prefix}`, data, undefined, loading) -} - -/** - * 删除工作空间前的校验 - */ -const deleteWorkspaceCheck: (workspace_id: string, loading?: Ref) => Promise> = ( - workspace_id, - loading, -) => { - return get(`${prefix}/${workspace_id}/check`, undefined, loading) -} - -/** - * 删除工作空间 - */ -const deleteWorkspace: (workspace_id: string, loading?: Ref) => Promise> = ( - workspace_id, - loading, -) => { - return del(`${prefix}/${workspace_id}`, undefined, {}, loading) -} /** * 获取工作空间成员列表 @@ -105,12 +76,9 @@ const getWorkspaceRoleList: (loading?: Ref) => Promise { if (!formEl) return await formEl.validate((valid) => { if (valid) { - userManageApi.batchAddGroup(form.value, loading).then(() => { + loadPermissionApi('chatUser').batchAddGroup(form.value, loading).then(() => { MsgSuccess(t('common.settingSuccess')) emit('refresh') dialogVisible.value = false diff --git a/ui/src/views/system-chat-user/chat-user/component/UserDrawer.vue b/ui/src/views/system-chat-user/chat-user/component/UserDrawer.vue index d7993da0c..c42aee8df 100644 --- a/ui/src/views/system-chat-user/chat-user/component/UserDrawer.vue +++ b/ui/src/views/system-chat-user/chat-user/component/UserDrawer.vue @@ -57,6 +57,7 @@ import { MsgSuccess } from '@/utils/message' import { t } from '@/locales' import type { ListItem } from '@/api/type/common' import { copyClick } from '@/utils/clipboard' +import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts"; const props = defineProps<{ title: string, @@ -153,13 +154,13 @@ const submit = async (formEl: FormInstance | undefined) => { await formEl.validate((valid, fields) => { if (valid) { if (isEdit.value) { - chatUserApi.putUserManage(userForm.value.id, userForm.value, loading).then((res) => { + loadPermissionApi('chatUser').putUserManage(userForm.value.id, userForm.value, loading).then((res) => { emit('refresh') MsgSuccess(t('common.editSuccess')) visible.value = false }) } else { - chatUserApi.postUserManage(userForm.value, loading).then((res) => { + loadPermissionApi('chatUser').postUserManage(userForm.value, loading).then((res) => { emit('refresh') MsgSuccess(t('common.createSuccess')) visible.value = false diff --git a/ui/src/views/system-chat-user/chat-user/component/UserPwdDialog.vue b/ui/src/views/system-chat-user/chat-user/component/UserPwdDialog.vue index 1d68278c0..548dcf236 100644 --- a/ui/src/views/system-chat-user/chat-user/component/UserPwdDialog.vue +++ b/ui/src/views/system-chat-user/chat-user/component/UserPwdDialog.vue @@ -47,6 +47,7 @@ import type { ResetPasswordRequest } from '@/api/type/user' import userManageApi from '@/api/system/chat-user' import { MsgSuccess } from '@/utils/message' import { t } from '@/locales' +import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts"; const emit = defineEmits(['refresh']) const { user } = useStore() @@ -118,7 +119,7 @@ const submit = async (formEl: FormInstance | undefined) => { if (!formEl) return await formEl.validate((valid, fields) => { if (valid) { - userManageApi.putUserManagePassword(userId.value, userForm.value, loading).then((res) => { + loadPermissionApi('chatUser').putUserManagePassword(userId.value, userForm.value, loading).then((res) => { emit('refresh') user.profile() MsgSuccess(t('views.userManage.tip.updatePwdSuccess')) diff --git a/ui/src/views/system-chat-user/chat-user/index.vue b/ui/src/views/system-chat-user/chat-user/index.vue index 199411a2a..7c37f44e6 100644 --- a/ui/src/views/system-chat-user/chat-user/index.vue +++ b/ui/src/views/system-chat-user/chat-user/index.vue @@ -21,7 +21,7 @@ {{ t('views.userManage.createUser') }} - - + + - + - +