codecamp

Vant4 ContactList 联系人列表

介绍

展示联系人列表。

引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

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

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

代码演示

基础用法

<van-contact-list
  v-model="chosenContactId"
  :list="list"
  default-tag-text="默认"
  @add="onAdd"
  @edit="onEdit"
  @select="onSelect"
/>
import { ref } from 'vue';
import { showToast } from 'vant';

export default {
  setup() {
    const chosenContactId = ref('1');
    const list = ref([
      {
        id: '1',
        name: '张三',
        tel: '13000000000',
        isDefault: true,
      },
      {
        id: '2',
        name: '李四',
        tel: '1310000000',
      },
    ]);

    const onAdd = () => showToast('新增');
    const onEdit = (contact) => showToast('编辑' + contact.id);
    const onSelect = (contact) => showToast('选择' + contact.id);

    return {
      list,
      onAdd,
      onEdit,
      onSelect,
      chosenContactId,
    };
  },
};

API

Props

参数 说明 类型 默认值
v-model 当前选中联系人的 id number | string -
list 联系人列表 Contact[] []
add-text 新建按钮文案 string 新建联系人
default-tag-text 默认联系人标签文案 string -

Events

事件名 说明 回调参数
add 点击新增按钮时触发 -
edit 点击编辑按钮时触发 contact: Contact,index: number
select 切换选中的联系人时触发 contact: Contact,index: number

Contact 数据结构

键名 说明 类型
id 每位联系人的唯一标识 number | string
name 联系人姓名 string
tel 联系人手机号 number | string
isDefault 是否为默认联系人 boolean

类型定义

组件导出以下类型定义:

import type { ContactListItem, ContactListProps } from 'vant';

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称 默认值 描述
--van-contact-list-edit-icon-size 16px -
--van-contact-list-add-button-z-index 999 -
--van-contact-list-radio-color var(--van-primary-color) -
--van-contact-list-item-padding var(--van-padding-md) -


Vant4 ContactEdit 联系人编辑
Vant4 Coupon 优惠卷
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }