首页 > 其他分享 >vue 手写分页

vue 手写分页

时间:2023-04-06 16:11:43浏览次数:34  
标签:vue 分页 list displayPage crossing var 手写 pages log

     data:{                 crossing_status:CROSSING_STATUS,                 crossing_list:[],                 time:null,                 log: {                     page: 1,                     pages: 1,                     total: 0,                     count: 20,                     displayPage: 5,                     list: []                    },                 selectedDate:"",             },             computed:{               crossingList:function(){                   return this.crossing_list.slice()               },               logPageInfo: function () {                 var ar = [];                 if (this.log.pages < this.log.displayPage || this.log.pages == this.log.displayPage + 1) { //数字全部显示                     for (var i = 1; i <= this.log.pages; i++) {                         ar.push(i)                     }                 } else if (this.log.page < this.log.displayPage - 1) {//后面显示省略号                     for (var i = 1; i < this.log.displayPage; i++) {                         ar.push(i)                     }                     ar.push(this.log.pages);                 } else if (this.log.page <= this.log.pages && this.log.page > this.log.pages - this.log.displayPage + 2) {  //前面显示省略号                     ar.push(1);                     for (var i = this.log.pages - this.log.displayPage + 2; i <= this.log.pages; i++) {                         ar.push(i);                     }                 } else {  //前后显示省略号                     ar.push(1);                     var d, e, f = (this.log.displayPage - 3) / 2;                     (this.log.displayPage - 3) % 2 == 0 ? d = e = f : (d = Math.floor(f), e = Math.ceil(f));                     for (var i = this.log.page - d; i <= this.log.page + e; i++) {                         ar.push(i);                     }                     ar.push(this.log.pages);                 }                 return ar;             },             },   <!-- 分页 -->         <div class="text-right zh-mt-20 clearfix">             <div class="zh-page zh-page-black fr">                 <div class="zh-page-content">                     <ul>                         <li :class="{'zh-disabled':log.page == 1,'notclick':log.page == 1}">                             <a @click="logPageChange(1)">首页</a></li>                         <li :class="{'zh-disabled':log.page == 1,'notclick':log.page == 1}">                             <a @click="logPageChange(log.page-1)">上一页</a></li>                         <li :class="{'zh-cur': log.page == 1}"><a @click="logPageChange(1)">1</a></li>                         <template v-for="p in logPageInfo">                             <li v-if="p > 0 && log.pages > 2"                                 :class="{ 'zh-cur': log.page == p, 'hide':(p==1 || p==log.pages)}">                                 <a @click="logPageChange(p)">{{p}}</a>                             </li>                         </template>                         <li :class="{'hide':(log.pages < log.displayPage || log.pages -log.page<(log.displayPage-2))}">                             <a>...</a>                         </li>                         <li :class="{ 'zh-cur': log.page == log.pages,'hide':log.pages == 1}">                             <a @click="logPageChange(log.pages)">{{log.pages}}</a>                         </li>                         <li :class="{'zh-disabled':log.page == log.pages,'notclick':log.page == log.pages}">                             <a @click="logPageChange(parseInt(log.page)+1)">下一页</a></li>                         <li :class="{ 'zh-cur':  log.page == log.pages,'zh-disabled':log.page == log.pages,'notclick':log.page == log.pages}">                             <a @click="logPageChange(log.pages)">尾页</a>                         </li>                     </ul>                     <span class="zh-total">共{{ log.pages }}页</span>                 </div>             </div>         </div>

标签:vue,分页,list,displayPage,crossing,var,手写,pages,log
From: https://www.cnblogs.com/coodeshark/p/17293098.html

相关文章

  • Vue3.0学习(一)------Vue简单介绍
    什么是Vue?官方原文:Vue是一款用于构建用户界面的JavaScript框架。它基于标准的HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。简单来说,Vue就是一个构建用户界面的前端框架Vue的两个核心功能声明式渲染Vue基于标准HTML扩展了一......
  • vue里浏览器返回键如何禁用
    1mounted(){23//禁用浏览器返回键45history.pushState(null,null,document.URL);67window.addEventListener('popstate',this.disableBrowserBack);89},1011destroyed(){1213//清除popstate事件否则会影响到其他页面......
  • vue里cdn引入改为本地js文件引用
     问题vue项目cdn引用会出现网络加载不了问题 vue项目cdn引用  改为本地public/index.html引入首先把cdn的链接复制在浏览器里打开或直接下载下来把js文件放到public文件夹下面  在index.html里引入,注意生产环境才加载出来 ......
  • vue第七课:记事本实例
    功能需求:新增生成列表结构获取用户输入回车,新增数据  删除点击删除指定内容(v-onsplice)  splice(index,1) 删除1个对应的索引统计v-text,length  清空数组清空  隐藏没有数据时,隐藏元素(v-if,v-show数组非空)  <divid='app'><inpu......
  • 2023.04.06 - 使用mixin动态混入,对vue组件中的数据做兼容经验总结(xp)
    业务场景:在一个高拍仪的硬件设备中,厂家给了两套不同的API,分别支持winXP和winXP以上版本的系统,而这两套API的实现方式截然不同,一套使用的是http通信,一套是使用scoket通信,方法的调用自然也是不同。我需要在同一组件兼容这两套代码。这种需求下很明显,我除了修改组件里的函数方法,......
  • 直播商城源码,vue 弹窗 惯性滚动 加速滚动
    直播商城源码,vue弹窗惯性滚动加速滚动弹窗基础组件新建文件components/zwy-popup <template><divv-show="ishide"@touchmove.stop.prevent><!--遮罩--><divclass="mask":style="maskStyle"></div><!--内容--><divcl......
  • Vue进阶(四十五):精解 ES6 Promise 用法
    一、前言复杂难懂概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么呢?是类?对象?数组?函数?别猜了,console.dir(Promise)直接打印出来看看。这么一看就明白了,Promise是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,原型上有th......
  • vue之列表渲染v-for
    目录简介用法v-for可循环的几种变量的展示数组的循环展示对象的循环展示字符串的循环展示数字的循环展示v-for搭档key值的说明js循环几种方式基于索引的循环数组的循环数组基于索引的循环数组基于迭代的循环基于of的循环数组的方法循环jQuery的循环点击按钮隐藏/显示列表示例简......
  • vue第六课:v-for,v-on补充,v-model
    1,v-for指令根据数据生成列表结构<divid='app'><inputtype="button"value="添加数据"@click="add"><inputtype="button"value="删除数据"@click="remove"><ul><......
  • vue第五课:图片切换实例
    知识点:1,定义图片数组2,添加图片索引3,绑定src属性4,图片切换逻辑需求:第一张图片不显示上一页(隐藏)最后一张图片不显示下一页(隐藏)<divid='app'><img:src="imgarr[index]"><ahref="#"v-show="index!=0"@click="prev"><imgs......