vant中的picker選擇器自定義選項(xiàng)內(nèi)容
vant picker選擇器自定義選項(xiàng)內(nèi)容
項(xiàng)目中遇到需要在選擇器中展示多行數(shù)據(jù),這里需要用到picker的自定義選項(xiàng)內(nèi)容。
代碼
<template> <div class="app-container"> <van-nav-bar :title="navTitle" /> <section> <van-form @submit="onSubmit"> <van-field readonly clickable name="picker" :value="value" label="選擇器" placeholder="點(diǎn)擊選擇" @click="showPicker = true" /> <van-popup v-model="showPicker" position="bottom"> <van-picker show-toolbar :columns="columns" value-key="name" item-height="56px" @confirm="onConfirm" @cancel="showPicker = false" > <template #option="option"> <div style="display: flex; flex-direction: column; align-items: center;"> <div>姓名:{{ option.name }}</div> <div>年齡:{{ option.age }}</div> </div> </template> </van-picker> </van-popup> <div style="margin: 16px;"> <van-button round block type="info" native-type="submit">提交</van-button> </div> </van-form> </section> </div> </template>
<script> export default { name: 'Form', data() { return { navTitle: '表單', value: '', columns: [{ name: '張三', age: 18 }, { name: '李四', age: 19 }], showPicker: false } }, methods: { onConfirm(value) { this.value = value this.showPicker = false }, onSubmit(values) { console.log('submit', values) } } } </script>
<style lang="less" scoped> section { padding: 20px; } </style>
效果圖
vant 使用picker二級(jí)級(jí)聯(lián)
其實(shí)邏輯比較簡(jiǎn)單(話不多說(shuō)上代碼)
<van-field readonly clickable name="bankId" label="機(jī)構(gòu)名稱" :value="bankIdValue" placeholder="選擇機(jī)構(gòu)" @click="bankIdShowPicker = true" /> <van-popup v-model="bankIdShowPicker" round position="bottom"> <van-picker show-toolbar :columns="bankId_columns" @cancel="bankIdShowPicker = false" @confirm="bankIdShowPickerOnConfirm" /> </van-popup>
export default { data() { bankIdShowPicker: false, bankId_columns: [ { text: "", id: "", children: [ { text: "", id: "", }, { text: "", id: "", }, ], }, ], bankIdMap: {}, } mounted() { console.log("mounted........."); this.getBranchList(); }, methods: { getBranchList() { //此處調(diào)用的接口 this.$get("/user/findBranchId") .then((res) => { console.log("res.data", res.data); if (res.data.resultCode == "0") { this.bankId_columns[0].text = res.data.data.branchName; var childrenBankList = res.data.data.childBranchList; let map = new Map(); this.bankId_columns[0].children = []; for (let i = 0; i < childrenBankList.length; i++) { let childrenBanObject = { text: "", id: "", }; childrenBanObject.text = childrenBankList[i].branchName; childrenBanObject.id = childrenBankList[i].id; this.bankId_columns[0].children.push(childrenBanObject);//插入數(shù)據(jù) map.set(childrenBankList[i].branchName, childrenBankList[i].id); } this.bankIdMap = map; } else { Toast(res.data.resultDesc); } }) .catch((err) => { Toast("出了點(diǎn)小問(wèn)題"); throw err; }); }, //選擇器確認(rèn)按鈕 bankIdShowPickerOnConfirm(value) { console.log("value", value); console.log("children", this.bankId_columns[0].children); this.bankIdValue = value[1]; this.childrenBankIdValue = this.bankIdMap.get(value[1]); console.log("childrenBankIdValue", this.childrenBankIdValue); this.bankIdShowPicker = false; }, }
這是后臺(tái)返回?cái)?shù)據(jù)
來(lái)看效果!!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue項(xiàng)目依賴升級(jí)報(bào)錯(cuò)處理方式
這篇文章主要介紹了vue項(xiàng)目依賴升級(jí)報(bào)錯(cuò)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue.js中使用echarts實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)刷新功能
這篇文章主要介紹了vue.js中使用echarts實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)刷新功能,需要的朋友可以參考下2019-04-04使用Karma做vue組件單元測(cè)試的實(shí)現(xiàn)
這篇文章主要介紹了使用Karma做vue組件單元測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01vue中定義全局聲明vscode插件提示找不到問(wèn)題解決
這篇文章主要為大家介紹了vue中定義全局聲明vscode插件提示找不到問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05vue-element-admin如何設(shè)置默認(rèn)語(yǔ)言
這篇文章主要介紹了vue-element-admin如何設(shè)置默認(rèn)語(yǔ)言,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04Vue項(xiàng)目中大文件切片上傳實(shí)現(xiàn)秒傳與斷點(diǎn)續(xù)傳的詳細(xì)實(shí)現(xiàn)過(guò)程
這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中大文件切片上傳實(shí)現(xiàn)秒傳與斷點(diǎn)續(xù)傳的詳細(xì)實(shí)現(xiàn)過(guò)程, 在開(kāi)發(fā)中,如果上傳的文件過(guò)大,可以考慮分片上傳,分片就是說(shuō)將文件拆分來(lái)進(jìn)行上傳,將各個(gè)文件的切片傳遞給后臺(tái),然后后臺(tái)再進(jìn)行合并,需要的朋友可以參考下2023-08-08vue實(shí)現(xiàn)背景圖片鋪滿整個(gè)屏幕(適配所有機(jī)型)
在網(wǎng)頁(yè)設(shè)計(jì)中,背景全屏是一種常見(jiàn)的視覺(jué)效果,通過(guò)正確的CSS樣式設(shè)置,可以實(shí)現(xiàn)背景全屏且內(nèi)容在固定一屏大小內(nèi)完全顯示,如果內(nèi)容超出一屏,則可以通過(guò)滾動(dòng)條查看剩余內(nèi)容,這種設(shè)計(jì)可以提升用戶的瀏覽體驗(yàn),使網(wǎng)頁(yè)看起來(lái)更加整潔和專業(yè)2024-10-10