日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue使用element ui实现下拉列表分页的功能!!!

發布時間:2023/12/3 vue 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue使用element ui实现下拉列表分页的功能!!! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是雄雄,歡迎關注微信公眾號:雄雄的小課堂。

前幾天做了個功能,需求是使用利用element ui如何給下拉列表分頁,經過網上查找,自己摸索,已經完成,今天來記錄一下吧。

實現的效果

image-20211103160459223

當時因為下拉框中的數據過多,所以想到使用分頁的方式來實現。

現在來看看具體的實現吧。

準備分頁的組件

分頁組件的代碼是從網上拼湊的,代碼如下:

<template><el-select v-model="childSelectedValue":filterable="remote"multiple:loading="loading":remote="remote":size="size":remote-method="remoteMethod":clearable="clearable"@change="handleChange"@clear="handleClear"@focus="handleFocus":style="{width: '93%'}":placeholder="placeholder"><el-optionv-for="item in optionSource":key="item[valueKey]":label="item[labelKey]":value="item[valueKey]"></el-option><el-paginationsmalllayout="prev, pager, next"@current-change="changeNumber":hide-on-single-page="true":page-size="paginationOption.pageSize":current-page="paginationOption.currentPage":pager-count="paginationOption.pagerCount":total="paginationOption.total"></el-pagination></el-select> </template><script>export default {name: 'PaginationSelect',props: {//此參數只是為了父組件實現 v-model指令接受參數用,子組件中無實際意義// 在子組件中通過監聽childSelectedValue值,來觸發 input 事件,實現子父組件數據綁定value:{type:String,default: ''},valueKey:{//傳入的option數組中,要作為最終選擇項的鍵值名稱type:String},labelKey:{//傳入的option數組中,要作為顯示項的鍵值名稱type:String},clearable :{//是否支持清除,默認支持type:Boolean,default:true},remote:{//是否支持遠程搜索,默認支持type:Boolean,default:false},size:{//組件尺寸,配置項同select String | medium/small/minitype:String,default:'medium'},loading:{//遠程數據加載狀態顯示type:Boolean,default:false},placeholder :{type:String,default:'給誰用'},optionSource:{//下拉框組件數據源type:Array,required:true},paginationOption:{//分頁配置項type:Object,default:function () {return {pageSize:5,//每頁顯示條數 6條剛好currentPage:1,//當前頁pagerCount:5,//按鈕數,超過時會折疊total:10 //總條數}}}},data () {return {childSelectedValue:this.value,}},watch:{//監聽子組件中選擇的值得變化,每當選擇一個項后,觸發input事件,// 將子組件中選擇的值通過input事件傳遞給父組件,實現父組件中v-model綁定的值的雙向綁定childSelectedValue(val){this.$emit("input",val);},value(val){if(val!=null && val.length<1){this.childSelectedValue = '';}}},mounted(){},methods:{//子組件分頁器,頁碼選擇事件,父組件中監聽子組件的 pageNationChange 事件,獲取當前頁碼changeNumber(val){//此處的val是頁碼this.$emit("pageNationChange",val);},// 遠程調用方法,在父組件中實現遠程方法remoteMethod(val){if(val!=null && val.length>0){//只有輸入的字符串長度大于1時,觸發this.$emit("remote-method",val);}else{this.childSelectedValue = ' '}},//使組件支持change事件handleChange(val){this.$emit("change",val);},//使組件支持clear事件handleClear(val){this.$emit("clear",val);},//解決遠程搜索無結果時,顯示清除按鈕問題handleFocus(){if(this.childSelectedValue.length<1){this.childSelectedValue = ''}}} } </script><style scoped></style>

關鍵代碼都有注釋,所以這里就不過多解釋。直接放到項目中即可使用,下面再來看看怎么使用。

父組件的寫法

父組件中的代碼,網上不全,基本上都是自己整理的,首先在需要寫下拉列表的地方寫:

<!--添加人員 --><el-form-item label="選擇人員" ><pagination-select@pageNationChange="pageNationChange"@change="getAthIdsAdd":optionSource="athListAllByLocal"v-model="fanganform.pbeizhu"labelKey="aname"valueKey="id":paginationOption="setSelectPage"></pagination-select></el-form-item>

pageNationChange為下拉列表分頁的點擊事件,執行的方法如下:

//下拉列表分頁的點擊的事件pageNationChange(val){//設置當前頁為點擊的頁this.setSelectPage.currentPage = val;//重新調用分頁查詢的方法this.getAthListLocal(this.setSelectPage);},

change為下拉列表選項的改變事件,執行方法如下:

//獲取下拉框中的運動員編號--保存方案getAthIdsAdd(val){var names = "";for(let i=0;i<=val.length-1;i++){this.athListAllPaged.find((item)=>{if(item.id === val[i]){names+=item.aname+",";}});}console.log(names);this.fanganform.ppersons = names;},

因為我需要把值和名稱都存在數據庫中,所以這里需要根據id來遍歷一下name的值。

optionSource為下拉列表中的數據源。

paginationOption為分頁的屬性,代碼如下:

//分頁信息setSelectPage:{pageSize:6,//每頁顯示條數 3條剛好currentPage:1,//當前頁pagerCount:5,//按鈕數,超過時會折疊total:0 //總條數},

分頁查詢信息的代碼如下:

//查詢本地的運動員getAthListLocal(setSelectPage){getListAthPage(setSelectPage.currentPage,setSelectPage.pageSize).then(res => {const data = res.data.data;//下拉列表數據源綁定this.athListAllByLocal =data.records;//綁定總記錄數this.setSelectPage.total = data.total;//if(this.athListAllPaged.length===0){this.athListAllPaged=data.records;}else {//追加數據for(let i = 0;i<data.records.length;i++){this.athListAllPaged.push(data.records[i]);}}});},

如果需要更改分頁的的按鈕數和頁大小,可以直接修改setSelectPage中的pageSize和pagerCount即可。

最后的效果就實現了。

image-20211103161711255

總結

以上是生活随笔為你收集整理的vue使用element ui实现下拉列表分页的功能!!!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久青草热 | 蜜臀一区二区三区 | 日韩欧美中文字幕一区二区 | 亚洲在线一区二区三区 | 日本在线成人 | 亚洲熟女乱色综合亚洲小说 | 亚洲1234区 | 国产综合精品 | 久久精品97 | 狠狠操狠狠 | 男人操女人的软件 | 国产丝袜久久 | 奇米影视777第四色 2019中文字幕在线免费观看 | 成人精品网| 国产免费黄网站 | 久久夜色精品国产噜噜亚洲av | а√天堂8资源中文在线 | 麻豆免费在线视频 | 国产在线精品一区 | 一区不卡在线观看 | 天天干 夜夜操 | 少妇又色又爽又高潮极品 | 久久久电影 | 91丝袜国产在线观看 | 久久久久夜 | 亚洲激情社区 | 欧美福利网址 | 天堂综合在线 | 欧美黄色片免费看 | 日本成人网址 | 亚洲一区在线播放 | 九九热久久免费视频 | www.在线视频 | 中文字字幕在线观看 | 国产成人在线影院 | 99热最新在线 | 四季av中文字幕一区 | 99在线精品视频免费观看20 | 成人在线网 | 爱爱视频一区二区 | 大肉大捧一进一出好爽mba | 91av中文字幕 | 美女18毛片| 影音先锋欧美资源 | 成人在线免费观看网站 | 久久久久久久久久久久国产精品 | 久久久久久久久久艹 | 日韩中文字幕一区二区三区四区 | 日韩在线视频一区 | 操日本老太太 | 日韩毛片在线观看 | 天天插天天狠 | 午夜日韩电影 | 午夜影院在线视频 | 色屁屁ts人妖系列二区 | 欧美一级看片 | 天堂在线中文资源 | 国产熟女一区二区丰满 | 亚洲天堂第一页 | 国产女人与zoxxxx另类 | 91亚色在线观看 | 你懂的在线观看网站 | 国产盗摄一区二区 | 日p视频在线观看 | 五月开心激情 | 韩国无码av片在线观看网站 | 中国女人av | 午夜国产一区二区 | 老鸭窝视频在线观看 | 亚洲天堂男人网 | 日韩精品视频在线观看免费 | 欧美一区二区福利视频 | 操在线视频 | 制服丝袜先锋影音 | 高清国产午夜精品久久久久久 | 国产激情久久久久久熟女老人av | 日本激情视频 | 影音先锋美女 | 久久超碰在线 | 精品一区在线 | 正在播放一区二区 | 久久国产网 | 性色AV无码久久一区二区三 | 在线免费一区二区 | 狠狠操狠狠操 | 这里只有精品视频 | 欧美美女视频 | 欧美男女交配 | 日韩视频一 | 玖玖精品在线视频 | 中文字幕免费在线观看 | 亚洲一区二区精品在线观看 | 狠狠热免费视频 | 国产精品一二三级 | 国产a线 | 黄色一级片a | 九九热视 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 国产无遮挡a片又黄又爽 |