Vant Area 省市區(qū)選擇

2022-05-31 13:40 更新

介紹

省市區(qū)三級聯動選擇,通常與 彈出層 組件配合使用

引入

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

Vue.use(Area);

代碼演示

基礎用法

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

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

選中省市區(qū)

如果想選中某個省市區(qū),需要傳入一個value屬性,綁定對應的省市區(qū)code

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

配置顯示列

可以通過columns-num屬性配置省市區(qū)顯示的列數,默認情況下會顯示省市區(qū),當你設置為2,則只會顯示省市選擇

<van-area :area-list="areaList" :columns-num="2" title="標題" />

配置列占位提示文字

可以通過columns-placeholder屬性配置每一列的占位提示文字

<van-area
  :area-list="areaList"
  :columns-placeholder="['請選擇', '請選擇', '請選擇']"
  title="標題"
/>

API

Props

參數說明類型默認值
value當前選中的省市區(qū)codestring-
title頂部欄標題string-
confirm-button-text確認按鈕文字string確認
cancel-button-text取消按鈕文字string取消
area-list省市區(qū)數據,格式見下方object-
columns-placeholder v2.2.5列占位提示文字string[][]
loading是否顯示加載狀態(tài)booleanfalse
item-height選項高度number | string44
columns-num顯示列數,3-省市區(qū),2-省市,1-省number | string3
visible-item-count可見的選項個數number | string5
swipe-duration v2.2.13快速滑動時慣性滾動的時長,單位msnumber | string1000
is-oversea-code v2.1.4根據code校驗海外地址,海外地址會劃分至單獨的分類() => boolean-

Events

事件說明回調參數
confirm點擊右上方完成按鈕一個數組參數,具體格式看下方數據格式章節(jié)
cancel點擊取消按鈕時-
change選項改變時觸發(fā)Picker 實例,所有列選中值,當前列對應的索引

方法

通過 ref 可以獲取到 Area 實例并調用實例方法,詳見 組件實例方法

方法名說明參數返回值
reset根據 code 重置所有選項,若不傳 code,則重置到第一項code?: string-

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

整體是一個 object,包含 province_list, city_list, county_list 三個 key。

每項以省市區(qū)編碼作為 key,省市區(qū)名字作為 value。編碼為 6 位數字,前兩位代表省份,中間兩位代表城市,后兩位代表區(qū)縣,以 0 補足 6 位。如北京編碼為 11,以零補足 6 位,為 110000。

AreaList具體格式如下:

{
  province_list: {
    110000: '北京市',
    120000: '天津市'
  },
  city_list: {
    110100: '北京市',
    110200: '縣',
    120100: '天津市',
    120200: '縣'
  },
  county_list: {
    110101: '東城區(qū)',
    110102: '西城區(qū)',
    110105: '朝陽區(qū)',
    110106: '豐臺區(qū)'
    120101: '和平區(qū)',
    120102: '河東區(qū)',
    120103: '河西區(qū)',
    120104: '南開區(qū)',
    120105: '河北區(qū)',
    // ....
  }
}

完整數據見 Area.json

點擊完成時返回的數據格式

返回的數據整體為一個數組,數組內包含 columnsNum 個數據, 每個數據對應一列選項中被選中的數據。

code 代表被選中的地區(qū)編碼, name 代表被選中的地區(qū)名稱

[
  {
    code: '110000',
    name: '北京市'
  },
  {
    code: '110100',
    name: '北京市'
  },
  {
    code: '110101',
    name: '東城區(qū)'
  }
];

常見問題

在桌面端無法操作組件?

參見在桌面端使用。


實例演示

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號