A vue2.x based development, similar to the ios wheel style selection mobile plug-in, currently support time selection, single choice, multiple choice
- by npm
$ npm install vue2-wheel-picker
- by yarn
$ yarn add vue2-wheel-picker
Web Site Visit: https://lenvonsam.github.io/vue2-wheel-picker/
Mobile Visit:
Screenshots:
import Vue from 'vue'
import wheelpicker from 'vue2-wheel-picker'
Vue.use(wheelpicker)
This plug-in automatically injects $wheelPicker Object and registers global components, including wheelPicker and wheelDatepicker.
import { WheelPicker, WheelDatepicker } from 'vue2-wheel-picker/picker'
export default {
...
components: {
'wheel-picker': WheelPicker,
'wheel-datepicker': WheelDatepicker
}
...
}
<wheel-picker v-model="pickerShow" :listData="list" :listValue="value" :colLen="2" @change="pickChange" :rowKeys="rowKeys"></wheel-picker>
Property | Required | Type | Default | Description |
---|---|---|---|---|
value | false | Boolean | false | to display and close the component |
listData | true | Array | to display component's content | |
listValue | false | Array | to initail the component value and get the selected component value | |
colLen | false | Number | 1 | The number of columns displayed by the component |
rowKeys | false | Array | Specifies each column object keys | |
confirmText | false | String | 确定 | confirm button text |
cancelText | false | String | 取消 | cancel button text |
confirmColor | false | String | #3db0fc | confirm button color(rgb,rgba,hex) |
cancelColor | false | String | #888 | cancel button color(rgb, rgba, hex) |
bottomColor | false | String | #ddd | the color of button group bottom line |
<wheel-datepicker v-model="datePickerShow" :listValue="dataVal" @change="dateChange"></wheel-datepicker>
Property | Required | Type | Default | Description |
---|---|---|---|---|
value | false | Boolean | false | to display and close the component |
dateValue | false | String | YYYY-MM-DD | to initail the component value and get the selected component value, the value format depend on separator |
separator | false | String | - | Date separator |
yearCount | false | Number | 15 | The difference between the current year and the beginning year |
confirmText | false | String | 确定 | confirm button text |
cancelText | false | String | 取消 | cancel button text |
confirmColor | false | String | #3db0fc | confirm button color(rgb,rgba,hex) |
cancelColor | false | String | #888 | cancel button color(rgb, rgba, hex) |
bottomColor | false | String | #ddd | the color of button group bottom line |
Method | params | Required | Descrpiton |
---|---|---|---|
change | value | false | return selected value |
It can also $wheelPicker Object to display wheelPicker and wheelDatepicker.
this.$wheelPicker.show({
mode: 'date',
cb (type) {
console.log('type', type)
}
})
Properties | Required | Type | Default | Description |
---|---|---|---|---|
mode | false | String | picker | display different mode wheel picker |
confirmText | false | String | 确定 | confirm button text |
cancelText | false | String | 取消 | cancel button text |
confirmColor | false | String | #3db0fc | confirm button color(rgb,rgba,hex) |
cancelColor | false | String | #888 | cancel button color(rgb, rgba, hex) |
bottomColor | false | String | #ddd | the color of button group bottom line |
Properties | Required | Type | Default | Description |
---|---|---|---|---|
dateValue | false | String | YYYY-MM-DD | to initail the component value and get the selected component value, the value format depend on separator |
separator | false | String | - | Date separator |
yearCount | false | Number | 15 | The difference between the current year and the beginning year |
Properties | Required | Type | Default | Description |
---|---|---|---|---|
listData | true | Array | to display component's content | |
listValue | false | Array | to initail the component value and get the selected component value | |
colLen | false | Number | 1 | The number of columns displayed by the component |
rowKeys | false | Array | Specifies each column object keys |
Method | params | Required | Descrpiton |
---|---|---|---|
cb | value | false | return selected value |
export default {
data () {
return {
listData: ['orange', 'apple', 'banana'],
listValue: ['apple']
}
},
mounted () {
this.$wheelPicker.show({
listData: this.listData,
listValue: this.listValue,
cb (value) {
console.log('picker value:>>', value)
}
})
}
}
export default {
data () {
return {
listData: [[{'fruit': 'orange'}, {'fruit': 'banana'}], [{'animal': 'dog'}, {'animal': 'cat'}]],
listValue: ['orange', 'cat']
}
},
mounted () {
this.$wheelPicker.show({
listData: this.listData,
listValue: this.listValue,
colLen: this.listData.length,
// when row type is object, rowkeys must not be null
rowkeys: ['fruit', 'animal'],
confirmColor: 'red',
cb (value) {
console.log('picker value:>>', value)
}
})
}
}
export default {
mounted () {
// when dateValue not set value, the date wheel picker will set current date automatically
this.$wheelPicker.show({
mode: 'date',
cb (value) {
console.log('picker value:>>', value)
}
})
}
}
<template>
<div>
<button @click="clickMe">点我选择</button>
<picker v-model="pickerShow" :listData="list" :listValue="value" @change="pickerChange" :rowKeys="rowKeys"></picker>
</div>
</template>
import { WheelPicker } from 'vue2-wheel-picker/picker'
export default {
data () {
return {
listData: ['1', '2', '3', '4', '5', '6'],
listValue: ['1'],
pickerShow: false
}
},
components: {
wheelPicker: WheelPicker
},
methods: {
clickMe () {
this.pickerShow = true
},
pickerChange (val) {
console.log('choose value', val)
}
}
}
- China City Picker
- Theme Picker(ios, android...)