12月21日:fastadmin顶部搜索栏selectpage事件绑定以及实现添加表单和查询数据在同一个页面

news2025/1/20 5:57:57

 fastadmin将添加表单从弹窗转为页面

如图所示,实现这种两个标签页,各自执行自己的操作

添加页从弹窗转为页面

 实现步骤:

首先:从前端页面来看,需要将添加的功能移动到index页面,即可初步实现

将Index页面如图所示更改

 其次:需要在liuyan.js中为index中的添加表单绑定事件

liuyan.js中需要更新的地方

 最后:特别需要注意的是,index中的add方法表单需要给予地址,否则虽然会添加成功,但是会导致数据没有存入数据库

失败图:

js中绑定事件放错位置

成功图:

修正后图

 fastadmin顶部搜索栏绑定selectpage事件

如图所示

 实现步骤:

添加如上这段代码即可
define(['jquery', 'bootstrap', 'backend', 'table', 'form','editable'], function ($, undefined, Backend, Table, Form,undefined) {

    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'liuyan/index' + location.search,
                    add_url: 'liuyan/add',
                    edit_url: 'liuyan/edit',
                    del_url: 'liuyan/del',
                    multi_url: 'liuyan/multi',
                    import_url: 'liuyan/import',
                    table: 'liuyan',
                }
            });

            var table = $("#table");
            //顶部搜索栏admin_id
            table.on('post-common-search.bs.table', function (event, table) {
                var form = $("form", table.$commonsearch);
                $("input[name='admin_id']", form).addClass("selectpage").data("source", "liuyan/index").data("primaryKey", "id").data("field", "admin_id").data("orderBy", "id desc");
                Form.events.cxselect(form);
                Form.events.selectpage(form);
            });
            //顶部搜索栏文章标题
            table.on('post-common-search.bs.table', function (event, table) {
                var form = $("form", table.$commonsearch);
                $("input[name='name']", form).addClass("selectpage").data("source", "liuyan/index").data("primaryKey", "id").data("field", "name").data("orderBy", "id desc");
                Form.events.cxselect(form);
                Form.events.selectpage(form);
            });
            // 初始化表格
            table.bootstrapTable({
                clickToSelect: false, //是否启用点击选中
                dblClickToEdit: false, //是否启用双击编辑
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'id',
                sortName: 'id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'id', title: __('Id')},
                        {field: 'admin_id', title: __('Admin_id')},
                        {field: 'user.username', title: __('User.username'), operate: 'LIKE'},
                        {field: 'name', title: __('Name'), operate: 'LIKE',editable:true},
                        {field: 'tags', title: __('Tags'), searchList: {"软件开发":__('软件开发'),"人工智能":__('人工智能'),"Web开发":__('Web开发'),"PHP开发":__('PHP开发')}, formatter: Table.api.formatter.flag},
                        {field: 'content', title: __('Content'), operate: 'LIKE',editable: {
                                type: 'textarea',
                                rows:3
                            }},
                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                        {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
            //添加数据
            Controller.api.bindevent();
        },
        recyclebin: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    'dragsort_url': ''
                }
            });

            var table = $("#table");

            // 初始化表格
            table.bootstrapTable({
                url: 'liuyan/recyclebin' + location.search,
                pk: 'id',
                sortName: 'id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'id', title: __('Id')},
                        {field: 'name', title: __('Name'), align: 'left'},
                        {
                            field: 'deletetime',
                            title: __('Deletetime'),
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            formatter: Table.api.formatter.datetime
                        },
                        {
                            field: 'operate',
                            width: '130px',
                            title: __('Operate'),
                            table: table,
                            events: Table.api.events.operate,
                            buttons: [
                                {
                                    name: 'Restore',
                                    text: __('Restore'),
                                    classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
                                    icon: 'fa fa-rotate-left',
                                    url: 'liuyan/restore',
                                    refresh: true
                                },
                                {
                                    name: 'Destroy',
                                    text: __('Destroy'),
                                    classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
                                    icon: 'fa fa-times',
                                    url: 'liuyan/destroy',
                                    refresh: true
                                }
                            ],
                            formatter: Table.api.formatter.operate
                        }
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);

        },

        add: function () {
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});

 相关链接:

  • 一张图解析FastAdmin中的表格列表的功能(第15条) 一张图解析FastAdmin中的表格列表的功能 - FastAdmin问答社区
  • 一张图解析FastAdmin中的弹出窗口的功能 一张图解析FastAdmin中的弹出窗口的功能 - FastAdmin问答社区

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

l2实时接口在手机APP上的使用方法介绍

考虑到很多人白天只能在手机上看行情,因此也重点介绍一下l2实时接口在手机APP上的使用方法,但是功能上PC才是最直观的。除了本文介绍的重点功能,Level2还有其他功能,具体使用方法可参考同花顺官方介绍。 利用“BBD”看当天大盘走…

R语言中的风险价值模型度量指标TVaR与VaR

99%的预期缺口[…]与99.6%的[…]风险值非常接近 受到“ 瑞士经验”报告中一句话的启发, 在99%置信水平[...]上的预期缺口[…]对应于大约99.6%至99.8%的风险价值 最近我们被客户要求撰写关于VaR的研究报告…

DPDK KNI 接口3

图1. kni结构图 从结构图中可以看到KNI需要内核模块的支持,即rte_kni.ko 当rte_kni模块加载时,创建/dev/kni设备节点(rte_kni模块创建kni杂项设备,文件系统节点/dev/kni需要手动或者通过udev机制创建),藉…

django.test.client的一些用法

对于文件(文本文件,或图片文件等等文件)从客户端上传到服务端,对于常规情况,也就是真实服务端和客户端,我们往往是需要给files这个参数的。 具体来说,就像这样: import requestshe…

万字总结Bootloader到内核的启动流程

Bootloader启动流程分析 Bootloader的启动过程可以分为单阶段、多阶段两种。通常多阶段的 Bootloader能提供更为复杂的功能以及更好的可移植性。从固态存储设备上启动的 Bootloader大多都是两阶段的启动过程。第一阶段使用汇编来实现,它完成一些依赖于CPU体系结构的…

【ML实验5】SVM(手写数字识别、核方法)

实验代码获取 github repo 山东大学机器学习课程资源索引 实验目的 实验内容 这里并不是通过 KTT 条件转化,而是对偶问题和原问题为强对偶关系,可以通过 KTT 条件进行化简。 令 xα[α1,α2,...,αn]Tx\alpha[\alpha_1,\alpha_2,...,\alpha_n]^Txα[α1…

极狐阿尔法S 全新HI版在上海率先推送城区NCA

继深圳之后,12月19日,极狐阿尔法S 全新HI版城区NCA(即城区智驾导航辅助功能)交付上海车主,将胜任城区复杂环境的“点到点”智驾融入更多用户的生活中。 此前,极狐阿尔法S 全新HI版已面向全国车主推送第二次…

Unreal Engine项目目录结构

目录 Engine 引擎源码文件 Games 项目工程文件 Visualizer VS编辑器配置文件 之前说的是工程目录结构,这次来说项目目录结构。 这里只是举了个例子,实际请根据不同的UE版本自行分析。 Engine 引擎源码文件 虚幻是开源的,我们可以直接在工…

05-Golang的基本数据类型

Golang的基本数据类型变量数据类型整型类型基本使用及细节基本介绍整数类型演示案例整型的使用细节浮点类型基本使用及细节基本介绍浮点型的分类案例演示使用细节字符类型基本使用及细节基本介绍案例演示字符类型本质探讨布尔类型的使用基本介绍字符串类型基本使用及细节基本介…

复变函数的积分

复变函数的积分化解成曲线积分的问题。 那化成第一类曲线积分还是第二类曲线积分?(高等数学 中有讲第一类曲线积分和第二类曲线积分)。 路径是有方向的,由起点和终点不同,路径有正向和负向。 复变函数的积分归结起来…

「学习方法」Scratch、Python、C++如何学才能融会贯通?

前言 相信很多家长朋友都发现一个问题:“编程教育正在以飞快的速度渗透于孩子们的培养体系中,这是为什么呢?原因很简单,这是因为通过专业的编程教育可以全面提升孩子的逻辑思维、创造力、动手能力等,让孩子们拥有更全…

线程池的使用

线程池 3大方法、7大参数、4种拒绝策略 好处:降低资源的消耗、提高响应的速度、方便管理、 线程池可以理解为银行业务 三大方法 第1大方法:单个线程 ExecutorService threadExecutor Executors.newSingleThreadExecutor(); 第2大方法&a…

c语言 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手

【题目名称】 下面代码的结果是&#xff1a;a #include <stdio.h> int i; int main() {i--; sizeof的返回值是无符号整型if (i > sizeof(i)) i四个字节所以是4。算出的结果类型是unsigned int无符号和有符号比较大小 会先把有符号整型转化为无符号。 -1放到内…

浏览器底部导航栏遮盖问题

欧吼&#xff0c;算是遇到两次了这种问题。每次解决完都觉得很无语&#x1f92e; 先看问题如图&#xff08;怕公司说我泄露他们啥信息&#xff0c;于是打了非常离谱且难看的马赛克&#x1f60a;&#xff09;&#xff1a; 本来要在底部导航栏上方展示底部信息。 电脑上看倒是好…

怎样设计产品帮助中心?以下几点不可忽视

在日常产品的使用过程中&#xff0c;我们经常会遇到一些关于产品的使用相关问题&#xff0c;此时我们会去翻阅产品的说明书&#xff0c;而对于线上的产品来说&#xff0c;一般都会搭配对应的帮助文档&#xff0c;帮助文档可以提供关于用户在使用过程中遇到的各种问题的解答&…

【再学Tensorflow2】TensorFlow2的建模流程:Titanic生存预测

TensorFlow2的建模流程1. 使用Tensorflow实现神经网络模型的一般流程2. Titanic生存预测问题2.1 数据准备2.2 定义模型2.3 训练模型2.4 模型评估2.5 使用模型2.6 保存模型参考资料在机器学习和深度学习领域&#xff0c;通常使用TensorFlow来实现机器学习模型&#xff0c;尤其常…

03Python算数运算符及变量基本使用

算数运算符 算数运算符 是完成基本的算术运算使用的符号&#xff0c;用来处理四则运算 运算符描述实例加10 20 30-减10 - 20 -10*乘10 * 20 200/除10 / 20 0.5//取整除返回除法的整数部分&#xff08;商&#xff09; 9 // 2 输出结果 4%取余数返回除法的余数 9 % 2 1*…

干货 | 云原生时代的灰度发布有几种“姿势”?

随着企业数字化转型进程不断发展&#xff0c;云原生时代的来临&#xff0c;企业应用越来越多&#xff0c;不得不面对应用程序升级的巨大挑战。传统的停机发布方式&#xff0c;新旧版本应用切换少则停机30分钟&#xff0c;多则停机10小时以上&#xff0c;愈发无法满足业务端的需…

java入门及环境配置

java三大版本 JavaSE: 标准版&#xff08;桌面程序&#xff0c;控制台开发........) JavaEE: 嵌入式开发&#xff08;手机&#xff0c;小家电.....&#xff09; JavaEE: E企业级开发&#xff08;web端&#xff0c;服务器开发...&#xff09; JDK、JRE、JVM: Java安装开发环境&a…

信息化时代企业数据防泄露工作该怎么做

场景描述 信息化时代发展迅速&#xff0c;数据防泄露一词也频繁的出现在我们身边。无论企业或政府单位&#xff0c;无纸化办公场景越来越多&#xff0c;数据泄露的时间也层出不穷。例如&#xff1a;世界最大职业中介网站Monster遭到黑客大规模攻击&#xff0c;黑客窃取在网站注…