更新记录

1.0.0(2023-12-28)

  • init

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.98 app-uvue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

uni-swipe-action-x 滑动动画

通过滑动触发选项的容器,容器内可放置列表等组件,通过左右滑动来触发一些操作。

注意:当前版本只支持 uni-app x

使用组件

注意:uni-swipe-action-x 和 uni-swipe-action-item 需要同时使用

基本用法

template 中使用组件

<template>
  <uni-swipe-action-x @change="swipeChange">
    <!-- 基础用法 -->
    <uni-swipe-action-item :right-options="options" :left-options="options" @btnClick="btnClick" >
      <view>SwipeAction 基础使用场景</view>
    </uni-swipe-action-item>
    <!-- 使用插槽 (请自行给定插槽内容宽度)-->
    <uni-swipe-action-item>
      <template #left>
        <view><text>置顶</text></view>
      </template>
      <view>
        <text >使用插槽</text>
      </view>
      <template #right>
        <view><text>删除</text></view>
      </template>
    </uni-swipe-action-item>
    <!-- 混合用法 -->
    <uni-swipe-action-item :right-options="options">
      <template #left>
        <view><text>置顶</text></view>
      </template>
      <view><text>混合使用</text></view>
    </uni-swipe-action-item>
  </uni-swipe-action-x>

  <!-- 禁止滑动 -->
  <uni-swipe-action-x>
    <uni-swipe-action-item :disabled="true" :right-options="options">
      <view>SwipeAction 基础使用场景</view>
    </uni-swipe-action-item>
  </uni-swipe-action-x>

  <!-- 按组使用 -->
  <uni-swipe-action-x>
      <uni-swipe-action-item :right-options="options" @btnClick="btnClick">
      <view >item1</view>
      </uni-swipe-action-item>
      <uni-swipe-action-item :right-options="options"  @btnClick="btnClick">
      <view>item2</view>
      </uni-swipe-action-item>
      <uni-swipe-action-item :right-options="options"  @btnClick="btnClick">
      <view>item3</view>
      </uni-swipe-action-item>
  </uni-swipe-action-x>
</template>
<script>
import { OptionPropType, ChangeEventType, ClickEventType ,DoneCallback} from '@/uni_modules/uni-swipe-action-x/types.uts'
export default {
  data(){
    return {
      options:[
        {
            text: '取消',
            style: {
                backgroundColor: '#007aff'
            }
        }, {
            text: '确认',
            style: {
                backgroundColor: '#dd524d'
            }
        }
      ] as OptionPropType[]
    }
  },
  methods:{
    btnClick(event:ClickEventType,done:DoneCallback){
      console.log('点击了'+(e.type == 'left' ? '左侧' : '右侧') + e.data.text + '按钮')
            // 其他逻辑 ...
            // 需要主动执行done方法关闭组件
            done()
    },
    swipeChange(event:ChangeEventType,index){
      console.log('当前打开状态:'+ event.type +',下标:' + event.index)
    }
  }
}

</script>

属性/方法

SwipeActionX Events

属性名 类型 说明
change (event:ChangeEventType)=>void 组件打开或关闭时触发

SwipeActionX Methond

属性名 类型 说明
closeAll ()=>void 关闭所有已经打开的组件

示例

<template>
  <uni-swipe-action-x ref="swipeAction">
      <uni-swipe-action-item :auto-close="false" :right-options="options">
                <view >item1</view>
                <template #right>
                    <view @click="closeAll"><text>置顶</text></view>
                </template>
      </uni-swipe-action-item>
      <uni-swipe-action-item :auto-close="false" :right-options="options">
                <view>item2</view>
                <template #right>
                    <view @click="closeAll"><text>置顶</text></view>
                </template>

      </uni-swipe-action-item>
      <uni-swipe-action-item :auto-close="false" :right-options="options">
                <view>item3</view>
                <template #right>
                    <view @click="closeAll"><text>置顶</text></view>
                </template>
      </uni-swipe-action-item>
  </uni-swipe-action-x>
    <button @click="closeAll">关闭所有已经打开的组件</button>
</template>
<script>

export default {
  data(){
    return {
      options:[
        {
            text: '取消',
            style: {
                backgroundColor: '#007aff'
            }
        }, {
            text: '确认',
            style: {
                backgroundColor: '#dd524d'
            }
        }
      ] as OptionPropType[]
    }
  },
  methods:{
    closeAll(){
            // 通过ref获取组件实例,ref 用法参考:https://doc.dcloud.net.cn/uni-app-x/component/#method-easycom
            // 通常使用插槽时,不会触发 @btnClick 事件,需要主动调用 closeAll 来关闭组件
      const ref = (this.$refs['swipeAction'] as UniSwipeActionXComponentPublicInstance)
            ref.closeAll()
    }
  }
}

</script>

ChangeEventType 属性

属性名 类型 说明
index Number 组件索引 ,按加载顺序递增,删除组件其他索引不会改变
type String 类型,left:左侧打开,right:右侧打开,none:关闭

SwipeActionItem Props

属性名 类型 可选值 默认值 说明
show String left/right/none none 开启关闭组件
threshold Number - 30 滑动阈值
autoClose Boolean - false 其他组件开启的时候,当前组件是否自动关闭
disabled Boolean - false 是否禁止滑动
leftOptions OptionPropType[] - - 左侧选项内容及样式
rightOptions OptionPropType[] - - 右侧选项内容及样式

OptionPropType 属性

属性名 类型 必填 说明
text string 按钮显示文字
style OptionStyleType 按钮样式

OptionStyleType 属性

属性名 类型 必填 说明
backgroundColor String 按钮背景色,默认值:#C7C6CD
color String 按钮前景色,默认值:#ffffff

SwipeActionItem Events

属性名 类型 说明
btnClick (event:ClickEventType,done:DoneCallback)=>void 点击按钮触发,如果使用插槽,则不生效,(注意:目前点击按钮不会自动关闭组件,需要主动调用第二个参数done() 或者使用组件方法 closeAll()关闭组件)

ChangeEventType 属性

属性名 类型 说明
index Number 点击按钮索引,以按钮组位基准,左侧起始为 0
type String 类型,left:左侧打开,right:右侧打开,none:关闭
data OptionPropType 按钮文本样式 ,见 OptionPropType 说明

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问