ExtJs前台框架搭建


概述:由于前台时间一直在研究desktop,最后有了一点小小的成果。搭建了一个京东商城后台管理的简单框架。

一、首先在ext源码中的examples下的desktop拷贝到自己下。只要它的js目录下的所有js文件和css文件

二、利用的mvc模式来搭建的,首先写的一个app的程序主入口。用define来声明这个类。在html页面中用js代码声明命名空间,引入主入门的app文件,并且实例化,主入门的文件主要拷贝与官方的app文件。分析了代码,简单代码及注释如下:

Ext.define('MyDesktop.App', {

    extend: 'Ext.ux.desktop.App',

    requires: [

        'Ext.window.MessageBox',

        "Ext.ux.desktop.Module",

        'Ext.ux.desktop.ShortcutModel',

//        "Ext.ux.desktop.Settings",

// 'LYApp.xwxbgl.view.xwxbglmainpanel',

        'FMApp.CustomerApp',

        'FMApp.AddressApp',

        'FMApp.GoodApp',

        'FMApp.GoodTypeApp',

        'FMApp.OrderApp',

        'FMApp.OrderDetailApp',

        'FMApp.NoticeApp',

        'FMApp.FeedBackApp'

    ],

    init: function () {

        // custom logic before getXYZ methods get called...

        this.callParent();

        // now ready...

    },

    getModules: function () {

        return [

         new FMApp.CustomerApp(),

         new FMApp.AddressApp(),

            new FMApp.GoodApp(),

            new FMApp.GoodTypeApp(),

            new FMApp.OrderApp(),

            new FMApp.OrderDetailApp(),

            new FMApp.NoticeApp(),

            new FMApp.FeedBackApp()

        //new MyDesktop.Blockalanche(),

        ];

    },

    getDesktopConfig: function () {

        var me = this, ret = me.callParent();

        return Ext.apply(ret, {

            //cls: 'ux-desktop-black',

            //鼠标右键菜单

            contextMenuItems: [

                { text: '更改背景', handler: me.onSettings, scope: me }

            ],

            //桌面快捷方式

            shortcuts: Ext.create('Ext.data.Store', {

                model: 'Ext.ux.desktop.ShortcutModel',

                data: [

   { name: '客户管理系统', iconCls: 'xwxbgl-shortcut', module: 'customer' },

   { name: '收货地址管理系统', iconCls: 'xwxbgl-shortcut', module: 'address' },

   { name: '商品管理系统', iconCls: 'xwxbgl-shortcut', module: 'good' },

   { name: '商品类型管理系统', iconCls: 'xwxbgl-shortcut', module: 'goodtype' },    

   { name: '订单管理系统', iconCls: 'xwxbgl-shortcut', module: 'order' },    

   { name: '订单明细管理系统', iconCls: 'xwxbgl-shortcut', module: 'orderdetail' },    

   { name: '公告管理系统', iconCls: 'xwxbgl-shortcut', module: 'notice' },    

   { name: '反馈信息管理系统', iconCls: 'xwxbgl-shortcut', module: 'feedback' }    

                      ]

            }),

            //背景

            wallpaper: 'mydesktop/theme/wallpapers/Blue-Sencha.jpg',

            //背景图是否伸展

            wallpaperStretch: true

        });

    },

    // 开始菜单右边

    getStartConfig: function () {

        var me = this, ret = me.callParent();

        return Ext.apply(ret, {

            title: 'Don Griffin',

            iconCls: 'user',

            height: 300,

            toolConfig: {

                width: 100,

                items: [

                    {

                        text: '更改背景',

                        iconCls: 'settings',

                        handler: me.onSettings,

                        scope: me

                    },

                    '-',

                    {

                        text: '退出系统',

                        iconCls: 'logout',

                        handler: me.onLogout,

                        scope: me

                    }

                ]

            }

        });

    },

    //任务栏设置

    getTaskbarConfig: function () {

        var ret = this.callParent();

        return Ext.apply(ret, {

            //快速启动栏

            quickStart: [

            ],

            trayItems: [

                { xtype: 'trayclock', flex: 1 }

            ]

        });

    },

    onLogout: function () {

        Ext.Msg.confirm('提示', '确定要退出系统么?',function(btn,text){

         if(btn=='yes'){

         Ext.getDoc().close();

         }

        });

    },

    onSettings: function () {

       Ext.Msg.alert("提示","暂时不能更换背景");

    }

});

三、已经有程序的主入门,那们就讲其模块分开,分别有模块的各个入门,采用的mvc的设计模式。一个对应的app文件和自己的对应的app目录形成一体,上面已经将主入门与模块的入门的app已经关联并且实例化。所以我应该在模块入口app文件中定义,官方实例没有使用到mvc,所有我们应该解决的问题是应该调用的Ext.application方法与自己的模块目录联系起来。

四、如果模块较为多,桌面应该换行,所以解决这个问题,主要改desktop的源码,改的是js下的app文件,代码改的方法见帖子:http://blog.csdn.net/zhangshuaipeng/article/details/7253627 

五、简单说下框架的优点和缺点,搭建的不是很好,如果大家有好的建议个想法请及时沟通并改进框架,优点:程序有主入口和各个模块入口,使用mvc模式,所以加载js文件的时候,当使用到模块的时候系统才会自动加载,如果没有使用到则不会浪费内存,动态加载js文件。缺点:代码、文件和目录繁多,有的地方不可能实现通用,低耦合做的不好。

六、效果图片:


七、程序目录结构视图:



  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值