|
@@ -234,6 +234,7 @@ interface FileRow {
|
|
|
id: TreeKey
|
|
id: TreeKey
|
|
|
originId?: TreeKey
|
|
originId?: TreeKey
|
|
|
parentId?: TreeKey
|
|
parentId?: TreeKey
|
|
|
|
|
+ deptId?: TreeKey
|
|
|
name?: string
|
|
name?: string
|
|
|
filename?: string
|
|
filename?: string
|
|
|
fileType?: string
|
|
fileType?: string
|
|
@@ -253,11 +254,28 @@ const uploadLoading = ref(false)
|
|
|
const currentTreeOriginId = ref<TreeKey | undefined>(undefined)
|
|
const currentTreeOriginId = ref<TreeKey | undefined>(undefined)
|
|
|
const rootDeptOriginId = ref<TreeKey | undefined>(undefined)
|
|
const rootDeptOriginId = ref<TreeKey | undefined>(undefined)
|
|
|
const rootNodeName = ref('')
|
|
const rootNodeName = ref('')
|
|
|
|
|
+const treeOriginIdMap = ref<Record<string, TreeKey | undefined>>({})
|
|
|
|
|
|
|
|
const syncSelectedTreeOriginId = () => {
|
|
const syncSelectedTreeOriginId = () => {
|
|
|
queryParams.deptId = currentTreeOriginId.value
|
|
queryParams.deptId = currentTreeOriginId.value
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const setDeptContextByNodeId = (targetId?: TreeKey | null) => {
|
|
|
|
|
+ if (targetId == null) return
|
|
|
|
|
+ const originDeptId = treeOriginIdMap.value[String(targetId)]
|
|
|
|
|
+ if (originDeptId == null) return
|
|
|
|
|
+ currentTreeOriginId.value = originDeptId
|
|
|
|
|
+ deptId.value = String(originDeptId)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const loadTreeOriginIdMap = async () => {
|
|
|
|
|
+ const treeNodes = await DataLibraryApi.DataLibraryApi.getFileTreeList()
|
|
|
|
|
+ treeOriginIdMap.value = treeNodes.reduce<Record<string, TreeKey | undefined>>((acc, item) => {
|
|
|
|
|
+ acc[String(item.id)] = item.originId
|
|
|
|
|
+ return acc
|
|
|
|
|
+ }, {})
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const searchFolderAndFile = async () => {
|
|
const searchFolderAndFile = async () => {
|
|
|
formLoading.value = true
|
|
formLoading.value = true
|
|
|
syncSelectedTreeOriginId()
|
|
syncSelectedTreeOriginId()
|
|
@@ -274,6 +292,7 @@ const successList = async (id?: TreeKey) => {
|
|
|
topNodeId.value = id
|
|
topNodeId.value = id
|
|
|
nodeId.value = String(id)
|
|
nodeId.value = String(id)
|
|
|
clickNodeId.value = String(id)
|
|
clickNodeId.value = String(id)
|
|
|
|
|
+ setDeptContextByNodeId(id)
|
|
|
if (!nodeName.value) {
|
|
if (!nodeName.value) {
|
|
|
nodeName.value = rootNodeName.value
|
|
nodeName.value = rootNodeName.value
|
|
|
}
|
|
}
|
|
@@ -400,6 +419,7 @@ const updateBreadcrumbs = async (node: FileRow) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 更新表格数据
|
|
// 更新表格数据
|
|
|
|
|
+ setDeptContextByNodeId(node.id)
|
|
|
queryParams.classId = node.id
|
|
queryParams.classId = node.id
|
|
|
syncSelectedTreeOriginId()
|
|
syncSelectedTreeOriginId()
|
|
|
const data = await DataLibraryApi.DataLibraryApi.getChildContentFile(queryParams)
|
|
const data = await DataLibraryApi.DataLibraryApi.getChildContentFile(queryParams)
|
|
@@ -440,8 +460,8 @@ const handleFileNodeClick = async (row: FileRow) => {
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
queryParams.classId = row.id
|
|
queryParams.classId = row.id
|
|
|
- currentTreeOriginId.value = row.originId
|
|
|
|
|
- deptId.value = row.originId != null ? String(row.originId) : ''
|
|
|
|
|
|
|
+ currentTreeOriginId.value = row.deptId ?? row.originId
|
|
|
|
|
+ deptId.value = row.deptId != null ? String(row.deptId) : row.originId != null ? String(row.originId) : ''
|
|
|
nodeName.value = row.name || row.filename || ''
|
|
nodeName.value = row.name || row.filename || ''
|
|
|
if (row.type == 'device') {
|
|
if (row.type == 'device') {
|
|
|
id.value = Number(row.originId)
|
|
id.value = Number(row.originId)
|
|
@@ -495,6 +515,7 @@ const handleBreadcrumbClick = async (index: number) => {
|
|
|
clickNodeId.value = String(targetId)
|
|
clickNodeId.value = String(targetId)
|
|
|
nodeId.value = String(targetId)
|
|
nodeId.value = String(targetId)
|
|
|
nodeName.value = targetBreadcrumbs[index].name || rootNodeName.value || ''
|
|
nodeName.value = targetBreadcrumbs[index].name || rootNodeName.value || ''
|
|
|
|
|
+ setDeptContextByNodeId(targetId)
|
|
|
if (index === 0 && rootDeptOriginId.value != null) {
|
|
if (index === 0 && rootDeptOriginId.value != null) {
|
|
|
currentTreeOriginId.value = rootDeptOriginId.value
|
|
currentTreeOriginId.value = rootDeptOriginId.value
|
|
|
deptId.value = String(rootDeptOriginId.value)
|
|
deptId.value = String(rootDeptOriginId.value)
|
|
@@ -531,6 +552,7 @@ const resetQuery = () => {
|
|
|
/** 初始化 */
|
|
/** 初始化 */
|
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
|
id.value = Number(params.id) || 0
|
|
id.value = Number(params.id) || 0
|
|
|
|
|
+ await loadTreeOriginIdMap()
|
|
|
await loadRootBreadcrumb()
|
|
await loadRootBreadcrumb()
|
|
|
})
|
|
})
|
|
|
</script>
|
|
</script>
|