h5分页样式 css,【前端技术】Quasar Table: 自定义分页样式
说点什么
一个管理端的系统,最常用的是数据表格及分页。
这里我记录一下使用QTable 数据表及QPagination组件来实现想要的数据表格及分页的过程。
可直接跳至文章末尾,看实现效果:传送门。
QTable 数据表
首先,从文档:QTable中能看到很多种表格样式,找到一款与我们的项目UI效果相似的来使用:
示例
title="Treats"
:data="data"
:columns="columns"
row-key="name"
:selected-rows-label="getSelectedString"
selection="multiple"
:selected.sync="selected"
>
methods: {
getSelectedString () {
return '' // 不返回空时,table自带的左下角显示为默认的文字
}
}
示例中,我将selected-rows-label绑定的方法”getSelectedString“的返回值改为了””,因为我们这里不需要表格左下角显示选中数据的信息。
详细的代码不再粘贴,可以在上面的示例中打开查看。
从示例中,可以看到,quasar table默认的分页是如下:
实现table默认的分页
实现代码:
title="Treats"
:data="data"
:columns="columns"
row-key="name"
:selected-rows-label="getSelectedString"
selection="multiple"
:selected.sync="selected"
:pagination.sync="pagination"
@request="onRequest"
>
data中在上面的示例中增加:
pagination: {
sortBy: 'desc',
descending: false,
page: 1,
rowsPerPage: 10,
rowsNumber: 0 // 总共数据条数
},
methods:
onRequest (props) {
const { page, rowsPerPage, rowsNumber } = props.pagination
// console.log(`获取page: ${page} ${rowsPerPage}`)
this.pagination.page = page
if (rowsPerPage === 0) {
// rowsPerPage 为0,表示一页显示全部数据
this.pagination.rowsPerPage = rowsNumber
} else {
this.pagination.rowsPerPage = rowsPerPage
}
this.getTableData()
},
getTableData () {
service({
url: '/admin/xxxxxx',
method: 'get',
params: {
pageIndex: this.pagination.page, // 页码
pageSize: this.pagination.rowsPerPage, // 每页数量
keywords: this.keywords // 查询参数keywords
},
responseType: 'json', // default
responseEncoding: 'utf8' // default
})
.then(response => {
const rtn = response.data
this.pagination.rowsNumber = rtn.data.total
if (rtn.code === 200) {
this.data = rtn.data.records
} else {
this.$q.notify({
message: rtn.message,
timeout: 1500,
type: 'negative',
position: 'top-right' // 'top', 'left', 'bottom-left' etc
})
}
})
},
这里值得一提的是,quasar table默认的分页,可以切换每页的数据条数rowsPerPage,切换这个的时候,有一个选项是all, 是选中全部:
而此时返回的rowsPerPage是0,所以,当 rowsPerPage === 0 时,onRequest方法中,应该将总共的数据条数赋值给rowsPerPage。具体请查看文档:QTable API
QPagination 组件
Pagination从该文档中能看到很多分页的样式,同样是找到一款与我们的项目UI效果相似的来使用:
示例 Pagination: 分页多的页码隐藏为省略号
自定义 table分页
但是依然不够用,因为UI效果中,分页的左边显示数据条数信息,中间是类似上面示例那种分页多的页码隐藏为省略号,右边显示跳转至n页,要求输入页码,按下enter方可跳转。
这个效果很好实现,结合table的v-slot:bottom即可:
实现示例请查看:Quasar Table: 自定义分页样式
实现代码:
title="table 自定义分页"
:data="data"
:columns="columns"
row-key="name"
selection="multiple"
:selected.sync="selected"
:loading="loading"
:pagination.sync="pagination"
@update:selected="getSelected"
class="table"
>
{{ pagination.rowsPerPage }}条/页 共
{{ pagination.rowsNumber }}
条数据
v-model="pagination.page"
:max="pages"
:max-pages="5"
ellipsess
:direction-links="true"
@input="changePagination"
>
跳至
outlined
v-model="toPage"
class="pagination-input"
@input="changeToPage"
@keyup.enter.native="refreshTableData"
>
页
data中在最上面的示例中增加:
loading: true,
pages: 10, // 数据总页数
toPage: '', // 跳转至
methods
changePagination (val) {
this.selected = []
console.log(`changePagination: ${val}`)
this.pagination.page = val
this.loading = true
this.getTableData()
},
changeToPage (val) {
this.selected = []
var r = /^\+?[1-9][0-9]*$/
if (r.test(val) && parseInt(val) <= this.pages) {
// 输入正整数 且 小于最大页数
// console.log(`input toPage: ${val} 是一个正整数`)
} else {
this.toPage = ''
}
},
getSelected (newSelected) {
console.log(`获取selected: ${JSON.stringify(this.selected)}`)
console.log(`getSelected获取newSelected: ${JSON.stringify(newSelected)}`)
this.selected = newSelected
},
refreshTableData (){
if (this.toPage !== '') {
this.pagination.page = parseInt(this.toPage)
this.loading = true
this.getTableData()
}
},
getTableData(){
this.loading = true
//此处应为接口请求数据 不再粘贴
}
},
实现效果
如图:
文档
h5分页样式 css,【前端技术】Quasar Table: 自定义分页样式相关推荐
- vue+elementui表格前端导出excel以及自定义导出样式
vue+elementui表格前端导出excel以及自定义导出样式 项目遇到前端自己导出表格,我自己把后端给我的数据处理了一波,合并重复列啊,以及表头合并啊.可没想到导出竟然也要前端自己来弄,于是乎请 ...
- CSS如何设置html table表格边框样式
CSS如何设置table表格边框样式 对table设置css样式边框,分为几种情况: 1.只对table设置边框 2.对td设置边框 3.对table和td技巧性设置表格边框 4.对table和td设 ...
- table自定义表格样式
前言: 自定义表格样式,有一些自定义的需求,整理成通用样式就可以复用了 1,table表格每一列可以自定义宽度 2,table表格每一列中的每一项超出宽度不换行并显示省略号... <!DOCTY ...
- table自定义滚动条样式
效果图: css代码: //table样式 .home_table{width: 90%;border-collapse: separate;border-spacing: 20px 10px;mar ...
- HTML CSS 兼容所有浏览器的自定义鼠标样式
2019独角兽企业重金招聘Python工程师标准>>> 自定义鼠标样式,格式: css:{cursor:url('绝对路径的图片(格式:cur,ico)'),-moz-zoom-ou ...
- android 滚动条自定义样式,IScroll的使用-方向键绑定自定义滚动条样式
之前在webkit上开发一个滚动控件,需要完成的是一段文字,上下键可以滚动,且自定义滚动条.第一想法就是浏览器原生overflow:scroll,且webkit支持自定义滚动条样式: webkit自定 ...
- 前端实现elementUi table表格分页
1. 前端进行分页(后端返回所有的数据) 最主要的是对总数据进行分页截取某个部分的数据进行显示 <!-- 关键是对总数据的截取 tableData.slice((currentPage - 1) ...
- element组件库中table自定义分页效果
1.在data中设置初始值 // 页数 页码search: { offset: 1, // 当前页limit: 10, // 条数total:0, //总数}, 2.设置获取后的数据分配 :data= ...
- 百度前端技术学院2017学习总结
一.前言 百度的前端技术学院IFE,2016年就听说了,当时自己也报名,还组成队伍了,不过自己一个任务也没完成就结束了,遗憾... 关注了IFE,知道2017年2月有新的一期培训,于是一直在等着报名, ...
最新文章
- 字符串面试题(一)字符串逆序
- 亿级商城计价中心 - 从容应对复杂场景价格计算
- LiDAR-Camera Fusion for 3D Reconstruction
- java常考设计模式_java笔试常考的几种设计模式
- 一位资深程序员大牛给Java初学者的学习建议
- element 保存 点击链接_保存微信表情!
- oracle11g怎样进行闪回,模拟Oracle11g下用Flashback Data Archive进行恢复的若干场景
- 终于搞定电子专利网上申请了
- 固态硬盘(SSD)——NAND闪存芯片(颗粒)QLC、SLC、MLC、TLC
- 2016年年终总结--勿忘初心
- Oracle9i数据库Data Guard实施及维护手册
- 三做一年级算术题-吐槽挖雷
- KTV信息管理系统+点歌系统(WPF)
- Java为图片加水印
- 使用 Scrapy + Selenium 爬取动态渲染的页面
- 感恩节 今天,留一天时间感谢自己
- 51单片机仿真例程-双机串行通信
- 初识大数据--Hadoop大数据平台架构与实践
- 英语单词:flight; fly
- Docker容器化技术
热门文章
- Windows下redis修改端口号无效
- 编写book.java_Java集合框架上机练习题:编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法........
- 前端中关于下载文件问题
- 【Linux】限制进程的CPU使用率
- 跨平台应用开发进阶(四十六)webview方式嵌套H5应用加载慢解决方案
- 怎样做需求调研:研讨会
- 优酷土豆合而不同 土豆逐渐边缘化显尴尬
- 怎么采集can总线的数据?
- Epoll之ET、LT模式
- 100V输出12V/10A,5V/3.1ADC-DC异步降压芯片