bird-grid是bird-front前端框架中实现的全自动数据表格组件。组件内部处理数据加载、分页、排序、查询、新增、编辑等一系列操作。让业务表格的开发从繁复的增删查改中脱离出来,编码简洁却又功能强大。

功能特性

  • 丰富的列类型支持,包括文本、文本域、数字、bool、下拉选择器、级联选择器、富文本、图片、日期、时间等类型。
  • 新增、编辑零代码,支持自定义的编辑配置(提示、是否必填、正则验证等)。
  • 查询、排序、分页零代码。每列均可查询、排序。
  • 自定义操作按钮,默认提供新增、修改、删除的操作按钮。
  • 组件内部支持按钮级权限控制。

示例代码

render() {
let gridOption = {
url: {
read: "/sys/dic/getPaged",
add: "/sys/dic/save",
edit: "/sys/dic/save",
delete: "/sys/dic/delete"
},
columns: [
{title: "编号", data: "id", type: "number",},
{title: "字典名称", data: "name", type: "text", editor: {}, query: true},
{title: "Key", data: "key", type: "text", editor: {}, query: true},
{title: "默认业务码", data: "defaultCode", type: "text", editor: {}, query: true},
{title: "创建时间",data: "createTime",type: "datetime",query: true},
{title: "操作选项", type: "command", actions: []}
]
};
return (<BirdGrid gridOption={gridOption}/>)
}

效果图

API

参数  说明 类型 默认值
url 表格相关服务api配置 object {}
permission 权限相关配置 object/string {}
checkable 是否添加Checkbox选择框 bool false
columns  表格列配置 array []
pageSize 每页数据条数 number 15
pageSizeOptions 每页数量选项数组 array ["10", "15", "20", "30", "50", "100"]
primaryKey 标识列 string 第一列的data参数
sortField 排序字段:'asc'、'desc' string 'desc'
actions 右上角操作按钮集合 array [新增]
customRules 自定义筛选条件 array []

url相关API

参数 说明 类型 默认值
read 数据读取服务端url string ''
add 数据新增url string ''
edit 数据更新url string ''
delete 数据删除url string ''

注:所有接口均使用POST提交,read为必填项,其他配置均选填,不配置则不显示相关的操作按钮。

表格请求json格式:

{
"filters": [
{
"field": "string",
"operate": "string",
"value": "string"
}
],
"pageIndex": 0,
"pageSize": 0,
"sortDirection": 0,
"sortField": "string"
}

read接口返回json格式:

{
"items": [],
"totalCount": "10"
}

items中对象的字段对应表格中的列。

permission相关API

参数 说明 类型 默认值
add 新增权限名称 string ''
edit 编辑权限名称 string ''
delete 删除权限名称 string ''

add/edit/delete各自对应新增/编辑/删除的权限名称,不配置则表示不验证对应的权限。
permission支持字符串格式,表格初始化时会自动为其添加:add/:edit/:delete权限名。

columns相关API

参数 说明 类型 默认值
title 列名称 string  
data 对应数据的字段名 string  
type 列类型。text、textarea、richtext、number、switch、dropdown、cascader、img、date、datetime、hide、command string  
query 列是否可以查询 bool false
 sortDisable  列是否禁止排序 bool false
hide 列是否隐藏 bool false
render 自定义列渲染方法 function(v,d)  
source 当列类型为dropdown(下拉选择)或cascader(级联选择)时的数据源 object  
actions 当列类型为command时的操作按钮数组 array [编辑、删除]
editor 列的编辑设置 object  

说明:

  • render(v,d){}方法第一个参数表示当前行当前列的数据,第二个参数表示整行的数据。
  • scource:{data:[],url:'',key:''}。当类型为`dropdown`时,其中data、url、key分别对应`bird-selector`中的data、url、dicKey。当类型为`cascader`时,data、url分别对应`bird-cascader`中的data、url。

editor相关API

参数 说明 类型 默认值
ep 编辑模式。'default','hide','disabled' string 'default'
ap 新增模式。'default','hide','disabled' string  'default'
tips 提示信息 string ''
isRequired 是否必填 bool false
validateRegular 验证的正则表达式 object  
step number类型下的步长 number 1
precision number类型的精度(小数的位数) number 0

actions相关API

参数 说明 类型 默认值
name 按钮名称 string  
onClick 点击事件 function(data) (data)=>{}
nameFormat 按钮名称渲染方法,根据行数据渲染不同的按钮名 function(data)  
hideFunc 根据行数据判断按钮是否显示方法 function(data)  
permissionName 所需权限名 string  

说明:

  • 本表格所有方法接收的data为行数据(右上角按钮的onClick事件除外);
  • nameFormat,只对行内action有效,优先级高于name;
  • hideFunc,只对行内action有效,存在且hideFunc(data)为true时,该按钮隐藏;
  • permissionName实现按钮级权限控制;
  • onClick。右上角按钮:data表示表格选中的值;行内按钮:data表示行数据;

customRules相关API

参数 说明 类型 默认值
field 列字段名称 string  
value 值 string  

说明:
customRules是在表格初始化之前为表格添加自定义查询条件,可用于url上不同参数对于表格数据的控制。

项目地址

组件源码在bird-front项目中有完整实现,项目地址:https://github.com/liuxx001/bird-front

【bird-front】全自动数据表格组件bird-grid的更多相关文章

  1. [React]全自动数据表格组件——BodeGrid

    表格是在后台管理系统中用的最频繁的组件之一,相关的功能有数据的新增和编辑.查询.排序.分页.自定义显示以及一些操作按钮.我们逐一深入进行探讨以及介绍我的设计思路:   新增和编辑 想想我们最开始写新增 ...

  2. 全自动数据表格JQuery版

    由于最近工作上有些变动,已经快一个月没有写博客了.上一篇博客[React]全自动数据表格组件——BodeGrid介绍了全自动数据表格的设计思路以及分享了一个react.js的实现.但是现实情况中为了节 ...

  3. DataGrid( 数据表格) 组件[9]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  4. DataGrid( 数据表格) 组件[8]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  5. DataGrid( 数据表格) 组件[7]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  6. DataGrid( 数据表格) 组件[6]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  7. DataGrid( 数据表格) 组件[5]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  8. DataGrid( 数据表格) 组件[4]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  9. DataGrid( 数据表格) 组件[3]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

随机推荐

  1. 【luogu P1613】跑路

    https://www.luogu.org/problem/show?pid=1613 看到2k就能想到倍增.用一个数组avai[i][j][k]表示点i与点j是否存在长2k的路径,则可以递推出ava ...

  2. 逐步搭建Lamp环境之Linux的运行模式

    首先先来看几个概念,分别是:单用户.单任务.多用户.多任务 单用户: 是指操作系统一般只能由一个人同时进行登录 单任务: 是指操作系统只能同时处理一个任务 多用户: 是指操作系统可以允许由多个用户同时 ...

  3. 翻煎饼 Stacks of Flapjacks

    题意:本题意为煎饼排序,大的放在上面,小的放在下面(此题输入是从上到下输入的),为煎饼排序是通过一系列的"翻转"动作来完成的.翻转动作就是将一个小铲插到一叠煎饼中的某两个煎饼之间, ...

  4. JavaScript中对日期格式化的新想法.

    其实我们对与日期的显示,也就那么几种,不需要每次都传格式化字符串. 只要告诉函数你想要什么结果就好了,以下是在ios的JavaScript中我新写的日期格式化函数: /** 格式化日期 @param ...

  5. Objective-C基础语法高速入门

    Objective-C是Mac软件开发领域最基本的开发语言,假如我们对C语言已经非常熟悉或者具有面向对象语言的基础.对于我们学习Objective-C将会非常实用. 方法调用(Calling Meth ...

  6. F02 金融学第二定律 资金的积聚

    美国南北战争,北方取胜的关键在于发行了债券,从而积聚了资金,提升了北方军队战斗力. 纽约的逆袭,得益于伊利运河的修建,而伊利运河的建造需要的资金,全靠债券发行积聚的资金. 聚积起来的资金,往往决定了重 ...

  7. Java中流-----个人总结心得

    流 字符流 字节流 缓冲区 数据流---用于传输数据.IO流---Input/Output流.数据从外部流向程序---输入流:数据从程序流向外部的时候--输出流.读取一个文件---数据从文件流向程序- ...

  8. python self

    Python要self的理由 Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数(self),但在调用这个方法的时候不必为这个参数赋值(显胜于隐的引发). Pyt ...

  9. 采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)

    前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. 今天我们主要来介绍一下,如何使用Opserver监控我们的服务器状态. Opserver的功能其实很强大,他可以 ...

  10. 智能合约语言 Solidity 教程系列6 - 结构体与映射

    写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 本系列文章一部分是参考Solidity官方文档(当前最新版 ...