W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
省市區(qū)三級(jí)聯(lián)動(dòng)選擇,通常與 彈出層 組件配合使用
import Vue from 'vue';
import { Area } from 'vant';
Vue.use(Area);
要初始化一個(gè)Area組件,你需要傳入一個(gè)area-list屬性,數(shù)據(jù)格式具體可看下面數(shù)據(jù)格式章節(jié)
<van-area :area-list="areaList" />
如果想選中某個(gè)省市區(qū),需要傳入一個(gè)value屬性,綁定對(duì)應(yīng)的省市區(qū)code
<van-area :area-list="areaList" value="110101" />
可以通過(guò)columns-num屬性配置省市區(qū)顯示的列數(shù),默認(rèn)情況下會(huì)顯示省市區(qū),當(dāng)你設(shè)置為2,則只會(huì)顯示省市選擇
<van-area :area-list="areaList" :columns-num="2" title="標(biāo)題" />
可以通過(guò)columns-placeholder屬性配置每一列的占位提示文字
<van-area
:area-list="areaList"
:columns-placeholder="['請(qǐng)選擇', '請(qǐng)選擇', '請(qǐng)選擇']"
title="標(biāo)題"
/>
參數(shù) | 說(shuō)明 | 類(lèi)型 | 默認(rèn)值 |
---|---|---|---|
value | 當(dāng)前選中的省市區(qū)code | string | - |
title | 頂部欄標(biāo)題 | string | - |
confirm-button-text | 確認(rèn)按鈕文字 | string | 確認(rèn) |
cancel-button-text | 取消按鈕文字 | string | 取消 |
area-list | 省市區(qū)數(shù)據(jù),格式見(jiàn)下方 | object | - |
columns-placeholder v2.2.5 | 列占位提示文字 | string[] | [] |
loading | 是否顯示加載狀態(tài) | boolean | false |
item-height | 選項(xiàng)高度 | number | string | 44 |
columns-num | 顯示列數(shù),3-省市區(qū),2-省市,1-省 | number | string | 3 |
visible-item-count | 可見(jiàn)的選項(xiàng)個(gè)數(shù) | number | string | 5 |
swipe-duration v2.2.13 | 快速滑動(dòng)時(shí)慣性滾動(dòng)的時(shí)長(zhǎng),單位ms | number | string | 1000 |
is-oversea-code v2.1.4 | 根據(jù)code 校驗(yàn)海外地址,海外地址會(huì)劃分至單獨(dú)的分類(lèi) | () => boolean | - |
事件 | 說(shuō)明 | 回調(diào)參數(shù) |
---|---|---|
confirm | 點(diǎn)擊右上方完成按鈕 | 一個(gè)數(shù)組參數(shù),具體格式看下方數(shù)據(jù)格式章節(jié) |
cancel | 點(diǎn)擊取消按鈕時(shí) | - |
change | 選項(xiàng)改變時(shí)觸發(fā) | Picker 實(shí)例,所有列選中值,當(dāng)前列對(duì)應(yīng)的索引 |
通過(guò) ref 可以獲取到 Area 實(shí)例并調(diào)用實(shí)例方法,詳見(jiàn) 組件實(shí)例方法
方法名 | 說(shuō)明 | 參數(shù) | 返回值 |
---|---|---|---|
reset | 根據(jù) code 重置所有選項(xiàng),若不傳 code,則重置到第一項(xiàng) | code?: string | - |
整體是一個(gè) object,包含 province_list, city_list, county_list 三個(gè) key。
每項(xiàng)以省市區(qū)編碼作為 key,省市區(qū)名字作為 value。編碼為 6 位數(shù)字,前兩位代表省份,中間兩位代表城市,后兩位代表區(qū)縣,以 0 補(bǔ)足 6 位。如北京編碼為 11,以零補(bǔ)足 6 位,為 110000。
AreaList具體格式如下:
{
province_list: {
110000: '北京市',
120000: '天津市'
},
city_list: {
110100: '北京市',
110200: '縣',
120100: '天津市',
120200: '縣'
},
county_list: {
110101: '東城區(qū)',
110102: '西城區(qū)',
110105: '朝陽(yáng)區(qū)',
110106: '豐臺(tái)區(qū)'
120101: '和平區(qū)',
120102: '河?xùn)|區(qū)',
120103: '河西區(qū)',
120104: '南開(kāi)區(qū)',
120105: '河北區(qū)',
// ....
}
}
完整數(shù)據(jù)見(jiàn) Area.json
返回的數(shù)據(jù)整體為一個(gè)數(shù)組,數(shù)組內(nèi)包含 columnsNum 個(gè)數(shù)據(jù), 每個(gè)數(shù)據(jù)對(duì)應(yīng)一列選項(xiàng)中被選中的數(shù)據(jù)。
code 代表被選中的地區(qū)編碼, name 代表被選中的地區(qū)名稱(chēng)
[
{
code: '110000',
name: '北京市'
},
{
code: '110100',
name: '北京市'
},
{
code: '110101',
name: '東城區(qū)'
}
];
參見(jiàn)在桌面端使用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: