5757 <el-dropdown-menu >
5858 <el-dropdown-item
5959 @click.stop =" openCreateFolder(data)"
60- v-if =" node.level !== 3"
60+ v-if =" node.level !== 3 && permissionPrecise.folderCreate() "
6161 >
6262 <AppIcon iconName =" app-add-folder" ></AppIcon >
6363 {{ $t('components.folder.addChildFolder') }}
6464 </el-dropdown-item >
65- <el-dropdown-item @click.stop =" openEditFolder(data)" >
65+ <el-dropdown-item @click.stop =" openEditFolder(data)"
66+ v-if =" permissionPrecise.folderEdit()"
67+ >
6668 <el-icon ><EditPen /></el-icon >
6769 {{ $t('common.edit') }}
6870 </el-dropdown-item >
6971 <el-dropdown-item
7072 divided
7173 @click.stop =" deleteFolder(data)"
7274 :disabled =" !data.parent_id"
75+ v-if =" permissionPrecise.folderDelete()"
7376 >
7477 <el-icon ><Delete /></el-icon >
7578 {{ $t('common.delete') }}
8891</template >
8992
9093<script lang="ts" setup>
91- import { ref , watch } from ' vue'
94+ import { computed , ref , watch } from ' vue'
9295import { onBeforeRouteLeave } from ' vue-router'
9396import type { TreeInstance } from ' element-plus'
9497import CreateFolderDialog from ' @/components/folder-tree/CreateFolderDialog.vue'
@@ -99,6 +102,7 @@ import { hasPermission } from '@/utils/permission/index'
99102import useStore from ' @/stores'
100103import { TreeToFlatten } from ' @/utils/array'
101104import { MsgConfirm } from ' @/utils/message'
105+ import permissionMap from ' @/permission'
102106
103107defineOptions ({ name: ' FolderTree' })
104108const props = defineProps ({
@@ -131,6 +135,21 @@ const props = defineProps({
131135 default : () => ({}),
132136 },
133137})
138+ const resourceType = computed (() => {
139+ if (props .source === ' APPLICATION' ) {
140+ return ' application'
141+ } else if (props .source === ' KNOWLEDGE' ) {
142+ return ' knowledge'
143+ } else if (props .source === ' MODEL' ) {
144+ return ' model'
145+ } else if (props .source === ' TOOL' ) {
146+ return ' tool'
147+ }
148+ })
149+
150+ const permissionPrecise = computed (() => {
151+ return permissionMap [resourceType .value ! ][' workspace' ]
152+ })
134153
135154const { folder } = useStore ()
136155onBeforeRouteLeave ((to , from ) => {
0 commit comments