vant/src/address-edit/README.zh-CN.md

147 lines
5.1 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 地址编辑
### 引入
```js
import Vue from 'vue';
import { AddressEdit } from 'vant';
Vue.use(AddressEdit);
```
## 代码演示
### 基础用法
```html
<van-address-edit
:area-list="areaList"
show-postal
show-delete
show-set-default
show-search-result
:search-result="searchResult"
:area-columns-placeholder="['请选择', '请选择', '请选择']"
@save="onSave"
@delete="onDelete"
@change-detail="onChangeDetail"
/>
```
```js
import { Toast } from 'vant';
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
| 参数 | 说明 | 类型 | 默认值 |
| --- | --- | --- | --- |
| area-list | 地区列表 | _object_ | - |
| area-columns-placeholder `v2.2.5` | 地区选择列占位提示文字 | _string[]_ | `[]` |
| area-placeholder `v2.6.1` | 地区输入框占位提示文字 | _string_ | `选择省 / 市 / 区` |
| address-info | 收货人信息初始值 | _AddressInfo_ | `{}` |
| search-result | 详细地址搜索结果 | _SearchResult[]_ | `[]` |
| show-postal | 是否显示邮政编码 | _boolean_ | `false` |
| show-delete | 是否显示删除按钮 | _boolean_ | `false` |
| show-set-default | 是否显示默认地址栏 | _boolean_ | `false` |
| show-search-result | 是否显示搜索结果 | _boolean_ | `false` |
| show-area | 是否显示地区 | _boolean_ | `true` |
| show-detail | 是否显示详细地址 | _boolean_ | `true` |
| disable-area `v2.5.0` | 是否禁用地区选择 | _boolean_ | `false` |
| save-button-text | 保存按钮文字 | _string_ | `保存` |
| delete-button-text | 删除按钮文字 | _string_ | `删除` |
| detail-rows | 详细地址输入框行数 | _number \| string_ | `1` |
| detail-maxlength `v2.0.4` | 详细地址最大长度 | _number \| string_ | `200` |
| is-saving | 是否显示保存按钮加载动画 | _boolean_ | `false` |
| is-deleting | 是否显示删除按钮加载动画 | _boolean_ | `false` |
| tel-validator | 手机号格式校验函数 | _string => boolean_ | - |
| postal-validator `v2.1.2` | 邮政编码格式校验函数 | _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 实例并调用实例方法,详见[组件实例方法](#/zh-CN/quickstart#zu-jian-shi-li-fang-fa)
| 方法名 | 说明 | 参数 | 返回值 |
| ---------------- | ------------ | --------------------- | ------ |
| 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](#/zh-CN/area) 组件。