|
|
@@ -3,6 +3,7 @@ import { ElTree } from 'element-plus'
|
|
|
import { CaretLeft, CaretRight, Search } from '@element-plus/icons-vue'
|
|
|
import type { IotTreeVO } from '@/api/system/tree'
|
|
|
import { IotTreeApi } from '@/api/system/tree'
|
|
|
+// import { DataLibraryApi } from '@/api/pms/qhse/index'
|
|
|
import { defaultProps, handleTree } from '@/utils/tree'
|
|
|
|
|
|
defineOptions({ name: 'IotTree' })
|
|
|
@@ -43,6 +44,22 @@ const getNodeIconClass = (type: string) => {
|
|
|
return type === 'device' ? 'node-icon node-icon--device' : 'node-icon node-icon--folder'
|
|
|
}
|
|
|
|
|
|
+const filterDeviceNodes = (nodes: TreeNode[]): TreeNode[] => {
|
|
|
+ return nodes.reduce<TreeNode[]>((result, node) => {
|
|
|
+ if (node.type === 'device') {
|
|
|
+ return result
|
|
|
+ }
|
|
|
+
|
|
|
+ const nextNode: TreeNode = { ...node }
|
|
|
+ if (node.children?.length) {
|
|
|
+ nextNode.children = filterDeviceNodes(node.children)
|
|
|
+ }
|
|
|
+
|
|
|
+ result.push(nextNode)
|
|
|
+ return result
|
|
|
+ }, [])
|
|
|
+}
|
|
|
+
|
|
|
const findNodePath = (
|
|
|
nodes: TreeNode[],
|
|
|
targetId: number | string,
|
|
|
@@ -82,8 +99,9 @@ const locateNode = (targetId: number | string) => {
|
|
|
}
|
|
|
|
|
|
const getTreeInfo = async () => {
|
|
|
+ // const res = await DataLibraryApi.getFileTree()
|
|
|
const res = await IotTreeApi.getSimpleTreeList()
|
|
|
- treeList.value = handleTree(res) as TreeNode[]
|
|
|
+ treeList.value = filterDeviceNodes(handleTree(res) as TreeNode[])
|
|
|
expandedKeys.value = treeList.value.map((node) => node.id)
|
|
|
|
|
|
if (props.currentId) {
|