ExtJS布局:制作后台管理布局

简介:

image

一个后台管理页面大概头部、左侧导航、右侧的在线用户(可有可无)和状态栏(不是必须)

头部一般放一些logo、登陆用户信息和提醒事项等

我上面给出的这个图片就是我用ExtJS实现的一个后台管理页面布局,源代码如下:

Ext.onReady(function () {
    Ext.create('Ext.container.Viewport', {
        layout: 'border',
        items: [{
            region: 'north',
            html: '<h1 class="x-panel-header">Logo</h1>',
            border: false,
            height: 50,
            margins: '0 0 0 0'
        }, {
            region: 'west',
            collapsible: true,
            split: true,
            id: 'MainMenu',
            title: '系统导航',
            width: 150,
            layout: 'accordion',
            items: [
                {
                    title: '系统菜单',
                    layout: 'fit',
                    items: [
                        {
                            xtype: 'treepanel',
                            border: 0,
                            rootVisible: false,
                            root: {
                                expanded: true,
                                children: [
                                    { id: "01", text: "用户管理", leaf: true, href: '#' },
                                    { id: "02", text: "密码修改", leaf: true, href: '#' }
                                ]
                            }
                        }
                    ]
                },
            ]
            // could use a TreePanel or AccordionLayout for navigational items
        }, {
            region: 'south',
            collapsible: false,
            html: '状态栏',
            split: false,
            height: 22
        }, {
            region: 'east',
            title: '在线用户',
            collapsible: true,
            split: true,
            width: 150
        }, {
            region: 'center',
            xtype: 'tabpanel', 
            id: 'MainTabPanel',
            activeTab: 0,  
            items: {
                title: '首页',
                html: '<h1>欢迎使用</h1><input type="button" value="添加新标签" onclick="CreateIframeTab(\'MainTabPanel\',\'01\', \'系统管理\', \'http://www.baidu.com\');" />'
            }
        }]
    });

    bindNavToTab("MainMenu", "MainTabPanel");
});

function bindNavToTab(accordionId, tabId) {
    var accordionPanel = Ext.getCmp(accordionId);
    if (!accordionPanel) return;

    var treeItems = accordionPanel.queryBy(function (cmp) {
        if (cmp && cmp.getXType() === 'treepanel') return true;
        return false;
    });
    if (!treeItems || treeItems.length == 0) return;

    for (var i = 0; i < treeItems.length; i++) {
        var tree = treeItems[i];

        tree.on('itemclick', function (view, record, htmlElement, index, event, opts) {
            if (record.isLeaf()) {
                // 阻止事件传播
                event.stopEvent();

                var href = record.data.href;

                if (!href) return;
                // 修改地址栏
                window.location.hash = '#' + href;
                // 新增Tab节点
                CreateIframeTab(tabId, record.data.id, record.data.text, href);
            }
        });
    }
}

function CreateIframeTab(tabpanelId, tabId, tabTitle, iframeSrc) {
    var tabpanel = Ext.getCmp(tabpanelId);
    if (!tabpanel) return;  //未找到tabpanel,返回

    //寻找id相同的tab
    var tab = Ext.getCmp(tabId);
    if (tab) { tabpanel.setActiveTab(tab); return; }

    //新建一个tab,并将其添加到tabpanel中
    //tab = Ext.create('Ext.tab.Tab', );
    tab = tabpanel.add({
        id: tabId,
        title: tabTitle,
        closable: true,
        html: '<iframe style="overflow:auto;width:100%; height:100%;" src="' + iframeSrc + '" frameborder="0"></iframe>'
    });
    tabpanel.setActiveTab(tab);
}


本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2013/03/05/2943846.html,如需转载请自行联系原作者
相关文章
|
4月前
|
编解码 前端开发 容器
CSS Flex布局实战案例:构建响应式卡片组件
【7月更文挑战第17天】通过上述步骤,我们成功地使用CSS Flex布局构建了一个响应式的卡片组件。Flexbox不仅简化了布局代码,还让我们能够轻松实现复杂的布局效果,如响应式设计。在实战中,掌握Flexbox将大大提高前端开发的效率和网页布局的质量。希望这个案例能够帮助你更好地理解和应用Flexbox布局。
|
11月前
|
移动开发
移动开发—详解flex布局之携程网首页案例制作(二)
移动开发—详解flex布局之携程网首页案例制作
|
11月前
|
移动开发
移动开发—详解flex布局之携程网首页案例制作(一)
移动开发—详解flex布局之携程网首页案例制作
|
12月前
|
前端开发
前端切图:手机端自适应布局demo
前端切图:手机端自适应布局demo
35 0
|
编解码 前端开发 Android开发
前端页面布局之【响应式布局】
前端页面布局之【响应式布局】
68 0
|
存储 前端开发 JavaScript
HTML+CSS+JS轮播图制作(前端)
HTML+CSS+JS轮播图制作(前端)
173 0
|
前端开发
前端页面布局基础💕(一)
首先我们来了解一下盒子模型与行内块元素
194 5
前端页面布局基础💕(一)
|
前端开发 容器
前端页面布局基础💕(二)
首先我们来了解一下盒子模型与行内块元素
110 2
|
存储 前端开发 JavaScript
|
JSON 移动开发 JavaScript
基于js开发的一个h5页面可视化布局器
前段时间笔者一直忙于数据可视化方面的工作,比如如何实现拖拽式生成可视化大屏,如何定制可视化图表交互和数据导入方案等,这块需求在B端企业中应用非常大,所以非常有探索价值。 本篇文章并非和数据可视化相关,而是通过抽象技术底层,将其应用于H5页面可视化搭建上,通过技术的手段实现拖拽式生成H5页面。这块也有非常多的应用场景,比如我们需要开发一个移动端网站,一个H5营销页面,H5活动页面等,如果有这样的傻瓜式拖拽的工具生成H5页面,将会极大的提高我们的工作效率。 接下来笔者将对h5页面可视化编辑器做详细的演示
2842 0
基于js开发的一个h5页面可视化布局器