zjCartList

close hide getSelectedItem reloadData

概述

zjCartList 模块封装了一个购物车的数据列表控件,列表项水平侧滑可出现控制按钮;开发者可自定义列表的数据源,及列表的样式。

模块使用注意事项

由于本模块是基于UIListView扩展而来,所以添加此模块时不可同时添加UIListView模块。

特别注意:安卓版本暂时不支持输入修改商品数量,仅能通过加减按钮修改数量。

模块接口文档

open

打开并初始化 zjCartList 模块

open({params}, callback(ret, err))

rect:

  • 类型:JSON 对象
  • 描述:(可选项)模块的位置及尺寸
  • 备注:Android 必须传此参数。
  • 内部字段:

data:

  • 类型:数组
  • 描述:列表的数据源
  • 内部字段:
  1. gid: '', //(必填项)数字或字符串均可;商品ID,用于标注数据的唯一性;在获取选中数据,设置选中、取消选中数据时使用
  2. imgPath: '', //(选填项)字符串类型;商品图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
  3. title: '', //(必填项)字符串类型;标题
  4. subTitle: '', //(必填项)字符串类型;子标题
  5. goodsCount: '', //(可选项)数字或字符串类型;商品初始的数量,不填写默认1
  6. maxCount: '', //(可选项)数字或字符串类型;商品最大允许输入和选择的数量,不传递默认99
  7. rightBtns: [] //(可选项)数组类型;列表项向左滑动露出的按钮组,配置某一项的特定按钮组,若不传则不显示,内部字段同下方 rightBtns 参数
  8. }]

rightBtns:

  • 类型:数组
  • 描述:(可选项)列表项向左滑动露出的按钮组,建议:配置列表每项的通用按钮,用此参数;配置某一项的特定按钮,可在 data 数组的指定项传入 rightBtns 参数
  • 内部字段:
  1. [{
  2. bgColor: '#388e8e', //(可选项)字符串类型;按钮背景色,支持 rgb、rgba、#;默认:'#388e8e'
  3. activeBgColor: '', //(可选项)字符串类型;按钮按下时的背景色,支持 rgb、rgba、#
  4. width: 70, //(可选项)数字类型;按钮的宽度;默认:w / 4
  5. title: '', //(可选项)字符串类型;按钮标题,水平、垂直居中
  6. titleSize: 12, //(可选项)数字类型;按钮标题文字大小;默认:12
  7. titleColor: '#fff', //(可选项)字符串类型;按钮标题文字颜色,支持 rgb、rgba、#;默认:'#ffffff'
  8. }]

bounces:

  • 类型:布尔
  • 描述:(可选项)是否开启弹动,android 平台不支持本参数
  • 默认:false

styles:

  • 类型:JSON 对象
  • 描述:(可选项)模块各部分的样式
  • 内部字段:
  1. {
  2. borderColor: '#696969', //(可选项)字符串类型;列表分割线的颜色,支持 rgb、rgba、#;默认:'#696969'
  3. item: { //(必填项)JSON对象;列表项的样式
  4. checkboxImgPath: '', // (必填项) 字符串类型;未选中时的按钮图片,,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
  5. checkedImgPath: '', // (必填项) 字符串类型;选中时的按钮图片,,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
  6. bgColor: '#AFEEEE', //(可选项)字符串类型;列表项的背景色,支持 rgb、rgba、#;默认:'#AFEEEE'
  7. activeBgColor: '#F5F5F5', //(可选项)字符串类型;列表项按下时的背景色,支持 rgb、rgba、#;默认:'#F5F5F5'
  8. height: 80, //(可选项)数字类型;列表项的高度;默认:80
  9. imgWidth: 40, //(可选项)数字类型;商品图的宽度;默认:列表项的高度减去10px
  10. imgHeight: 40, //(可选项)数字类型;商品图的高度;默认:列表项的高度减去10px
  11. imgCorner: 4, //(可选项)数字类型;商品图的圆角大小;默认:0
  12. placeholderImg: '', //(可选项)字符串类型;商品图的占位图路径(本地路径,fs://、widget://),在图片未加载完成之前、未传递商品图或者图片地址无效下展示
  13. titleSize: 12, //(可选项)数字类型;列表项标题文字大小;默认:12
  14. titleColor: '#000', //(可选项)字符串类型;列表项标题文字颜色,支持 rgb,rgba,#;默认:'#000000'
  15. subTitleSize: 12, //(可选项)数字类型;列表项子标题文字大小;默认:12
  16. subTitleColor: '#000', //(可选项)字符串类型:列表项子标题文字颜色,支持 rgb、rgba、#;默认:'#000000'
  17. }
  18. }

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

showScrollBar:

  • 类型:布尔
  • 描述:(可选项)是否显示滚动条
  • 默认:true

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. eventType: 'show', //字符串类型;交互事件类型
  3. //取值范围如下:
  4. //show(模块加载成功)
  5. //clickRightBtn(点击侧滑出现的右侧按钮)
  6. //clickContent(点击列表项的内容,除了商品图以外的区域)
  7. //clickImg(点击列表项的配图)
  8. //clickCheckbox(选择列表项或者修改商品数量时触发),此状态下会额外返回selected
  9. index: 0, //数字类型;列表项的索引
  10. btnIndex: 0, //数字类型;列表项侧滑出现的按钮的索引
  11. gid: goodsCount //gid是data中的gid,goodsCount是商品数量
  12. }
  13. }

示例代码

  1. var zjCartList = api.require('zjCartList');
  2. zjCartList.open({
  3. rect: {
  4. x: 0,
  5. y: 0,
  6. w: api.winWidth,
  7. h: api.frameHeight
  8. },
  9. data: [{
  10. gid: 1000,
  11. imgPath: '商品图片,如:widget://res/img/apicloud.png',
  12. title: '商品标题1',
  13. subTitle: '商品价格,如:¥50.00',
  14. goodsCount: 1,
  15. maxCount: 18
  16. },
  17. {
  18. gid: 1001,
  19. imgPath: '商品图片,如:widget://res/img/apicloud.png',
  20. title: '商品标题2',
  21. subTitle: '商品价格,如:¥50.00',
  22. goodsCount: 10
  23. },
  24. {
  25. gid: 1002,
  26. imgPath: '商品图片,如:widget://res/img/apicloud.png',
  27. subTitle: '¥50.00',
  28. goodsCount: 16
  29. },
  30. {
  31. gid: 1003,
  32. imgPath: '商品图片,如:widget://res/img/apicloud.png',
  33. title: '商品标题4',
  34. subTitle: '¥150.00',
  35. goodsCount: 18
  36. }],
  37. rightBtns: [{
  38. bgColor: '#FA235D',
  39. activeBgColor: '',
  40. width: 70,
  41. title: '删除',
  42. titleSize: 16,
  43. titleColor: '#fff'
  44. }],
  45. styles: {
  46. borderColor: '#EDEDED',
  47. item: {
  48. checkboxImgPath: 'widget://res/img/checkbox.png',
  49. checkedImgPath: 'widget://res/img/checked.png',
  50. bgColor: '#FFF',
  51. activeBgColor: '#F5F5F5',
  52. height: 94.0,
  53. imgWidth: 80,
  54. imgHeight: 80,
  55. imgCorner: 0,
  56. placeholderImg: '',
  57. titleSize: 14.0,
  58. titleColor: '#000',
  59. subTitleSize: 16.0,
  60. subTitleColor: '#FA235D'
  61. }
  62. },
  63. fixedOn: api.frameName
  64. }, function(ret, err) {
  65. if (ret) {
  66. alert(JSON.stringify(ret));
  67. } else {
  68. alert(JSON.stringify(err));
  69. }
  70. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭购物车列表模块

close()

示例代码

  1. var zjCartList = api.require('zjCartList');
  2. zjCartList.close();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

show

显示购物车列表模块

示例代码

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

hide

隐藏购物车列表模块

hide()

示例代码

  1. var zjCartList = api.require('zjCartList');
  2. zjCartList.hide();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

selectItem

选中商品

selectItem({params}, callback(ret, err))

item:

  • 类型:数组
  • 描述:(可选项)选中商品,如果不传递此参数则默认选中全部商品
  • 内部字段:
  1. [
  2. gid1,gid2 // 多个gid组成的数组
  3. ]

callback(ret)

程序执行后回调

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. gid: count // gid是设置的商品ID,count是用户选择的数量。如1000:1
  3. }

示例代码

  1. var zjCartList = api.require('zjCartList');
  2. // 此代码演示全选
  3. zjCartList.selectItem(function(ret, err) {
  4. if (ret) {
  5. alert(JSON.stringify(ret));
  6. } else {
  7. alert(JSON.stringify(err));
  8. }
  9. });
  10. // 此代码演示部分选中
  11. zjCartList.selectItem({item: [1001,1002]}, function(ret, err) {
  12. if (ret) {
  13. alert(JSON.stringify(ret));
  14. } else {
  15. alert(JSON.stringify(err));
  16. }
  17. });
  18. // ret结果示例
  19. {1000:1,1001:2}

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getSelectedItem

获取已选中的商品数据

getSelectedItem(callback())

params

callback(ret)

获取数据后回调

ret:

  • 类型:JSON 对象
  • 内部字段:

    1. gid: count // gid是设置的商品ID,count是用户选择的数量,如果无选中的商品返回空的JSON对象

示例代码

  1. var zjCartList = api.require('zjCartList');
  2. zjCartList.getSelectedItem(function(ret, err) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. } else {
  6. alert(JSON.stringify(err));
  7. }
  8. });
  9. // ret结果示例
  10. {1000:1,1001:2} 或者 {}

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelSelectItem

取消选中商品

cancelSelectItem({params}, callback(ret, err))

params

item:

  • 类型:数组
  • 描述:(可选项)要取消选中的商品ID,如果不传递此参数则默认取消选中全部商品
  • 内部字段:

callback(ret)

ret:

  • 类型:JSON 对象
  • 结果:如果不传递item参数取消全部选中后返回空的JSON对象,如果仍有剩余选中商品的话,返回商品的gid和商品数量
  • 内部字段:

    1. {
    2. gid: count // gid是设置的商品ID,count是用户选择的数量
    3. }
  1. var zjCartList = api.require('zjCartList');
  2. // 此代码演示取消全部选中的商品
  3. zjCartList.cancelSelectItem(function(ret, err) {
  4. if (ret) {
  5. alert(JSON.stringify(ret));
  6. } else {
  7. alert(JSON.stringify(err));
  8. }
  9. });
  10. // 此代码演示取消部分选中的商品
  11. zjCartList.cancelSelectItem({item: [1001,1002]}, function(ret, err) {
  12. if (ret) {
  13. alert(JSON.stringify(ret));
  14. } else {
  15. alert(JSON.stringify(err));
  16. }
  17. });
  18. // ret结果示例
  19. {1000:1,1001:2} 或者 {}

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

reloadData

刷新列表数据,刷新数据后之前的选中状态会被清空,需要重新设置选中

reloadData({params}, callback(ret))

params

data:

  • 类型:数组
  • 描述:(可选项)列表的数据源,若不传或传空,仅收起下拉刷新组件
  • 内部字段:
  1. [{
  2. gid: '', //(必填项)数字或字符串均可;商品ID,用于标注数据的唯一性;在获取选中数据,设置选中、取消选中数据时使用
  3. imgPath: '', //(选填项)字符串类型;商品图路径,支持http://、https://、widget://、fs://等协议,网络图片会被缓存到本地
  4. title: '', //(必填项)字符串类型;标题
  5. subTitle: '', //(必填项)字符串类型;子标题
  6. goodsCount: '', //(可选项)数字或字符串类型;商品初始的数量,不填写默认1
  7. maxCount: '', //(可选项)数字或字符串类型;商品最大允许输入和选择的数量,不传递默认99
  8. rightBtns: [] //(可选项)数组类型;列表项向左滑动露出的按钮组,配置某一项的特定按钮组,若不传则不显示,内部字段同下方 rightBtns 参数
  9. }]

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

示例代码

  1. var zjCartList = api.require('zjCartList');
  2. zjCartList.reloadData({
  3. data: [{
  4. gid: 1000,
  5. imgPath: 'http://img1.3lian.com/gif/more/11/201206/a5194ba8c27b17def4a7c5495aba5e32.jpg',
  6. title: '新标题',
  7. subTitle: '商品价格,如:¥50.00',
  8. goodsCount: 1,
  9. maxCount: 18
  10. }]
  11. }, function(ret) {
  12. if (ret) {
  13. alert(JSON.stringify(ret));
  14. } else {
  15. alert(JSON.stringify(err));
  16. }
  17. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setRefreshHeader

设置下拉刷新,通过 reloadData 收起下拉刷新组件

setRefreshHeader({params}, callback(ret))

params

loadingImg:

  • 类型:字符串
  • 描述:下拉刷新时显示的小箭头图标的本地路径,要求本地路径(fs://、widget://)

bgColor:

  • 类型:字符串
  • 描述:(可选项)下拉刷新区域的背景色,支持 rgb、rgba、#
  • 默认值:’#f5f5f5’

textColor:

  • 类型:字符串
  • 描述:(可选项)提示文字颜色,支持 rgb、rgba、#
  • 默认值:’#8e8e8e’

textDown:

  • 类型:字符串
  • 描述:(可选项)下拉提示文字
  • 默认值:下拉可以刷新…

textUp:

  • 类型:字符串
  • 描述:(可选项)松开提示文字
  • 默认值:松开开始刷新…

loadingText:

  • 类型:字符串
  • 描述:(可选项)提示文字
  • 默认值:正在加载…

lastUpdateText:

  • 类型:字符串
  • 描述:(可选项)提示文字
  • 默认值:上次更新时间:

showTime:

  • 类型:布尔值
  • 描述:(可选项)是否显示刷新时间
  • 默认值:true

callback()

下拉刷新的事件回调

示例代码

  1. var zjCartList = api.require('zjCartList');
  2. zjCartList.setRefreshHeader({
  3. loadingImg: 'widget://res/zjCartList_arrow.png',
  4. bgColor: '#F5F5F5',
  5. textColor: '#8E8E8E',
  6. textDown: '下拉可以刷新...',
  7. textUp: '松开开始刷新...',
  8. showTime: true
  9. }, function(ret, err) {
  10. if (ret) {
  11. alert(JSON.stringify(ret));
  12. } else {
  13. alert(JSON.stringify(err));
  14. }

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本