当前位置:首页 > 编程技术 > 正文内容

一张图解析 FastAdmin 中的表格列表

yc8881年前 (2022-12-10)编程技术677

前言


该图片取自 fastadmin 问答区: https://ask.fastadmin.net/article/323.html

1. 菜单名称和描述


默认生成的 CRUD

当一键生成 CRUD 时, fastadmin 会自动创建表的控制器, 并将表注释作为控制器类的文档注释存放在文件中

php think crud -t test

一键生成菜单时,将自动取控制器类的文档注释作为菜单的名称

在后台 权限管理-菜单规则 中修改菜单的备注,填写备注后菜单名称和描述区域将自动显示

php think menu -c test

2. TAB 过滤选项卡


在一键生成 CRUD 时,表中如果存在 status 字段且为 enum 类型,则会生成相应的 TAB 过滤选项卡

php think crud -t test

如果需要生成其它字段的过滤选项卡,则可以在一键生成 CRUD时使用 --headingfilterfield=字段名

php think crud -t test --headingfilterfield=state

3. 通用搜索


通用搜索表单内容是根据 table.bootstrapTable 配置的 columns 属性决定的。如果要删除某一列的搜索,在 js 中配置 operate:false 即可,operate 用于查询时的操作符,默认为 =,修改为 false 表示禁用该字段的通用搜索

table.bootstrapTable({    // 关闭通用搜索    commonSearch: false,    // 通用搜索表单默认显示    searchFormVisible: true,    columns: [[        // operate: false 字段列不参与通用搜索        { field: 'img', title: '图片', operate: false },        // searchList 将通用搜索中的状态修改为下拉选择框        {            field: 'status', title: '状态',            searchList: { 1: __('Open'), 0: __('Close') }        }    ]]})

4. 工具栏按钮


一键生成菜单时会自动生成 添加、编辑、删除、更多按钮的 HTML,这些按钮会根据用户是否拥有的权限来决定显示或隐藏

我们可在控制器对应的视图文件 index.html 中任意添加、删除、修改对应的按钮,这几个自动生成的按钮都通过拥有的 class 属性来绑定相关的事件,例如添加按钮拥有 btn-add 这个 class,框架已经占有的 class 如下所示:

btn-add: 添加按钮btn-edit: 编辑按钮btn-del: 删除按钮btn-import: 导入按钮btn-more: 更多按钮btn-multi: 指操作使用btn-disabled: 添加此 class 后则只有在列表有选中数据时按钮才会变为可使用

如果想要点击 添加按钮 默认全屏,那么给添加按钮加上 data-area='["100%","100%"] 属性即可

<a href="javascript:;" class="btn btn-success btn-add" data-area='["100%","100%"]'>    <i class="fa fa-plus"></i> {:__('Add')}</a>

如果想要自定义按钮并添加事件,我们需要在视图中添加相应的 HTML 代码,然后在对应的 JS 文件中添加按钮的执行事件

增加自定义按钮后应在 权限管理-菜单规则 中添加该按钮的权限

<a href="javascript:;" class="btn btn-success btn-test">    <i class="fa fa-plus"></i>导出</a>
var Controller = {    // ...}$('.btn-test').click(function () {    console.log('btn-test 被点击了..');})

5. 动态渲染统计信息


有些时候需要在页面额外显示服务端传回的动态数据,比如: 数据合计。修改 index.html 视图 (一般放在工具栏)

<a href="javascript:;" class="btn btn-default" style="font-size:14px;color:dodgerblue;">    <i class="fa fa-dollar"></i>    <span class="extend">        金额:<span id="money">0</span>        单价:<span id="price">0</span>    </span></a>

然后在控制器对应的 JS 中的 index 方法中添加以下的 JS,data 是表格数据接口的返回值

// 当表格数据加载完成时table.on('load-success.bs.table', function (e, data) {    // 这里可以获取从服务端获取的JSON数据    console.log(data);    // 这里我们手动设置底部的值    $("#money").text(data.extend.money);    $("#price").text(data.extend.price);});

6. 快速搜索


快速搜索查询条件: where 字段 like '%关键词%'

快速搜索在键入关键词时将实时从服务端搜索数据,当数据表数据较大时,建议关闭此功能(在表格初始化时关闭)

默认只会搜索主键id这个字段,如果需要搜索其它字段,则需要在控制器中定义 $searchFields 性指定搜索字段

// 自定义快速搜索文本框中的 placeholder, 必须在 table.bootstrapTable() 前定义$.fn.bootstrapTable.locales[Table.defaults.locale]['formatSearch'] = function () {    return "自定义placeholder文本"};// 表格初始化table.bootstrapTable({    // 关闭快速搜索    search: false,})

如果使用了关联查询,此时快速搜索默认的根据 id 查询会报错

// 关联查询with(["admin"])// 快速搜索报错SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous

定义属性指定查找的字段,字段前面带上表名前缀即可

// 快速搜索时执行查找的字段(user是当前模型)protected $searchFields = ['user.id', 'admin.username'];

7. 浏览模式、显示隐藏列、导出、通用搜索


浏览模式可以切换卡片视图和表格视图两种模式,关闭此功能使用: showToggle: false

显示隐藏列可以快速切换字段列的显示和隐藏,关闭此功能使用: showColumns: false

导出按钮默认将导出整个表的所有行,关闭导出功能使用: showExport: false

通用搜索指表格上方的搜索,关闭此功能使用: commonSearch: false

table.bootstrapTable({    // 关闭浏览模式切换    showToggle: false,    // 关闭自定义显示列切换    showColumns: false,    // 关闭导出功能    showExport: false,    // basic 导出当前页数据 selected 导出选中的行    exportDataType: 'basic',    // 关闭通用搜索功能    commonSearch: false,    columns: [[        // visible: false 字段列默认隐藏        <span cla

本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10202.html

分享给朋友:

“一张图解析 FastAdmin 中的表格列表” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...