extjs 自定义控件

Ext.define('Ext.ux.YearComboBox', {
    extend: 'Ext.form.ComboBox',

    alias: 'widget.yearComboBox',
    addCode: 1,//显示栏是否显示区域编码 1:显示;0:不显示 
    initComponent: function(){
        function initData(yearFrom, Length) {
            var arr = new Array();
            for (var j = 0; j <= Length; j++) {
                arr[j] = {
                    key : (yearFrom + j).toString(),
                    value: (yearFrom + j).toString()
                }
            }
            return arr;
        }
        var dataStore = Ext.create('Ext.data.JsonStore', {
            fields : ['key', 'value'],
            data : initData(2013, 20)
        });
        Ext.apply(this, {
            listConfig : {
                emptyText : '未找到匹配值',
                maxHeight : 120
            },
            triggerAction : 'all',
            store : dataStore,
            displayField : 'value',// 定义要显示的字段
            valueField : 'key',
            queryMode : 'local',
            forceSelection : true,
            typeAhead : true
        });    

        this.superclass.initComponent.apply(this, arguments);
    }    
});

 

/** 
 * 单位信息列表
 * 过滤条件:登录用户相关信息
 * 1、S:管理员 --> 区域编码
 * 2、E:企业用户 --> 所属企业编码 
 */
 Ext.define('Ext.ux.unitCombo', {
    extend: 'Ext.form.ComboBox',
    alias: 'widget.unitCombo',
    userType: UserDetails.type,//用户类别
    attrCoding: UserDetails.attrCoding,//单位所属区域
    dataStore: null,
    initComponent: function(){
        this.dataStore = new Ext.data.JsonStore({// 根据id,name动态读取
            fields : ['key', 'value'],
            proxy : {
                type : 'ajax',
                url : '../dc/Dc04Action!getUnitData.action?userType='+this.userType,
                method : 'post',
                reader : {
                    root : 'data'
                }
            },
            method : 'post'
        }); 
        this.dataStore.load({
            params: {
                attrCoding: this.attrCoding
            }
        });
        Ext.apply(this, {
            listConfig : {
                emptyText : '未找到匹配值',
                maxHeight : 120
            },
            triggerAction : 'all',
            store : this.dataStore,
            displayField : 'value',// 定义要显示的字段
            valueField : 'key',
            queryMode : 'local',
            forceSelection : true,
            typeAhead : true
        });    
        this.superclass.initComponent.apply(this, arguments);
    }    
});

 


//打印报表:【src:action路径】【 params:参数】
//【frameHeight:Iframe高度】【frameWidth:Iframe宽度】
function CommPrintReport(src, params, frameHeight, frameWidth) {
    var paramStr = src;
    if (null != params) {
        Ext.each(params, function(items, index) {
                    if (index > 0) {
                        paramStr += '&';
                    } else if (index == 0) {
                        paramStr += '?';
                    }
                    paramStr += items.key + '=' + items.value;
                });
    }
    var StrPrint = '<Iframe height = ' + frameHeight + ' width = ' + frameWidth
            + ' src="' + paramStr + '"></iframe>';

    return StrPrint;
};

    // 3.产生报表页面
            var RptHtml = CommPrintReport( '../rpt/Rp_dv01Action!PrintReportData.action',params, reportHeight, reportWidth);
            // 4.通过模板映射到web页面的div
            var TptTpl = new Ext.XTemplate(RptHtml);
            TptTpl.overwrite('id_rpt_dv01');

 

//报表导出:【src:action路径】【 params:参数】
function CommExportReport(src, params) {
    var paramStr = src;
    if (null != params) {
        Ext.each(params, function(items, index) {
                    if (index > 0) {
                        paramStr += '&';
                    } else if (index == 0) {
                        paramStr += '?';
                    }
                    paramStr += items.key + '=' + items.value;
                });
    }
    window.open(paramStr);
};
 

Ext中给控件添加属性listeners

listeners : {
                        'afterrender' : {
                            fn : function() {
                                tpl.overwrite('cb01Tree', []);
                            }
                        }
           }

给控件添加on事件

Ext.getCmp(id).on("事件名",function(){

});

 

 

var unitEnergyAuditStore = new Ext.data.Store({
                    pageSize : 40,// 每页显示的记录值
                    groupField:'UNIT_DESC1',
                    fields : ['UNIT_CODE', 'UNIT_DESC1', 'ACC_DATE','EN_CODE','EN_NAME','TSBA01','TDCB01','STATUS'],  
                    proxy : {
                        type : 'ajax',
                        url : '../sh/Sh01Action.action',
                        reader : {
                            totalProperty : 'totalCount',// 分页时候使用
                            type : 'json',
                            root : 'items'
                        }
                    },
                    sorters : [{
                                property : 'UNIT_CODE', // 排序字段
                                direction : 'ASC'// 默认ASC
                            }]
                });
        unitEnergyAuditStore.load();  

 

var unitEnergyAuditGrid = Ext.create('Ext.grid.Panel', {
                    id : 'unitEnergyAuditGrid',
                    columnLines : true,
                    selType : 'rowmodel',// 设置单元格选择模型
                    store :unitEnergyAuditStore,
                    features: [unitGroupingFeature],
                    border:false,
                    columns : [{
                                header : "单位编码",
                                autoWidth : true,
                                width : 140,
                                dataIndex : "UNIT_CODE"
                            }, {
                                header : "单位名称",
                                autoWidth : true,
                                width : 150,
                                dataIndex : "UNIT_DESC1"
                            }, {
                                header : "上报月份 ",
                                width:170,
                                dataIndex : "ACC_DATE",
                                renderer : function(value) {
                                    if(value!=''&& value!=null){
                                        return value.substring(0,7);
                                    }
                                 }
                            }, {
                                header : "能耗类别",
                                width : 100,
                                dataIndex : "EN_NAME"
                            }, {
                                header : "能耗数值",
                                width : 100,
                                align:'right',
                                dataIndex : "TSBA01"
                            },{
                                header : "计量类型",
                                width : 100,
                                dataIndex : "TDCB01"
                            },{
                                header : "状态",
                                dataIndex : "STATUS",
                                autoWidth : true,
                                xtype : 'booleancolumn',
                                trueText : '<font size="2" color="green">生效</font>',// 1
                                falseText : '<font size="2" color="red">申请作废</font>'// 0   
                            },{
                                xtype: 'actioncolumn',
                                text:'操作',
                                width: 50,
                                items: [{
                                    icon   : '../images/delete.gif',  // Use a URL in the icon config  accept.gif
                                    tooltip: '作废',
                                    handler: function(grid, rowIndex, colIndex) {
                                        var rec = unitEnergyAuditStore.getAt(rowIndex);
                                        Ext.MessageBox.confirm("作废提示", "您是否确认作废该笔数据", function(btnId) {
                                            if (btnId == "yes") {
                                                var msgTip = Ext.Msg.show({
                                                            title : '提示',
                                                            width : 250,
                                                            msg : '正在删除中...'
                                                        });
                                                Ext.Ajax.request({
                                                    url : '../sh/Sh01Action!deleteUnitData.action',
                                                    params : { // 此处可以另外加参数
                                                        unit_code:rec.get('UNIT_CODE'),
                                                        acc_date:rec.get('ACC_DATE'),
                                                        en_code:rec.get('EN_CODE') 
                                                    },
                                                    method : 'POST',
                                                    success : function() {
                                                        msgTip.hide();
                                                        Ext.Msg.alert("提示", "作废成功");
                                                        unitEnergyAuditStore.load();
                                                    },
                                                    failure : function() {
                                                        msgTip.hide();
                                                        Ext.Msg.alert("提示", "作废失败");
                                                    }
                                                });
                                            }
                                        });
                                    }
                                }, {
                                    icon   : '../images/accept.gif',  // Use a URL in the icon config  accept.gif
                                    tooltip: '生效',
                                    handler: function(grid, rowIndex, colIndex) {
                                    var rec = unitEnergyAuditStore.getAt(rowIndex);
                                    Ext.MessageBox.confirm("生效提示", "您是否确认生效该笔数据", function(btnId) {
                                        if (btnId == "yes") { 
                                            Ext.Ajax.request({
                                                url : '../sh/Sh01Action!updateUnitData.action',
                                                params : { // 此处可以另外加参数
                                                    unit_code:rec.get('UNIT_CODE'),
                                                    acc_date:rec.get('ACC_DATE'),
                                                    en_code:rec.get('EN_CODE')  
                                                },
                                                method : 'POST',
                                                success : function() {
                                                    Ext.Msg.alert("提示", "生效成功");
                                                    unitEnergyAuditStore.load();
                                                },
                                                failure : function() {
                                                    Ext.Msg.alert("提示", "生效失败");
                                                }
                                            });
                                        }
                                    });
                                    }
                                }]
                            }],
                    bbar : new Ext.PagingToolbar({
                                store : unitEnergyAuditStore,
                                displayInfo : true,
                                displayMsg : '显示{0}-{1}条记录,共 {2}条记录',
                                emptyMsg : "没有记录",
                                beforePageText : '第',
                                afterPageText : '页/共{0}页'
                            })
                });
         

转载于:https://my.oschina.net/ldm95/blog/726098

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值