codecamp

Vant3 ContactList 联系人列表

介绍

展示联系人列表。

实例演示

引入

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

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

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

代码演示

基础用法

<van-contact-list
  v-model="state.chosenContactId"
  :list="state.list"
  default-tag-text="默认"
  @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: '张三',
          tel: '13000000000',
          isDefault: true,
        },
        {
          id: '2',
          name: '李四',
          tel: '1310000000',
        },
      ],
    });

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

    return {
      state,
      onAdd,
      onEdit,
      onSelect,
    };
  },
};

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

样式变量

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

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


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

Vant3 废弃内容

关闭

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; }