开发 ->全局脚本库 添加两个方法

方法一:addLocationRightBar

/**
*方法注释
*方法参数自行添加
*/
function addLocationRightBar(){
    //重写顶部bar面板的afterRender
   Ext.override(JE.app.view.header.LocationBar,{
        afterRender:function(){
        //给j_query加一个类型
        JE.DB.j_queryTypes.push('gridrightbar');
        //查询字段
        var me = this;
        me.callParent(arguments);
        //查询字段
        me.queryFieldCode = 'SY_CREATEORGID';
        //加载树形数据
        var treedata = JE.ajax({
            url:'/je/getTree',
            params:{
                excludes: 'checked',
                moreRoot: false,
                tableCode: 'JE_CORE_DEPARTMENT',
                node: 'ROOT',
                onlyItem: true,
                j_query: Ext.encode([{"type":"!=","code":"PARENT","value":""}]),
                funcCode: 'JE_CORE_DEPARTMENT',
            }
        });
        //顶部bar最右侧面板
        var panel = {
            xtype:'box',
            margin:'0 5 0 0',
            width:150,
           // grid:grid,
            cls:'je-hhsjy-rightBar',
            itemId:'rightTreeLoad',
            data:[{text:'无',id:''}],
            tpl:[
                '<tpl for=".">',
                    '<span class="hhsjy-title">部门:<span class="hhsjy-text" data-id="{id}">{text}</span></span>',
                '</tpl>',
            ],
            listeners:{
                afterrender: function(view){
                    view.getEl().on({
                        //点击弹出tree
                        click: function(e){
                            //顶部bar最右侧面板
                            var rightTreeLoad =  me.getCmp('rightTreeLoad');
                            //获得功能grid
                            var grid =rightTreeLoad.grid || grid;
                            if(JE.isEmpty(grid)){
                                return false;
                            }
                            //该面是否可点击
                            var activePanel = Ext.getCmp('_appcenterview').getLayout().getActiveItem();
                            var gridFuncCode= grid.funcData.info.funcCode;
                            if(JE.isNotEmpty(activePanel) && activePanel.funcCode != gridFuncCode){
                                return false;
                            }
                            if(JE.isNotEmpty(activePanel)){
                                var jeCenterView = activePanel.getCmp('jecenterview');
                                var centerActivePanel = jeCenterView && jeCenterView.getLayout().getActiveItem();
                                if(JE.isNotEmpty(centerActivePanel) && centerActivePanel.xtype != 'jedataview'){
                                    return false;
                                }
                            }
                            var text = e.getTarget('.hhsjy-text',2);
                            if(text){
                                //tree 面板
                                var treePanel = {
                                        xtype:'jetreeview',
                                        type:'func',
                                        codeSearch:true,
                                        border:0,
                                        flex: 1,
                                        margin:'15 15 0 15',
                                        //overflowX:'hidden',
                                        //overflowY:'auto',
                                        onlyItem:true,
                                        rootData:treedata,
                                        listeners:{
                                            selectionchange:function(model,selected,e){
                                                //tree 节点选中触发
                                                var rightTreeLoad =  me.getCmp('rightTreeLoad');
                                                var grid = rightTreeLoad.grid;
                                                var gridStore = grid.store;
                                                //tree节点选中
                                                if(selected.length>0){
                                                    var text = selected[0].get('text');
                                                    var id = selected[0].get('id');
                                                    var flag = true;
                                                    //如果列表中已经有该j_query就不在查询
                                                    if(gridStore.j_query && gridStore.j_query.gridrightbar){
                                                        var gridrightbar = gridStore.j_query.gridrightbar;
                                                        Ext.each(gridrightbar,function(item){
                                                            if(item.value == id){
                                                                    flag = false;
                                                                    return false;
                                                                }
                                                        });
                                                    }
                                                    if(flag){
                                                        //更新顶部tab最右侧面板数据
                                                        rightTreeLoad.update({text:text,id:id});
                                                        //grid拼接j_query
                                                        var custom = {code:me.queryFieldCode,value:id,type:'='}
                                                        JE.DB.setJ_query(gridStore,[custom],'gridrightbar');
                                                        //刷新grid
                                                        if(grid.groupQuery){
                                                            var dataView = grid.up('[xtype=jedataview]');
                                                            if(dataView){
                                                                var groupQueryForm = dataView.down('[itemId=groupQueryForm]');
                                                                if(groupQueryForm){
                                                                    var groupQuery = groupQueryForm.down('button[ref=groupQuery]');
                                                                    groupQuery && JE.Action.doGroupQuery(grid, groupQueryForm, "form")
                                                                }else{
                                                                    grid.reload();
                                                                }
                                                            }
                                                        }else{
                                                            grid.reload();
                                                        }
                                                    }
                                                }

                                            }
                                        }
                                    }
                                var buttons ={
                                    text:"清除",
                                    cls: "je-hhsjy-rightBar-btn",
                                    height:35,
                                    //iconCls:'jeicon jeicon-remove',
                                    handler:function(btn){
                                        //点击按钮触发
                                        ////顶部bar最右侧面板
                                        var rightTreeLoad =  me.getCmp('rightTreeLoad');
                                        //获得功能grid
                                        var grid = rightTreeLoad.grid;
                                        //清空树的选中状态
                                        btn.up('[itemId=hhsjyMenu]').down('[xtype=jetreeview]').getSelectionModel().deselectAll();
                                        //修改顶部bar最右侧面板的数据
                                        me.getCmp('rightTreeLoad').update({text:'无',id:''});
                                        //置空功能grid的j_query
                                        JE.DB.setJ_query(grid.store,[],'gridrightbar');
                                        //刷新grid
                                        grid.reload();    
                                        return false;        
                                    }
                                };
                                    //treemenu面板
                                var menu = Ext.create('Ext.menu.Menu', {
                                    width: 300,
                                    cls:'je-menu-item34h je-menu-arrow je-menu-arrow-tr je-hhsjy-rightBar-menu',
                                    height:400,
                                    itemId:'hhsjyMenu',
                                    plain: true,
                                    shadow:false,
                                    autoScroll: false,
                                    layout: {
                                        type: 'vbox',
                                        align: 'center'
                                    },
                                    items: [treePanel,buttons],
                                    listeners:{
                                        show: function(view){
                                            setTimeout(function(){
                                                //menu显示的时候回显tree
                                                var rightTreeLoad =  me.getCmp('rightTreeLoad');
                                                if(rightTreeLoad.data && JE.isNotEmpty(rightTreeLoad.data.id)){
                                                    var treePanel = view.down('[xtype=jetreeview]');
                                                    var node = treePanel.store.getNodeById(rightTreeLoad.data.id);
                                                    treePanel.getSelectionModel().select(node);
                                                }
                                            });
                                        }
                                    }
                                });
                                //显示面板
                                menu.showBy(text,'tr-bl',[40,0]);
                            }
                        }   
                    });
                }
            }
        };
        me.add(panel);
        }
    });
}

方法二:loadLocationRightBar

/**
*方法注释
*方法参数自行添加
*/
function(grid,fieldCode,type){
    //获得顶部bar面板
    var locationBar = Ext.getCmp('app-location-bar');
    //定义查询字段
    var queryField = fieldCode || 'SY_CREATEORGID';
    locationBar.queryFieldCode = queryField;
    grid.groupQuery = type;
    //获得添加的面板
    var rightTreeLoad = locationBar.getCmp('rightTreeLoad');
    if(JE.isNotEmpty(rightTreeLoad)){
        //把grid赋值
        rightTreeLoad.grid = grid;
        //判断该功能是否可以进行grid刷新
        var activePanel = Ext.getCmp('_appcenterview').getLayout().getActiveItem();
        var gridFuncCode= grid.funcData.info.funcCode;
        if(JE.isNotEmpty(activePanel) && activePanel.funcCode != gridFuncCode){
            return false;
        }
        if(JE.isNotEmpty(activePanel)){
            var jeCenterView = activePanel.getCmp('jecenterview');
            var centerActivePanel = jeCenterView && jeCenterView.getLayout().getActiveItem();
            if(JE.isNotEmpty(centerActivePanel) && centerActivePanel.xtype != 'jedataview'){
                return false;
            }
        }
        //选择数据的id
        var id = rightTreeLoad.data && rightTreeLoad.data.id;
        if(JE.isNotEmpty(id)){
            //给grid拼接j_query
            var custom = {code:queryField,value:id,type:'='}
            JE.DB.setJ_query(grid.store,[custom],'gridrightbar');
        }else{
            JE.DB.setJ_query(grid.store,[],'gridrightbar');
        }
        //刷新grid
        grid.reload();
    }
}

在想要实现数据查询的功能列表添加 激活后(afteractivate)事件



给添加的事件中写入方法

/**
 * @param {Object} grid 列表对象
 * @param {String} fieldCode 查询字段
 * @param {Boolean} type 是否级联高级查询  true为级联 ,不传参/false就不级联
 */
function(grid){
    JE.callCustomFn('loadLocationRightBar',grid,fieldCode,type);
}

注意:有该事件该功能才可以查询

开发 ->全局样式库 添加两个css

je-hhsjy-rightBar-menu

.x-box-target .x-docked-noborder-bottom.x-docked-noborder-left{
    overflow-x: hidden !important;
}
.je-hhsjy-rightBar-btn{
    text-align: center !important;
}
.je-hhsjy-rightBar-btn{
    text-align: center !important;
    border-top: 1px solid #ddd !important;
}
.je-hhsjy-rightBar-btn .x-menu-item-link .x-menu-item-text{
    font-size: 14px !important;
    color: #386bd0 !important;
}

je-hhsjy-rightBar

.hhsjy-text{
    cursor:pointer;
    color: #386bd0;
}
.hhsjy-title {
    font-size: 14px;
}
最后编辑: 呼丽华  文档更新时间: 2024-03-05 11:49   作者:呼丽华