- 页面布局
- <template>
- <div>
- <el-row>
- <el-col :span="6">
- <el-input v-model="name" placeholder="输入名称搜索">></el-input>
- </el-col>
- <el-col :span="2">
- <el-button type="success" @click="search">搜索</el-button>
- </el-col>
- </el-row>
- <el-table :data="tableData">
- <el-table-column label="名称" prop="name"></el-table-column>
- <el-table-column label="数量" prop="age"></el-table-column>
- </el-table>
- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page"
- :page-sizes="[1, 2,5, 10]" :page-size="limit" layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- </el-pagination>
- </div>
- </template>
- 绑定数据
- data() {
- return {
- tableData: [{name:'qweqw',age:'123'},{name:'qweqw123',age:'123456'}],
- data: [],
- listQuery: { name: undefined, limit:10, page:1 },
- page: 1,
- name: "",
- }
- },
- 获取数据,因为没有后台,就前台模拟取了数据
- created() {
- this.pageList()
- },
- 注意: 首次展示数据时,将全部数据暂存保存在this中,方便之后操作,
-
pageList() { // 发请求拿到数据并暂存全部数据,方便之后操作 this.Data = this.tableData this.listQuery.page = 1; this.getList() },
-
// 获取数据 getList(){ // es6过滤得到满足搜索条件的展示数据list let list=[] if(this.listQuery.name){ list = this.Data.filter((item, index) => item.date1.includes(this.listQuery.name) ) } else{ list=this.Data } this.tableData = list.filter((item, index) => index < this.listQuery.page * this.listQuery.limit && index >= this.listQuery.limit * (this.listQuery.page - 1) ) this.total = list.length },
- 当每页数量改变
- handleSizeChange(val) {
- console.log(`每页 ${val} 条`);
- this.listQuery.limit = val
- this.getList()
- },
- 当当前页改变
- handleCurrentChange(val) {
- console.log(`当前页: ${val}`);
- this.listQuery.page = val
- this.getList()
- },
- search() {
- this.listQuery.page = 1;
this.getList(); }
vue+element实现前端分页及前端搜索功能
最新推荐文章于 2024-04-11 01:57:45 发布