电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Vue3.x+Element Plus仿制Acro Design簡潔模式實現分頁器組件

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

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

分頁器組件代碼部分:

<!-- (簡潔模式)分頁器組件 --><template>  <div>    <!-- 總數統計 -->    <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";// 接收父組件參數const attrs = useAttrs();// 父組件事件const em = defineEmits(["handlePageChange"]);// 當前頁const pageNum = ref(1);// 父組件傳遞-當前頁碼const curPage = computed(() => {  pageNum.value = attrs.curPage;  return attrs.curPage;});// 父組件傳遞-總數const total = computed(() => {  return attrs.total;});// 總頁碼數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";// 當前頁const curPage = ref(1);// 每頁條數const pageSize = ref(20);// 列表總數const total = ref(0);/* 當前頁改變 */const handleCurrentChange = (val) => {  curPage.value = val;  ...};</script>

最終效果如下:

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

標簽: JavaScript
主站蜘蛛池模板: 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 间甲酚,间甲酚厂家-山东祥东新材料 | 不锈钢发酵罐_水果酒发酵罐_谷物发酵罐_山东誉诚不锈钢制品有限公司 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 塑胶跑道施工-硅pu篮球场施工-塑胶网球场建造-丙烯酸球场材料厂家-奥茵 | 哔咔漫画网页版在线_下载入口访问指引| 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 威实软件_软件定制开发_OA_OA办公系统_OA系统_办公自动化软件 | 空冷器|空气冷却器|空水冷却器-无锡赛迪森机械有限公司[官网] | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | 免费B2B信息推广发布平台 - 推发网 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 地图标注-手机导航电子地图如何标注-房地产商场地图标记【DiTuBiaoZhu.net】 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 首页_中夏易经起名网| 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 温泉机设备|温泉小镇规划设计|碳酸泉设备 - 大连连邦温泉科技 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 集菌仪厂家_全封闭_封闭式_智能智能集菌仪厂家-上海郓曹 | 空冷器|空气冷却器|空水冷却器-无锡赛迪森机械有限公司[官网] | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 电液推杆生产厂家|电动推杆|液压推杆-扬州唯升机械有限公司 |