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)名稱(chēng)"
: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è)參考,也希望大家多多支持腳本之家。
- Vue使用vant實(shí)現(xiàn)日期選擇器功能
- 關(guān)于vant的時(shí)間選擇器使用方式
- vant4 封裝日期段選擇器的實(shí)現(xiàn)
- Vue配合Vant使用時(shí)area省市區(qū)選擇器的使用方式
- Vant picker選擇器設(shè)置默認(rèn)值導(dǎo)致選擇器失效的解決
- Vant?Weapp組件picker選擇器初始默認(rèn)選中問(wèn)題
- 基于Vant UI框架實(shí)現(xiàn)時(shí)間段選擇器
- Vue 用Vant實(shí)現(xiàn)時(shí)間選擇器的示例代碼
- vant實(shí)現(xiàn)自定義日期時(shí)間選擇器(年月日時(shí)分秒)
相關(guān)文章
基于webpack4+vue-cli3項(xiàng)目實(shí)現(xiàn)換膚功能
這篇文章主要介紹了基于webpack4+vue-cli3項(xiàng)目的換膚功能,文中是通過(guò)scss+style-loader/useable做換膚功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Vue結(jié)合路由配置遞歸實(shí)現(xiàn)菜單欄功能
這篇文章主要介紹了Vue結(jié)合路由配置遞歸實(shí)現(xiàn)菜單欄,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)火鍋工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法
這篇文章主要介紹了Vue3 去除 vue warn 及生產(chǎn)環(huán)境去除console.log的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
vue.js提交按鈕時(shí)進(jìn)行簡(jiǎn)單的if判斷表達(dá)式詳解
這篇文章主要給大家介紹了關(guān)于vue.js提交按鈕時(shí)如何進(jìn)行簡(jiǎn)單的if判斷表達(dá)式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Vue.config.productionTip = false 不起作用的問(wèn)題及解決
本文主要介紹了Vue.config.productionTip = false 不起作用的問(wèn)題及解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
vue+jquery+lodash實(shí)現(xiàn)滑動(dòng)時(shí)頂部懸浮固定效果
這篇文章主要為大家詳細(xì)介紹了vue+jquery+lodash實(shí)現(xiàn)滑動(dòng)時(shí)頂部懸浮固定效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
vue-router清除url地址欄路由參數(shù)的操作代碼
這篇文章主要介紹了vue-router清除url地址欄路由參數(shù),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2015-11-11
vue+el-menu實(shí)現(xiàn)菜單欄無(wú)限多層級(jí)分類(lèi)
這篇文章主要為大家詳細(xì)介紹了vue+el-menu實(shí)現(xiàn)菜單欄無(wú)限多層級(jí)分類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
vue-router使用next()跳轉(zhuǎn)到指定路徑時(shí)會(huì)無(wú)限循環(huán)問(wèn)題
這篇文章主要介紹了vue-router使用next()跳轉(zhuǎn)到指定路徑時(shí)會(huì)無(wú)限循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11

