fastAdmin 添加TAB与绑定TAB事件

这篇博客介绍了如何在前端页面中使用JavaScript处理Tab切换事件,并结合Bootstrap Table实现数据过滤。具体涉及到`index.html`的Tab结构,`index.js`中的事件监听及参数处理,以及根据字段和条件更新表格内容的逻辑。
摘要由CSDN通过智能技术生成

controller

$this->view->assign('typeList', ['1' => '状态1', '2' => '状态2']);

index.html

    <div class="panel-heading">
        {:build_heading(null,FALSE)}
        <ul class="nav nav-tabs">
            <li class="active"><a href="#all" data-toggle="tab">{:__('All')}</a></li>
            {foreach name="typeList" item="vo"}
            <li><a href="#{$key}" data-toggle="tab">{$vo}</a></li>
            {/foreach}
        </ul>

    </div>

index.js

            // 绑定TAB事件
            $('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
                var field = 'type';
                var value = $(this).attr("href").replace('#', '');
                var options = table.bootstrapTable('getOptions');
                options.pageNumber = 1;
                var queryParams = options.queryParams;
                options.queryParams = function (params) {
                    params = queryParams(params);
                    var filter = params.filter ? JSON.parse(params.filter) : {};
                    if (value !== '' && value != 'all') {
                        filter[field] = value;
                    } else {
                        delete filter[field];
                    }
                    params.filter = JSON.stringify(filter);
                    return params;
                };
                table.bootstrapTable('refresh', {});
                return false;
            });
            // 自定义搜索条件
            $('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
                var field = 'reportdata.bh';
                var value = $(this).attr("href").replace('#', '');
                var options = table.bootstrapTable('getOptions');
                options.pageNumber = 1;
                var queryParams = options.queryParams;
                options.queryParams = function (params) {
                    params = queryParams(params);
                    var op = params.op ? JSON.parse(params.op) : {};
                    var filter = params.filter ? JSON.parse(params.filter) : {};
                    if (value !== '' && value != 'all') {
                        filter[field] = '';
                        if (value == 2) {
                            op[field] = '=';
                        } else {
                            op[field] = '<>';
                        }
                    } else {
                        delete op[field];
                        delete filter[field];
                    }
                    params.op = JSON.stringify(op);
                    params.filter = JSON.stringify(filter);
                    return params;
                };
                table.bootstrapTable('refresh', {});
                return false;
            });
在PyQt中,RibbonTab是QtitanRibbon库中的一个类,用于创建带有选项卡的Ribbon界面。要绑定RibbonTab的点击事件,可以使用Qt信号和槽机制。 首先,确保已经安装了QtitanRibbon库。然后,可以按照以下步骤进行操作: 1. 导入必要的模块: ```python from PyQt5 import QtWidgets from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication from qtitanribbon import QtitanRibbon ``` 2. 创建一个继承自QtitanRibbon.RibbonMainWindow的自定义窗口类: ```python class MainWindow(QtitanRibbon.RibbonMainWindow): def __init__(self): super(MainWindow, self).__init__() # 创建RibbonTab self.ribbon = QtitanRibbon.RibbonBar(self) self.setMenuBar(self.ribbon) # 创建RibbonTab的选项卡 self.tab = QtitanRibbon.RibbonTab(self.ribbon) self.tab.setTitle("Tab 1") # 将选项卡添加到RibbonTab中 self.ribbon.addTab(self.tab) ``` 3. 在自定义窗口类中添加处理点击事件的方法: ```python class MainWindow(QtitanRibbon.RibbonMainWindow): def __init__(self): # ... def handleTabClicked(self): print("Tab clicked!") def setupConnections(self): # 绑定选项卡的点击事件到处理方法 self.tab.tabBarClicked.connect(self.handleTabClicked) ``` 4. 在主程序中创建应用程序对象,并实例化自定义窗口类: ```python if __name__ == "__main__": app = QApplication(sys.argv) mainWindow = MainWindow() mainWindow.setupConnections() mainWindow.show() sys.exit(app.exec_()) ``` 这样,当用户点击RibbonTab的选项卡时,会触发handleTabClicked方法,并打印"Tab clicked!"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值