mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
refactor: chat user api
This commit is contained in:
parent
f73721c73e
commit
63c836da04
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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,
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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'))
|
||||
|
|
|
|||
|
|
@ -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>>()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 =
|
||||
|
|
|
|||
Loading…
Reference in New Issue