Vant Area 省市區(qū)選擇

2022-05-31 13:40 更新

介紹

省市區(qū)三級(jí)聯(lián)動(dòng)選擇,通常與 彈出層 組件配合使用

引入

import Vue from 'vue';
import { Area } from 'vant';

Vue.use(Area);

代碼演示

基礎(chǔ)用法

要初始化一個(gè)Area組件,你需要傳入一個(gè)area-list屬性,數(shù)據(jù)格式具體可看下面數(shù)據(jù)格式章節(jié)

<van-area :area-list="areaList" />

選中省市區(qū)

如果想選中某個(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)題"
/>

API

Props

參數(shù)說(shuō)明類(lèi)型默認(rèn)值
value當(dāng)前選中的省市區(qū)codestring-
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)booleanfalse
item-height選項(xiàng)高度number | string44
columns-num顯示列數(shù),3-省市區(qū),2-省市,1-省number | string3
visible-item-count可見(jiàn)的選項(xiàng)個(gè)數(shù)number | string5
swipe-duration v2.2.13快速滑動(dòng)時(shí)慣性滾動(dòng)的時(shí)長(zhǎng),單位msnumber | string1000
is-oversea-code v2.1.4根據(jù)code校驗(yàn)海外地址,海外地址會(huì)劃分至單獨(dú)的分類(lèi)() => boolean-

Events

事件說(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-

省市區(qū)列表數(shù)據(jù)格式

整體是一個(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

點(diǎn)擊完成時(shí)返回的數(shù)據(jù)格式

返回的數(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)問(wèn)題

在桌面端無(wú)法操作組件?

參見(jiàn)在桌面端使用


實(shí)例演示

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)