Skip to content

Contact 联系人

介绍

联系人相关组件,包含联系人卡片、联系人列表和联系人编辑组件。

引入

js
import { createApp } from 'vue';
import { Contact, ContactCard, ContactEdit, ContactList } from '@szhn/dh-design-mobile';

const app = createApp();
app.use(Contact);
app.use(ContactCard);
app.use(ContactEdit);
app.use(ContactList);

代码演示

基础用法

基础用法展示联系人卡片。

html
<van-contact-card type="add" @click="onAdd" />

联系人列表

展示联系人列表,可以选择联系人、新增和编辑联系人。

html
<van-contact-card
  type="edit"
  :name="currentContact.name"
  :tel="currentContact.tel"
  @click="showList = true"
/>
<van-popup v-model:show="showList" position="bottom" round>
  <van-contact-list
    v-model="chosenContactId"
    :list="list"
    default-tag-text="默认"
    @add="onAdd"
    @edit="onEdit"
    @select="onSelect"
  />
</van-popup>

联系人编辑

创建或编辑联系人信息。

html
<van-contact-edit
  :contact-info="editingContact"
  set-default-label="设为默认联系人"
  show-set-default
  @save="onSave"
  @delete="onDelete"
/>

API

ContactCard Props

参数说明类型默认值
type卡片类型'add' | 'edit'add
name联系人姓名string-
tel联系人手机号string-
add-text添加时的文案提示string添加联系人
editable是否可以编辑联系人booleantrue

ContactList Props

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

ContactList Events

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

ContactEdit Props

参数说明类型默认值
contact-info联系人信息ContactEditInfo{}
is-edit是否为编辑联系人booleanfalse
is-saving是否显示保存按钮加载动画booleanfalse
is-deleting是否显示删除按钮加载动画booleanfalse
tel-validator手机号格式校验函数(tel: string) => boolean-
show-set-default是否显示默认联系人栏booleanfalse
set-default-label默认联系人栏文案string-

ContactEdit Events

事件名说明回调参数
save点击保存按钮时触发content:表单内容
delete点击删除按钮时触发content:表单内容
change-default切换是否为默认联系人时触发checked:是否默认

ContactCard Events

事件名说明回调参数
click点击时触发event: MouseEvent

主题定制

样式变量

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

名称默认值描述
--van-contact-card-paddingvar(--van-padding-md)联系人卡片内边距
--van-contact-card-add-icon-size40px新增图标大小
--van-contact-card-add-icon-colorvar(--van-primary-color)新增图标颜色
--van-contact-card-title-line-heightvar(--van-line-height-md)标题行高
--van-contact-list-paddingvar(--van-padding-sm) var(--van-padding-sm) 80px联系人列表内边距
--van-contact-list-edit-icon-size16px编辑图标大小
--van-contact-list-add-button-z-index999新增按钮层级
--van-contact-list-radio-colorvar(--van-primary-color)单选按钮颜色
--van-contact-list-item-paddingvar(--van-padding-md)列表项内边距
--van-contact-edit-paddingvar(--van-padding-md)编辑区域内边距
--van-contact-edit-fields-radiusvar(--van-radius-md)编辑表单圆角大小
--van-contact-edit-buttons-paddingvar(--van-padding-xl) 0操作按钮内边距
--van-contact-edit-button-margin-bottomvar(--van-padding-sm)按钮下外边距
--van-contact-edit-button-font-sizevar(--van-font-size-lg)按钮字体大小
--van-contact-edit-field-label-width4.1em表单标签宽度