import{o as s,a as e,y as d}from"./vue-libs.b44bc779.js";const a={class:"van-doc-markdown-body"},n=d(`

AddressEdit

Intro

Used to create, update, and delete receiving addresses.

Install

Register component globally via app.use, refer to Component Registration for more registration ways.

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

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

Usage

Basic Usage

<van-address-edit
  :area-list="areaList"
  show-postal
  show-delete
  show-set-default
  show-search-result
  :search-result="searchResult"
  :area-columns-placeholder="['Choose', 'Choose', 'Choose']"
  @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: 'Name1',
            address: 'Address',
          },
        ];
      } else {
        searchResult.value = [];
      }
    };

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

API

Props

AttributeDescriptionTypeDefault
area-listArea Listobject-
area-columns-placeholderplaceholder of area columnsstring[][]
area-placeholderplaceholder of area input fieldstringArea
address-infoAddress InfoAddressEditInfo{}
search-resultAddress search resultAddressEditSearchItem[][]
show-postalWhether to show postal fieldbooleanfalse
show-deleteWhether to show delete buttonbooleanfalse
show-set-defaultWhether to show default address switchbooleanfalse
show-search-resultWhether to show address search resultbooleanfalse
show-areaWhether to show area cellbooleantrue
show-detailWhether to show detail fieldbooleantrue
disable-areaWhether to disable area selectbooleanfalse
save-button-textSave button textstringSave
delete-button-textDelete button textstringDelete
detail-rowsDetail input rowsnumber | string1
detail-maxlengthDetail maxlengthnumber | string200
is-savingWhether to show save button loading statusbooleanfalse
is-deletingWhether to show delete button loading statusbooleanfalse
tel-validatorThe method to validate tel(tel: string) => boolean-
tel-maxlengthTel maxlengthnumber | string-
postal-validatorThe method to validate postal(tel: string) => boolean-
validatorCustom validator(key, val) => string-

Events

EventDescriptionArguments
saveEmitted when the save button is clickedcontent: form content
focusEmitted when field is focusedkey: field name
deleteEmitted when confirming deletecontent: form content
select-searchEmitted when a search result is selectedvalue: search content
click-areaEmitted when the area field is clicked-
change-areaEmitted when area changedvalues: area values
change-detailEmitted when address detail changedvalue: address detail
change-defaultEmitted when switching default addressvalue: checked

Slots

NameDescription
defaultCustom content below postal

Methods

Use ref to get AddressEdit instance and call instance methods.

NameDescriptionAttributeReturn value
setAddressDetailSet address detailaddressDetail: string-

Types

The component exports the following type definitions:

import type {
  AddressEditInfo,
  AddressEditProps,
  AddressEditInstance,
  AddressEditSearchItem,
} from 'vant';

AddressEditInstance is the type of component instance:

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

const addressEditRef = ref<AddressEditInstance>();

addressEditRef.value?.setAddressDetail('');

AddressEditInfo Data Structure

keyDescriptionType
nameNamestring
telPhonestring
provinceProvincestring
cityCitystring
countyCountystring
addressDetailDetailed Addressstring
areaCodeArea codestring
postalCodePostal codestring
isDefaultIs default addressboolean

AddressEditSearchItem Data Structure

keyDescriptionType
nameNamestring
addressAddressstring

Area Data Structure

Please refer to Area component.

Theming

CSS Variables

The component provides the following CSS variables, which can be used to customize styles. Please refer to ConfigProvider component.

NameDefault ValueDescription
--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)-
`,16),r=[n],p={__name:"README",setup(l,{expose:t}){return t({frontmatter:{}}),(c,i)=>(s(),e("div",a,r))}};export{p as default};