feat: Tool permission

This commit is contained in:
zhangzhanwei 2025-06-23 17:44:46 +08:00 committed by zhanweizhang7
parent 92fd481aff
commit 0f8fe31e52
9 changed files with 188 additions and 89 deletions

View File

@ -18,9 +18,71 @@ const workspace = {
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_DELETE.getWorkspacePermission, PermissionConst.TOOL_DELETE.getWorkspacePermission,
PermissionConst.TOOL_DELETE.getWorkspacePermissionWorkspaceManageRole
], ],
'OR', 'OR',
), ),
create: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_CREATE.getWorkspacePermission,
PermissionConst.TOOL_CREATE.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
switch: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
edit: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
PermissionConst.TOOL_EDIT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
copy: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
export: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
PermissionConst.TOOL_EXPORT.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
debug: () =>
hasPermission(
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_DEBUG.getWorkspacePermission,
PermissionConst.TOOL_DEBUG.getWorkspacePermissionWorkspaceManageRole
],
'OR'
),
} }
export default workspace export default workspace

View File

@ -1,3 +1,4 @@
import role from '@/api/system/role'
import { ChatUserResourceEnum } from '@/enums/workspaceChatUser' import { ChatUserResourceEnum } from '@/enums/workspaceChatUser'
import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data' import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data'
@ -18,6 +19,12 @@ const DocumentRouter = {
active: 'document', active: 'document',
parentPath: '/knowledge/:id/:folderId', parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail', 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'), component: () => import('@/views/document/index.vue'),
}, },
@ -31,6 +38,12 @@ const DocumentRouter = {
active: 'problem', active: 'problem',
parentPath: '/knowledge/:id/:folderId', parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail', 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'), component: () => import('@/views/problem/index.vue'),
}, },
@ -57,7 +70,12 @@ const DocumentRouter = {
parentPath: '/knowledge/:id/:folderId', parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail', parentName: 'KnowledgeDetail',
resourceType: ChatUserResourceEnum.KNOWLEDGE, resourceType: ChatUserResourceEnum.KNOWLEDGE,
permission: [EditionConst.IS_PE, EditionConst.IS_EE], 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'), component: () => import('@/views/chat-user/index.vue'),
}, },
@ -71,6 +89,13 @@ const DocumentRouter = {
active: 'setting', active: 'setting',
parentPath: '/knowledge/:id/:folderId', parentPath: '/knowledge/:id/:folderId',
parentName: 'KnowledgeDetail', parentName: 'KnowledgeDetail',
permission: [
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermission,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole
]
}, },
component: () => import('@/views/knowledge/KnowledgeSetting.vue'), component: () => import('@/views/knowledge/KnowledgeSetting.vue'),
}, },

View File

@ -48,8 +48,9 @@
type="primary" type="primary"
class="ml-8" class="ml-8"
v-hasPermission="[ v-hasPermission="[
RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.APPLICATION_EDIT.getWorkspacePermission, PermissionConst.APPLICATION_EDIT.getWorkspacePermission,
]" ]"
> >

View File

@ -14,7 +14,7 @@
" "
v-hasPermission="[ v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id), PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]" ]"
@ -25,7 +25,7 @@
type="primary" type="primary"
@click="importDoc" @click="importDoc"
v-hasPermission="[ v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id), PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getKnowledgeWorkspaceResourcePermission(id),
]" ]"
@ -38,17 +38,21 @@
router.push({ router.push({
path: `/knowledge/import`, path: `/knowledge/import`,
query: { id: id, folder_token: knowledgeDetail.meta.folder_token }, 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') }} >{{ $t('views.document.importDocument') }}
</el-button> </el-button>
<el-button <el-button
@click="batchRefresh" @click="batchRefresh"
:disabled="multipleSelection.length === 0" :disabled="multipleSelection.length === 0"
v-hasPermission="[ v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission, PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getKnowledgeWorkspaceResourcePermission(id),
]" ]"
>{{ $t('views.knowledge.setting.vectorization') }} >{{ $t('views.knowledge.setting.vectorization') }}
</el-button> </el-button>
@ -56,9 +60,9 @@
@click="openGenerateDialog()" @click="openGenerateDialog()"
:disabled="multipleSelection.length === 0" :disabled="multipleSelection.length === 0"
v-hasPermission="[ v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermission, PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getKnowledgeWorkspaceResourcePermission(id),
]" ]"
>{{ $t('views.document.generateQuestion.title') }} >{{ $t('views.document.generateQuestion.title') }}
</el-button> </el-button>
@ -66,9 +70,9 @@
@click="openknowledgeDialog()" @click="openknowledgeDialog()"
:disabled="multipleSelection.length === 0" :disabled="multipleSelection.length === 0"
v-hasPermission="[ v-hasPermission="[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.USER.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermission, PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getKnowledgeWorkspaceResourcePermission(id),
]" ]"
>{{ $t('views.document.setting.migration') }} >{{ $t('views.document.setting.migration') }}
</el-button> </el-button>
@ -84,9 +88,9 @@
@click="openBatchEditDocument" @click="openBatchEditDocument"
:disabled="multipleSelection.length === 0" :disabled="multipleSelection.length === 0"
v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-if="hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission],'OR')" PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
> >
{{ $t('common.setting') }} {{ $t('common.setting') }}
</el-dropdown-item> </el-dropdown-item>
@ -96,15 +100,20 @@
:disabled="multipleSelection.length === 0" :disabled="multipleSelection.length === 0"
v-if="knowledgeDetail.type === 1 && v-if="knowledgeDetail.type === 1 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission],'OR')" PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
>{{ $t('views.document.syncDocument') }} >{{ $t('views.document.syncDocument') }}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item <el-dropdown-item
divided divided
@click="syncLarkMulDocument" @click="syncLarkMulDocument"
:disabled="multipleSelection.length === 0" :disabled="multipleSelection.length === 0"
v-if="knowledgeDetail.type === 2" v-if="knowledgeDetail.type === 2 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getWorkspacePermission,
PermissionConst.KNOWLEDGE_DOCUMENT_SYNC.getKnowledgeWorkspaceResourcePermission(id)],'OR')"
>{{ $t('views.document.syncDocument') }} >{{ $t('views.document.syncDocument') }}
</el-dropdown-item> </el-dropdown-item>
@ -112,6 +121,12 @@
divided divided
@click="deleteMulDocument" @click="deleteMulDocument"
:disabled="multipleSelection.length === 0" :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')
"
>{{ $t('common.delete') }} >{{ $t('common.delete') }}
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>

View File

@ -140,7 +140,12 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="text-right"> <div class="text-right">
<el-button @click="submit" type="primary"> {{ $t('common.save') }}</el-button> <el-button @click="submit" type="primary"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(id)]"
> {{ $t('common.save') }}</el-button>
</div> </div>
</div> </div>
</el-scrollbar> </el-scrollbar>
@ -158,6 +163,8 @@ import { MsgSuccess, MsgConfirm } from '@/utils/message'
import { isAppIcon } from '@/utils/common' import { isAppIcon } from '@/utils/common'
import useStore from '@/stores' import useStore from '@/stores'
import { t } from '@/locales' import { t } from '@/locales'
import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index'
const route = useRoute() const route = useRoute()
const { const {

View File

@ -50,6 +50,8 @@
class="ml-8" class="ml-8"
v-hasPermission="[ v-hasPermission="[
RoleConst.ADMIN, RoleConst.ADMIN,
RoleConst.USER.getWorkspaceRole,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission, PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission,
]" ]"
@ -196,6 +198,11 @@
@click=" @click="
router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` }) 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),]"
> >
<template #icon> <template #icon>
<KnowledgeIcon :type="item.type" /> <KnowledgeIcon :type="item.type" />
@ -242,8 +249,9 @@
icon="Refresh" icon="Refresh"
@click.stop="syncKnowledge(item)" @click.stop="syncKnowledge(item)"
v-if="item.type === 1 && v-if="item.type === 1 &&
hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, hasPermission([
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
PermissionConst.KNOWLEDGE_SYNC.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_SYNC.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_SYNC.getKnowledgeWorkspaceResourcePermission(item.id)],'OR')" PermissionConst.KNOWLEDGE_SYNC.getKnowledgeWorkspaceResourcePermission(item.id)],'OR')"
>{{ $t('views.knowledge.setting.sync') }} >{{ $t('views.knowledge.setting.sync') }}
@ -254,7 +262,7 @@
hasPermission( hasPermission(
[ [
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_VECTOR.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_VECTOR.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_VECTOR.getKnowledgeWorkspaceResourcePermission(item.id), PermissionConst.KNOWLEDGE_VECTOR.getKnowledgeWorkspaceResourcePermission(item.id),
], ],
@ -273,7 +281,7 @@
hasPermission( hasPermission(
[ [
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(item.id), PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(item.id),
], ],
@ -293,7 +301,7 @@
hasPermission( hasPermission(
[ [
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(item.id), PermissionConst.KNOWLEDGE_EDIT.getKnowledgeWorkspaceResourcePermission(item.id),
], ],
@ -309,7 +317,7 @@
hasPermission( hasPermission(
[ [
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id), PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id),
], ],
@ -326,7 +334,7 @@
hasPermission( hasPermission(
[ [
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_EXPORT.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id), PermissionConst.KNOWLEDGE_EXPORT.getKnowledgeWorkspaceResourcePermission(item.id),
], ],
@ -345,7 +353,7 @@
hasPermission( hasPermission(
[ [
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermissionWorkspaceManageRole, PermissionConst.KNOWLEDGE_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_DELETE.getKnowledgeWorkspaceResourcePermission(item.id), PermissionConst.KNOWLEDGE_DELETE.getKnowledgeWorkspaceResourcePermission(item.id),
], ],

View File

@ -8,20 +8,23 @@
<div> <div>
<el-button type="primary" @click="createProblem" <el-button type="primary" @click="createProblem"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermission]"> PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getKnowledgeWorkspaceResourcePermission(id),]">
{{ $t('views.problem.createProblem') }} {{ $t('views.problem.createProblem') }}
</el-button> </el-button>
<el-button @click="relateProblem()" :disabled="multipleSelection.length === 0" <el-button @click="relateProblem()" :disabled="multipleSelection.length === 0"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermission]"> PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getKnowledgeWorkspaceResourcePermission(id)]">
{{ $t('views.problem.relateParagraph.title') }} {{ $t('views.problem.relateParagraph.title') }}
</el-button> </el-button>
<el-button @click="deleteMulDocument" :disabled="multipleSelection.length === 0" <el-button @click="deleteMulDocument" :disabled="multipleSelection.length === 0"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermission]"> PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getKnowledgeWorkspaceResourcePermission(id)]">
{{ $t('views.problem.setting.batchDelete') }} {{ $t('views.problem.setting.batchDelete') }}
</el-button> </el-button>
</div> </div>
@ -110,8 +113,9 @@
> >
<el-button type="primary" text @click.stop="relateProblem(row)" <el-button type="primary" text @click.stop="relateProblem(row)"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermission]"> PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getKnowledgeWorkspaceResourcePermission(id)]">
<el-icon><Connection /></el-icon> <el-icon><Connection /></el-icon>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
@ -120,8 +124,9 @@
<el-tooltip effect="dark" :content="$t('common.delete')" placement="top"> <el-tooltip effect="dark" :content="$t('common.delete')" placement="top">
<el-button type="primary" text @click.stop="deleteProblem(row)" <el-button type="primary" text @click.stop="deleteProblem(row)"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole, RoleConst.ADMIN,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermission]"> PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getKnowledgeWorkspaceResourcePermission(id)]">
<el-icon><Delete /></el-icon> <el-icon><Delete /></el-icon>
</el-button> </el-button>
</el-tooltip> </el-tooltip>

View File

@ -79,11 +79,7 @@
<h4 class="title-decoration-1 mb-16"> <h4 class="title-decoration-1 mb-16">
{{ $t('common.param.initParam') }} {{ $t('common.param.initParam') }}
</h4> </h4>
<el-button link type="primary" @click="openAddInitDialog()" <el-button link type="danger" @click="openAddInitDialog()">
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission]"
>
<el-icon class="mr-4"> <el-icon class="mr-4">
<Plus/> <Plus/>
</el-icon> </el-icon>
@ -165,11 +161,7 @@
{{ $t('views.tool.form.param.paramInfo1') }} {{ $t('views.tool.form.param.paramInfo1') }}
</el-text> </el-text>
</h4> </h4>
<el-button link type="primary" @click="openAddDialog()" <el-button link type="primary" @click="openAddDialog()">
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission]"
>
<el-icon class="mr-4"> <el-icon class="mr-4">
<Plus/> <Plus/>
</el-icon> </el-icon>
@ -249,14 +241,9 @@
<div> <div>
<el-button :loading="loading" @click="visible = false">{{ $t('common.cancel') }}</el-button> <el-button :loading="loading" @click="visible = false">{{ $t('common.cancel') }}</el-button>
<el-button :loading="loading" @click="openDebug" <el-button :loading="loading" @click="openDebug"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, v-if="permissionPrecise.debug()"
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_DEBUG.getWorkspacePermission]"
>{{ $t('common.debug') }}</el-button> >{{ $t('common.debug') }}</el-button>
<el-button type="primary" @click="submit(FormRef)" :loading="loading" <el-button type="primary" @click="submit(FormRef)" :loading="loading"
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission]"
> >
{{ isEdit ? $t('common.save') : $t('common.create') }} {{ isEdit ? $t('common.save') : $t('common.create') }}
</el-button </el-button
@ -272,7 +259,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import {ref, reactive, watch, nextTick} from 'vue' import {ref, reactive, watch, nextTick, computed} from 'vue'
import FieldFormDialog from '@/views/tool/component/FieldFormDialog.vue' import FieldFormDialog from '@/views/tool/component/FieldFormDialog.vue'
import ToolDebugDrawer from './ToolDebugDrawer.vue' import ToolDebugDrawer from './ToolDebugDrawer.vue'
import UserFieldFormDialog from '@/views/tool/component/UserFieldFormDialog.vue' import UserFieldFormDialog from '@/views/tool/component/UserFieldFormDialog.vue'
@ -287,6 +274,26 @@ import {t} from '@/locales'
import {isAppIcon} from '@/utils/common' import {isAppIcon} from '@/utils/common'
import { PermissionConst, RoleConst } from '@/utils/permission/data' import { PermissionConst, RoleConst } from '@/utils/permission/data'
import { hasPermission } from '@/utils/permission/index' import { hasPermission } from '@/utils/permission/index'
import { useRoute } from 'vue-router'
import useStore from '@/stores'
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['tool'][type.value]
})
const props = defineProps({ const props = defineProps({
title: String, title: String,

View File

@ -49,11 +49,7 @@
<el-button <el-button
type="primary" type="primary"
class="ml-8" class="ml-8"
v-hasPermission="[ v-if="permissionPrecise.create()"
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_CREATE.getWorkspacePermission,
]"
> >
{{ $t('common.create') }} {{ $t('common.create') }}
<el-icon class="el-icon--right"> <el-icon class="el-icon--right">
@ -213,11 +209,7 @@
:before-change="() => changeState(item)" :before-change="() => changeState(item)"
size="small" size="small"
class="mr-4" class="mr-4"
v-hasPermission="[ v-if="permissionPrecise.switch()"
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
]"
/> />
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-dropdown trigger="click"> <el-dropdown trigger="click">
@ -237,16 +229,7 @@
<el-dropdown-item <el-dropdown-item
v-if=" v-if="
!item.template_id && !item.template_id &&
hasPermission( permissionPrecise.edit()
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EDIT
.getWorkspacePermissionWorkspaceManageRole,
PermissionConst.TOOL_EDIT.getWorkspacePermission,
],
'OR',
)
" "
@click.stop="openCreateDialog(item)" @click.stop="openCreateDialog(item)"
> >
@ -258,14 +241,7 @@
<el-dropdown-item <el-dropdown-item
v-if=" v-if="
!item.template_id && !item.template_id &&
hasPermission( permissionPrecise.copy()
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
],
'OR',
)
" "
@click.stop="copyTool(item)" @click.stop="copyTool(item)"
> >
@ -282,14 +258,7 @@
<el-dropdown-item <el-dropdown-item
v-if=" v-if="
!item.template_id && !item.template_id &&
hasPermission( permissionPrecise.export()
[
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
RoleConst.USER.getWorkspaceRole,
PermissionConst.TOOL_EXPORT.getWorkspacePermission,
],
'OR',
)
" "
@click.stop="exportTool(item)" @click.stop="exportTool(item)"
> >