mirror of
https://github.com/youzan/vant.git
synced 2026-01-29 01:15:18 +08:00
ContactList
Install
import { createApp } from 'vue';
import { ContactList } from 'vant';
const app = createApp();
app.use(ContactList);
Usage
Basic Usage
<van-contact-list
v-model="chosenContactId"
:list="list"
default-tag-text="default"
@add="onAdd"
@edit="onEdit"
@select="onSelect"
/>
import { reactive } from 'vue';
import { Toast } from 'vant';
export default {
setup() {
const state = reactive({
chosenContactId: '1',
list: [
{
id: '1',
name: 'John Snow',
tel: '13000000000',
isDefault: true,
},
{
id: '2',
name: 'Ned Stark',
tel: '1310000000',
},
],
});
const onAdd = () => {
Toast('Add');
};
const onEdit = (contact) => {
Toast('Edit' + contact.id);
};
const onSelect = (contact) => {
Toast('Select' + contact.id);
};
return {
state,
onAdd,
onEdit,
onSelect,
};
},
};
API
Props
| Attribute | Description | Type | Default |
|---|---|---|---|
| v-model | Id of chosen contact | number | string | - |
| list | Contact list | Contact[] | [] |
| add-text | Add button text | string | Add new contact |
default-tag-text v2.3.0 |
Default tag text | string | - |
Events
| Event | Description | Arguments |
|---|---|---|
| add | Emitted when the add button is clicked | - |
| edit | Emitted when the edit button is clicked | contact: Contact,index: number |
| select | Emitted when a contact is selected | contact: Contact, index: number |
Data Structure of Contact
| key | Description | Type |
|---|---|---|
| id | ID | number | string |
| name | Name | string |
| tel | Phone | string |
| isDefault | Is default contact | boolean |
Less Variables
How to use: Custom Theme.
| Name | Default Value | Description |
|---|---|---|
| @contact-list-edit-icon-size | 16px |
- |
| @contact-list-add-button-z-index | 999 |
- |
| @contact-list-item-padding | @padding-md |
- |