使用vant-picker實現(xiàn)自定義內容,根據(jù)內容添加圖標
前言
在使用vant的框架的時候發(fā)現(xiàn)一件事,他的下拉內容只能輸入文字,不可以是自定義,比如加圖標,所以使用它的class名,然后仿照他的功能給完善了下,可以實現(xiàn)了自定義添加內容
實現(xiàn)效果
vant原來框架的內容:
我經(jīng)過處理以后的效果圖
這里的圖片地址沒有,如果滿足條件,前面就有圖片
實現(xiàn)步驟
1、template部分
我這上面是vant的picker,可以打開看看之前的效果,這里是仿照他的效果實現(xiàn)的功能
<van-popup v-model="showPicker" position="bottom"> <!-- <van-picker--> <!-- show-toolbar--> <!-- :columns="enterpriseList"--> <!-- @cancel="showPicker = false"--> <!-- @confirm="onConfirm"--> <!-- >--> <!-- <an-picker>--> <compicker--> :enterpriseList="enterpriseList" @cancel="showPicker = false" @onConfirm="onConfirm"> </compicker> <div class="van-picker"> <div class="van-hairline--top-bottom van-picker__toolbar"> <div class="van-picker__cancel" @click="showPicker = false">取消</div> <div class="van-picker__confirm" @click="onConfirm(enterpriseList[picker_active])">確認</div> </div> <div class="van-picker__columns" style="height: 220px"> <div class="van-picker-column" @scroll="change_picker_scroll" style="height: 220px;overflow-y: auto;"> <ul class="transition: all 0ms ease 0s; transform: translate3d(0px, 88px, 0px)"style="line-height: 44px"> <li :class='{"van-picker-column__item--selected":picker_active==index}' class="van-ellipsis van-picker-column__item" style="height: 44px" @click="change_picker(item,index)" v-for="(item,index) in enterpriseList" :key="index"> <!-- <img v-if="item.jfzt=='1'" src=""/>--> <span v-if="item.jfzt=='1'"><img src="src"></span> {{item.text}}<> </ul> </div> </div> </div> <an-popup>
2、data部分
picker_active:1,//因為要弄一個上面有空格的效果,所以初始化從第二個開始
3、methods部分
//點擊確定事件 onConfirm(value) { this.enterprise = value; this.showPicker = false; },
/** * 自定義picker得點擊事件 * */ change_picker(item,index) { this.picker_active=index; } ,
//滾動條滾動事件 change_picker_scroll(v){ let scrollTop = v.srcElement.scrollTop; this.picker_active = Math.ceil(scrollTop/44)+1;//向上取整,并加上第一個空格 },
獲取數(shù)據(jù)那里的方法:
this.enterpriseList = this.enterpriseList.map((item) => { return { keyId: item.id, nsrsbh: item.nsrsbh, text: item.nsrmc, jfzt:item.jfzt //是否付費 }; }); //上面加1行空格 this.enterpriseList.unshift({});
到此結束~
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
通過vue.extend實現(xiàn)消息提示彈框的方法記錄
這篇文章主要給大家介紹了關于通過vue.extend實現(xiàn)消息提示彈框的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01詳解如何在vue項目中使用eslint+prettier格式化代碼
在開發(fā)中我們需要一種能夠統(tǒng)一團隊代碼風格的工具,作為強制性的規(guī)范,統(tǒng)一整個項目的代碼風格,這篇文章主要介紹了詳解如何在vue項目中使用eslint+prettier格式化代碼,需要的朋友可以參考下2018-11-11vue實現(xiàn)錄音功能js-audio-recorder帶波浪圖效果的示例
這篇文章主要介紹了vue實現(xiàn)錄音功能js-audio-recorder帶波浪圖效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08vue項目使用md5加密、crypto-js加密、國密sm3及國密sm4的方法
密碼或者其他比較重要東西假如使用明文傳輸中是很危險的,所以就需要前端一些加密協(xié)議,對密碼、手機號、身份證號等信息進行保護,下面這篇文章主要給大家介紹了關于vue項目中使用md5加密、crypto-js加密、國密sm3及國密sm4的相關資料,需要的朋友可以參考下2022-12-12