Grid panel

//搜索field
ZY.Form.Search = function(cfg) {
    ZY.Form.Search.superclass.constructor.call(this, {
        xtype: 'twintriggerfield',
        trigger1Class: 'x-form-clear-trigger',
        trigger2Class: 'x-form-search-trigger'
    });
    Ext.apply(this, cfg);
}
Ext.extend(ZY.Form.Search, Ext.form.TwinTriggerField, {
    onTrigger1Click : function(e) {
        this.reset();
    }
});
//模糊搜索组建基于GridPanel。
ZY.Form.SearchBySth = function(cfg){
    cfg = cfg || {};
    Ext.apply(this,cfg);
    var pageSize=10;
    //测试的数据
    var data = {
        'success':'true',
        'total':'1',
        'rows': [
           { 'id': '1',  'department ':'研发部','name': '标光师兄'}
        ]
   };
    var _store=new Ext.data.Store({
        proxy : new Ext.data.HttpProxy({
            method:'POST',
            url:'system_admin/user/search.jsp'
        }),
//            data: data,
    id:'_start_service_request_form_store',
//    proxy: new Ext.data.MemoryProxy(data),
        reader : new Ext.data.JsonReader({
            idProperty : 'id',
            successProperty:'success',
            totalProperty:'total',
            root :'rows',
            fields : [
               {name: 'id'},
               {name: 'department'},
               {name: 'name'}
            ]
        })
       // remoteSort: true
    });
    //_store.load({params:{start:0,limit:pageSize}});
    var _search=new ZY.Form.Search({displayed:true,width:350});
    _search.onTrigger2Click=function(e){
        _store.reload({
          params:{name:this.getValue()}
          //callback: function(r, opts, success) {}
        });
    };
    ZY.Form.SearchBySth.superclass.constructor.call(this,{
        //添加自己的控件配置。
        store : _store,
        height : 200,
       // autoHeight: true,
        autoScoll:true,
        border : false,
        colModel : new Ext.grid.ColumnModel({
            defaults : {
                width : 120,
                sortable : true
            },
            columns : [
                {header:'userID',dataIndex:'id',hidden:true},
                {header: '部门', dataIndex: 'department'},
                {header: '姓名', dataIndex: 'name'}
            ]
        }),
        
        viewConfig: {
            forceFit: true,
            emptyText: '[暂无数据]'
        },
        loadMask: {msg: '列表加载中...'},
        tbar: [
         '搜索:',
         _search
        ]/*,
         bbar:new Ext.PagingToolbar({  
                     store:_store,           //数据源  
                     pageSize:pageSize,  
                     //显示右下角信息  
                     displayInfo:true,  
                     displayMsg:'当前记录 {0} -- {1} 条 共 {2} 条记录',  
                     emptyMsg:"0条记录存在",  
                     prevText:"上一页",  
                     nextText:"下一页",  
                     refreshText:"刷新",  
                     lastText:"最后页",  
                     firstText:"第一页",  
                     beforePageText:"当前页",  
                     afterPageText:"共{0}页"  
                }) */
    });
}
Ext.extend(ZY.Form.SearchBySth,Ext.grid.GridPanel);

//下拉树人员选择列表_test
ZY.Form.ComboBoxTree2 = function(cfg) {
    ZY.Form.ComboBoxTree2.superclass.constructor.call(this, {
        editable : false,
        name : 'serviceRequest',
        submitValue : false,
        triggerClass : 'x-form-search-trigger'
    });
    Ext.apply(this, cfg);
}
Ext.extend(ZY.Form.ComboBoxTree2, Ext.form.TriggerField, {
    setRealValue: function(value) {
        this.RealValue = value;
    },
    getRealValue: function() {
        return this.RealValue;
    },
    onTriggerClick : function(e) {
        var userComboxField = this;
        var _searchBySth=new ZY.Form.SearchBySth({id:'card-1'});
        _searchBySth.on('dblclick', function(){
             _confirmAction();
        });
        var i=0;
        var _confirmAction = function() {
            if(i==0){
              var _selected = _userTree.getSelectionModel().getSelectedNode();
              if(!_selected) {
                  Ext.Msg.alert('提示', '请选择需要关联的服务请求!');
              } else {
                  userComboxField.setValue(_selected.text);
                  userComboxField.setRealValue(_selected.id);
                  _win.close();
              }
            }else{
                var _selected2=_searchBySth.getSelectionModel().getSelected();
                if(!_selected2){
                    Ext.Msg.alert('提示','请选择需要关联的服务请求!');
                }else{
                    userComboxField.setValue(_selected2.get('name'));
                    userComboxField.setRealValue(_selected2.get('id'));
                    _win.close();
                }
            }
        }
        
        var _userTree = new Ext.tree.TreePanel({
            id:'card-0',
            useArrows : true,
            autoScroll: true,
            singleExpand : true,
            animate: true,
            border: false,
            height: 100,
            rootVisible: false,
            loader : new Ext.tree.TreeLoader({
                dataUrl : ZY.Request.SHOW_FUNCTION_STAFF_TREE_URL,
                baseParams : {type: 'project'}
            }),
            root : new Ext.tree.AsyncTreeNode({
                //expanded : true,
                id : '1'
            }),
            listeners: {
                beforeload : function(node) {
                    this.body.mask('加载中..', 'x-mask-loading');;
                    if (node.attributes.type == 'dept') {
                        _userTree.loader.baseParams = {};
                    }
                },
                load: function(node){
                    node.eachChild(function(n){
                        n.attributes.singleClickExpand = true;
                    })
                    this.body.unmask();
                },
                dblclick: function(n, e) {
                    if(n.attributes.type != 'dept') {
                        _confirmAction();
                    }
                }
            }
        });
        
        var cardNav = function(incr){
           var card_prev=Ext.getCmp('card-prev');
           var card_next=Ext.getCmp('card-next');
            if(incr == -1){
                i--;
                if(i<0){
                    i=0;
                }
                card_prev.disable();
                card_next.enable();
            }
            if(incr==1){
                i++;
                if(i>0){
                    i=1;
                }
                card_prev.enable();
                card_next.disable();
                _searchBySth.getStore().reload({
                   params:{name:''}
                });
            }
           // Ext.Msg.alert(i);
           Ext.getCmp('service_request_search_win').getLayout().setActiveItem("card-"+i);
          };
       
        var _win = new Ext.Window({
            id:'service_request_search_win',
            width: 400,
            height: 400,
            title: '选择人员',
            iconCls: Icon.ADD_CLS,
            buttonAlign: 'center',
            layout:'card',
            activeItem: 0,
            bbar:[
               '->',{
                   id:'card-prev',
                   text: '&laquo; 树搜索',
                   handler: cardNav.createDelegate(this, [-1]),
                disabled : true
               },{
                   id:'card-next',
                 text: '模糊搜索 &raquo;',
                 handler:cardNav.createDelegate(this,[1])
               }
            ],
            items : [
                 _userTree,
                 _searchBySth
                ],
            buttons: [
                {
                    text: '确定',
                    handler: function() {
                        _confirmAction();
                    }
                },
                {
                    text: '取消',
                    handler: function() {
                        _win.close();
                    }
                }
            ]
        }).show();
    }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值