|
|
|
|
@ -78,6 +78,7 @@ import dayjs from 'dayjs'
|
|
|
|
|
import { Echart as EChart } from '@/components/Echart'
|
|
|
|
|
import { OrganizationApi } from '@/api/mes/organization'
|
|
|
|
|
import { DeviceModelAttributeApi } from '@/api/iot/devicemodelattribute'
|
|
|
|
|
import { handleTree } from '@/utils/tree'
|
|
|
|
|
|
|
|
|
|
defineOptions({ name: 'DeviceParamAnalysis' })
|
|
|
|
|
|
|
|
|
|
@ -110,7 +111,9 @@ type ApiTreeEquipment = {
|
|
|
|
|
type ApiTreeOrg = {
|
|
|
|
|
id: number
|
|
|
|
|
name: string
|
|
|
|
|
parentId?: number | null
|
|
|
|
|
equipments?: ApiTreeEquipment[]
|
|
|
|
|
children?: ApiTreeOrg[]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const message = useMessage()
|
|
|
|
|
@ -215,8 +218,16 @@ const handleKeywordChange = () => {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const buildTreeFromApi = (orgs: ApiTreeOrg[]): DeviceTreeNode[] => {
|
|
|
|
|
return (
|
|
|
|
|
orgs?.map((org) => {
|
|
|
|
|
const normalizedOrgs: ApiTreeOrg[] = (Array.isArray(orgs) ? orgs : []).map((o) => ({
|
|
|
|
|
...o,
|
|
|
|
|
parentId: typeof o?.parentId === 'number' ? o.parentId : Number(o?.parentId ?? 0) || 0
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
const orgTree = handleTree(normalizedOrgs, 'id', 'parentId', 'children') as ApiTreeOrg[]
|
|
|
|
|
|
|
|
|
|
const toOrgNode = (org: ApiTreeOrg): DeviceTreeNode => {
|
|
|
|
|
const orgChildren = Array.isArray(org?.children) ? org.children.map(toOrgNode) : []
|
|
|
|
|
|
|
|
|
|
const equipments = Array.isArray(org?.equipments) ? org.equipments : []
|
|
|
|
|
const equipmentNodes: DeviceTreeNode[] = equipments.map((eq) => {
|
|
|
|
|
const params = Array.isArray(eq?.parameters) ? eq.parameters : []
|
|
|
|
|
@ -238,14 +249,16 @@ const buildTreeFromApi = (orgs: ApiTreeOrg[]): DeviceTreeNode[] => {
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const children = [...orgChildren, ...equipmentNodes]
|
|
|
|
|
return {
|
|
|
|
|
id: `org-${org.id}`,
|
|
|
|
|
label: org?.name ?? String(org?.id ?? ''),
|
|
|
|
|
type: 'device',
|
|
|
|
|
children: equipmentNodes.length ? equipmentNodes : undefined
|
|
|
|
|
children: children.length ? children : undefined
|
|
|
|
|
}
|
|
|
|
|
}) ?? []
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Array.isArray(orgTree) ? orgTree.map(toOrgNode) : []
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const loadTree = async () => {
|
|
|
|
|
|