<template>
<div>
<ul :total="total" :pageSize="pageSize" :pageNum="pageNum">
<li @click="leftRight(1)">
<上一页
</li>
<li @click="pageClick(item)" :style="{color:item==page?'red':'black'}" v-for="item in arr" :key="item">{{item}}
</li>
<li @click="leftRight(2)">下一页></li>
</ul>
</div>
</template> <script>
export default {
props: {
total: {
type: Number,
default: 0
},
pageSize: {
type: Number,
default: 10
},
pageNum: {
type: Number,
default: 1
},
},
data() {
return {
length: 0,
page: 1,
arr: [],
}
},
mounted() {
this.getLength()
},
methods: {
getLength() {//获取页码大小并初始化页面
let shuzu = [];
if (this.total % this.pageSize == 0) {
this.length = this.total / this.pageSize;
} else {
this.length = parseInt(this.total / this.pageSize) + 1; }
// console.log(this.length + 'this.length')
if (this.length >= 10) {
shuzu.length = 10
} else {
shuzu.length = this.length
}
for (let i = 0; i <shuzu.length; i++) {
shuzu[i] = i + 1
}
this.arr = shuzu
},
getpage(page) {
let shuzu = [];
let j = 0
let str = 0
if (page + 5 <= this.length) {
str = page + 5
j = page - 5
} else {
str = page + (this.length - page)
j = str - 10
} for (let i = j+1; i <= str; i++) {
shuzu.push(i)
}
this.arr = shuzu
},
pageClick(page) {
this.page = page
// console.log(this.arr.length)
if (page <= this.arr.length / 2 || this.length <= 10) {
alert('1')
this.getLength()
} else {
this.getpage(page)
}
this.pageNumChange(this.page)
},
leftRight(e){
switch (e){
case 1:
if(this.page==1){
this.page=1
}
else {
this.page-=1
}
this.pageClick(this.page)
break;
case 2:
if(this.page==this.length){
this.page=this.length
}else {
this.page+=1
}
this.pageClick(this.page)
break;
}
this.pageNumChange(this.page)
},
pageNumChange(page){
this.$emit('pageNumChange',page)
}
}
}
</script> <style scoped>
* {
margin: 0;
padding: 0;
} ul > li {
-ms-user-select:none;
margin:0 2px;
display: inline-block;
border: 1px black solid;
min-width: 20px;
height: 20px;
border-radius: 2px;
cursor: pointer;
vertical-align: middle;
} li:hover {
border: 1px cornflowerblue solid;
}
</style>

  

页面样式没有调整好  不过逻辑是完成了

最新文章

  1. linux基础知识3_根文件系统详解
  2. scrollview 图片放大 捏合 瓦片地图 相关注意事项
  3. js中的this关键字详解
  4. Solr学习笔记(一)
  5. Environment.SpecialFolder.CommonApplicationData
  6. Matlab划分测试集和训练集
  7. BZOJ2661: [BeiJing wc2012]连连看
  8. java实现——006重建二叉树
  9. 浅谈Linux虚拟内存
  10. JAVA IO分析二:字节数组流、基本数据&amp;对象类型的数据流、打印流
  11. servlet(3):servlet和filter&lt;url-pattern&gt;配置
  12. [转]decorator(HTML装饰器)
  13. python数据类型及字符编码
  14. CMD命令搜索有某文本文件的内容
  15. oracle数据库 ORA-01017的解决办法
  16. 【转】C#如何创建泛型类T的实例
  17. Python练习笔记——斐波那契数列
  18. FZU Problem 2105 Digits Count
  19. JMeter的下载以及安装使用
  20. pandas筛选数据。

热门文章

  1. IE 跨域session丢失问题
  2. SSL/TLS 安全测试
  3. [JVM教程与调优] 什么是JVM运行时参数?
  4. C# NAudio录音和播放音频文件及实时绘制音频波形图(从音频流数据获取,而非设备获取)
  5. openssl与java(读取加密码的密钥)
  6. 对webpack和gulp的理解和区别
  7. ScheduledThreadPoolExecutor之remove方法
  8. 【Java技术系列】爱情36技之记忆永存
  9. PTA数据结构与算法题目集(中文) 7-15
  10. css布局之盒模型