Files
cdTestPlant3/cdTMP/src/layout/treeHooks/useLoadTreeNodes.ts
2024-08-09 19:31:36 +08:00

60 lines
2.0 KiB
TypeScript

import { ref } from "vue"
import projectApi from "@/api/project/project"
import { useRoute } from "vue-router"
export default function useLoadTreeNode() {
// global
const route = useRoute()
const projectInfo = ref({ ...route.query })
// Events
const loadMore = (nodeData) => {
if (nodeData.level == "0") {
return new Promise(async (resolve) => {
const res = await projectApi
.getDutInfo(projectInfo.value.id, nodeData.key, nodeData.level)
.catch(() => {
resolve(undefined) // 捕获错误,让动态加载不再一直转圈
})
nodeData.children = res.data
resolve(undefined)
})
}
if (nodeData.level == "1") {
return new Promise(async (resolve) => {
const res = await projectApi
.getDemandInfo(projectInfo.value.id, nodeData.key, nodeData.level)
.catch(() => {
resolve(undefined)
})
nodeData.children = res.data
resolve(undefined)
})
}
if (nodeData.level == "2") {
return new Promise(async (resolve) => {
const res = await projectApi
.getTestInfo(projectInfo.value.id, nodeData.key, nodeData.level)
.catch(() => {
resolve(undefined)
})
nodeData.children = res.data
resolve(undefined)
})
}
if (nodeData.level == "3") {
return new Promise(async (resolve) => {
const res = await projectApi
.getCaseInfo(projectInfo.value.id, nodeData.key, nodeData.level)
.catch(() => {
resolve(undefined)
})
nodeData.children = res.data
resolve(undefined)
})
}
}
return {
loadMore
}
}