feat: Morefiled of folder and knowledge

This commit is contained in:
zhangzhanwei 2025-07-21 15:13:14 +08:00 committed by zhanweizhang7
parent e85d5b9714
commit a725783579
4 changed files with 38 additions and 19 deletions

View File

@ -54,7 +54,9 @@
class="mr-16"
>
<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-button>
<template #dropdown>
@ -156,6 +158,14 @@ const permissionPrecise = computed(() => {
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()
onBeforeRouteLeave((to, from) => {
folder.setCurrentFolder({})

View File

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

View File

@ -363,6 +363,18 @@ const systemRouter = {
[EditionConst.IS_EE],
'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: [
@ -381,18 +393,6 @@ const systemRouter = {
[EditionConst.IS_EE],
'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'),

View File

@ -219,7 +219,9 @@
<template #mouseEnter>
<div @click.stop v-if="!isShared">
<el-dropdown trigger="click">
<el-button text @click.stop>
<el-button text @click.stop
v-if="MoreFilledPermission(item)"
>
<el-icon>
<MoreFilled />
</el-icon>
@ -243,7 +245,7 @@
<el-dropdown-item
icon="Connection"
@click.stop="openGenerateDialog(item)"
v-if="permissionPrecise.doc_generate(item.id)"
v-if="permissionPrecise.generate(item.id)"
>{{ $t('views.document.generateQuestion.title') }}
</el-dropdown-item>
<el-dropdown-item
@ -373,6 +375,13 @@ const isSystemShare = computed(() => {
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 search_type = ref('name')