refactor: chat user api

This commit is contained in:
wxg0103 2025-07-01 17:38:02 +08:00
parent f73721c73e
commit 63c836da04
18 changed files with 390 additions and 98 deletions

View File

@ -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<boolean>) => Promise<Result<WorkspaceItem[]>> = (loading) => {
return get('/workspace/by_user', undefined, loading)
}
/**
*
*/
const getWorkspaceList: (loading?: Ref<boolean>) => Promise<Result<Record<string, any>[]>> = (loading) => {
return get('/workspace/current_user', undefined, loading)
}
/**
*
*/
const getSystemWorkspaceList: (loading?: Ref<boolean>) => Promise<Result<WorkspaceItem[]>> = (loading) => {
return get(`${prefix}`, undefined, loading)
}
/**
*
*/
const CreateOrUpdateWorkspace: (
data: WorkspaceItem,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
*/
const deleteWorkspaceCheck: (workspace_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
workspace_id,
loading,
) => {
return get(`${prefix}/${workspace_id}/check`, undefined, loading)
}
/**
*
*/
const deleteWorkspace: (workspace_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
workspace_id,
loading,
) => {
return del(`${prefix}/${workspace_id}`, undefined, {}, loading)
}
/**
*
*/
const getWorkspaceMemberList: (
workspace_id: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>,
) => Promise<Result<PageList<WorkspaceMemberItem[]>>> = (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<boolean>,
) => Promise<Result<any>> = (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<boolean>) => Promise<Result<any>> = (
workspace_id,
user_relation_id,
loading,
) => {
return post(`${prefix}/${workspace_id}/remove_member/${user_relation_id}`, undefined, {}, loading)
}
/**
*
*/
const getWorkspaceRoleList: (loading?: Ref<boolean>) => Promise<Result<Record<string, any>[]>> = (loading) => {
return get('/role_list/current_user', undefined, loading)
}
export default {
getWorkspaceList,
getSystemWorkspaceList,
CreateOrUpdateWorkspace,
deleteWorkspace,
getWorkspaceMemberList,
CreateWorkspaceMember,
deleteWorkspaceMember,
getWorkspaceRoleList,
getWorkspaceListByUser,
deleteWorkspaceCheck
}

View File

@ -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<boolean>) => Promise<Result<ChatUserItem[]>> = (loading) => {
return get(`${prefix}/list`, undefined, loading)
}
/**
*
* @query
username_or_nickname: string
*/
const getUserManage: (
page: pageRequest,
params?: any,
loading?: Ref<boolean>,
) => Promise<Result<PageList<ChatUserItem[]>>> = (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<boolean>) => Promise<Result<boolean>> = (
user_id,
loading,
) => {
return del(`${prefix}/${user_id}`, undefined, {}, loading)
}
/**
*
*/
const postUserManage: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading,
) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
*/
const putUserManage: (
user_id: string,
data: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (user_id, data, loading) => {
return put(`${prefix}/${user_id}`, data, undefined, loading)
}
/**
*
*/
const putUserManagePassword: (
user_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (user_id, data, loading) => {
return put(`${prefix}/${user_id}/re_password`, data, undefined, loading)
}
/**
*
*/
const batchAddGroup: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading,
) => {
return post(`${prefix}/batch_add_group`, data, undefined, loading)
}
/**
*
*/
const batchDelete: (data: string[], loading?: Ref<boolean>) => Promise<Result<any>> = (
data,
loading,
) => {
return post(`${prefix}/batch_delete`, data, undefined, loading)
}
export default {
getUserManage,
putUserManage,
delUserManage,
postUserManage,
putUserManagePassword,
getChatUserList,
batchAddGroup,
batchDelete,
}

View File

@ -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<boolean>) => Promise<Result<ListItem[]>> = () => {
return get(`${prefix}`)
}
/**
*
* @param
* {
"id": "string",
"name": "string"
}
*/
const postUserGroup: (data: ListItem, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
data,
loading,
) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
* @param user_group_id
*/
const delUserGroup: (user_group_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
user_group_id,
loading,
) => {
return del(`${prefix}/${user_group_id}`, undefined, {}, loading)
}
/**
*
*/
const postAddMember: (
user_group_id: string,
body: any,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (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<boolean>,
) => Promise<Result<any>> = (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<boolean>,
) => Promise<Result<PageList<ChatUserGroupUserItem[]>>> = (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
}

View File

@ -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<boolean>) => Promise<Result<Workspa
return get(`${prefix}`, undefined, loading)
}
/**
*
*/
const CreateOrUpdateWorkspace: (
data: WorkspaceItem,
loading?: Ref<boolean>,
) => Promise<Result<any>> = (data, loading) => {
return post(`${prefix}`, data, undefined, loading)
}
/**
*
*/
const deleteWorkspaceCheck: (workspace_id: string, loading?: Ref<boolean>) => Promise<Result<any>> = (
workspace_id,
loading,
) => {
return get(`${prefix}/${workspace_id}/check`, undefined, loading)
}
/**
*
*/
const deleteWorkspace: (workspace_id: string, loading?: Ref<boolean>) => Promise<Result<boolean>> = (
workspace_id,
loading,
) => {
return del(`${prefix}/${workspace_id}`, undefined, {}, loading)
}
/**
*
@ -105,12 +76,9 @@ const getWorkspaceRoleList: (loading?: Ref<boolean>) => Promise<Result<Record<st
export default {
getWorkspaceList,
getSystemWorkspaceList,
CreateOrUpdateWorkspace,
deleteWorkspace,
getWorkspaceMemberList,
CreateWorkspaceMember,
deleteWorkspaceMember,
getWorkspaceRoleList,
getWorkspaceListByUser,
deleteWorkspaceCheck
}
}

View File

@ -2,16 +2,28 @@ import {PermissionConst, EditionConst, RoleConst} from '@/utils/permission/data'
import {hasPermission} from '@/utils/permission/index'
import roleSystemApi from '@/api/system/role'
import roleWorkspaceApi from '@/api/workspace/role'
import systemWorkspaceApi from '@/api/system/workspace'
import workspaceApi from '@/api/workspace/workspace'
import systemChatUserApi from '@/api/system/chat-user'
import workspaceChatUserApi from '@/api/workspace/chat-user'
import systemUserGroupApi from '@/api/system/user-group'
import workspaceUserGroupApi from '@/api/workspace/user-group'
import {ComplexPermission} from '../permission/type'
// 系统管理员 API
const systemApiMap = {
role: roleSystemApi,
workspace: systemWorkspaceApi,
chatUser: systemChatUserApi,
userGroup: systemUserGroupApi
} as any
// 企业版工作空间管理员 API
const workspaceApiMap = {
role: roleWorkspaceApi,
workspace: workspaceApi,
chatUser: workspaceChatUserApi,
userGroup: workspaceUserGroupApi
} as any
/** API
@ -20,19 +32,10 @@ const workspaceApiMap = {
export function loadPermissionApi(type: string) {
if (hasPermission([EditionConst.IS_EE, EditionConst.IS_PE], 'OR')) {
if (hasPermission(new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.ROLE_READ],
[],
'OR'), 'OR')) {
if (hasPermission([RoleConst.ADMIN, RoleConst.EXTENDS_ADMIN], 'OR')) {
// 加载系统管理员 API
return systemApiMap[type]
}
if (hasPermission(new ComplexPermission(
[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
[PermissionConst.WORKSPACE_ROLE_READ.getWorkspacePermissionWorkspaceManageRole],
[],
'OR'), 'OR')) {
} else if (hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.EXTENDS_WORKSPACE_MANAGE.getWorkspaceRole], 'OR')) {
// 加载企业版工作空间管理员 API
return workspaceApiMap[type]
}

View File

@ -34,6 +34,7 @@ import { MsgSuccess } from '@/utils/message'
import { t } from '@/locales'
import userManageApi from '@/api/system/chat-user'
import type { ListItem } from '@/api/type/common'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const props = defineProps<{
optionLoading: boolean,
@ -73,7 +74,7 @@ const submit = async (formEl: FormInstance | undefined) => {
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

View File

@ -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

View File

@ -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'))

View File

@ -21,7 +21,7 @@
{{ t('views.userManage.createUser') }}
</el-button>
<el-button @click="syncUsers"
v-hasPermission="
v-hasPermission="
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.CHAT_USER_SYNC],
@ -59,8 +59,8 @@
style="width: 120px"
@change="search_type_change"
>
<el-option :label="$t('views.login.loginForm.username.label')" value="username" />
<el-option :label="$t('views.userManage.userForm.nick_name.label')" value="nick_name" />
<el-option :label="$t('views.login.loginForm.username.label')" value="username"/>
<el-option :label="$t('views.userManage.userForm.nick_name.label')" value="nick_name"/>
</el-select>
<el-input
v-if="search_type === 'username'"
@ -88,17 +88,17 @@
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
>
<el-table-column type="selection" width="55" />
<el-table-column type="selection" width="55"/>
<el-table-column
prop="nick_name"
:label="$t('views.userManage.userForm.nick_name.label')"
/>
<el-table-column prop="username" :label="$t('common.username')" />
<el-table-column prop="username" :label="$t('common.username')"/>
<el-table-column prop="is_active" :label="$t('common.status.label')" width="100">
<template #default="{ row }">
<div v-if="row.is_active" class="flex align-center">
<el-icon class="color-success mr-8" style="font-size: 16px">
<SuccessFilled />
<SuccessFilled/>
</el-icon>
<span class="color-secondary">
{{ $t('common.status.enabled') }}
@ -137,7 +137,7 @@
min-width="110"
>
<template #default="{ row }">
<TagGroup :tags="row.user_group_names" />
<TagGroup :tags="row.user_group_names"/>
</template>
</el-table-column>
<el-table-column prop="source" :label="$t('views.userManage.source.label')">
@ -177,7 +177,7 @@
[],'OR'),'OR')"
/>
</span>
<el-divider direction="vertical" />
<el-divider direction="vertical"/>
<span class="mr-8">
<el-button
type="primary"
@ -190,7 +190,7 @@
[],'OR'),'OR')"
>
<el-icon>
<EditPen />
<EditPen/>
</el-icon>
</el-button>
</span>
@ -207,7 +207,7 @@
[],'OR'),'OR')"
>
<el-icon>
<Lock />
<Lock/>
</el-icon>
</el-button>
</span>
@ -224,7 +224,7 @@
[],'OR'),'OR')"
>
<el-icon>
<Delete />
<Delete/>
</el-icon>
</el-button>
</span>
@ -240,33 +240,34 @@
ref="UserDrawerRef"
@refresh="refresh"
/>
<UserPwdDialog ref="UserPwdDialogRef" @refresh="refresh" />
<UserPwdDialog ref="UserPwdDialogRef" @refresh="refresh"/>
<SetUserGroupsDialog
:optionLoading="optionLoading"
:chatGroupList="chatGroupList"
ref="setUserGroupsRef"
@refresh="refresh"
/>
<SyncUsersDialog ref="syncUsersDialogRef" @refresh="refresh" />
<SyncUsersDialog ref="syncUsersDialogRef" @refresh="refresh"/>
</div>
</template>
<script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue'
import {onMounted, ref, reactive} from 'vue'
import UserDrawer from './component/UserDrawer.vue'
import UserPwdDialog from './component/UserPwdDialog.vue'
import SetUserGroupsDialog from './component/SetUserGroupsDialog.vue'
import SyncUsersDialog from './component/SyncUsersDialog.vue'
import userManageApi from '@/api/system/chat-user'
import { datetimeFormat } from '@/utils/time'
import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { t } from '@/locales'
import type { ChatUserItem } from '@/api/type/systemChatUser'
import {datetimeFormat} from '@/utils/time'
import {MsgSuccess, MsgConfirm} from '@/utils/message'
import {t} from '@/locales'
import type {ChatUserItem} from '@/api/type/systemChatUser'
import SystemGroupApi from '@/api/system/user-group'
import type { ListItem } from '@/api/type/common'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { ComplexPermission } from '@/utils/permission/type'
import { hasPermission } from '@/utils/permission'
import type {ListItem} from '@/api/type/common'
import {PermissionConst, RoleConst} from '@/utils/permission/data'
import {ComplexPermission} from '@/utils/permission/type'
import {hasPermission} from '@/utils/permission'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const search_type = ref('username')
const search_form = ref<{
@ -277,7 +278,7 @@ const search_form = ref<{
nick_name: '',
})
const search_type_change = () => {
search_form.value = { username: '', nick_name: '' }
search_form.value = {username: '', nick_name: ''}
}
const loading = ref(false)
@ -300,7 +301,7 @@ function getList() {
const params = {
[search_type.value]: search_form.value[search_type.value as keyof typeof search_form.value],
}
return userManageApi.getUserManage(paginationConfig, params, loading).then((res) => {
return loadPermissionApi('chatUser').getUserManage(paginationConfig, params, loading).then((res) => {
userTableData.value = res.data.records
paginationConfig.total = res.data.total
})
@ -308,7 +309,7 @@ function getList() {
const orderBy = ref<string>('')
function handleSortChange({ prop, order }: { prop: string; order: string }) {
function handleSortChange({prop, order}: { prop: string; order: string }) {
orderBy.value = order === 'ascending' ? prop : `-${prop}`
getList()
}
@ -324,7 +325,7 @@ function changeState(row: ChatUserItem) {
is_active: !row.is_active,
}
const str = obj.is_active ? t('common.status.enableSuccess') : t('common.status.disableSuccess')
userManageApi
loadPermissionApi('chatUser')
.putUserManage(row.id, obj, loading)
.then(() => {
getList()
@ -356,12 +357,13 @@ function deleteUserManage(row: ChatUserItem) {
})
.then(() => {
loading.value = true
userManageApi.delUserManage(row.id, loading).then(() => {
loadPermissionApi('chatUser').delUserManage(row.id, loading).then(() => {
MsgSuccess(t('common.deleteSuccess'))
getList()
})
})
.catch(() => {})
.catch(() => {
})
}
const UserPwdDialogRef = ref()
@ -384,7 +386,7 @@ const chatGroupList = ref<ListItem[]>([])
async function getChatGroupList() {
try {
const res = await SystemGroupApi.getUserGroup(optionLoading)
const res = await loadPermissionApi('userGroup').getUserGroup(optionLoading)
chatGroupList.value = res.data
} catch (e) {
console.error(e)
@ -392,12 +394,12 @@ async function getChatGroupList() {
}
function handleBatchDelete() {
MsgConfirm(t('views.chatUser.batchDeleteUser', { count: multipleSelection.value.length }), '', {
MsgConfirm(t('views.chatUser.batchDeleteUser', {count: multipleSelection.value.length}), '', {
confirmButtonText: t('common.confirm'),
confirmButtonClass: 'color-danger',
})
.then(() => {
userManageApi
loadPermissionApi('chatUser')
.batchDelete(
multipleSelection.value.map((item) => item.id),
loading,
@ -407,7 +409,8 @@ function handleBatchDelete() {
await getList()
})
})
.catch(() => {})
.catch(() => {
})
}
const setUserGroupsRef = ref<InstanceType<typeof SetUserGroupsDialog>>()

View File

@ -35,6 +35,7 @@ import {t} from '@/locales'
import SystemGroupApi from '@/api/system/user-group'
import userManageApi from '@/api/system/chat-user'
import type {ChatUserItem} from '@/api/type/systemChatUser'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const emit = defineEmits<{
(e: 'refresh'): void;
@ -53,7 +54,7 @@ const chatUserList = ref<ChatUserItem[]>([])
async function getChatUserList() {
try {
const res = await userManageApi.getChatUserList(optionLoading)
const res = await loadPermissionApi('chatUser').getChatUserList(optionLoading)
chatUserList.value = res.data
} catch (e) {
console.error(e)
@ -93,7 +94,7 @@ const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return
await formEl.validate((valid) => {
if (valid) {
SystemGroupApi.postAddMember(groupId.value, {"user_ids": form.value.user}, loading).then(() => {
loadPermissionApi('userGroup').postAddMember(groupId.value, {"user_ids": form.value.user}, loading).then(() => {
MsgSuccess(t('common.addSuccess'))
emit('refresh')
dialogVisible.value = false

View File

@ -25,6 +25,7 @@ import { MsgSuccess } from '@/utils/message'
import { t } from '@/locales'
import SystemGroupApi from '@/api/system/user-group'
import type { ListItem } from '@/api/type/common'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const emit = defineEmits<{
@ -58,7 +59,7 @@ const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return
await formEl.validate((valid) => {
if (valid) {
SystemGroupApi.postUserGroup(form.value, loading).then((res: any) => {
loadPermissionApi('userGroup').postUserGroup(form.value, loading).then((res: any) => {
MsgSuccess(!form.value.id ? t('common.createSuccess') : t('common.renameSuccess'))
emit('refresh', res.data)
dialogVisible.value = false

View File

@ -241,6 +241,7 @@ import {MsgSuccess, MsgConfirm} from '@/utils/message'
import {PermissionConst, RoleConst} from '@/utils/permission/data'
import {ComplexPermission} from '@/utils/permission/type'
import {hasPermission} from '@/utils/permission/index'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const filterText = ref('')
const loading = ref(false)
@ -250,7 +251,7 @@ const current = ref<ListItem>()
async function getUserGroupList() {
try {
const res = await SystemGroupApi.getUserGroup(loading)
const res = await loadPermissionApi('userGroup').getUserGroup(loading)
list.value = res.data
filterList.value = filter(list.value, filterText.value)
} catch (error) {
@ -294,7 +295,7 @@ function deleteGroup(item: ListItem) {
},
)
.then(() => {
SystemGroupApi.delUserGroup(item.id as string, loading).then(async () => {
loadPermissionApi('userGroup').delUserGroup(item.id as string, loading).then(async () => {
MsgSuccess(t('common.deleteSuccess'))
await getUserGroupList()
current.value = item.id === current.value?.id ? list.value[0] : current.value
@ -335,7 +336,7 @@ async function getList() {
const params = {
[searchType.value]: searchForm.value[searchType.value as keyof typeof searchForm.value],
}
const res = await SystemGroupApi.getUserListByGroup(
const res = await loadPermissionApi('userGroup').getUserListByGroup(
current.value?.id,
paginationConfig,
params,
@ -384,7 +385,7 @@ function handleDeleteUser(item?: ChatUserGroupUserItem) {
},
)
.then(() => {
SystemGroupApi.postRemoveMember(
loadPermissionApi('userGroup').postRemoveMember(
current.value?.id as string,
{
group_relation_ids: item

View File

@ -81,7 +81,7 @@ async function getUserFormItem() {
async function getWorkspaceFormItem() {
try {
const res = await WorkspaceApi.getWorkspaceList(memberFormContentLoading)
const res = await loadPermissionApi('workspace').getWorkspaceList(memberFormContentLoading)
workspaceFormItem.value = [
{
path: 'workspace_ids',

View File

@ -32,6 +32,7 @@ import { t } from '@/locales'
import type { RoleItem, CreateOrUpdateParams } from '@/api/type/role'
import RoleApi from '@/api/system/role'
import { roleTypeMap } from '../index'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const emit = defineEmits<{
(e: 'refresh', currentRole: RoleItem): void;
@ -69,7 +70,7 @@ const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return
await formEl.validate((valid) => {
if (valid) {
RoleApi.CreateOrUpdateRole(form.value, loading).then((res: any) => {
loadPermissionApi('role').CreateOrUpdateRole(form.value, loading).then((res: any) => {
MsgSuccess(!form.value.role_id ? t('common.createSuccess') : t('common.renameSuccess'))
emit('refresh', res.data)
dialogVisible.value = false

View File

@ -28,6 +28,7 @@ import { MsgSuccess } from '@/utils/message'
import type { CreateWorkspaceMemberParamsItem, WorkspaceItem } from '@/api/type/workspace'
import type { FormItemModel } from '@/api/type/role'
import { RoleTypeEnum } from '@/enums/system'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const props = defineProps<{
currentWorkspace?: WorkspaceItem
@ -73,7 +74,7 @@ async function getUserFormItem() {
async function getRoleFormItem() {
try {
const res = await WorkspaceApi.getWorkspaceRoleList(memberFormContentLoading);
const res = await loadPermissionApi('workspace').getWorkspaceRoleList(memberFormContentLoading);
roleFormItem.value = [{
path: 'role_ids',
label: t('views.role.member.role'),
@ -120,7 +121,7 @@ const memberFormContentRef = ref<InstanceType<typeof MemberFormContent>>()
function handleAdd() {
memberFormContentRef.value?.validate().then(async (valid: any) => {
if (valid) {
await WorkspaceApi.CreateWorkspaceMember(props.currentWorkspace?.id as string, list.value, loading)
await loadPermissionApi('workspace').CreateWorkspaceMember(props.currentWorkspace?.id as string, list.value, loading)
MsgSuccess(t('common.addSuccess'))
handleCancel();
emit('refresh')

View File

@ -25,6 +25,7 @@ import { MsgSuccess } from '@/utils/message'
import { t } from '@/locales'
import type { WorkspaceItem } from '@/api/type/workspace'
import WorkspaceApi from '@/api/workspace/workspace'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const emit = defineEmits<{
(e: 'refresh', currentWorkspace: WorkspaceItem): void;
@ -57,7 +58,7 @@ const submit = async (formEl: FormInstance | undefined) => {
if (!formEl) return
await formEl.validate((valid) => {
if (valid) {
WorkspaceApi.CreateOrUpdateWorkspace(form.value, loading).then((res: any) => {
loadPermissionApi('workspace').CreateOrUpdateWorkspace(form.value, loading).then((res: any) => {
MsgSuccess(!form.value.id ? t('common.createSuccess') : t('common.renameSuccess'))
emit('refresh', res.data)
dialogVisible.value = false

View File

@ -78,6 +78,7 @@ import WorkspaceApi from '@/api/workspace/workspace'
import type { WorkspaceMemberItem, WorkspaceItem } from '@/api/type/workspace'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { ComplexPermission } from '@/utils/permission/type'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const props = defineProps<{
@ -104,7 +105,7 @@ async function getList() {
const params = {
[searchType.value]: searchForm.value[searchType.value],
}
const res = await WorkspaceApi.getWorkspaceMemberList(
const res = await loadPermissionApi('workspace').getWorkspaceMemberList(
props.currentWorkspace?.id,
paginationConfig,
params,
@ -162,7 +163,7 @@ function handleDelete(row: WorkspaceMemberItem) {
})
.then(() => {
loading.value = true
WorkspaceApi.deleteWorkspaceMember(
loadPermissionApi('workspace').deleteWorkspaceMember(
props.currentWorkspace?.id as string,
row.user_relation_id,
loading,

View File

@ -120,6 +120,7 @@ import type { WorkspaceItem } from '@/api/type/workspace'
import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const filterText = ref('')
const loading = ref(false)
@ -129,7 +130,7 @@ const currentWorkspace = ref<WorkspaceItem>()
async function getWorkspace() {
try {
const res = await WorkspaceApi.getSystemWorkspaceList(loading)
const res = await loadPermissionApi('workspace').getSystemWorkspaceList(loading)
list.value = res.data
filterList.value = filter(list.value, filterText.value)
} catch (error) {
@ -175,7 +176,7 @@ function createOrUpdateWorkspace(item?: WorkspaceItem) {
async function check(id: string) {
try {
return await WorkspaceApi.deleteWorkspaceCheck(id)
return await loadPermissionApi('workspace').deleteWorkspaceCheck(id)
} catch (error) {
console.log(error)
}
@ -194,7 +195,7 @@ async function deleteWorkspace(item: WorkspaceItem) {
confirmButtonClass: 'color-danger',
},
).then(() => {
WorkspaceApi.deleteWorkspace(item.id as string, loading).then(async () => {
loadPermissionApi('workspace').deleteWorkspace(item.id as string, loading).then(async () => {
MsgSuccess(t('common.deleteSuccess'))
await getWorkspace()
currentWorkspace.value =