layui
phpstorm
为满足需要,我们需要有删除,下架,发布等操作按钮,批量删除,批量下架,和批量发布按钮,所以最总页面大概是如图所示。
展示页面代码(部分链接已打码),这里我们采用layui的方法渲染table,所以html部分只有table和批量操作两大快。剩下是table表头cols的配置及templet模板。在templet中要获取当前行的数据需要是这样的d.xxx,按照layui的是说是templet:function(d){}这样的所以它只能是用过d去调用相应字段,换其它的换报错,当然你也可以自定义templet的funciton然后自定义返回值。
layui表格单行删除功能制作,根据前面我们已经完成单一操作功能的模板templet。这是模板中的删除按钮,所以只需以下步骤来完成删除1、监听table行工具事情table.on('tool(acticle)'),这里注意tool是事情名,可以理解为lay的规定名称,acticle是绑定在table是的lay-filter的值这个是我们自己定义的可以更改2、获取事件名,也就是这里table.on('tool(acticle)',function(obj)){}obj的even的值,判断是否与我们删除button上的lay-even相同,相同则为删除事件。3、执行删除操作,obj.del(),obj代表的是这当前行对象,细节看图片。这里我们是执行ajax请求然后删除前端相应节点,并提示相关操作信息,可以看到图中当请求成功后,删除前端节点然后提示消息。
layui表格单行上架与发布功能制作,在templet中的代码是这样{{# if (d.toolstatus==1) {}} {{#}else{}} {{# }}}这个语法是lay模板语法,首先表格加载的时候我们是需要判断文章是发布状态还是下架状态,然后根据状态显示相应操作。1、由于前面已经添加来监听事件所以这里就不用在添加,只需在监听事件中增加判断。2、执行lay更新操作update()函数,这个用来更新当前行的数据,同样是获取obj对象然后执行obj.update({'字段名':'这里是新的值'}),如图中,我们是更新status,toolstatus两个字段,它们分别对应状态和操作列表。我们点击第一行的发布按钮,可以看到发布成功后变成状态变成已发布,操作变成下架按钮。
同意的编辑也是通过update来完成的,如果需要在同一个页面完成编辑,可以调用弹窗,然后进行无刷新编辑,我们这里通过获取当前行的数据id然后跳转到编辑页面进行编辑的,因为内容过多,在同一个页面编辑的话就页面太繁琐了
这里我们有批量删除,批量下架和批量发布,三个批量操作都可以触发click事件来完成。绑定click事件,然后拿到相关勾选的数据,删除有服务端完成,删除后重构table就可以了
首先绑定click事件,我们定义的三个id绑定click事件。
当触发click事件时,执行以下操作:1、获取需要执行的数据,就是勾选了那些行,这里有一个好处就是lay为我们提供了获取勾选数据的方法checkSatus(),2、获取当前操作执行的url,就是三个操作按钮上的data-href属性值3、筛选数据的id,传送给服务端,执行请求然后通过reload重载table这里说一下这个重载表格,这里有一个好处就是我们不用去刷新整个页面,减少了页面的请求时间,这个reload有两个重载方式,一个是获取表格实例然后调用reload,一个是执行用table调用reload重载,但注意前者仅限与方法重载。我们这用的是后者
主要涉及到了:1、表格的布局,使用方法渲染,自动构建table2、layui表格数据单行操作,删除,更改状态,编辑3、layui表格数据批量删除,批量更改状态,4、数据表格的重载简绍
如果有其他疑问可以在底部“我有疑问”向我提问