vue封装Element的分页
程序员文章站
2024-02-20 08:13:04
...
封装的组件代码
<template>
<div>
<el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPageL" :page-sizes="pageSizesL" :page-size="pageSizeL" layout="total, sizes, prev, pager, next, jumper" :total="totalL">
</el-pagination>
</div>
</template>
<script>
export default {
name: "HelloWorld",
props: {
currentPage: Number,
total: Number,
pageSizes: Array,
pageSize: Number
},
data() {
return {
currentPageL: this.currentPage, //默认第一页
totalL: this.total, //总条数
pageSizesL: this.pageSizes, //每页展示多少条
pageSizeL: this.pageSize, //默认第一页展示10条
};
},
mounted() {},
methods: {
handleSizeChange(val) {
let path = this.$route.fullPath;
let query = this.$route.query;
let size = {
size: val
};
let newQuery = this.$Method.NewQuery(query, size);
this.$router.push({ path: path, query: newQuery });
},
handleCurrentChange(val) {
let path = this.$route.fullPath;
let query = this.$route.query;
let size = {
page: val
};
let newQuery = this.$Method.NewQuery(query, size);
this.$router.push({ path: path, query: newQuery });
}
}
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss">
.el-pagination.is-background .el-pager li:not(.disabled).active {
background-color: #cc4455;
}
</style>
调用的组件:
<template>
<div class="hello">
<p>{{new Date() | moment("YY-MM-DD HH:mm:ss")}}</p>
<i class="iconfont icon-gouwuche"></i>
<el-button type="primary">主要按钮</el-button>
<PageSize :currentPage='currentPage' :total='total' :pageSizes='pageSizes' :pageSize='pageSize' />
</div>
</template>
<script>
import PageSize from "./common/PageSize.vue";
export default {
name: "HelloWorld",
components: {
PageSize: PageSize
},
data() {
return {
msg: "helloworld*****",
currentPage: 1, //默认第一页
total: 80, //总条数
pageSizes: [10, 20, 50, 100, 200], //每页展示多少条
pageSize: 10 //默认第一页展示10条
};
},
mounted() {},
methods: {}
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss">
</style>
路由query改变原始对象,避免路由不跳转及不更新
function (query, newQuery) {
return Object.assign({}, query, newQuery)
}
仅供参考,欢迎指出改进。。。
推荐阅读
-
vue封装Element的分页
-
VUE element ui根据数组生成多个互不干扰的下拉菜单并获取对应参数
-
vue-cli如何对element-ui组件进行二次封装
-
vue+element-ui初始化表格时某一列根据后台返回内容显示不同的icon
-
vue3.0 element-ui中el-upload的before-upload方法返回false时submit()不生效解决方法
-
vue+element创建动态的form表单及动态生成表格的行和列
-
PHP封装的完整分页类示例
-
Vue2.x通用条件搜索组件的封装及应用详解
-
vue-cli3和element做一个简单的登陆页面
-
js实现Element中input组件的部分功能并封装成组件(实例代码)