Skip to content

AddressEdit 地址编辑 - Vant 4

AddressEdit 地址编辑

📍 介绍

地址编辑组件是电商应用的必备工具!它提供完整的地址管理功能,支持新建、更新、删除地址信息。无论是收货地址、发票地址还是其他地址信息,都能轻松搞定,让用户享受便捷的地址管理体验。

📦 引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

js
import { createApp } from'vue'; import { AddressEdit } from'vant'; const app = createApp(); app.use(AddressEdit);

🎯 代码演示

基础用法

简单几行代码,就能拥有功能完整的地址编辑表单!支持省市区选择、详细地址输入、联系人信息等。

html
js
import { ref } from'vue'; import { showToast } from'vant'; exportdefault { setup() { const searchResult = ref([]); constonSave = () => showToast('save'); constonDelete = () => showToast('delete'); constonChangeDetail = (val) => { if (val) { searchResult.value = [ { name: '黄龙万科中心', address: '杭州市西湖区', }, ]; } else { searchResult.value = []; } }; return { onSave, onDelete, areaList, searchResult, onChangeDetail, }; }, };

API

Props

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

Events

事件名说明回调参数
save点击保存按钮时触发info: AddressEditInfo
focus输入框聚焦时触发key: string
change v4.7.0nametel 输入框值改变触发{key: string, value: string}
delete确认删除地址时触发info: AddressEditInfo
select-search选中搜索结果时触发value: string
click-area点击收件地区时触发-
change-area修改收件地区时触发selectedOptions: PickerOption[]
change-detail修改详细地址时触发value: string
change-default切换是否使用默认地址时触发checked: boolean

Slots

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

方法

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

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

类型定义

组件导出以下类型定义:

ts
importtype { AddressEditInfo, AddressEditProps, AddressEditInstance, AddressEditSearchItem, } from'vant';

AddressEditInstance 是组件实例的类型,用法如下:

ts
import { ref } from'vue'; importtype { AddressEditInstance } from'vant'; const addressEditRef = ref<AddressEditInstance>(); addressEditRef.value?.setAddressDetail('');

AddressEditInfo 数据格式

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

key说明类型
name姓名string
tel手机号string
province省份string
city城市string
county区县string
addressDetail详细地址string
areaCode地区编码,通过 省市区选择 获取(必填)string

| isDefault | 是否为默认地址 | boolean |

AddressEditSearchItem 数据格式

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

省市县列表数据格式

请参考 Area 省市区选择 组件。

主题定制

样式变量

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

名称默认值描述
--van-address-edit-paddingvar(--van-padding-sm)-
--van-address-edit-buttons-paddingvar(--van-padding-xl) var(--van-padding-base)-
--van-address-edit-button-margin-bottomvar(--van-padding-sm)-
--van-address-edit-button-font-sizevar(--van-font-size-lg)-

🎉 总结

AddressEdit 地址编辑组件是电商应用的得力助手!它提供了完整的地址管理解决方案,从省市区选择到详细地址输入,从联系人信息到默认地址设置,一应俱全。无论是新建地址还是编辑现有地址,都能为用户提供流畅便捷的操作体验。

📚 相关内容

想要了解更多?这些内容可能对你有帮助:

基于Vant构建的企业级移动端解决方案