fix: disabled

This commit is contained in:
wangdan-fit2cloud 2025-07-07 18:48:28 +08:00
parent 85194599c8
commit b6c7fe8b88
3 changed files with 121 additions and 92 deletions

View File

@ -6,92 +6,94 @@
<div class="p-24"> <div class="p-24">
<div class="flex-between"> <div class="flex-between">
<div> <div>
<el-button <template v-if="!isShared">
v-if="knowledgeDetail?.type === 0 && permissionPrecise.doc_create(id)" <el-button
type="primary" v-if="knowledgeDetail?.type === 0 && permissionPrecise.doc_create(id)"
@click=" type="primary"
router.push({ @click="
path: `/knowledge/document/upload/${folderId}`, router.push({
query: { id: id }, path: `/knowledge/document/upload/${folderId}`,
}) query: { id: id },
" })
>{{ $t('views.document.uploadDocument') }} "
</el-button> >{{ $t('views.document.uploadDocument') }}
<el-button
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)"
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
@click="batchRefresh"
:disabled="multipleSelection.length === 0"
v-if="permissionPrecise.doc_vector(id)"
>{{ $t('views.knowledge.setting.vectorization') }}
</el-button>
<el-button
@click="openGenerateDialog()"
:disabled="multipleSelection.length === 0"
v-if="permissionPrecise.doc_generate(id)"
>{{ $t('views.document.generateQuestion.title') }}
</el-button>
<el-button
@click="openknowledgeDialog()"
:disabled="multipleSelection.length === 0"
v-if="permissionPrecise.doc_migrate(id)"
>{{ $t('views.document.setting.migration') }}
</el-button>
<el-dropdown>
<el-button class="ml-12 mr-12">
<el-icon><MoreFilled /></el-icon>
</el-button> </el-button>
<template #dropdown> <el-button
<el-dropdown-menu> v-if="knowledgeDetail?.type === 1 && permissionPrecise.doc_create(id)"
<el-dropdown-item type="primary"
@click="openBatchEditDocument" @click="importDoc"
:disabled="multipleSelection.length === 0" >{{ $t('views.document.importDocument') }}
v-if="permissionPrecise.doc_edit(id)" </el-button>
> <el-button
{{ $t('common.setting') }} v-if="knowledgeDetail?.type === 2 && permissionPrecise.doc_create(id)"
</el-dropdown-item> type="primary"
<el-dropdown-item @click="
divided router.push({
@click="syncMulDocument" path: `/knowledge/import`,
:disabled="multipleSelection.length === 0" query: {
v-if="knowledgeDetail?.type === 1 &&permissionPrecise.doc_sync(id)" id: id,
>{{ $t('views.document.syncDocument') }} folder_token: knowledgeDetail?.meta.folder_token,
</el-dropdown-item> },
<el-dropdown-item })
divided "
@click="syncLarkMulDocument" >{{ $t('views.document.importDocument') }}
:disabled="multipleSelection.length === 0" </el-button>
v-if="knowledgeDetail?.type === 2 && permissionPrecise.doc_sync(id)" <el-button
>{{ $t('views.document.syncDocument') }} @click="batchRefresh"
</el-dropdown-item> :disabled="multipleSelection.length === 0"
<el-dropdown-item v-if="permissionPrecise.doc_vector(id)"
divided >{{ $t('views.knowledge.setting.vectorization') }}
@click="deleteMulDocument" </el-button>
:disabled="multipleSelection.length === 0" <el-button
v-if="permissionPrecise.doc_delete(id)" @click="openGenerateDialog()"
>{{ $t('common.delete') }} :disabled="multipleSelection.length === 0"
</el-dropdown-item> v-if="permissionPrecise.doc_generate(id)"
</el-dropdown-menu> >{{ $t('views.document.generateQuestion.title') }}
</template> </el-button>
</el-dropdown> <el-button
@click="openknowledgeDialog()"
:disabled="multipleSelection.length === 0"
v-if="permissionPrecise.doc_migrate(id)"
>{{ $t('views.document.setting.migration') }}
</el-button>
<el-dropdown>
<el-button class="ml-12 mr-12">
<el-icon><MoreFilled /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
@click="openBatchEditDocument"
:disabled="multipleSelection.length === 0"
v-if="permissionPrecise.doc_edit(id)"
>
{{ $t('common.setting') }}
</el-dropdown-item>
<el-dropdown-item
divided
@click="syncMulDocument"
:disabled="multipleSelection.length === 0"
v-if="knowledgeDetail?.type === 1 && 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)"
>{{ $t('views.document.syncDocument') }}
</el-dropdown-item>
<el-dropdown-item
divided
@click="deleteMulDocument"
:disabled="multipleSelection.length === 0"
v-if="permissionPrecise.doc_delete(id)"
>{{ $t('common.delete') }}
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</template>
</div> </div>
<el-input <el-input
@ -108,7 +110,9 @@
class="mt-16" class="mt-16"
:data="documentData" :data="documentData"
:pagination-config="paginationConfig" :pagination-config="paginationConfig"
:quick-create="knowledgeDetail?.type === 0 && permissionPrecise.doc_create(id)" :quick-create="
knowledgeDetail?.type === 0 && permissionPrecise.doc_create(id) && !isShared
"
@sizeChange="handleSizeChange" @sizeChange="handleSizeChange"
@changePage="getList" @changePage="getList"
@cell-mouse-enter="cellMouseEnter" @cell-mouse-enter="cellMouseEnter"
@ -121,14 +125,21 @@
:row-key="(row: any) => row.id" :row-key="(row: any) => row.id"
:storeKey="storeKey" :storeKey="storeKey"
> >
<el-table-column type="selection" width="55" :reserve-selection="true" /> <el-table-column
type="selection"
width="55"
:reserve-selection="true"
v-if="!isShared"
/>
<el-table-column prop="name" :label="$t('views.document.table.name')" min-width="280"> <el-table-column prop="name" :label="$t('views.document.table.name')" min-width="280">
<template #default="{ row }"> <template #default="{ row }">
<ReadWrite <ReadWrite
v-if="!isShared"
@change="editName($event, row.id)" @change="editName($event, row.id)"
:data="row.name" :data="row.name"
:showEditIcon="row.id === currentMouseId" :showEditIcon="row.id === currentMouseId"
/> />
<span v-else>{{ row.name }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -344,7 +355,13 @@
{{ datetimeFormat(row.update_time) }} {{ datetimeFormat(row.update_time) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('common.operation')" align="left" width="160" fixed="right"> <el-table-column
:label="$t('common.operation')"
align="left"
width="160"
fixed="right"
v-if="!isShared"
>
<template #default="{ row }"> <template #default="{ row }">
<span @click.stop> <span @click.stop>
<el-switch <el-switch
@ -629,6 +646,10 @@ onBeforeRouteLeave((to: any) => {
} }
}) })
const isShared = computed(() => {
return folderId === 'share'
})
const apiType = computed(() => { const apiType = computed(() => {
if (route.path.includes('shared')) { if (route.path.includes('shared')) {
return 'systemShare' return 'systemShare'
@ -852,7 +873,10 @@ function rowClickHandle(row: any, column: any) {
return return
} }
router.push({ path: `/paragraph/${id}/${row.id}`, query: { type: apiType.value } }) router.push({
path: `/paragraph/${id}/${row.id}`,
query: { type: apiType.value, isShared: isShared.value ? 'true' : 'false' },
})
} }
/* /*

View File

@ -354,6 +354,7 @@ onBeforeRouteLeave((to, from) => {
const emit = defineEmits(['refreshFolder']) const emit = defineEmits(['refreshFolder'])
const apiType = computed(() => { const apiType = computed(() => {
// shareshared
if (route.path.includes('shared')) { if (route.path.includes('shared')) {
return 'systemShare' return 'systemShare'
} else if (route.path.includes('resource-management')) { } else if (route.path.includes('resource-management')) {

View File

@ -12,7 +12,7 @@
> >
</el-text> </el-text>
</div> </div>
<div class="header-button"> <div class="header-button" v-if="!shareDisabled">
<el-button @click="batchSelectedHandle(true)" v-if="isBatch === false"> <el-button @click="batchSelectedHandle(true)" v-if="isBatch === false">
{{ $t('views.paragraph.setting.batchSelected') }} {{ $t('views.paragraph.setting.batchSelected') }}
</el-button> </el-button>
@ -81,7 +81,7 @@
<VueDraggable <VueDraggable
ref="el" ref="el"
v-model="paragraphDetail" v-model="paragraphDetail"
:disabled="isBatch === true" :disabled="isBatch === true || shareDisabled"
handle=".handle" handle=".handle"
:animation="150" :animation="150"
ghostClass="ghost" ghostClass="ghost"
@ -110,6 +110,7 @@
@deleteParagraph="deleteParagraph" @deleteParagraph="deleteParagraph"
@refresh="refresh" @refresh="refresh"
@refreshMigrateParagraph="refreshMigrateParagraph" @refreshMigrateParagraph="refreshMigrateParagraph"
:disabled="shareDisabled"
/> />
</div> </div>
</div> </div>
@ -168,12 +169,15 @@ import { t } from '@/locales'
const route = useRoute() const route = useRoute()
const { const {
params: { id, documentId }, params: { id, documentId },
query: { type }, query: { type, isShared },
} = route as any } = route as any
const apiType = computed(() => { const apiType = computed(() => {
return type as 'systemShare' | 'workspace' | 'systemManage' return type as 'systemShare' | 'workspace' | 'systemManage'
}) })
const shareDisabled = computed(() => {
return isShared === 'true'
})
const SelectDocumentDialogRef = ref() const SelectDocumentDialogRef = ref()
const ParagraphDialogRef = ref() const ParagraphDialogRef = ref()