enianTable是整合对接后台数据库快捷查询及展示数据的模块。分为三个子模块 table、form、search 分别是表格(数据展示)、表单(用于新建或修改)、搜索(查询)
2019-4-5
版本:1.2.2019-4-5
1.修复搜索功能下拉选择框项标题错误的bug
2019-01-23
版本:1.1.2019-1-23 10:51:40
1.增加默认配置数据,switch,checkbox,input,time,这些类型的typeData没有特殊需求可以不用填写
2019-01-22
版本:1.0.2019-1-22 21:18:05
修复table模块渲染自定义两个插件相同时,被覆盖现象,方法:时间戳增加循环数
2019-01-21
1.增加enianTable.search查询模块代码
2.新增time数据格式,支持的模块form、search 查看详情
2019-01-06
1.enianTable.table,增加返回值,使用返回值可以监听原生表格事件
| 参数 | 类型 | 说明 |
|---|---|---|
| elem | str | [必] DOM节点(#id .class div) |
| url | str | [必] 请求地址 |
| data | arr | [必] 字段数组 |
| config | obj | 表格基本配置,分页等信息 |
| before | func | 渲染表头前回调,可以在此增加修改字段数据,或行工具,需要返回新的字段数组,否则按之前的回调数据进行渲染 |
| checkbox | function | 复选框和开关被点击 |
| toolEvent | function | 包括按钮被点击 table.on(‘tool(test),func) |
<div id="demo"></div>
var tableObj = enianTable.table({elem:"#demo1",url:"{:url('',['t'=>1])}",data:fieldData,config:{page:true//详见layui文档 数据表格 - 基本参数},before:function(datas){datas.push({field:'last_time', width:80, title: 'ggg', sort: true})console.log(datas)return datas;},checkbox:function(field,obj){layer.tips(field.value + ' ' + field.name + ':'+ obj.elem.checked, obj.othis);console.log(field,obj)},toolEvent:function(obj){console.log(obj)}})//监听原生默认事件-edit 可换成其他原生支持事件,(如:tool;row;sort等其他原生表格事件)[19-1-6 更新]tableObj.on('edit',function(obj){console.log(obj.value) //得到修改后的值console.log(obj.data) //得到所在行所有键值console.log(obj.field) //得到字段})//获取模块生成的表格id [19-1-8 更新]console.log(tableObj.id);//输出:table1546781607263//然后可以使用原生表格方法监听各种事件table.on('edit('+tableObj.getId+')', function(obj) {//...});
| 参数 | 类型 | 说明 |
|---|---|---|
| elem | str | [必] DOM节点(#id .class div) |
| data | arr | [必] 字段数组 |
| submitBtn | str | 按钮标题(默:立即提交) |
| layer | str/obj/bool | 弹窗展示(默:false) str - layer标题 true -弹窗 + 默认标题(默:信息) obj - layer.open参数 |
| val | obj | 表单赋值 同 form.val(elem,obj)查看相关文档 |
| submit | func | 表单提交回调 |
| layerSuccess | func | (仅当layer属性为str和true时有效)弹窗表单加载完成回调,一个参数obj [2019-1-15更新] |
enianTable.form({elem:"#test",data:fieldData,submitBtn:'保存',layer:"我是标题"//可以是以下obj数据// ,layer:{// type: 1,// //skin: 'layui-layer-rim', //加上边框// area: ['600px', '400px'], //宽高// },val:{password:'966223'},submit:function(data){layer.alert(JSON.stringify(data.field), {title: '最终的提交信息'})},layerSuccess:function(obj){console.log(obj);//obj内容有elem和index}})
enianTable.search 的使用方式可能和以上两个插件不一样,后续有时间会进行更新改版,这也是一直没有发布的原因。search插件没有那么多繁琐的配置参数
var ets = enianTable.search(fieldData);//field,字段数据//打开搜索弹窗//如果缓存有数据则读取缓存ets.open();//打开搜索窗,不读取缓存ets.render();//打开搜索窗,渲染json数据打开搜索ets.render_json(jsonData);//数据示例var jsonData = {"1":{"field":"status","value":"0"},"2":{"field":"username","value":"三时三餐","exp":"like"},"3":{"value":"此v","field":"username","exp":"eq"}}//设定layer的宽高ets.layer_area(['500px','400px']);//监听搜索按钮点击ets.submit(function(d){console.log(d);})//更改添加查询表达式符号var expression={'lc':'测试','eq':'精确','neq':'不等于'};//ets.exp(expression);ets.exp(expression,false);//清空默认//获取当前所有(缓存)条件,返回jsonvar data = ets.getSearchData();console.log(data);
[{"tableHead": {"field": "appid","width": 80,"title": "Appid","sort": true},"type": "noInput","typeData": {"msg": "输入数字"}},{"tableHead": {"field": "order","title": "排序","sort": true,"width": 80,"edit": "text"},"type": "input","typeData": {"msg": "请输入数字"}},{"tableHead": {"field": "name","title": "名称","edit": "text"},"type": "input","typeData": {"msg": "请输入"}},{"tableHead": {"field": "type","width": 100,"title": "类型"},"type": "hide","typeData": {"msg": "禁止编辑"}},{"tableHead": {"field": "note","title": "备注","edit": "text"},"type": "input"},{"tableHead": {"field": "note2","width": 80,"title": "备注2","edit": "text"},"type": "input"},{"tableHead": {"width": 130,"align": "center","fixed": "right","toolbar": "#applist_s_tool"},"type": false}]
| 参数 | 类型 | 必须 | 解释 |
|---|---|---|---|
| tableHead | obj | 是 | 原表头结构,也就是table中cols单条数据查看相关文档 |
| type | str/bool | 是 | 字段类型 |
| typeData | str/obj | 是 | 字段类型的数据 |
| notRender | arr | [2019-1-22新增]单独设置某个字段不进行渲染格式为数组可选值(form,table,search) 示例:['form','search']在form模块和search不渲染该字段如果数组中三个模块都填入,则等同于 type 参数为 hide |
type 所支持的数据类型| 类型 | 解释 | 效果展示 | 数据 |
|---|---|---|---|
| switch | 开关 | 表格/表单 | 查看数据详情 |
| checkbox | 复选框 | 表格/表单 | 查看数据详情 |
| select | 下拉选择框 | 表单 | 查看数据详情 |
| button | 按钮类型 | 表格 | 查看数据详情 |
| input | 普通编辑框 | 表单 | 查看数据详情 |
| noInput | 禁止输入框 | 表单 | 查看数据详情 |
| bigInput | 大编辑框 | 表单 | 查看数据详情 |
| between | 区间 | 搜索 | 查看数据详情 |
| time | 时间 | 表单/搜索 | 查看数据详情[2019-1-21新增] |
| hide | 隐藏类型 | 全部屏蔽 | 无数据 |
注意:hide类型,会自动隐藏数据表格中的字段隐藏,需要 layui 2.4.0+版本
,type:"switch",typeData:{idName:'id',on:{"data":1,"name":"开"},off:{"data":0,"name":"关"}}//typeData参数说明:// idName id字段名(也就是自增字段名),默认:'id',在监听数据时返回在field.value 用于更改数据提供的值// on 开启,name 也就是复选框的标题,data 数据// off 关闭。同上
,type:"checkbox",typeData:{idName:'id',on:{"data":1,"name":"复选框"},off:{"data":0,}}//typeData参数说明:// idName id字段名(也就是自增字段名),默认:'id',在监听数据时返回在field.value 用于更改数据提供的值// on 开启,name 也就是复选框的标题,data 数据// off 关闭。name 可省略,data 同上,
//下拉选择,type:"select",typeData:[{'value':'shanghai','title':'上海'},{'value':'shanghai','title':'上海'},{'value':'shanghai','title':'上海'},{'value':'shanghai','title':'上海'}//...]
//编辑框,type:"input",typeData:{//提示信息"msg":"请输入不超过5个字的内容"}
//大编辑框,type:"bigInput",typeData:{//提示信息"msg":"请输入不超过5个字的内容"}
//禁止编辑框,type:"noInput",typeData:{//提示信息"msg":"请输入不超过5个字的内容"}
//按钮类型,type:"button",typeData:[{"title":"标题",value:"值","url":"##","event":"点击标记","skin":"样式"},{"title":"标题",value:"值","url":"##","event":"点击标记","skin":"样式"},{"title":"标题",value:"值","url":"##","event":"点击标记","skin":"样式"}//更多...]
如果url为空,或者为“##”,则继续执行 event 。如果url不为空或“##”,当监听此按钮事件,原有监听 table.on(‘tool(name)’) 将会失效
//时间,type:"time",typeData:{msg:'表单提示信息',msg1:'提示框1',msg2:'提示框2'}
//区间,type:"between",typeData:{msg1:'提示框1',msg2:'提示框2'}