diff --git a/ui/src/components/select-knowledge-document/index.vue b/ui/src/components/select-knowledge-document/index.vue index 65bef7ca8..3fe4d56f0 100644 --- a/ui/src/components/select-knowledge-document/index.vue +++ b/ui/src/components/select-knowledge-document/index.vue @@ -59,15 +59,16 @@ import type { FormInstance, FormRules } from 'element-plus' import { loadSharedApi } from '@/utils/dynamics-api/shared-api' import useStore from '@/stores' import { t } from '@/locales' -const props = defineProps<{ - data?: { - type: object - default: () => null - } +const props = withDefaults(defineProps<{ + data?: any, + postKnowledgeHandler?: (knowledge_list:Array) => Array apiType: 'systemShare' | 'workspace' | 'systemManage' isApplication?: boolean, workspaceId?: string, -}>() +}>(), { + postKnowledgeHandler: (k_l: Array) => k_l, + data: () => null +}) const { user } = useStore() @@ -111,8 +112,10 @@ const loadTree = async (node: any, resolve: any) => { } await loadSharedApi({ type: 'knowledge', systemType: props.apiType }) .getKnowledgeList(obj, optionLoading) + .then((ok: any)=>ok.data) + .then(props.postKnowledgeHandler) .then((res: any) => { - resolve(res.data) + resolve(res) }) } diff --git a/ui/src/views/chat-log/component/EditContentDialog.vue b/ui/src/views/chat-log/component/EditContentDialog.vue index ff972ccd9..8f323f97e 100644 --- a/ui/src/views/chat-log/component/EditContentDialog.vue +++ b/ui/src/views/chat-log/component/EditContentDialog.vue @@ -50,7 +50,9 @@ { } }) +const postKnowledgeHandler = (knowledgeList: Array) => { + return knowledgeList.filter(item => { + if (apiType.value === 'workspace') { + return hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole(), + new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspacePermissionWorkspaceManageRole, + new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspaceResourcePermission('KNOWLEDGE', item.id)], 'OR') + } else if (apiType.value === 'systemManage') { + return hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_EDIT],'OR') + } + }) +} + const emit = defineEmits(['refresh']) const formRef = ref() @@ -127,7 +145,6 @@ const SelectKnowledgeDocumentRef = ref() const dialogVisible = ref(false) const loading = ref(false) const detail = ref({}) - const form = ref({ chat_id: '', record_id: '', diff --git a/ui/src/views/chat-log/index.vue b/ui/src/views/chat-log/index.vue index 3a1d84705..62b1abd01 100644 --- a/ui/src/views/chat-log/index.vue +++ b/ui/src/views/chat-log/index.vue @@ -222,6 +222,7 @@ :close-on-press-escape="false" > { @@ -349,7 +354,18 @@ const filter = ref({ min_trample: 0, comparer: 'and', }) - +const postKnowledgeHandler = (knowledgeList: Array) => { + return knowledgeList.filter(item => { + if (apiType.value === 'workspace') { + return hasPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole(), + new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspacePermissionWorkspaceManageRole, + new Permission("KNOWLEDGE_DOCUMENT:READ+EDIT").getWorkspaceResourcePermission('KNOWLEDGE', item.id)], 'OR') + } else if (apiType.value === 'systemManage') { + return hasPermission([RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_DOCUMENT_EDIT],'OR') + } + }) + +} function filterChange(val: string) { if (val === 'clear') { filter.value = cloneDeep(defaultFilter)