# swiplist
**Repository Path**: litz/swiplist
## Basic Information
- **Project Name**: swiplist
- **Description**: 可自定义侧滑列表菜单
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-09-20
- **Last Updated**: 2021-09-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# swipelist
#### 组件介绍
- 组件名称:swipelist
- 功能:ohos list侧滑menu
- 开发版本:sdk6,DevEco Studio2.2 Beta1
#### 效果演示
 
#### 代码模块说明
1.关键模块pages下swipelist与swipelist-item模块
2.在页面引入组件
```hml
```
此时需注意由于ohos暂无slot,使用element嵌套element方案替代,swipelist-item为行视图
```hml
{{compObj.title}} {{compIndex}}
{{compObj.date}}
```
3.属性
```hml
默认menu在右边设置, 添加属性comp-isleft="true" menu显示在左边,如上图2
comp-data="{{todolist}}"
for (var i = 0; i < 14; i++) {
var items = {
date : '2021-12-31 20:00:0'+i,
title : "item ",
itemMoveX:0,
}
this.todolist.push(items);
}
comp-btndata="{{itemBtnArr}}"
itemBtnArr:[
{
name:'编辑',
background:'#00aaff',
color:'#ffffff',
width:80,
},
{
name:'删除',
background:'#ff5500',
color:'#fffffff',
width:120,
},
{
name:'收藏',
background:'#f1215c',
color:'#868282',
width:80,
}
],
@event-itemclick="itemClick" 定义item点击事件
@event-itembtnclick="itemBtnClick" 定义侧滑menu点击事件
```
4.事件处理
```
itemClick(e){
//e.detail.itemobj为当前item数据对象
//e.detail.index为当前item下标
prompt.showToast({
message: e.detail.itemobj.title + e.detail.index +" "+ e.detail.itemobj.date
})
},
itemBtnClick(e){
//e.detail.btnObj为每个按钮数据对象
//e.detail.index 为当前item view下标
prompt.showToast({
message:"item "+e.detail.index +" "+ e.detail.btnObj.name
})
}
```
5.原始未封装样式swipelist:详情可参考pages/index2
```
修改即可预览
"js": [
{
"pages": [
"pages/index2/index"
],
]
{{$item.title}} {{$idx}}
{{$item.date}}
```
6.可参考点
```
item下标获取方式
$idx
this.index = msg.target.children[0].watchers[0].vm.$idx;//触摸下标此方法同样有效,可参考获取其他参数
js中 触摸事件传多个参数 +事件对象获取
hml中传参 touchstart({{$idx}})
js中使用 touchstart(index,e) e 即为触摸事件对象
动态绑定,三目运算,暂不支持
使用数据对象直接替换
slot临时替代方案
使用element嵌套element替代,优点可读性强,缺点不够灵活
自定义控件封装使用,传参,设置监听事件,及数据
```