Skip to content

xtf-cell

组件说明

xtf-cell 是单元格组件,用于在列表中展示一条信息,左侧可放图标/缩略图,中间显示标题和描述,右侧显示值、标签、徽标、开关或箭头。支持色调强调、分割线、必填标记、导航跳转和开关切换,是设置页、表单列表和信息展示的基础组件。


基础用法

1. 最简示例

通过 title 设置标题,value 设置右侧值:

vue
<template>
  <xtf-cell-group title="基本信息">
    <xtf-cell title="用户名" value="张三" />
    <xtf-cell title="手机号" value="138****8888" />
    <xtf-cell title="地址" value="北京市朝阳区" />
  </xtf-cell-group>
</template>

2. 图标与描述

通过 icon 设置左侧图标,desc 设置标题下方描述,eyebrow 设置标题上方眉标:

vue
<template>
  <xtf-cell-group title="功能列表">
    <xtf-cell title="通知设置" desc="管理消息推送" icon="notifications" arrow />
    <xtf-cell title="隐私设置" desc="控制数据访问" icon="lock" arrow />
    <xtf-cell title="账号安全" eyebrow="安全中心" desc="密码与验证" icon="shield" arrow />
  </xtf-cell-group>
</template>

3. 右侧标签与徽标

通过 valueTag 显示标签,通过 badge / badgeText 显示徽标,通过 extra 显示辅助文字:

vue
<template>
  <xtf-cell-group title="消息中心">
    <xtf-cell title="系统通知" value-tag="新消息" :badge="{ value: 3 }" arrow />
    <xtf-cell title="互动消息" badge-text="2" arrow />
    <xtf-cell title="订单消息" extra="3分钟前" arrow />
    <xtf-cell
      title="活动通知"
      :value-tag="{ text: '限时', theme: 'danger', variant: 'solid' }"
      arrow
    />
  </xtf-cell-group>
</template>

4. 开关与导航

通过 switchable 启用开关,通过 urlarrow 实现点击导航:

vue
<template>
  <xtf-cell-group title="偏好设置">
    <xtf-cell title="推送通知" :checked="notifyEnabled" switchable @change="onNotifyChange" />
    <xtf-cell title="深色模式" :checked="darkMode" switchable @change="onDarkModeChange" />
    <xtf-cell title="关于我们" url="/pages/about/index" arrow />
    <xtf-cell title="帮助中心" url="/pages/help/index" open-type="navigateTo" arrow />
  </xtf-cell-group>
</template>

<script>
export default {
  data() {
    return {
      notifyEnabled: true,
      darkMode: false
    }
  },
  methods: {
    onNotifyChange(val) {
      this.notifyEnabled = val
      console.log('推送通知:', val)
    },
    onDarkModeChange(val) {
      this.darkMode = val
      console.log('深色模式:', val)
    }
  }
}
</script>

5. 色调强调与变体

通过 tone 设置色调(影响背景和边框),通过 accent 显示左侧强调线,通过 variant 切换视觉风格:

vue
<template>
  <xtf-cell-group title="订单状态">
    <xtf-cell title="待付款" tone="warning" accent value-tag="待处理" />
    <xtf-cell title="已发货" tone="success" accent value-tag="运输中" />
    <xtf-cell title="已取消" tone="danger" accent value-tag="已关闭" />
    <xtf-cell title="已完成" tone="info" accent value-tag="已完成" />
  </xtf-cell-group>
</template>

全部属性

属性类型默认值作用描述适用范围
titleString''标题文字设置标题
eyebrowString''标题上方眉标文字分组标签
eyebrowColorString'caption'眉标颜色自定义眉标色
descString''标题下方描述文字补充说明
valueString''右侧值文字显示值
extraString''右侧辅助文字辅助信息
noteString''底部备注文字底部说明
noteColorString'caption'备注文字颜色自定义备注色
iconString''左侧图标名添加图标
thumbString''左侧缩略图地址添加缩略图
thumbSizeString | Number72缩略图尺寸(rpx)控制缩略图大小
thumbRadiusString | Number20缩略图圆角(rpx)控制缩略图圆角
thumbShapeString''缩略图形状:'circle' / 'round' / 'square'快捷设置形状
thumbRingBooleanfalse缩略图是否显示光环缩略图光环
iconThemeString''图标主题自定义图标主题
iconVariantString'soft'图标变体自定义图标变体
iconSizeString | Number'sm'图标大小自定义图标大小
rightIconString''右侧自定义图标名自定义右侧图标
badgeObjectnull徽标配置,支持 { value, text, theme, variant, dot }显示徽标
badgeTextString''徽标文字(简写)简易徽标
themeString'primary'主题色切换主题色
variantString'surface'视觉变体:'surface' / 'soft' / 'card' / 'glass'切换视觉风格
sizeString'md'尺寸:'sm' / 'md' / 'lg'控制行高
valueColorString'secondary'值文字颜色自定义值色
descColorString'secondary'描述文字颜色自定义描述色
extraColorString'secondary'辅助文字颜色自定义辅助色
valueBoldBooleanfalse值文字是否加粗值加粗
titleBoldBooleanfalse标题是否加粗标题加粗
requiredBooleanfalse是否显示必填星号表单必填
selectedBooleanfalse是否选中态选中状态
checkedBooleanfalse开关是否选中,支持 v-model:checked开关状态
switchableBooleanfalse是否显示开关开关切换
switchColorString'var(--xtf-color-primary)'开关颜色自定义开关色
arrowBooleanfalse是否显示右侧箭头导航箭头
urlString''点击跳转地址导航跳转
openTypeString'navigateTo'跳转方式:'navigateTo' / 'redirectTo' / 'switchTab' / 'reLaunch'控制跳转方式
clickableBooleanfalse是否可点击可交互
disabledBooleanfalse是否禁用禁用交互
centerBooleanfalse是否垂直居中居中对齐
dividerBooleanfalse是否显示底部分割线分割线
insetString | Number0分割线缩进(rpx)分割线缩进
sideAlignString'center'右侧对齐:'start' / 'center' / 'end'右侧对齐方式
toneString''色调:'primary' / 'success' / 'warning' / 'danger' / 'info'色调强调
accentBooleanfalse是否显示左侧强调线左侧强调
accentColorString''自定义强调线颜色自定义强调色
valueTagString | Objectnull值标签,字符串或 { text, theme, variant, shape, color }显示标签
rightTextString''右侧文字(箭头左侧)右侧辅助文字
rightTextColorString'secondary'右侧文字颜色自定义右侧文字色
arrowThemeString'secondary'箭头图标主题自定义箭头色
arrowIconString'chevron_right'箭头图标名自定义箭头图标
radiusString | Number28圆角(rpx)控制圆角
paddingXString | Number24水平内边距(rpx)控制水平间距
paddingYString | Number''垂直内边距(rpx),默认按 size 自动计算控制垂直间距
titleWidthString | Number''标题区域宽度(rpx)控制标题宽度
customClassString''自定义类名样式覆盖
customStyleString | Object''自定义样式动态样式覆盖

事件

事件名称触发时机回调参数参数说明
click点击单元格时触发(disabled 不触发)(event)原生点击事件对象
cell-clickclick(event)原生点击事件对象
update:checkedv-model:checked 值变更时触发(value: Boolean)新的开关状态
change开关状态变更时触发(value: Boolean)新的开关状态
switch-changechange(value: Boolean)新的开关状态

事件使用示例

vue
<template>
  <xtf-cell
    v-model:checked="enabled"
    title="消息通知"
    switchable
    @click="onClick"
    @change="onChange"
    @switch-change="onSwitchChange"
  />
</template>

<script>
export default {
  data() {
    return { enabled: false }
  },
  methods: {
    onClick() {
      console.log('单元格点击')
    },
    onChange(value) {
      console.log('开关状态', value)
    },
    onSwitchChange(value) {
      uni.showToast({ title: value ? '已开启' : '已关闭', icon: 'none' })
    }
  }
}
</script>

插槽

插槽名说明
thumb / icon替换左侧缩略图或图标。
title / desc替换标题和描述区域。
value / extra / value-tag / badge / right替换右侧信息区域。
footer替换底部备注区域。
vue
<template>
  <xtf-cell title="账户余额" clickable @click="showBalance">
    <template #value><xtf-text level="body" bold text="128.00 元" /></template>
    <template #right><xtf-icon name="chevron_right" theme="secondary" size="sm" /></template>
    <template #footer>
      <xtf-text level="caption" color="secondary" text="余额可用于支付订单"
    /></template>
  </xtf-cell>
</template>

<script>
export default {
  methods: {
    showBalance() {
      uni.showToast({ title: '余额详情', icon: 'none' })
    }
  }
}
</script>

方法

方法名参数说明
toggleSwitch()切换 switchable 单元格的状态,并触发 update:checkedchangeswitch-change

主题说明

  • surface 变体背景使用 var(--xtf-color-surface)
  • soft 变体背景使用 var(--xtf-color-surface-muted)
  • card 变体背景使用 var(--xtf-card-bg),边框使用 var(--xtf-card-border)
  • glass 变体背景使用 var(--xtf-popup-bg),阴影使用 var(--xtf-shadow-glass)
  • 色调背景使用 var(--xtf-cell-tone-soft),边框使用 var(--xtf-cell-tone-border)
  • 强调线颜色使用 var(--xtf-cell-tone-accent)
  • 分割线缩进使用 var(--xtf-cell-divider-inset)
  • 点击缩放使用 var(--xtf-motion-active-scale)

如需全局调整主题,请在 xtf-config-provider 或主题配置中覆盖上述 CSS 变量。

MIT Licensed