Vant3 AddressEdit 地址編輯

2021-09-14 11:04 更新

介紹

收貨地址編輯組件,用于新建、更新、刪除收貨地址。

實例演示

引入

通過以下方式來全局注冊組件,更多注冊方式請參考組件注冊。

import { createApp } from 'vue';
import { AddressEdit } from 'vant';

const app = createApp();
app.use(AddressEdit);

代碼演示

基礎(chǔ)用法

<van-address-edit
  :area-list="areaList"
  show-postal
  show-delete
  show-set-default
  show-search-result
  :search-result="searchResult"
  :area-columns-placeholder="['請選擇', '請選擇', '請選擇']"
  @save="onSave"
  @delete="onDelete"
  @change-detail="onChangeDetail"
/>
import { ref } from 'vue';
import { Toast } from 'vant';

export default {
  setup() {
    const searchResult = ref([]);

    const onSave = () => Toast('save');
    const onDelete = () => Toast('delete');
    const onChangeDetail = (val) => {
      if (val) {
        searchResult.value = [
          {
            name: '黃龍萬科中心',
            address: '杭州市西湖區(qū)',
          },
        ];
      } else {
        searchResult.value = [];
      }
    };

    return {
      onSave,
      onDelete,
      areaList,
      searchResult,
      onChangeDetail,
    };
  },
};

API

Props

參數(shù) 說明 類型 默認(rèn)值
area-list 地區(qū)列表 object -
area-columns-placeholder 地區(qū)選擇列占位提示文字 string[] []
area-placeholder 地區(qū)輸入框占位提示文字 string 選擇省 / 市 / 區(qū)
address-info 收貨人信息初始值 AddressInfo {}
search-result 詳細(xì)地址搜索結(jié)果 SearchResult[] []
show-postal 是否顯示郵政編碼 boolean false
show-delete 是否顯示刪除按鈕 boolean false
show-set-default 是否顯示默認(rèn)地址欄 boolean false
show-search-result 是否顯示搜索結(jié)果 boolean false
show-area 是否顯示地區(qū) boolean true
show-detail 是否顯示詳細(xì)地址 boolean true
disable-area 是否禁用地區(qū)選擇 boolean false
save-button-text 保存按鈕文字 string 保存
delete-button-text 刪除按鈕文字 string 刪除
detail-rows 詳細(xì)地址輸入框行數(shù) number | string 1
detail-maxlength 詳細(xì)地址最大長度 number | string 200
is-saving 是否顯示保存按鈕加載動畫 boolean false
is-deleting 是否顯示刪除按鈕加載動畫 boolean false
tel-validator 手機(jī)號格式校驗函數(shù) string => boolean -
tel-maxlength 手機(jī)號最大長度 number | string -
postal-validator 郵政編碼格式校驗函數(shù) string => boolean -
validator 自定義校驗函數(shù) (key, val) => string -

Events

事件名 說明 回調(diào)參數(shù)
save 點擊保存按鈕時觸發(fā) content:表單內(nèi)容
focus 輸入框聚焦時觸發(fā) key: 聚焦的輸入框?qū)?yīng)的 key
delete 確認(rèn)刪除地址時觸發(fā) content:表單內(nèi)容
cancel-delete 取消刪除地址時觸發(fā) content:表單內(nèi)容
select-search 選中搜索結(jié)果時觸發(fā) value: 搜索結(jié)果
click-area 點擊收件地區(qū)時觸發(fā) -
change-area 修改收件地區(qū)時觸發(fā) values: 地區(qū)信息
change-detail 修改詳細(xì)地址時觸發(fā) value: 詳細(xì)地址內(nèi)容
change-default 切換是否使用默認(rèn)地址時觸發(fā) value: 是否選中

Slots

名稱 說明
default 在郵政編碼下方插入內(nèi)容

方法

通過 ref 可以獲取到 AddressEdit 實例并調(diào)用實例方法,詳見組件實例方法。

方法名 說明 參數(shù) 返回值
setAddressDetail 設(shè)置詳細(xì)地址 addressDetail: string -

類型定義

通過 AddressEditInstance 獲取 AddressEdit 實例的類型定義。

import { ref } from 'vue';
import type { AddressEditInstance } from 'vant';

const addressEditRef = ref<AddressEditInstance>();

addressEditRef.value?.setAddressDetail('');

AddressInfo 數(shù)據(jù)格式

注意:AddressInfo 僅作為初始值傳入,表單最終內(nèi)容可以在 save 事件中獲取。

key 說明 類型
name 收貨人姓名 string
tel 收貨人手機(jī)號 string
province 省份 string
city 城市 string
county 區(qū)縣 string
addressDetail 詳細(xì)地址 string
areaCode 地區(qū)編碼,通過 省市區(qū)選擇 獲?。ū靥睿?/td> string
postalCode 郵政編碼 string
isDefault 是否為默認(rèn)地址 boolean

SearchResult 數(shù)據(jù)格式

key 說明 類型
name 地名 string
address 詳細(xì)地址 string

省市縣列表數(shù)據(jù)格式

請參考 Area 組件。

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請參考 ConfigProvider 組件。

名稱 默認(rèn)值 描述
--van-address-edit-padding var(--van-padding-sm) -
--van-address-edit-buttons-padding var(--van-padding-xl) var(--van-padding-base) -
--van-address-edit-button-margin-bottom var(--van-padding-sm) -
--van-address-edit-button-font-size var(--van-font-size-lg) -
--van-address-edit-detail-finish-color var(--van-primary-color) -
--van-address-edit-detail-finish-font-size var(--van-font-size-sm) -


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號