UNPKG

weex-ui

Version:

A rich interaction, lightweight, high performance UI library based on Weex

159 lines (147 loc) 4.76 kB
# wxc-grid-select > Weex 网格形选择组件,支持单选、多选 ## [Demo](https://h5.m.taobao.com/trip/wxc-grid-select/index.html?_wx_tpl=https%3A%2F%2Fh5.m.taobao.com%2Ftrip%2Fwxc-grid-select%2Fdemo%2Findex.native-min.js) <img src="https://gw.alipayobjects.com/zos/rmsportal/KVPhzMhbGodSqBiRCEVQ.gif" width="240"><img src="https://gw.alipayobjects.com/zos/rmsportal/yJfbMufZVRJzKicHPQrn.png" width="180"> ## 使用方法 ```vue <template> <wxc-grid-select :single="true" :cols="5" :customStyles="customStyles" :list="testData1" @select="params => onSelect('res3', params)"> </wxc-grid-select> <wxc-grid-select :limit="5" :list="testData2" @overLimit="onOverLimit" @select="params => onSelect('res3', params)"> </wxc-grid-select> </template> <script> import { WxcGridSelect } from 'weex-ui'; export default { components: { WxcGridSelect }, data: () => ({ customStyles: { lineSpacing: '14px', width: '120px', height: '50px', icon: '', color: '#333333', checkedColor: '#ffffff', disabledColor: '#eeeeee', borderColor: '#666666', checkedBorderColor: '#ffb200', backgroundColor: '#ffffff', checkedBackgroundColor: '#ffb200' }, testData1: [ { 'title': '上海' }, { 'title': '杭州', 'checked': true }, { 'title': '北京' }, { 'title': '广州' }, { 'title': '深圳' }, { 'title': '南京' } ], testData2: [ { 'title': '上海' }, { 'title': '杭州', 'checked': true }, { 'title': '北京', 'checked': true }, { 'title': '广州' }, { 'title': '深圳' }, { 'title': '南京' } ] }), methods: { onSelect (res, {selectIndex, checked, checkedList}) { Vue.set(this, res, `本次选择的index${selectIndex}\n是否选中:${checked ? '是' : '否'}\n选中列表:${checkedList.map(item => item.title).join(',')}`); }, onOverLimit (limit) { modal.toast({ message: `最多选择${limit}`, duration: 0.8 }); } } } </script> ``` 更详细代码可以参考 [demo](https://github.com/apache/incubator-weex-ui/blob/master/example/grid-select/index.vue) ### Props | Prop | Type | Required | Default | Description | |-----|------|:-----:|--------|--------| | list | `Array` | `Y`| `-` | 数据列表,可以动态更新 | | list[{title}]| `String` | `N`|`''` | 标题 | | list[{checked}]| `Boolean` |`N`| `false` | 是否选中 | | list[{disabled}]| `Boolean` |`N`| `false` | 是否不可选中 | | single | `Boolean` |`N`| `false` | 是否单选模式 | | limit | `Number` | `N`| `-` | 多选模式下选择数量限制,可以动态更新 | | cols | `Number` | `Y`| `4` | 列数 | | customStyles | `Object` |`N`| `{}` | 自定义样式 | | customStyles{lineSpacing} | `String` | `N`|`12px` | 行间距 | | customStyles{width} | `String` |`N`| `166px` | item的宽度 | | customStyles{height} | `String` |`N`| `72px` | item的高度 | | customStyles{color} | `String` |`N`| `#3d3d3d` | 正常状态文字色值 | | customStyles{checkedColor} | `String` |`N`| `#3d3d3d` | 选中状态文字色值 | | customStyles{disabledColor} | `String` |`N`| `#9b9b9b` | 不可选状态文字色值 | | customStyles{borderColor} | `String` |`N`| `transparent` | 正常状态边框色值 | | customStyles{checkedBorderColor} |`String` |`N`| `#ffb200` | 选中状态边框色值 | | customStyles{disabledBorderColor} | `String` | `N`|`transparent` | 不可选状态边框色值 | | customStyles{backgroundColor} | `String` | `N`|`#f6f6f6` | 正常状态背景色值 | | customStyles{checkedBackgroundColor} | `String` |`N`| `#ffffff` | 选中状态背景色值 | | customStyles{disabledBackgroundColor} | `String` | `N`|`#f6f6f6` | 不可选状态背景色值 | | customStyles{icon} | `String` | `N`| `x` | 选中状态icon,base64或url,传空则不显示 | ### Events `select` - 描述: 监听选择事件 - 参数: ```json { selectIndex:本次选择的index checked:是否选中 checkedList:选中列表 } ``` - 示例: ```vue <wxc-grid-select @select="onSelect"></wxc-grid-select> ``` `overLimit` - 描述: 监听选择数量溢出事件 - 参数: ``` arg1: 限制的选择数量 ``` - 示例: ``` <wxc-grid-select @overLimit="onOverLimit"></wxc-grid-select> ```