代码分析:
+新增角色
{{ (page.page - 1) * page.pagesize + $index + 1 }}
分配权限
修改
删除
通常的用法:
data : 绑定关联的数据
label:关联的是表格的标题
prop: 关联的是一列的数据
代码:
tableData: [
{
date: "2016-05-02",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
},
{
date: "2016-05-04",
name: "王小虎",
address: "上海市普陀区金沙江路 1517 弄",
},
{
date: "2016-05-01",
name: "王小虎",
address: "上海市普陀区金沙江路 1519 弄",
},
{
date: "2016-05-03",
name: "王小虎",
address: "上海市普陀区金沙江路 1516 弄",
},
],
如果想要自定义,通过默认插槽来解决问题。
分配权限
修改
删除
代码:
:current-page="page.page"
:page-sizes="[1, 10, 100, 200, 300, 400]"
:page-size="page.pagesize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
1.页码改变
handleSizeChange(size) {
this.page.pagesize = size
// 页容量回到第一页
this.page.page = 1
this.getData()
console.log(size)
},
2.页容量改变
handleCurrentChange(page) {
this.page.page = page
this.getData()
console.log(page)
},
实现绑定
添加
删除
效果图:
点击每页10条还是在当前页面显示的是10条数据。
接下来是全章节中最重点的部分了。
正确的接口调用方式:
async getData() {
const res = await sysRole(this.page)
// 存储分页总数
this.page.total = res.data.total
// 存储列表数据
this.list = res.data.rows
console.log(res, '角色列表')
}
代码在最顶部。
总条数
this.page.total = res.data.total
this.list = res.data.rows
console.log(res.data.rows.length, '返回的数据')
我们看下返回的结果:
选择页容量1
返回一条数据:
选择页容量为10
返回10条数据。但是接口只要3条。
获取的数据也和对应的页数是对应的:
第一页的数据
第二页的数据
说了这么多,到底如何实现分页。
data() {
return {
list: [],
page: {
page: 1, // 默认页码
pagesize: 10, // 每页条数
total: 100
}
}
},
list 关联要渲染的项,page:当前页,pagesize:页容量 total:总条数
将变量关联到组件上去
async getData() {
const res = await sysRole(this.page)
// 存储分页总数
this.page.total = res.data.total
// 存储列表数据
this.list = res.data.rows
console.log(res.data.rows, '返回的数据')
}
handleSizeChange(size) {
this.page.pagesize = size
// 页容量回到第一页
this.page.page = 1
this.getData()
console.log(size)
},
handleCurrentChange(page) {
this.page.page = page
this.getData()
console.log(page)
},
可以选择失败, 不能选择放弃