7-5 用户管理页页面功能实现
目录:
- 表格加载状态
- 分页功能
一、表格加载状态
表格加载状态,在element-ui有对应的组件:Loading 加载
说明就是在 <el-table v-loading="loading">,编辑 Table.vue
<template>
<div class="common-table"> <!--v-loading="config.loading" 表格加载状态-->
<el-table :data="tableData" height="100%" stripe v-loading="config.loading">
....
</el-table>
...
</el-pagination>
</div>
</template>
实现效果:

二、分页功能
这个分页功能在我们element-ui的 属性(current-page) 和 事件(current-change) :
current-page: 当前页数,支持 .sync 修饰符 number — 1
current-change currentPage 改变时会触发 当前页
思路:
- 在Table.vue组件中el-pagination 定义一个 @current-change="changePage" => changePage(page) {this.$emit('changePage',page);} page值通过 $emit传递给 父组件,就是UserMange.vue
- UserMange.vue 接收事件 => <Table .... @changePage="getList"></Table> 接收事件,这个时间直接绑定在getlist即可。
2.1、编辑Table.vue组件(子组件)
<template>
<div class="common-table">
<el-table>
....
<el-table-column label="操作" style="width: 100px">
.....
</el-table-column>
</el-table>
<!--:current-page.sync="config.page"同步父组件页数 @current-change="changePage"触发事件改变页数,数据传递给父组件-->
<el-pagination class="pager" background layout="prev, pager, next" :total="config.total" :current-page.sync="config.page" @current-change="changePage">
</el-pagination>
</div>
</template>
<script>
export default {
....,
methods: {
....,
changePage(page) {
this.$emit('changePage',page);
}
}
}
</script>
2.2、编辑UserMange.Vue组件(父组件)
<template>
<div class="manage">
.... <!--@changePage="getList"接收子组件传递过来的page数-->
<Table :tableData="tableData" :tableLabel="tableLabel" :config="config" @changePage="getList"></Table>
</div>
</template>
<script>
....
export default {
....,
data(){
return {
tableData: [],
tableLabel: [
....,
{
prop: 'birth',
label: '出生日期',
width: 200
},
{
prop: 'addr',
label: '地址',
width: 300
},
],
....
},
methods: {
getList() {
this.config.loading = true;
this.$http.get('/api/user/getUser',{
params: {
page: this.config.page
}
}).then(res => {
this.tableData = res.data.list.map(item => {
item.sexLabel = item.sex === 0 ? '女' : '男';
return item
});
this.config.total = res.data.count;
this.config.loading = false;
})
}
},
created() {
this.getList()
}
}
</script>
<style scoped>
</style>

浙公网安备 33010602011771号