feat: Permission manage (#3283)
This commit is contained in:
parent
0d36704f63
commit
19e8e76386
@ -1,7 +1,8 @@
|
|||||||
import {defineStore} from 'pinia'
|
import {defineStore} from 'pinia'
|
||||||
import {type Ref} from 'vue'
|
import {type Ref} from 'vue'
|
||||||
import loginApi from '@/api/user/login'
|
import loginApi from '@/api/user/login'
|
||||||
import type {LoginRequest} from '@/api/type/login'
|
import type { LoginRequest } from '@/api/type/login'
|
||||||
|
|
||||||
import useUserStore from '@/stores/modules/user'
|
import useUserStore from '@/stores/modules/user'
|
||||||
|
|
||||||
const useLoginStore = defineStore('logi', {
|
const useLoginStore = defineStore('logi', {
|
||||||
|
|||||||
@ -1,9 +1,69 @@
|
|||||||
import { Permission, Role, Edition } from '@/utils/permission/type'
|
import { Permission, Role, Edition } from '@/utils/permission/type'
|
||||||
|
// class Operate(Enum):
|
||||||
|
// """
|
||||||
|
// 一个权限组的操作权限
|
||||||
|
// """
|
||||||
|
// READ = 'READ'
|
||||||
|
// EDIT = "READ+EDIT"
|
||||||
|
// CREATE = "READ+CREATE"
|
||||||
|
// DELETE = "READ+DELETE"
|
||||||
|
// """
|
||||||
|
// 使用权限
|
||||||
|
// """
|
||||||
|
// USE = "USE"
|
||||||
|
// IMPORT = "READ+IMPORT"
|
||||||
|
// EXPORT = "READ+EXPORT" # 导入导出
|
||||||
|
// DEBUG = "READ+DEBUG" # 调试
|
||||||
|
// SYNC = "READ+SYNC" # 同步
|
||||||
|
// GENERATE = "READ+GENERATE" # 生成
|
||||||
|
// ADD_MEMBER = "READ+ADD_MEMBER" # 添加成员
|
||||||
|
// REMOVE_MEMBER = "READ+REMOVE_MEMBER" # 添加成员
|
||||||
|
// VECTOR = "READ+VECTOR" # 向量化
|
||||||
|
// MIGRATE = "READ+MIGRATE" # 迁移
|
||||||
|
// RELATE = "READ+RELATE" # 关联
|
||||||
|
// USER_GROUP = "READ+USER_GROUP" # 用户组
|
||||||
|
// ANNOTATION = "READ+ANNOTATION" # 标注
|
||||||
|
// CLEAR_POLICY = "READ+CLEAR_POLICY"
|
||||||
const PermissionConst = {
|
const PermissionConst = {
|
||||||
USER_READ: new Permission('USER:READ'),
|
USER_READ: new Permission('USER:READ'),
|
||||||
USER_CREATE: new Permission('USER:CREATE'),
|
USER_CREATE: new Permission('USER:CREATE'),
|
||||||
KNOWLEDGE_READ: new Permission('KNOWLEDGE:READ'),
|
|
||||||
APPLICATION_OVERVIEW_READ: new Permission('APPLICATION_OVERVIEW_READ'),
|
APPLICATION_OVERVIEW_READ: new Permission('APPLICATION_OVERVIEW_READ'),
|
||||||
|
|
||||||
|
KNOWLEDGE_READ: new Permission('KNOWLEDGE:READ'),
|
||||||
|
KNOWLEDGE_CREATE: new Permission('KNOWLEDGE:READ+CREATE'),
|
||||||
|
KNOWLEDGE_SYNC: new Permission('KNOWLEDGE:READ+SYNC'),
|
||||||
|
KNOWLEDGE_VECTOR: new Permission('KNOWLEDGE:READ+VECTOR'),
|
||||||
|
KNOWLEDGE_EDIT: new Permission('KNOWLEDGE:READ+EDIT'),
|
||||||
|
KNOWLEDGE_EXPORT: new Permission('KNOWLEDGE:READ+EXPORT'),
|
||||||
|
KNOWLEDGE_DELETE: new Permission('KNOWLEDGE:READ+DELETE'),
|
||||||
|
|
||||||
|
KNOWLEDGE_DOCUMENT_READ:new Permission('KNOWLEDGE_DOCUMENT:READ'),
|
||||||
|
KNOWLEDGE_DOCUMENT_CREATE:new Permission('KNOWLEDGE_DOCUMENT:READ+CREATE'),
|
||||||
|
KNOWLEDGE_DOCUMENT_EDIT:new Permission('KNOWLEDGE_DOCUMENT:READ+EDIT'),
|
||||||
|
KNOWLEDGE_DOCUMENT_SYNC:new Permission('KNOWLEDGE_DOCUMENT:READ+SYNC'),
|
||||||
|
KNOWLEDGE_DOCUMENT_MIGRATE:new Permission('KNOWLEDGE_DOCUMENT:READ+MIGRATE'),
|
||||||
|
KNOWLEDGE_DOCUMENT_VECTOR:new Permission('KNOWLEDGE_DOCUMENT:READ+VECTOR'),
|
||||||
|
KNOWLEDGE_DOCUMENT_GENERATE:new Permission('KNOWLEDGE_DOCUMENT:READ+GENERATE'),
|
||||||
|
KNOWLEDGE_DOCUMENT_EXPORT:new Permission('KNOWLEDGE_DOCUMENT:READ+EXPORT'),
|
||||||
|
|
||||||
|
KNOWLEDGE_PROBLEM_READ:new Permission('KNOWLEDGE_PROBLEM:READ'),
|
||||||
|
KNOWLEDGE_PROBLEM_CREATE:new Permission('KNOWLEDGE_PROBLEM:READ+CREATE'),
|
||||||
|
KNOWLEDGE_PROBLEM_EDIT:new Permission('KNOWLEDGE_PROBLEM:READ+EDIT'),
|
||||||
|
KNOWLEDGE_PROBLEM_RELATE:new Permission('KNOWLEDGE_PROBLEM:READ+RELATE'),
|
||||||
|
KNOWLEDGE_PROBLEM_DELETE:new Permission('KNOWLEDGE_PROBLEM:READ+DELETE'),
|
||||||
|
|
||||||
|
MODEL_READ:new Permission('MODEL:READ'),
|
||||||
|
MODEL_CREATE:new Permission('MODEL:READ+CREATE'),
|
||||||
|
MODEL_EDIT:new Permission('MODEL:READ+EDIT'),
|
||||||
|
MODEL_DELETE:new Permission('MODEL:READ+DELETE'),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SYSTEM_API_KEY_EDIT:new Permission('OTHER: READ+EDIT')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
const RoleConst = {
|
const RoleConst = {
|
||||||
ADMIN: new Role('ADMIN'),
|
ADMIN: new Role('ADMIN'),
|
||||||
|
|||||||
@ -10,23 +10,30 @@
|
|||||||
v-if="knowledgeDetail.type === 0"
|
v-if="knowledgeDetail.type === 0"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="router.push({ path: '/knowledge/document/upload', query: { id: id } })"
|
@click="router.push({ path: '/knowledge/document/upload', query: { id: id } })"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermission]"
|
||||||
>{{ $t('views.document.uploadDocument') }}
|
>{{ $t('views.document.uploadDocument') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="knowledgeDetail.type === 1" type="primary" @click="importDoc"
|
<el-button v-if="knowledgeDetail.type === 1" type="primary" @click="importDoc"
|
||||||
>{{ $t('views.document.importDocument') }}
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermission]"
|
||||||
|
>{{ $t('views.document.importDocument') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button @click="batchRefresh" :disabled="multipleSelection.length === 0">
|
<el-button @click="batchRefresh" :disabled="multipleSelection.length === 0"
|
||||||
{{ $t('views.knowledge.setting.vectorization') }}
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission]"
|
||||||
|
>{{ $t('views.knowledge.setting.vectorization') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="openGenerateDialog()" :disabled="multipleSelection.length === 0">
|
<el-button @click="openGenerateDialog()" :disabled="multipleSelection.length === 0"
|
||||||
{{ $t('views.document.generateQuestion.title') }}
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermission]"
|
||||||
|
>{{ $t('views.document.generateQuestion.title') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="openknowledgeDialog()" :disabled="multipleSelection.length === 0">
|
<el-button @click="openknowledgeDialog()" :disabled="multipleSelection.length === 0"
|
||||||
{{ $t('views.document.setting.migration') }}
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_MIGRATE.getWorkspacePermission]"
|
||||||
|
>{{ $t('views.document.setting.migration') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-dropdown>
|
<el-dropdown>
|
||||||
<el-button class="ml-12 mr-12">
|
<el-button class="ml-12 mr-12"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission]"
|
||||||
|
>
|
||||||
<el-icon><MoreFilled /></el-icon>
|
<el-icon><MoreFilled /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
@ -350,6 +357,7 @@
|
|||||||
text
|
text
|
||||||
@click.stop="cancelTask(row, TaskType.EMBEDDING)"
|
@click.stop="cancelTask(row, TaskType.EMBEDDING)"
|
||||||
:title="$t('views.document.setting.cancelVectorization')"
|
:title="$t('views.document.setting.cancelVectorization')"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="app-close" style="font-size: 16px"></AppIcon>
|
<AppIcon iconName="app-close" style="font-size: 16px"></AppIcon>
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -360,6 +368,7 @@
|
|||||||
text
|
text
|
||||||
@click.stop="refreshDocument(row)"
|
@click.stop="refreshDocument(row)"
|
||||||
:title="$t('views.knowledge.setting.vectorization')"
|
:title="$t('views.knowledge.setting.vectorization')"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="app-document-refresh" style="font-size: 16px"></AppIcon>
|
<AppIcon iconName="app-document-refresh" style="font-size: 16px"></AppIcon>
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -370,13 +379,16 @@
|
|||||||
text
|
text
|
||||||
@click.stop="settingDoc(row)"
|
@click.stop="settingDoc(row)"
|
||||||
:title="$t('common.setting')"
|
:title="$t('common.setting')"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
<el-icon><Setting /></el-icon>
|
<el-icon><Setting /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
<span @click.stop>
|
<span @click.stop>
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<el-button text type="primary">
|
<el-button text type="primary"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission]"
|
||||||
|
>
|
||||||
<el-icon><MoreFilled /></el-icon>
|
<el-icon><MoreFilled /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
@ -387,8 +399,7 @@
|
|||||||
getTaskState(row.status, TaskType.GENERATE_PROBLEM),
|
getTaskState(row.status, TaskType.GENERATE_PROBLEM),
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
@click="cancelTask(row, TaskType.GENERATE_PROBLEM)"
|
@click="cancelTask(row, TaskType.GENERATE_PROBLEM)">
|
||||||
>
|
|
||||||
<el-icon><Connection /></el-icon>
|
<el-icon><Connection /></el-icon>
|
||||||
{{ $t('views.document.setting.cancelGenerateQuestion') }}
|
{{ $t('views.document.setting.cancelGenerateQuestion') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
@ -408,9 +419,8 @@
|
|||||||
<AppIcon iconName="app-export"></AppIcon>
|
<AppIcon iconName="app-export"></AppIcon>
|
||||||
{{ $t('views.document.setting.export') }} Zip
|
{{ $t('views.document.setting.export') }} Zip
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item icon="Delete" @click.stop="deleteDocument(row)">{{
|
<el-dropdown-item icon="Delete" @click.stop="deleteDocument(row)">
|
||||||
$t('common.delete')
|
{{$t('common.delete')}}</el-dropdown-item>
|
||||||
}}</el-dropdown-item>
|
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
@ -423,6 +433,7 @@
|
|||||||
text
|
text
|
||||||
@click.stop="syncDocument(row)"
|
@click.stop="syncDocument(row)"
|
||||||
:title="$t('views.knowledge.setting.sync')"
|
:title="$t('views.knowledge.setting.sync')"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_SYNC.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
<el-icon><Refresh /></el-icon>
|
<el-icon><Refresh /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -438,7 +449,8 @@
|
|||||||
text
|
text
|
||||||
@click.stop="cancelTask(row, TaskType.EMBEDDING)"
|
@click.stop="cancelTask(row, TaskType.EMBEDDING)"
|
||||||
:title="$t('views.document.setting.cancelVectorization')"
|
:title="$t('views.document.setting.cancelVectorization')"
|
||||||
>
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission]"
|
||||||
|
>
|
||||||
<AppIcon iconName="app-close" style="font-size: 16px"></AppIcon>
|
<AppIcon iconName="app-close" style="font-size: 16px"></AppIcon>
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
@ -448,19 +460,23 @@
|
|||||||
text
|
text
|
||||||
@click.stop="refreshDocument(row)"
|
@click.stop="refreshDocument(row)"
|
||||||
:title="$t('views.knowledge.setting.vectorization')"
|
:title="$t('views.knowledge.setting.vectorization')"
|
||||||
>
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission]"
|
||||||
|
>
|
||||||
<AppIcon iconName="app-document-refresh" style="font-size: 16px"></AppIcon>
|
<AppIcon iconName="app-document-refresh" style="font-size: 16px"></AppIcon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span @click.stop>
|
<span @click.stop>
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<el-button text type="primary">
|
<el-button text type="primary"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_EDIT.getWorkspacePermission]"
|
||||||
|
>
|
||||||
<el-icon><MoreFilled /></el-icon>
|
<el-icon><MoreFilled /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item icon="Setting" @click="settingDoc(row)">{{
|
<el-dropdown-item icon="Setting" @click="settingDoc(row)"
|
||||||
|
>{{
|
||||||
$t('common.setting')
|
$t('common.setting')
|
||||||
}}</el-dropdown-item>
|
}}</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
@ -474,25 +490,30 @@
|
|||||||
<el-icon><Connection /></el-icon>
|
<el-icon><Connection /></el-icon>
|
||||||
{{ $t('views.document.setting.cancelGenerateQuestion') }}
|
{{ $t('views.document.setting.cancelGenerateQuestion') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-else @click="openGenerateDialog(row)">
|
<el-dropdown-item v-else @click="openGenerateDialog(row)"
|
||||||
|
>
|
||||||
<el-icon><Connection /></el-icon>
|
<el-icon><Connection /></el-icon>
|
||||||
{{ $t('views.document.generateQuestion.title') }}
|
{{ $t('views.document.generateQuestion.title') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item @click="openknowledgeDialog(row)">
|
<el-dropdown-item @click="openknowledgeDialog(row)"
|
||||||
<AppIcon iconName="app-migrate"></AppIcon>
|
>
|
||||||
{{ $t('views.document.setting.migration') }}</el-dropdown-item
|
<AppIcon iconName="app-migrate"></AppIcon>
|
||||||
|
{{ $t('views.document.setting.migration') }}
|
||||||
|
</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click="exportDocument(row)"
|
||||||
>
|
>
|
||||||
<el-dropdown-item @click="exportDocument(row)">
|
|
||||||
<AppIcon iconName="app-export"></AppIcon>
|
<AppIcon iconName="app-export"></AppIcon>
|
||||||
{{ $t('views.document.setting.export') }} Excel
|
{{ $t('views.document.setting.export') }} Excel
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item @click="exportDocumentZip(row)">
|
<el-dropdown-item @click="exportDocumentZip(row)"
|
||||||
|
>
|
||||||
<AppIcon iconName="app-export"></AppIcon>
|
<AppIcon iconName="app-export"></AppIcon>
|
||||||
{{ $t('views.document.setting.export') }} Zip
|
{{ $t('views.document.setting.export') }} Zip
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item icon="Delete" @click.stop="deleteDocument(row)">{{
|
<el-dropdown-item icon="Delete" @click.stop="deleteDocument(row)"
|
||||||
$t('common.delete')
|
>
|
||||||
}}</el-dropdown-item>
|
{{$t('common.delete')}}
|
||||||
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
@ -505,10 +526,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<div class="mul-operation w-full flex" v-if="multipleSelection.length !== 0">
|
<div class="mul-operation w-full flex" v-if="multipleSelection.length !== 0">
|
||||||
<el-button :disabled="multipleSelection.length === 0" @click="cancelTaskHandle(1, row)">
|
<el-button :disabled="multipleSelection.length === 0" @click="cancelTaskHandle(1, row)"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_VECTOR.getWorkspacePermission]">
|
||||||
{{ $t('views.document.setting.cancelVectorization') }}
|
{{ $t('views.document.setting.cancelVectorization') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button :disabled="multipleSelection.length === 0" @click="cancelTaskHandle(2, row)">
|
<el-button :disabled="multipleSelection.length === 0" @click="cancelTaskHandle(2, row)"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_GENERATE.getWorkspacePermission]"
|
||||||
|
>
|
||||||
|
|
||||||
{{ $t('views.document.setting.cancelGenerate') }}
|
{{ $t('views.document.setting.cancelGenerate') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-text type="info" class="secondary ml-24">
|
<el-text type="info" class="secondary ml-24">
|
||||||
@ -547,6 +572,8 @@ import GenerateRelatedDialog from '@/components/generate-related-dialog/index.vu
|
|||||||
import EmbeddingContentDialog from '@/views/document/component/EmbeddingContentDialog.vue'
|
import EmbeddingContentDialog from '@/views/document/component/EmbeddingContentDialog.vue'
|
||||||
import { TaskType, State } from '@/utils/status'
|
import { TaskType, State } from '@/utils/status'
|
||||||
import { t } from '@/locales'
|
import { t } from '@/locales'
|
||||||
|
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|||||||
@ -44,7 +44,9 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<el-button type="primary" class="ml-8">
|
<el-button type="primary" class="ml-8"
|
||||||
|
v-hasPermission="[RoleConst.ADMIN.getWorkspaceRole,PermissionConst.KNOWLEDGE_CREATE.getWorkspacePermission]"
|
||||||
|
>
|
||||||
{{ $t('common.create') }}
|
{{ $t('common.create') }}
|
||||||
<el-icon class="el-icon--right">
|
<el-icon class="el-icon--right">
|
||||||
<arrow-down />
|
<arrow-down />
|
||||||
@ -215,7 +217,9 @@
|
|||||||
<template #mouseEnter>
|
<template #mouseEnter>
|
||||||
<div @click.stop>
|
<div @click.stop>
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<el-button text @click.stop>
|
<el-button text @click.stop
|
||||||
|
v-hasPermission="[RoleConst.ADMIN.getWorkspaceRole,PermissionConst.KNOWLEDGE_EDIT.getWorkspacePermission]"
|
||||||
|
>
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<MoreFilled />
|
<MoreFilled />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
@ -293,6 +297,8 @@ import useStore from '@/stores'
|
|||||||
import { numberFormat } from '@/utils/common'
|
import { numberFormat } from '@/utils/common'
|
||||||
import { t } from '@/locales'
|
import { t } from '@/locales'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
|
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const { folder } = useStore()
|
const { folder } = useStore()
|
||||||
|
|||||||
@ -79,6 +79,7 @@
|
|||||||
:disabled="!is_permisstion"
|
:disabled="!is_permisstion"
|
||||||
text
|
text
|
||||||
@click.stop="openEditModel"
|
@click.stop="openEditModel"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.MODEL_EDIT.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
{{ $t('common.modify') }}
|
{{ $t('common.modify') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
@ -93,6 +94,7 @@
|
|||||||
:disabled="!is_permisstion"
|
:disabled="!is_permisstion"
|
||||||
icon="Setting"
|
icon="Setting"
|
||||||
@click.stop="openParamSetting"
|
@click.stop="openParamSetting"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.MODEL_EDIT.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
{{ $t('views.model.modelForm.title.paramSetting') }}
|
{{ $t('views.model.modelForm.title.paramSetting') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
@ -102,6 +104,7 @@
|
|||||||
:disabled="!is_permisstion"
|
:disabled="!is_permisstion"
|
||||||
text
|
text
|
||||||
@click.stop="deleteModel"
|
@click.stop="deleteModel"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.MODEL_DELETE.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
{{ $t('common.delete') }}
|
{{ $t('common.delete') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
@ -124,6 +127,9 @@ import {modelType} from '@/enums/model'
|
|||||||
import useStore from '@/stores'
|
import useStore from '@/stores'
|
||||||
import ParamSettingDialog from './ParamSettingDialog.vue'
|
import ParamSettingDialog from './ParamSettingDialog.vue'
|
||||||
import {t} from '@/locales'
|
import {t} from '@/locales'
|
||||||
|
import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data'
|
||||||
|
import { hasPermission } from '@/utils/permission/index'
|
||||||
|
import { ComplexPermission } from '@/utils/permission/type'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
model: Model
|
model: Model
|
||||||
|
|||||||
@ -55,9 +55,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<el-button class="ml-16" type="primary" @click="openCreateModel(active_provider)">
|
<el-button class="ml-16" type="primary" @click="openCreateModel(active_provider)"
|
||||||
{{ $t('views.model.addModel') }}</el-button
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.MODEL_CREATE.getWorkspacePermission]"
|
||||||
>
|
>
|
||||||
|
{{ $t('views.model.addModel') }}
|
||||||
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -116,6 +118,8 @@ import SharedWorkspace from '@/views/shared/model-shared/SharedWorkspace.vue'
|
|||||||
import SelectProviderDialog from '@/views/model/component/SelectProviderDialog.vue'
|
import SelectProviderDialog from '@/views/model/component/SelectProviderDialog.vue'
|
||||||
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 { model } = useStore()
|
const { model } = useStore()
|
||||||
|
|
||||||
|
|||||||
@ -7,13 +7,16 @@
|
|||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<div>
|
<div>
|
||||||
<el-button type="primary" @click="createProblem"
|
<el-button type="primary" @click="createProblem"
|
||||||
>{{ $t('views.problem.createProblem') }}
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermission]">
|
||||||
|
{{ $t('views.problem.createProblem') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button @click="relateProblem()" :disabled="multipleSelection.length === 0"
|
<el-button @click="relateProblem()" :disabled="multipleSelection.length === 0"
|
||||||
>{{ $t('views.problem.relateParagraph.title') }}
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermission]">
|
||||||
|
{{ $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"
|
||||||
>{{ $t('views.problem.setting.batchDelete') }}
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermission]">
|
||||||
|
{{ $t('views.problem.setting.batchDelete') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -99,14 +102,16 @@
|
|||||||
:content="$t('views.problem.relateParagraph.title')"
|
:content="$t('views.problem.relateParagraph.title')"
|
||||||
placement="top"
|
placement="top"
|
||||||
>
|
>
|
||||||
<el-button type="primary" text @click.stop="relateProblem(row)">
|
<el-button type="primary" text @click.stop="relateProblem(row)"
|
||||||
|
v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermission]">
|
||||||
<el-icon><Connection /></el-icon>
|
<el-icon><Connection /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
<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,PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermission]">
|
||||||
<el-icon><Delete /></el-icon>
|
<el-icon><Delete /></el-icon>
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
@ -145,6 +150,8 @@ import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
|
|||||||
import type { Dict } from '@/api/type/common'
|
import type { Dict } from '@/api/type/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 {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user