mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
[improvement] add Picker prop mixin (#2191)
This commit is contained in:
parent
d8ff9f3d34
commit
996c67b4fc
@ -18,16 +18,18 @@
|
|||||||
<script>
|
<script>
|
||||||
import create from '../utils/create';
|
import create from '../utils/create';
|
||||||
import Picker from '../picker';
|
import Picker from '../picker';
|
||||||
|
import PickerMixin from '../mixins/picker';
|
||||||
|
|
||||||
export default create({
|
export default create({
|
||||||
name: 'area',
|
name: 'area',
|
||||||
|
|
||||||
|
mixins: [PickerMixin],
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
Picker
|
Picker
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
...Picker.props,
|
|
||||||
value: String,
|
value: String,
|
||||||
areaList: {
|
areaList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
@ -42,7 +44,7 @@ export default create({
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
code: this.value,
|
code: this.value,
|
||||||
cols: [{ values: [] }, { values: [] }, { values: [] }]
|
columns: [{ values: [] }, { values: [] }, { values: [] }]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -60,7 +62,7 @@ export default create({
|
|||||||
},
|
},
|
||||||
|
|
||||||
displayColumns() {
|
displayColumns() {
|
||||||
return this.cols.slice(0, +this.columnsNum);
|
return this.columns.slice(0, +this.columnsNum);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<picker
|
<picker
|
||||||
ref="picker"
|
ref="picker"
|
||||||
:title="title"
|
:title="title"
|
||||||
:columns="cols"
|
:columns="columns"
|
||||||
:item-height="itemHeight"
|
:item-height="itemHeight"
|
||||||
:show-toolbar="showToolbar"
|
:show-toolbar="showToolbar"
|
||||||
:visible-item-count="visibleItemCount"
|
:visible-item-count="visibleItemCount"
|
||||||
@ -18,6 +18,7 @@
|
|||||||
import Picker from '../picker';
|
import Picker from '../picker';
|
||||||
import create from '../utils/create';
|
import create from '../utils/create';
|
||||||
import { range } from '../utils';
|
import { range } from '../utils';
|
||||||
|
import PickerMixin from '../mixins/picker';
|
||||||
|
|
||||||
const currentYear = new Date().getFullYear();
|
const currentYear = new Date().getFullYear();
|
||||||
const isValidDate = date => Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());
|
const isValidDate = date => Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());
|
||||||
@ -25,12 +26,13 @@ const isValidDate = date => Object.prototype.toString.call(date) === '[object Da
|
|||||||
export default create({
|
export default create({
|
||||||
name: 'datetime-picker',
|
name: 'datetime-picker',
|
||||||
|
|
||||||
|
mixins: [PickerMixin],
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
Picker
|
Picker
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
...Picker.props,
|
|
||||||
value: null,
|
value: null,
|
||||||
minHour: Number,
|
minHour: Number,
|
||||||
minMinute: Number,
|
minMinute: Number,
|
||||||
@ -87,7 +89,7 @@ export default create({
|
|||||||
this.$emit('input', val);
|
this.$emit('input', val);
|
||||||
},
|
},
|
||||||
|
|
||||||
cols() {
|
columns() {
|
||||||
this.updateColumnValue(this.innerValue);
|
this.updateColumnValue(this.innerValue);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -138,7 +140,7 @@ export default create({
|
|||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
cols() {
|
columns() {
|
||||||
const results = this.ranges.map(({ type, range }) => {
|
const results = this.ranges.map(({ type, range }) => {
|
||||||
const values = this.times(range[1] - range[0] + 1, index => {
|
const values = this.times(range[1] - range[0] + 1, index => {
|
||||||
let value = range[0] + index;
|
let value = range[0] + index;
|
||||||
|
@ -11,9 +11,9 @@ export default {
|
|||||||
titleClass: String,
|
titleClass: String,
|
||||||
valueClass: String,
|
valueClass: String,
|
||||||
labelClass: String,
|
labelClass: String,
|
||||||
|
title: [String, Number],
|
||||||
value: [String, Number],
|
value: [String, Number],
|
||||||
label: [String, Number],
|
label: [String, Number],
|
||||||
title: [String, Number],
|
|
||||||
border: {
|
border: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
|
21
packages/mixins/picker.js
Normal file
21
packages/mixins/picker.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* Common Picker Props
|
||||||
|
*/
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
title: String,
|
||||||
|
loading: Boolean,
|
||||||
|
showToolbar: Boolean,
|
||||||
|
cancelButtonText: String,
|
||||||
|
confirmButtonText: String,
|
||||||
|
visibleItemCount: {
|
||||||
|
type: Number,
|
||||||
|
default: 5
|
||||||
|
},
|
||||||
|
itemHeight: {
|
||||||
|
type: Number,
|
||||||
|
default: 44
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
@ -61,32 +61,22 @@
|
|||||||
import create from '../utils/create';
|
import create from '../utils/create';
|
||||||
import PickerColumn from './PickerColumn';
|
import PickerColumn from './PickerColumn';
|
||||||
import deepClone from '../utils/deep-clone';
|
import deepClone from '../utils/deep-clone';
|
||||||
|
import PickerMixin from '../mixins/picker';
|
||||||
|
|
||||||
export default create({
|
export default create({
|
||||||
name: 'picker',
|
name: 'picker',
|
||||||
|
|
||||||
|
mixins: [PickerMixin],
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
PickerColumn
|
PickerColumn
|
||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
title: String,
|
|
||||||
columns: Array,
|
columns: Array,
|
||||||
loading: Boolean,
|
|
||||||
showToolbar: Boolean,
|
|
||||||
confirmButtonText: String,
|
|
||||||
cancelButtonText: String,
|
|
||||||
visibleItemCount: {
|
|
||||||
type: Number,
|
|
||||||
default: 5
|
|
||||||
},
|
|
||||||
valueKey: {
|
valueKey: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'text'
|
default: 'text'
|
||||||
},
|
|
||||||
itemHeight: {
|
|
||||||
type: Number,
|
|
||||||
default: 44
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user