Skip to content

SwipeCell 滑动单元格

SwipeCell 组件通过左右滑动来展示单元格的更多操作按钮。

基础用法

通过left-buttonsright-buttons属性可以定义左右两侧滑动区域中的按钮组。按钮的高度与内容的高度相等。

自定义两侧内容

通过leftright插槽可以自定义左右两侧滑动区域的内容。

异步关闭

如果将close-on-click-button属性设置为false,则点击两侧区域后不会自动归位,可以在异步操作完成之后通过组件的实例方法close使单元格归位。

类型

typescript
interface SwipeCellButton {
  /** 按钮文本 */
  text?: string;

  /** 图标 */
  icon?: string | VNode;

  /** 自定义类名 */
  className?: string;

  /** 自定义样式 */
  style?: string;

  /** 点击事件回调方法 */
  onClick?: (close: () => void) => void;

  [key: string]: any;
}

type SwipeCellSide = 'left' | 'right';

type SwipeCellClickPosition = 'left' | 'right' | 'cell' | 'outside';

属性

属性名类型默认值说明
leftButtonsArray as SwipeCellButton[][]左侧的按钮列表
rightButtonsArray as SwipeCellButton[][]右侧的按钮列表
closeOnClickButtonbooleantrue是否在点击按钮时自动归位,leftright插槽同样被视为按钮
closeOnTouchOutsidebooleantrue是否在触摸其它区域时自动归位
closeOnClickCellbooleantrue是否在点击中间内容区域时自动归位
disabledbooleanfalse是否禁用滑动
transitionDurationnumber500过渡动画的执行时长,单位ms
thresholdnumber0.2触发自动滑出/关闭的滑动距离百分比阈值,取值范围(0, 1)
touchMoveStopPropagationbooleanfalse是否阻止滑动事件冒泡

事件

事件名类型说明
clickEventEmitter<{ position: SwipeCellClickPosition; button: SwipeCellButton }>点击事件,点击时触发,如果被点击的是两侧的按钮则button非空
openEventEmitter<SwipeCellSide>打开事件,打开时触发
closeEventEmitter<{ side: SwipeCellSide; clickPosition: SwipeCellClickPosition }>关闭事件,归位时触发,如果关闭是由点击导致的则clickPosition非空

插槽

名称说明
default自定义内容
left左侧滑动区域的内容
right右侧滑动区域的内容

组件实例

名称类型说明
open(side: SwipeCellSide) => void打开指定侧的滑动区域
close() => void收起滑动区域

CSS 变量

名称默认值说明
--fm-swipe-cell-button-text-colorvar(--fm-white)--
--fm-swipe-cell-button-bg-colorvar(--fm-gray-4)--
--fm-swipe-cell-button-font-sizevar(--fm-font-size)--
--fm-swipe-cell-button-icon-sizevar(--fm-font-size)--
--fm-swipe-cell-button-paddingvar(--fm-padding-md)--