色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Vue3.x+Element Plus仿制Acro Design簡潔模式實(shí)現(xiàn)分頁器組件

瀏覽:90日期:2022-06-01 13:26:12

開發(fā)中難免會遇到寬度很窄的列表需要使用分頁器的情況,這時若使用Element Plus組件的分頁器會導(dǎo)致分頁器內(nèi)容超出展示的區(qū)域,而Element Plus組件中目前沒有Acro Design那樣小巧的分頁器(Arco Design Vue)如下圖所示,如果再引入一個新的UI組件庫未免導(dǎo)致項(xiàng)目臃腫,所以基于Vue3.x和Element Plus封裝了一個即拿即用的”簡潔模式“分頁器組件以便不時之需

分頁器組件代碼部分:

<!-- (簡潔模式)分頁器組件 --><template>  <div>    <!-- 總數(shù)統(tǒng)計 -->    <span>{{ "共" + total + "條" }}</span>    <!-- 翻頁 -->    <div>      <!-- 左翻頁 -->      <el-icon @click="pageTurning("down")" :class="curPage <= 1 ? "forbid-pageturning" : """><ArrowLeft />      </el-icon>      <!-- 頁碼 -->      <el-input-number @change="handlePageChange" v-model="pageNum" :min="1" :max="pageTotal" :step-strictly="true":controls="false" />      <b>{{ "/ " + pageTotal }}</b>      <!-- 右翻頁 -->      <el-icon @click="pageTurning("up")" :class="curPage >= pageTotal ? "forbid-pageturning" : """><ArrowRight />      </el-icon>    </div>  </div></template><script setup>import { useAttrs, computed, ref } from "vue";import {  ArrowLeft,  ArrowRight} from "@element-plus/icons-vue";// 接收父組件參數(shù)const attrs = useAttrs();// 父組件事件const em = defineEmits(["handlePageChange"]);// 當(dāng)前頁const pageNum = ref(1);// 父組件傳遞-當(dāng)前頁碼const curPage = computed(() => {  pageNum.value = attrs.curPage;  return attrs.curPage;});// 父組件傳遞-總數(shù)const total = computed(() => {  return attrs.total;});// 總頁碼數(shù)const pageTotal = computed(() => {  return attrs.total > 0 ? Math.ceil(attrs.total / attrs.pageSize) : 1;});/* 改變頁碼 */const handlePageChange = (e) => {  if (pageTotal.value <= 1) {    return;  }  em("handlePageChange", e);};/* 翻頁 */const pageTurning = (type) => {  // 向前翻頁  if (type === "up") {    if (curPage.value >= pageTotal.value || pageTotal.value <= 1) {      return;    }    em("handlePageChange", pageNum.value + 1);  }  // 向后翻頁  else {    if (pageTotal.value <= 1 || curPage.value <= 1) {      return;    }    em("handlePageChange", pageNum.value - 1);  }};</script><style lang="less" scoped>.smallpagination {  width: auto;  height: 100%;  display: flex;  align-items: center;  >span {    margin-right: 11px;    font-size: 14px;    font-weight: 400;    color: #4E5969;    line-height: 21px;  }  .smallpagination-pager {    display: flex;    align-items: center;    .el-icon {      width: 30px;      height: 30px;      font-size: 14px;      color: #4E5969;      cursor: pointer;      &:hover {background: rgb(247, 248, 250);color: #0082ff;      }    }    .forbid-pageturning {      opacity: 0.4;      cursor: not-allowed;      &:active {color: #4E5969;background: rgb(255, 255, 255);      }    }    >b {      margin: 0 5px;      font-size: 14px;      font-weight: 400;      color: #4E5969;    }  }}</style><style lang="less">.smallpagination {  .smallpagination-pager {    .el-input-number {      width: 40px;      margin-left: 5px;      span {display: none;      }      .el-input__wrapper {padding: 0;height: 30px;font-size: 14px;box-sizing: border-box;background: #f2f3f5;box-shadow: none !important;      }    }  }}</style>

使用簡潔模式分頁器組件代碼如下:

<template>    <div>    	...<div>  <SmallPagination :total="total" :curPage="curPage" :pageSize="pageSize" @handlePageChange="handleCurrentChange">  </SmallPagination></div>    </div></template><script setup>import SmallPagination from "@/components/xxx/SmallPagination.vue";import { ref } from "vue";// 當(dāng)前頁const curPage = ref(1);// 每頁條數(shù)const pageSize = ref(20);// 列表總數(shù)const total = ref(0);/* 當(dāng)前頁改變 */const handleCurrentChange = (val) => {  curPage.value = val;  ...};</script>

最終效果如下:

到此這篇關(guān)于Vue3.x+Element Plus仿制Acro Design簡潔模式實(shí)現(xiàn)分頁器組件的文章就介紹到這了,更多相關(guān)Vue Element分頁器內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: JavaScript
主站蜘蛛池模板: 99国产精品久久久久久久... | 国产高清精品自在久久 | 男女免费观看视频 | 亚洲成在| 暖暖免费高清日本一区二区三区 | 日韩一级视频在线观看播放 | 久久一日本道色综合久 | 97人摸人人澡人人人超一碰 | 久久久国产99久久国产久 | 手机看片国产免费永久 | 国产精品变态重口在线 | 国产精品久久久久久久午夜片 | 福利视频在线午夜老司机 | 九九99九九视频在线观看 | 亚洲成人综合网站 | 全部免费a级毛片 | 国产成人精品亚洲777图片 | 曰本一区 | 亚洲涩涩精品专区 | 日本三级香港三级少妇 | 可以免费观看欧美一级毛片 | 国产系列在线播放 | 亚洲在线一区二区三区 | 日韩精品一区二区三区中文在线 | 黄色毛片国产 | 美女视频黄a视频美女大全 美女视频黄a视频免费全程 | 1024香蕉视频在线播放 | 成年女人毛片免费观看97 | 91探花福利精品国产自产在线 | 免费一级欧美片在线观看 | 农村寡妇偷毛片一级 | 亚洲男人的天堂在线观看 | 久久久精品一区二区三区 | 日本特黄a级高清免费酷网 日本特黄特色 | 韩国美女爽快一毛片免费 | 韩国日本三级在线观看 | 久久国产精品久久精 | 男女做性免费视频软件 | 久久精品国产免费看久久精品 | 亚洲一区 欧美 | 国产20岁美女一级毛片 |