AddressEdit 地址编辑

介绍

收货地址编辑组件,用于新建、更新、删除收货地址。

引入

  1. import { createApp } from 'vue';
  2. import { AddressEdit } from 'vant';
  3. const app = createApp();
  4. app.use(AddressEdit);

代码演示

基础用法

  1. <van-address-edit
  2. :area-list="areaList"
  3. show-postal
  4. show-delete
  5. show-set-default
  6. show-search-result
  7. :search-result="searchResult"
  8. :area-columns-placeholder="['请选择', '请选择', '请选择']"
  9. @save="onSave"
  10. @delete="onDelete"
  11. @change-detail="onChangeDetail"
  12. />
  1. import { ref } from 'vue';
  2. import { Toast } from 'vant';
  3. export default {
  4. setup() {
  5. const searchResult = ref([]);
  6. const onSave = () => {
  7. Toast('save');
  8. };
  9. const onDelete = () => {
  10. Toast('delete');
  11. };
  12. const onChangeDetail = (val) => {
  13. if (val) {
  14. searchResult.value = [
  15. {
  16. name: '黄龙万科中心',
  17. address: '杭州市西湖区',
  18. },
  19. ];
  20. } else {
  21. searchResult.value = [];
  22. }
  23. };
  24. return {
  25. onSave,
  26. onDelete,
  27. areaList,
  28. searchResult,
  29. onChangeDetail,
  30. };
  31. },
  32. };

API

Props

参数说明类型默认值
area-list地区列表object-
area-columns-placeholder地区选择列占位提示文字string[][]
area-placeholder v2.6.1地区输入框占位提示文字string选择省 / 市 / 区
address-info收货人信息初始值AddressInfo{}
search-result详细地址搜索结果SearchResult[][]
show-postal是否显示邮政编码booleanfalse
show-delete是否显示删除按钮booleanfalse
show-set-default是否显示默认地址栏booleanfalse
show-search-result是否显示搜索结果booleanfalse
show-area是否显示地区booleantrue
show-detail是否显示详细地址booleantrue
disable-area v2.5.0是否禁用地区选择booleanfalse
save-button-text保存按钮文字string保存
delete-button-text删除按钮文字string删除
detail-rows详细地址输入框行数number | string1
detail-maxlength详细地址最大长度number | string200
is-saving是否显示保存按钮加载动画booleanfalse
is-deleting是否显示删除按钮加载动画booleanfalse
tel-validator手机号格式校验函数string => boolean-
tel-maxlength v2.10.0手机号最大长度number | string-
postal-validator邮政编码格式校验函数string => boolean-
validator自定义校验函数(key, val) => string-

Events

事件名说明回调参数
save点击保存按钮时触发content:表单内容
focus输入框聚焦时触发key: 聚焦的输入框对应的 key
delete确认删除地址时触发content:表单内容
cancel-delete取消删除地址时触发content:表单内容
select-search选中搜索结果时触发value: 搜索结果
click-area v2.5.9点击收件地区时触发-
change-area修改收件地区时触发values: 地区信息
change-detail修改详细地址时触发value: 详细地址内容
change-default切换是否使用默认地址时触发value: 是否选中

Slots

名称说明
default在邮政编码下方插入内容

方法

通过 ref 可以获取到 AddressEdit 实例并调用实例方法,详见组件实例方法

方法名说明参数返回值
setAddressDetail设置详细地址addressDetail: string-

AddressInfo 数据格式

注意:AddressInfo 仅作为初始值传入,表单最终内容可以在 save 事件中获取

key说明类型
id每条地址的唯一标识number | string
name收货人姓名string
tel收货人手机号string
province省份string
city城市string
county区县string
addressDetail详细地址string
areaCode地区编码,通过省市区选择获取(必填)string
postalCode邮政编码string
isDefault是否为默认地址boolean

SearchResult 数据格式

key说明类型
name地名string
address详细地址string

省市县列表数据格式

请参考 Area 组件。

样式变量

组件提供了下列 Less 变量,可用于自定义样式,使用方法请参考主题定制

名称默认值描述
@address-edit-padding@padding-sm-
@address-edit-buttons-padding@padding-xl @padding-base-
@address-edit-button-margin-bottom@padding-sm-
@address-edit-detail-finish-color@blue-
@address-edit-detail-finish-font-size@font-size-sm-

AddressEdit 地址编辑 - 图1