fix: lark document
parent
19b9e52a45
commit
b01172b242
|
|
@ -423,3 +423,7 @@
|
||||||
.el-table .el-popper {
|
.el-table .el-popper {
|
||||||
max-width: 500px !important;
|
max-width: 500px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-tree {
|
||||||
|
--el-tree-node-content-height: 32px;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@
|
||||||
:label="$t('views.document.feishu.allCheck')"
|
:label="$t('views.document.feishu.allCheck')"
|
||||||
size="large"
|
size="large"
|
||||||
class="ml-24"
|
class="ml-24"
|
||||||
|
@change="handleAllCheckChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -49,7 +50,15 @@
|
||||||
show-checkbox
|
show-checkbox
|
||||||
node-key="token"
|
node-key="token"
|
||||||
ref="treeRef"
|
ref="treeRef"
|
||||||
/>
|
>
|
||||||
|
<template #default="{ node, data }">
|
||||||
|
<div class="custom-tree-node flex align-center lighter">
|
||||||
|
<el-icon v-if="data.type === 'folder'"><FolderOpened /></el-icon>
|
||||||
|
<el-icon v-else><Document /></el-icon>
|
||||||
|
<span class="ml-4">{{ node.label }}</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-tree>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
|
|
@ -67,8 +76,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, computed, onUnmounted } from 'vue'
|
import { ref, reactive, computed, onUnmounted } from 'vue'
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
|
|
||||||
import documentApi from '@/api/document'
|
|
||||||
import { MsgConfirm, MsgSuccess } from '@/utils/message'
|
import { MsgConfirm, MsgSuccess } from '@/utils/message'
|
||||||
import { t } from '@/locales'
|
import { t } from '@/locales'
|
||||||
import type Node from 'element-plus/es/components/tree/src/model/node'
|
import type Node from 'element-plus/es/components/tree/src/model/node'
|
||||||
|
|
@ -113,24 +120,46 @@ const props = {
|
||||||
}
|
}
|
||||||
|
|
||||||
const loadNode = (node: Node, resolve: (nodeData: Tree[]) => void) => {
|
const loadNode = (node: Node, resolve: (nodeData: Tree[]) => void) => {
|
||||||
console.log(node)
|
|
||||||
const token = node.level === 0 ? folderToken : node.data.token // 根节点使用 folder_token,其他节点使用 node.data.token
|
const token = node.level === 0 ? folderToken : node.data.token // 根节点使用 folder_token,其他节点使用 node.data.token
|
||||||
dataset
|
dataset
|
||||||
.getLarkDocumentList(datasetId, token, {}, loading)
|
.getLarkDocumentList(datasetId, token, {}, loading)
|
||||||
.then((res) => {
|
.then((res: any) => {
|
||||||
const data: any = res.data
|
const nodes = res.data.files as Tree[]
|
||||||
resolve(data.files as Tree[])
|
|
||||||
|
nodes.forEach((childNode) => {
|
||||||
|
if (childNode.is_exist) {
|
||||||
|
treeRef.value?.setchecked(childNode.token, true, false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
resolve(nodes)
|
||||||
})
|
})
|
||||||
|
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.error('Failed to load tree nodes:', err)
|
console.error('Failed to load tree nodes:', err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleAllCheckChange = (checked: boolean) => {
|
||||||
|
if (checked) {
|
||||||
|
// 获取所有已加载的节点
|
||||||
|
const nodes = Object.values(treeRef.value?.store.nodesMap || {}) as any[]
|
||||||
|
nodes.forEach((node) => {
|
||||||
|
// 只选择未禁用且是文件的节点
|
||||||
|
if (!node.disabled) {
|
||||||
|
treeRef.value?.setChecked(node.data, true, false)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
treeRef.value?.setCheckedKeys([])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function submit() {
|
function submit() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
// 选中的节点的token
|
// 选中的节点的token
|
||||||
const checkedNodes = treeRef.value?.getCheckedNodes() || []
|
const checkedNodes = treeRef.value?.getCheckedNodes() || []
|
||||||
const newList = checkedNodes.map((node: any) => {
|
const filteredNodes = checkedNodes.filter((node: any) => !node.is_exist)
|
||||||
|
const newList = filteredNodes.map((node: any) => {
|
||||||
return {
|
return {
|
||||||
name: node.name,
|
name: node.name,
|
||||||
token: node.token,
|
token: node.token,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue