1. 需求:点击查看更多,展示该类别 所有数据,并分页

2. 参考文档:

(1)https://www.jianshu.com/p/40da11ebae66

(2) https://blog.csdn.net/coderbruis/article/details/82424862

(3)https://blog.csdn.net/qq_43303896/article/details/105820439

(4)https://blog.csdn.net/weixin_43861049/article/details/104977884?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight

3. 效果图:

4. 前端代码:

<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns="http://www.w3.org/1999/html"><head th:include="layout/head ::com-style"></head><body class="body-iframe">

<!-- 表单模块 -->
<div class="layui-card shadow">
<div class="layui-card-header">
查询表单
</div>
<div class="layui-card-body layui-fluid" id="queryForm">
<form class="layui-form">
<div class="layui-row">
<div class="layui-form-item">
<!-- 类型 S-->
<div class="layui-inline">
<label class="layui-form-label">类型</label>
<div class="layui-input-inline" style="width: 280px">
<select name="type" id="selectKey">
<option value="">请选择</option>
<option value="1">欢迎页</option>
<option value="2">首页浮窗</option>
<option value="3">好物推荐</option>
<option value="4">身体报告页底部</option>
<option value="5">知识页头部</option>
<option value="6">首页弹窗</option>
<option value="7">服务页头部</option>
</select>
</div>
</div>
<div class="layui-inline" style="padding-top: 20px;padding-left: 300px">
<label class="layui-form-label">机构</label>
<div class="layui-input-inline" style="width: 280px">
<input type="text" placeholder="搜索" value="" class="layui-input" name="institutionName">
<i class="layui-edge"></i>
</div>
</div>
<!-- 机构 E-->
</div>
</div>
</form>
<!-- <div class="layui-form-item layui-row" style="padding-left: 450px;padding-bottom: 20px">-->
<div class="layui-row" style="padding-left: 492px;padding-bottom: 20px">
<button class="layui-btn layui-btn-sm" data-type="reload">立即查询</button>
<button class="layui-btn layui-btn-sm layui-btn-primary" type="reset" id="resetTab">
重置
</button>
</div>
<!-- </div>-->
</div>
</div>
<!-- 表格模块 -->
<div class="layui-card shadow">
<div class="layui-card-header">表格</div>
<div class="layui-card-body">
<!-- 按钮栏 -->
<div class="layui-btnbar">
<button class="layui-btn layui-btn-sm">
<i class="layui-icon"></i>添加
</button>
</div>
<!-- 数据表格实例 -->
<table class="layui-table" id="tableId" lay-filter="tableFilter"
lay-data="{method: 'post', page: true, url:'/appbanner/queryListSingle/'}">
<thead>
<tr>
<th lay-data="{field:'id', width:60, sort: true, fixed: true,templet: '#titleTpl'}">ID</th>
<th lay-data="{field:'typeDesc'}">类型</th>
<th lay-data="{field:'institutionName',width:108, fixed: false}">所属机构</th>
<th lay-data="{field:'url'}">跳转地址</th>
<th lay-data="{field:'validDesc'}">是否有效</th>
<th lay-data="{field:'typeDesc'}">标签</th>
<th lay-data="{field:'startTime'}">开始时间</th>
<th lay-data="{field:'endTime'}">结束时间</th>
<th lay-data="{field:'showTime'}">展示时间</th>
<th lay-data="{field:'modifyTime'}">更新时间</th>
<th lay-data="{fixed: 'right', width:200, align:'center', toolbar: '#demoToolbar'}">操作</th>
</tr>
</thead>
</table>
</div>
</div> <!--列表操作按钮-->
<script type="text/html" id="demoToolbar">
<a class="layui-btn layui-btn-xs" lay-event="show_more">查看更多</a>
</script>
<!--页面方法-->
<script>
layui.use('table', function () {
var table = layui.table;
var $ = layui.$, active = {
reload: function () {
from = $("#queryForm");
var data = getFormData(from);
//执行重载
table.reload('tableId', {
page: {
curr: 1 //重新从第 1 页开始
}
, where: data
});
},
}; // 添加查询按钮事件
$('.layui-card-body .layui-btn').on('click', function () {
var type = $(this).data('type');
if (type === 'reload') {
active[type] ? active[type].call(this) : '';
} else {
from = $("#queryForm");
resetFormData(from);
}
});
// 添加新增按钮事件
$('.layui-btnbar .layui-btn').on('click', function () {
layer.open({
type: 2,
title: '新增',
shadeClose: true,
area: ['85%', '85%'],
fixed: false,
maxmin: true,
content: "/abc/detail",
btn: ['保存', '取消'],
yes: function (index) {
// 保存表单
var body = layer.getChildFrame('body', index);
var from = body.find('#detailForm');
saveForm(from, index, '', '/appbanner/save');
},
btn1: function (index) {
layer.close(index);
}
});
}); //监听工具条 -- 弹窗代码 S
table.on('tool(tableFilter)', function (obj) {
var data = obj.data;
if (obj.event === 'show_more') {
// 查看更多
var type = data.type;
layer.open({
type: 1,
area: ['95%', '95%'], //宽高
btn: ["确定"],
btn1: function (index) {
layer.close(index);
window.location.reload();
},
maxmin: false,
content: '<div><table id="openProductBox" lay-filter="openProductTable"></table></div>', //先定义一个数据表格的div框
success: function () {
table.render({
elem: '#openProductBox',
type: 'get',
url: "/abc/queryList?type=" + type,
height: 'full-130'
, page: true //使用分页
, limits: [10, 20, 30] //动态设置每页显示数据的条数
, pageSize: 10, //默认每页多少条
cols: [[ //表头
{field: 'id', title: 'ID', width: '6%', align: 'center'},
{field: 'institutionName', title: '所属机构', sort: true, align: 'center'},
{field: 'url', title: '跳转地址', sort: true, align: 'center'},
{field: 'validDesc', title: '是否有效', width: '8%', align: 'center'},
{field: 'typeDesc', title: '标签', width: '11%', align: 'center'},
{field: 'startTime', title: '开始时间', sort: true, align: 'center'},
{field: 'showTime', title: '展示时间', width: '11%', align: 'center'},
{field: 'modifyTime', title: '更新时间', sort: true, align: 'center'},
{
title: '操作',
minWidth: 135,
templet: '#toolbar',
sort: true,
align: "center"
}
]]
})
}
}) }
});
// 弹窗代码 E
//监听弹框内部 table 工具条
table.on('tool(openProductTable)', function (obj) {
var data = obj.data;
if (obj.event === 'del') {
layer.confirm('真的删除行么', function (index) {
$.ajax({
url: '/abc/deleteById',
type: 'post',
data: {'id': data.id},
dataType: "json",
success: function (data) {
layer.close(index);
if (data.code == 0) {
$(".layui-laypage-btn")[0].click();
layer.msg("删除成功", {icon: 6});
} else {
layer.msg("删除失败", {icon: 5});
}
}
})
});
} else if (obj.event === 'edit') {
layer.open({
type: 2,
id: 'editDiv',
title: '编辑',
shadeClose: true,
area: ['90%', '90%'],
fixed: false,
maxmin: true,
content: "/abc/detail?id=" + data.id,
btn: ['保存', '取消'],
yes: function (index) {
//保存表单
var body = layer.getChildFrame('body', index);
var from = body.find('#detailForm');
saveForm(from, index, data.id, '/appbanner/save')
},
btn1: function (index) {
layer.close(index);
}
});
}
}); // 重置 select 框
$('#resetTab').on('click', function () {
var form = layui.form;
$("#selectKey").val("");
$("#selectKey1").val("");
form.render();
});
});

5. 后端代码(隐私起见,内部包 已删除,接口前缀已改):

package com.abc.controller;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List; @Controller
@RequestMapping("/abc")
public class AppBannerController {
@Resource
private AppBannerService appBannerService; /**
* 根据条件分页查询
*
* @param query
* @return
*/
@RequestMapping(value = "/queryList")
@ResponseBody
public WebResult queryList(AppBannerQuery query) {
WebResult webResult = new WebResult();
PageInfo<AppBannerSo> pageInfo = appBannerService.queryPageInfo(query);
List<AppBannerVo> vos = new ArrayList<>();
for (AppBannerSo so : pageInfo.getList()) {
AppBannerVo vo = new AppBannerVo();
BeanUtils.copyProperties(so, vo);
vo.setStartTime(DateUtils.format(so.getStartTime()));
vo.setEndTime(DateUtils.format(so.getEndTime()));
vo.setModifyTime(DateUtils.format(so.getModifyTime()));
vo.setTypeDesc(BannerTypeEnum.getDescByKey(so.getType()));
vo.setValidDesc(ValidEnum.getDescByKey(so.getValid()));
vo.setPixel(BannerTypeEnum.getPixelByKey(so.getType()));
vo.setShowLogoDesc(ShowLogoEnum.getDescByKey(so.getShowLogo()));
vos.add(vo);
}
// 按 id 正序
vos.sort(Comparator.comparingLong(AppBannerVo::getId)); webResult.setCode(WebResultCodeEnum.SUCCEED.getKey());
webResult.setCount(pageInfo.getTotal());
webResult.setData(vos);
return webResult;
} /**
* 根据条件分页查询 - 单类型展示
*
* @param query
* @return
*/
@RequestMapping(value = "/queryListSingle")
@ResponseBody
public WebResult queryListSingle(AppBannerQuery query) {
WebResult webResult = new WebResult();
PageInfo<AppBannerSo> pageInfo = appBannerService.queryListSingle(query);
List<AppBannerVo> vos = new ArrayList<>();
for (AppBannerSo so : pageInfo.getList()) {
AppBannerVo vo = new AppBannerVo();
BeanUtils.copyProperties(so, vo);
vo.setStartTime(DateUtils.format(so.getStartTime()));
vo.setEndTime(DateUtils.format(so.getEndTime()));
vo.setModifyTime(DateUtils.format(so.getModifyTime()));
vo.setTypeDesc(BannerTypeEnum.getDescByKey(so.getType()));
vo.setValidDesc(ValidEnum.getDescByKey(so.getValid()));
vo.setPixel(BannerTypeEnum.getPixelByKey(so.getType()));
vo.setShowLogoDesc(ShowLogoEnum.getDescByKey(so.getShowLogo()));
vos.add(vo);
}
webResult.setCode(WebResultCodeEnum.SUCCEED.getKey());
webResult.setCount(pageInfo.getTotal());
webResult.setData(vos);
return webResult;
}
}

layui 弹窗中 分页展示table的更多相关文章

  1. Java Web中将oracle的数据库内容以表格形式展现到页面中(分页展示)

    分页SQL语句: ----分页显示 select * from (select rownum as r,t.* from () ; 查询的结果如下: 这个SQL,使用了三层嵌套的查询方式: 1)最内层 ...

  2. MySQL+Service+Servlet+Jsp实现Table表格分页展示数据

    下面以一个示例讲解如何使用MySQL+Service+Servlet+Jsp实现Table表格分页展示数据: eg:请假管理系统 要求如下: 一.打开首页页面, 访问查询请假记录的 servlet , ...

  3. html中使用js+table 实现分页

    本文在html中利用js+table实现分页.主要思想是先对table中的所有数据隐藏,然后通过当前页面(currPageNum)来计算当前页要显示的行,并显示出来,首页.下一页.上一页.尾页都依此来 ...

  4. layui 数据表格+分页+搜索+checkbox+缓存选中项数据

    在做数据表格的时候遇到了很多坑, 今天整理一下方便以后使用. 主要功能是使用数据表格, 做分页,做搜索,  还有checkbox,  支持全选. 当选中一些数据的时候, 数据切换页面数据在切换回来后, ...

  5. java中分页效果的实现代码

    首先是将分页所需的一些个资源 ,抽象出一个javabean对象-PageBean: 先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector, 然后利用其sublist(int ...

  6. Android中分页滑动实现总结

    手机的屏幕相对较小,因此会出现当有多项内容需要展示而不得不进行分页的情况.例如手机桌面的应用图标的展示.一般一屏可以显示4*4=16个小方块形的应用程序,可以通过左右滑动进行屏幕的选择.而Androi ...

  7. Saiku设置展示table数据不隐藏空的行数据信息(二十六)

    Saiku设置展示table数据不隐藏空的行数据信息 saiku有个 非空的字段 按钮,点击这个后,会自动的把空的行数据信息给隐藏掉,这里我们来设置一下让其行数据不隐藏,为空的就为空. 主要更改两个文 ...

  8. Django学习(5)优雅地分页展示网页

    在我们平时浏览网页时,经常会遇到网页里条目很多的情形,这时就会用到分页展示的功能.那么,在Django中,是如何实现网页分类的功能的呢?答案是Paginator类. 本次分享讲具体展示如何利用Djan ...

  9. 弹窗中修改select默认值遇到的问题

    弹窗中修改select默认值无效 前提: 项目中遇到一个需求, 在一个弹窗中,有很多个select都是在打开弹窗的同时由js自动生成的(每次打开都自动重新生成一遍). 弹窗打开后,从每个select的 ...

随机推荐

  1. 学习JS的第四天

    一.循环 1.循环嵌套 1.一个循环内包含完整的另一个循环语句. 2.被包含的循环语句叫内循环,包含别的循环的循环语句叫外循环. 3.外循环每执行一次循环,内循环都会完全执行所有循环次数. 4.循环嵌 ...

  2. git clone报错处理

    git clone过大的仓库时会报以下错误 remote: aborting due to possible repository corruption on the remote side. fat ...

  3. Java学习(十八)

    学习了Web中的单位. 像素是网页中最常用到的单位,一个像素是屏幕中的一个小点. 不同显示器一个像素的大小也不同,像素越小,显示效果越好. 也可以用百分比的方式: <!DOCTYPE html& ...

  4. [noi712]练级

    先考虑一个联通块,可以发现这个联通快内不会存在两个偶数的点证明:如果存在,那么这两个点的某一条路径上的边全部反过来,可以使答案+2,即答案为点数或点数-1同时,发现答案的奇数点数一定与边数同奇偶,那么 ...

  5. python 配置pip镜像源

    在本地用户下新建pip文件夹,新建pip.ini [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trust ...

  6. 关于阿里云图标的使用 iconfont

    iconfont 关于阿里云图标库使用的介绍 对于添加到网页中的iconfont可使用以下几种方式: 首先需要进入阿里云图标库官网进行对应的下载iconfont-阿里巴巴矢量图标库 将需要的图标加入到 ...

  7. Scrapy-Splash的安装和使用

    Scrapy-Splash是一个Scrapy中支持JavaScript渲染的工具. Scrapy-Splash的安装分为两部分.一个是Splash服务的安装,具体是通过Docker,安装之后,会启动一 ...

  8. 避免UE4项目VS中误改源码.h文件导致编译时间长

    最近几天两次触发VS中误改UE4源码头文件,导致需要编译大量源码的情况:再好的习惯也有不可靠的时候,还是需要可靠方案解决这个问题:官方提供了预编译版本(即从Launcher中下载的版本),但是对于程序 ...

  9. 详解 Rainbond Ingress 泛解析域名机制

    Rainbond 作为一款云原生应用管理平台,天生带有引导南北向网络流量的分布式网关 rbd-gateway.区别于一般的 Ingress 配置中,用户需要自行定义域名的使用体验,Rainbond 的 ...

  10. SimpleNVR如何把安防监控画面推流到微信公众号直播

    背景需求 进入移动互联网时代以来,微信已成为许多企业除官网以外必备的宣传渠道,当3.2亿直播用户与九亿微信用户的势能增加,在微信上开启直播已成为越来越多企业的不二选择. 需求分析 微信公众号作为平台来 ...