vant自定義二級菜單操作
更新時間:2020年11月02日 11:42:19 作者:馬優(yōu)晨
這篇文章主要介紹了vant自定義二級菜單操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
(1)組件解釋:
本組件是為了解決二級聯(lián)動的效果編寫的,這里使用了省份和城市分開的效果,具體展示效果,可以參考下面。
(2)組件代碼:
<template>
<div>
<button @click="showM">{{ value || "選擇省份" }}</button>
<button @click="showC">{{ value2 || "選擇城市" }}</button>
<!-- 省份 -->
<van-popup v-model="showPicker" position="bottom">
<van-picker
show-toolbar
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup>
<!-- 城市 -->
<van-popup v-model="showPicker2" position="bottom">
<van-picker
show-toolbar
:columns="columns2"
@confirm="onConfirm2"
@cancel="showPicker2 = false"
/>
</van-popup>
</div>
</template>
<script>
export default {
mounted() {},
data() {
return {
value: "",
value2: "",
columns: ["杭州", "北京", "海南省"],
city: [
{
name: "杭州",
value: ["廣州", "佛山"]
},
{
name: "北京",
value: ["海淀", "廊坊"]
},
{
name: "海南省",
value: ["三亞", "海口"]
}
],
showPicker: false,
showPicker2: false,
columns2: []
};
},
methods: {
onConfirm(value) {
this.value = value;
this.value2 = "";
this.showPicker = false;
},
onConfirm2(value) {
this.value2 = value;
this.showPicker2 = false;
},
showM() {
this.showPicker = true;
},
showC() {
if (this.value) {
let self = this;
self.showPicker2 = true;
self.city.forEach(v => {
if (v.name == self.value) {
self.value2 = self.name;
self.columns2 = v.value;
}
});
} else {
}
}
},
components: {}
};
</script>
<style lang="scss" scoped>
</style>
(3)展示效果:

還可以結合篩選功能使用:

補充知識:vant二級聯(lián)動picker選擇器
我就廢話不多說了,大家還是直接看代碼吧~
<van-picker :columns="columns" @change="onChange" />
const citys = {
'浙江': ['杭州', '寧波', '溫州', '嘉興', '湖州'],
'福建': ['福州', '廈門', '莆田', '三明', '泉州']
};
data:{
columns: [
{
values: Object.keys(citys),
className: 'column1'
},
{
values: citys['浙江'],
className: 'column2',
defaultIndex: 2
}
],
}
onChange(picker, values) {
picker.setColumnValues(1, citys[values[0]]);
console.log(values)
},
以上這篇vant自定義二級菜單操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Vue中消息橫向滾動時setInterval清不掉的問題及解決方法
最近在做項目時,需要進行兩個組件聯(lián)動,一個輪詢獲取到消息,然后將其傳遞給另外一個組件進行橫向滾動展示,結果滾動的速度越來越快。接下來通過本文給大家分享Vue中消息橫向滾動時setInterval清不掉的問題及解決方法,感興趣的朋友一起看看吧2019-08-08
vue-element-admin中node-sass換成dart-sass,安裝依賴報code?128多種問題的解決
這篇文章主要介紹了vue-element-admin中node-sass換成dart-sass,安裝依賴報code?128多種問題的解決方法,本文給大家分享問題原因分析及解決方法,需要的朋友可以參考下2023-02-02

