This commit is contained in:
liqiang-fit2cloud 2025-07-21 15:33:50 +08:00
commit 03f05ced27
5 changed files with 39 additions and 20 deletions

View File

@ -98,7 +98,7 @@ class ChatInfo:
if self.chat_user_type == ChatUserType.CHAT_USER.value and chat_user_model: if self.chat_user_type == ChatUserType.CHAT_USER.value and chat_user_model:
chat_user = QuerySet(chat_user_model).filter(id=self.chat_user_id).first() chat_user = QuerySet(chat_user_model).filter(id=self.chat_user_id).first()
return { return {
'id': chat_user.id, 'id': str(chat_user.id),
'email': chat_user.email, 'email': chat_user.email,
'phone': chat_user.phone, 'phone': chat_user.phone,
'nick_name': chat_user.nick_name, 'nick_name': chat_user.nick_name,

View File

@ -54,7 +54,9 @@
class="mr-16" class="mr-16"
> >
<el-dropdown trigger="click" :teleported="false"> <el-dropdown trigger="click" :teleported="false">
<el-button text class="w-full"> <el-button text class="w-full"
v-if="MoreFilledPermission(node)"
>
<el-icon><MoreFilled /></el-icon> <el-icon><MoreFilled /></el-icon>
</el-button> </el-button>
<template #dropdown> <template #dropdown>
@ -156,6 +158,14 @@ const permissionPrecise = computed(() => {
return permissionMap[resourceType.value!]['workspace'] return permissionMap[resourceType.value!]['workspace']
}) })
const MoreFilledPermission = (node: any) =>{
return (
(node.level !== 3 && permissionPrecise.value.folderCreate()) ||
permissionPrecise.value.folderEdit() ||
permissionPrecise.value.folderDelete()
)
}
const { folder } = useStore() const { folder } = useStore()
onBeforeRouteLeave((to, from) => { onBeforeRouteLeave((to, from) => {
folder.setCurrentFolder({}) folder.setCurrentFolder({})

View File

@ -35,8 +35,8 @@ const workspace = {
[ [
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(source_id)],[],'AND'), new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(source_id)],[],'AND'),
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(source_id), PermissionConst.KNOWLEDGE_SYNC.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_SYNC.getWorkspacePermissionWorkspaceManageRole,
], ],
'OR', 'OR',
), ),
@ -45,8 +45,8 @@ const workspace = {
[ [
new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(source_id)],[],'AND'), new ComplexPermission([RoleConst.USER],[PermissionConst.KNOWLEDGE.getKnowledgeWorkspaceResourcePermission(source_id)],[],'AND'),
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getKnowledgeWorkspaceResourcePermission(source_id), PermissionConst.KNOWLEDGE_VECTOR.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_VECTOR.getWorkspacePermissionWorkspaceManageRole,
], ],
'OR', 'OR',
), ),

View File

@ -363,6 +363,18 @@ const systemRouter = {
[EditionConst.IS_EE], [EditionConst.IS_EE],
'OR', 'OR',
), ),
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_TOOL_READ],
[EditionConst.IS_EE],
'OR',
),
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_MODEL_READ],
[EditionConst.IS_EE],
'OR',
),
], ],
}, },
children: [ children: [
@ -381,18 +393,6 @@ const systemRouter = {
[EditionConst.IS_EE], [EditionConst.IS_EE],
'OR', 'OR',
), ),
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_TOOL_READ],
[EditionConst.IS_EE],
'OR',
),
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_MODEL_READ],
[EditionConst.IS_EE],
'OR',
),
], ],
}, },
component: () => import('@/views/system-shared/KnowLedgeSharedIndex.vue'), component: () => import('@/views/system-shared/KnowLedgeSharedIndex.vue'),

View File

@ -219,7 +219,9 @@
<template #mouseEnter> <template #mouseEnter>
<div @click.stop v-if="!isShared"> <div @click.stop v-if="!isShared">
<el-dropdown trigger="click"> <el-dropdown trigger="click">
<el-button text @click.stop> <el-button text @click.stop
v-if="MoreFilledPermission(item)"
>
<el-icon> <el-icon>
<MoreFilled /> <MoreFilled />
</el-icon> </el-icon>
@ -243,7 +245,7 @@
<el-dropdown-item <el-dropdown-item
icon="Connection" icon="Connection"
@click.stop="openGenerateDialog(item)" @click.stop="openGenerateDialog(item)"
v-if="permissionPrecise.doc_generate(item.id)" v-if="permissionPrecise.generate(item.id)"
>{{ $t('views.document.generateQuestion.title') }} >{{ $t('views.document.generateQuestion.title') }}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item <el-dropdown-item
@ -373,6 +375,13 @@ const isSystemShare = computed(() => {
return apiType.value === 'systemShare' return apiType.value === 'systemShare'
}) })
const MoreFilledPermission = (item: any) => {
return (item.type === 1 && permissionPrecise.value.sync(item.id)) ||
permissionPrecise.value.vector(item.id) || permissionPrecise.value.generate(item.id) ||
permissionPrecise.value.edit(item.id) && apiType.value === 'workspace' ||
permissionPrecise.value.export(item.id) || permissionPrecise.value.delete(item.id) || isSystemShare.value
}
const loading = ref(false) const loading = ref(false)
const search_type = ref('name') const search_type = ref('name')