mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
Merge remote-tracking branch 'origin/v2' into v2
This commit is contained in:
commit
90249257c6
|
|
@ -70,22 +70,30 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref, watch } from 'vue'
|
||||
import { reactive, ref, watch, computed } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import documentApi from '@/api/knowledge/document'
|
||||
import paragraphApi from '@/api/knowledge/paragraph'
|
||||
import knowledgeApi from '@/api/knowledge/knowledge'
|
||||
import useStore from '@/stores'
|
||||
import { groupBy } from 'lodash'
|
||||
import { MsgSuccess } from '@/utils/message'
|
||||
import { t } from '@/locales'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
|
||||
const route = useRoute()
|
||||
const {
|
||||
params: { id, documentId }, // id为knowledgeID
|
||||
} = route as any
|
||||
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const { model, prompt, user } = useStore()
|
||||
|
||||
const emit = defineEmits(['refresh'])
|
||||
|
|
@ -171,10 +179,12 @@ const submitHandle = async (formEl: FormInstance) => {
|
|||
...form.value,
|
||||
state_list: stateMap[state.value],
|
||||
}
|
||||
knowledgeApi.putGenerateRelated(id ? id : knowledgeId.value, data, loading).then(() => {
|
||||
MsgSuccess(t('views.document.generateQuestion.successMessage'))
|
||||
dialogVisible.value = false
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putGenerateRelated(id ? id : knowledgeId.value, data, loading)
|
||||
.then(() => {
|
||||
MsgSuccess(t('views.document.generateQuestion.successMessage'))
|
||||
dialogVisible.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
@ -182,7 +192,7 @@ const submitHandle = async (formEl: FormInstance) => {
|
|||
|
||||
function getModel() {
|
||||
loading.value = true
|
||||
knowledgeApi
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.getKnowledgeModel()
|
||||
.then((res: any) => {
|
||||
modelOptions.value = groupBy(res?.data, 'provider')
|
||||
|
|
|
|||
|
|
@ -115,32 +115,35 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, onMounted, computed } from 'vue'
|
||||
import { onBeforeRouteLeave, useRouter, useRoute } from 'vue-router'
|
||||
import { isWorkFlow } from '@/utils/application'
|
||||
import { isAppIcon } from '@/utils/common'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
|
||||
import useStore from '@/stores'
|
||||
const { common, knowledge, application } = useStore()
|
||||
const { common, application } = useStore()
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
|
||||
const {
|
||||
meta: { activeMenu },
|
||||
params: { id },
|
||||
} = route as any
|
||||
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
|
||||
onBeforeRouteLeave((to, from) => {
|
||||
common.saveBreadcrumb(null)
|
||||
})
|
||||
|
||||
const CreateKnowledgeDialogRef = ref()
|
||||
const CreateApplicationDialogRef = ref()
|
||||
const list = ref<any[]>([])
|
||||
const loading = ref(false)
|
||||
|
||||
const breadcrumbData = computed(() => common.breadcrumb)
|
||||
const current = ref<any>(null)
|
||||
// const current = computed(() => {
|
||||
// return list.value?.filter((v) => v.id === id)?.[0]
|
||||
// })
|
||||
|
||||
const isApplication = computed(() => {
|
||||
return activeMenu.includes('application')
|
||||
|
|
@ -151,8 +154,8 @@ const isKnowledge = computed(() => {
|
|||
|
||||
function getKnowledgeDetail() {
|
||||
loading.value = true
|
||||
knowledge
|
||||
.asyncGetKnowledgeDetail(id)
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.getKnowledgeDetail(id)
|
||||
.then((res: any) => {
|
||||
current.value = res.data
|
||||
loading.value = false
|
||||
|
|
@ -175,80 +178,12 @@ function getApplicationDetail() {
|
|||
})
|
||||
}
|
||||
|
||||
function openCreateDialog() {
|
||||
if (isKnowledge.value) {
|
||||
CreateKnowledgeDialogRef.value.open()
|
||||
} else if (isApplication.value) {
|
||||
CreateApplicationDialogRef.value.open()
|
||||
}
|
||||
}
|
||||
|
||||
function changeMenu(id: string) {
|
||||
const lastMatched = route.matched[route.matched.length - 1]
|
||||
if (lastMatched) {
|
||||
if (isKnowledge.value) {
|
||||
router.push({ name: lastMatched.name, params: { id: id } })
|
||||
} else if (isApplication.value) {
|
||||
const type = list.value?.filter((v) => v.id === id)?.[0]?.type
|
||||
if (
|
||||
isWorkFlow(type) &&
|
||||
(lastMatched.name === 'AppSetting' || lastMatched.name === 'AppHitTest')
|
||||
) {
|
||||
router.push({ path: `/application/${id}/${type}/overview` })
|
||||
} else {
|
||||
router.push({
|
||||
name: lastMatched.name,
|
||||
params: { id: id, type: type },
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getKnowledge() {
|
||||
loading.value = true
|
||||
knowledge
|
||||
.asyncGetFolderKnowledge()
|
||||
.then((res: any) => {
|
||||
list.value = res.data
|
||||
common.saveBreadcrumb(list.value)
|
||||
loading.value = false
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
function getApplication() {
|
||||
loading.value = true
|
||||
application
|
||||
.asyncGetAllApplication()
|
||||
.then((res: any) => {
|
||||
list.value = res.data
|
||||
common.saveBreadcrumb(list.value)
|
||||
loading.value = false
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
function refresh() {
|
||||
common.saveBreadcrumb(null)
|
||||
}
|
||||
onMounted(() => {
|
||||
if (isKnowledge.value) {
|
||||
getKnowledgeDetail()
|
||||
} else if (isApplication.value) {
|
||||
getApplicationDetail()
|
||||
}
|
||||
// if (!breadcrumbData.value) {
|
||||
// if (isKnowledge.value) {
|
||||
// getKnowledge()
|
||||
// } else if (isApplication.value) {
|
||||
// getApplication()
|
||||
// }
|
||||
// } else {
|
||||
// list.value = breadcrumbData.value
|
||||
// }
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ export interface knowledgeStateTypes {
|
|||
webInfo: any
|
||||
documentsType: string
|
||||
documentsFiles: UploadUserFile[]
|
||||
knowledgeList: knowledgeData[]
|
||||
knowledgeList: any[]
|
||||
}
|
||||
|
||||
const useKnowledgeStore = defineStore('knowledge', {
|
||||
|
|
@ -56,7 +56,7 @@ const useKnowledgeStore = defineStore('knowledge', {
|
|||
...paramsData,
|
||||
}
|
||||
loadSharedApi({ type: 'knowledge', isShared, systemType })
|
||||
.getToolListPage(page, params, loading)
|
||||
.getKnowledgeListPage(page, params, loading)
|
||||
.then((res: any) => {
|
||||
resolve(res)
|
||||
})
|
||||
|
|
@ -80,18 +80,6 @@ const useKnowledgeStore = defineStore('knowledge', {
|
|||
})
|
||||
})
|
||||
},
|
||||
async asyncGetKnowledgeDetail(knowledge_id: string, loading?: Ref<boolean>) {
|
||||
return new Promise((resolve, reject) => {
|
||||
knowledgeApi
|
||||
.getKnowledgeDetail(knowledge_id, loading)
|
||||
.then((data) => {
|
||||
resolve(data)
|
||||
})
|
||||
.catch((error) => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { computed, ref, watch } from 'vue'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
import useStore from '@/stores'
|
||||
const props = defineProps({
|
||||
data: {
|
||||
|
|
|
|||
|
|
@ -56,17 +56,25 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from 'vue'
|
||||
import { ref, watch, computed } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import documentApi from '@/api/knowledge/document'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
|
||||
import useStore from '@/stores'
|
||||
const { knowledge } = useStore()
|
||||
const route = useRoute()
|
||||
const {
|
||||
params: { id }, // id为knowledgeID
|
||||
} = route as any
|
||||
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['refresh'])
|
||||
|
||||
const loading = ref<boolean>(false)
|
||||
|
|
@ -91,9 +99,11 @@ const loadTree = (node: any, resolve: any) => {
|
|||
console.log(node)
|
||||
if (node.isLeaf) return resolve([])
|
||||
const folder_id = node.level === 0 ? '' : node.data.id
|
||||
knowledge.asyncGetFolderKnowledge(folder_id, loading).then((res: any) => {
|
||||
resolve(res.data)
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.getKnowledgeList(folder_id, loading)
|
||||
.then((res: any) => {
|
||||
resolve(res.data)
|
||||
})
|
||||
}
|
||||
|
||||
watch(dialogVisible, (bool) => {
|
||||
|
|
|
|||
|
|
@ -7,9 +7,7 @@
|
|||
<div class="flex-between">
|
||||
<div>
|
||||
<el-button
|
||||
v-if="knowledgeDetail.type === 0 &&
|
||||
permissionPrecise.doc_create(id)
|
||||
"
|
||||
v-if="knowledgeDetail.type === 0 && permissionPrecise.doc_create(id)"
|
||||
type="danger"
|
||||
@click="
|
||||
router.push({ path: `/knowledge/document/upload/${folderId}`, query: { id: id } })
|
||||
|
|
@ -17,23 +15,20 @@
|
|||
>{{ $t('views.document.uploadDocument') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="knowledgeDetail.type === 1 &&
|
||||
permissionPrecise.doc_create(id)
|
||||
"
|
||||
v-if="knowledgeDetail.type === 1 && permissionPrecise.doc_create(id)"
|
||||
type="primary"
|
||||
@click="importDoc"
|
||||
>{{ $t('views.document.importDocument') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="knowledgeDetail.type === 2 &&
|
||||
permissionPrecise.doc_create(id)
|
||||
"
|
||||
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 },
|
||||
})"
|
||||
})
|
||||
"
|
||||
>{{ $t('views.document.importDocument') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
|
|
@ -55,9 +50,7 @@
|
|||
>{{ $t('views.document.setting.migration') }}
|
||||
</el-button>
|
||||
<el-dropdown>
|
||||
<el-button
|
||||
class="ml-12 mr-12"
|
||||
>
|
||||
<el-button class="ml-12 mr-12">
|
||||
<el-icon><MoreFilled /></el-icon>
|
||||
</el-button>
|
||||
<template #dropdown>
|
||||
|
|
@ -73,18 +66,14 @@
|
|||
divided
|
||||
@click="syncMulDocument"
|
||||
:disabled="multipleSelection.length === 0"
|
||||
v-if="
|
||||
permissionPrecise.doc_sync(id)
|
||||
"
|
||||
v-if="permissionPrecise.doc_sync(id)"
|
||||
>{{ $t('views.document.syncDocument') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
divided
|
||||
@click="syncLarkMulDocument"
|
||||
:disabled="multipleSelection.length === 0"
|
||||
v-if="knowledgeDetail.type === 2 &&
|
||||
permissionPrecise.doc_sync(id)
|
||||
"
|
||||
v-if="knowledgeDetail.type === 2 && permissionPrecise.doc_sync(id)"
|
||||
>{{ $t('views.document.syncDocument') }}
|
||||
</el-dropdown-item>
|
||||
|
||||
|
|
@ -92,9 +81,7 @@
|
|||
divided
|
||||
@click="deleteMulDocument"
|
||||
:disabled="multipleSelection.length === 0"
|
||||
v-if="
|
||||
permissionPrecise.doc_delete(id)
|
||||
"
|
||||
v-if="permissionPrecise.doc_delete(id)"
|
||||
>{{ $t('common.delete') }}
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
|
|
@ -116,8 +103,7 @@
|
|||
class="mt-16"
|
||||
:data="documentData"
|
||||
:pagination-config="paginationConfig"
|
||||
:quick-create="knowledgeDetail.type === 0 &&
|
||||
permissionPrecise.doc_create(id)"
|
||||
:quick-create="knowledgeDetail.type === 0 && permissionPrecise.doc_create(id)"
|
||||
@sizeChange="handleSizeChange"
|
||||
@changePage="getList"
|
||||
@cell-mouse-enter="cellMouseEnter"
|
||||
|
|
@ -408,10 +394,7 @@
|
|||
</span>
|
||||
<span @click.stop>
|
||||
<el-dropdown trigger="click">
|
||||
<el-button
|
||||
text
|
||||
type="primary"
|
||||
>
|
||||
<el-button text type="primary">
|
||||
<el-icon><MoreFilled /></el-icon>
|
||||
</el-button>
|
||||
<template #dropdown>
|
||||
|
|
@ -420,38 +403,45 @@
|
|||
v-if="
|
||||
([State.STARTED, State.PENDING] as Array<string>).includes(
|
||||
getTaskState(row.status, TaskType.GENERATE_PROBLEM),
|
||||
)&&
|
||||
permissionPrecise.doc_generate(id)"
|
||||
) && 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)"
|
||||
<el-dropdown-item
|
||||
v-else
|
||||
@click="openGenerateDialog(row)"
|
||||
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)"
|
||||
<el-dropdown-item
|
||||
@click="openknowledgeDialog(row)"
|
||||
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)"
|
||||
<el-dropdown-item
|
||||
@click="exportDocument(row)"
|
||||
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)"
|
||||
<el-dropdown-item
|
||||
@click="exportDocumentZip(row)"
|
||||
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)"
|
||||
<el-dropdown-item
|
||||
icon="Delete"
|
||||
@click.stop="deleteDocument(row)"
|
||||
v-if="permissionPrecise.doc_delete(id)"
|
||||
>
|
||||
{{ $t('common.delete') }}</el-dropdown-item
|
||||
|
|
@ -478,8 +468,7 @@
|
|||
v-if="
|
||||
([State.STARTED, State.PENDING] as Array<string>).includes(
|
||||
getTaskState(row.status, TaskType.EMBEDDING),
|
||||
) &&
|
||||
permissionPrecise.doc_vector(id)
|
||||
) && permissionPrecise.doc_vector(id)
|
||||
"
|
||||
type="primary"
|
||||
text
|
||||
|
|
@ -503,10 +492,7 @@
|
|||
|
||||
<span @click.stop>
|
||||
<el-dropdown trigger="click">
|
||||
<el-button
|
||||
text
|
||||
type="primary"
|
||||
>
|
||||
<el-button text type="primary">
|
||||
<el-icon><MoreFilled /></el-icon>
|
||||
</el-button>
|
||||
<template #dropdown>
|
||||
|
|
@ -609,7 +595,7 @@ import { t } from '@/locales'
|
|||
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||
import { hasPermission } from '@/utils/permission/index'
|
||||
import permissionMap from '@/permission'
|
||||
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
|
||||
const route = useRoute()
|
||||
const { folder, user } = useStore()
|
||||
|
|
@ -1018,9 +1004,11 @@ function getList(bool?: boolean) {
|
|||
}
|
||||
|
||||
function getDetail() {
|
||||
knowledge.asyncGetKnowledgeDetail(id, loading).then((res: any) => {
|
||||
knowledgeDetail.value = res.data
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.getKnowledgeDetail(id, loading)
|
||||
.then((res: any) => {
|
||||
knowledgeDetail.value = res.data
|
||||
})
|
||||
}
|
||||
|
||||
function refreshMigrate() {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,11 @@
|
|||
{{ $t('views.application.hitTest.title') }}
|
||||
<el-text type="info" class="ml-4"> {{ $t('views.application.hitTest.text') }}</el-text>
|
||||
</h4>
|
||||
<el-card style="--el-card-padding: 0" class="hit-test__main p-16 mt-16 mb-16" v-loading="loading">
|
||||
<el-card
|
||||
style="--el-card-padding: 0"
|
||||
class="hit-test__main p-16 mt-16 mb-16"
|
||||
v-loading="loading"
|
||||
>
|
||||
<div class="question-title" :style="{ visibility: questionTitle ? 'visible' : 'hidden' }">
|
||||
<div class="avatar">
|
||||
<el-avatar>
|
||||
|
|
@ -215,18 +219,26 @@
|
|||
import { nextTick, ref, onMounted, computed } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { cloneDeep } from 'lodash'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
// import applicationApi from '@/api/application/application'
|
||||
import ParagraphDialog from '@/views/paragraph/component/ParagraphDialog.vue'
|
||||
import { arraySort } from '@/utils/common'
|
||||
import emptyImg from '@/assets/hit-test-empty.png'
|
||||
import { t } from '@/locales'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
const route = useRoute()
|
||||
const {
|
||||
meta: { activeMenu },
|
||||
params: { id },
|
||||
} = route as any
|
||||
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const quickInputRef = ref()
|
||||
const ParagraphDialogRef = ref()
|
||||
const loading = ref(false)
|
||||
|
|
@ -312,12 +324,14 @@ function getHitTestList() {
|
|||
...formInline.value,
|
||||
}
|
||||
if (isDataset.value) {
|
||||
KnowledgeApi.putKnowledgeHitTest(id, obj, loading).then((res) => {
|
||||
paragraphDetail.value = res.data && arraySort(res.data, 'comprehensive_score', true)
|
||||
questionTitle.value = inputValue.value
|
||||
inputValue.value = ''
|
||||
first.value = false
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putKnowledgeHitTest(id, obj, loading)
|
||||
.then((res: any) => {
|
||||
paragraphDetail.value = res.data && arraySort(res.data, 'comprehensive_score', true)
|
||||
questionTitle.value = inputValue.value
|
||||
inputValue.value = ''
|
||||
first.value = false
|
||||
})
|
||||
} else if (isApplication.value) {
|
||||
// applicationApi.getApplicationHitTest(id, obj, loading).then((res) => {
|
||||
// paragraphDetail.value = res.data && arraySort(res.data, 'comprehensive_score', true)
|
||||
|
|
|
|||
|
|
@ -140,12 +140,18 @@
|
|||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="text-right">
|
||||
<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>
|
||||
<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>
|
||||
</el-scrollbar>
|
||||
|
|
@ -154,24 +160,28 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, reactive } from 'vue'
|
||||
import { ref, onMounted, reactive, computed } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import BaseForm from '@/views/knowledge/component/BaseForm.vue'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
import type { ApplicationFormType } from '@/api/type/application'
|
||||
import { MsgSuccess, MsgConfirm } from '@/utils/message'
|
||||
import { isAppIcon } from '@/utils/common'
|
||||
import useStore from '@/stores'
|
||||
import { t } from '@/locales'
|
||||
import { PermissionConst, RoleConst } from '@/utils/permission/data'
|
||||
import { hasPermission } from '@/utils/permission/index'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
|
||||
const route = useRoute()
|
||||
const {
|
||||
params: { id },
|
||||
} = route as any
|
||||
|
||||
const { knowledge } = useStore()
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const webFormRef = ref()
|
||||
const BaseFormRef = ref()
|
||||
const loading = ref(false)
|
||||
|
|
@ -238,31 +248,45 @@ async function submit() {
|
|||
})
|
||||
.then(() => {
|
||||
if (detail.value.type === 2) {
|
||||
// KnowledgeApi.putLarkKnowledge(id, obj, loading).then((res) => {
|
||||
// KnowledgeApi.putReEmbeddingKnowledge(id).then(() => {
|
||||
// MsgSuccess(t('common.saveSuccess'))
|
||||
// })
|
||||
// })
|
||||
} else {
|
||||
KnowledgeApi.putKnowledge(id, obj, loading).then((res) => {
|
||||
KnowledgeApi.putReEmbeddingKnowledge(id).then(() => {
|
||||
MsgSuccess(t('common.saveSuccess'))
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putLarkKnowledge(id, obj, loading)
|
||||
.then(() => {
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putReEmbeddingKnowledge(id)
|
||||
.then(() => {
|
||||
MsgSuccess(t('common.saveSuccess'))
|
||||
})
|
||||
})
|
||||
} else {
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putKnowledge(id, obj, loading)
|
||||
.then(() => {
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putReEmbeddingKnowledge(id)
|
||||
.then(() => {
|
||||
MsgSuccess(t('common.saveSuccess'))
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
} else {
|
||||
if (detail.value.type === 2) {
|
||||
// KnowledgeApi.putLarkKnowledge(id, obj, loading).then((res) => {
|
||||
// KnowledgeApi.putReEmbeddingKnowledge(id).then(() => {
|
||||
// MsgSuccess(t('common.saveSuccess'))
|
||||
// })
|
||||
// })
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putLarkKnowledge(id, obj, loading)
|
||||
.then(() => {
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putReEmbeddingKnowledge(id)
|
||||
.then(() => {
|
||||
MsgSuccess(t('common.saveSuccess'))
|
||||
})
|
||||
})
|
||||
} else {
|
||||
KnowledgeApi.putKnowledge(id, obj, loading).then((res) => {
|
||||
MsgSuccess(t('common.saveSuccess'))
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putKnowledge(id, obj, loading)
|
||||
.then(() => {
|
||||
MsgSuccess(t('common.saveSuccess'))
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -271,13 +295,15 @@ async function submit() {
|
|||
}
|
||||
|
||||
function getDetail() {
|
||||
knowledge.asyncGetKnowledgeDetail(id, loading).then((res: any) => {
|
||||
detail.value = res.data
|
||||
cloneModelId.value = res.data?.embedding_model_id
|
||||
if (detail.value.type === '1' || detail.value.type === '2') {
|
||||
form.value = res.data.meta
|
||||
}
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.getKnowledgeDetail(id, loading)
|
||||
.then((res: any) => {
|
||||
detail.value = res.data
|
||||
cloneModelId.value = res.data?.embedding_model_id
|
||||
if (detail.value.type === '1' || detail.value.type === '2') {
|
||||
form.value = res.data.meta
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
<template>
|
||||
<ContentContainer :header="currentFolder?.name">
|
||||
<ContentContainer>
|
||||
<template #header>
|
||||
<slot name="header"> </slot>
|
||||
</template>
|
||||
<template #search>
|
||||
<div class="flex">
|
||||
<div class="flex-between complex-search">
|
||||
|
|
@ -31,8 +34,8 @@
|
|||
<el-option v-for="u in user_options" :key="u.id" :value="u.id" :label="u.username" />
|
||||
</el-select>
|
||||
</div>
|
||||
<el-dropdown trigger="click" v-if="!isShared">
|
||||
<el-button type="primary" class="ml-8" v-if="permissionPrecise.create()">
|
||||
<el-dropdown trigger="click" v-if="!isShared && permissionPrecise.create()">
|
||||
<el-button type="primary" class="ml-8">
|
||||
{{ $t('common.create') }}
|
||||
<el-icon class="el-icon--right">
|
||||
<arrow-down />
|
||||
|
|
@ -131,15 +134,15 @@
|
|||
style="max-height: calc(100vh - 140px)"
|
||||
>
|
||||
<InfiniteScroll
|
||||
:size="knowledgeList.length"
|
||||
:size="knowledge.knowledgeList.length"
|
||||
:total="paginationConfig.total"
|
||||
:page_size="paginationConfig.page_size"
|
||||
v-model:current_page="paginationConfig.current_page"
|
||||
@load="getList"
|
||||
:loading="loading"
|
||||
>
|
||||
<el-row v-if="knowledgeList.length > 0" :gutter="15" class="w-full">
|
||||
<template v-for="(item, index) in knowledgeList" :key="index">
|
||||
<el-row v-if="knowledge.knowledgeList.length > 0" :gutter="15" class="w-full">
|
||||
<template v-for="(item, index) in knowledge.knowledgeList" :key="index">
|
||||
<el-col
|
||||
v-if="item.resource_type === 'folder'"
|
||||
:xs="24"
|
||||
|
|
@ -172,7 +175,9 @@
|
|||
:title="item.name"
|
||||
:description="item.desc"
|
||||
class="cursor"
|
||||
@click="router.push({ path: `/knowledge/${item.id}/${currentFolder.id}/document` })"
|
||||
@click="
|
||||
router.push({ path: `/knowledge/${item.id}/${folder.currentFolder.id}/document` })
|
||||
"
|
||||
>
|
||||
<template #icon>
|
||||
<KnowledgeIcon :type="item.type" />
|
||||
|
|
@ -235,11 +240,17 @@
|
|||
v-if="permissionPrecise.doc_generate(item.id)"
|
||||
>{{ $t('views.document.generateQuestion.title') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="isSystemShare"
|
||||
icon="Lock"
|
||||
@click.stop="openAuthorizedWorkspaceDialog(item)"
|
||||
>{{ $t('views.system.shared.authorized_workspace') }}</el-dropdown-item
|
||||
>
|
||||
<el-dropdown-item
|
||||
icon="Setting"
|
||||
@click.stop="
|
||||
router.push({
|
||||
path: `/knowledge/${item.id}/${currentFolder.value}/setting`,
|
||||
path: `/knowledge/${item.id}/${folder.currentFolder.id}/setting`,
|
||||
})
|
||||
"
|
||||
v-if="permissionPrecise.setting(item.id)"
|
||||
|
|
@ -283,20 +294,25 @@
|
|||
</ContentContainer>
|
||||
|
||||
<component :is="currentCreateDialog" ref="CreateKnowledgeDialogRef" v-if="!isShared" />
|
||||
<CreateFolderDialog ref="CreateFolderDialogRef" v-if="!isShared" />
|
||||
<CreateFolderDialog ref="CreateFolderDialogRef" v-if="!isShared" />
|
||||
<GenerateRelatedDialog ref="GenerateRelatedDialogRef" />
|
||||
<SyncWebDialog ref="SyncWebDialogRef" v-if="!isShared" />
|
||||
<AuthorizedWorkspace
|
||||
ref="AuthorizedWorkspaceDialogRef"
|
||||
v-if="isSystemShare"
|
||||
></AuthorizedWorkspace>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, ref, reactive, shallowRef, nextTick, computed, watch } from 'vue'
|
||||
import { cloneDeep, get } from 'lodash'
|
||||
import CreateKnowledgeDialog from '@/views/knowledge/create-component/CreateKnowledgeDialog.vue'
|
||||
import CreateWebKnowledgeDialog from '@/views/knowledge/create-component/CreateWebKnowledgeDialog.vue'
|
||||
import CreateLarkKnowledgeDialog from '@/views/knowledge/create-component/CreateLarkKnowledgeDialog.vue'
|
||||
import SyncWebDialog from '@/views/knowledge/component/SyncWebDialog.vue'
|
||||
import CreateFolderDialog from '@/components/folder-tree/CreateFolderDialog.vue'
|
||||
import GenerateRelatedDialog from '@/components/generate-related-dialog/index.vue'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
import AuthorizedWorkspace from '@/views/system-shared/AuthorizedWorkspaceDialog.vue'
|
||||
import { MsgSuccess, MsgConfirm } from '@/utils/message'
|
||||
import useStore from '@/stores'
|
||||
import { numberFormat } from '@/utils/common'
|
||||
|
|
@ -348,7 +364,6 @@ const paginationConfig = reactive({
|
|||
total: 0,
|
||||
})
|
||||
|
||||
const folderList = ref<any[]>([])
|
||||
const knowledgeList = ref<any[]>([])
|
||||
const currentFolder = ref<any>({})
|
||||
|
||||
|
|
@ -358,7 +373,7 @@ const currentCreateDialog = shallowRef<any>(null)
|
|||
function openCreateDialog(data: any) {
|
||||
currentCreateDialog.value = data
|
||||
nextTick(() => {
|
||||
CreateKnowledgeDialogRef.value.open(currentFolder.value)
|
||||
CreateKnowledgeDialogRef.value.open(folder.currentFolder)
|
||||
})
|
||||
|
||||
// common.asyncGetValid(ValidType.Dataset, ValidCount.Dataset, loading).then(async (res: any) => {
|
||||
|
|
@ -378,9 +393,11 @@ function openCreateDialog(data: any) {
|
|||
}
|
||||
|
||||
function reEmbeddingKnowledge(row: any) {
|
||||
KnowledgeApi.putReEmbeddingKnowledge(row.id).then(() => {
|
||||
MsgSuccess(t('common.submitSuccess'))
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putReEmbeddingKnowledge(row.id)
|
||||
.then(() => {
|
||||
MsgSuccess(t('common.submitSuccess'))
|
||||
})
|
||||
}
|
||||
|
||||
const SyncWebDialogRef = ref()
|
||||
|
|
@ -401,14 +418,18 @@ function openGenerateDialog(row: any) {
|
|||
}
|
||||
|
||||
const exportKnowledge = (item: any) => {
|
||||
KnowledgeApi.exportKnowledge(item.name, item.id, loading).then((ok) => {
|
||||
MsgSuccess(t('common.exportSuccess'))
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.exportKnowledge(item.name, item.id, loading)
|
||||
.then(() => {
|
||||
MsgSuccess(t('common.exportSuccess'))
|
||||
})
|
||||
}
|
||||
const exportZipKnowledge = (item: any) => {
|
||||
KnowledgeApi.exportZipKnowledge(item.name, item.id, loading).then((ok) => {
|
||||
MsgSuccess(t('common.exportSuccess'))
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.exportZipKnowledge(item.name, item.id, loading)
|
||||
.then(() => {
|
||||
MsgSuccess(t('common.exportSuccess'))
|
||||
})
|
||||
}
|
||||
|
||||
function deleteKnowledge(row: any) {
|
||||
|
|
@ -421,19 +442,30 @@ function deleteKnowledge(row: any) {
|
|||
},
|
||||
)
|
||||
.then(() => {
|
||||
KnowledgeApi.delKnowledge(row.id, loading).then(() => {
|
||||
const index = knowledgeList.value.findIndex((v) => v.id === row.id)
|
||||
knowledgeList.value.splice(index, 1)
|
||||
MsgSuccess(t('common.deleteSuccess'))
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.delKnowledge(row.id, loading)
|
||||
.then(() => {
|
||||
const list = cloneDeep(knowledge.knowledgeList)
|
||||
const index = list.findIndex((v) => v.id === row.id)
|
||||
list.splice(index, 1)
|
||||
knowledge.setKnowledgeList(list)
|
||||
MsgSuccess(t('common.deleteSuccess'))
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
const AuthorizedWorkspaceDialogRef = ref()
|
||||
function openAuthorizedWorkspaceDialog(row: any) {
|
||||
if (AuthorizedWorkspaceDialogRef.value) {
|
||||
AuthorizedWorkspaceDialogRef.value.open(row)
|
||||
}
|
||||
}
|
||||
|
||||
// 文件夹相关
|
||||
const CreateFolderDialogRef = ref()
|
||||
function openCreateFolder() {
|
||||
CreateFolderDialogRef.value.open(FolderSource.KNOWLEDGE, currentFolder.value.id)
|
||||
CreateFolderDialogRef.value.open(FolderSource.KNOWLEDGE, folder.currentFolder.id)
|
||||
}
|
||||
watch(
|
||||
() => folder.currentFolder,
|
||||
|
|
|
|||
|
|
@ -35,10 +35,22 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from 'vue'
|
||||
import knowledgeApi from '@/api/knowledge/knowledge'
|
||||
import { ref, watch, computed } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { MsgSuccess } from '@/utils/message'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
import { t } from '@/locales'
|
||||
|
||||
const route = useRoute()
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['refresh'])
|
||||
const loading = ref<boolean>(false)
|
||||
const method = ref('replace')
|
||||
|
|
@ -58,11 +70,13 @@ const open = (id: string) => {
|
|||
}
|
||||
|
||||
const submit = () => {
|
||||
knowledgeApi.putSyncWebKnowledge(knowledgeId.value, method.value, loading).then((res: any) => {
|
||||
emit('refresh', res.data)
|
||||
MsgSuccess(t('views.knowledge.tip.syncSuccess'))
|
||||
dialogVisible.value = false
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.putSyncWebKnowledge(knowledgeId.value, method.value, loading)
|
||||
.then((res: any) => {
|
||||
emit('refresh', res.data)
|
||||
MsgSuccess(t('views.knowledge.tip.syncSuccess'))
|
||||
dialogVisible.value = false
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
|
|
|
|||
|
|
@ -23,15 +23,25 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, reactive } from 'vue'
|
||||
import { ref, watch, computed } from 'vue'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
import BaseForm from '@/views/knowledge/component/BaseForm.vue'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
import { MsgSuccess, MsgAlert } from '@/utils/message'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
import { t } from '@/locales'
|
||||
const emit = defineEmits(['refresh'])
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const BaseFormRef = ref()
|
||||
|
||||
const loading = ref(false)
|
||||
|
|
@ -55,11 +65,13 @@ const submitHandle = async () => {
|
|||
folder_id: currentFolder.value?.id,
|
||||
...BaseFormRef.value.form,
|
||||
}
|
||||
KnowledgeApi.postKnowledge(obj, loading).then((res) => {
|
||||
MsgSuccess(t('common.createSuccess'))
|
||||
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
|
||||
emit('refresh')
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.postKnowledge(obj, loading)
|
||||
.then((res: any) => {
|
||||
MsgSuccess(t('common.createSuccess'))
|
||||
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
|
||||
emit('refresh')
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,16 +52,25 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, reactive } from 'vue'
|
||||
import { ref, watch, reactive, computed } from 'vue'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
import BaseForm from '@/views/knowledge/component/BaseForm.vue'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
import { MsgSuccess, MsgAlert } from '@/utils/message'
|
||||
import { t } from '@/locales'
|
||||
import { ComplexPermission } from '@/utils/permission/type'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
const emit = defineEmits(['refresh'])
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const BaseFormRef = ref()
|
||||
const knowledgeFormRef = ref()
|
||||
|
||||
|
|
@ -148,11 +157,13 @@ const submitHandle = async () => {
|
|||
...BaseFormRef.value.form,
|
||||
...knowledgeForm.value,
|
||||
}
|
||||
KnowledgeApi.postLarkKnowledge(obj, loading).then((res: any) => {
|
||||
MsgSuccess(t('common.createSuccess'))
|
||||
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
|
||||
emit('refresh')
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.postLarkKnowledge(obj, loading)
|
||||
.then((res: any) => {
|
||||
MsgSuccess(t('common.createSuccess'))
|
||||
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
|
||||
emit('refresh')
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,15 +44,25 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, reactive } from 'vue'
|
||||
import { ref, watch, reactive, computed } from 'vue'
|
||||
import { useRouter, useRoute } from 'vue-router'
|
||||
import BaseForm from '@/views/knowledge/component/BaseForm.vue'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
import { MsgSuccess, MsgAlert } from '@/utils/message'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
import { t } from '@/locales'
|
||||
const emit = defineEmits(['refresh'])
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const BaseFormRef = ref()
|
||||
const KnowledgeFormRef = ref()
|
||||
|
||||
|
|
@ -101,11 +111,13 @@ const submitHandle = async () => {
|
|||
...BaseFormRef.value.form,
|
||||
...knowledgeForm.value,
|
||||
}
|
||||
KnowledgeApi.postWebKnowledge(obj, loading).then((res) => {
|
||||
MsgSuccess(t('common.createSuccess'))
|
||||
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
|
||||
emit('refresh')
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.postWebKnowledge(obj, loading)
|
||||
.then((res: any) => {
|
||||
MsgSuccess(t('common.createSuccess'))
|
||||
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
|
||||
emit('refresh')
|
||||
})
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@
|
|||
<script lang="ts" setup>
|
||||
import { onMounted, ref, reactive, shallowRef, nextTick, computed } from 'vue'
|
||||
import KnowledgeListContainer from '@/views/knowledge/component/KnowledgeListContainer.vue'
|
||||
import KnowledgeApi from '@/api/knowledge/knowledge'
|
||||
import { FolderSource } from '@/enums/common'
|
||||
import permissionMap from '@/permission'
|
||||
import { useRoute } from 'vue-router'
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
<el-col
|
||||
:xs="24"
|
||||
:sm="12"
|
||||
:md="12"
|
||||
:md="isSystemShare ? 24 : 12"
|
||||
:lg="isSystemShare ? 12 : 8"
|
||||
:xl="isSystemShare ? 12 : 8"
|
||||
class="mb-16"
|
||||
|
|
|
|||
|
|
@ -76,11 +76,12 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, reactive } from 'vue'
|
||||
import { ref, watch, reactive, computed } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import type { FormInstance, FormRules } from 'element-plus'
|
||||
import paragraphApi from '@/api/knowledge/paragraph'
|
||||
import useStore from '@/stores'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
|
||||
import { t } from '@/locales'
|
||||
const { knowledge, document } = useStore()
|
||||
|
||||
|
|
@ -89,6 +90,15 @@ const {
|
|||
params: { id, documentId }, // id为knowledgeID
|
||||
} = route as any
|
||||
|
||||
const type = computed(() => {
|
||||
if (route.path.includes('shared')) {
|
||||
return 'systemShare'
|
||||
} else if (route.path.includes('resource-management')) {
|
||||
return 'systemManage'
|
||||
} else {
|
||||
return 'workspace'
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['refresh'])
|
||||
const formRef = ref()
|
||||
|
||||
|
|
@ -137,9 +147,11 @@ const defaultProps = {
|
|||
const loadTree = (node: any, resolve: any) => {
|
||||
if (node.isLeaf) return resolve([])
|
||||
const folder_id = node.level === 0 ? '' : node.data.id
|
||||
knowledge.asyncGetFolderKnowledge(folder_id, optionLoading).then((res: any) => {
|
||||
resolve(res.data)
|
||||
})
|
||||
loadSharedApi({ type: 'knowledge', systemType: type.value })
|
||||
.getKnowledgeList(folder_id, optionLoading)
|
||||
.then((res: any) => {
|
||||
resolve(res.data)
|
||||
})
|
||||
}
|
||||
|
||||
function changeKnowledge(id: string) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue