vant/src/address-edit/README.md
2020-01-10 21:06:05 +08:00

137 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AddressEdit
### Install
``` javascript
import Vue from 'vue';
import { AddressEdit } from 'vant';
Vue.use(AddressEdit);
```
## Usage
### Basic Usage
```html
<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"
/>
```
```javascript
export default {
data() {
return {
areaList,
searchResult: []
}
},
methods: {
onSave() {
Toast('save');
},
onDelete() {
Toast('delete');
},
onChangeDetail(val) {
if (val) {
this.searchResult = [{
name: '黄龙万科中心',
address: '杭州市西湖区'
}];
} else {
this.searchResult = [];
}
}
}
}
```
## API
### Props
| Attribute | Description | Type | Default |
|------|------|------|------|
| area-list | Area List | *object* | - |
| area-columns-placeholder `v2.2.5` | placeholder of area columns | *string[]* | `[]` |
| address-info | Address Info | *AddressInfo* | `{}` |
| search-result | Address search result | *SearchResult[]* | `[]` |
| show-postal | Whether to show postal field | *boolean* | `false` |
| show-delete | Whether to show delete button | *boolean* | `false` |
| show-set-default | Whether to show default address switch | *boolean* | `false` |
| show-search-result | Whether to show address search result | *boolean* | `false` |
| save-button-text | Save button text | *string* | `Save` |
| delete-button-text | Delete button text | *string* | `Delete` |
| detail-rows | Detail input rows | *number* | `1` |
| detail-maxlength `v2.0.4` | Detail maxlength | *number* | `200` |
| is-saving | Whether to show save button loading status | *boolean* | `false` |
| is-deleting | Whether to show delete button loading status | *boolean* | `false` |
| tel-validator | The method to validate tel | *(tel: string) => boolean* | - |
| postal-validator `v2.1.2` | The method to validate postal | *(tel: string) => boolean* | - |
| validator | Custom validator | *(key, value) => string* | - |
### Events
| Event | Description | Arguments |
|------|------|------|
| save | Triggered when click save button | contentform content |
| focus | Triggered when focus field | key: field name |
| delete | Triggered when confirm delete | contentform content |
| cancel-delete | Triggered when cancel delete | contentform content |
| select-search | Triggered when select search result | value: search content |
| change-area | Triggered when change area | values: area values |
| change-detail | Triggered when address detail changed | value: address detail |
| change-default | Triggered when switch default address | value: checked |
### Slots
| Name | Description |
|------|------|
| default | Custom content below postal |
### Methods
Use [ref](https://vuejs.org/v2/api/#ref) to get AddressEdit instance and call instance methods
| Name | Description | Attribute | Return value |
|------|------|------|------|
| setAddressDetail | Set address detail | addressDetail: string | - |
### AddressInfo Data Structure
| key | Description | Type |
|------|------|------|
| id | Address Id | *string \| number* |
| name | Name | *string* |
| tel | Phone | *string* |
| province | Province | *string* |
| city | City | *string* |
| county | County | *string* |
| addressDetail | Detailed Address | *string* |
| areaCode | Area code | *string* |
| postalCode | Postal code | *string* |
| isDefault | Is default address | *boolean* |
### SearchResult Data Structure
| key | Description | Type |
|------|------|------|
| name | Name | *string* |
| address | Address | *string* |
### Area Data Structure
Please refer to [Area](#/en-US/area) component。