收貨地址編輯組件,用于新建、更新、刪除收貨地址。
通過(guò)以下方式來(lái)全局注冊(cè)組件,更多注冊(cè)方式請(qǐng)參考組件注冊(cè)。
import { createApp } from 'vue';
import { AddressEdit } from 'vant';
const app = createApp();
app.use(AddressEdit);
<van-address-edit
:area-list="areaList"
show-postal
show-delete
show-set-default
show-search-result
:search-result="searchResult"
:area-columns-placeholder="['請(qǐng)選擇', '請(qǐng)選擇', '請(qǐng)選擇']"
@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: '黃龍萬(wàn)科中心',
address: '杭州市西湖區(qū)',
},
];
} else {
searchResult.value = [];
}
};
return {
onSave,
onDelete,
areaList,
searchResult,
onChangeDetail,
};
},
};
參數(shù) | 說(shuō)明 | 類型 | 默認(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ì)地址最大長(zhǎng)度 | number | string | 200
|
is-saving | 是否顯示保存按鈕加載動(dòng)畫 | boolean | false
|
is-deleting | 是否顯示刪除按鈕加載動(dòng)畫 | boolean | false
|
tel-validator | 手機(jī)號(hào)格式校驗(yàn)函數(shù) | string => boolean | - |
tel-maxlength | 手機(jī)號(hào)最大長(zhǎng)度 | number | string | - |
postal-validator | 郵政編碼格式校驗(yàn)函數(shù) | string => boolean | - |
validator | 自定義校驗(yàn)函數(shù) | (key, val) => string | - |
事件名 | 說(shuō)明 | 回調(diào)參數(shù) |
---|---|---|
save | 點(diǎn)擊保存按鈕時(shí)觸發(fā) | content:表單內(nèi)容 |
focus | 輸入框聚焦時(shí)觸發(fā) | key: 聚焦的輸入框?qū)?yīng)的 key |
delete | 確認(rèn)刪除地址時(shí)觸發(fā) | content:表單內(nèi)容 |
cancel-delete | 取消刪除地址時(shí)觸發(fā) | content:表單內(nèi)容 |
select-search | 選中搜索結(jié)果時(shí)觸發(fā) | value: 搜索結(jié)果 |
click-area | 點(diǎn)擊收件地區(qū)時(shí)觸發(fā) | - |
change-area | 修改收件地區(qū)時(shí)觸發(fā) | values: 地區(qū)信息 |
change-detail | 修改詳細(xì)地址時(shí)觸發(fā) | value: 詳細(xì)地址內(nèi)容 |
change-default | 切換是否使用默認(rèn)地址時(shí)觸發(fā) | value: 是否選中 |
名稱 | 說(shuō)明 |
---|---|
default | 在郵政編碼下方插入內(nèi)容 |
通過(guò) ref 可以獲取到 AddressEdit 實(shí)例并調(diào)用實(shí)例方法,詳見組件實(shí)例方法。
方法名 | 說(shuō)明 | 參數(shù) | 返回值 |
---|---|---|---|
setAddressDetail | 設(shè)置詳細(xì)地址 | addressDetail: string | - |
通過(guò) AddressEditInstance 獲取 AddressEdit 實(shí)例的類型定義。
import { ref } from 'vue';
import type { AddressEditInstance } from 'vant';
const addressEditRef = ref<AddressEditInstance>();
addressEditRef.value?.setAddressDetail('');
注意:AddressInfo 僅作為初始值傳入,表單最終內(nèi)容可以在 save 事件中獲取。
key | 說(shuō)明 | 類型 |
---|---|---|
name | 收貨人姓名 | string |
tel | 收貨人手機(jī)號(hào) | string |
province | 省份 | string |
city | 城市 | string |
county | 區(qū)縣 | string |
addressDetail | 詳細(xì)地址 | string |
areaCode | 地區(qū)編碼,通過(guò) 省市區(qū)選擇 獲?。ū靥睿?/td> | string |
postalCode | 郵政編碼 | string |
isDefault | 是否為默認(rèn)地址 | boolean |
key | 說(shuō)明 | 類型 |
---|---|---|
name | 地名 | string |
address | 詳細(xì)地址 | string |
請(qǐng)參考 Area 組件。
組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請(qǐng)參考 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) | - |
更多建議: