<template>
    <Tree ref="treRef" :data="tree" />
</template>

<script lang="ts" setup>
import { ref, nextTick } from 'vue'
import Tree from '../index.vue'
import { getLineTree } from '@/api/cs-device-boot/csLedger'
import { useConfig } from '@/stores/config'
defineOptions({
    name: 'govern/deviceTree'
})
const emit = defineEmits(['init'])
const config = useConfig()
const tree = ref()
const treRef = ref()
getLineTree().then(res => {
    let arr: any[] = []
    res.data.forEach((item: any) => {
        item.icon = 'el-icon-HomeFilled'
        item.color = config.getColorVal('elementUiPrimary')
        item.children.forEach((item2: any) => {
            item2.icon = 'el-icon-List'
            item.color = config.getColorVal('elementUiPrimary')
            item2.children.forEach((item3: any) => {
                item3.icon = 'el-icon-Platform'
                item3.color = config.getColorVal('elementUiPrimary')
                if (item3.comFlag === 1) {
                    item3.color = '#e26257 !important'
                }
                item3.children.forEach((item4: any) => {
                    item4.icon = 'el-icon-LocationFilled'
                    arr.push(item4)
                })
            })
        })
    })
    tree.value = res.data
    nextTick(() => {
        if (arr.length) {
            treRef.value.treeRef.setCurrentKey(arr[0].id)
            // 注册父组件事件
            emit('init', {
                level: 2,
                ...arr[0]
            })
        } else {
            emit('init')
        }
    })
})
</script>
