refactor: update user search parameters and improve code formatting in chat user components
This commit is contained in:
parent
dd7b2a7bda
commit
549aa62349
@ -33,12 +33,12 @@ const getUserGroupUserList: (
|
|||||||
resource: any,
|
resource: any,
|
||||||
user_group_id: string,
|
user_group_id: string,
|
||||||
page: pageRequest,
|
page: pageRequest,
|
||||||
username_or_nickname: string,
|
params?: any,
|
||||||
loading?: Ref<boolean>,
|
loading?: Ref<boolean>,
|
||||||
) => Promise<Result<PageList<ChatUserGroupUserItem[]>>> = (resource, user_group_id, page, username_or_nickname, loading) => {
|
) => Promise<Result<PageList<ChatUserGroupUserItem[]>>> = (resource, user_group_id, page, params, loading) => {
|
||||||
return get(
|
return get(
|
||||||
`${prefix.value}/${resource.resource_type}/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`,
|
`${prefix.value}/${resource.resource_type}/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`,
|
||||||
username_or_nickname ? { username_or_nickname } : undefined,
|
params,
|
||||||
loading,
|
loading,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
import { Result } from '@/request/Result'
|
import {Result} from '@/request/Result'
|
||||||
import { get, post, del, put, exportFile, exportExcel } from '@/request/index'
|
import {get, post, del, put, exportFile, exportExcel} from '@/request/index'
|
||||||
import { type Ref } from 'vue'
|
import {type Ref} from 'vue'
|
||||||
import type { PageList, pageRequest } from '@/api/type/common'
|
import type {PageList, pageRequest} from '@/api/type/common'
|
||||||
import type { knowledgeData } from '@/api/type/knowledge'
|
import type {knowledgeData} from '@/api/type/knowledge'
|
||||||
|
|
||||||
import useStore from '@/stores'
|
import useStore from '@/stores'
|
||||||
import type { ChatUserGroupItem } from './type/workspaceChatUser'
|
import type {ChatUserGroupItem} from './type/workspaceChatUser'
|
||||||
|
|
||||||
const prefix = '/system/shared'
|
const prefix = '/system/shared'
|
||||||
const prefix_workspace: any = { _value: 'workspace/' }
|
const prefix_workspace: any = {_value: 'workspace/'}
|
||||||
Object.defineProperty(prefix_workspace, 'value', {
|
Object.defineProperty(prefix_workspace, 'value', {
|
||||||
get: function () {
|
get: function () {
|
||||||
const { user } = useStore()
|
const {user} = useStore()
|
||||||
return this._value + user.getWorkspaceId()
|
return this._value + user.getWorkspaceId()
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -107,14 +107,14 @@ const getProblemsPage: (
|
|||||||
*/
|
*/
|
||||||
const getUserGroupUserList: (
|
const getUserGroupUserList: (
|
||||||
resource: any,
|
resource: any,
|
||||||
user_group_id:string,
|
user_group_id: string,
|
||||||
page: pageRequest,
|
page: pageRequest,
|
||||||
username_or_nickname: string,
|
params?: any,
|
||||||
loading?: Ref<boolean>,
|
loading?: Ref<boolean>,
|
||||||
) => Promise<Result<PageList<ChatUserGroupItem[]>>> = (resource, user_group_id, page, username_or_nickname, loading) => {
|
) => Promise<Result<PageList<ChatUserGroupItem[]>>> = (resource, user_group_id, page, params, loading) => {
|
||||||
return get (
|
return get(
|
||||||
`${prefix}/${prefix_workspace.value}/KNOWLEDGE/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`
|
`${prefix}/${prefix_workspace.value}/KNOWLEDGE/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`,
|
||||||
,username_or_nickname ? {username_or_nickname} : undefined, loading,
|
params, loading,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ const getUserGroupUserList: (
|
|||||||
* 获取工作空间下共享知识库的用户组
|
* 获取工作空间下共享知识库的用户组
|
||||||
*/
|
*/
|
||||||
const getUserGroupList: (resource: any, loading?: Ref<boolean>) => Promise<Result<ChatUserGroupItem[]>> = (resource, loading) => {
|
const getUserGroupList: (resource: any, loading?: Ref<boolean>) => Promise<Result<ChatUserGroupItem[]>> = (resource, loading) => {
|
||||||
return get (`${prefix}/${prefix_workspace.value}/KNOWLEDGE/${resource.resource_id}/user_group`, undefined, loading)
|
return get(`${prefix}/${prefix_workspace.value}/KNOWLEDGE/${resource.resource_id}/user_group`, undefined, loading)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -29,12 +29,12 @@ const getUserGroupUserList: (
|
|||||||
resource: any,
|
resource: any,
|
||||||
user_group_id: string,
|
user_group_id: string,
|
||||||
page: pageRequest,
|
page: pageRequest,
|
||||||
username_or_nickname: string,
|
param?: any,
|
||||||
loading?: Ref<boolean>,
|
loading?: Ref<boolean>,
|
||||||
) => Promise<Result<PageList<ChatUserGroupUserItem[]>>> = (resource, user_group_id, page, username_or_nickname, loading) => {
|
) => Promise<Result<PageList<ChatUserGroupUserItem[]>>> = (resource, user_group_id, page, param, loading) => {
|
||||||
return get(
|
return get(
|
||||||
`${prefix}/${resource.resource_type}/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`,
|
`${prefix}/${resource.resource_type}/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`,
|
||||||
username_or_nickname ? {username_or_nickname} : undefined,
|
param,
|
||||||
loading,
|
loading,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,12 +29,12 @@ const getUserGroupUserList: (
|
|||||||
resource: any,
|
resource: any,
|
||||||
user_group_id: string,
|
user_group_id: string,
|
||||||
page: pageRequest,
|
page: pageRequest,
|
||||||
username_or_nickname: string,
|
params?: any,
|
||||||
loading?: Ref<boolean>,
|
loading?: Ref<boolean>,
|
||||||
) => Promise<Result<PageList<ChatUserGroupUserItem[]>>> = (resource, user_group_id, page, username_or_nickname, loading) => {
|
) => Promise<Result<PageList<ChatUserGroupUserItem[]>>> = (resource, user_group_id, page, params, loading) => {
|
||||||
return get(
|
return get(
|
||||||
`${prefix}/${resource.resource_type}/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`,
|
`${prefix}/${resource.resource_type}/${resource.resource_id}/user_group_id/${user_group_id}/${page.current_page}/${page.page_size}`,
|
||||||
username_or_nickname ? {username_or_nickname} : undefined,
|
params,
|
||||||
loading,
|
loading,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,9 +47,11 @@
|
|||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<div class="flex align-center">
|
<div class="flex align-center">
|
||||||
<h4 class="medium ellipsis" :title="current?.name">{{ current?.name || '-' }}</h4>
|
<h4 class="medium ellipsis" :title="current?.name">{{ current?.name || '-' }}</h4>
|
||||||
<el-divider direction="vertical" class="mr-8 ml-8" />
|
<el-divider direction="vertical" class="mr-8 ml-8"/>
|
||||||
|
|
||||||
<el-icon class="color-input-placeholder"><UserFilled /></el-icon>
|
<el-icon class="color-input-placeholder">
|
||||||
|
<UserFilled/>
|
||||||
|
</el-icon>
|
||||||
<span class="color-input-placeholder ml-4">
|
<span class="color-input-placeholder ml-4">
|
||||||
{{ paginationConfig.total }}
|
{{ paginationConfig.total }}
|
||||||
</span>
|
</span>
|
||||||
@ -76,16 +78,69 @@
|
|||||||
<div class="flex-between mb-16" style="margin-top: 18px">
|
<div class="flex-between mb-16" style="margin-top: 18px">
|
||||||
<div class="flex complex-search">
|
<div class="flex complex-search">
|
||||||
<el-select class="complex-search__left" v-model="searchType" style="width: 120px">
|
<el-select class="complex-search__left" v-model="searchType" style="width: 120px">
|
||||||
<el-option :label="$t('views.login.loginForm.username.label')" value="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-option :label="$t('views.userManage.source.label')" value="source"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-input
|
<el-input
|
||||||
v-if="searchType === 'name'"
|
v-if="searchType === 'username'"
|
||||||
v-model="searchForm.name"
|
v-model="searchForm.username"
|
||||||
@change="getList"
|
@change="getList"
|
||||||
:placeholder="$t('common.inputPlaceholder')"
|
:placeholder="$t('common.inputPlaceholder')"
|
||||||
style="width: 220px"
|
style="width: 220px"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
|
<el-input
|
||||||
|
v-else-if="searchType === 'nick_name'"
|
||||||
|
v-model="searchForm.nick_name"
|
||||||
|
@change="getList"
|
||||||
|
:placeholder="$t('common.inputPlaceholder')"
|
||||||
|
style="width: 220px"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
<el-select
|
||||||
|
v-else-if="searchType === 'source'"
|
||||||
|
v-model="searchForm.source"
|
||||||
|
@change="getList"
|
||||||
|
:placeholder="$t('common.selectPlaceholder')"
|
||||||
|
style="width: 220px"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:label="$t('views.userManage.source.local')"
|
||||||
|
value="LOCAL"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="CAS"
|
||||||
|
value="CAS"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="LDAP"
|
||||||
|
value="LDAP"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="OIDC"
|
||||||
|
value="OIDC"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
label="OAuth2"
|
||||||
|
value="OAuth2"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
:label="$t('views.userManage.source.wecom')"
|
||||||
|
value="wecom"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
:label="$t('views.userManage.source.lark')"
|
||||||
|
value="lark"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
:label="$t('views.userManage.source.dingtalk')"
|
||||||
|
value="dingtalk"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="flex align-center"
|
class="flex align-center"
|
||||||
@ -121,7 +176,7 @@
|
|||||||
prop="nick_name"
|
prop="nick_name"
|
||||||
:label="$t('views.userManage.userForm.nick_name.label')"
|
:label="$t('views.userManage.userForm.nick_name.label')"
|
||||||
/>
|
/>
|
||||||
<el-table-column prop="username" :label="$t('views.login.loginForm.username.label')" />
|
<el-table-column prop="username" :label="$t('views.login.loginForm.username.label')"/>
|
||||||
<el-table-column prop="source" :label="$t('views.userManage.source.label')">
|
<el-table-column prop="source" :label="$t('views.userManage.source.label')">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{
|
{{
|
||||||
@ -146,7 +201,8 @@
|
|||||||
:indeterminate="allIndeterminate"
|
:indeterminate="allIndeterminate"
|
||||||
:disabled="current?.is_auth"
|
:disabled="current?.is_auth"
|
||||||
@change="handleCheckAll"
|
@change="handleCheckAll"
|
||||||
>{{ $t('views.chatUser.authorization') }}</el-checkbox
|
>{{ $t('views.chatUser.authorization') }}
|
||||||
|
</el-checkbox
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
@ -166,22 +222,22 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, ref, watch, reactive, computed } from 'vue'
|
import {onMounted, ref, watch, reactive, computed} from 'vue'
|
||||||
|
|
||||||
import { t } from '@/locales'
|
import {t} from '@/locales'
|
||||||
import type { ChatUserGroupItem, ChatUserGroupUserItem } from '@/api/type/workspaceChatUser'
|
import type {ChatUserGroupItem, ChatUserGroupUserItem} from '@/api/type/workspaceChatUser'
|
||||||
import { useRoute } from 'vue-router'
|
import {useRoute} from 'vue-router'
|
||||||
import { SourceTypeEnum } from '@/enums/common'
|
import {SourceTypeEnum} from '@/enums/common'
|
||||||
import { MsgSuccess } from '@/utils/message'
|
import {MsgSuccess} from '@/utils/message'
|
||||||
import { ComplexPermission } from '@/utils/permission/type'
|
import {ComplexPermission} from '@/utils/permission/type'
|
||||||
import { RoleConst, PermissionConst } from '@/utils/permission/data'
|
import {RoleConst, PermissionConst} from '@/utils/permission/data'
|
||||||
import { hasPermission } from '@/utils/permission/index'
|
import {hasPermission} from '@/utils/permission/index'
|
||||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
import {loadSharedApi} from '@/utils/dynamics-api/shared-api'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
const {
|
const {
|
||||||
params: { id, folderId },
|
params: {id, folderId},
|
||||||
} = route as any
|
} = route as any
|
||||||
|
|
||||||
const permissionObj = ref<any>({
|
const permissionObj = ref<any>({
|
||||||
@ -216,13 +272,15 @@ const permissionObj = ref<any>({
|
|||||||
const currentPermissionKey = computed(() => {
|
const currentPermissionKey = computed(() => {
|
||||||
if (route.path.includes('shared')) return 'SHAREDKNOWLEDGE'
|
if (route.path.includes('shared')) return 'SHAREDKNOWLEDGE'
|
||||||
if (route.path.includes('resource-management')) {
|
if (route.path.includes('resource-management')) {
|
||||||
if (route.meta?.resourceType === 'KNOWLEDGE') { return 'RESOURCE_KNOWLEDGE' }
|
if (route.meta?.resourceType === 'KNOWLEDGE') {
|
||||||
else if (route.meta?.resourceType === 'APPLICATION') { return 'RESOURCE_APPLICATION' }
|
return 'RESOURCE_KNOWLEDGE'
|
||||||
|
} else if (route.meta?.resourceType === 'APPLICATION') {
|
||||||
|
return 'RESOURCE_APPLICATION'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return route.meta?.resourceType as string
|
return route.meta?.resourceType as string
|
||||||
})
|
})
|
||||||
|
|
||||||
console.log(currentPermissionKey.value)
|
|
||||||
|
|
||||||
const resource = reactive({
|
const resource = reactive({
|
||||||
resource_id: route.params.id as string,
|
resource_id: route.params.id as string,
|
||||||
@ -285,7 +343,7 @@ function clickUserGroup(item: ChatUserGroupItem) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function changeAuth() {
|
async function changeAuth() {
|
||||||
const params = [{ user_group_id: current.value?.id as string, is_auth: !current.value?.is_auth }]
|
const params = [{user_group_id: current.value?.id as string, is_auth: !current.value?.is_auth}]
|
||||||
try {
|
try {
|
||||||
await loadSharedApi({
|
await loadSharedApi({
|
||||||
type: 'chatUser',
|
type: 'chatUser',
|
||||||
@ -305,9 +363,11 @@ async function changeAuth() {
|
|||||||
|
|
||||||
const rightLoading = ref(false)
|
const rightLoading = ref(false)
|
||||||
|
|
||||||
const searchType = ref('name')
|
const searchType = ref('username')
|
||||||
const searchForm = ref<Record<string, any>>({
|
const searchForm = ref<Record<string, any>>({
|
||||||
name: '',
|
username: '',
|
||||||
|
nick_name: '',
|
||||||
|
source: '',
|
||||||
})
|
})
|
||||||
const paginationConfig = reactive({
|
const paginationConfig = reactive({
|
||||||
current_page: 1,
|
current_page: 1,
|
||||||
@ -323,6 +383,11 @@ const isShared = computed(() => {
|
|||||||
|
|
||||||
async function getList() {
|
async function getList() {
|
||||||
if (!current.value?.id) return
|
if (!current.value?.id) return
|
||||||
|
const params: any = {}
|
||||||
|
const searchValue = searchForm.value[searchType.value as keyof typeof searchForm.value];
|
||||||
|
if (searchValue !== undefined && searchValue !== null && searchValue !== '') {
|
||||||
|
params[searchType.value] = searchValue;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const res = await loadSharedApi({
|
const res = await loadSharedApi({
|
||||||
type: 'chatUser',
|
type: 'chatUser',
|
||||||
@ -332,7 +397,7 @@ async function getList() {
|
|||||||
resource,
|
resource,
|
||||||
current.value?.id,
|
current.value?.id,
|
||||||
paginationConfig,
|
paginationConfig,
|
||||||
searchForm.value.name,
|
params,
|
||||||
rightLoading,
|
rightLoading,
|
||||||
)
|
)
|
||||||
// 更新缓存和回显状态
|
// 更新缓存和回显状态
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user