SOURCE

console 命令行工具 X clear

                    
>
console
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>现代树形结构</title>
    <style>
        :root {
            --primary-color: #4361ee;
            --secondary-color: #3f37c9;
            --text-color: #2b2d42;
            --light-color: #f8f9fa;
            --border-color: #e9ecef;
            --hover-color: #f1f3ff;
            --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
            --radius: 8px;
        }
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
        }
        
        body {
            background-color: #f5f7ff;
            color: var(--text-color);
            padding: 2rem;
            line-height: 1.6;
        }
        
        .tree-container {
            max-width: 900px;
            margin: 0 auto;
            background: white;
            border-radius: var(--radius);
            box-shadow: var(--shadow);
            overflow: hidden;
        }
        
        .tree-header {
            padding: 1.5rem;
            background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
            color: white;
        }
        
        .tree-title {
            font-size: 1.5rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
        }
        
        .tree-subtitle {
            font-size: 0.9rem;
            opacity: 0.9;
        }
        
        .tree-body {
            padding: 1.5rem;
        }
        
        .tree {
            list-style: none;
            position: relative;
        }
        
        .tree-node {
            position: relative;
            padding-left: 2rem;
            margin-bottom: 0.5rem;
        }
        
        .tree-node-content {
            display: flex;
            align-items: center;
            padding: 0.75rem 1rem;
            border-radius: var(--radius);
            background-color: white;
            border: 1px solid var(--border-color);
            transition: all 0.2s ease;
            cursor: pointer;
            position: relative;
            z-index: 2;
        }
        
        .tree-node-content:hover {
            background-color: var(--hover-color);
            border-color: var(--primary-color);
            transform: translateY(-1px);
            box-shadow: var(--shadow);
        }
        
        .tree-node-toggle {
            width: 1.5rem;
            height: 1.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 0.75rem;
            color: var(--primary-color);
            background-color: var(--light-color);
            border-radius: 50%;
            transition: all 0.2s;
            flex-shrink: 0;
        }
        
        .tree-node-toggle:hover {
            background-color: var(--primary-color);
            color: white;
        }
        
        .tree-node-icon {
            margin-right: 0.75rem;
            color: var(--primary-color);
            font-size: 1.1rem;
            flex-shrink: 0;
        }
        
        .tree-node-text {
            flex-grow: 1;
            font-weight: 500;
        }
        
        .tree-node-badge {
            background-color: var(--light-color);
            color: var(--primary-color);
            padding: 0.25rem 0.75rem;
            border-radius: 1rem;
            font-size: 0.8rem;
            font-weight: 600;
            margin-left: 1rem;
        }
        
        .tree-children {
            list-style: none;
            padding-left: 2rem;
            margin-top: 0.5rem;
            display: none;
        }
        
        .tree-node.expanded > .tree-children {
            display: block;
            animation: fadeIn 0.3s ease;
        }
        
        .tree-node.expanded > .tree-node-content > .tree-node-toggle::before {
            content: "−";
        }
        
        .tree-node.collapsed > .tree-node-content > .tree-node-toggle::before {
            content: "+";
        }
        
        /* 连接线 */
        .tree-node::before {
            content: "";
            position: absolute;
            left: 1rem;
            top: -0.5rem;
            height: calc(100% + 0.5rem);
            border-left: 2px solid var(--border-color);
            z-index: 1;
        }
        
        .tree-node:last-child::before {
            height: 2.5rem;
        }
        
        .tree-node::after {
            content: "";
            position: absolute;
            left: 1rem;
            top: 2.5rem;
            width: 1rem;
            border-bottom: 2px solid var(--border-color);
            z-index: 1;
        }
        
        .tree > .tree-node::before,
        .tree > .tree-node::after {
            display: none;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(-10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        /* 响应式设计 */
        @media (max-width: 768px) {
            body {
                padding: 1rem;
            }
            
            .tree-node {
                padding-left: 1.5rem;
            }
            
            .tree-children {
                padding-left: 1.5rem;
            }
        }
    </style>
</head>
<body>
    <div class="tree-container">
        <div class="tree-header">
            <h1 class="tree-title">公司组织结构</h1>
            <p class="tree-subtitle">点击节点展开/折叠详细信息</p>
        </div>
        
        <div class="tree-body">
            <ul class="tree" id="tree">
                <li class="tree-node expanded">
                    <div class="tree-node-content">
                        <span class="tree-node-toggle"></span>
                        <span class="tree-node-icon">��</span>
                        <span class="tree-node-text">科技集团有限公司</span>
                        <span class="tree-node-badge">总部</span>
                    </div>
                    <ul class="tree-children">
                        <li class="tree-node expanded">
                            <div class="tree-node-content">
                                <span class="tree-node-toggle"></span>
                                <span class="tree-node-icon">��‍��</span>
                                <span class="tree-node-text">董事会</span>
                                <span class="tree-node-badge">5人</span>
                            </div>
                            <ul class="tree-children">
                                <li class="tree-node collapsed">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��</span>
                                        <span class="tree-node-text">董事长</span>
                                    </div>
                                </li>
                                <li class="tree-node collapsed">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��</span>
                                        <span class="tree-node-text">执行董事</span>
                                        <span class="tree-node-badge">2人</span>
                                    </div>
                                </li>
                                <li class="tree-node collapsed">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��</span>
                                        <span class="tree-node-text">独立董事</span>
                                        <span class="tree-node-badge">2人</span>
                                    </div>
                                </li>
                            </ul>
                        </li>
                        <li class="tree-node expanded">
                            <div class="tree-node-content">
                                <span class="tree-node-toggle"></span>
                                <span class="tree-node-icon">��</span>
                                <span class="tree-node-text">技术研发中心</span>
                                <span class="tree-node-badge">86人</span>
                            </div>
                            <ul class="tree-children">
                                <li class="tree-node expanded">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��️</span>
                                        <span class="tree-node-text">前端开发部</span>
                                        <span class="tree-node-badge">24人</span>
                                    </div>
                                    <ul class="tree-children">
                                        <li class="tree-node collapsed">
                                            <div class="tree-node-content">
                                                <span class="tree-node-toggle"></span>
                                                <span class="tree-node-icon">��️</span>
                                                <span class="tree-node-text">Angular小组</span>
                                                <span class="tree-node-badge">8人</span>
                                            </div>
                                        </li>
                                        <li class="tree-node collapsed">
                                            <div class="tree-node-content">
                                                <span class="tree-node-toggle"></span>
                                                <span class="tree-node-icon">⚛️</span>
                                                <span class="tree-node-text">React小组</span>
                                                <span class="tree-node-badge">10人</span>
                                            </div>
                                        </li>
                                        <li class="tree-node collapsed">
                                            <div class="tree-node-content">
                                                <span class="tree-node-toggle"></span>
                                                <span class="tree-node-icon">��</span>
                                                <span class="tree-node-text">Vue小组</span>
                                                <span class="tree-node-badge">6人</span>
                                            </div>
                                        </li>
                                    </ul>
                                </li>
                                <li class="tree-node expanded">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��</span>
                                        <span class="tree-node-text">移动开发部</span>
                                        <span class="tree-node-badge">32人</span>
                                    </div>
                                    <ul class="tree-children">
                                        <li class="tree-node collapsed">
                                            <div class="tree-node-content">
                                                <span class="tree-node-toggle"></span>
                                                <span class="tree-node-icon">��</span>
                                                <span class="tree-node-text">iOS开发组</span>
                                                <span class="tree-node-badge">14人</span>
                                            </div>
                                        </li>
                                        <li class="tree-node collapsed">
                                            <div class="tree-node-content">
                                                <span class="tree-node-toggle"></span>
                                                <span class="tree-node-icon">��</span>
                                                <span class="tree-node-text">Android开发组</span>
                                                <span class="tree-node-badge">12人</span>
                                            </div>
                                        </li>
                                        <li class="tree-node collapsed">
                                            <div class="tree-node-content">
                                                <span class="tree-node-toggle"></span>
                                                <span class="tree-node-icon">��</span>
                                                <span class="tree-node-text">跨平台组</span>
                                                <span class="tree-node-badge">6人</span>
                                            </div>
                                        </li>
                                    </ul>
                                </li>
                                <li class="tree-node collapsed">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��️</span>
                                        <span class="tree-node-text">后端开发部</span>
                                        <span class="tree-node-badge">30人</span>
                                    </div>
                                </li>
                            </ul>
                        </li>
                        <li class="tree-node expanded">
                            <div class="tree-node-content">
                                <span class="tree-node-toggle"></span>
                                <span class="tree-node-icon">��</span>
                                <span class="tree-node-text">市场营销中心</span>
                                <span class="tree-node-badge">45人</span>
                            </div>
                            <ul class="tree-children">
                                <li class="tree-node collapsed">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��</span>
                                        <span class="tree-node-text">品牌推广部</span>
                                        <span class="tree-node-badge">15人</span>
                                    </div>
                                </li>
                                <li class="tree-node collapsed">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��</span>
                                        <span class="tree-node-text">数字营销部</span>
                                        <span class="tree-node-badge">20人</span>
                                    </div>
                                </li>
                                <li class="tree-node collapsed">
                                    <div class="tree-node-content">
                                        <span class="tree-node-toggle"></span>
                                        <span class="tree-node-icon">��</span>
                                        <span class="tree-node-text">客户关系部</span>
                                        <span class="tree-node-badge">10人</span>
                                    </div>
                                </li>
                            </ul>
                        </li>
                        <li class="tree-node collapsed">
                            <div class="tree-node-content">
                                <span class="tree-node-toggle"></span>
                                <span class="tree-node-icon">��</span>
                                <span class="tree-node-text">运营管理中心</span>
                                <span class="tree-node-badge">38人</span>
                            </div>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            // 初始化所有节点状态
            document.querySelectorAll('.tree-node').forEach(node => {
                if (!node.classList.contains('expanded') && !node.classList.contains('collapsed')) {
                    if (node.querySelector('.tree-children')) {
                        node.classList.add('collapsed');
                    } else {
                        node.classList.add('expanded');
                    }
                }
            });
            
            // 点击节点切换展开/折叠状态
            document.querySelectorAll('.tree-node-content').forEach(content => {
                content.addEventListener('click', function(e) {
                    const node = this.parentElement;
                    if (node.querySelector('.tree-children')) {
                        node.classList.toggle('expanded');
                        node.classList.toggle('collapsed');
                    }
                });
            });
            
            // 阻止点击切换按钮时的冒泡
            document.querySelectorAll('.tree-node-toggle').forEach(toggle => {
                toggle.addEventListener('click', function(e) {
                    e.stopPropagation();
                });
            });
        });
    </script>
</body>
</html>