feat: Knowledge permission list

This commit is contained in:
zhangzhanwei 2025-06-24 15:20:21 +08:00 committed by zhanweizhang7
parent 66bb8f605d
commit 69e60b5800
9 changed files with 317 additions and 258 deletions

View File

@ -6,21 +6,33 @@ const workspace = {
hasPermission(
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_TOOL_READ],
[PermissionConst.SHARED_KNOWLEDGE_READ],
[EditionConst.IS_EE],
'OR',
),
'OR',
),
delete: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_DELETE.getWorkspacePermission,
],
'OR',
),
create: () => false,
single: () => false,
sync: () => false,
vector: () => false,
generate: () => false,
setting: () => false,
export: () => false,
delete: () => false,
doc_create: () => false,
doc_vector: () => false,
doc_generate: () => false,
doc_migrate: () => false,
doc_edit: () => false,
doc_sync: () => false,
doc_delete: () => false,
doc_export: () => false,
problem_create: () => false,
problem_relate: () => false,
problem_delete: () => false,
}
export default workspace

View File

@ -3,5 +3,24 @@ import { ComplexPermission } from '@/utils/permission/type'
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
const share = {
is_share: () => false,
create: () => false,
single: () => false,
sync: () => false,
vector: () => false,
generate: () => false,
setting: () => false,
export: () => false,
delete: () => false,
doc_create: () => false,
doc_vector: () => false,
doc_generate: () => false,
doc_migrate: () => false,
doc_edit: () => false,
doc_sync: () => false,
doc_delete: () => false,
doc_export: () => false,
}
export default share

View File

@ -6,12 +6,173 @@ const workspace = {
hasPermission(
new ComplexPermission(
[RoleConst.ADMIN],
[PermissionConst.SHARED_TOOL_READ],
[PermissionConst.SHARED_KNOWLEDGE_READ],
[EditionConst.IS_EE],
'OR',
),
'OR',
),
create: () =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
single: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_READ.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_READ.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
sync: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
vector: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
generate: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_GENERATE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_GENERATE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
setting: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
export: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
delete: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DELETE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_create: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_vector: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_generate: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_migrate: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_edit: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_sync: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_delete: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
doc_export: (source_id:string) =>
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EXPORT.getKnowledgeWorkspaceResourcePermission(source_id),
PermissionConst.KNOWLEDGE_DOCUMENT_EXPORT.getWorkspacePermissionWorkspaceManageRole,
],
'OR',
),
}
export default workspace

View File

@ -19,12 +19,6 @@ const DocumentRouter = {
active: 'document',
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getWorkspacePermissionWorkspaceManageRole
],
},
component: () => import('@/views/document/index.vue'),
},
@ -38,12 +32,6 @@ const DocumentRouter = {
active: 'problem',
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermission,
PermissionConst.KNOWLEDGE_PROBLEM_READ.getWorkspacePermissionWorkspaceManageRole
],
},
component: () => import('@/views/problem/index.vue'),
},
@ -70,12 +58,6 @@ const DocumentRouter = {
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
resourceType: ChatUserResourceEnum.KNOWLEDGE,
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermission,
PermissionConst.WORKSPACE_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole
],
},
component: () => import('@/views/chat-user/index.vue'),
},
@ -89,13 +71,6 @@ const DocumentRouter = {
active: 'setting',
parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermission,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole
]
},
component: () => import('@/views/knowledge/KnowledgeSetting.vue'),
},

View File

@ -89,6 +89,7 @@ const PermissionConst = {
KNOWLEDGE_EDIT: new Permission('KNOWLEDGE:READ+EDIT'),
KNOWLEDGE_EXPORT: new Permission('KNOWLEDGE:READ+EXPORT'),
KNOWLEDGE_DELETE: new Permission('KNOWLEDGE:READ+DELETE'),
KNOWLEDGE_GENERATE: new Permission('KNOWLEDGE:READ+GENERATE'),
KNOWLEDGE_DOCUMENT_READ:new Permission('KNOWLEDGE_DOCUMENT:READ'),
KNOWLEDGE_DOCUMENT_CREATE:new Permission('KNOWLEDGE_DOCUMENT:READ+CREATE'),

View File

@ -1,4 +1,5 @@
import useStore from '@/stores'
import { useRoute } from 'vue-router'
export type PF = () => Role | string | Permission | ComplexPermission
export type CRF = () => Role | string
export type CPF = () => Permission | string
@ -69,6 +70,12 @@ export class Permission {
getKnowledgeWorkspaceResourcePermission = (resource_id: string) => {
return this.getWorkspaceResourcePermission('KNOWLEDGE', resource_id)
}
getTest=()=>{
const route=useRoute()
debugger
console.log(route)
return ""
}
/**
*
* @param resource_id id

View File

@ -7,73 +7,51 @@
<div class="flex-between">
<div>
<el-button
v-if="knowledgeDetail.type === 0"
type="primary"
v-if="knowledgeDetail.type === 0 &&
permissionPrecise.doc_create(id)
"
type="danger"
@click="
router.push({ path: `/knowledge/document/upload/${folderId}`, query: { id: id } })
"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]"
>{{ $t('views.document.uploadDocument') }}
</el-button>
<el-button
v-if="knowledgeDetail.type === 1"
v-if="knowledgeDetail.type === 1 &&
permissionPrecise.doc_create(id)
"
type="primary"
@click="importDoc"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]"
>{{ $t('views.document.importDocument') }}
</el-button>
<el-button
v-if="knowledgeDetail.type === 2"
v-if="knowledgeDetail.type === 2 &&
permissionPrecise.doc_create(id)
"
type="primary"
@click="
router.push({
path: `/knowledge/import`,
query: { id: id, folder_token: knowledgeDetail.meta.folder_token },
})"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]"
>{{ $t('views.document.importDocument') }}
</el-button>
<el-button
@click="batchRefresh"
:disabled="multipleSelection.length === 0"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getKnowledgeWorkspaceResourcePermission(id),
]"
v-if="permissionPrecise.doc_vector(id)"
>{{ $t('views.knowledge.setting.vectorization') }}
</el-button>
<el-button
@click="openGenerateDialog()"
:disabled="multipleSelection.length === 0"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getKnowledgeWorkspaceResourcePermission(id),
]"
v-if="permissionPrecise.doc_generate(id)"
>{{ $t('views.document.generateQuestion.title') }}
</el-button>
<el-button
@click="openknowledgeDialog()"
:disabled="multipleSelection.length === 0"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getKnowledgeWorkspaceResourcePermission(id),
]"
v-if="permissionPrecise.doc_migrate(id)"
>{{ $t('views.document.setting.migration') }}
</el-button>
<el-dropdown>
@ -87,10 +65,7 @@
<el-dropdown-item
@click="openBatchEditDocument"
:disabled="multipleSelection.length === 0"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
v-if="permissionPrecise.doc_edit(id)"
>
{{ $t('common.setting') }}
</el-dropdown-item>
@ -98,11 +73,9 @@
divided
@click="syncMulDocument"
:disabled="multipleSelection.length === 0"
v-if="knowledgeDetail.type === 1 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
v-if="
permissionPrecise.doc_sync(id)
"
>{{ $t('views.document.syncDocument') }}
</el-dropdown-item>
<el-dropdown-item
@ -110,10 +83,8 @@
@click="syncLarkMulDocument"
:disabled="multipleSelection.length === 0"
v-if="knowledgeDetail.type === 2 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
permissionPrecise.doc_sync(id)
"
>{{ $t('views.document.syncDocument') }}
</el-dropdown-item>
@ -122,10 +93,7 @@
@click="deleteMulDocument"
:disabled="multipleSelection.length === 0"
v-if="
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getKnowledgeWorkspaceResourcePermission(id)],'OR')
permissionPrecise.doc_delete(id)
"
>{{ $t('common.delete') }}
</el-dropdown-item>
@ -148,10 +116,8 @@
class="mt-16"
:data="documentData"
:pagination-config="paginationConfig"
:quick-create="knowledgeDetail.type === 0&&hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermission],'OR')"
:quick-create="knowledgeDetail.type === 0 &&
permissionPrecise.doc_create(id)"
@sizeChange="handleSizeChange"
@changePage="getList"
@cell-mouse-enter="cellMouseEnter"
@ -395,6 +361,7 @@
size="small"
v-model="row.is_active"
:before-change="() => changeState(row)"
v-if="permissionPrecise.doc_edit(id)"
/>
</span>
<el-divider direction="vertical" />
@ -412,10 +379,7 @@
text
@click.stop="cancelTask(row, TaskType.EMBEDDING)"
:title="$t('views.document.setting.cancelVectorization')"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission,
]"
v-if="permissionPrecise.doc_vector(id)"
>
<AppIcon iconName="app-close" style="font-size: 16px"></AppIcon>
</el-button>
@ -426,10 +390,7 @@
text
@click.stop="refreshDocument(row)"
:title="$t('views.knowledge.setting.vectorization')"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission,
]"
v-if="permissionPrecise.doc_vector(id)"
>
<AppIcon iconName="app-document-refresh" style="font-size: 16px"></AppIcon>
</el-button>
@ -440,10 +401,7 @@
text
@click.stop="settingDoc(row)"
:title="$t('common.setting')"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission,
]"
v-if="permissionPrecise.doc_edit(id)"
>
<el-icon><Setting /></el-icon>
</el-button>
@ -453,10 +411,6 @@
<el-button
text
type="primary"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission,
]"
>
<el-icon><MoreFilled /></el-icon>
</el-button>
@ -467,51 +421,38 @@
([State.STARTED, State.PENDING] as Array<string>).includes(
getTaskState(row.status, TaskType.GENERATE_PROBLEM),
)&&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermission],'OR')
"
permissionPrecise.doc_generate(id)"
@click="cancelTask(row, TaskType.GENERATE_PROBLEM)"
>
<el-icon><Connection /></el-icon>
{{ $t('views.document.setting.cancelGenerateQuestion') }}
</el-dropdown-item>
<el-dropdown-item v-else @click="openGenerateDialog(row)"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermission],'OR')"
v-if="permissionPrecise.doc_generate(id)"
>
<el-icon><Connection /></el-icon>
{{ $t('views.document.generateQuestion.title') }}
</el-dropdown-item>
<el-dropdown-item @click="openknowledgeDialog(row)"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermission],'OR')"
v-if="permissionPrecise.doc_migrate(id)"
>
<AppIcon iconName="app-migrate"></AppIcon>
{{ $t('views.document.setting.migration') }}
</el-dropdown-item>
<el-dropdown-item @click="exportDocument(row)"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EXPORT.getWorkspacePermission],'OR')"
v-if="permissionPrecise.doc_export(id)"
>
<AppIcon iconName="app-export"></AppIcon>
{{ $t('views.document.setting.export') }} Excel
</el-dropdown-item>
<el-dropdown-item @click="exportDocumentZip(row)"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EXPORT.getWorkspacePermission],'OR')"
v-if="permissionPrecise.doc_export(id)"
>
<AppIcon iconName="app-export"></AppIcon>
{{ $t('views.document.setting.export') }} Zip
</el-dropdown-item>
<el-dropdown-item icon="Delete" @click.stop="deleteDocument(row)"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_DELETE.getWorkspacePermission],'OR')"
v-if="permissionPrecise.doc_delete(id)"
>
{{ $t('common.delete') }}</el-dropdown-item
>
@ -527,10 +468,7 @@
text
@click.stop="syncDocument(row)"
:title="$t('views.knowledge.setting.sync')"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_SYNC.getWorkspacePermission,
]"
v-if="permissionPrecise.sync(id)"
>
<el-icon><Refresh /></el-icon>
</el-button>
@ -540,16 +478,13 @@
v-if="
([State.STARTED, State.PENDING] as Array<string>).includes(
getTaskState(row.status, TaskType.EMBEDDING),
)
) &&
permissionPrecise.doc_vector(id)
"
type="primary"
text
@click.stop="cancelTask(row, TaskType.EMBEDDING)"
:title="$t('views.document.setting.cancelVectorization')"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission,
]"
>
<AppIcon iconName="app-close" style="font-size: 16px"></AppIcon>
</el-button>
@ -560,10 +495,7 @@
text
@click.stop="refreshDocument(row)"
:title="$t('views.knowledge.setting.vectorization')"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission,
]"
v-if="permissionPrecise.vector(id)"
>
<AppIcon iconName="app-document-refresh" style="font-size: 16px"></AppIcon>
</el-button>
@ -574,10 +506,6 @@
<el-button
text
type="primary"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission,
]"
>
<el-icon><MoreFilled /></el-icon>
</el-button>
@ -631,20 +559,14 @@
<el-button
:disabled="multipleSelection.length === 0"
@click="cancelTaskHandle(1)"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission,
]"
v-if="permissionPrecise.doc_vector(id)"
>
{{ $t('views.document.setting.cancelVectorization') }}
</el-button>
<el-button
:disabled="multipleSelection.length === 0"
@click="cancelTaskHandle(2)"
v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermission,
]"
v-if="permissionPrecise.doc_generate(id)"
>
{{ $t('views.document.setting.cancelGenerate') }}
</el-button>
@ -686,9 +608,26 @@ import { TaskType, State } from '@/utils/status'
import { t } from '@/locales'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
import permissionMap from '@/permission'
const route = useRoute()
const { folder, user } = useStore()
const type = computed(() => {
if (route.path.includes('shared')) {
return 'systemShare'
} else if (route.path.includes('resource-management')) {
return 'systemManage'
} else {
return 'workspace'
}
})
const permissionPrecise = computed(() => {
return permissionMap['knowledge'][type.value]
})
const router = useRouter()
const route = useRoute()
const {
params: { id, folderId }, // idknowledgeID
} = route as any

View File

@ -8,7 +8,8 @@
:currentNodeKey="currentFolder?.id"
@handleNodeClick="folderClickHandel"
class="p-8"
showShared
:shareTitle="$t('views.system.share_knowledge')"
:showShared="permissionPrecise['is_share']()"
@refreshTree="refreshFolder"
/>
</template>
@ -48,13 +49,7 @@
<el-button
type="primary"
class="ml-8"
v-hasPermission="[
RoleConst.ADMIN,
RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission,
]"
v-if="permissionPrecise.create()"
>
{{ $t('common.create') }}
<el-icon class="el-icon--right">
@ -198,15 +193,7 @@
@click="
router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` })
"
v-hasPermission="[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_DOCUMENT_READ
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_READ.getKnowledgeWorkspaceResourcePermission(
item.id,
),
]"
v-if="permissionPrecise.single(item.id)"
>
<template #icon>
<KnowledgeIcon :type="item.type" />
@ -252,38 +239,15 @@
<el-dropdown-item
icon="Refresh"
@click.stop="syncKnowledge(item)"
v-if="
item.type === 1 &&
hasPermission(
[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_SYNC
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_SYNC.getKnowledgeWorkspaceResourcePermission(
item.id,
),
],
'OR',
)
v-if="item.type === 1 &&
permissionPrecise.sync(item.id)
"
>{{ $t('views.knowledge.setting.sync') }}
</el-dropdown-item>
<el-dropdown-item
@click.stop="reEmbeddingKnowledge(item)"
v-if="
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_VECTOR
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_VECTOR.getKnowledgeWorkspaceResourcePermission(
item.id,
),
],
'OR',
)
permissionPrecise.vector(item.id)
"
>
<AppIcon iconName="app-vectorization"></AppIcon>
@ -294,18 +258,7 @@
icon="Connection"
@click.stop="openGenerateDialog(item)"
v-if="
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(
item.id,
),
],
'OR',
)
permissionPrecise.doc_generate(item.id)
"
>{{ $t('views.document.generateQuestion.title') }}
</el-dropdown-item>
@ -317,18 +270,7 @@
})
"
v-if="
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EDIT
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(
item.id,
),
],
'OR',
)
permissionPrecise.setting(item.id)
"
>
{{ $t('common.setting') }}
@ -336,18 +278,7 @@
<el-dropdown-item
@click.stop="exportKnowledge(item)"
v-if="
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EXPORT
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(
item.id,
),
],
'OR',
)
permissionPrecise.export(item.id)
"
>
<AppIcon iconName="app-export"></AppIcon
@ -356,18 +287,7 @@
<el-dropdown-item
@click.stop="exportZipKnowledge(item)"
v-if="
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EXPORT
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(
item.id,
),
],
'OR',
)
permissionPrecise.export(item.id)
"
>
<AppIcon iconName="app-export"></AppIcon
@ -378,18 +298,7 @@
type="danger"
@click.stop="deleteKnowledge(item)"
v-if="
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DELETE
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DELETE.getKnowledgeWorkspaceResourcePermission(
item.id,
),
],
'OR',
)
permissionPrecise.delete(item.id)
"
>
{{ $t('common.delete') }}</el-dropdown-item
@ -433,9 +342,27 @@ import { FolderSource } from '@/enums/common'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
import { useRoute } from 'vue-router'
import permissionMap from '@/permission'
const route = useRoute()
const { folder, user } = useStore()
const type = computed(() => {
if (route.path.includes('shared')) {
return 'systemShare'
} else if (route.path.includes('resource-management')) {
return 'systemManage'
} else {
return 'workspace'
}
})
const permissionPrecise = computed(() => {
return permissionMap['knowledge'][type.value]
})
const router = useRouter()
const { folder, user } = useStore()
const loading = ref(false)

View File

@ -43,10 +43,12 @@
class="mt-16"
:data="problemData"
:pagination-config="paginationConfig"
quick-create
:quick-create="permissionPrecise.doc_create(id)""
:quickCreateName="$t('views.problem.quickCreateName')"
:quickCreatePlaceholder="$t('views.problem.quickCreateProblem')"
:quickCreateMaxlength="256"
@sizeChange="handleSizeChange"
@changePage="getList"
@cell-mouse-enter="cellMouseEnter"
@ -167,8 +169,24 @@ import useStore from '@/stores'
import { t } from '@/locales'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
import permissionMap from '@/permission'
const route = useRoute()
const { folder, user } = useStore()
const type = computed(() => {
if (route.path.includes('shared')) {
return 'systemShare'
} else if (route.path.includes('resource-management')) {
return 'systemManage'
} else {
return 'workspace'
}
})
const permissionPrecise = computed(() => {
return permissionMap['knowledge'][type.value]
})
const {
params: { id }, // id
} = route as any