# AddressList 地址列表
### 介绍
主要用于进行地址列表的展示以及操作。
### 安装
```javascript
import { createApp } from "vue";
import { AddressList } from "@nutui/nutui-taro";
const app = createApp();
app.use(AddressList);
```
### 基础用法
:::demo
```html
```
:::
### 长按功能
:::demo
```html
```
:::
### 滑动功能
:::demo
```html
```
:::
## API
### Props
| 参数 | 说明 | 类型 | 默认值 |
| ------------------ | ---------------- | ------- | ------ |
| data | 地址数组 | Array | - |
| long-press | 长按功能 | boolean | `false` |
| swipe-edition | 右滑功能 | boolean | `false` |
| show-bottom-button | 是否展示底部按钮 | boolean | `true` |
| data-options | 自定义 `key` 值时,设置映射关系 | Object | - |
### Events
| 事件名 | 说明 | 回调参数 | 备注 |
| ------------------ | -------------------- | ----------------- | ------------------ |
| del-icon | 点击删除图标 | event: Event,item | 公共 |
| edit-icon | 点击编辑图标 | event: Event,item | 公共 | |
| click-item | 点击地址列表每一项 | event: Event,item | 公共 |
| add | 点击底部添加地址按钮 | event: Event | 公共 |
| long-copy | 点击复制地址按钮 | event: Event,item | 长按功能下点击事件 |
| long-set | 点击设置默认按钮 | event: Event,item | 长按功能下点击事件 |
| long-del | 点击删除地址按钮 | event: Event,item | 长按功能下点击事件 |
| swipe-del | 默认右滑删除按钮 | event: Event,item | 滑动功能下点击事件 |
### Slots
`AddressList` 组件默认划分为若干区域,这些区域都定义成了插槽,可以按照需求进行替换
| 名称 | 说明 | 说明 |
| ------------- | -------------------------------- | -------------- |
| item-infos | 地址列表项姓名/联系方式/默认一行 | 公共 |
| itemicon | 地址列表项图标 | 公共 |
| itemaddr | 地址列表项详细地址 | 公共 |
| swipe-right | 地址列表项右滑区域 | 滑动功能下使用 |
| longpress-btns | 地址列表项长按遮罩内容 | 长按功能下使用 |
### data 数组中每一项 与 dataOptions 对象的参数磨平
下面是 `data` 数组中每一项 基础数据结构
```javascript
const dataInfo = {
id: 2, //地址id
addressName: "姓名", //地址姓名
phone: "123****4567", //联系方式
defaultAddress: false, //是否是默认
fullAddress: "北京市通州区测试测试测试测试测试测试测试测试测试", //详细地址
};
```
组件内优先获取基础数据结构中定义的字段,若想自定义 `key` 值,可以通过 `dataOptions` 设置映射关系
```javascript
const dataOptions = {
id: "testid",
addressDetail: "testaddressDetail",
addressName: "testaddressName",
};
```
## 主题定制
### 样式变量
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](#/zh-CN/component/configprovider)。
| 名称 | 默认值 |
| --------------------------------------- | -------------------------- |
| --nut-addresslist-bg | _#fff_ |
| --nut-addresslist-border | _#f0f0f0_ |
| --nut-addresslist-font-color | _#333333_ |
| --nut-addresslist-font-size | _16px_ |
| --nut-addresslist-mask-bg | _rgba(0, 0, 0, 0.4)_ |
| --nut-addresslist-addr-font-color | _#666666_ |
| --nut-addresslist-addr-font-size | _12px_ |
| --nut-addresslist-set-bg | _#f5a623_ |
| --nut-addresslist-del-bg | _#e1251b_ |
| --nut-addresslist-contnts-contact-default | _var(--nut-primary-color)_ |
| --nut-addresslist-contnts-contact-color | _var(--nut-white)_ |