组织架构树

描述:当前是关于Echarts图表中的 树图 示例。
 
            var _data = [
    {
        name: '根节点',
        type: 'root',
        children: [
            {
                name: '子节点1',
                type: 'sub',
                children: [
                    {
                        name: '叶子节点1',
                        type: 'sub',
                        children: [
                            {
                                name: '叶叶节点1',
                                type: 'sub',
                                children: [
                                    {
                                        name: '叶叶叶节点1',
                                        type: 'final',
                                        children: [],
                                    },
                                    {
                                        name: '叶叶叶节点2',
                                        type: 'sub',
                                        children: [],
                                    },
                                ],
                            },
                            {
                                name: '叶叶节点2',
                                type: 'sub',
                                children: [],
                            },
                            {
                                name: '叶叶节点3',
                                type: 'sub',
                                children: [],
                            },
                        ],
                    },
                    {
                        name: '叶子节点2',
                        children: [],
                    },
                    {
                        name: '叶子节点3',
                        children: [],
                    },
                ],
            },
            {
                name: '子节点2',
                type: 'sub',
                children: [
                    {
                        name: '叶子节点4',
                        type: 'sub',
                        children: [],
                    },
                    {
                        name: '叶子节点5',
                        type: 'final',
                        children: [],
                    },
                    {
                        name: '叶子节点6',
                        type: 'sub',
                        children: [],
                    },
                ],
            },
        ],
    },
];
// 递归处理
function recursionFun(data) {
    for (let i = 0; i < data.length; i++) {
        // 根据type标识符判断当前阶段是否需要竖向
        if (data[i].type == 'final') {
            data[i].name = data[i].name.split('').join('\n') // 每个字换行
            data[i].symbolSize = [30, 95];
        }
        if (data[i].children.length > 0) {
            recursionFun(data[i].children);
        }
    }
    return data;
}
option = {
    tooltip: {
        trigger: 'item',
        triggerOn: 'mousemove',
    },
    series: [
        {
            type: 'tree',
            data: recursionFun(_data),
            initialTreeDepth: 100, //默认树展开的层数
            left: '2%',
            right: '2%',
            top: '8%',
            bottom: '20%',
            symbolSize: [90, 30], //设置框的大小
            symbol: 'rect', // 节点标记形状
            edgeShape: 'polyline', //设置连接线曲线还是折线,默认情况下是曲线,curve曲线 polyline直线
            orient: 'vertical', //树整体的方向horizontal横向 vertical竖向
            expandAndCollapse: true,
            itemStyle: {
                color: '#fff',
                borderColor: '#333',
                borderWidth: 0.1,
                overflow: 'truncate',
            },
            //lable 设置含有子节点的样式
            label: {
                show: true,
                position: 'inside',
                textStyle: {
                    fontSize: 15,
                    color: '#333',
                },
                verticalAlign: 'middle',
                align: 'center',
                height: 290,
                width: 210,
            },
            leaves: {
                // 设置末节点的样式
                label: {
                    position: 'inside',
                    color: '#333',
                    verticalAlign: 'middle',
                    align: 'center',
                    height: 290,
                    width: 100,
                },
            },
            lineStyle: {
                color: '#7b7b7b', //连接线的颜色
                width: 1,
            },
            animationDurationUpdate: 750,
        },
    ],
};